From 88a34566f7c3f77d90daa3fd57fb0abca3e1b5e6 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 27 二月 2025 09:12:06 +0800
Subject: [PATCH] ll

---
 pda/pages/index/center.vue |  303 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 225 insertions(+), 78 deletions(-)

diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index 6d0733b..74990cb 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -32,14 +32,19 @@
 					<view class="status" v-if="item.status == 4">鍙彿涓� {{ item.callDateTemp }}</view>
 					<view class="status scs" v-if="item.status == 5">宸蹭綔涓� {{ item.startDateTemp }}</view>
 				</view>
-				<view class="line" v-if="item.type == 4">
-					<text class="label">鍚堝悓鍗曞彿</text>
-					<text class="value">{{ item.contractNum }}</text>
+				<view class="line" v-if="item.billCode">
+					<text class="label">杩愯緭鍗曞彿</text>
+					<text class="value">{{ item.billCode }}</text>
+					<text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
 				</view>
 				<view class="line" v-else>
-					<text class="label">杩愯緭鍗曞彿</text>
-					<text class="value">{{ item.code }}</text>
-					<text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.contractNum }}</text>
+					<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
+				</view>
+				<view class="line line2" v-if="item.billCode && item.wmsContractNum">
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.wmsContractNum }}</text>
 				</view>
 				<view class="line">
 					<text class="label">椹鹃┒鍛�</text>
@@ -47,9 +52,9 @@
 				</view>
 				<view class="line">
 					<text class="label">鎬昏繍杈撻噺</text>
-					<text class="value">{{ item.totalNum }}涓囨敮</text>
+					<text class="value">{{ item.totalNum || item.ioQty}}涓囨敮</text>
 				</view>
-				<view class="line" v-if="item.type != 4">
+				<view class="line" v-if="item.carrierName">
 					<text class="label">杩愯緭鍏徃</text>
 					<text class="value">{{ item.carrierName }}</text>
 				</view>
@@ -81,6 +86,10 @@
 					<u-icon name="search" class="mr12" size="19" color="#999999" />
 					<input v-model="platformCallSearch" type="text" placeholder="鎼滅储杞﹁締鐗岀収" placeholder-class="placeholder9"
 						@confirm="callQuery" />
+				</view>
+				<view v-if="platformCallList.length == 0" class="empty_wrap">
+					<image src="@/static/default_nodata@2x.png" />
+					<text>鏆傛棤鎺掗槦杞﹁締</text>
 				</view>
 				<view class="order_list">
 					<scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
@@ -96,14 +105,19 @@
                   statusMap[item.status]
                 }}</view>
 							</view>
-							<view class="line" v-if="item.type == 4">
-								<text class="label">鍚堝悓鍗曞彿</text>
-								<text class="value">{{ item.contractNum }}</text>
-							</view>
-							<view class="line" v-else>
+							<view class="line" v-if="item.billCode">
 								<text class="label">杩愯緭鍗曞彿</text>
 								<text class="value">{{ item.billCode }}</text>
 								<text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
+							</view>
+							<view class="line" v-else>
+								<text class="label">鍚堝悓鍗曞彿</text>
+								<text class="value">{{ item.contractNum }}</text>
+								<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
+							</view>
+							<view class="line line2" v-if="item.billCode && item.wmsContractNum">
+								<text class="label">鍚堝悓鍗曞彿</text>
+								<text class="value">{{ item.wmsContractNum }}</text>
 							</view>
 							<view class="line">
 								<text class="label">椹鹃┒鍛�</text>
@@ -111,9 +125,9 @@
 							</view>
 							<view class="line">
 								<text class="label">鎬昏繍杈撻噺</text>
-								<text class="value">{{ item.totalNum }}涓囨敮</text>
+								<text class="value">{{ item.totalNum || item.ioQty }}涓囨敮</text>
 							</view>
-							<view class="line" v-if="item.type != 4">
+							<view class="line" v-if="item.carrierName">
 								<text class="label">杩愯緭鍏徃</text>
 								<text class="value">{{ item.carrierName }}</text>
 							</view>
@@ -155,19 +169,20 @@
 						<view class="value">{{ wmsInfo.carrierName }}</view>
 					</view>
 				</view>
