From 13d0fc75a48f91cb1e6efa124d5f838b382ea53c Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 18 七月 2025 18:59:45 +0800
Subject: [PATCH] 调接口
---
 small-program/pages/order-details/order-details.vue |  240 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 194 insertions(+), 46 deletions(-)
diff --git a/small-program/pages/order-details/order-details.vue b/small-program/pages/order-details/order-details.vue
index 9e62cc0..9896ee8 100644
--- a/small-program/pages/order-details/order-details.vue
+++ b/small-program/pages/order-details/order-details.vue
@@ -4,64 +4,79 @@
 			宸插彇娑�
 		</view> -->
 		<view class="order-head" :style="{ backgroundImage: 'url(' + bgImg + ')' }">
-			<view class="order-head-status">寰呮帴鍗�</view>
-			<view class="order-head-info">鎮ㄥ凡缁忔垚鍔熷彂璧风敤宸ュ崟锛岃鑰愬績绛夊緟鎺ュ崟</view>
+			<view class="order-head-status">{{info.statusName || ''}}</view>
+			<view class="order-head-info">{{getStatusInfo()}}</view> 
 		</view>
 		<view class="order-quxiao">
-			<view class="order-quxiao-btn">鍙栨秷璁㈠崟</view>
+			<view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.acceptMemberId && info.status ===2">鍙栨秷璁㈠崟</view>
+			<view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)">鍙栨秷璁㈠崟</view>
 		</view>
-		<view class="order-user">
+		<view class="order-user"  v-if="userInfo.id === info.releaseMemberId">
 			<view class="order-user-info">
 				<view class="user-info-l">
 					<view class="user-info-l-image">
-						<image src="/static/logo.png" mode="widthFix"></image>
+						<image v-if="info.acceptCoverImage" :src="info.acceptCoverImage" mode="widthFix"></image>
+						<image v-else src="/static/logo.png" mode="widthFix"></image>
 					</view>
 					<view class="user-info-l-i">
-						<view class="user-info-l-i-top">鑾茶姳鍔冲姟鍏徃</view>
+						<view class="user-info-l-i-top">{{info.acceptName || '鍖垮悕'}}</view>
 						<view class="user-info-l-i-bottom">
 							<view class="user-info-l-i-bottom-item">
 								<text>璇勫垎锛�</text>
-								<text>90</text>
+								<text>{{info.score || '-'}}</text>
 							</view>
 							<view class="user-info-l-i-bottom-item">
 								<text>鍗曟暟锛�</text>
-								<text>100</text>
+								<text>{{info.publishNum || 0}}</text>
 							</view>
 						</view>
 					</view>
 				</view>
-				<view class="user-info-r">
+				<view class="user-info-r" @click="contactPhone(info.acceptPhone)">
 					<image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
 					<text>鑱旂郴甯堝倕</text>
 				</view>
 			</view>
 		</view>
-		<view class="order-info">
+		<view class="order-info" >
 			<view class="order-info-title">
 				<view class="x"></view>
-				<text>鐢ㄥ伐鍗�-閲囨憳宸�</text>
+				<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===2">璁㈤鍗�</text>
+				
 			</view>
