From a28d0135ee42809b2c5863609da37155d3ecba5b Mon Sep 17 00:00:00 2001
From: yangan <yangan0921@163.com>
Date: 星期二, 29 四月 2025 15:11:39 +0800
Subject: [PATCH] feat:增加类型显示

---
 pages/doorkeeper-page/doorkeeper-index/exit-index.vue |  580 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 524 insertions(+), 56 deletions(-)

diff --git a/pages/doorkeeper-page/doorkeeper-index/exit-index.vue b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue
index 4a7e8f9..856ad77 100644
--- a/pages/doorkeeper-page/doorkeeper-index/exit-index.vue
+++ b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue
@@ -1,32 +1,222 @@
 <template>
 		<view class="appointment">
 			<view class="searchview">
-				<u-search @change="change" :searchIconSize="40" placeholder="璇疯緭鍏ヨ溅鐗屽彿" height="80" clearabled v-model="carNo" @search="search" @custom="custom" @clear="clear" >
+				<u-search @change="change" :searchIconSize="40" placeholder="璇疯緭鍏ヨ溅鐗屽彿" height="60" clearabled v-model="carNo" @search="search" @custom="custom" @clear="clear" >
 				</u-search >
 			</view>
-			<uni-table border
-				stripe
-				emptyText="鏆傛棤鏇村鏁版嵁">
-				<uni-tr>
-					<uni-th align="center">杞︾墝鍙�</uni-th>
-					<uni-th align="center">浜у搧</uni-th>
-					<uni-th align="center">鍙告満</uni-th>
-					<uni-th align="center">鎵嬫満鍙�</uni-th>
-					<uni-th align="center">绌鸿溅鍑哄満	</uni-th>
-					<uni-th align="center">鎿嶄綔</uni-th>
-				</uni-tr>
-				<uni-tr v-for="(item, index) in driverBillOfLoadingData"
-					:key="item.id">
-					<uni-td align="center">{{ item.carNo || '' }}</uni-td>
-					<uni-td align="center">{{ item.productNames || '' }}</uni-td>
-					<uni-td align="center">{{ item.driver  }}</uni-td>
-					<uni-td align="center">{{ item.phone || '' }}</uni-td>
-					<uni-td align="center">{{ item.isEmptyCar?item.isEmptyCar=='0'?'鍚�':'鏄�':'鍚�'}}</uni-td>
-					<uni-td><u-button text="妫�鏌�"
-							type="primary"
-							@click="yuYueBtnClick(item)"></u-button></uni-td>
-				</uni-tr>
-			</uni-table>
+			<u-collapse
+					ref="myCollapse"
+					:value='["1"]'
+					>
+					 <u-collapse-item
+					 ref="collapseHeight"
+					 name='1'
+					class="collItem"
+					:title="'寰呮鏌ヨ溅杈�'">	
+			<view style="position: relative;top: -40px;">
+				<u-empty mode="data"
+					icon="http://cdn.uviewui.com/uview/empty/data.png"
+					textSize="30"
+					iconSize="1000"
+					text="鏆傛棤杞﹁締"
+					v-if="driverBillOfLoadingData.length == 0"></u-empty>
+			</view>
+			<view class="collection-form">
+				<view class="collection-form-item"
+					v-for="(item, index) in driverBillOfLoadingData"
+					:key="index">
+					<view class="first-line">
+						<view class="dispatch-receive">
+							<view class="dispatch-dept">{{ item.code || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.customerName ||'' }}</view>
+						</view>
+						<view class="point-number">
+							<text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text>
+						</view>
+					</view>
+					<view class="second-line" v-if="item.splicingOrderId">
+						<text style="color:red">姝ゅ崟鍖呭惈鎷煎崟锛�</text>
+					</view>
+					<view class="second-line">
+						<view class="coal-name">
+							<view class="dispatch-dept">{{ item.carNo || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.driver ||'' }}</view>
+							<view class="black-bar"></view>
+							<text>{{ item.phone || '' }}</text>
+								<view class="black-bar"></view>
+							<view class="dispatch-dept">{{ item.orderType || ''  }}</view>
+						</view>
+					</view>
+					<view class="second-line">
+						<view class="coal-name">
+							<view>鍑�閲嶏細{{item.clean || 0}}</view>
+							<view class="black-bar"></view>
+							<view>鏁伴噺锛歿{item.productQuantity || 0}}</view>
+						</view>
+					</view>
+					<view class="third-line">
+						<view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view>
+					</view>
+					<view class="fourth-line">
+						<view 
+						   v-if="item.splicingOrderId"
+							@click.stop="checkDetail(item)">
+							<view class="button-image">
+								<u-button   type='primary'>鏌ョ湅鎷煎崟</u-button>
+							</view>
+						</view>
+						<view class="forward"
+							@click.stop="yuYueBtnClick(item)">
+							<view class="button-image">妫�鏌�</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			</u-collapse-item>
+			</u-collapse>
+			<u-collapse
+					ref="myCollapse"
+					>
+					 <u-collapse-item
+					 ref="collapseHeights"
+					 name='3'
+					class="collItem"
+					:title="'涓存椂鍑哄満杞﹁締'">	
+			<view style="position: relative;top: -40px;">
+				<u-empty mode="data"
+					icon="http://cdn.uviewui.com/uview/empty/data.png"
+					textSize="30"
+					iconSize="1000"
+					text="鏆傛棤杞﹁締"
+					v-if="driverTemporaryEntry.length == 0"></u-empty>
+			</view>
+			<view class="collection-form">
+				<view class="collection-form-item"
+					v-for="(item, index) in driverTemporaryEntry"
+					:key="index">
+					<view class="second-line">
+						<view class="coal-name">
+							<view class="dispatch-dept">{{ item.carNo || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.tempEntrancePlan.driver ||'' }}</view>
+							<view class="black-bar"></view>
+							<text>{{ item.tempEntrancePlan.phone || '' }}</text>
+									<view class="black-bar"></view>
+								<view class="dispatch-dept">{{ item.orderType || ''  }}</view>
+						</view>
+					</view>
+					<view class="third-line">
+						<view class="time-icon">
+							<view
+								style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover">
+							</view>
+						</view>
+						<view class="send-date">{{ item.tempEntrancePlan.sendDate }} {{ item.tempEntrancePlan.startTime || '' }}-{{item.tempEntrancePlan.endTime || ""}}</view>
+					</view>
+					<view class="first-line">
+						<view class="dispatch-receive">
+							<view class="dispatch-dept">{{ item.tempEntrancePlan.coalName || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.tempEntrancePlan.customerName ||'' }}</view>
+						</view>
+						<view class="point-number">
+							<text class="order-type">{{ item.tempEntrancePlan.productNames?limitString(item.tempEntrancePlan.productNames,20,'...'):'' || '' }}</text>
+						</view>
+					</view>
+					<view class="fourth-line">
+						<view class="forward"
+							@click.stop="yuYueLiShBtnClick(item)">
+							<view class="button-image">妫�鏌�</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			</u-collapse-item>
+			</u-collapse>
+			<u-collapse
+					ref="myCollapse"
+					>
+					 <u-collapse-item
+					 name='2'
+					class="collItem"
+					:title="'宸叉鏌ヨ溅杈�'">	
+			<view style="position: relative;top: -40px;">
+				<u-empty mode="data"
+					icon="http://cdn.uviewui.com/uview/empty/data.png"
+					textSize="30"
+					iconSize="1000"
+					text="鏆傛棤杞﹁締"
+					v-if="driverBillOfLoadingDatas.length == 0"></u-empty>
+			</view>
+			<view class="collection-form" style="margin-bottom: 60px;">
+				<view class="collection-form-item"
+					v-for="(item, index) in driverBillOfLoadingDatas"
+					:key="index">
+					<view class="first-line">
+						<view class="dispatch-receive">
+							<view class="dispatch-dept">{{ item.code || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.customerName ||'' }}</view>
+						</view>
+						<view class="point-number">
+							<text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text>
+						</view>
+					</view>
+					<view class="second-line" v-if="item.splicingOrderId">
+						<text style="color:red">姝ゅ崟鍖呭惈鎷煎崟锛�</text>
+					</view>
+					<view class="second-line">
+						<view class="coal-name">
+							<view>鍑�閲嶏細{{item.clean|| 0}}</view>
+							<view class="black-bar"></view>
+							<view>鏁伴噺锛歿{item.productQuantity|| 0}}</view>
+						</view>
+					</view>
+					<view class="second-line">
+						<view class="coal-name">
+							<view class="dispatch-dept">{{ item.carNo || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ item.driver ||'' }}</view>
+							<view class="black-bar"></view>
+							<text>{{ item.phone || '' }}</text>
+								<view class="black-bar"></view>
+								<view class="dispatch-dept">{{ item.orderType || ''  }}</view>
+							
+						</view>
+					</view>
+					<view class="second-line">
+						<view class="coal-name">
+							<view>鍑�閲嶏細{{item.clean|| 0}}</view>
+							<view class="black-bar"></view>
+							<view>鏁伴噺锛歿{item.productQuantity|| 0}}</view>
+						</view>
+					</view>
+					<view class="third-line">
+						<view class="time-icon">
+							<view
+								style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover">
+							</view>
+						</view>
+						<view class="send-date">{{ item.outTime?item.outTime.slice(10,19):null }} </view>
+					</view>
+					<view class="third-line">
+						<view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view>
+					</view>
+					<view class="fourth-line">
+						<view 
+						   v-if="item.splicingOrderId"
+							@click.stop="checkDetail(item)">
+							<view class="button-image">
+								<u-button   type='primary'>鏌ョ湅鎷煎崟</u-button>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			</u-collapse-item>
+			</u-collapse>
 			<u-popup :show="show"
 				@close="close"
 				@open="open"
