xuxueyang
2024-08-13 a4ea10b61135956b23a0a44ddd4620c6ee9b9c02
update 倒计时
已修改3个文件
102 ■■■■■ 文件已修改
pages/order/order-detail.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shopping/confirm.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order-detail.vue
@@ -6,6 +6,7 @@
                dto: {},
                showSales: false,
                submitForm: {},
                timer: undefined,
                type: '',
                // #ifdef PUB_CUSTOMER
                type: 'customer',
@@ -14,6 +15,9 @@
                type: 'partner',
                // #endif
            };
        },
        onUnload() {
            this.timer && clearTimeout(this.timer)
        },
        async onLoad(options) {
            console.log('options', options)
@@ -31,6 +35,47 @@
                    orderItems: []
                }
                this.showSales = options.showsales && true || false
                if (this.dto.statusBackend === 'PENDING') {
                    this.timer = setInterval(() => {
                        //倒计时
                        var nowdate = new Date().getTime() - 1000 * 60 * 5
                        var change = false
                        //计算倒计时
                        var diff = new Date(this.dto.createTime).getTime() - nowdate
                        console.log('diff', diff)
                        if (diff <= 2000 && true) {
                            //超过了5分钟
                            this.dto.statusBackend = 'CANCEL'
                            this.dto.statusBackendStr = '已取消'
                            this.dto.status = 'CANCEL'
                            this.dto.statusStr = '已取消'
                            this.dto.bctime = ''
                            // console.log('change cancel', this.dto)
                            change = true
                            clearInterval(this.timer)
                            this.timer = undefined
                        } else {
                            //相差
                            var alltime = parseInt(diff / 1000)
                            var tt = 0
                            if (alltime > 60) {
                                tt = alltime - parseInt(alltime / 60) * 60
                            } else {
                                tt = alltime
                            }
                            this.dto.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}`
                            change = true
                        }
                        if (change)
                            this.$forceUpdate()
                    }, 1000)
                }
            }
        },
@@ -527,13 +572,13 @@
            </view>
            <view class="button button-1" @click="buttonClick('confirm')" v-if="dto.status ==='RECEIVE'"> 确认收货
            </view>
            <view class="button button-1" @click="buttonClick('payAgain')" v-if=" dto.status === 'PENDING'"> 重新支付
            <view class="button button-1" @click="buttonClick('payAgain')" v-if=" dto.status === 'PENDING'"> 重新支付<span
                    v-if="dto.bctime">({{dto.bctime}})</span>
            </view>
            <view class="button button-1" @click="buttonClick('evaluate')" v-if=" dto.status === 'EVALUATE'"> 评价
            </view>
            <!-- ||dto.status=='COMPLETED' -->
            <view class="button button-1" @click="buttonClick('sales')"
                v-if=" dto.status === 'RECEIVE'"> 申请售后
            <view class="button button-1" @click="buttonClick('sales')" v-if=" dto.status === 'RECEIVE'"> 申请售后
            </view>
        </view>
        <view v-if="showSales">
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()
@@ -277,7 +319,7 @@
                        <view class="value">{{ dto.deliveryName }}</view>
                    </view>
                </view>
                <view class="desc flex" v-if="dto.statusBackend!=='PENDING'&&dto.statusBackend!=='CANCEL'">
                    <view class="label">
                        支付时间:
@@ -340,7 +382,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">
sub_pages/customer/shopping/confirm.vue
@@ -49,6 +49,7 @@
            //   private BigDecimal packing;
            if (this.currentInfo.customerDTO && this.currentInfo.customerDTO.partnerId) {
                //todo 考虑一下,由后台实时获取,如果获取的合伙人id不一样,那么就刷新当前用户信息。
                this.$http.request('get', '/api/partner/page/view', {
                    params: {
                        id: this.currentInfo.customerDTO.partnerId