fix bug
parent
b7d4ac0428
commit
54804b6546
|
|
@ -1,15 +1,15 @@
|
|||
APP_BASE_URL=http://47.103.169.154:8080/api/h5app/wxapp
|
||||
APP_WEBSOCKET=wss://http://47.103.169.154:8080/ws
|
||||
APP_BASE_URL=https://test.birkenstock.net.cn/api/h5app/wxapp
|
||||
APP_WEBSOCKET=wss://test.birkenstock.net.cn/ws
|
||||
APP_COMPANY_ID=1
|
||||
APP_PLATFORM=standard
|
||||
APP_CUSTOM_SERVER=http://47.103.169.154:8081/
|
||||
APP_CUSTOM_SERVER=https://test.birkenstock.net.cn/
|
||||
APP_HOME_PAGE=/pages/index
|
||||
APP_TRACK=youshu
|
||||
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||
# APP_ID=wx3e1c17c88abf3e45
|
||||
APP_ID=wx55ff808ba0e28b1d
|
||||
APP_ID=wx72e9e1a93420862c
|
||||
APP_MAP_KEY=1ccc1ebc947719886f0cd766d70241fe
|
||||
APP_MAP_NAME=oneX新零售门店定位
|
||||
APP_MAP_NAME=BIRKENSTOCK门店定位
|
||||
APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||
APP_IMAGE_CDN_NEW=https://espier-oss-cdn.oss-cn-shanghai.aliyuncs.com/default_project/wxAssets
|
||||
APP_DIANWU_URL=
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "BIRKENSTOCK",
|
||||
"name": "bk",
|
||||
"app_name": "BIRKENSTOCK",
|
||||
"version": "3.13.20",
|
||||
"private": true,
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
"scripts": {
|
||||
"clean": "rm -rf node_modules/.cache",
|
||||
"build:weapp": "taro build --type weapp --trace-warnings",
|
||||
"build:weapp:test": "taro build --type weapp --trace-warnings",
|
||||
"build:weapp:live": "APP_LIVE=true taro build --type weapp --trace-warnings",
|
||||
"build:swan": "taro build --type swan",
|
||||
"build:alipay": "taro build --type alipay",
|
||||
|
|
|
|||
|
|
@ -43,10 +43,13 @@ function SpCoupon (props) {
|
|||
} = info
|
||||
|
||||
const { tag, invalidBg, bg } = COUPON_TYPE[cardType]
|
||||
const couponTagBg = info.tagClass === 'used' || info.tagClass === 'overdue' || !info.valid ? invalidBg : bg
|
||||
const couponTagFlag = info.tagClass === 'used' || info.tagClass === 'overdue' || !info.valid
|
||||
const couponTagBg = couponTagFlag ? invalidBg : bg
|
||||
// (couponStatus && couponStatus != 1) ||
|
||||
const isInvalid = ((couponStatus && couponStatus != 1) || (info.tagClass === 'used' || info.tagClass === 'overdue') || isNotUse)
|
||||
|
||||
return (<View className="coupons-list-item" key={`coupon-item__${id}`} style={styleNames({
|
||||
background: `url(${process.env.APP_IMAGE_CDN_NEW}/member/${((couponStatus && couponStatus != 1) || (info.tagClass === 'used' || info.tagClass === 'overdue') || isNotUse) ? "quan-hui" : "quan-lan"}.png) no-repeat`,
|
||||
background: `url(${process.env.APP_IMAGE_CDN_NEW}/member/${isInvalid ? "quan-hui" : "quan-lan"}.png) no-repeat`,
|
||||
'background-size': '100% 100%'
|
||||
})}>
|
||||
<View className="coupons-list-item-left">
|
||||
|
|
@ -71,7 +74,7 @@ function SpCoupon (props) {
|
|||
{/* !valid || */}
|
||||
{!isNotUse && <>
|
||||
{info.tagClass === 'used' || info.tagClass === 'overdue' ? <View className="coupons-list-item-btn">已{info.tagClass === 'used' ? '使用' : '过期'}</View>
|
||||
: <View className="coupons-list-item-btn" onClick={onClick}>立即{isNew ? '兑换' : '使用'}</View>}
|
||||
: isInvalid ? <View className="coupons-list-item-btn">{couponStatus == 0 ? '已领完' : '已领取'}</View> : <View className="coupons-list-item-btn" onClick={onClick}>立即{isNew ? '兑换' : '使用'}</View>}
|
||||
</>}
|
||||
</View>
|
||||
</View>)
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ export const COUPON = {
|
|||
getNum: 'get_num',
|
||||
couponStatus: ({ quantity, get_limit, user_get_num, get_num }) => {
|
||||
if (quantity - get_num <= 0) {
|
||||
return 0 // 已领完
|
||||
return '0' // 已领完
|
||||
} else if (get_limit - user_get_num > 0) {
|
||||
return 1 // 立即领取
|
||||
} else if (get_limit - user_get_num <= 0) {
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ export const TRADE_AFTER_SALES_ITEM = {
|
|||
afterSalesMobile: ({ aftersales_address }) => aftersales_address.aftersales_mobile,
|
||||
afterSalesAddress: ({ aftersales_address }) => aftersales_address.aftersales_address,
|
||||
afterSalesContact: ({ aftersales_address }) => aftersales_address.aftersales_contact,
|
||||
afterSalesZip: ({ aftersales_address }) => aftersales_address.post_code,
|
||||
afterSalesZip: ({ aftersales_address }) => aftersales_address.aftersales_post_code,
|
||||
aftersalesHours: ({ aftersales_address }) => aftersales_address.aftersales_hours,
|
||||
refundFee: ({ refund_fee }) => refund_fee / 100,
|
||||
sendbackData: 'sendback_data',
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ function CartCheckout (props) {
|
|||
url: `/subpage/pages/trade/invoice-info?id=${totalInfo.tid || ''}`,
|
||||
events: {
|
||||
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
|
||||
acceptDataFromOpenedPage: function ({ data = {} }) {
|
||||
acceptDataFromOpenedPage: ({ data = {} }) => {
|
||||
const { invoiceTitle } = data
|
||||
setState((draft) => {
|
||||
draft.invoiceTitle = invoiceTitle
|
||||
|
|
@ -377,9 +377,9 @@ function CartCheckout (props) {
|
|||
})
|
||||
},
|
||||
},
|
||||
success: function (res) {
|
||||
success: (res) => {
|
||||
// 通过eventChannel向被打开页面传送数据
|
||||
res.eventChannel.emit('acceptDataFromOpenerPage', { data: totalInfo })
|
||||
res.eventChannel.emit('acceptDataFromOpenerPage', { data: { ...totalInfo, invoiceTitle: state.invoiceTitle, paramsInfo: state.paramsInfo } })
|
||||
}
|
||||
})
|
||||
return
|
||||
|
|
|
|||
|
|
@ -81,16 +81,16 @@ function CartIndex () {
|
|||
|
||||
const getCartList = async () => {
|
||||
// Taro.showLoading({ title: '', })
|
||||
setState((draft) => {
|
||||
draft.loading = true
|
||||
})
|
||||
// setState((draft) => {
|
||||
// draft.loading = true
|
||||
// })
|
||||
const { type = 'distributor' } = router?.params || {}
|
||||
const params = {
|
||||
shop_type: type
|
||||
}
|
||||
await dispatch(fetchCartList(params))
|
||||
await dispatch(updateCount(params))
|
||||
|
||||
Taro.hideLoading()
|
||||
setState((draft) => {
|
||||
draft.loading = false
|
||||
})
|
||||
|
|
@ -188,10 +188,10 @@ function CartIndex () {
|
|||
// }
|
||||
|
||||
const onChangeGoodsIsCheck = async (item, type, checked) => {
|
||||
// Taro.showLoading({ title: '' })
|
||||
setState((draft) => {
|
||||
draft.loading = true
|
||||
})
|
||||
Taro.showLoading({ title: '', mask: true })
|
||||
// setState((draft) => {
|
||||
// draft.loading = true
|
||||
// })
|
||||
let parmas = { is_checked: checked }
|
||||
if (type === 'all') {
|
||||
const cartIds = item.list.map((item) => item.cart_id)
|
||||
|
|
@ -224,9 +224,10 @@ function CartIndex () {
|
|||
|
||||
const onChangeCartGoodsItem = useDebounce(async (item, num) => {
|
||||
console.log(`onChangeCartGoodsItem:`, num)
|
||||
setState((draft) => {
|
||||
draft.loading = true
|
||||
})
|
||||
// setState((draft) => {
|
||||
// draft.loading = true
|
||||
// })
|
||||
Taro.showLoading({ title: '', mask: true })
|
||||
let { shop_id, cart_id } = item
|
||||
const { type = 'distributor' } = router.params
|
||||
await dispatch(updateCartItemNum({ shop_id, cart_id, num, type }))
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { addCart } from '@/store/slices/cart'
|
|||
import { BUY_TOOL_BTNS, ACTIVITY_LIST } from '@/consts'
|
||||
import { fetchUserFavs, addUserFav, deleteUserFav } from '@/store/slices/user'
|
||||
import api from '@/api'
|
||||
import { AtModal } from 'taro-ui'
|
||||
import { AtModal, AtBadge } from 'taro-ui'
|
||||
import './comp-buytoolbar.scss'
|
||||
|
||||
function CompGoodsBuyToolbar (props) {
|
||||
|
|
@ -161,6 +161,9 @@ function CompGoodsBuyToolbar (props) {
|
|||
<Text className='toolbar-item-txt'>收藏</Text>
|
||||
</View> */}
|
||||
</SpLogin>
|
||||
<View className='shoucang-wrap' style="marginLeft:30rpx" onClick={() => Taro.redirectTo({ url: '/pages/cart/espier-index' })}>
|
||||
{cartCount > 0 ? <AtBadge value={cartCount} maxValue={99}><SpImage src={`member/cart.png`} height={50} mode='heightFix' isNew /></AtBadge> : <SpImage src={`member/cart.png`} height={54} mode='heightFix' isNew />}
|
||||
</View>
|
||||
{false && <View
|
||||
className='toolbar-item'
|
||||
onClick={navigateTo.bind(this, '/pages/cart/espier-index?tabbar=0')}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,20 @@
|
|||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
.at-badge {
|
||||
&__num {
|
||||
font-size: 14px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
top: -6px;
|
||||
right: 4px;
|
||||
padding: 0;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
.sp-login {
|
||||
margin-left: 30px;
|
||||
|
|
|
|||
|
|
@ -96,12 +96,12 @@ function InvoiceInfo (props) {
|
|||
})
|
||||
}
|
||||
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
|
||||
eventChannel?.on('acceptDataFromOpenerPage', function ({ data }) {
|
||||
eventChannel?.on('acceptDataFromOpenerPage', ({ data }) => {
|
||||
setState((draft) => {
|
||||
draft.orderInfo = data.order || data || {}
|
||||
draft.invoiceInfo = data.invoice || {}
|
||||
draft.form = data.order?.invoice || {}
|
||||
draft.title = data.order?.title ? data.order.title === 'unit' ? '个人' : '企业' : ''
|
||||
draft.form = data.order?.invoice || data.paramsInfo?.invoice_content || {}
|
||||
draft.title = data.order ? data.order.title === 'unit' ? '个人' : '企业' : ''
|
||||
draft.totalFee = data.order?.total_fee ?? ''
|
||||
})
|
||||
})
|
||||
|
|
@ -183,7 +183,20 @@ function InvoiceInfo (props) {
|
|||
})
|
||||
return
|
||||
}
|
||||
eventChannel?.emit('acceptDataFromOpenedPage', { data: invoice })
|
||||
let invoice_parmas = {
|
||||
invoice_type: 'normal',
|
||||
invoice_content: {
|
||||
...form
|
||||
}
|
||||
}
|
||||
const _invoice = {
|
||||
invoiceTitle: content,
|
||||
paramsInfo: invoice_parmas
|
||||
}
|
||||
setState((draft) => {
|
||||
draft.invoice = _invoice
|
||||
})
|
||||
eventChannel?.emit('acceptDataFromOpenedPage', { data: _invoice })
|
||||
Taro.navigateBack()
|
||||
}
|
||||
const handleInvoiceClick = () => {
|
||||
|
|
@ -210,7 +223,8 @@ function InvoiceInfo (props) {
|
|||
registration_number,
|
||||
bankname,
|
||||
bankaccount,
|
||||
company_phone
|
||||
company_phone,
|
||||
email: form.email
|
||||
}
|
||||
}
|
||||
// console.log("🚀 ~ invoice_parmas:", invoice_parmas)
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@ export default class TradeList extends Component {
|
|||
className={classNames('page-trade-list', {
|
||||
'has-navbar': true || isNavbar()
|
||||
})}
|
||||
showNavSearchIcon
|
||||
// showNavSearchIcon
|
||||
>
|
||||
<SpNavBar title='订单列表' leftIconType='chevron-left' fixed='true' />
|
||||
<AtTabs
|
||||
|
|
|
|||
|
|
@ -60,6 +60,14 @@ function CouponCenter (props) {
|
|||
showToast('积分不足')
|
||||
return
|
||||
}
|
||||
if (item.couponStatus == 0) {
|
||||
showToast('优惠券已领完')
|
||||
return
|
||||
}
|
||||
if (item.couponStatus == 2) {
|
||||
showToast('已领取该优惠券')
|
||||
return
|
||||
}
|
||||
const res = await Taro.showModal({
|
||||
title: '提示',
|
||||
content: `确定要领取该优惠券吗?`,
|
||||
|
|
@ -73,9 +81,7 @@ function CouponCenter (props) {
|
|||
if (!res.confirm) {
|
||||
return
|
||||
}
|
||||
if (item.couponStatus == 0) {
|
||||
showToast('优惠券已领完')
|
||||
} else if (item.couponStatus == 1) {
|
||||
if (item.couponStatus == 1) {
|
||||
if (isWeixin) {
|
||||
const templeparams = {
|
||||
temp_name: 'yykweishop',
|
||||
|
|
@ -98,12 +104,11 @@ function CouponCenter (props) {
|
|||
} else {
|
||||
getCoupon(item, index)
|
||||
}
|
||||
} else {
|
||||
showToast('优惠券已领取完啦')
|
||||
}
|
||||
}
|
||||
|
||||
const getCoupon = async ({ cardId }, index) => {
|
||||
Taro.showLoading({ title: '', mask: true })
|
||||
const { status } = await api.member.getCardDetail({
|
||||
card_id: cardId
|
||||
})
|
||||
|
|
@ -122,6 +127,7 @@ function CouponCenter (props) {
|
|||
} else {
|
||||
showToast('优惠券领取失败')
|
||||
}
|
||||
Taro.hideLoading()
|
||||
}
|
||||
|
||||
const { point } = state
|
||||
|
|
|
|||
|
|
@ -49,11 +49,60 @@ const data = [{
|
|||
},
|
||||
{
|
||||
title: '退换货政策', isOpen: false, content: [
|
||||
{ subTit: `BIRKENSTOCK官方网站退换货政策(中国大陆)`, subCon: '' },
|
||||
{ subTit: `一、政策适用范围`, subCon: `诚挚欢迎您光临BIRKENSTOCK微信小程序官方店,以下是我们的退换货政策。` },
|
||||
{ subTit: `二、退换货条件`, subCon: `为了确保您的购物体验顺利愉快,我们需要您注意以下退换货条件:`, subContents: ['1.商品应保持完好,包括商品本身及其鞋盒、配件、吊牌等完整无损。', '2.请提供原始收银凭证或购物凭证以办理退换货。', '3.申请退换货应在签收之日起7天内进行。'] },
|
||||
// { subTit: ``, subCon: `1.商品应保持完好,包括商品本身及其鞋盒、配件、吊牌等完整无损。` },
|
||||
// { subTit: ``, subCon: `1.商品应保持完好,包括商品本身及其鞋盒、配件、吊牌等完整无损。` },
|
||||
// { subTit: ``, subCon: `1.商品应保持完好,包括商品本身及其鞋盒、配件、吊牌等完整无损。` },
|
||||
{ subTit: `二、退换货条件`, subCon: `为了确保您的购物体验顺利愉快,我们需要您注意以下退换货条件:`, subContents: [' 1.商品应保持完好,包括商品本身及其鞋盒、配件、吊牌等完整无损。', ' 2.请提供原始收银凭证或购物凭证以办理退换货。', ' 3.申请退换货应在签收之日起7天内进行。'] },
|
||||
{ subTit: `三、退换货特别约定`, subCon: `针对特定情形的退换货特别处理:`, subContents: [' 1.鞋类商品的合格证及三包服务卡以鞋盒上粘贴的规定为准。', ' 2.退货仅限在原购买商品的微信小程序平台进行。', ' 3.不同渠道购买的商品暂不支持跨渠道退换货。', ' 4.在下单过程中使用优惠券、积分兑换券等折扣券,该笔订单如需退货,折扣券将不予返还。'] },
|
||||
{
|
||||
subTit: '四、鞋类商品质保规定',
|
||||
subCon: '为了保障您的权益,敬请留意以下信息:',
|
||||
subContents: [' 1.质保期限',
|
||||
' 质保期限为自鞋类商品购买之日起90天。',
|
||||
' 2.质保范围',
|
||||
' 1)质保期内,如鞋类商品发生质量问题,可凭原始购物凭证办理退货或换货。BIRKENSTOCK暂不提供维修服务。如您购买的鞋类商品因质量问题需要维修,请按照下述退换货流程操作。',
|
||||
' 2)如您购买的鞋类商品在正常穿着情况下存在以下任一质量问题,您可以选择退货或换货处理:',
|
||||
' a.凡在第一个月内出现断底、断跟、断面、断帮质量问题之一者。',
|
||||
' b.凡属包换的质量问题而因故无法调换者,可予以退货。',
|
||||
` c.在第一个月内出现“包修”质量问题且无法予以调换者,可酌情按购买产品实际支付价格的每日0.5%收取折旧费,并予以退货。`,
|
||||
` d.凡未经穿过的新鞋不成双,鞋子大小或鞋内出现开胶之一者。`,
|
||||
` e.凡在第一周内胶黏皮鞋发生开胶(帮底结合处脱落或弹开长度2cm,深度0.5cm以上者)`,
|
||||
` f.凡属“包修”的质量问题,在第一个月予以更换。`,
|
||||
` g.包修:帮底结合处开胶脱落或弹出长度2cm深度0.5cm以下者;`,
|
||||
` --第一周外胶黏皮皮鞋发生开胶;`,
|
||||
` --胶粘鞋发生开胶;`,
|
||||
` --出现断底、断跟、断面、断帮;`,
|
||||
` h.两只鞋颜色明显不一、尺码不等或一边脚;`,
|
||||
` i.其他法律规定的质量问题。`,
|
||||
` 3)您在不同渠道 (微信小程序官方店、天猫官方旗舰店、京东官方旗舰店、抖音官方旗舰店、实体店) 购买的鞋类商品,暂不支持跨渠道办理退换货,敬请谅解。鞋类商品的退换货操作流程详见下述退换货流程。`,
|
||||
|
||||
' 3.质保例外',
|
||||
` 以下情形不属于质保服务范围,敬请谅解:`,
|
||||
` a.因穿着、保养、使用或保管不当等造成的损坏;`,
|
||||
` b.因自行拆改或修理造成的损坏;`,
|
||||
` c.超出质保期限的商品;`,
|
||||
` d.无原始购物凭证的商品。`]
|
||||
},
|
||||
{
|
||||
subTit: '五、退换货流程',
|
||||
subCon: `购买于BIRKENSTOCK微信小程序官方店的商品退换货流程如下:`,
|
||||
subContents: [` 1.购买于微信小程序官方店的商品,若符合本政策约定的退换货条件,可按以下流程操作退货:`,
|
||||
` a.请您在收到商品之日(以快递签收日期为准)7天内,联系微信小程序官方店的客服申请退货;`,
|
||||
` b.在与客服确认符合退货条件后,可予退货。请在“我的订单”页面提交退货申请,并填写退货快递单号。`,
|
||||
` 退货申请提交后,请将您的原始购物明细单随退货商品一并快递至以下地址及收件人:`,
|
||||
` 退货地址:`,
|
||||
` 上海市奉贤区 奉城镇东新市村(朝阳)1160号`,
|
||||
` 奉城普洛斯物流园B1库1FU3单元圆具嘉 大叶公路靠申江南路`,
|
||||
` 收件人:勃肯退货组(XCX) 19901781571`,
|
||||
` 2.微信小程序官方店目前暂时仅提供相同商品不同尺寸的更换服务,不提供不同款式的换货服务。若您对购买的商品不满意,需要退换,请按照上述流程操作,或联系我们的在线客服询问详情。`,
|
||||
` 3.退回商品的运费将由您承担,BIRKENSTOCK暂不接受到付、平邮、邮政小包退件。为了您的方便与顺利,建议您使用顺丰快递,以确保快速安全地退回商品。`,
|
||||
` 4.如果您退货的商品享受了价格优惠,最终退款金额将以您实际支付的金额为准。退货退款的到账时间会根据您原始支付方式的不同而有所差异。如有任何疑问,请联系我们的在线客服。`]
|
||||
},
|
||||
{
|
||||
subTit: '六、售后客服时间',
|
||||
subCon: '我们的售后客服团队随时为您提供支持,您可以通过在线客服咨询,或者电话联系我们。',
|
||||
subContents: ['售后服务热线:021-62716091',
|
||||
`在线客服服务时间:周一至周日9:00 - 24:00(法定节假日或大促期间的服务时间将另行通知)`,]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -48,10 +48,11 @@ export default function qaPage () {
|
|||
{v.subTit}
|
||||
{/* <Text className="title"></Text> */}
|
||||
</View>
|
||||
<View className="title-desc">
|
||||
<View>{v.subCon}</View>
|
||||
{v.subContents ? v.subContents.map(s => <View> {s}</View >) : null}
|
||||
</View>
|
||||
{!!v.subCon && <View className="title-desc">
|
||||
<View style={{ marginBottom: v.subContents ? '4px' : '0' }} >{v.subCon}</View>
|
||||
{/* {v.subContents ? v.subContents.map(s => <View style={{ marginBottom: '4px' }} > {s}</View >) : null} */}
|
||||
{v.subContents ? v.subContents.map(s => <SpHtml content={s} style={{ marginBottom: '4px' }} />) : null}
|
||||
</View>}
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
|
|
|
|||
Loading…
Reference in New Issue