-				<view class="separate"></view>
-				<view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList">
-					<view class="title">鍚堝悓鍙凤細{{ item.contractCode }}</view>
-					<view class="address">鏀惰揣鍦帮細{{ item.address }}</view>
-					<view class="list">
-						<view class="item" v-for="line in item.platformWmsDetailList">
-							<view class="line">
-								<view class="label">鐗╂枡锛�</view>
-								<view class="value">{{ line.materialName }}</view>
-							</view>
-							<view class="line">
-								<view class="label">鏁伴噺锛�</view>
-								<view class="value">{{ line.ioQty }}涓囨敮</view>
+				<view class="contract_wrap">
+					<view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList">
+						<view class="title">鍚堝悓鍙凤細{{ item.contractCode }}</view>
+						<view class="address">鏀惰揣鍦帮細{{ item.address }}</view>
+						<view class="list">
+							<view class="item" v-for="line in item.platformWmsDetailList">
+								<view class="line">
+									<view class="label">鐗╂枡锛�</view>
+									<view class="value">{{ line.materialName }}</view>
+								</view>
+								<view class="line">
+									<view class="label">鏁伴噺锛�</view>
+									<view class="value">{{ line.ioQty }}涓囨敮</view>
+								</view>
 							</view>
 						</view>
 					</view>
@@ -179,9 +194,8 @@
 			<view class="TransformModal">
 				<view class="title">杞Щ鏈堝彴</view>
 				<view class="transform_list">
-					<view class="line" @click="transformPlatClick(item)" v-for="item in activePlatformGroup.platformList"
-						:key="item.id">
-						<view class="name">{{ item.name }}</view>
+					<view class="line" @click="transformPlatClick(item)" v-for="item in TransferList" :key="item.id">
+						<view class="name">{{ item.name  || item.platformName}}</view>
 						<view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})
 						</view>
 						<image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
@@ -224,7 +238,7 @@
 		data() {
 			return {
 				statusMap,
-				windowTop: 44,
+				windowTop: 24,
 				showPlatformCall: false, // 鏈堝彴鍙彿
 				showDetail: false,
 				showTransform: false, // 杞Щ
@@ -243,19 +257,51 @@
 
 				transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
 				transformId: '', // 杞Щ璁板綍浠诲姟id
-				wmsInfo: {}
+				TransferList: [],
+				wmsInfo: {},
+				timer: null,
+				timer1: null,
 			}
 		},
 		onLoad() {
 			this.getPlatformGroup()
-			const res = uni.getWindowInfo()
-			this.windowTop = res.windowTop
+		},
+		onHide(){
+			if(this.timer1){
+				clearInterval(this.timer1)
+			}
+			if(this.timer){
+				clearInterval(this.timer)
+			}
+		},
+		onUnload(){
+			if(this.timer1){
+				clearInterval(this.timer1)
+			}
+			if(this.timer){
+				clearInterval(this.timer)
+			}
 		},
 		methods: {
+			getTransferList() {
+				getPlatformGroupList({
+					queryData: 1,
+					queryType: 1
+				}).then(res => {
+					const platformGroupList = res.data || []
+					if (platformGroupList.length > 0) {
+						const {
+							activePlatformGroup
+						} = this
+						const temp = platformGroupList.find(i => i.id === activePlatformGroup.id)
+						this.TransferList = temp.platformList || []
+					}
+				})
+			},
 			getPlatformGroup() {
 				getPlatformGroupList({
 					queryData: 1,
-					queryType: 0
+					queryType: 1
 				}).then(res => {
 					this.platformGroupList = res.data || []
 					if (this.platformGroupList.length > 0) {
@@ -263,38 +309,60 @@
 						if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
 							this.activePlatform = this.activePlatformGroup.platformList[0]
 							this.getPlatformTask()
+							this.timer = setInterval(() => {
+								this.getPlatformTask()
+							}, 120 * 1000)
 						}
 					}
 				})
 			},
