From e755ab6c6edddf4accb51e241e6ec04c27cea091 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 16 九月 2025 11:35:07 +0800
Subject: [PATCH] 前端

---
 small-program/pages/demand-hall/demand-hall.vue |  256 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 187 insertions(+), 69 deletions(-)

diff --git a/small-program/pages/demand-hall/demand-hall.vue b/small-program/pages/demand-hall/demand-hall.vue
index 635bcbd..49f3a7c 100644
--- a/small-program/pages/demand-hall/demand-hall.vue
+++ b/small-program/pages/demand-hall/demand-hall.vue
@@ -6,7 +6,6 @@
 				<text>鎴戠殑璁㈠崟</text>
 			</view>
 		</view>
-		
 		<!-- 鏈櫥褰� -->
 		<view class="index-wu" v-if="!isLogin">
 			<image src="/static/icon/default_login@2x.png" mode="widthFix"></image>
@@ -18,38 +17,41 @@
 		<template v-else>
 			<!-- 鍙戝崟鏂� -->
 			<view class="index-labs" v-if="typeViewId === 0" :style="{ top: statusbarHeight + navHeight + 'px' }">
-				<scroll-view scroll-x class="scroll-view_H">
-					<view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :key="index" @click="clickOrderType(item.id)">
+				<scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status">
+					<view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)">
 						{{item.name}}
-						<view class="index-labs-row-x" v-if="item.id === status"></view>
+						<view class="index-labs-row-x" v-if=" item.id === status"></view>
 					</view>
 				</scroll-view>
 			</view>
 			<!-- 鎺ュ崟鏂� -->
 			<view class="index-labs" v-if="typeViewId === 1" :style="{ top: statusbarHeight + navHeight + 'px' }">
-				<scroll-view scroll-x class="scroll-view_H">
-					<view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :key="index" @click="clickOrderType(item.id)">
+				<scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status">
+					<view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)">
 						{{item.name}}
-						<view class="index-labs-row-x" v-if="item.id === status"></view>
+						<view class="index-labs-row-x" v-if=" item.id === status "></view>
 					</view>
 				</scroll-view>
 			</view>
 			<!-- 鍙戝崟鏂� -->
 			<view class="index-list" v-if="typeViewId === 0">
-				<view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)">
+				<view class="index-list-wu" v-if="orderList.length === 0">
+					<text>宸插姞杞藉叏閮ㄦ暟鎹�</text>
+				</view>
+				<view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else>
 					<view class="index-list-item-head">
 						<view class="index-list-item-head-l">
 							<view class="xoam"></view>
 							<text v-if="item.type === 0 && item.workType === 0">鐢ㄥ伐鍗� - 閲囨憳宸�</text>
 							<text v-else-if="item.type === 0 && item.workType === 1">鐢ㄥ伐鍗� - 鍒嗘嫞宸�</text>
 							<text v-else-if="item.type === 0 && item.workType === 2">鐢ㄥ伐鍗� - 鍖呰宸�</text>
-							<text v-else-if="item.type === 1">杩愯揣鍗�-{{item.categoryName}}-{{item.carUnit}}</text>
+							<text v-else-if="item.type === 1">杩愯揣鍗� - {{item.categoryName}}</text>
 							<text v-else-if="item.type === 2">璁㈤鍗�</text>
 						</view>
-						<view class="index-list-item-head-r" v-if="item.status === 1">寰呮帴鍗曟柟鎺ュ崟</view>
+						<view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">寰呮敮浠�</view>
+						<view class="index-list-item-head-r" v-if="item.status === 1">寰呮帴鍗�</view>
 						<view class="index-list-item-head-r" v-if="item.status === 2">宸叉帴鍗�</view>
 						<view class="index-list-item-head-r" v-if="item.status === 3">杩涜涓�</view>
-						<view class="index-list-item-head-r" v-if="item.status === 2 && item.isUpdate === 1">宸蹭慨鏀癸紝寰呮帴鍗曟柟纭</view>
 						<view class="index-list-item-head-r hui" v-if="item.status === 4 && item.commentStatus !== 0">宸插畬鎴�</view>
 						<view class="index-list-item-head-r hui" v-if="item.status === 99">宸插彇娑�</view>
 						<view class="index-list-item-head-r" v-if="item.status === 4 && item.commentStatus === 0">寰呰瘎浠�</view>