@@ -62,6 +252,44 @@
 					@confirm="logoutConfirm"
 					@cancel="logoutCancel"></u-modal>
 			</view>
+			<view class="falseModel">
+				<u-modal :show="TemporaryEntryShow"
+					:title="logoutTitle"
+					showCancelButton
+					:content="logoutContent"
+					@confirm="TemporaryEntryConfirm"
+					@cancel="TemporaryEntryCancel"></u-modal>
+			</view>
+			<u-modal :width='750' :show="showModal" :title="title" @confirm='confrim'>
+				<view class="collection-form-item">
+					<view class="first-line">
+						<view class="dispatch-receive">
+							<view class="dispatch-dept">{{ activeObj.code || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ activeObj.customerName ||'' }}</view>
+						</view>
+						<view class="point-number">
+							<text class="order-type">{{ activeObj.productNames?limitString(activeObj.productNames,20,'...'):'' || '' }}</text>
+						</view>
+					</view>
+					<view class="second-line" v-if="activeObj.splicingOrderId">
+						<text style="color:red">鎷煎崟</text>
+					</view>
+					<view class="second-line">
+						
+						<view class="coal-name">
+							<view class="dispatch-dept">{{ activeObj.carNo || ''  }}</view>
+							<view class="black-bar"></view>
+							<view class="dispatch">{{ activeObj.driver ||'' }}</view>
+							<view class="black-bar"></view>
+							<text>{{ activeObj.phone || '' }}</text>
+						</view>
+					</view>
+					<view class="third-line">
+						<view class="send-date">{{ activeObj.isEmptyCar?activeObj.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view>
+					</view>
+				</view>
+			</u-modal>
 		</view>
 </template>
 
@@ -71,25 +299,45 @@
 		},
 		data() {
 			return {
+				door:'',
+				temporaryPlanId:"",
 				show: false, // 寮瑰嚭鍏ㄩ儴棰嗗彇鎻愮ず
+				showModal:false,
+				title:'鎷煎崟',
 				driverBillOfLoadingData:[],
+				driverBillOfLoadingDatas:[],
+				driverTemporaryEntry:[],
 				inspectData:[],
 				isAllSelected:false,
 				form:{},
 				carNo:'',
 				logoutShow: false,
+				TemporaryEntryShow:false,
 				logoutTitle: '鎻愮ず',
 				logoutContent: '鏄惁妫�鏌ュ畬姣�',
 				previewImageSrc:"",
-				ClickLoading:false
+				ClickLoading:false,
+				activeObj:{},
 			}
 		},
 		onShow() {
+			this.door=uni.getStorageSync('door', this.door)
 			this.init();
 		},
 		methods: {
+			handleOpenChange() {
+				this.$nextTick(() => {
+					this.$refs.collapseHeight.init()
+				});
+				this.$nextTick(() => {
+					this.$refs.collapseHeights.init()
+				});
+			},
+			limitString(str, limit, suffix = '...') {
+							if (str.length <= limit) return str;
+							return str.slice(0, limit) + suffix;
+						},
 			logoutConfirm() {
-
 				uni.showLoading({ title: '鍔犺浇涓�...' });
 				this.$reqPost('addCheckLog',{
 								carNo:this.form.carNo,
@@ -108,6 +356,23 @@
 					}
 				})
 			},
+			TemporaryEntryConfirm(){
+				this.$reqPut('temporaryentryinspection',{
+								id:this.temporaryPlanId,
+							}, 'json').then(res => {
+					if (res.code === 0) {
+						uni.$u.toast('妫�鏌ユ垚鍔�')
+						this.form={}
+						this.ClickLoading = false;
+						this.show = false;
+						this.TaskCoalList()
+						this.TemporaryEntryShow = false;
+					} else {
+						uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�')
+						this.TemporaryEntryShow = false;
+					}
+				})
+			},
 			logoutCancel() {
 				this.logoutShow = false;
 			},
@@ -115,6 +380,9 @@
 				this.logoutShow = true;
 				this.inspectData=[]
 				this.form=item
+			},
+			TemporaryEntryCancel() {
+				this.TemporaryEntryShow = false;
 			},
 			selectionChange(items){
 			  const allIds = this.inspectData.map(item => item);
@@ -125,6 +393,10 @@
 				this.TaskCoalList();
 				this.form={}
 				this.inspectData=[]
+			},
+			yuYueLiShBtnClick(item){
+				this.temporaryPlanId=item.id
+				this.TemporaryEntryShow = true;
 			},
 			popClick() {
 					if(this.isAllSelected==true){
@@ -168,18 +440,50 @@
 				});
 				
 				if(!this.carNo){
-					this.$reqGet('getCheckTaskCoal',{flag:1}).then(res => {
+					this.$reqGet('getCheckTaskCoal',{flag:1,door:this.door}).then(res => {
 						uni.hideLoading();
 						this.driverBillOfLoadingData = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
+					})
+					this.$reqGet('getTemporaryEntryOutInspectionList',{}).then(res => {
+						uni.hideLoading();
+						this.driverTemporaryEntry = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
 					});
 				}else{
-					this.$reqGet('getCheckTaskCoal',{flag:1,carNo:this.carNo}).then(res => {
+					this.$reqGet('getCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => {
 						uni.hideLoading();
 						this.driverBillOfLoadingData = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
+					});
+					this.$reqGet('getTemporaryEntryOutInspectionList',{carNo:this.carNo}).then(res => {
+						uni.hideLoading();
+						this.driverTemporaryEntry = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
 					});
 				}
-				
-				
+				if(!this.carNo){
+					this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,door:this.door}).then(res => {
+						uni.hideLoading();
+						this.driverBillOfLoadingDatas = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
+					});
+				}else{
+					this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => {
+						uni.hideLoading();
+						this.driverBillOfLoadingDatas = res.data;
+						uni.stopPullDownRefresh();
+						this.handleOpenChange();
+					});
+				}
+			},
+			onPullDownRefresh() {
+				this.TaskCoalList()
 			},
 			change(res) {
 				console.log(res)
@@ -193,6 +497,15 @@
 			},
 			custom(res) {
 				console.log(res)
+			},
+			//鏌ョ湅鎷煎崟
+			checkDetail(item){
+				this.activeObj = item.splicingOrders ? item.splicingOrders : {};
+				this.showModal = true;
+
+			},
+			confrim(){
+				this.showModal = false;
 			}
 		}
 	};
