From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 04 九月 2025 10:15:09 +0800
Subject: [PATCH] 前端

---
 small-program/pages/order-details/order-details.vue |  204 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 173 insertions(+), 31 deletions(-)

diff --git a/small-program/pages/order-details/order-details.vue b/small-program/pages/order-details/order-details.vue
index 837a23d..eadd734 100644
--- a/small-program/pages/order-details/order-details.vue
+++ b/small-program/pages/order-details/order-details.vue
@@ -8,6 +8,9 @@
 			<view class="order-head-info" v-if="isAcceptor && info.isUpdate ==1" style="color: red;">
 				璁㈠崟淇℃伅宸蹭慨鏀癸紝璇峰強鏃剁‘璁わ紝{{timeInfo}}鍚庡皢鑷姩鍚屾剰
 			</view> 
+			<view class="order-head-info" v-if="isPushlishor  && info.type ==2 && info.status ==0" style="color: red;">
+				鍓╀綑鏀粯鏃堕棿锛寋{timeInfo1}}鍚庡皢鑷姩鍙栨秷
+			</view> 
 			<view class="order-head-info" v-else >{{getStatusInfo()}}</view> 
 		</view>
 		<view class="order-quxiao">
@@ -48,12 +51,12 @@
 			<view class="order-info-title">
 				<view class="x"></view>
 				<text v-if="info.type===0">鐢ㄥ伐鍗�-{{(info.workType===0?'閲囨憳宸�':(info.workType===1?'鍒嗘嫞宸�':'鍖呰宸�')) }}</text> 
-				<text v-if="info.type===1">杩愯揣鍗�-{{info.categoryName || ''}}-{{info.carUnit || ''}}</text>
+				<text v-if="info.type===1">杩愯揣鍗�-{{info.categoryName || ''}}</text>
 				<text v-if="info.type===2">璁㈤鍗�</text>
 				
 			</view>
 			<view v-if="info.type===0" class="order-info-wz">{{info.categoryName || ''}}锝渰{info.priceNum1 || '' }}{{info.workType === 0?'鏂�':'浜�'}}</view>
-			<view v-if="info.type===1" class="order-info-wz">{{info.transportTypeName || ''}}{{' | '}}{{info.transportNum || '' }}{{info.transportUnit||''}}{{' | '}}闇�{{info.priceNum2 || '' }}杈�</view> 
+			<view v-if="info.type===1" class="order-info-wz">{{info.carUnit || ''}}{{' | '}}{{info.transportTypeName || ''}}{{' | '}}{{info.transportNum || '' }}{{info.transportUnit||''}}{{' | '}}闇�{{info.priceNum2 || '' }}杈�</view> 
 			<view class="order-info-address">
 				<image src="/static/icon/order_ic_location@2x.png" mode="widthFix"></image>
 				<view class="order-info-address-info">
@@ -91,11 +94,11 @@
 			<view class="order-info-price">
 				<view class="price-row" v-if="feeFrom.priceParam1.name">
 					<view class="price-row-label">{{feeFrom.priceParam1.name}}</view>
