From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 h5/pages/driver/queueUpRecord.vue |  197 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 197 insertions(+), 0 deletions(-)

diff --git a/h5/pages/driver/queueUpRecord.vue b/h5/pages/driver/queueUpRecord.vue
new file mode 100644
index 0000000..d7c95b3
--- /dev/null
+++ b/h5/pages/driver/queueUpRecord.vue
@@ -0,0 +1,197 @@
+<template>
+	<view class="main_app">
+		<view class="main_name">
+			<text class="mr12">{{ platformObj.name }}</text>
+			<!-- <u-icon name="arrow-down" color="#777777"></u-icon> -->
+		</view>
+		<!--  -->
+		<view class="main_list">
+			<view class="item" :class="{ active: item.drivierPhone == driverInfo.mobile }" v-for="item in dataList" :key="item.id">
+				<view class="status padding" v-if="item.status == 2">鎺掗槦涓�</view>
+				<view class="status" v-else :class="{ padding: item.status != 5 }">{{ statusMap[item.status] }}</view>
+				<view v-if="item.drivierPhone == driverInfo.mobile" class="me">鎴�</view>
+				<image v-if="item.drivierPhone == driverInfo.mobile" class="avatar" src="@/static/driver/ic_truck_mine@2x.png" mode=""></image>
+				<image v-else class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
+				<view class="content">
+					<view class="id_card" v-if="item.carCodeFront">{{ item.carCodeFront.slice(0, 4) }}**{{ item.carCodeFront.slice(6) }}</view>
+					<view class="line">
+						<view class="address">{{ item.platformName || '绛夊緟鍒嗛厤鏈堝彴' }}</view>
+						<view class="time" v-if="item.status == 5">
+							<u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
+							<text>{{item.startDateTemp}}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+import { driverLineUpDetail } from '@/api';
+import { statusMap } from '@/utils/config.js';
+import dayjs from 'dayjs';
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration)
+export default {
+	data() {
+		return {
+			statusMap,
+			platformId: '',
+			type: '',
+			dataList: [],
+			platformObj: {},
+			driverInfo: uni.getStorageSync('driverInfo')
+		};
+	},
+	onLoad(option) {
+		this.type = option.type;
+		this.platformId = option.platformId;
+		this.getData(option.jobId || '');
+		uni.setNavigationBarTitle({
+		  title: this.type == 0 ? '宸茬鍒拌溅杈�' : '浣滀笟涓溅杈�'
+		})
+	},
+	methods: {
+		getData(jobId) {
+			const { platformId, type } = this;
+			driverLineUpDetail({
+				mobile: jobId ? '' : uni.getStorageSync('driverInfo').mobile,
+				queryType: jobId ? 1 : 0,
+				jobId: jobId
+			}).then(res => {
+				this.platformGroupList = res.data.platformGroupList;
+				if (res.data && res.data.platformGroupList && res.data.platformGroupList.length > 0) {
+					res.data.platformGroupList.forEach(item => {
+						if (item.id == platformId) {
+							this.platformObj = { ...item };
+							if (type == 0) {
+								this.dataList = item.signJobList;
+							} else {
+								this.dataList = item.workJobList;
+							}
+							this.circulInitTaskList()
+							setInterval(() => {
+								this.circulInitTaskList()
+							}, 1000)
+						}
+					});
+				}
+			});
+		},
+		circulInitTaskList() {
+				let time = new Date();
+				this.dataList.forEach(item => {
+					if (item.callDate) {
+						let timeNum = time.getTime() - new Date(item.callDate).getTime();
+						if (timeNum > 3600000) {
+							item.callDateTemp = dayjs.duration(timeNum).format('HH:mm:ss');
+						} else {
+							item.callDateTemp = dayjs.duration(timeNum).format('mm:ss');
+						}
+					}
+					if (item.startDate) {
+						let timeNum = time.getTime() - new Date(item.startDate).getTime();
+						if (timeNum > 3600000) {
+							item.startDateTemp = dayjs.duration(timeNum).format('HH:mm:ss');
+						} else {
+							item.startDateTemp = dayjs.duration(timeNum).format('mm:ss');
+						}
+					}
+				});
+				this.$forceUpdate();
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background-color: #f7f7f7;
+}
+.main_app {
+	.main_name {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 104rpx;
+		font-weight: 600;
+		font-size: 32rpx;
+		color: #111111;
+		background-color: #fff;
+		margin: 0 -30rpx 20rpx;
+	}
+	.main_list {
+		.item {
+			display: flex;
+			align-items: center;
+			position: relative;
+			padding: 30rpx;
+			background-color: #fff;
+			margin-bottom: 20rpx;
+			border-radius: 8rpx;
+			.status {
+				position: absolute;
+				top: 0;
+				right: 0;
+				height: 50rpx;
+				line-height: 50rpx;
+				padding: 0 20rpx;
+				background: $uni-color-primary;
+				color: #fff;
+				font-size: 26rpx;
+				border-radius: 0rpx 8rpx 0rpx 25rpx;
+			}
+			.me {
+				position: absolute;
+				top: 0;
+				left: 0;
+				background: #00ba67;
+				border-radius: 8rpx 0rpx 8rpx 0rpx;
+				height: 42rpx;
+				line-height: 42rpx;
+				width: 64rpx;
+				text-align: center;
+				color: #fff;
+				font-size: 24rpx;
+				z-index: 11;
+			}
+			.padding {
+				background: #e9f5f6;
+				color: $uni-color-primary;
+			}
+			.avatar {
+				width: 84rpx;
+				height: 84rpx;
+				margin-right: 20rpx;
+				background-color: #fff;
+			}
+			.content {
+				flex: 1;
+				.id_card {
+					font-weight: 500;
+					font-size: 30rpx;
+					color: #111111;
+				}
+				.line {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					font-size: 26rpx;
+					color: #999999;
+					margin-top: 6rpx;
+					.time {
+						display: flex;
+						align-items: center;
+						color: $uni-color-primary;
+					}
+				}
+			}
+		}
+		.active {
+			background: linear-gradient(270deg, #ffffff 0%, #e1f7fe 100%);
+		}
+	}
+}
+</style>

--
Gitblit v1.9.3