@@ -58,13 +60,19 @@
 						{{item.categoryName}}锝渰{item.priceNum1}}鏂�
 					</view>
 					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
-						{{item.categoryName}}锝渰{item.priceNum1}}浜�
+						{{item.categoryName}}锝渰{item.priceNum2}}浜�
 					</view>
-					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
-						{{item.categoryName}}锝渰{item.priceNum1}}浜�
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0">
+						{{item.categoryName}}锝渰{item.priceNum1}}澶� | {{item.priceNum2}}浜�
+					</view>
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1">
+						{{item.categoryName}}锝渰{item.priceNum1}}灏忔椂 | {{item.priceNum2}}浜�
+					</view>
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2">
+						{{item.categoryName}}锝渰{item.priceNum1}}鏂� | {{item.priceNum2}}浜�
 					</view>
 					<view class="index-list-item-info" v-if="item.type === 1">
-						{{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}澶�
+						{{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}{{item.carType === 0?"澶�":"娆�"}}
 					</view>
 					<view class="index-list-item-info" v-if="item.type === 2">
 						{{item.wayInfoCopy}}
@@ -88,38 +96,50 @@
 							<text>{{item.startDate}} 鑷� {{item.endDate}}锛坽{item.totalDays}}澶╋級</text>
 						</view>
 					</template>
-					<view class="index-list-item-price">
-						<text>棰勪及锛�</text>
-						<text>楼{{item.estimatedAccount / 100}}</text>
+					<view class="index-list-item-price"> 
+						<text v-if="item.status==4 || item.type==2">宸叉敮浠橈細</text>
+						<text v-if="item.status!=4&& item.type!=2">棰勪及锛�</text>
+						<text>楼{{item.payAccount / 100}}</text>
 					</view>
 					<view class="eidt">
-						<view></view>
+						<view>
+							<view class="eidt-tips" v-if="item.status === 2 && item.isUpdate == 1"><text>宸蹭慨鏀癸紝寰呮帴鍗曟柟纭</text></view>
+							<view class="eidt-tips" v-if="item.status === 5">
+								<image src="/static/icon/ic_tip@2x.png" mode="widthFix"></image>
+								<text>鎺ュ崟鏂瑰凡纭璐圭敤锛岃鏀粯</text>
+							</view>
+					 	</view>
 						<view class="eidt-right">
 							<view class="eidt-close" v-if="[0,1,2].includes(item.status)" @click.stop="orderId = item.id, show = true">鍙栨秷璁㈠崟</view>
 							<view class="eidt-phone" v-if="[2].includes(item.status)">鑱旂郴甯堝倕</view>
 							<view class="eidt-phone" v-if="item.status === 4 && item.commentStatus === 0">璇勪环璁㈠崟</view>
-							<view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2" @click.stop="jumpEdit(item)">淇敼璁㈠崟</view>
-							<view class="eidt-btn" v-if="(item.type === 2 && item.status === 0) ||  (item.type === 2 && item.status === 3)" @click.stop="jumpEdit(item)">缁х画鏀粯</view>
+							<view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2 &&  item.isUpdate!=1" @click.stop="jumpEdit(item)">淇敼璁㈠崟</view>
+							<view class="eidt-btn" v-if="(item.type  == 2 && item.status === 0)" @click.stop="jumpDesc(item,1)">缁х画鏀粯</view>
 							<!-- <view class="eidt-btn" v-if="item.status === 2" @click.stop="startJobs(item.id)">寮�濮嬩綔涓�</view> -->
-							<view class="eidt-btn" v-if="item.status === 3" @click.stop="jumpDesc(item)">瀹屾垚骞舵敮浠�</view>
+							<view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item,2)">绔嬪嵆鏀粯</view>
+							<view class="eidt-btn" v-if="item.type == 2 && item.status === 3" @click.stop="jumpDesc(item)">瀹屾垚浣滀笟</view>
 						</view>
 					</view>
 				</view>
 			</view>
 			<!-- 鎺ュ崟鏂� -->
 			<view class="index-list" v-if="typeViewId === 1">
