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/reservedDetail.vue | 698 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 385 insertions(+), 313 deletions(-)
diff --git a/h5/pages/driver/reservedDetail.vue b/h5/pages/driver/reservedDetail.vue
index e6417e9..2b90caa 100644
--- a/h5/pages/driver/reservedDetail.vue
+++ b/h5/pages/driver/reservedDetail.vue
@@ -1,372 +1,444 @@
<template>
- <view class="main_app">
- <view class="status_wrap">
- <view class="name">涓佹仼鍑殑璁垮鐢宠</view>
- <view class="desc">绛夊緟鎴戝鐞�</view>
- <view class="status">瀹℃壒涓�</view>
- </view>
- <!-- -->
- <view class="emyty"></view>
- <view class="module_list">
+ <view class="main_app">
+ <view class="status_wrap">
+ <view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
+ <view class="desc">{{info.carCodeFront}}</view>
+ <view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view>
+ <image v-if="info.status == 2" class="icon" src="../../static/ic_passed@2x.png" mode=""></image>
+ <image v-if="info.status == 3" class="icon" src="../../static/ic_refused@2x.png" mode=""></image>
+ </view>
+ <!-- -->
+ <view class="emyty"></view>
+ <view class="module_list">
+ <view class="item">
+ <view class="label">鍏ュ洯鍘熷洜</view>
+ <view class="value">{{info.inReason}}</view>
+ </view>
+ <view class="item">
+ <view class="label">鍚堝悓缂栧彿</view>
+ <view class="value">{{info.contractNum}}</view>
+ </view>
<view class="item">
- <view class="label">鎷滆浜�</view>
- <view class="value">寤栨垚鐟�</view>
+ <view class="label">鍒板満鏃堕棿</view>
+ <view class="value" v-if="info.arriveDate">{{info.arriveDate.slice(0,16)}}</view>
</view>
<view class="item">
- <view class="label">棰勮鍏�/绂诲巶鏃堕棿</view>
- <view class="value">05/01 8:00 - 05/01 18:00</view>
- </view>
- <view class="emyty"></view>
- <view class="item">
- <view class="label">璁垮淇℃伅</view>
- <view class="value">
- <image class="avatar" src="@/static/logo@2x.png" mode="widthFix"></image>
- <view class="info">
- <text class="name">瀛欏織 18177665678</text>
- <text>韬唤璇佸彿锛�3309****2910</text>
- <text>鍏ュ洯杞﹁締锛氱殩A88789</text>
- </view>
+ <view class="label">鍑嗚繍璇佺収鐗�</view>
+ <view class="value">
+ <image
+ v-if="info.transportImg"
+ class="avatar_wrap"
+ :src="info.prefixUrl + info.transportImg"
+ ></image>
</view>
</view>
<view class="item">
- <view class="label">鍏徃鍚嶇О</view>
- <view class="value">涓浗绉诲姩</view>
+ <view class="label">鍏ュ簱绫诲瀷</view>
+ <view class="value">{{info.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'}}</view>
</view>
<view class="item">
- <view class="label">鏂藉伐浜哄憳</view>
- <view class="value">鍚�</view>
+ <view class="label">鎬昏繍鏁伴噺</view>
+ <view class="value">{{info.totalNum}}涓囨敮</view>
</view>
+ <view class="emyty"></view>
+ <view class="item">
+ <view class="label">鍙告満濮撳悕</view>
+ <view class="value">{{info.driverName}}
+ </view>
+ </view>
+ <view class="item">
+ <view class="label">鎵嬫満鍙�</view>
+ <view class="value">{{info.driverPhone}}</view>
+ </view>
<view class="item">
- <view class="label">鏉ヨ浜嬬敱</view>
- <view class="value">涓氬姟娲借皥</view>
+ <view class="label">杞︾墝鐓�</view>
+ <view class="value">鍓� {{info.carCodeFront}}锛屽悗 {{info.carCodeBack}}</view>
</view>
- </view>
- <!-- 娴佺▼ -->
- <view class="flow_wrap">
- <view class="flow_title">娴佺▼</view>
- <view class="list">
- <view class="item">
- <view class="avatar">
- <image class="img" src="@/static/logo@2x.png" mode="widthFix" />
- <image class="status" src="@/static/staff/liucheng_success@2x.png" mode="widthFix" />
- <view class="separate"></view>
- </view>
- <view class="content">
- <view class="head">
- <view class="event">鏌愭煇鎻愪氦鐨勬嫓璁跨敵璇�</view>
- <view class="time">time</view>
- </view>
- <view class="name_wrap">
- <text>鏉庝笢(<text class="status">澶勭悊涓�</text>)</text>
- </view>
- <view class="remark">鍚屾剰鏀捐</view>
- </view>
- </view>
- <view class="item">
- <view class="avatar">
- <image class="img" src="@/static/logo@2x.png" mode="widthFix" />
- <image class="status" src="@/static/staff/liucheng_success@2x.png" mode="widthFix" />
- </view>
- <view class="content">
- <view class="head">
- <view class="event">鏌愭煇鎻愪氦鐨勬嫓璁跨敵璇�</view>
- <view class="time">time</view>
- </view>
- <view class="name_wrap">
- <text>鏉庝笢(<text class="status">澶勭悊涓�</text>)</text>
- </view>
- <view class="carbon">
- <view class="carbon_item" v-for="i in 12">
- <image src="@/static/logo@2x.png" mode="widthFix"></image>
- <view class="text">name</view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
- <view class="emyty"></view>
- <view class="main_footer">
- <view class="btn" @click="handleSub('0')">鎷掔粷</view>
- <view class="btn agree" @click="handleSub('1')">鍚屾剰</view>
- </view>
-
- <!-- -->
- <u-popup :show="showApprModal" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="showApprModal = false">
- <view class="appr_modal">
- <view class="title">鍚屾剰</view>
- <textarea placeholder="鍚屾剰璇存槑锛岄潪蹇呭~" placeholder-class="placeholder9" />
- <view class="main_footer">
- <view class="btn" @click="showApprModal = false">鍙栨秷</view>
- <view class="btn agree">鎻愪氦</view>
- </view>
- </view>
- </u-popup>
- </view>
+ </view>
+ <!-- 娴佺▼ -->
+ <view class="flow_wrap">
+ <view class="flow_title">娴佺▼</view>
+ <view class="list" v-if="info.approveDateVO != null && info.approveDateVO.approveList != null">
+ <view class="item" v-for="item,index in info.approveDateVO.approveList">
+ <view v-if="index != info.approveDateVO.approveList.length - 1" class="separate"></view>
+ <view class="avatar_wrap">
+ <image
+ class="img"
+ :src="
+ item.faceImg
+ ? item.faceImg
+ : require('@/static/meeting/common/default_user@2x.png')
+ "
+ />
+ <image
+ v-if="item.status == 2"
+ class="status"
+ src="@/static/staff/liucheng_success@2x.png"
+ mode="widthFix"
+ />
+ <image
+ v-if="item.status == 3"
+ class="status"
+ src="@/static/staff/liucheng_fail@2x.png"
+ mode="widthFix"
+ />
+ </view>
+ <view class="content">
+ <view class="head">
+ <view class="event">{{ item.title }}</view>
+ <view class="time">{{item.createDate}}</view>
+ </view>
+ <view class="name_wrap">
+ <text>{{item.memberName}}<text v-if="item.statusInfo" class="status">({{item.statusInfo}})</text></text>
+ </view>
+ <view v-if="item.approveType == 1" class="carbon">
+ <view class="carbon_item" v-for="child in item.approveList"
+ :key="child.id">
+ <image :src="
+ child.faceImg
+ ? child.faceImg
+ : require('@/static/meeting/common/default_user@2x.png')
+ "></image>
+ <view class="text">{{ child.memberName }}</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="emyty"></view>
+ <view class="main_footer">
+ <view v-if="info.status == 0 || info.status == 1" class="btn" @click="handleCancel">鎾ゅ洖鐢宠</view>
+ <view v-if="info.status == 0 || info.status == 1" class="btn agree" @click="handleEdit">淇敼</view>
+ <view v-if="info.status == 3" class="btn agree aga" @click="handleAga">鍐嶆鐢宠</view>
+ </view>
+ </view>
</template>
<script>
+ import { driverApplyDetail, driverCarRevoke } from '@/api'
export default {
- data() {
- return {
- showApprModal: false,
- param: {}
- }
+ data() {
+ return {
+ showApprModal: false,
+ info: {},
+ statusMap: {
+ 0: '寰呭鎵�',
+ 1: '瀹℃壒涓�',
+ 2: '宸查�氳繃',
+ 3: '宸叉嫆缁�',
+ 4: '宸插彇娑�',
+ },
+ }
+ },
+ onLoad(option) {
+ this.getDetail(option.id)
},
- methods: {
- handleSub(flag) {
- // this.param.flag =
- if (flag === '1') {
+ methods: {
+ handleCancel(){
+ const { info } = this
+ uni.showModal({
+ title: '鎻愮ず',
+ content: '鎮ㄧ‘璁よ鎾ゅ洖褰撳墠鐢宠鍚楋紵',
+ success: function (res) {
+ if (res.confirm) {
+ driverCarRevoke({
+ id: info.id, info: ''
+ })
+ } else if (res.cancel) {
+ console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+ }
+ }
+ });
+ },
+ handleEdit(){
+ uni.navigateTo({
+ url: '/pages/driver/reserved?id=' + this.info.id
+ })
+ },
+ handleAga(){
+ const { info } = this
+ uni.navigateTo({
+ url: `/pages/driver/reserved?id=${info.id}&type=reject`
+ })
+ },
+ getDetail(id) {
+ driverApplyDetail({id}).then(res => {
+ this.info = res.data
+ if(this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0 ){
+ this.info.approveDateVO.approveList.forEach(item => {
+ if(item.approveList && item.approveList.length == 1 && item.type !== 1){
+ item.title = item.approveList[0].title
+ item.faceImg = item.approveList[0].faceImg
+ item.memberName = item.approveList[0].memberName
+ item.statusInfo = item.approveList[0].statusInfo
+ item.approveList = []
+ }
+ })
+ }
+ })
+ },
+ handleSub(flag) {
+ if (flag === '1') {
- } else {
+ } else {
- }
- this.showApprModal = true
- }
- },
+ }
+ this.showApprModal = true
+ }
+ },
}
</script>
<style>
page {
- background-color: #F7F7F7;
+ background-color: #f7f7f7;
}
</style>
<style lang="scss">
.main_app {
- background-color: #fff;
- padding-bottom: 0;
+ background-color: #fff;
+ padding-bottom: 0;
- .flow_wrap {
- padding: 30rpx 0;
+ .flow_wrap {
+ padding: 30rpx 0;
- .flow_title {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 24rpx;
- }
+ .flow_title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 24rpx;
+ }
- .list {
- .item {
- display: flex;
- margin-bottom: 48rpx;
-
- .avatar {
- width: 80rpx;
- height: 80rpx;
- position: relative;
- margin-right: 20rpx;
-
- .img {
- width: 80rpx;
- height: 80rpx;
- border-radius: 50%;
- }
-
- .status {
- width: 28rpx;
- height: 28rpx;
- border-radius: 50%;
- position: absolute;
- right: 0;
- bottom: 0;
- }
-
- .separate {
- position: absolute;
- width: 4rpx;
- height: 100%;
- background-color: #EEEEEE;
- left: 50%;
- transform: translate(-50%, 0);
- bottom: -80rpx;
- }
+ .list {
+ .item {
+ display: flex;
+ margin-bottom: 48rpx;
+ position: relative;
+ .separate {
+ position: absolute;
+ width: 4rpx;
+ height: calc( 100% - 52rpx );
+ background-color: #eeeeee;
+ left: 40rpx;
+ top: 90rpx;
}
+ .avatar_wrap {
+ width: 80rpx;
+ height: 80rpx;
+ position: relative;
+ margin-right: 20rpx;
- .content {
- flex: 1;
+ .img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ }
- .head {
- display: flex;
- justify-content: space-between;
- margin-bottom: 4rpx;
+ .status {
+ width: 28rpx;
+ height: 28rpx;
+ border-radius: 50%;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ }
- .event {
- font-size: 30rpx;
- }
+ }
- .time {
- font-size: 26rpx;
- color: #999999;
- }
- }
+ .content {
+ flex: 1;
- .name_wrap {
- font-size: 26rpx;
- color: #777777;
+ .head {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 4rpx;
- .status {
- color: #279BAA;
- }
- }
+ .event {
+ font-size: 30rpx;
+ }
- .remark {
- margin-top: 12rpx;
- background-color: #f7f7f7;
- padding: 14rpx 20rpx;
- border-radius: 8rpx;
- font-size: 26rpx;
- color: #666666;
- line-height: 36rpx;
- }
- }
- .carbon{
- display: flex;
- width: 590rpx;
- overflow-x: auto;
- margin-top: 12rpx;
- .carbon_item{
- text-align: center;
- flex-shrink: 0;
- width: 100rpx;
- image{
- width: 60rpx;
- height: 60rpx;
- margin: 0 auto;
- }
- view{
- font-size: 26rpx;
- color: #777777;
-
- }
- }
- }
- }
- }
- }
+ .time {
+ font-size: 26rpx;
+ color: #999999;
+ }
+ }
- .module_list {
- .item {
- padding: 30rpx 0;
- border-bottom: 1rpx solid #E5E5E5;
+ .name_wrap {
+ font-size: 26rpx;
+ color: #777777;
- .label {
- font-size: 26rpx;
- color: #666666;
- margin-bottom: 20rpx;
- }
+ .status {
+ color: $uni-color-primary;
+ }
+ }
- .value {
- font-size: 30rpx;
- display: flex;
- align-items: center;
+ .remark {
+ margin-top: 12rpx;
+ background-color: #f7f7f7;
+ padding: 14rpx 20rpx;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ color: #666666;
+ line-height: 36rpx;
+ }
+ }
+ .carbon {
+ display: flex;
+ width: 590rpx;
+ overflow-x: auto;
+ margin-top: 12rpx;
+ .carbon_item {
+ text-align: center;
+ flex-shrink: 0;
+ width: 100rpx;
+ image {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 0 auto;
+ }
+ view {
+ font-size: 26rpx;
+ color: #777777;
+ }
+ }
+ }
+ }
+ }
+ }
- .avatar {
- margin-right: 20rpx;
- width: 120rpx;
- height: 120rpx;
- border-radius: 8rpx;
- border: 2rpx solid #E5E5E5;
- }
+ .module_list {
+ .item {
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #e5e5e5;
- .info {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- font-size: 26rpx;
- color: #666666;
+ .label {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
- .name {
- font-size: 30rpx;
- color: #333333;
- }
- }
- }
- }
- }
+ .value {
+ font-size: 30rpx;
+ display: flex;
+ align-items: center;
- .status_wrap {
- position: relative;
- padding: 30rpx 0;
+ .avatar_wrap {
+ margin-right: 20rpx;
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 8rpx;
+ border: 2rpx solid #e5e5e5;
+ }
- .name {
- font-weight: 500;
- font-size: 32rpx;
- margin-bottom: 20rpx;
- color: #222222;
- }
+ .info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ font-size: 26rpx;
+ color: #666666;
- .desc {
- font-size: 26rpx;
- color: #ED4545;
- }
+ .name {
+ font-size: 30rpx;
+ color: #333333;
+ }
+ }
+ }
+ }
+ }
- .status {
+ .status_wrap {
+ position: relative;
+ padding: 30rpx 0;
+ .name {
+ font-weight: 600;
+ font-size: 32rpx;
+ margin-bottom: 20rpx;
+ color: #222222;
+ }
+
+ .desc {
+ font-size: 26rpx;
+ color: #999999;
+ }
+
+ .status {
+ position: absolute;
+ right: -30rpx;
+ top: 0;
+ height: 60rpx;
+ line-height: 60rpx;
+ padding: 0 32rpx;
+ border-radius: 0rpx 0rpx 0rpx 30rpx;
+ background-color: #e9edff;
+ color: $uni-color-primary;
+ }
+ .icon{
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
position: absolute;
- right: -30rpx;
- top: 0;
- height: 60rpx;
- line-height: 60rpx;
- padding: 0 32rpx;
- border-radius: 0rpx 0rpx 0rpx 30rpx;
- background-color: #e9edff;
- color: #279BAA;
+ right: 0rpx;
+ top: 20rpx;
+
}
- }
+ }
- .main_footer {
- padding-bottom: 64rpx;
- display: flex;
- justify-content: space-between;
+ .main_footer {
+ padding-bottom: 64rpx;
+ display: flex;
+ justify-content: space-between;
+
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 0;
+ }
- .btn {
- width: 336rpx;
- height: 88rpx;
- line-height: 88rpx;
- background: #FFFFFF;
- border-radius: 44rpx;
- border: 1rpx solid #999999;
- font-size: 32rpx;
- text-align: center;
- margin: 16rpx 0;
+ .agree {
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ .aga{
+ width: 100%;
}
+ }
- .agree {
- background: #279BAA;
- color: #fff;
- border: 1rpx solid #279BAA;
- }
- }
+ .appr_modal {
+ padding: 36rpx 30rpx 0;
- .appr_modal {
- padding: 36rpx 30rpx 0;
+ .title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 40rpx;
+ text-align: center;
+ }
- .title {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 40rpx;
- text-align: center;
- }
+ textarea {
+ box-sizing: border-box;
+ width: 690rpx;
+ background-color: #f7f7f7;
+ font-size: 28rpx;
+ color: #333333;
+ padding: 24rpx;
+ border-radius: 8rpx;
+ margin-bottom: 30rpx;
+ }
+ }
- textarea {
- box-sizing: border-box;
- width: 690rpx;
- background-color: #f7f7f7;
- font-size: 28rpx;
- color: #333333;
- padding: 24rpx;
- border-radius: 8rpx;
- margin-bottom: 30rpx;
- }
- }
-
- .emyty {
- width: 750rpx;
- height: 20rpx;
- background-color: #f7f7f7;
- margin: 0 -30rpx;
- }
+ .emyty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
}
</style>
--
Gitblit v1.9.3