-			<view class="order-info-wz">钁¤悇锝�2000鏂�</view>
+			<view v-if="info.type===0" class="order-info-wz">{{info.categoryName || ''}}锝渰{info.priceNum1 || '' }}鏂�</view>
+			<view v-if="info.type===1" class="order-info-wz">{{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">
-					<text>闀挎睙瑗胯矾澶ц渶灞辨.鏋楀叕鍥タ闂ㄤ繚瀹夊</text>
-					<text>鍦扮偣鎻忚堪鏂囧瓧鍦扮偣鎻忚堪鍦扮偣鎻忚堪鏂囧瓧</text>
+					<text>{{info.location || '' }}</text>
+					<text>{{info.locationRemark || '' }}</text>
 				</view>
 			</view>
 			<view class="order-info-address">
 				<image src="/static/icon/order_ic_time@2x.png" mode="widthFix"></image>
 				<view class="order-info-address-info">
-					<text>闀挎睙瑗胯矾澶ц渶灞辨.鏋楀叕鍥タ闂ㄤ繚瀹夊</text>
+					<text>{{info.startDate || ''}}-{{info.endDate || ''}}({{info.totalDays||0}}澶�)</text>
+				</view>
+			</view>
+			<view class="address" v-if="info.type===1 && wayList && wayList.length>0">
+				<view class="address-xian"></view>
+				<view class="address-row"  v-for="(item,index) in wayList" style="display: block;margin: 10px" :key="'bbb'+index">
+					<image v-if="index === 0" src="/static/icon/ic_qidian@2x.png" mode="widthFix"></image>
+					<image v-if="index >0 && index < wayList.length-1" src="/static/icon/ic_jingguo@2x.png" mode="widthFix"></image>
+					<image v-if="index === wayList.length-1" src="/static/icon/ic_zhongdian@2x.png" mode="widthFix"></image>
+					<text>{{item.location || ''}}</text>
 				</view>
 			</view>
 			<view class="order-info-x"></view>
 			<view class="order-info-supplement">
 				<view class="order-info-supplement-title">闇�姹傝ˉ鍏咃細</view>
-				<view class="order-info-supplement-val">鐢峰コ閮藉彲锛屽寘鍗堥キ锛屽共娲婚夯鍒╋紝鏃╀笂9鐐瑰埌涓嬪崍4鐐癸紝鍙厤璐瑰甫1鏂よ憽钀勫洖瀹�</view>
+				<view class="order-info-supplement-val">{{info.supplement || '' }}</view>
 				<view class="order-info-supplement-list">
-					<view class="order-info-supplement-list-item" v-for="(item,index) in 4" :key="index">
-						<image src="/static/logo.png" mode="widthFix"></image>
+					<view class="order-info-supplement-list-item" v-for="(item,index) in info.multifileList" v-if="info.multifileList && info.multifileList.length>0" :key="item.imgurl">
+						<image v-if="item.fileurlFull"  :src="item.fileurlFull" @click="previemImg(item.fileurlFull)" mode="widthFix"></image>
 					</view>
 					<view style="width: 156rpx; height: 0;"></view>
 					<view style="width: 156rpx; height: 0;"></view>
@@ -70,35 +85,43 @@
 			<view class="order-info-price">
 				<view class="price-row">
 					<view class="price-row-label">璐圭敤鏍囧噯</view>
-					<view class="price-row-val">0.5鍏�/鏂�</view>
+					<view class="price-row-val" v-if="info.type !==2">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</view>
+					<view class="price-row-val" v-if="info.type ===2">
+						<text  v-for="(item,index) in wayList">
+							 {{item.name || ''}}{{((item.price||0)/100).toFixed(2)}}鍏儃{item.num||0}}浠絳{index != wayList.length-1?'|':''}}
+						</text>
+					</view>
 				</view>
 				<view class="price-row">
-					<view class="price-row-label">棰勪及鎬昏垂鐢�</view>
-					<view class="price-row-val" style="color: #FF0000;">楼1000.00</view>
+					<view class="price-row-label">棰勪及鎬昏垂鐢�(鍏�)</view>
+					<view class="price-row-val" style="color: #FF0000;">
+						楼{{((info.estimatedAccount||0)/100).toFixed(2) }}
+					</view>
 				</view>
 			</view>
 		</view>
-		<view class="order-info">
+		<view class="order-info" v-if="info.commentStatus ===1">
 			<view class="order-info-title">
 				<text>璇勪环</text>
 			</view>
-			<u-rate :count="count" activeColor="#FFC331" size="26" v-model="value"></u-rate>
+			<u-rate :count="count" activeColor="#FFC331" size="26" v-model="info.commentLevel"></u-rate>
 			<view class="order-info-remark">
-				骞叉椿鍒╄惤鏁堢巼楂樺共娲诲埄钀芥晥鐜囬珮骞叉椿鍒╄惤鏁堢巼楂樺共娲诲埄钀芥晥鐜囬珮骞叉椿鍒╄惤鏁堢巼楂�
+				{{ info.commentInfo || '-'}}
 			</view>
 		</view>
-		<view class="order-ren">
+		<view class="order-ren" v-if="userInfo.id === info.acceptMemberId">
 			<view class="order-ren-left">
 				<view class="order-ren-left-img">
-					<image src="/static/logo.png" mode="widthFix"></image>
+					<image v-if="info.releaseCoverImage" :src="info.releaseCoverImage" mode="widthFix"></image>
+					<image v-else src="/static/logo.png" mode="widthFix"></image>
 				</view>