-			getPlatformTask() {
+			getPlatformTask() {
+				if(this.timer1){
+					clearInterval(this.timer1)
+				}
 				getPlatformWorkData({
 					platformId: this.activePlatform.id
 				}).then(res => {
-					this.platformTaskInfo = res.data
-					this.circulInitTaskList()
-					setInterval(() => {
-						this.circulInitTaskList()
+					this.platformTaskInfo = res.data
+					this.currentDate = new Date(res.data.currentDate).getTime()
+					this.circulInitTaskList()
+					this.currentDate = this.currentDate + 1000
+					this.timer1 = setInterval(() => {
+						this.circulInitTaskList()
+						this.currentDate = this.currentDate + 1000
 					}, 1000)
-				})
+				}, () => {})
 			},
-			circulInitTaskList() {
+			circulInitTaskList() {
+				let time = this.currentDate
 				if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList
 					.length > 0) {
-					let time = new Date()
-					this.platformTaskInfo.platformJobList.forEach(item => {
-						if (item.callDate) {
-							let timeNum = time.getTime() - new Date(item.callDate).getTime()
+					this.platformTaskInfo.platformJobList.forEach(item => {
+						if(item.wmsContractNum){
+							item.wmsContractNum = item.wmsContractNum.split(',').join('锛�')
+						}
+						if (item.newCallDate) {
+							let timeNum = 0
+							if(time > new Date(item.newCallDate).getTime()){
+								timeNum = time - new Date(item.newCallDate).getTime()
+							}else{
+								timeNum = 0
+							}
 							if (timeNum > 3600000) {
 								item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
 							} else {
 								item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
 							}
 						}
-						if (item.startDate) {
-							let timeNum = time.getTime() - new Date(item.startDate).getTime()
+						if (item.newStartDate) {
+							let timeNum = 0
+							if(time > new Date(item.newStartDate).getTime()){
+								timeNum = time - new Date(item.newStartDate).getTime()
+							}else{
+								timeNum = 0
+							}
 							if (timeNum > 3600000) {
-								item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+								item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
 							} else {
 								item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
 							}
@@ -309,6 +377,10 @@
 				if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
 					this.activePlatform = this.activePlatformGroup.platformList[0]
 					this.getPlatformTask()
+					clearInterval(this.timer)
+					this.timer = setInterval(() => {
+						this.getPlatformTask()
+					}, 60 * 1000)
 				}
 				this.showPlatformgroup = false
 			},
@@ -324,20 +396,29 @@
 					this.showDetail = true
 				})
 			},
+			subDetail(item) {
+				uni.navigateTo({
+					url: `/pages/index/SubDetail?id=${item.bookId}`
+				})
+			},
 			handleFinish(item) {
 				finishWork({
 					jobId: item.id
 				}).then(res => {
-					this.showToast('瀹屾垚浣滀笟')
-					this.getPlatformTask()
+						if (res && res.code == 200) {
+							this.showToast('瀹屾垚浣滀笟')
+							this.getPlatformTask()
+						}
 				})
 			},
 			handleWork(item) { // 寮�濮嬩綔涓�
 				beginWork({
 					jobId: item.id
 				}).then(res => {
-					this.showToast('宸插紑濮嬩綔涓�')
-					this.getPlatformTask()
+					if (res && res.code == 200) {
+						this.showToast('宸插紑濮嬩綔涓�')
+						this.getPlatformTask()
+					}
 				})
 			},
 			handlePass(item) {
@@ -366,20 +447,26 @@
 				this.platformCallPage = 1
 				if (callType == 1) { // 鍏ュ洯鍙彿
 					platformInPark({
-						jobId: item.id,
+						jobId: item.id,
 						platformId: activePlatform.id
-					}).then(res => {
-						this.showToast('鍙彿鎴愬姛')
-						this.getPlatformCallList()
+					}).then(res => {
+						if (res && res.code == 200) {
+							this.showToast('鍙彿鎴愬姛')
+							this.getPlatformCallList()
+						}
+						
 					})
 				} else { // 鏈堝彴鍙彿
 					platformCallNumber({
 						platformId: activePlatform.id,
 						jobId: item.id
-					}).then(res => {
-						this.showToast('鍙彿鎴愬姛')
-						this.getPlatformCallList()
-						this.getPlatformTask()
+					}).then(res => {
+						if (res && res.code == 200) {
+							this.showToast('鍙彿鎴愬姛')
+							this.getPlatformCallList()
+							this.getPlatformTask()
+						}
+						
 					})
 				}
 			},
@@ -422,7 +509,12 @@
 					page: platformCallPage
 				}).then(res => {
 					if (res.data && res.data.records) {
-						this.platformCallList = [...this.platformCallList, ...res.data.records]
+						this.platformCallList = [...this.platformCallList, ...res.data.records]
+						this.platformCallList.forEach(item => {
+							if(item.wmsContractNum){
+								item.wmsContractNum = item.wmsContractNum.split(',').join('锛�')
+							}
+						})
 						this.platformCallTotal = res.data.total
 					}
 				})
@@ -454,6 +546,7 @@
 				} = this
 				this.transformId = item.id
 				this.transformPlatId = activePlatform.id
+				this.getTransferList()
 				this.showTransform = true
 			},
 			handleErr(item) {
@@ -475,6 +568,10 @@
 	}
 </script>
 <style lang="scss">
+	page {
+		background-color: #f1f2f2;
+	}
+
 	.main_app {
 		padding: 0rpx;
 		height: calc(100vh - 44px);
@@ -492,7 +589,7 @@
 				flex-wrap: wrap;
 
 				.item {
-					width: 210rpx;
+					width: 220rpx;
 					height: 80rpx;
 					line-height: 80rpx;
 					text-align: center;
@@ -501,8 +598,11 @@
 					border: 1rpx solid #999999;
 					font-size: 30rpx;
 					color: #222222;
-					margin-bottom: 20rpx;
-					margin-right: 30rpx;
+					margin-bottom: 15rpx;
+					margin-right: 15rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
 
 					&:nth-of-type(3n) {
 						margin-right: 0;
@@ -565,16 +665,22 @@
 				margin-bottom: 30rpx;
 
 				.code {
-					display: flex;
 					font-weight: 600;
 					height: 60rpx;
-					line-height: 60rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
 					font-size: 32rpx;
 					color: #111111;
 					border-radius: 8rpx;
 					border: 1rpx solid #dfdede;
 
 					text {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						height: 100%;
+
 						&:nth-of-type(1) {
 							background: #e9f5f6;
 							padding: 0 12rpx;
@@ -605,12 +711,15 @@
 				margin-bottom: 20rpx;
 
 				.label {
-					width: 144rpx;
-					color: #666666;
+					width: 132rpx;
+					color: #666666;
+					flex-shrink: 0;
 				}
 
 				.value {
-					flex: 1;
+					flex: 1;
+					display: flex;
+					flex-wrap: wrap;
 				}
 			}
 
@@ -657,8 +766,9 @@
 			.btn {
 				width: 224rpx;
 				height: 88rpx;
-				line-height: 88rpx;
-				text-align: center;
+				display: flex;
+				justify-content: center;
+				align-items: center;
 				background: #ffffff;
 				border-radius: 44rpx;
 				color: $uni-color-primary;
@@ -694,7 +804,8 @@
 		}
 
 		.order_list {
-			height: calc(100% - 140rpx);
+			height: calc(100% - 160rpx);
+			margin-top: 20rpx;
 
 			.scroll_view {
 				height: 100%;
@@ -703,6 +814,10 @@
 			.platform_ing {
 				border-radius: 8rpx;
 				border: 1rpx solid #dfe2e8;
+
+				&:nth-of-type(1) {
+					margin-top: 0;
+				}
 			}
 		}
 
@@ -745,7 +860,8 @@
 					.label {
 						font-size: 28rpx;
 						color: #666666;
-						width: 88rpx;
+						width: 88rpx;
+						flex-shrink: 0;
 					}
 
 					.value {
@@ -855,7 +971,10 @@
 	}
 
 	.detail_modal {
+		height: 100vh;
 		padding: 36rpx 30rpx;
+		border-radius: 12rpx;
+		box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5);
 
 		.modal_title {
 			font-weight: 600;
@@ -866,19 +985,43 @@
 			margin-bottom: 36rpx;
 		}
 
+		.contract_wrap {
+			height: calc(100% - 400rpx);
+			overflow-y: auto;
+		}
+
 		.contract_list {
+			border-top: 1rpx solid #E5E5E5;
+			margin-bottom: 30rpx;
+			padding-top: 30rpx;
+
+			&:nth-last-child(1) {
+				margin-bottom: 0;
+			}
+
 			.list {
 				background: #f7f7f7;
 				border-radius: 8rpx;
 				padding: 20rpx;
 
+				.item {
+					border-bottom: 1rpx solid #e5e5e5;
+					padding-bottom: 20rpx;
+					margin-bottom: 20rpx;
+
+					&:nth-last-child(1) {
+						border: none;
+						padding-bottom: 0;
+						margin-bottom: 0;
+					}
+				}
+
 				.line {
 					display: flex;
 					margin-bottom: 20rpx;
 
-					&:nth-of-type(3n) {
-						border-top: 1rpx solid #e5e5e5;
-						padding-top: 20rpx;
+					&:nth-last-child(1) {
+						margin-bottom: 0rpx;
 					}
 
 					.label {
@@ -960,5 +1103,9 @@
 				}
 			}
 		}
+	}
+	.line2{
+		margin-right: -30rpx;
+		padding-right: 0;
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3