-				<view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)">
+				<view class="index-list-wu" v-if="orderList.length === 0">
+					<text>宸插姞杞藉叏閮ㄦ暟鎹�</text>
+				</view>
+				<view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else>
 					<view class="index-list-item-head">
 						<view class="index-list-item-head-l">
 							<view class="xoam"></view>
 							<text v-if="item.type === 0 && item.workType === 0">鐢ㄥ伐鍗� - 閲囨憳宸�</text>
 							<text v-else-if="item.type === 0 && item.workType === 1">鐢ㄥ伐鍗� - 鍒嗘嫞宸�</text>
 							<text v-else-if="item.type === 0 && item.workType === 2">鐢ㄥ伐鍗� - 鍖呰宸�</text>
-							<text v-else-if="item.type === 1">杩愯揣鍗�-{{item.categoryName}}-{{item.carUnit}}</text>
+							<text v-else-if="item.type === 1">杩愯揣鍗� - {{item.categoryName}}</text>
 							<text v-else-if="item.type === 2">璁㈤鍗�</text>
-							<view class="tips" v-if="item.acceptType === 1">绯荤粺娲惧崟</view>
-							<view class="tips1" v-if="item.acceptType === 0">鑷富鎶㈠崟</view>
+							<view class="tips" v-if="item.acceptType === 1">娲惧崟</view>
+							<view class="tips1" v-if="item.acceptType === 0">鎶㈠崟</view>
 						</view>
+						<view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">寰呮敮浠�</view>
 						<view class="index-list-item-head-r" v-if="item.status === 2">宸叉帴鍗�</view>
 						<view class="index-list-item-head-r" v-if="item.status === 3">杩涜涓�</view>
 						<view class="index-list-item-head-r hui" v-if="item.status === 4">宸插畬鎴�</view>
@@ -129,13 +149,19 @@
 						{{item.categoryName}}锝渰{item.priceNum1}}鏂�
 					</view>
 					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
-						{{item.categoryName}}锝渰{item.priceNum1}}浜�
+						{{item.categoryName}}锝渰{item.priceNum2}}浜�
 					</view>
-					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
-						{{item.categoryName}}锝渰{item.priceNum1}}浜�
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0">
+						{{item.categoryName}}锝渰{item.priceNum1}}澶� 锝渰{item.priceNum2}}浜�
 					</view>
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1">
+						{{item.categoryName}}锝渰{item.priceNum1}}灏忔椂 锝渰{item.priceNum2}}浜�
+					</view>
+					<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2">
+						{{item.categoryName}}锝渰{item.priceNum1}}鏂� 
+					</view> 
 					<view class="index-list-item-info" v-if="item.type === 1">