-				<text>鍙插ぉ鏁�</text>
-				<view class="order-ren-left-tip">涓氫富</view>
+				<text>{{info.releaseName || '鍖垮悕'}}</text>
+				<view class="order-ren-left-tip">鍙戝崟鏂�</view>
 			</view>
 			<view class="order-ren-x"></view>
-			<view class="order-ren-lx">
+			<view class="order-ren-lx"  @click="contactPhone(info.releasePhone)">
 				<image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
-				<text>鑱旂郴涓氫富</text>
+				<text>鍙戝崟鏂�</text>
 			</view>
 		</view>
 		<view class="order-info">
@@ -108,43 +131,48 @@
 			<view class="order-info-list">
 				<view class="order-info-list-item">
 					<text>璁㈠崟缂栧彿锛�</text>
-					<text>202107131742520001</text>
+					<text>{{info.code || ''}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>涓嬪崟鏃堕棿锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.createTime||'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>鎺ュ崟鏃堕棿锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.acceptTime||'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>寮�濮嬫椂闂达細</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.workStartTime||'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>瀹屾垚鏃堕棿锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.finishTime||'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>鏀粯鏃堕棿锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.payTime||'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>鏀粯鏂瑰紡锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.payMethod==0?'寰俊鏀粯':'-'}}</text>
 				</view>
 				<view class="order-info-list-item">
 					<text>浜ゆ槗鍗曞彿锛�</text>
-					<text>2025-07-26 09:32:11</text>
+					<text>{{info.wxExternalNo || '-'}}</text>
 				</view>
 			</view>
 		</view>
 		<view style="width: 100%; height: calc(108rpx + env(safe-area-inset-bottom));"></view>
 		<view class="order-footer">
-			<view class="order-footer-btn">
-				<view class="order-footer-btn-a" @click="show = true">鍙栨秷璁㈠崟</view>
-				<view class="order-footer-btn-b">淇敼璁㈠崟</view>
+			<view class="order-footer-btn"> 
+				<view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.acceptMemberId && info.status ===2">鍙栨秷璁㈠崟</view>
+				<view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)">鍙栨秷璁㈠崟</view>
+				<view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.status ===4 && info.commentStatus!=1)">鍘昏瘎浠�</view>
+				<view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===3 && info.type !==2)|| (info.status ===0 && info.type===2))">鍘绘敮浠�</view>
+				<view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)">淇敼璁㈠崟</view>
+				<view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.isUpdate==1 && info.status ===2)">淇敼纭</view>
+				<view class="order-footer-btn-b" v-if="userInfo.id !== info.releaseMemberId && (info.status ===1)">鎶㈠崟</view>
 			</view>
 			<view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
 		</view>
@@ -207,21 +235,98 @@
 				<view class="zhifu-botton" style="margin-top: 60rpx;">绔嬪嵆璇勪环</view>
 			</view>
 		</u-popup>
-		
 	</view>
 </template>
 
 <script>
