diff --git a/.env.production b/.env.production index 19ff852..008f505 100755 --- a/.env.production +++ b/.env.production @@ -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= diff --git a/package.json b/package.json index 04de003..83cadab 100755 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/components/sp-coupon/index.js b/src/components/sp-coupon/index.js index eea2d62..83b819c 100755 --- a/src/components/sp-coupon/index.js +++ b/src/components/sp-coupon/index.js @@ -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 ( @@ -71,7 +74,7 @@ function SpCoupon (props) { {/* !valid || */} {!isNotUse && <> {info.tagClass === 'used' || info.tagClass === 'overdue' ? 已{info.tagClass === 'used' ? '使用' : '过期'} - : 立即{isNew ? '兑换' : '使用'}} + : isInvalid ? {couponStatus == 0 ? '已领完' : '已领取'} : 立即{isNew ? '兑换' : '使用'}} } ) diff --git a/src/doc/coupon.js b/src/doc/coupon.js index ee7df02..9355d79 100755 --- a/src/doc/coupon.js +++ b/src/doc/coupon.js @@ -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) { diff --git a/src/doc/trade.js b/src/doc/trade.js index d4f7e25..16a06db 100755 --- a/src/doc/trade.js +++ b/src/doc/trade.js @@ -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', diff --git a/src/pages/cart/espier-checkout.js b/src/pages/cart/espier-checkout.js index abed064..213c951 100755 --- a/src/pages/cart/espier-checkout.js +++ b/src/pages/cart/espier-checkout.js @@ -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 diff --git a/src/pages/cart/espier-index.js b/src/pages/cart/espier-index.js index bd2694b..f03ee84 100755 --- a/src/pages/cart/espier-index.js +++ b/src/pages/cart/espier-index.js @@ -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 })) diff --git a/src/pages/item/comps/comp-buytoolbar.js b/src/pages/item/comps/comp-buytoolbar.js index da4f33f..2e08ad6 100755 --- a/src/pages/item/comps/comp-buytoolbar.js +++ b/src/pages/item/comps/comp-buytoolbar.js @@ -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) { 收藏 */} + Taro.redirectTo({ url: '/pages/cart/espier-index' })}> + {cartCount > 0 ? : } + {false && { 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) diff --git a/src/subpage/pages/trade/list.js b/src/subpage/pages/trade/list.js index 709b39a..b457356 100755 --- a/src/subpage/pages/trade/list.js +++ b/src/subpage/pages/trade/list.js @@ -404,7 +404,7 @@ export default class TradeList extends Component { className={classNames('page-trade-list', { 'has-navbar': true || isNavbar() })} - showNavSearchIcon + // showNavSearchIcon > { + 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 diff --git a/src/subpages/member/qa-data/index.js b/src/subpages/member/qa-data/index.js index daf67d1..f30acaa 100644 --- a/src/subpages/member/qa-data/index.js +++ b/src/subpages/member/qa-data/index.js @@ -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(法定节假日或大促期间的服务时间将另行通知)`,] + } ] } ] diff --git a/src/subpages/member/qa-page.js b/src/subpages/member/qa-page.js index db14fa9..89220d7 100644 --- a/src/subpages/member/qa-page.js +++ b/src/subpages/member/qa-page.js @@ -44,14 +44,15 @@ export default function qaPage () { {item.content.map((v, i) => ( - + {v.subTit} {/* */} - - {v.subCon} - {v.subContents ? v.subContents.map(s => {s}) : null} - + {!!v.subCon && + {v.subCon} + {/* {v.subContents ? v.subContents.map(s => {s}) : null} */} + {v.subContents ? v.subContents.map(s => ) : null} + } ))}