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