陶杰
2024-12-10 b07889e22f823fac80a66b503671e170668f4ee6
pages/order/order-detail.vue
@@ -15,19 +15,7 @@
            type: 'partner',
            // #endif
            salesTypeDef: 0,
            salesTypeList: [{
                  label: '请选择售后类型',
                  value: '',
               },
               {
                  label: '换货',
                  value: 'barters',
               },
               {
                  label: '退货',
                  value: 'returns',
               },
            ],
            salesTypeList: [],
         };
      },
      onUnload() {
@@ -54,11 +42,20 @@
            }
            this.showSales = options.showsales && true || false
            if (this.dto.statusBackend === 'PENDING' || this.dto.status === 'PENDING') {
            if (this.dto.statusBackend === 'PENDING') {
               this.timer = setInterval(() => {
               this.timer = setInterval(async () => {
                  //倒计时,修改成
                  // var nowdate = new Date().getTime() - 1000 * 60 * 15
                  let res = await this.$http.request('get', `/api/order/time/now`, {
                     params: {}
                  })
                  let serverTime=res.data;
                  //倒计时
                  var nowdate = new Date().getTime() - 1000 * 60 * 5
                  var nowdate = serverTime - 1000 * 60 * 15
                  var change = false
                  //计算倒计时
@@ -85,7 +82,9 @@
                     } else {
                        tt = alltime
                     }
                     this.dto.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}`
                     // this.dto.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}`
                     this.dto.bctime = `${parseInt(alltime / 60) < 10 ? '0' : ''}${parseInt(alltime / 60)}:${tt < 10 ? '0' : ''}${tt}`
                     change = true
                  }
@@ -98,8 +97,80 @@
         }
         this.$http.request('get', '/api/code/value', {
            params: {
               type: 'after_sale_type'
            }
         }).then(res => {
            var data = res.data;
            let tmpData = data.map(item => ({
               value: item.value,
               label: item.label
            }));
            // 将 '全部' 选项插入到 tmpData 的开头
            this.salesTypeList = tmpData;
            this.salesTypeList.unshift({
               label: '全部',
               value: ''
            });
         })
      },
      methods: {
         // 商品评论
         commentButtonClick(){
            // 跳转的到评论列表
            uni.navigateTo({
               url: '/pages/order/comment/order-comment?orderId='+this.id
            })
         },
         openbrand(item) {
            //也要判断一下是否重复进入
            //判断堆栈,如果是店铺,就直接返回
            //或者是:从商铺到列表再到详情,再到商铺,这种也不行
            const pages = getCurrentPages();
            console.log('toShopping', pages)
            if (pages && pages.length >= 2) {
               if (pages[pages.length - 2].route === "sub_pages/customer/shop/shop") {
                  uni.navigateBack()
                  return
               }
            }
            if (pages && pages.length >= 3) {
               if (pages[pages.length - 3].route === "sub_pages/customer/shop/shop" &&
                  pages[pages.length - 2].route === "sub_pages/customer/trade/list"
               ) {
                  uni.navigateBack({
                     delta: 2
                  })
                  return
               }
            }
            if (pages.length >= 10) {
               //直接强制购物车
               uni.reLaunch({
                  url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '')
               })
            } else {
               uni.navigateTo({
                  url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '')
               })
            }
         },
         toFlowerDetail(item) {
            console.log(item)
            uni.navigateTo({
               url: `/sub_pages/customer/trade/detail?id=${item.flowerId}`
            })
         },
         salesTypeChange(e) {
            this.submitForm.salesType = e.value
         },
