acdr-ui/dist/dev/mp-weixin/modules/mall/order/detail.js.map

1 line
23 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"detail.js","sources":["../../../../../../src/modules/mall/order/detail.vue","../../../../../../uniPage:/bW9kdWxlc1xtYWxsXG9yZGVyXGRldGFpbC52dWU"],"sourcesContent":["<!-- 订单详情 -->\r\n<template>\r\n <s-layout title=\"订单详情\" class=\"index-wrap\" navbar=\"inner\">\r\n <!-- 订单状态 TODO -->\r\n <view\r\n class=\"state-box ss-flex-col ss-col-center ss-row-right\"\r\n :style=\"[\r\n {\r\n marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',\r\n paddingTop: Number(statusBarHeight + 88) + 'rpx',\r\n },\r\n ]\"\r\n >\r\n <view class=\"ss-flex ss-m-t-32 ss-m-b-20\">\r\n <image\r\n v-if=\"\r\n state.orderInfo.status_code == 'unpaid' ||\r\n state.orderInfo.status === 10 || // 待发货\r\n state.orderInfo.status_code == 'nocomment'\r\n \"\r\n class=\"state-img\"\r\n :src=\"sheep.$url.static('/static/img/shop/order/order_loading.png')\"\r\n ></image>\r\n <image\r\n v-if=\"\r\n state.orderInfo.status_code == 'completed' ||\r\n state.orderInfo.status_code == 'refund_agree'\r\n \"\r\n class=\"state-img\"\r\n :src=\"sheep.$url.static('/static/img/shop/order/order_success.png')\"\r\n ></image>\r\n <image\r\n v-if=\"state.orderInfo.status_code == 'cancel' || state.orderInfo.status_code == 'closed'\"\r\n class=\"state-img\"\r\n :src=\"sheep.$url.static('/static/img/shop/order/order_close.png')\"\r\n ></image>\r\n <image\r\n v-if=\"state.orderInfo.status_code == 'noget'\"\r\n class=\"state-img\"\r\n :src=\"sheep.$url.static('/static/img/shop/order/order_express.png')\"\r\n ></image>\r\n <view class=\"ss-font-30\">{{ formatOrderStatus(state.orderInfo) }}</view>\r\n </view>\r\n <view class=\"ss-font-26 ss-m-x-20 ss-m-b-70\">\r\n {{ formatOrderStatusDescription(state.orderInfo) }}\r\n </view>\r\n </view>\r\n\r\n <!-- 收货地址 -->\r\n <view class=\"order-address-box\" v-if=\"state.orderInfo.receiverAreaId > 0\">\r\n <view class=\"ss-flex ss-col-center\">\r\n <text class=\"address-username\">\r\n {{ state.orderInfo.receiverName }}\r\n </text>\r\n <text class=\"address-phone\">{{ state.orderInfo.receiverMobile }}</text>\r\n </view>\r\n <view class=\"address-detail\">\r\n {{ state.orderInfo.receiverAreaName }} {{ state.orderInfo.receiverDetailAddress }}\r\n </view>\r\n </view>\r\n\r\n <view\r\n class=\"detail-goods\"\r\n :style=\"[{ marginTop: state.orderInfo.receiverAreaId > 0 ? '0' : '-40rpx' }]\"\r\n >\r\n <!-- 订单信 -->\r\n <view class=\"order-list\" v-for=\"item in state.orderInfo.items\" :key=\"item.goods_id\">\r\n <view class=\"order-card\">\r\n <s-goods-item\r\n @tap=\"onGoodsDetail(item.spuId)\"\r\n :img=\"item.picUrl\"\r\n :title=\"item.spuName\"\r\n :skuText=\"item.properties.map((property) => property.valueName).join(' ')\"\r\n :price=\"item.price\"\r\n :num=\"item.count\"\r\n >\r\n <template #tool>\r\n <view class=\"ss-flex\">\r\n <button\r\n class=\"ss-reset-button apply-btn\"\r\n v-if=\"[10, 20, 30].includes(state.orderInfo.status) && item.afterSaleStatus === 0\"\r\n @tap.stop=\"\r\n sheep.$router.go('/modules/mall/order/aftersale/apply', {\r\n orderId: state.orderInfo.id,\r\n itemId: item.id,\r\n })\r\n \"\r\n >\r\n 申请售后\r\n </button>\r\n <button\r\n class=\"ss-reset-button apply-btn\"\r\n v-if=\"item.afterSaleStatus === 10\"\r\n @tap.stop=\"\r\n sheep.$router.go('/modules/mall/order/aftersale/detail', {\r\n id: item.afterSaleId,\r\n })\r\n \"\r\n >\r\n 退款中\r\n </button>\r\n <button\r\n class=\"ss-reset-button apply-btn\"\r\n v-if=\"item.afterSaleStatus === 20\"\r\n @tap.stop=\"\r\n sheep.$router.go('/modules/mall/order/aftersale/detail', {\r\n id: item.afterSaleId,\r\n })\r\n \"\r\n >\r\n 退款成功\r\n </button>\r\n </view>\r\n </template>\r\n <template #priceSuffix>\r\n <button class=\"ss-reset-button tag-btn\" v-if=\"item.status_text\">\r\n {{ item.status_text }}\r\n </button>\r\n </template>\r\n </s-goods-item>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- 自提核销 -->\r\n <PickUpVerify\r\n :order-info=\"state.orderInfo\"\r\n :systemStore=\"systemStore\"\r\n ref=\"pickUpVerifyRef\"\r\n ></PickUpVerify>\r\n\r\n <!-- 订单信息 -->\r\n <view class=\"notice-box\">\r\n <view class=\"notice-box__content\">\r\n <view class=\"notice-item--center\">\r\n <view class=\"ss-flex ss-flex-1\">\r\n <text class=\"title\">订单编号:</text>\r\n <text class=\"detail\">{{ state.orderInfo.no }}</text>\r\n </view>\r\n <button class=\"ss-reset-button copy-btn\" @tap=\"onCopy\">复制</button>\r\n </view>\r\n <view class=\"notice-item\">\r\n <text class=\"title\">下单时间:</text>\r\n <text class=\"detail\">\r\n {{ sheep.$helper.timeFormat(state.orderInfo.createTime, 'yyyy-mm-dd hh:MM:ss') }}\r\n </text>\r\n </view>\r\n <view class=\"notice-item\" v-if=\"state.orderInfo.payTime\">\r\n <text class=\"title\">支付时间:</text>\r\n <text class=\"detail\">\r\n {{ sheep.$helper.timeFormat(state.orderInfo.payTime, 'yyyy-mm-dd hh:MM:ss') }}\r\n </text>\r\n </view>\r\n <view class=\"notice-item\">\r\n <text class=\"title\">支付方式:</text>\r\n <text class=\"detail\">{{ state.orderInfo.payChannelName || '-' }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- 价格信息 -->\r\n <view class=\"order-price-box\">\r\n <view class=\"notice-item ss-flex ss-row-between\">\r\n <text class=\"title\">商品总额</text>\r\n <view class=\"ss-flex\">\r\n <text class=\"detail\">¥{{ fen2yuan(state.orderInfo.totalPrice) }}</text>\r\n </view>\r\n </view>\r\n <view class=\"notice-item ss-flex ss-row-between\">\r\n <text class=\"title\">运费</text>\r\n <text class=\"detail\">¥{{ fen2yuan(state.orderInfo.deliveryPrice) }}</text>\r\n </view>\r\n <view class=\"notice-item ss-flex ss-row-between\" v-if=\"state.orderInfo.couponPrice > 0\">\r\n <text class=\"title\">优惠劵金额</text>\r\n <text class=\"detail\">-¥{{ fen2yuan(state.orderInfo.couponPrice) }}</text>\r\n </view>\r\n <view class=\"notice-item ss-flex ss-row-between\" v-if=\"state.orderInfo.pointPrice > 0\">\r\n <text class=\"title\">积分抵扣</text>\r\n <text class=\"detail\">-¥{{ fen2yuan(state.orderInfo.pointPrice) }}</text>\r\n </view>\r\n <view class=\"notice-item ss-flex ss-row-between\" v-if=\"state.orderInfo.discountPrice > 0\">\r\n <text class=\"title\">活动优惠</text>\r\n <text class=\"detail\">¥{{ fen2yuan(state.orderInfo.discountPrice) }}</text>\r\n </view>\r\n <view class=\"notice-item ss-flex ss-row-between\" v-if=\"state.orderInfo.vipPrice > 0\">\r\n <text class=\"title\">会员优惠</text>\r\n <text class=\"detail\">-¥{{ fen2yuan(state.orderInfo.vipPrice) }}</text>\r\n </view>\r\n <view class=\"notice-item all-rpice-item ss-flex ss-m-t-20\">\r\n <text class=\"title\">{{ state.orderInfo.payStatus ? '已付款' : '需付款' }}</text>\r\n <text class=\"detail all-price\">¥{{ fen2yuan(state.orderInfo.payPrice) }}</text>\r\n </view>\r\n <view\r\n class=\"notice-item all-rpice-item ss-flex ss-m-t-20\"\r\n v-if=\"state.orderInfo.refundPrice > 0\"\r\n >\r\n <text class=\"title\">已退款</text>\r\n <text class=\"detail all-price\">¥{{ fen2yuan(state.orderInfo.refundPrice) }}</text>\r\n </view>\r\n </view>\r\n\r\n <!-- 底部按钮 -->\r\n <!-- TODO: 查看物流、等待成团、评价完后返回页面没刷新页面 -->\r\n <su-fixed bottom placeholder bg=\"bg-white\" v-if=\"state.orderInfo.buttons?.length\">\r\n <view class=\"footer-box ss-flex ss-col-center ss-row-right\">\r\n <button\r\n class=\"ss-reset-button cancel-btn\"\r\n v-if=\"state.orderInfo.buttons?.includes('cancel')\"\r\n @tap=\"onCancel(state.orderInfo.id)\"\r\n >\r\n 取消订单\r\n </button>\r\n <button\r\n class=\"ss-reset-button pay-btn ui-BG-Main-Gradient\"\r\n v-if=\"state.orderInfo.buttons?.includes('pay')\"\r\n @tap=\"onPay(state.orderInfo.payOrderId)\"\r\n >\r\n 继续支付\r\n </button>\r\n <button\r\n class=\"ss-reset-button cancel-btn\"\r\n v-if=\"state.orderInfo.buttons?.includes('combination')\"\r\n @tap=\"\r\n sheep.$router.go('/modules/mall/activity/groupon/detail', {\r\n id: state.orderInfo.combinationRecordId,\r\n })\r\n \"\r\n >\r\n 拼团详情\r\n </button>\r\n <button\r\n class=\"ss-reset-button cancel-btn\"\r\n v-if=\"state.orderInfo.buttons?.includes('express')\"\r\n @tap=\"onExpress(state.orderInfo.id)\"\r\n >\r\n 查看物流\r\n </button>\r\n <button\r\n class=\"ss-reset-button cancel-btn\"\r\n v-if=\"state.orderInfo.buttons?.includes('confirm')\"\r\n @tap=\"onConfirm(state.orderInfo.id)\"\r\n >\r\n 确认收货\r\n </button>\r\n <button\r\n class=\"ss-reset-button cancel-btn\"\r\n v-if=\"state.orderInfo.buttons?.includes('comment')\"\r\n @tap=\"onComment(state.orderInfo.id)\"\r\n >\r\n 评价\r\n </button>\r\n </view>\r\n </su-fixed>\r\n </s-layout>\r\n</template>\r\n\r\n<script setup>\r\nimport sheep from '@/sheep'\r\nimport { onLoad } from '@dcloudio/uni-app'\r\nimport { reactive, ref } from 'vue'\r\nimport { isEmpty } from 'lodash-es'\r\nimport {\r\n fen2yuan,\r\n formatOrderStatus,\r\n formatOrderStatusDescription,\r\n handleOrderButtons,\r\n} from '@/sheep/hooks/useGoods'\r\nimport OrderApi from '@/sheep/api/trade/order'\r\nimport DeliveryApi from '@/sheep/api/trade/delivery'\r\nimport PickUpVerify from '@/modules/mall/order/pickUpVerify.vue'\r\n\r\nconst statusBarHeight = sheep.$platform.device.statusBarHeight * 2\r\nconst headerBg = sheep.$url.css('/static/img/shop/order/order_bg.png')\r\n\r\nconst state = reactive({\r\n orderInfo: {},\r\n merchantTradeNo: '', // 商户订单号\r\n comeinType: '', // 进入订单详情的来源类型\r\n})\r\n\r\n// ========== 门店自提(核销) ==========\r\nconst systemStore = ref({}) // 门店信息\r\n\r\n// 复制\r\nconst onCopy = () => {\r\n sheep.$helper.copyText(state.orderInfo.no)\r\n}\r\n\r\n// 去支付\r\nfunction onPay(payOrderId) {\r\n sheep.$router.go('/modules/mall/pay/index', {\r\n id: payOrderId,\r\n })\r\n}\r\n\r\n// 查看商品\r\nfunction onGoodsDetail(id) {\r\n sheep.$router.go('/modules/mall/goods/index', {\r\n id,\r\n })\r\n}\r\n\r\n// 取消订单\r\nasync function onCancel(orderId) {\r\n uni.showModal({\r\n title: '提示',\r\n content: '确定要取消订单吗?',\r\n success: async function (res) {\r\n if (!res.confirm) {\r\n return\r\n }\r\n const { code } = await OrderApi.cancelOrder(orderId)\r\n if (code === 0) {\r\n await getOrderDetail(orderId)\r\n }\r\n },\r\n })\r\n}\r\n\r\n// 查看物流\r\nasync function onExpress(id) {\r\n sheep.$router.go('/modules/mall/order/express/log', {\r\n id,\r\n })\r\n}\r\n\r\n// 确认收货\r\nasync function onConfirm(orderId, ignore = false) {\r\n // 需开启确认收货组件\r\n // todo: 芋艿:待接入微信\r\n // 1.怎么检测是否开启了发货组件功能如果没有开启的话就不能在这里return出去\r\n // 2.如果开启了走mpConfirm方法,需要在App.vue的show方法中拿到确认收货结果\r\n const isOpenBusinessView = true\r\n if (\r\n sheep.$platform.name === 'WechatMiniProgram' &&\r\n !isEmpty(state.orderInfo.wechat_extra_data) &&\r\n isOpenBusinessView &&\r\n !ignore\r\n ) {\r\n mpConfirm(orderId)\r\n return\r\n }\r\n\r\n // 正常的确认收货流程\r\n const { code } = await OrderApi.receiveOrder(orderId)\r\n if (code === 0) {\r\n await getOrderDetail(orderId)\r\n }\r\n}\r\n\r\n// #ifdef MP-WEIXIN\r\n// 小程序确认收货组件\r\nfunction mpConfirm(orderId) {\r\n if (!wx.openBusinessView) {\r\n sheep.$helper.toast(`请升级微信版本`)\r\n return\r\n }\r\n wx.openBusinessView({\r\n businessType: 'weappOrderConfirm',\r\n extraData: {\r\n merchant_trade_no: state.orderInfo.wechat_extra_data.merchant_trade_no,\r\n transaction_id: state.orderInfo.wechat_extra_data.transaction_id,\r\n },\r\n success(response) {\r\n console.log('success:', response)\r\n if (response.errMsg === 'openBusinessView:ok') {\r\n if (response.extraData.status === 'success') {\r\n onConfirm(orderId, true)\r\n }\r\n }\r\n },\r\n fail(error) {\r\n console.log('error:', error)\r\n },\r\n complete(result) {\r\n console.log('result:', result)\r\n },\r\n })\r\n}\r\n\r\n// #endif\r\n\r\n// 评价\r\nfunction onComment(id) {\r\n sheep.$router.go('/modules/mall/goods/comment/add', {\r\n id,\r\n })\r\n}\r\n\r\nconst pickUpVerifyRef = ref()\r\n\r\nasync function getOrderDetail(id) {\r\n // 对详情数据进行适配\r\n let res\r\n if (state.comeinType === 'wechat') {\r\n // TODO 芋艿:微信场景下\r\n res = await OrderApi.getOrder(id, {\r\n merchant_trade_no: state.merchantTradeNo,\r\n })\r\n } else {\r\n res = await OrderApi.getOrder(id)\r\n }\r\n if (res.code === 0) {\r\n state.orderInfo = res.data\r\n handleOrderButtons(state.orderInfo)\r\n // 配送方式:门店自提\r\n if (res.data.pickUpStoreId) {\r\n const { data } = await DeliveryApi.getDeliveryPickUpStore(res.data.pickUpStoreId)\r\n systemStore.value = data || {}\r\n }\r\n if (state.orderInfo.deliveryType === 2 && state.orderInfo.payStatus) {\r\n pickUpVerifyRef.value && pickUpVerifyRef.value.markCode(res.data.pickUpVerifyCode)\r\n }\r\n } else {\r\n sheep.$router.back()\r\n }\r\n}\r\n\r\nonLoad(async (options) => {\r\n let id = 0\r\n if (options.id) {\r\n id = options.id\r\n }\r\n // TODO 芋艿:下面两个变量,后续接入\r\n state.comeinType = options.comein_type\r\n if (state.comeinType === 'wechat') {\r\n state.merchantTradeNo = options.merchant_trade_no\r\n }\r\n await getOrderDetail(id)\r\n})\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n \r\n.score-img {\r\n width: 36rpx;\r\n height: 36rpx;\r\n margin: 0 4rpx;\r\n}\r\n\r\n.apply-btn {\r\n width: 140rpx;\r\n height: 50rpx;\r\n margin-left: 16rpx;\r\n font-size: 24rpx;\r\n line-height: normal;\r\n border: 2rpx solid #dcdcdc;\r\n border-radius: 25rpx;\r\n}\r\n\r\n.state-box {\r\n box-sizing: border-box;\r\n width: 100%;\r\n color: rgba(#fff, 0.9);\r\n background:\r\n v-bind(headerBg) no-repeat,\r\n linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));\r\n background-size: 750rpx 100%;\r\n\r\n .state-img {\r\n width: 60rpx;\r\n height: 60rpx;\r\n margin-right: 20rpx;\r\n }\r\n}\r\n\r\n.order-address-box {\r\n box-sizing: border-box;\r\n padding: 44rpx 34rpx 42rpx 20rpx;\r\n margin: -50rpx 20rpx 16rpx 20rpx;\r\n font-size: 30rpx;\r\n font-weight: 500;\r\n color: rgba(51, 51, 51, 1);\r\n background-color: #fff;\r\n border-radius: 10rpx;\r\n\r\n .address-username {\r\n margin-right: 20rpx;\r\n }\r\n\r\n .address-detail {\r\n margin-top: 20rpx;\r\n font-size: 26rpx;\r\n font-weight: 500;\r\n color: rgba(153, 153, 153, 1);\r\n }\r\n}\r\n\r\n.detail-goods {\r\n margin: 0 20rpx 20rpx 20rpx;\r\n border-radius: 10rpx;\r\n\r\n .order-list {\r\n margin-bottom: 20rpx;\r\n background-color: #fff;\r\n\r\n .order-card {\r\n padding: 20rpx 0;\r\n\r\n .order-sku {\r\n width: 450rpx;\r\n margin-bottom: 20rpx;\r\n font-size: 24rpx;\r\n\r\n font-weight: 400;\r\n color: rgba(153, 153, 153, 1);\r\n\r\n .order-num {\r\n margin-right: 10rpx;\r\n }\r\n }\r\n\r\n .tag-btn {\r\n height: 36rpx;\r\n padding: 0 4rpx;\r\n margin-left: 16rpx;\r\n font-size: 24rpx;\r\n color: var(--ui-BG-Main);\r\n border: 2rpx solid var(--ui-BG-Main);\r\n border-radius: 14rpx;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// 订单信息。\r\n.notice-box {\r\n margin: 0 20rpx 20rpx 20rpx;\r\n background: #fff;\r\n border-radius: 10rpx;\r\n\r\n .notice-box__head {\r\n padding: 0 25rpx;\r\n font-size: 30rpx;\r\n\r\n font-weight: 500;\r\n line-height: 80rpx;\r\n color: rgba(51, 51, 51, 1);\r\n border-bottom: 1rpx solid #dfdfdf;\r\n }\r\n\r\n .notice-box__content {\r\n padding: 20rpx;\r\n\r\n .self-pickup-box {\r\n width: 100%;\r\n\r\n .self-pickup--img {\r\n width: 200rpx;\r\n height: 200rpx;\r\n margin: 40rpx 0;\r\n }\r\n }\r\n }\r\n\r\n .notice-item,\r\n .notice-item--center {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 24rpx;\r\n line-height: normal;\r\n\r\n .title {\r\n font-size: 28rpx;\r\n color: #999;\r\n }\r\n\r\n .detail {\r\n flex: 1;\r\n font-size: 28rpx;\r\n color: #333;\r\n }\r\n }\r\n}\r\n\r\n.copy-btn {\r\n width: 100rpx;\r\n padding: 0;\r\n font-size: 22rpx;\r\n font-weight: 400;\r\n line-height: 50rpx;\r\n color: rgba(51, 51, 51, 1);\r\n background: rgba(238, 238, 238, 1);\r\n border-radius: 25rpx;\r\n}\r\n\r\n// 订单价格信息\r\n.order-price-box {\r\n padding: 20rpx;\r\n margin: 0 20rpx 20rpx 20rpx;\r\n background-color: #fff;\r\n border-radius: 10rpx;\r\n\r\n .notice-item {\r\n line-height: 70rpx;\r\n\r\n .title {\r\n font-size: 28rpx;\r\n color: #999;\r\n }\r\n\r\n .detail {\r\n font-family: OPPOSANS;\r\n font-size: 28rpx;\r\n color: #333;\r\n }\r\n }\r\n\r\n .all-rpice-item {\r\n align-items: center;\r\n justify-content: flex-end;\r\n\r\n .title {\r\n font-size: 26rpx;\r\n font-weight: 500;\r\n line-height: normal;\r\n color: #333333;\r\n }\r\n\r\n .all-price {\r\n font-family: OPPOSANS;\r\n font-size: 26rpx;\r\n line-height: normal;\r\n color: $red;\r\n }\r\n }\r\n}\r\n\r\n// 底部\r\n.footer-box {\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 100rpx;\r\n padding-right: 20rpx;\r\n border-radius: 10rpx;\r\n\r\n .cancel-btn {\r\n width: 160rpx;\r\n height: 60rpx;\r\n margin-right: 20rpx;\r\n font-size: 26rpx;\r\n font-weight: 400;\r\n color: #333333;\r\n background: #eeeeee;\r\n border-radius: 30rpx;\r\n }\r\n\r\n .pay-btn {\r\n width: 160rpx;\r\n height: 60rpx;\r\n font-size: 26rpx;\r\n font-weight: 500;\r\n color: #fff;\r\n border-radius: 30rpx;\r\n }\r\n}\r\n</style>\r\n","import MiniProgramPage from 'D:/App/Work/addr/acdr-ui/src/modules/mall/order/detail.vue'\nwx.createPage(MiniProgramPage)"],"names":["sheep","reactive","ref","uni","OrderApi","isEmpty","wx","handleOrderButtons","DeliveryApi","onLoad"],"mappings":"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"}