@@ -201,7 +514,7 @@
 <style lang="scss" scoped>
 	.searchview{
 		margin: 20rpx 0;
-		height: 200rpx;
+		height: 100rpx;
 		u-search{
 			width: 100rpx;
 		}
@@ -227,6 +540,7 @@
 		}
 	}
 	::v-deep.appointment {
+		margin-bottom:  vww(100);
 		.appointment-description {
 			margin: vww(8) 0;
 			color: #fd1446;
@@ -237,31 +551,6 @@
 				margin-left: vww(5);
 				color: #252525;
 			}
-		}
-		@mixin fourthLine {
-			width: 64%;
-			height: vww(68);
-			display: flex;
-			align-items: center;
-			position: relative;
-			left: vww(102);
-			bottom: vww(3);
-		
-			.button-img {
-				width: vww(122);
-				height: vww(41);
-				background: url('https://mx.jzeg.cn:9096/appimg/image/banner/button.png') no-repeat;
-				background-size: cover;
-				font-size: 28rpx;
-				font-weight: 300;
-				color: #ffffff;
-				text-align: center;
-				line-height: vww(40);
-		
-			}
-		}
-		.fourth-line {
-			@include fourthLine;
 		}
 
 		// 琛ㄦ牸
@@ -303,4 +592,183 @@
 		position: relative;
 		top: vww(-120);
 	}