-						{{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}澶�
+						{{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}{{item.carType === 0?"澶�":"娆�"}}
 					</view>
 					<view class="index-list-item-info" v-if="item.type === 2">
 						{{item.wayInfoCopy}}
@@ -160,8 +186,9 @@
 						</view>
 					</template>
 					<view class="index-list-item-price">
-						<text>棰勪及锛�</text>
-						<text>楼{{item.estimatedAccount / 100}}</text>
+						<text v-if="item.status==4">宸叉敮浠橈細</text>
+						<text v-if="item.status!=4">棰勪及锛�</text>
+						<text>楼{{item.payAccount / 100}}</text>
 					</view>
 					<view class="eidt">
 						<view class="eidt-tips" v-if="item.isUpdate === 1">
@@ -203,52 +230,93 @@
 		computed: {
 			...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid', 'latitude', 'longitude'])
 		},
-		onShow(options) {
-			this.typeViewId = 0
+		async onShow(options) {
+			var flag = getApp().globalData.orderStatus
+			console.log(getApp().globalData,"=====================================")
+			// this.status = ''
+			// this.commentStatus=''
+			// status: this.status === 5 ? 4 : this.status,
+			// commentStatus: this.status === 5 ? 0 : '',
+			if(flag =='1'){//鍙戝崟鏂瑰緟鎺ュ崟
+				this.status = 1				
+			}else if(flag =='2'){//鍙戝崟鏂硅繘琛屼腑
+				this.status = 3 
+			}else if(flag =='3'){//鍙戝崟鏂瑰緟璇勪环
+				this.status = 6				
+			}else if(flag =='4'){//鎺ュ崟鏂瑰凡鎺ュ崟
+				this.status =2				
+			}else if(flag =='5'){//鎺ュ崟鏂硅繘琛屼腑
+				this.status =3	
+			}else if(flag =='6'){//鎺ュ崟鏂瑰凡瀹屾垚
+				this.status =4
+			}else if(flag =='0'){
+				this.status = -1
+			}
+			console.log(getApp().globalData,this.status ,"=====================================")
+			// this.typeViewId = 0
 			if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
 				console.log('宸茬櫥闄�')
 				this.isLogin = true
+			/* 	this.getOrderList()
 				if (!this.isOnce) {
 					this.commentStatus = ''
 					this.orderList = []
 					this.next = true
 					this.page = 1
 					this.getOrderList()
-				}
+				} */
 			} else {
 				this.isLogin = false
+				this.typeViewId = 0
 				console.log('鏈櫥闄�')
 			}
-			if (this.userInfo && this.userInfo.useIdentity == 1) {
-				this.typeViewId = 1
+			if(this.isLogin){
+				if(this.typeViewId !== this.userInfo.useIdentity || flag !=null){
+					this.typeViewId = this.userInfo.useIdentity || 0
+					//濡傛灉鍙戠敓
+					this.initOrderList()
+				}else{
+					//濡傛灉鏈彂鐢熷彉鍖栦笉鍒锋柊
+					this.typeViewId = this.userInfo.useIdentity || 0
+					if(!this.orderList || !this.orderList.length){
+						this.initOrderList()
+					}else{
+						if( this.tempOrderId){
+							this.getOrderData()
+						}
+					}
+					console.log('this.tempOrderId',this.tempOrderId)
+				}
 			}
+			getApp().globalData.orderStatus =null
 		},
 		data() {
 			return {
 				show: false,
 				isLogin: false,
-				typeViewId: 0,
+				typeViewId: -1,
+				tempOrderId:null,
 				list: [
-					{ name: '鍏ㄩ儴', id: '' },
+					{ name: '鍏ㄩ儴', id: -1 },
 					{ name: '宸叉帴鍗�', id: 2 },
 					{ name: '杩涜涓�', id: 3 },
+					{ name: '寰呮敮浠�', id: 5 },
 					{ name: '宸插畬鎴�', id: 4 },
-					{ name: '宸插彇娑�', id: 99 },
+					// { name: '宸插彇娑�', id: 99 },
 				],
 				list1: [
-					{ name: '鍏ㄩ儴', id: '' },
+					{ name: '鍏ㄩ儴', id: -1 },
 					{ name: '寰呮敮浠�', id: 0 },
 					{ name: '寰呮帴鍗�', id: 1 },
 					{ name: '宸叉帴鍗�', id: 2 },
-					{ name: '杩涜涓�', id: 3 },
+					{ name: '杩涜涓�', id: 3 }, 
 					{ name: '宸插畬鎴�', id: 4 },
 					{ name: '宸插彇娑�', id: 99 },
-					{ name: '寰呰瘎浠�', id: [4, 0] }
+					{ name: '寰呰瘎浠�', id: 6 }
 				],
 				orderId: null,
-				status: '',
-				commentStatus: '',
-				
+				status: -1,
+				commentStatus: '', 
 				next: true,
 				page: 1,
 				orderList: [],
@@ -257,7 +325,7 @@
 		},
 		async onLoad() {
 			await this.$onLaunched;
-			uni.$on('refresh', (data) => {
+			/* uni.$on('refresh', (data) => {
 				console.log('鎴戠殑璁㈠崟椤靛埛鏂�');
 				this.status = ''
 				this.commentStatus = ''
@@ -265,17 +333,26 @@
 				this.next = true
 				this.page = 1
 				this.getOrderList()
-			})
-			this.getOrderList()
+			}) */			
+			
 		},
 		onReachBottom() {
-			this.getOrderList()
+			if(this.isLogin){
+				this.getOrderList()
+			}			
 		},
 		methods: {
 			toLogin() {
 				uni.navigateTo({
 					url: '/pages/login/login'
 				})
+			},
+			initOrderList() {
+				this.commentStatus = ''
+				this.orderList = []
+				this.next = true
+				this.page = 1
+				this.getOrderList()
 			},
 			startJobs(orderId) {
 				this.$u.api.begin({ orderId })
@@ -291,13 +368,15 @@
 						
 					})
 			},
-			jumpDesc(item) {
+			jumpDesc(item,flag) {
 				uni.navigateTo({
-					url: `/pages/order-details/order-details?id=${item.id}`
+					url: `/pages/order-details/order-details?id=${item.id}&flag=${flag}`
 				})
+				this.tempOrderId = item.id
 			},
 			// 淇敼
 			jumpEdit(item) {
+				this.tempOrderId =item.id
 				if (item.type === 0 && item.workType === 0) {
 					uni.navigateTo({
 						url: `/pages/using-workers/using-workers?id=${item.id}`
@@ -326,14 +405,49 @@
 						this.next = true
 						this.page = 1
 						this.getOrderList()
-					}
-					
+					} 
 				})
 			},
 			phoneCall(phoneNumber) {
 				uni.makePhoneCall({
 					phoneNumber
 				});
+			},
+			getOrderData(){
+				var that = this
+				var param ={ orderId:that.tempOrderId}
+				this.$u.api.getDetail(param).then(res =>{
+					if(res.code ===200 && res.data){
+						var isDel = false
+						var tempIndex = -1
+						that.orderList.forEach((item,index) =>{
+							if(item.id == res.data.id){
+								item.status = res.data.status
+								item.isUpdate = res.data.isUpdate
+								item.commentStatus = res.data.commentStatus
+								tempIndex = index
+							}
+							
+						})
+						if(tempIndex > -1 ){
+							console.log(tempIndex,that.status,res.data.status,"===================")
+							if(that.status >=0 ){
+								//濡傛灉鏈夋爣绛鹃〉
+								if(that.status ===6 && res.data.commentStatus == 1){
+									isDel =true
+									console.log(tempIndex,that.status,res.data.status,"==================1")
+								}else if(that.status !=6 && that.status !== res.data.status){
+									isDel =true
+									console.log(tempIndex,that.status,res.data.status,"===================2")
+								}
+							}
+							if(isDel){
+								console.log(tempIndex,that.status,res.data.status,"===================3")
+								that.orderList.splice(tempIndex,1)
+							}
+						}						
+					}
+				 }) 
 			},
 			// 璁㈠崟鍒嗛〉
 			getOrderList() {
@@ -343,7 +457,8 @@
 					page: this.page,
 					model: {
 						queryMyOrderType: this.userInfo.useIdentity,
-						status: this.status,
+						status:  this.status === 6 ? 4 : (this.status ==-1?"":this.status),
+						commentStatus: this.status === 6 ? 0 : '',
 						queryLat: this.latitude,
 						queryLgt: this.longitude
 					}
@@ -361,23 +476,17 @@
 							item.wayInfo = JSON.parse(item.wayInfo)
 						}
 					})
-					this.orderList = [...this.orderList, ...res.data.records]
-					
-					if (this.orderList.length === res.data.total) {
+					this.orderList = [...this.orderList, ...res.data.records]					
+					if (this.orderList.length >= res.data.total) {
 						this.next = false
 					} else {
 						this.page += 1
 					}
 				})
 			},
-			clickOrderType(id) {
-				if (typeof id === 'object') {
-					this.status = id[0]
-					this.commentStatus = id[1]
-				} else {
-					this.commentStatus = ''
-					this.status = id
-				}
+			clickOrderType(id) {				 
+				this.commentStatus = ''
+				this.status = id
 				this.orderList = []
 				this.next = true
 				this.page = 1
@@ -450,6 +559,15 @@
 			width: 100%;
 			padding: 20rpx 30rpx;
 			box-sizing: border-box;
+			.index-list-wu {
+				width: 100%;
+				margin-top: 40rpx;
+				text-align: center;
+				text {
+					font-size: 24rpx;
+					color: #666666;
+				}
+			}
 			.index-list-item {
 				width: 100%;
 				padding: 30rpx;
@@ -690,7 +808,7 @@
 				.active {
 					font-weight: 500 !important;
 					font-size: 32rpx !important;
-					color: #222222 !important;
+					color: #00BC12 !important;
 				}
 				.index-labs-row {
 					display: inline-block;
@@ -700,7 +818,7 @@
 					font-size: 30rpx;
 					color: #666666;
 					position: relative;
-					margin-right: 62rpx;
+					margin-right: 50rpx;
 					&:last-child {
 						margin: 0 !important;
 					}
@@ -709,7 +827,7 @@
 						bottom: 0;
 						left: 50%;
 						width: 40rpx;
-						height: 2rpx;
+						height: 4rpx;
 						background-color: #00BC12;
 						transform: translate(-50%, 0);
 					}

--
Gitblit v1.9.3