From ed6513d69ed4acd982c3596e986dcfe9f5c66d00 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期二, 27 八月 2024 13:47:11 +0800
Subject: [PATCH] add 微信发货

---
 pages/order/order-detail.vue |  209 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 167 insertions(+), 42 deletions(-)

diff --git a/pages/order/order-detail.vue b/pages/order/order-detail.vue
index 8852e4d..e559343 100644
--- a/pages/order/order-detail.vue
+++ b/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)
@@ -25,12 +29,58 @@
 				await this.getItemList()
 				this.submitForm = {
 					orderId: this.id,
-					imageList: [],
+					// imageList: [],
 					videoList: [],
-					reason: [],
-					orderItems: []
+					reason: '',
+					// orderItems: [],
+					orderItemId: options.flowerId || '',
+					num: 0,
+					pictureList: []
 				}
 				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)
+				}
+
 
 			}
 		},
@@ -99,18 +149,63 @@
 					break
 					case 'confirm': {
 						await this.$message.confirm('是否确定收货')
-						// 发送请求
-						this.$message.showLoading()
-						const {
-							code
-						} = await this.$http.request('get', '/api/customer/order/receive/confirm', {
-							params: {
-								id: this.id,
+
+						var tryCallWx = false
+						// #ifdef MP
+						let tmp = this
+						if (wx.openBusinessView&&false) {
+							tryCallWx = true
+							wx.openBusinessView({
+								businessType: 'weappOrderConfirm',
+								extraData: {
+									merchant_id: '1230000109',
+									merchant_trade_no: '1234323JKHDFE1243252',
+									transaction_id: '420123123123123123123'
+								},
+								success() {
+									//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()
+									}
+								},
+								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: this.id,
+								}
+							})
+							this.$message.hideLoading()
+							if (code === 0) {
+								this.getDetail()
 							}
-						})
-						this.$message.hideLoading()
-						if (code === 0) {
-							this.getDetail()
 						}
 
 					}
@@ -173,19 +268,19 @@
 						}
 					}
 					break
-					case 'sales': {
-						//新增售后单
-						//去新的页面加上这些选择?
-						this.submitForm = {
-							orderId: this.id,
-							imageList: [],
-							videoList: [],
-							reason: [],
-							orderItems: [],
-						}
-						this.showSales = true
+					// case 'sales': {
+					// 	//新增售后单
+					// 	//去新的页面加上这些选择?
+					// 	this.submitForm = {
+					// 		orderId: this.id,
+					// 		imageList: [],
+					// 		videoList: [],
+					// 		reason: '',
+					// 		orderItems: [],
+					// 	}
+					// 	this.showSales = true
 
-					}
+					// }
 					default:
 						break
 				}
@@ -253,7 +348,7 @@
 											0]
 										.url || ''
 									that.$message.hideLoading()
-									that.submitForm.imageList.push(pic)
+									that.submitForm.pictureList.push(pic)
 
 									that.$forceUpdate()
 								}).catch(res => {
@@ -267,8 +362,24 @@
 			},
 
 			async submitSales() {
-				if (this.submitForm.orderItems.length < 1) {
-					this.$message.showToast('未选择需要售后的商品')
+				// if (this.submitForm.orderItems.length < 1) {
+				// 	this.$message.showToast('未选择需要售后的商品')
+				// 	return
+				// }
+				// if (this.submitForm.orderItems.length < 1) {
+				// 	this.$message.showToast('未选择需要售后的商品')
+				// 	return
+				// }
+				if (isNaN(parseFloat(this.submitForm.num)) || this.submitForm.num <= 0) {
+					this.$message.showToast('售后数量需要大于0')
+					return
+				}
+				if (!this.submitForm.reason) {
+					this.$message.showToast('未填写理由')
+					return
+				}
+				if (!this.submitForm.pictureList || this.submitForm.pictureList.length < 1) {
+					this.$message.showToast('未上传图片')
 					return
 				}
 				await this.$message.confirm('确定申请售后吗')
@@ -286,7 +397,9 @@
 					this.$message.showToast('提交成功')
 					this.showSales = false
 					this.$forceUpdate()
-					uni.navigateBack()
+					setTimeout(() => {
+						uni.navigateBack()
+					}, 1200)
 				}
 			},
 		},
@@ -327,8 +440,9 @@
 				{{ item.supplierName || ''}}
 			</view>
 			<view class="flex m-t-12">
-				<radio v-if="showSales" :checked="submitForm.orderItems.indexOf(item.id)>=0"
-					@click="changeSalesOrderItem(item)"></radio>
+				<radio v-if="showSales" disabled :checked="submitForm.orderItemId == item.id"></radio>
+				<!-- @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)">
@@ -479,7 +593,16 @@
 		<view class="info-container form bg-white br-4 m-t-12" v-if="showSales">
 			<!-- 表单更新 -->
 			<view class="form-item">
-				<view class="form-item-label">
+				<view class="form-item-label require">
+					售后数量
+				</view>
+				<view class="form-item-value">
+					<input v-model="submitForm.num" clearable placeholder="请输入售后数量" type="number"
+						class="form-input"></input>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-label require">
 					理由
 				</view>
 				<view class="form-item-value">
@@ -487,18 +610,18 @@
 				</view>
 			</view>
 			<view class="form-item">
-				<view class="form-item-label">
+				<view class="form-item-label require">
 					图片
 				</view>
 				<view class="form-item-value m-l-a m-r-0">
 					<view class="t-red" @click="uploadIcon('image')">上传</view>
 				</view>
 			</view>
-			<view class="flex p20" v-if="submitForm.imageList&&submitForm.imageList.length>0">
-				<view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.imageList" :key="index">
+			<view class="flex p20" v-if="submitForm.pictureList&&submitForm.pictureList.length>0">
+				<view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.pictureList" :key="index">
 					<image class="check-img" :src="timg" @click.stop="previewImg(timg)">
 					</image>
-					<view class="t-red text-center" @click.stop="deleteCheckImage('imageList',index)">删除</view>
+					<view class="t-red text-center" @click.stop="deleteCheckImage('pictureList',index)">删除</view>
 				</view>
 			</view>
 			<view class="form-item">
@@ -527,21 +650,23 @@
 			</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>
+			<!-- 在外面申请了,里面不允许了 -->
+			<!-- 	<view class="button button-1" @click="buttonClick('sales')" v-if=" dto.status === 'RECEIVE'"> 申请售后
+			</view> -->
 		</view>
 		<view v-if="showSales">
 			<view style="min-height:200rpx">
 			</view>
 			<view class="bottom-price flex">
 				<view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitSales">
-					提交售后申请({{submitForm.orderItems&&submitForm.orderItems.length||0}})
+					提交售后申请
+					<!-- ({{submitForm.orderItems&&submitForm.orderItems.length||0}}) -->
 				</view>
 			</view>
 		</view>

--
Gitblit v1.9.3