@@ -126,14 +197,49 @@
                  //    description: 'descriptiondescriptiondescriptiondescriptiondescription'
                  // }]
               }
               if (this.dto.statusBackend === 'PENDING') {
                  let res = await this.$http.request('get', `/api/order/time/now`, {
                     params: {}
                  })
                  let serverTime=res.data;
                  //先判断要不要字节变成已取消
                  var nowdate = serverTime - 1000 * 60 * 15
                  // var nowdate = new Date().getTime() - 1000 * 60 * 5
                  var diff = new Date(this.dto.createTime).getTime() - nowdate
                  if (diff <= 2000 && true) {
                     //超过了5分钟
                     this.dto.statusBackend = 'CANCEL'
                     this.dto.statusBackendStr = '已取消'
                     this.dto.status = 'CANCEL'
                     this.dto.statusStr = '已取消'
                     this.dto.bctime = ''
                     this.$forceUpdate()
                  }
               }
            }
         },
         async callTel() {
            await this.$message.confirm('是否拨打客服电话')
            uni.makePhoneCall({
               phoneNumber: '15974805814'
               phoneNumber: '19288780072'
            });
         },
         async getTelNum(){
            this.$http.request('get', '/api/code/value', {
               params: {
                  type: 'customer_service_hotline'
               }
            }).then(res => {
               var data = res.data;
               console.log(data)
            })
         },
         async getItemList() {
            this.$message.showLoading()
            const {
@@ -183,24 +289,37 @@
                        extraData: {
                           // merchant_id: '',
                           // merchant_trade_no: '',
                           // merchant_id: '1661512517',
                           // merchant_trade_no: tmp.id || '',
                           transaction_id: tmp.dto && tmp.dto.paymentTrId || ''
                        },
                        async success() {
                        async success(info) {
                           console.log('info', info)
                           //dosomething
                           // 发送请求
                           tmp.$message.showLoading()
                           const {
                              code
                           } = await tmp.$http.request('get',
                              '/api/customer/order/receive/confirm', {
                                 params: {
                                    id: tmp.id,
                                 }
                              })
                           tmp.$message.hideLoading()
                           if (code === 0) {
                              tmp.getDetail()
                           if (info.extraData && info.extraData.status === 'fail') {
                              tmp.$message.showToast('支付和确认收货需要是同一微信号,请联系实际支付人登录确认')
                           } else if (info.extraData && info.extraData.status === 'cancel') {
                           } else {
                              tmp.$message.showLoading()
                              const {
                                 code
                              } = await tmp.$http.request('get',
                                 '/api/customer/order/receive/confirm', {
                                    params: {
                                       id: tmp.id,
                                    }
                                 })
                              tmp.$message.hideLoading()
                              if (code === 0) {
                                 tmp.getDetail()
                                 tmp.$store.dispatch('getCurrentInfo')
                              }
                           }
                        },
                        fail(e) {
                           //dosomething
@@ -229,6 +348,8 @@
                     this.$message.hideLoading()
                     if (code === 0) {
                        this.getDetail()
                        this.$store.dispatch('getCurrentInfo')
                        this.$message.showToast('收货成功')
                     }
                  }
@@ -393,10 +514,13 @@
            //    this.$message.showToast('未选择需要售后的商品')
            //    return
            // }
            if (isNaN(parseFloat(this.submitForm.num)) || this.submitForm.num <= 0) {
            if (isNaN(parseInt(this.submitForm.num)) || this.submitForm.num <= 0 || parseInt(this.submitForm
               .num) <= 0) {
               this.$message.showToast('售后数量需要大于0')
               return
            }
            this.submitForm.num = parseInt(this.submitForm.num) || 1
            if (!this.submitForm.salesType) {
               this.$message.showToast('未填写售后类型')
               return
@@ -465,9 +589,11 @@
      <view v-for="(item,index) of list" :key="index">
         <view class="flower-info m-b-20 m-t-12 br-4"
            v-if="!showSales||showSales&&(submitForm.orderItemId == item.id)">
            <view class="supplier-name ">
               <image class="icon-dp" src="/static/common/icon-dp.png"></image>
               {{ item.supplierName || ''}}
            <view class="supplier-name " >
               <view  @click.stop="openbrand(item)" style="display: inline-block;">
                  <image class="icon-dp br-4" src="/static/common/icon-dp.png"></image>
                  {{ item.supplierName|| '' }} >
               </view>
            </view>
            <!-- submitForm.orderItemId:{{submitForm.orderItemId}} -->
            <!-- itemId:{{item.id}} -->
@@ -476,10 +602,9 @@
               <!-- @click="changeSalesOrderItem(item)" -->
               <!-- :checked="submitForm.orderItems.indexOf(item.id)>=0" -->
               <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover"
                  @click="previewImg(item.flowerCover)">
               </image>
               <view class="flex1">
               <!-- <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover" @click="previewImg(item.flowerCover)"></image> -->
               <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover" @click="toFlowerDetail(item)"></image>
               <view class="flex1" @click.stop="toFlowerDetail(item)">
                  <view class=" flex">
                     <view class="title"><span class="level">{{ item.flowerCategory || ''}}</span><span
                           class="level">{{ item.flowerLevelStr || ''}}</span>{{ item.flowerName || ''}}
@@ -538,7 +663,7 @@
         </view>
         <view class="form-item">
            <view class="label">下单日期:</view>
            <view class="value">{{ dto.paymentTime || '-' }}</view>
            <view class="value">{{ dto.createTime || '-' }}</view>
         </view>
         <view class="form-item" v-if="dto.cancelTime&&(dto.status==='CANCEL'||dto.status==='REFUND')">
            <view class="label">取消时间:</view>
@@ -584,11 +709,29 @@
         </view>
      </view>
      <view class="info-container bg-white br-4 m-t-12" v-if="!showSales">
         <view class="form-item">
            <view class="label">订单金额:</view>
            <view class="value">{{ dto.totalAmount || '-' }}</view>
         <view class="form-item flex">
            <view class="label">商品金额:</view>
            <view class="value m-l-a m-r-0 text-right">+{{ dto.flowerAmount || '0' }}</view>
         </view>
         <view class="form-item">
         <view class="form-item flex">
            <view class="label">运费:</view>
            <view class="value  m-l-a m-r-0 text-right">+{{ dto.transportFee || '0' }}</view>
         </view>
         <view class="form-item flex">
            <view class="label">打包费:</view>
            <view class="value  m-l-a m-r-0 text-right">+{{ dto.packingFee || '0' }}</view>
         </view>
         <view class="form-item flex t-red">
            <view class="label">优惠:</view>
            <view class="value  m-l-a m-r-0 text-right">-{{ dto.memberCouponAmount || '0' }}</view>
         </view>
         <view class="form-item flex t-red">
            <view class="label">实际支付:</view>
            <view class="value  m-l-a m-r-0 text-right">¥{{ dto.paymentAmount || '0' }}</view>
         </view>
         <!--    <view class="form-item">
            <view class="label">支付金额:</view>
            <view class="value">{{ dto.paymentAmount || '-' }}</view>
         </view>
@@ -596,10 +739,7 @@
            <view class="label">商品金额:</view>
            <view class="value">{{ dto.flowerAmount || '-' }}</view>
         </view>
         <view class="form-item">
            <view class="label">运费:</view>
            <view class="value">{{ dto.transportFee || '-' }}</view>
         </view>
         <view class="form-item">
            <view class="label">折扣类型:</view>
            <view class="value">{{ dto.memberDiscountTypeStr || '-' }}</view>
@@ -611,11 +751,11 @@
         <view class="form-item">
            <view class="label">优惠券:</view>
            <view class="value">{{ dto.memberCouponName || '-' }}</view>
         </view>
         <view class="form-item">
         </view> -->
         <!--    <view class="form-item">
            <view class="label">优惠金额:</view>
            <view class="value">{{ dto.memberCouponAmount || '-' }}</view>
         </view>
         </view> -->
      </view>
      <view class="info-container bg-white br-4 m-t-12"
         v-if="!showSales&& dto.pointGoodsList&& dto.pointGoodsList.length>0">
@@ -660,7 +800,7 @@
         <view class="flex m-t-12">
            <view class="flex1 w-fit m-auto icon-view" @click.stop="callTel">
               <image src="/static/common/icon-call.png" class="icon icon-call m-r-10  img100"></image>
               拨打15974805814
               拨打19288780072
            </view>
            <view class="flex1 w-fit m-auto icon-view flex flex-wrap-normal" open-type="contact">
               <image src="/static/common/icon-wx.png" class="icon icon-call m-t-2  m-r-10 img100"></image>