From b37bca8f7a6cdae798e74f14b51936e3a6a9637c Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期四, 29 八月 2024 22:42:14 +0800 Subject: [PATCH] update 售后问题 --- pages/order/order.vue | 160 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 133 insertions(+), 27 deletions(-) diff --git a/pages/order/order.vue b/pages/order/order.vue index 96bc190..0859686 100644 --- a/pages/order/order.vue +++ b/pages/order/order.vue @@ -1,11 +1,13 @@ <script> export default { + data() { return { type: 'customer', query: { status: '', }, + timer: undefined, status: [{ name: '全部', value: '' @@ -37,10 +39,50 @@ ] }; }, - onLoad(options) { + onUnload() { + this.timer && clearTimeout(this.timer) + }, + async onLoad(options) { this.query.status = options.status || '' this.listApi = `/api/customer/order/list` - this.getList() + await this.getList() + this.timer = setInterval(() => { + //倒计时 + var nowdate = new Date().getTime() - 1000 * 60 * 5 + var change = false + for (var item of this.list) { + if (item.statusBackend === 'PENDING') { + //计算倒计时 + var diff = new Date(item.createTime).getTime() - nowdate + // console.log('diff', diff, item) + if (diff <= 2000 && true) { + //超过了5分钟 + item.statusBackend = 'CANCEL' + item.statusBackend = '已取消' + item.status = 'CANCEL' + item.statusStr = '已取消' + + item.bctime = '' + change = true + + } else { + //相差 + var alltime = parseInt(diff / 1000) + var tt = 0 + if (alltime > 60) { + tt = alltime - parseInt(alltime / 60) * 60 + } else { + tt = alltime + } + item.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}` + change = true + + } + } + } + if (change) + this.$forceUpdate() + }, 1000) }, onReachBottom() { this.getMore() @@ -58,9 +100,10 @@ url: '/pages/order/order-detail?id=' + item.id }) }, - toDetailSale(item) { + toDetailSaleInfo(dto, flower) { + console.log('flower', dto, flower) uni.navigateTo({ - url: '/pages/order/order-detail?showsales=1&id=' + item.id + url: '/pages/order/order-detail?showsales=1&id=' + dto.id + '&flowerId=' + flower.id }) }, async buttonClick(item, buttontype) { @@ -85,18 +128,62 @@ break case 'confirm': { await this.$message.confirm('是否确定收货') - // 发送请求 - this.$message.showLoading() - const { - code - } = await this.$http.request('get', '/api/customer/order/receive/confirm', { - params: { - id: item.id, + var tryCallWx = false + // #ifdef MP + let tmp = this + if (wx.openBusinessView && item.paymentTrId) { + tryCallWx = true + wx.openBusinessView({ + businessType: 'weappOrderConfirm', + extraData: { + // merchant_id: '1230000109', + // merchant_trade_no: '1234323JKHDFE1243252', + transaction_id: item.paymentTrId + }, + async success() { + //dosomething + // 发送请求 + tmp.$message.showLoading() + const { + code + } = await tmp.$http.request('get', + '/api/customer/order/receive/confirm', { + params: { + id: item.id, + } + }) + tmp.$message.hideLoading() + if (code === 0) { + tmp.refreshList() + } + }, + fail(e) { + //dosomething + console.log('error fail', e) + tmp.$message.showToast('收货失败') + }, + complete() { + //dosomething + } + }); + } + + // #endif + + if (!tryCallWx) { + // 发送请求 + this.$message.showLoading() + const { + code + } = await this.$http.request('get', '/api/customer/order/receive/confirm', { + params: { + id: item.id, + } + }) + this.$message.hideLoading() + if (code === 0) { + this.refreshList() } - }) - this.$message.hideLoading() - if (code === 0) { - this.refreshList() } } @@ -182,7 +269,7 @@ } } break - case 'delOrder':{ + case 'delOrder': { await this.$message.confirm('是否删除此订单') // 发送请求 this.$message.showLoading() @@ -248,6 +335,7 @@ </view> <view class="value">{{ dto.deliveryNo }}</view> </view> + <view class="flex"> <view class="desc flex flex1"> <view class="label"> @@ -262,20 +350,29 @@ <view class="value">{{ dto.customerTel || '-' }}</view> </view> </view> - <view class="desc flex"> - <view class="label"> - 收货地址: + <view class="flex"> + <view class="desc flex flex1"> + <view class="label"> + 收货地址: + </view> + <view class="value">{{ dto.customerAddress }}</view> </view> - <view class="value">{{ dto.customerAddress }}</view> + <view class="desc flex flex1" v-if="dto.deliveryName"> + <view class="label"> + 快递名称: + </view> + <view class="value">{{ dto.deliveryName }}</view> + </view> </view> + <view class="desc flex" v-if="dto.statusBackend!=='PENDING'&&dto.statusBackend!=='CANCEL'"> <view class="label"> 支付时间: </view> <view class="value">{{ dto.paymentTime || '-' }}</view> </view> - <view class="flower-info m-b-5 m-t-8 br-4" v-for="(item,index) of dto.items" :key="index"> - <view class="line-gray"></view> + <view class="flower-info m-b-5 m-t-8 br-4" v-for="(item,j) of dto.items" :key="j"> + <!-- <view class="line-gray"></view> --> <view class="supplier-name "> <image class="icon-dp br-4" src="/static/common/icon-dp.png"></image> @@ -320,6 +417,15 @@ </view> </view> </view> + <view class="line-gray" v-if="dto.statusBackend!=='COMPLETED'&&dto.statusBackend!=='SEND'&&dto.statusBackend=='RECEIVE'"></view> + <!-- dtoId:{{dto.id}} --> + <!-- flowerId:{{item.id}} --> + <view class="flex buttons" v-if="dto.statusBackend!=='COMPLETED'&&dto.statusBackend!=='SEND'&&dto.statusBackend=='RECEIVE'"> + <view class="button button-1 m-l-a m-r-0" @click="toDetailSaleInfo(dto,item)" + v-if="dto.statusBackend === 'RECEIVE'"> 申请售后 + </view> + </view> + </view> <view class="line-gray"></view> @@ -330,7 +436,7 @@ <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='PENDING'" @click="buttonClick(dto,'cancelOrder')">取消订单</view> <view class="button button-1 m-l-15 m-r-15" v-if="dto.statusBackend==='PENDING'" - @click="buttonClick(dto,'payAgain')">重新支付</view> + @click="buttonClick(dto,'payAgain')">重新支付<span v-if="dto.bctime">({{dto.bctime}})</span></view> <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'refund')" v-if="dto.couldRefund"> @@ -339,10 +445,10 @@ <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'confirm')" v-if="dto.statusBackend ==='RECEIVE'"> 确认收货 </view> - - <view class="button button-1 m-l-a m-r-15" @click="toDetailSale(dto)" - v-if="dto.statusBackend === 'EVALUATE'||item.statusBackend=='COMPLETED'"> 申请售后 - </view> + <!-- ||item.statusBackend=='COMPLETED' --> + <!-- <view class="button button-1 m-l-a m-r-15" @click="toDetailSale(dto)" + v-if="dto.statusBackend === 'RECEIVE'"> 申请售后 + </view> --> <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'evaluate')" v-if="dto.statusBackend === 'EVALUATE'"> 评价 </view> -- Gitblit v1.9.3