From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化
---
h5/pages/driver/queueUpRecord.vue | 161 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 107 insertions(+), 54 deletions(-)
diff --git a/h5/pages/driver/queueUpRecord.vue b/h5/pages/driver/queueUpRecord.vue
index 68e09af..de92b96 100644
--- a/h5/pages/driver/queueUpRecord.vue
+++ b/h5/pages/driver/queueUpRecord.vue
@@ -1,36 +1,24 @@
<template>
<view class="main_app">
<view class="main_name">
- <text class="mr12">鐗╂祦鍏ュ簱鏈堝彴</text>
- <u-icon name="arrow-down" color="#777777"></u-icon>
+ <text class="mr12">{{ platformObj.name }}</text>
+ <!-- <u-icon name="arrow-down" color="#777777"></u-icon> -->
</view>
<!-- -->
<view class="main_list">
- <view class="item">
- <view class="status">浣滀笟涓�</view>
- <image class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
+ <view class="item" :class="{ active: item.driverId == driverInfo.memberId }" 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.driverId == driverInfo.memberId" class="me">鎴�</view>
+ <image v-if="item.driverId == driverInfo.memberId" 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">鐨朅</view>
+ <view class="id_card" v-if="item.carCodeFront">{{ item.carCodeFront.slice(0, 4) }}**{{ item.carCodeFront.slice(6) }}</view>
<view class="line">
- <view class="address">4鍙锋湀鍙�</view>
- <view class="time">
+ <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>01:02:02</text>
- </view>
- </view>
- </view>
- </view>
- <view class="item active">
- <view class="status padding">浣滀笟涓�</view>
- <view class="me">鎴�</view>
- <image class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
- <view class="content">
- <view class="id_card">鐨朅</view>
- <view class="line">
- <view class="address">4鍙锋湀鍙�</view>
- <view class="time">
- <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
- <text>01:02:02</text>
+ <text>{{item.callDateTemp}}</text>
</view>
</view>
</view>
@@ -40,33 +28,98 @@
</template>
<script>
- export default {
- data() {
- return {
-
- };
+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 || '');
+ },
+ 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{
+page {
+ background-color: #f7f7f7;
+}
+.main_app {
+ .main_name {
display: flex;
justify-content: center;
align-items: center;
height: 104rpx;
- font-weight: 500;
+ font-weight: 600;
font-size: 32rpx;
color: #111111;
background-color: #fff;
- margin:0 -30rpx 20rpx;
+ margin: 0 -30rpx 20rpx;
}
- .main_list{
- .item{
+ .main_list {
+ .item {
display: flex;
align-items: center;
position: relative;
@@ -74,23 +127,23 @@
background-color: #fff;
margin-bottom: 20rpx;
border-radius: 8rpx;
- .status{
+ .status {
position: absolute;
top: 0;
right: 0;
height: 50rpx;
line-height: 50rpx;
padding: 0 20rpx;
- background: #279BAA;
+ background: $uni-color-primary;
color: #fff;
font-size: 26rpx;
border-radius: 0rpx 8rpx 0rpx 25rpx;
}
- .me{
+ .me {
position: absolute;
top: 0;
left: 0;
- background: #00BA67;
+ background: #00ba67;
border-radius: 8rpx 0rpx 8rpx 0rpx;
height: 42rpx;
line-height: 42rpx;
@@ -100,41 +153,41 @@
font-size: 24rpx;
z-index: 11;
}
- .padding{
- background: #E9F5F6;
- color: #279BAA;
+ .padding {
+ background: #e9f5f6;
+ color: $uni-color-primary;
}
- .avatar{
+ .avatar {
width: 84rpx;
height: 84rpx;
margin-right: 20rpx;
+ background-color: #fff;
}
- .content{
+ .content {
flex: 1;
- .id_card{
+ .id_card {
font-weight: 500;
font-size: 30rpx;
color: #111111;
}
- .line{
+ .line {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 26rpx;
color: #999999;
margin-top: 6rpx;
- .time{
+ .time {
display: flex;
align-items: center;
- color: #279BAA;
+ color: $uni-color-primary;
}
}
}
}
- .active{
- background: linear-gradient( 270deg, #FFFFFF 0%, #E1F7FE 100%);
+ .active {
+ background: linear-gradient(270deg, #ffffff 0%, #e1f7fe 100%);
}
}
-
}
</style>
--
Gitblit v1.9.3