+	import { mapState } from 'vuex'
 	export default {
+		computed: {
+			...mapState( ['userInfo'])
+		},
 		data() {
 			return {
 				show: false,
 				show1: false,
 				show2: false,
-				count: 4,
-				value: 2,
-				bgImg: require('@/static/image/bg_green@2x.png')
+				count: 5, 
+				wayList:[],
+				bgImg: require('@/static/image/bg_green@2x.png'),
+				id: null,
+				loading:false,
+				info: {}, 
 			};
+		},
+		onLoad(options) {
+			console.log(options)
+			var id = options.id
+			this.id = id
+			this.getOrderData()
+		},
+		methods:{
+			previemImg(src){
+				uni.previewImage({
+					current: src, // 褰撳墠鏄剧ず鍥剧墖鐨刪ttp閾炬帴
+					urls: [src] // 闇�瑕侀瑙堢殑鍥剧墖http閾炬帴鍒楄〃
+				  });
+			},
+			contactPhone(phone){
+				if(phone !=null && phone!=''){
+					uni.makePhoneCall({
+					   phoneNumber: phone  
+					})
+				}
+			},
+			//璁㈠崟鐘舵��:0=寰呮敮浠� 1=寰呮帴鍗曪紱2=宸叉帴鍗曪紱3=杩涜涓紱4=宸插畬鎴愶紱99=宸插彇娑�
+			getStatusInfo(){
+				if(this.userInfo.id === this.info.acceptMemberId){
+					//濡傛灉鏄帴鍗曟柟
+					if(this.info.status === 0){
+						return ''
+					}else if(this.info.status === 1){
+						return ''
+					}else if(this.info.status === 2){
+						return '鎮ㄥ凡鎺ュ崟锛岃鎸夋椂瀹屾垚璁㈠崟浠诲姟'
+					}else if(this.info.status === 3){
+						return '璁㈠崟杩涜涓紝璇锋寜鏃跺畬鎴愯鍗曚换鍔�'
+					}else if(this.info.status === 4){
+						return '鎮ㄧ殑璁㈠崟宸插畬鎴�'
+					}else if(this.info.status === 99){
+						return '璁㈠崟宸插彇娑�'
+					}
+				}else{
+					//濡傛灉鏄彂甯冩柟
+					if(this.info.status === 0){
+						return '璇峰敖蹇畬鎴愭敮浠橈紝鍙戝竷璁㈠崟'
+					}else if(this.info.status === 1){
+						return '鎮ㄨ鍗曞凡缁忔垚鍔熷彂璧凤紝璇疯�愬績绛夊緟鎺ュ崟'
+					}else if(this.info.status === 2){
+						return '璁㈠崟寮�濮嬩綔涓氬悗锛岃鎷栧姩涓嬫柟鈥滃紑濮嬩綔涓氣�濇寜'
+					}else if(this.info.status === 3){
+						return this.info.type!=2?'璁㈠崟瀹屾垚鍚庤鐐瑰嚮涓嬫柟鈥滃畬鎴愬苟鏀粯鈥濇寜閽�':'璁㈠崟姝e湪杩涜涓�'
+					}else if(this.info.status === 4){
+						return this.info.commentStatus==1?'鎮ㄧ殑璁㈠崟宸插畬鎴愶紝娆㈣繋鍐嶆浣跨敤': '鎮ㄧ殑璁㈠崟宸插畬鎴愶紝璇峰強鏃惰瘎浠�'
+					}else if(this.info.status === 99){
+						return '璁㈠崟宸插彇娑�'
+					}
+				}
+			},
+			getOrderData(){
+				var that = this
+				var param ={ orderId:that.id}
+				this.$u.api.getDetail(param).then(res =>{
+					if(res.code ===200){
+						if(that.userInfo.id === res.data.releaseMemberId || that.userInfo.id === res.data.acceptMemberId ){
+							that.info = res.data
+							if(that.info.wayInfo){
+								that.wayList = JSON.parse(that.info.wayInfo)
+							}
+						}else{
+							uni.showToast({ title: '璁㈠崟淇℃伅涓嶅瓨鍦�', icon: 'error', duration: 2000 });
+						}
+					}
+				 }) 
+			}
 		}
 	}
 </script>
@@ -568,7 +673,9 @@
 					&:last-child {
 						margin: 0 !important;
 					}
-					.price-row-label {
+					.price-row-label { 
+						flex-shrink: 0;
+						margin-right: 30rpx;
 						font-weight: 400;
 						font-size: 30rpx;
 						color: #777777;
@@ -788,4 +895,45 @@
 			}
 		}
 	}
+	.address {
+		width: 100%;
+		background: #F7F7F7;
+		border-radius: 16rpx;
+		padding: 30rpx;
+		box-sizing: border-box;
+		margin-bottom: 24rpx;
+		position: relative;
+		.address-xian {
+			position: absolute;
+			top: 17px;
+			left: 24px;
+			width: 1rpx;
+			height: calc(100% - 60rpx);
+			border-right: 2rpx dashed #B2B2B2;
+		}
+		.address-row {
+			position: relative;
+			z-index: 2;
+			width: 100%;
+			display: flex !important; 
+			align-items: center;
+			margin-bottom: 30rpx ;
+			margin-left: 0rpx !important;
+			margin-top: 0rpx !important;
+			&:last-child { 
+				margin-bottom: 0 !important;
+			}
+			image {
+				width: 36rpx;
+				height: 36rpx;
+				flex-shrink: 0;
+				margin-right: 24rpx;
+			}
+			text {
+				font-weight: 400;
+				font-size: 28rpx;
+				color: #333333;
+			}
+		}
+	}
 </style>
--
Gitblit v1.9.3