-					<view class="price-row-val" >  {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
+					<view class="price-row-val" >  {{(info.originPriceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
 				</view>
 				<view class="price-row" v-if="feeFrom.priceParam2.name">
 					<view class="price-row-label">{{feeFrom.priceParam2.name}}</view>
-					<view class="price-row-val" >  {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
+					<view class="price-row-val" >  {{(info.originPriceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
 				</view>
 				<view class="price-row">
 					<view class="price-row-label">璐圭敤鏍囧噯</view>
@@ -109,17 +112,65 @@
 				<view class="price-row">
 					<view class="price-row-label">棰勪及鎬昏垂鐢�(鍏�)</view>
 					<view class="price-row-val" :style="{color: userInfo.id !== info.acceptMemberId ? '#FF0000' : ''}">
-						楼{{((info.estimatedAccount||0)/100).toFixed(2) }}
+						楼{{((info.originEstimatedAccount||0)/100).toFixed(2) }}
 					</view>
 				</view>
-				
-				<view class="price-row" v-if="isAcceptor">
+				<view class="price-row"   v-if="isAcceptor&&(info.type==2 || (info.status!=5&& info.status!=4))">
 					<view class="price-row-label">瀹為檯鍒拌处(鍏�)</view>
 					<view class="price-row-val" style="color: #FF0000;">
-						楼{{((info.estimatedAccount * (1 - (info.platformRata || 0))) / 100).toFixed(2) }}
+						楼{{((info.receiveAccount || 0) / 100).toFixed(2) }}
 					</view>
 				</view>
 			</view>
+			<template v-if="info.type!=2&&(info.status==5|| info.status==4)">
+				<view class="order-info-x"></view>
+				<view class="order-info-supplement" >
+					<view class="order-info-supplement-title">宸茬‘璁よ垂鐢�</view>
+				</view>
+				<view class="order-info-price">
+					<view class="price-row" v-if="feeFrom.priceParam1.name">
+						<view class="price-row-label">瀹為檯{{feeFrom.priceParam1.name}}</view>
+						<view class="price-row-val" > {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view>
+					</view>
+					<view class="price-row" v-if="feeFrom.priceParam2.name">
+						<view class="price-row-label">瀹為檯{{feeFrom.priceParam2.name}}</view> 
+						<view class="price-row-val" > {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view>
+					</view>
+					<view class="price-row" >
+						<view class="price-row-label">鍏朵粬璐圭敤</view>
+						<view class="price-row-val" >楼{{((info.confirmOtherFee||0)/100).toFixed(2) }} </view>
+					</view>
+					<view class="price-row">
+						<view class="price-row-label">瀹為檯鎬昏垂鐢�(鍏�)</view>
+						<view class="price-row-val" style="color:  #FF0000">
+							楼{{((info.estimatedAccount||0)/100).toFixed(2) }}
+						</view>
+					</view>
+					<view class="price-row" >
+						<view class="price-row-label">澶囨敞</view>
+						<view class="price-row-val" >
+							{{ info.confirmFeeRemark ||'' }}
+						</view>
+					</view>
+				</view>
+			</template>
+			<template v-if="info.type==2 || info.status==4">
+				<view class="order-info-x"></view>
+				<view class="order-info-supplement" >
+					<view class="order-info-supplement-title">瀹為檯璐圭敤</view>
+				</view>
+				<view class="order-info-price">
+					<view class="price-row">
+						<view class="price-row-label" v-if="isPushlishor">瀹為檯鏀粯</view>
+						<view class="price-row-val" style="color: #FF0000;">楼{{((info.payAccount||0)/100).toFixed(2) }} </view>
+					</view>
+					<view class="price-row" v-if="isAcceptor && info.status==4" >
+						<view class="price-row-label">瀹為檯鍒拌处</view>
+						<view class="price-row-val" style="color: #FF0000;">楼{{((info.receiveAccount||0)/100).toFixed(2) }} </view>
+					</view>
+					 
+				</view>
+			</template>
 		</view>
 		<view class="order-info" v-if="info.commentStatus ===1">
 			<view class="order-info-title">
@@ -166,6 +217,10 @@
 					<text>寮�濮嬫椂闂达細</text>
 					<text>{{info.workStartTime||'-'}}</text>
 				</view>
+				<view class="order-info-list-item" v-if="info.confirmFeeTime">
+					<text>璐圭敤纭鏃堕棿锛�</text>
+					<text>{{info.confirmFeeTime||'-'}}</text>
+				</view>
 				<view class="order-info-list-item" v-if="info.finishTime">
 					<text>瀹屾垚鏃堕棿锛�</text>
 					<text>{{info.finishTime||'-'}}</text>
@@ -193,7 +248,7 @@
 				<view class="order-footer-btn-a" @click="show = true" v-if="1==2&& isAcceptor && info.status ===2">鍙栨秷璁㈠崟</view>
 				<view class="order-footer-btn-a" @click="show = true" v-if="isPushlishor && (info.status ===0 ||  info.status ===1|| info.status ===2)">鍙栨秷璁㈠崟</view>
 				<view class="order-footer-btn-b" @click="show2=true" v-if="isPushlishor && (info.status ===4 && info.commentStatus!=1)">鍘昏瘎浠�</view>
-				<view class="order-footer-btn-b" v-if="isPushlishor&&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '缁х画鏀粯' : '瀹屾垚骞舵敮浠�'}}</view>
+				<view class="order-footer-btn-b" v-if="isPushlishor&&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '缁х画鏀粯' : '绔嬪嵆鏀粯'}}</view>
 				<view class="order-footer-btn-b" @click="show7 = true" v-if=" info.type!==2 &&isAcceptor && info.status ===3">纭璐圭敤</view>
 				<view class="order-footer-btn-b" v-if="isPushlishor && ((info.status ===3 && info.type===2))" @click="payment1">瀹屾垚浣滀笟</view>
 				<view class="order-footer-btn-b" v-if="info.type !=2 && info.isUpdate!=1&& isPushlishor && (info.status ===0 ||  info.status ===1|| info.status ===2)" @click="jumpEdit()">淇敼璁㈠崟</view>
@@ -203,7 +258,6 @@
 			</view>
 			<view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
 		</view>
-		
 		<u-modal
 			title="娓╅Θ鎻愮ず"
 			:show="show"
@@ -299,38 +353,41 @@
 				<view class="querenfee-c" >					 
 					<view class="querenfee-c-info1"><text style="color: red;">*</text>瀹為檯{{feeFrom.priceParam1.name}}</view>
 					<view class="querenfee-c-input"> 
-						<input type="number" v-model="feeForm.priceNum1"   placeholder="璇疯緭鍏�" />
+						<input type="number" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" @input="getTotal" v-model="feeFrom.priceNum1"   placeholder="璇疯緭鍏�" />
 					</view>
 					<text class="querenfee-c-danw">{{feeFrom.priceParam1.unit}}</text>
 				</view>
 				<view class="querenfee-c" v-if="feeFrom.priceParam2.name !=null">
 					<view class="querenfee-c-info1"><text style="color: red;">*</text>瀹為檯{{feeFrom.priceParam2.name}}锛�</view>
 					<view class="querenfee-c-input"> 
-						<input type="number" v-model="feeForm.priceNum2"   placeholder="璇疯緭鍏�" />
+						<input type="number" v-model="feeFrom.priceNum2" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" @input="getTotal" placeholder="璇疯緭鍏�" />
 					</view>
 					<text class="querenfee-c-info1" >{{feeFrom.priceParam2.unit}}</text>
 				</view>
 				<view class="querenfee-c">
 					<view class="querenfee-c-info1">鍏朵粬璐圭敤锛�</view>
 					<view class="querenfee-c-input">
-						<input type="number" v-model="feeForm.confirmOtherFee"  placeholder="璇疯緭鍏�" />
+						<input type="digit" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="璇疯緭鍏�" />
 					</view>
 					<text class="querenfee-c-danw">鍏�</text>
 				</view>
 				<view class="querenfee-c" style="flex-direction: column;">
-					<view class="querenfee-c-info1">澶囨敞淇℃伅锛�</view>
+					<view class="querenfee-c-info1" style="margin-bottom: 30rpx;">澶囨敞淇℃伅锛�</view>
 					<view class="querenfee-c-input" style="width: 100%; height: 200rpx; padding: 30rpx; box-sizing: border-box;">
-						<u--textarea placeholder="濡傞渶澶囨敞锛岃杈撳叆" border="none" v-model="feeForm.confirmFeeRemark"  ></u--textarea>
+						<u--textarea placeholder="濡傞渶澶囨敞锛岃杈撳叆" border="none" v-model="feeFrom.confirmFeeRemark"  ></u--textarea>
 					</view>
 				</view>
 				<view class="querenfee-c">
 					<view class="querenfee-c-info1">瀹為檯鎬昏垂鐢細</view>
-					<view class="querenfee-c-input">
+					<view class="querenfee-c-price">
+						锟{confirmPayFee}}
+					</view>
+					<!-- <view class="querenfee-c-input">
 						<image src="/static/icon/ic_money@2x.png" mode="widthFix"></image>
 						<text class="querenfee-c-input money">{{confirmPayFee}}</text>
-					</view>
+					</view> -->
 				</view>
-				<view class="querenfee-c">
+				<view class="querenfee-c" style="margin-top: 12rpx;">
 					<view class="querenfee-tips">鏈�缁堣垂鐢ㄧ敱鍙戝崟鏂规敮浠橈紝鎺ュ崟鏂规敹鍒扮殑閲戦灏嗘墸闄ゅ钩鍙版墜缁垂鐢�</view>
 				</view>
 				<view class="querenfee-botton" @click="confirmFee">纭璐圭敤</view>
@@ -377,12 +434,16 @@
 				count: 5, 
 				show3:false,
 				timer:null,
+				timer1:null,
 				show4:false,
 				show5:false,
 				show6:false,
 				show7:false,
+				actionFlag:null,
 				timeInfo:'00:00:00',
+				timeInfo1:'00:00:00',
 				lessTime:null,
+				lessTime1:null,
 				value:0,
 				wayList:[],
 				bgImg: require('@/static/image/bg_green@2x.png'),
@@ -412,6 +473,7 @@
 			console.log(options)
 			var id = options.id
 			this.id = id 
+			this.actionFla=options.flag
 		},
 		onShow(options) { 
 			this.getOrderData()
@@ -465,8 +527,57 @@
 					}
 				})
 			},
+			getTotal() {
+				this.$u.api.getTotal({
+					price: this.info.price,
+					priceUnit: this.feeFrom.priceParam1.unit,
+					priceNum1: this.feeFrom.priceNum1 || 0,
+					priceNum2: this.feeFrom.priceNum2 || 0,
+					type: this.info.type
+				}).then(res => {
+					if (res.code === 200) {
+						this.confirmPayFee = (res.data / 100) || '0'
+					}
+				})
+			},
 			confirmFee(){
-				console.log("confirmFee")
+				if (!this.feeFrom.priceNum1) {
+					return uni.showToast({
+						title: '瀹為檯' + this.feeFrom.priceParam1.name + '涓嶈兘涓虹┖',
+						icon: 'none'
+					})
+				}
+				if (this.feeFrom.priceParam2.name && !this.feeFrom.priceNum2) {
+					return uni.showToast({
+						title: '瀹為檯' + this.feeFrom.priceParam2.name + '涓嶈兘涓虹┖',
+						icon: 'none'
+					})
+				}
+				uni.requestSubscribeMessage({
+					tmplIds: ['3rOz7DAnawrkKDM8b5_XW4FLivISWYov6d7QSC4ORsg'],
+					success(res) {
+						that.doConfirmFeeBiz()
+					},
+					fail(err) {
+						that.doConfirmFeeBiz()
+					}
+				})
+			},
+			doConfirmFeeBiz(){
+				var that = this
+				this.$u.api.confirmFee({
+					confirmFeeRemark: this.feeFrom.confirmFeeRemark,
+					confirmOtherFee: (this.feeFrom.confirmOtherFee||0)*100,
+					orderId: this.info.id,
+					priceNum1: this.feeFrom.priceNum1,
+					priceNum2: this.feeFrom.priceNum2
+				}).then(res => {
+					if (res.code === 200) {
+						that.show7 = false
+						uni.showToast({ title: '鎿嶄綔鎴愬姛', icon: 'success', duration: 2000 });
+						that.getOrderData()
+					}
+				})
 			},
 			payment() {
 				var that = this
@@ -620,6 +731,8 @@
 							return ''
 						}
 						return '鎮ㄥ凡鎺ュ崟锛岃鎸夋椂瀹屾垚璁㈠崟浠诲姟'
+					}else if(this.info.status === 5){
+						return '鎮ㄥ凡纭璐圭敤锛岀瓑寰呭彂鍗曟柟鏀粯'
 					}else if(this.info.status === 3){
 						return '璁㈠崟杩涜涓紝璇锋寜鏃跺畬鎴愯鍗曚换鍔�'
 					}else if(this.info.status === 4){
@@ -633,6 +746,8 @@
 						return '璇峰敖蹇畬鎴愭敮浠橈紝鍙戝竷璁㈠崟'
 					}else if(this.info.status === 1){
 						return '鎮ㄨ鍗曞凡缁忔垚鍔熷彂璧凤紝璇疯�愬績绛夊緟鎺ュ崟'
+					}else if(this.info.status === 5){
+						return '鎺ュ崟鏂瑰凡纭璐圭敤锛岃鏀粯'
 					}else if(this.info.status === 2){
 						if(this.info.isUpdate==1){
 							return '璁㈠崟宸蹭慨鏀癸紝璇风瓑寰呮帴鍗曟柟纭'
@@ -646,6 +761,28 @@
 						return '璁㈠崟宸插彇娑�'
 					}
 				}
+			},
+			updateTimeInfo1(){
+				if(this.timer1){
+					clearInterval(this.timer1)
+				} 
+				var that =this
+				this.lessTime1 = Math.floor( Number(that.info.cancelCountdown || 0)/1000) ;
+				if(this.lessTime1>0){
+					this.timer1 =  setInterval(function(){
+						   let h = Math.floor(that.lessTime1/60/60) ;
+						   let m = Math.floor((that.lessTime1 - h*60*60)/60); 
+						   let s=  Math.floor(that.lessTime1- h*60*60 -m*60);
+						   that.timeInfo1 =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
+						   that.lessTime1 =that.lessTime1-1;
+						   if(that.lessTime1 <=0){
+							    that.timeInfo1 ="00:00:00"
+								clearInterval(that.timer1)
+						   }
+						   // console.log( that.timeInfo)
+					},1000) 
+				} 
+			
 			},
 			updateTimeInfo(){
 				if(this.timer){
@@ -661,6 +798,10 @@
 						   that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
 						   that.lessTime =that.lessTime-1;
 						   // console.log( that.timeInfo)
+						   if(that.lessTime<=0){
+								that.timeInfo ="00:00:00"
+								clearInterval(that.timer)
+						   }
 					},1000) 
 				}
 			
@@ -671,8 +812,6 @@
 				this.isPushlishor =false
 				this.isAcceptor =false
 				this.$u.api.getDetail(param).then(res =>{
-					console.error("=============================",res.data.releaseMemberId,res.data.acceptMemberId,that.userInfo.id)
-					
 					if(res.code ===200){
 						if(that.userInfo.id === res.data.releaseMemberId ){
 							//濡傛灉鏄彂鍗曟柟
@@ -696,6 +835,9 @@
 							}
 							if(res.data.isUpdate == 1){
 								that.updateTimeInfo()
+							}
+							if(res.data.status == 0){
+								that.updateTimeInfo1()
 							}
 							that.initPriceNumParam()
 						}else{
@@ -731,9 +873,9 @@
 						this.feeFrom.priceParam2.unit ='浜�'
 					}else if(this.info.carType==1){
 						//鎸夊皬鏃�
-						this.feeFrom.priceParam1.name ='鐢ㄥ伐鏃堕暱'
+						this.feeFrom.priceParam1.name ='宸ヤ綔鏃堕暱'
 						this.feeFrom.priceParam1.unit ='鏃�'
-						this.feeFrom.priceParam2.name ='瀹為檯鐢ㄥ伐浜烘暟'
+						this.feeFrom.priceParam2.name ='鐢ㄥ伐浜烘暟'
 						this.feeFrom.priceParam2.unit ='浜�'
 					}else if(this.info.carType==1){
 						//鎸夊皬鏃�
@@ -842,6 +984,11 @@
 					color: #333333;
 					margin-left: 10rpx;
 				}
+				.querenfee-c-price {
+					font-weight: 600;
+					font-size: 44rpx;
+					color: #FF0000;
+				}
 				.querenfee-c-info1 {
 					width: 50%;
 					display: flex;
@@ -849,7 +996,6 @@
 					font-weight: 600;
 					font-size: 32rpx;
 					color: #222222;
-					margin-bottom: 20rpx;
 				}
 				.querenfee-tips{
 					width: 100%;
@@ -866,13 +1012,6 @@
 					color: #FF0000 !important;
 				}
 				.querenfee-c-input {
-					// width: 100%;
-					// padding: 0 30rpx;
-					// box-sizing: border-box;
-					// height: 60rpx;
-					// background: #F7F7F7;
-					// border-radius: 10rpx;
-					// border: 1rpx solid #EEEEEE;
 					width: 260rpx;
 					height: 100rpx;
 					padding: 10rpx 30rpx;
@@ -895,6 +1034,9 @@
 						font-size: 56rpx;
 						color: #222222;
 						text-align: right;
+						.querenfee-c-input-placeholder {
+							font-size: 32rpx !important;
+						}
 					}
 				}
 			}

--
Gitblit v1.9.3