+	@mixin flex {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+	}
+	.collection-form-item {
+			margin: 0 vww(15);
+			width: 95%;
+			height: 370rpx;
+			background: #ffffff;
+			box-shadow: 4rpx 6rpx 25rpx 0rpx rgba(73, 120, 240, 0.15);
+			border-radius: 20rpx;
+			overflow: hidden;
+			@include flex;
+			flex-direction: column;
+			position: relative;
+			align-items: flex-start;
+			margin-top: vww(10);
+	
+			.first-line {
+				width: 94%;
+				height: vww(30);
+				margin: vww(10) vww(16) 0 vww(16);
+				display: flex;
+				justify-content: space-between;
+	
+				.dispatch-receive {
+					width: 70%;
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+	
+					.dispatch-dept {
+	
+						display: flex;
+						align-items: center;
+					}
+	
+					.black-bar {
+						width: 2rpx;
+						height: 30rpx;
+						background: #515151;
+						margin-left: vww(12);
+					}
+	
+					.dispatch {
+						margin-left: vww(12);
+						min-width: vww(50);
+					}
+	
+				}
+	
+				.point-number {
+					width: 33%;
+	
+					.order-type {
+						color: #035cfb;
+						border-radius: 4rpx;
+						text-align: center;
+					}
+					// text {
+					// 	font-size: 24rpx;
+					// 	font-weight: 400;
+					// 	color: #c78a64;
+					// }
+	
+					// .residue {
+					// 	font-size: 40rpx;
+					// 	font-weight: 400;
+					// 	color: #f81414;
+					// }
+				}
+			}
+	
+			.second-line {
+				width: 100%;
+				height: vww(30);
+				margin-left: vww(16);
+				display: flex;
+				align-items: center;
+				justify-content: flex-start;
+	
+				.coal-name {
+					flex-grow: 1;
+					height: 30rpx;
+					font-size: 30rpx;
+					font-weight: 300;
+					color: #515151;
+					position: relative;
+					display: flex;
+					align-items: center;
+	
+					.black-bar {
+						width: 2rpx;
+						height: 30rpx;
+						background: #515151;
+						margin: 0 vww(12) ;
+					}
+	
+					.coal-type {
+						margin-left: vww(12);
+						min-width: vww(50);
+						height: 30rpx;
+						line-height: 30rpx;
+						font-size: 30rpx;
+						font-weight: 300;
+						color: #515151;
+					}
+				}
+			}
+			.third-line {
+				height: vww(30);
+				margin-left: vww(15);
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				.send-date {
+					margin-left: vww(14);
+					height: 24rpx;
+					line-height: 24rpx;
+					font-size: 28rpx;
+					font-weight: 300;
+					color: #515151;
+				}
+			}
+			.fourth-line {
+				width: 100%;
+				height: vww(30);
+				@include flex;
+				justify-content: flex-start;
+				position: relative;
+				bottom: vww(10);
+				left: 25%;
+			
+				.receive,
+				.forward {
+					width: vww(123);
+					height: vww(48);
+					@include flex;
+					justify-content: center;
+					color: #ffffff;
+					font-size: 28rpx;
+					position: absolute;
+			
+					.button-image {
+						width: 100%;
+						height: 100%;
+						background: url('../../../static/image/banner/button.png') no-repeat;
+						background-size: cover;
+						font-size: 28rpx;
+						font-weight: 300;
+						color: #ffffff;
+						text-align: center;
+						line-height: vww(45);
+					}
+				}
+			
+				.receive {
+					left: vww(20);
+				}
+			
+				.forward {
+					width: vww(106);
+					left: vww(140);
+			
+					.button-image {
+						width: 100%;
+						height: 100%;
+						background: url('../../../static/image/banner/transpartent.png') no-repeat;
+						background-size: cover;
+						font-size: 28rpx;
+						font-weight: 300;
+						color: #3b56eb;
+						text-align: center;
+						line-height: vww(45);
+					}
+				}
+			}
+		}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1