From 754f0eea0b16985a4dc8e8448e1bde7a8aec6f26 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 18 二月 2025 16:22:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
h5/pages/driver/index.vue | 709 +++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 430 insertions(+), 279 deletions(-)
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 3281464..db7e113 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -1,279 +1,430 @@
-<template>
- <view class="main_app">
- <view class="title_wrap">
- <view class="name">鏌愭煇鏌愶紝娆㈣繋鐧诲綍锝�</view>
- <view class="btn" @click="loginOut">閫�鍑虹櫥褰�</view>
- </view>
- <!-- -->
- <view class="banner_wrap">
- <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
- <view class="h2">鐗╂祦杞︿笓鍖�</view>
- <image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
- </view>
- <!-- -->
- <view class="task_list">
- <view class="item">
- <view class="head">
- <view class="name">杩愯緭鍗�222</view>
- <view class="status">
- <view class="text">璇风‘璁や换鍔�</view>
- <view class="time">棰勮绛夊緟锛�12灏忔椂</view>
- </view>
- </view>
- <view class="content">
- <view class="info">
- <view class="plate">
- <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image>
- <text>鐨朅D</text>
- </view>
- <view class="plate">
- <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image>
- <text>3000涓�</text>
- </view>
- </view>
- <view class="sub">
- <view class="time">02-01 08:11:11</view>
- <view class="sub_btn" @click="handleTask()">纭浠诲姟</view>
- </view>
- </view>
- </view>
- </view>
- <!-- -->
- <view class="title_wrap"><view class="name">涓氬姟鍔炵悊</view></view>
- <view class="container1">
- <view class="left">
- <view class="img_wrap img1" @click="$jump('/pages/driver/reserved')">
- <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
- <view class="h1">鍏ュ洯椤荤煡</view>
- <view class="h2">RESERVATION</view>
- </view>
- <view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide')">
- <image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image>
- <view class="h1">棰勭害鎸囧崡</view>
- <view class="h2">APPOINTMENT GUIDE</view>
- </view>
- </view>
- <view class="right">
- <view class="img_wrap img2" @click="$jump('/pages/driver/reservedRecord')">
- <image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image>
- <view class="h1">棰勭害璁板綍</view>
- <view class="h2">APPOINTMENT RECORD</view>
- </view>
- <view class="img_wrap img2" @click="$jump('/pages/driver/queueUp')">
- <image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image>
- <view class="h1">鏈堝彴鎺掗槦鎯呭喌</view>
- <view class="h2">HIDDEN DANGER</view>
- </view>
- <view class="img_wrap img2">
- <image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image>
- <view class="h1">鍥尯瀵艰鍥�</view>
- <view class="h2">GUIDE MAP</view>
- </view>
- </view>
- </view>
- <!-- -->
- <view class="copyright">
- <image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" />
- <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
- </view>
- </view>
-</template>
-
-<script>
- export default {
- data() {
- return {
-
- };
- },
- methods: {
- handleTask(){
- uni.navigateTo({
- url: '/pages/driver/taskConfirm'
- })
- }
- }
- }
-</script>
-
-<style lang="scss">
-.title_wrap {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 24rpx;
- .name {
- font-weight: 500;
- font-size: 34rpx;
- color: #222222;
- }
- .btn {
- width: 144rpx;
- height: 56rpx;
- border-radius: 36rpx;
- border: 1rpx solid $uni-color-primary;
- font-size: 26rpx;
- color: $uni-color-primary;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-}
-.main_app {
- padding-top: 12rpx;
-}
-.banner_wrap {
- padding: 54rpx 44rpx;
- color: #fff;
- position: relative;
- width: 688rpx;
- height: 270rpx;
- margin-bottom: 40rpx;
- .h1 {
- font-weight: bold;
- line-height: 66rpx;
- font-size: 44rpx;
- margin-bottom: 14rpx;
- }
- .h2{
- font-weight: 500;
- font-size: 28rpx;
- width: 192rpx;
- color: $uni-color-primary;
- height: 48rpx;
- line-height: 48rpx;
- text-align: center;
- background: #FFFFFF;
- box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39,155,170,0.31);
- border-radius: 24rpx;
- }
- .banner {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: -1;
- }
-}
-.container1 {
- display: flex;
- flex-wrap: wrap;
- view {
- width: 336rpx;
- }
- .left {
- margin-right: 18rpx;
- }
- .img_wrap {
- position: relative;
- padding: 24rpx 0rpx 0 28rpx;
- border-radius: 8rpx;
- overflow: hidden;
- .h1 {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- line-height: 48rpx;
- margin-bottom: 4rpx;
- }
- .h2 {
- font-size: 22rpx;
- color: #7b9da1;
- line-height: 34rpx;
- }
- .img {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: -1;
- }
- }
- .img1 {
- width: 336rpx;
- height: 296rpx;
- margin-bottom: 16rpx;
- }
- .img2 {
- width: 336rpx;
- height: 140rpx;
- margin-bottom: 16rpx;
- }
-}
-.task_list{
- margin-bottom: 48rpx;
- .item{
- background: #FFFFFF;
- box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(39,155,170,0.18);
- border-radius: 16rpx;
- .head{
- display: flex;
- justify-content: space-between;
- align-items: center;
- background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%);
- padding: 20rpx 30rpx;
- .name{
- font-weight: 600;
- font-size: 36rpx;
- color: #222222;
- }
- .status{
- color: $uni-color-primary;
- font-weight: 500;
- .time{
- font-size: 24rpx;
- font-weight: 360;
- }
- }
- }
- .content{
- .info{
- display: flex;
- padding: 24rpx 30rpx;
- .plate{
- flex: 1;
- display: flex;
- align-items: center;
- .icon{
- width: 26rpx;
- height: 26rpx;
- margin-right: 10rpx;
- }
- }
- }
- .sub{
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 0 30rpx 24rpx;
- .time{
- font-size: 26rpx;
- color: #999999;
- }
- .sub_btn{
- height: 68rpx;
- line-height: 68rpx;
- padding: 0 34rpx;
- color: #FFFFFF;
- background: $uni-color-primary;
- box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39,155,170,0.4);
- border-radius: 40rpx;
- }
- }
- }
- }
-}
-.copyright {
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 44rpx;
- font-size: 24rpx;
- color: #666666;
- image {
- width: 40rpx;
- height: 40rpx;
- }
-}
-</style>
+<template>
+ <view class="main_app">
+ <view class="title_wrap">
+ <view class="name">{{ driverInfo.realname || driverInfo.username }}锛屾杩庣櫥褰曪綖</view>
+ <view class="btn" @click="loginOut">璐﹀彿瑙g粦</view>
+ </view>
+ <!-- -->
+ <view class="banner_wrap">
+ <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
+ <view class="h2">鐗╂祦杞︿笓鍖�</view>
+ <image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
+ </view>
+ <!-- -->
+ <view v-if="taskList && taskList.length > 0" class="task_list">
+ <swiper circular class="task_swiper">
+ <swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)">
+ <view class="item">
+ <view class="head">
+ <view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum }}</view>
+ <view class="status">
+ <view class="text" v-if="item.status == 0">璇风‘璁や换鍔�</view>
+ <view class="text" v-if="item.status == 1">璇蜂簬{{ item.arriveDate.slice(5, 11) }}鐜板満绛惧埌</view>
+ <view class="text" v-if="item.status == 2">鍓嶆柟鎺掗槦锛歿{ item.lineUpNum }}杈�</view>
+ <view class="text" v-if="item.status == 3">璇峰叆鍥繘鍏ョ瓑寰呭尯</view>
+ <view class="text" v-if="item.status == 4">璇峰叆鍥仠闈爗{ item.platformName }}浣滀笟</view>
+ <view class="text" v-if="item.status == 5">{{ item.platformName }}浣滀笟涓�</view>
+ <view class="text" v-if="item.status == 6">浣滀笟宸插畬鎴�</view>
+ <view class="text" v-if="item.status == 7">杞Щ涓�</view>
+ <view class="text red" v-if="item.status == 8">寮傚父鎸傝捣</view>
+ <view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view>
+ <view class="time" v-if="item.finishTimeStr && item.status == 5">棰勮瀹屾垚鏃堕棿锛歿{ item.finishTimeStr }}</view>
+ </view>
+ </view>
+ <view class="content">
+ <view class="info">
+ <view class="plate">
+ <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image>
+ <text>{{ item.carCodeFront }}</text>
+ </view>
+ <view class="plate">
+ <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image>
+ <text>{{ item.totalNum }}涓囨敮</text>
+ </view>
+ </view>
+ <view class="sub">
+ <view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view>
+ <view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">
+ {{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}
+ </view>
+ <view v-if="item.status == 0" class="sub_btn">纭浠诲姟</view>
+ <view v-if="item.status == 1" class="sub_btn">绔嬪嵆绛惧埌</view>
+ <view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">鏌ョ湅鎺掗槦</view>
+ </view>
+ </view>
+ </view>
+ </swiper-item>
+ </swiper>
+ </view>
+ <!-- -->
+ <view class="title_wrap">
+ <view class="name">涓氬姟鍔炵悊</view>
+ </view>
+ <view class="container1">
+ <view class="left">
+ <view class="img_wrap img1" @click="jump('/pages/driver/notice')">
+ <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
+ <view class="h1">鍏ュ洯鍗歌揣棰勭害</view>
+ <view class="h2">RESERVATION</view>
+ </view>
+ <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=bookingTips')">
+ <image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image>
+ <view class="h1">棰勭害鎸囧崡</view>
+ <view class="h2">APPOINTMENT GUIDE</view>
+ </view>
+ </view>
+ <view class="right">
+ <view class="img_wrap img2" @click="jump('/pages/driver/reservedRecord')">
+ <image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image>
+ <view class="h1">棰勭害璁板綍</view>
+ <view class="h2">APPOINTMENT RECORD</view>
+ </view>
+ <view class="img_wrap img2" @click="jump('/pages/driver/queueUp')">
+ <image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image>
+ <view class="h1">鏈堝彴鎺掗槦鎯呭喌</view>
+ <view class="h2">HIDDEN DANGER</view>
+ </view>
+ <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=reservationMap')">
+ <image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image>
+ <view class="h1">鍥尯瀵艰鍥�</view>
+ <view class="h2">GUIDE MAP</view>
+ </view>
+ </view>
+ </view>
+ <!-- -->
+ <view class="copyright">
+ <image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" />
+ <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
+ </view>
+ </view>
+</template>
+
+<script>
+ import {
+ logoutPost,
+ driverHomeData,
+ app_url,
+ getLastWaitJob
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ taskList: [],
+ driverInfo: uni.getStorageSync('driverInfo'),
+ }
+ },
+ onLoad() {
+ const ywinfo = uni.getStorageSync('ywinfo') || {}
+ if (ywinfo.ywid && ywinfo.type == 0) {
+ uni.setStorageSync('ywinfo',{})
+ const yw = ywinfo.yw
+ setTimeout(() => {
+ if (yw == 7) {
+ this.jump('/pages/driver/reservedDetail?id=' + ywinfo.ywid)
+ } else if (yw == 8) {
+ this.jump('/pages/driver/taskDetail?id=' + ywinfo.ywid)
+ } else if (yw == 0) {
+ getLastWaitJob({
+ uuid: ywinfo.ywid
+ }).then(res => {
+ if (res.data && res.data.id) {
+ this.taskClick(res.data)
+ }
+ })
+ }
+ }, 100)
+ }
+ },
+ onShow() {
+ this.initData()
+ },
+
+ methods: {
+ jump(path) {
+ this.$jump(path)
+ },
+ initData() {
+ driverHomeData().then(res => {
+ if (res.code == 200) {
+ uni.setStorageSync('driverGuide', {
+ bookingTips: res.data.bookingTips,
+ reservationMap: res.data.reservationMap,
+ signDistance: res.data.signDistance
+ })
+ this.taskList = res.data.platformJobList || []
+ }
+ })
+ },
+ loginOut() {
+ logoutPost({
+ isH5: 1
+ }).then(res => {
+ this.$store.commit('empty')
+ setTimeout(() => {
+ window.location.href = app_url
+ }, 300)
+ })
+ },
+ taskClick(item) {
+ const status = item.status
+ if (status == 0) {
+ uni.navigateTo({
+ url: '/pages/driver/taskConfirm?id=' + item.id
+ })
+ }
+ // else if(status == 2){
+ // uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
+ // }
+ else {
+ uni.navigateTo({
+ url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+ })
+ }
+ },
+ handleTask(item) {
+ uni.navigateTo({
+ url: '/pages/driver/taskConfirm?id=' + item.id
+ })
+ },
+ handleSign(item) {
+ uni.navigateTo({
+ url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+ })
+ },
+ handleQueue(item) {
+ uni.navigateTo({
+ url: '/pages/driver/queueUp?jobId=' + item.id
+ })
+ },
+ }
+ }
+</script>
+
+<style lang="scss">
+ .title_wrap {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 24rpx;
+ padding-top: 10rpx;
+
+ .name {
+ font-weight: 600;
+ font-size: 34rpx;
+ color: #222222;
+ }
+
+ .btn {
+ width: 144rpx;
+ height: 56rpx;
+ border-radius: 36rpx;
+ border: 1rpx solid #B2B2B2;
+ font-size: 26rpx;
+ color: #666666;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+
+ .main_app {
+ padding-top: 12rpx;
+ }
+
+ .banner_wrap {
+ padding: 54rpx 44rpx;
+ color: #fff;
+ position: relative;
+ width: 688rpx;
+ height: 270rpx;
+ margin-bottom: 28rpx;
+
+ .h1 {
+ font-weight: bold;
+ line-height: 66rpx;
+ font-size: 44rpx;
+ margin-bottom: 14rpx;
+ }
+
+ .h2 {
+ font-weight: 600;
+ font-size: 28rpx;
+ width: 192rpx;
+ color: $uni-color-primary;
+ height: 48rpx;
+ line-height: 48rpx;
+ text-align: center;
+ background: #ffffff;
+ box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
+ border-radius: 24rpx;
+ }
+
+ .banner {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: -1;
+ }
+ }
+
+ .container1 {
+ display: flex;
+ flex-wrap: wrap;
+
+ view {
+ width: 336rpx;
+ }
+
+ .left {
+ margin-right: 18rpx;
+ }
+
+ .img_wrap {
+ position: relative;
+ padding: 24rpx 0rpx 0 28rpx;
+ border-radius: 8rpx;
+ overflow: hidden;
+
+ .h1 {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ line-height: 48rpx;
+ margin-bottom: 4rpx;
+ }
+
+ .h2 {
+ font-size: 22rpx;
+ color: #7b9da1;
+ line-height: 34rpx;
+ }
+
+ .img {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ }
+ }
+
+ .img1 {
+ width: 336rpx;
+ height: 296rpx;
+ margin-bottom: 16rpx;
+ }
+
+ .img2 {
+ width: 336rpx;
+ height: 140rpx;
+ margin-bottom: 16rpx;
+ }
+ }
+
+ .task_list {
+ margin-bottom: 0rpx;
+
+ .task_swiper {
+ padding: 12rpx 10rpx;
+ height: 340rpx;
+ width: 730rpx;
+ margin-left: -20rpx;
+ box-sizing: border-box;
+ }
+
+ .item {
+ background: #ffffff;
+ box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
+ border-radius: 16rpx;
+ height: 260rpx;
+ width: 98%;
+ margin-left: 1%;
+
+ .head {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
+ padding: 0rpx 30rpx;
+ height: 92rpx;
+
+ .name {
+ font-weight: 600;
+ font-size: 36rpx;
+ color: #222222;
+ }
+
+ .status {
+ color: $uni-color-primary;
+ font-weight: 600;
+ text-align: right;
+
+ .time {
+ font-size: 24rpx;
+ font-weight: 360;
+ }
+ }
+ }
+
+ .content {
+ height: 180rpx;
+
+ .info {
+ display: flex;
+ padding: 24rpx 30rpx;
+
+ .plate {
+ flex: 1;
+ display: flex;
+ align-items: center;
+
+ .icon {
+ width: 26rpx;
+ height: 26rpx;
+ margin-right: 10rpx;
+ }
+ }
+ }
+
+ .sub {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 68rpx;
+ padding: 0 30rpx 0;
+
+ .time {
+ font-size: 26rpx;
+ color: #999999;
+ }
+
+ .sub_btn {
+ height: 68rpx;
+ line-height: 68rpx;
+ padding: 0 34rpx;
+ color: #ffffff;
+ background: $uni-color-primary;
+ box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4);
+ border-radius: 40rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .copyright {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 44rpx;
+ font-size: 24rpx;
+ color: #666666;
+
+ image {
+ width: 40rpx;
+ height: 40rpx;
+ }
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3