From ded34e37fca5e2e05e17693d2524c3d664ebf017 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期三, 14 八月 2024 11:20:18 +0800 Subject: [PATCH] update 搜索历史 --- pages/order/order.vue | 310 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 268 insertions(+), 42 deletions(-) diff --git a/pages/order/order.vue b/pages/order/order.vue index a53af5d..ee974fb 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,13 +39,52 @@ ] }; }, - 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.page.current += 1 this.getMore() }, async onPullDownRefresh() { @@ -72,14 +113,14 @@ this.$message.showLoading() const { code - } = await this.$http.request('post', '/api/customer/order/refund', { - data: { + } = await this.$http.request('get', '/api/customer/order/refund', { + params: { id: item.id, - evaluate: res.content } }) this.$message.hideLoading() if (code === 0) { + this.$store.dispatch('sign_add', 'order') this.refreshList() } } @@ -124,6 +165,7 @@ console.log('pay success', res) that.$message.showToast('支付成功') setTimeout(() => { + that.$store.dispatch('sign_add', 'order') that.refreshList() }, 200) }, @@ -165,8 +207,41 @@ // }, case 'cancelOrder': { - this.$message.showToast('敬请期待') - }, + await this.$message.confirm('是否取消订单') + // 发送请求 + this.$message.showLoading() + const { + code + } = await this.$http.request('get', '/api/customer/order/cancel', { + params: { + id: item.id, + } + }) + this.$message.hideLoading() + if (code === 0) { + this.$store.dispatch('sign_add', 'order') + this.refreshList() + } + } + break + case 'delOrder': { + await this.$message.confirm('是否删除此订单') + // 发送请求 + this.$message.showLoading() + const { + code + } = await this.$http.request('get', '/api/customer/order/delete', { + params: { + id: item.id, + } + }) + this.$message.hideLoading() + if (code === 0) { + // this.$store.dispatch('sign_add', 'order') + this.refreshList() + } + } + break default: break } @@ -177,7 +252,7 @@ </script> <template> <view class="order-container"> - <view class="order-top"> + <view class="order-top" v-if="false"> <view class="title">订单信息</view> <view class="flex"> <image class="image img100" @@ -195,68 +270,138 @@ </view> </view> <no-data v-if="!list||list.length===0" style="width: 100%;" class="m-t-12"></no-data> - <view v-for="(item,index) in list" :key="index" class="m-t-12"> + <view v-for="(dto,index) in list" :key="index" class="m-t-12"> <view class="order-item list-item"> <view class="title flex"> <view> - 订单:{{ item.orderNo }} + 订单:{{ dto.orderNo }} </view> - <view class="status t-red m-l-a m-r-0">¥{{ item.paymentAmount || item.totalAmount || '0'}}</view> + <view class="status t-red m-l-a m-r-0">¥{{ dto.paymentAmount || dto.totalAmount || '0'}}</view> </view> - <view class="desc flex" v-if="!query.status"> + <view class=" desc flex" v-if="!query.status"> <view class="label"> 订单状态: </view> - <view class="value">{{ item.statusBackendStr }}</view> + <view class="value" style="color: #000">{{ dto.statusBackendStr || '-' }}</view> </view> - <view class="desc flex"> + <view class="desc flex" v-if="dto.deliveryNo" @click="copyTxt(dto.deliveryNo)"> <view class="label"> - 收货人: + 快递单号: </view> - <view class="value">{{ item.customer }}</view> + <view class="value">{{ dto.deliveryNo }}</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.customer || '-' }}</view> </view> - <view class="value">{{ item.customerTel }}</view> - </view> - <view class="desc flex"> - <view class="label"> - 收货地址: + <view class="desc flex flex1"> + <view class="label"> + 收货人手机号码: + </view> + <view class="value">{{ dto.customerTel || '-' }}</view> </view> - <view class="value">{{ item.customerAddress }}</view> </view> - <view class="desc flex" v-if="item.status!=='PENDING'"> + <view class="flex"> + <view class="desc flex flex1"> + <view class="label"> + 收货地址: + </view> + <view class="value">{{ dto.customerAddress }}</view> + </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">{{ item.paymentTime }}</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="supplier-name "> + <image class="icon-dp br-4" src="/static/common/icon-dp.png"></image> + {{ item.supplierName }} + </view> + <view class="flex m-t-12 flex-wrap-normal"> + <image class="flower-img img100 m-r-6" :src="item.flowerCover" + @click="previewImg(item.flowerCover)"> + </image> + <view class="flex1"> + <view class=" flex"> + <view class="title"><span class="level">{{ item.flowerCategory }}</span><span + class="level">{{ item.flowerLevelStr }}</span>{{ item.flowerName }} + </view> + </view> + <view class="each-list"> + <view class="each-item"> + <view class="label">颜色</view> + <view class="value">{{ item.flowerColor || '-' }}</view> + + </view> + <view class="each-item"> + <view class="label">规格</view> + <view class="value">{{ item.flowerUnit || '-' }}</view> + </view> + + <view class="each-item"> + <view class="label">数量</view> + <view class="value">{{ item.num || 0 }}</view> + + </view> + <view class="each-item"> + <view class="label">售价</view> + <view class="value">¥{{ item.price || 0 }}</view> + + </view> + <view class="each-item"> + <view class="label">商品总金额</view> + <view class="value">¥{{ item.total || 0 }}</view> + + </view> + </view> + </view> + </view> + </view> <view class="line-gray"></view> - <view class="flex buttons"> - <view class="button button-0 m-l-a m-r-0" v-if="item.status==='PENDING'" - @click="buttonClick(item,'cancelOrder')">取消订单</view> - <view class="button button-1 m-l-15 m-r-0" v-if="item.status==='PENDING'" - @click="buttonClick(item,'payAgain')">重新支付</view> - <view class="button button-0 m-l-a m-r-0" @click="buttonClick('refund')" v-if="item.couldRefund"> + <view class="flex buttons"> + <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='CANCEL'" + @click="buttonClick(dto,'delOrder')">删除订单</view> + <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')">重新支付<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"> 申请退款 </view> - <view class="button button-0 m-l-a m-r-0" @click="buttonClick('confirm')" - v-if="item.status ==='RECEIVE'"> 确认收货 + <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-0" @click="toDetailSale(item)" - v-if=" item.status === 'EVALUATE'||item.status=='COMPLETED'"> 申请售后 + <!-- ||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-0" @click="buttonClick(item,'evaluate')" - v-if=" item.status === 'EVALUATE'"> 评价 + <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'evaluate')" + v-if="dto.statusBackend === 'EVALUATE'"> 评价 </view> - <view class="button button-1 m-l-15 m-r-0" @click="toDetail(item)">查看详情</view> + <view class="button button-1 m-l-a m-r-0" @click="toDetail(dto)">查看详情</view> </view> </view> @@ -317,6 +462,7 @@ background: #20613D; text-align: center; border-radius: 30rpx; + min-width: 80rpx; } @@ -333,6 +479,86 @@ } } + .flower-info { + padding: 0rpx; + + background: #FFFFFF; + border-radius: 8rpx; + + .supplier-name { + border-bottom: 2rpx solid #EEEEEE; + font-weight: 600; + font-size: 28rpx; + color: #000000; + padding-bottom: 10rpx; + line-height: 40rpx; + + .icon-dp { + width: 27rpx; + height: 27rpx; + display: inline-block; + vertical-align: middle; + } + } + + .title { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + + .level { + font-weight: 400; + font-size: 28rpx; + color: #20613D; + line-height: 40rpx; + margin-right: 20rpx; + } + } + + .flower-img { + width: 128rpx; + height: 118rpx; + min-width: 128rpx; + min-height: 118rpx; + } + + .each-list { + display: flex; + flex-wrap: wrap; + margin-top: 6rpx; + + .each-item { + min-width: 40%; + max-width: 50%; + text-align: center; + margin-left: 0rpx; + margin-right: auto; + display: flex; + + .label { + font-weight: 400; + font-size: 24rpx; + color: #666666; + text-align: left; + padding-right: 10rpx; + } + + .label::after { + content: ": " + } + + .value { + font-weight: 400; + font-size: 24rpx; + color: #666666; + } + } + } + + } + + } .status-list { -- Gitblit v1.9.3