From 9e47e0ece28c6145638aecca5bdf86857c049cf9 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 31 五月 2024 18:23:34 +0800
Subject: [PATCH] ‘’

---
 h5/pages.json                             |   18 
 h5/api/index.js                           |    1 
 h5/pages/staff/meetingSubOrder.vue        |  368 +++++--
 h5/pages/staff/meetingSub.vue             |  619 ++++++++-----
 h5/pages/staff/meetingSel.vue             |  322 ++++++
 h5/pages/staff/vehicle/sendACar.vue       |    6 
 h5/utils/service.js                       |   20 
 h5/pages/staff/vehicle/shinei.vue         |    3 
 /dev/null                                 |  232 ----
 h5/api/staff.js                           |   20 
 h5/App.vue                                |   11 
 h5/pages/staff/vehicle/sendACarDetail.vue |  407 ++++++++
 h5/pages/staff/vehicle/applePeo.vue       |  107 +
 h5/pages/staff/meetingManager.vue         |  576 ++++++-----
 h5/api/meeting.js                         |   58 +
 h5/pages/staff/vehicle/apply.vue          |    8 
 16 files changed, 1,831 insertions(+), 945 deletions(-)

diff --git a/h5/App.vue b/h5/App.vue
index 28cf67f..7306882 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -1,5 +1,5 @@
 <script>
-import { wxAuthorize } from '@/api'
+import { wxAuthorize, refreshToken } from '@/api'
 export default {
 	onLaunch: function () {
 		var that = this
@@ -27,6 +27,15 @@
 				})
 			}
 		}
+		// 鍒锋柊token
+		const token = uni.getStorageSync('token')
+		if(token){
+			// refreshToken().then(res => {
+			// 	if(res.code && res.code === 200){
+			// 		this.$store.commit('setToken', res.data)
+			// 	}
+			// })
+		}
 	},
 	onShow: function () {
 		console.log('App Show')
diff --git a/h5/api/index.js b/h5/api/index.js
index a398f63..6c90980 100644
--- a/h5/api/index.js
+++ b/h5/api/index.js
@@ -2,6 +2,7 @@
 export * from '@/utils/config.js'
 export * from './visitor'
 export * from './staff'
+export * from './meeting'
 
 // 鏌ヨ瀛楀吀鍊兼暟鎹�
 export const getSystemDictData = (data) => {
diff --git a/h5/api/meeting.js b/h5/api/meeting.js
new file mode 100644
index 0000000..4f7a800
--- /dev/null
+++ b/h5/api/meeting.js
@@ -0,0 +1,58 @@
+import { http } from '@/utils/service.js'
+
+// 浼氳瀹ゅ垪琛�
+export const roomsListPost = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/rooms/roomsList',
+    method: 'get',
+    data
+  })
+}
+// 浼氳瀹ゆ椂闂存
+export const getRoomUseTime = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/rooms/getRoomUseTime',
+    method: 'post',
+    data
+  })
+}
+// 浼氳瀹ゆ椂闂存 棰勫畾浼氳瀹�
+export const reservationMeeting = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/reservationMeeting',
+    method: 'post',
+    data
+  })
+}
+// 浼氳瀹ゆ椂闂存 璇︽儏
+export const meetingDetail = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/meetingDetail',
+    method: 'get',
+    data
+  })
+}
+// 浼氳瀹� 浜哄憳
+export const userPagePost = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/userPage',
+    method: 'post',
+    data
+  })
+}
+// 浼氳瀹� 璇︽儏
+export const getRoomDetail = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/rooms/getRoomDetail',
+    method: 'get',
+    data
+  })
+}
+// 浼氳瀹� 绠$悊
+export const myMeetingPage = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/myMeetingPage',
+    method: 'post',
+    data
+  })
+}
diff --git a/h5/api/staff.js b/h5/api/staff.js
index 69a4543..456d6f8 100644
--- a/h5/api/staff.js
+++ b/h5/api/staff.js
@@ -3,20 +3,27 @@
 // login
 export const loginPost = (data) => {
   return http({
-    url: '/loginH5',
+    url: 'loginH5',
     method: 'post',
     data
   })
 }
 export const loginCaptcha = () => {
   return http({
-    url: '/captcha',
+    url: 'captcha',
     method: 'get'
+  })
+}
+// 鍒锋柊token
+export const refreshToken = () => {
+  return http({
+    url: 'refreshtoken',
+    method: 'post'
   })
 }
 export const getUserInfo = () => {
   return http({
-    url: '/getUserInfo',
+    url: 'getUserInfo',
     method: 'get'
   })
 }
@@ -135,4 +142,11 @@
     method: 'post',
     data
   })
+}
+// 鏌ヨ杞﹁締 娲捐溅璁板綍 璇︽儏
+export const carUseBookDetail = (id) => {
+  return http({
+    url: 'visitsAdmin/cloudService/business/carUseBook/'+id,
+    method: 'get'
+  })
 }
\ No newline at end of file
diff --git a/h5/pages.json b/h5/pages.json
index 0c91e34..0afcd34 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -391,6 +391,24 @@
             }
             
         }
+        ,{
+            "path" : "pages/staff/vehicle/sendACarDetail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "鐢ㄨ溅瀹℃壒",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/staff/meetingSel",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "閫夋嫨浜哄憳",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"subPackages": [{
 			"root": "n_pages",
diff --git a/h5/pages/staff/meetingManager.vue b/h5/pages/staff/meetingManager.vue
index df785c4..7a18ed1 100644
--- a/h5/pages/staff/meetingManager.vue
+++ b/h5/pages/staff/meetingManager.vue
@@ -1,303 +1,321 @@
 <template>
-	<view class="main_app">
-		<!--  -->
-		<!-- <uni-calendar @change="changeCalendar" :selected="selected" /> -->
-		<!-- 鏃ュ巻 -->
-		<view class="container_b">
-			<Calendar
-				ref="Calendar"
-				:currentTime="currentTime1"
-				:mark="mark"
-				:showLunar="false"
-				@dayChange="dayChange"
-				@monthChange="monthChange"
-				:rangeMode="false"
-				:maskColor="'#ffffff'"
-				:dateStart="dateStart"
-				:dateEnd="dateEnd"
-				:canDrag="false"
-			></Calendar>
-		</view>
-		<!--  -->
-		<view class="card_list">
-			<view class="card_title">
-				<view class="name">
-					<view class="icon"></view>
-					<view class="text">浠婃棩浼氳</view>
-				</view>
-				<view class="meeting">
-					<view class="text mr24">鍏ㄩ儴浼氳瀹�</view>
-					<u-icon name="arrow-down" size="12" color="#999999" />
-				</view>
-			</view>
-			<view class="list">
-				<view class="item">
-					<view class="head">
-						<view class="name">aaaaa閫夊瀷</view>
-						<view class="status">鍗冲皢寮�濮�</view>
-					</view>
-					<view class="line">
-						<view class="label">浼氳鏃堕棿锛�</view>
-						<view class="value">12:00-12</view>
-					</view>
-					<view class="line">
-						<view class="label">浼氳瀹わ細</view>
-						<view class="value">202浼氳瀹�</view>
-					</view>
-					<view class="line">
-						<view class="label">棰勭害浜猴細</view>
-						<view class="value">鏉ㄦ煇鏌�</view>
-					</view>
-					<view class="line">
-						<view class="label">澶囨敞锛�</view>
-						<view class="value">--</view>
-					</view>
-				</view>
-			</view>
-		</view>
+  <view class="main_app">
+    <!--  -->
+    <!-- <uni-calendar @change="changeCalendar" :selected="selected" /> -->
+    <!-- 鏃ュ巻 -->
+    <view class="container_b">
+      <Calendar
+        ref="Calendar"
+        :currentTime="currentDate"
+        :mark="mark"
+        :showLunar="false"
+        @dayChange="dayChange"
+        @monthChange="monthChange"
+        :rangeMode="false"
+        :maskColor="'#ffffff'"
+        :dateStart="dateStart"
+        :dateEnd="dateEnd"
+        :canDrag="false"
+      ></Calendar>
+    </view>
+    <!--  -->
+    <view class="card_list">
+      <view class="card_title">
+        <view class="name">
+          <view class="icon"></view>
+          <view class="text">浠婃棩浼氳</view>
+        </view>
+        <view class="meeting" @click="isShowStatus = true">
+          <view class="text mr24">{{ activeStatus.name }}</view>
+          <u-icon name="arrow-down" size="12" color="#999999" />
+        </view>
+      </view>
+      <view class="list">
+        <view class="item">
+          <view class="head">
+            <view class="name">aaaaa閫夊瀷</view>
+            <view class="status">鍗冲皢寮�濮�</view>
+          </view>
+          <view class="line">
+            <view class="label">浼氳鏃堕棿锛�</view>
+            <view class="value">12:00-12</view>
+          </view>
+          <view class="line">
+            <view class="label">浼氳瀹わ細</view>
+            <view class="value">202浼氳瀹�</view>
+          </view>
+          <view class="line">
+            <view class="label">棰勭害浜猴細</view>
+            <view class="value">鏉ㄦ煇鏌�</view>
+          </view>
+          <view class="line">
+            <view class="label">澶囨敞锛�</view>
+            <view class="value">--</view>
+          </view>
+        </view>
+      </view>
+    </view>
 
-		<!--  -->
-	</view>
+    <!--  -->
+		<u-picker
+      keyName="name"
+      :show="isShowStatus"
+      :columns="statusList"
+      @confirm="seletedStatus"
+      @cancel="isShowStatus = false"
+    ></u-picker>
+  </view>
 </template>
 
 <script>
-import Calendar from '@/components/Li-Calendar/Li-Calendar.vue';
-import { getDay } from '@/utils/utils.js';
-function getDate(date, AddDayCount = 0) {
-	if (!date) {
-		date = new Date();
-	}
-	if (typeof date !== 'object') {
-		date = date.replace(/-/g, '/');
-	}
-	const dd = new Date(date);
+import Calendar from '@/components/Li-Calendar/Li-Calendar.vue'
+import dayjs from 'dayjs'
+import { myMeetingPage } from '@/api'
 
-	dd.setDate(dd.getDate() + AddDayCount); // 鑾峰彇AddDayCount澶╁悗鐨勬棩鏈�
-
-	const y = dd.getFullYear();
-	const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1; // 鑾峰彇褰撳墠鏈堜唤鐨勬棩鏈燂紝涓嶈冻10琛�0
-	const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate(); // 鑾峰彇褰撳墠鍑犲彿锛屼笉瓒�10琛�0
-	return {
-		fullDate: y + '-' + m + '-' + d,
-		year: y,
-		month: m,
-		date: d,
-		day: dd.getDay()
-	};
-}
 export default {
-	components: {
-		Calendar
-	},
-	data() {
-		return {
-			activeTab: '0',
-			currentTime1: '',
-			dateStart: '1999-05-01',
-			dateEnd: '2999-06-15',
-			mark: [],
-			selected: [
+  components: {
+    Calendar
+  },
+  data() {
+    return {
+      currentDate: '',
+      dateStart: '2024-01-01',
+      dateEnd: '2999-06-15',
+			mark: [
 				{
-					date: getDate(new Date(), -3).fullDate
-					// info: '鎵撳崱'
+					time: '2024-05-30'
 				},
 				{
-					date: getDate(new Date(), -2).fullDate,
-					// info: '绛惧埌',
-					data: {
-						custom: '鑷畾涔変俊鎭�',
-						name: '鑷畾涔夋秷鎭ご'
-					}
+					time: '2024-05-22',
+					pointText: 'aaa',
+					pointTextColor: '#fff'
 				},
 				{
-					date: getDate(new Date(), -1).fullDate,
-					info: '宸叉墦鍗�'
+					time: '2024-05-28',
+					text: ['111','222'],
+					pointTextColor: '#fff'
 				}
-			]
-		};
-	},
-	methods: {
-		tabClick(val) {
-			this.activeTab = val;
+			],
+			activeStatus: {
+				name: '鍏ㄩ儴浼氳瀹�'
+			},
+			isShowStatus: false,
+			statusList: [[
+				{ name: '鍏ㄩ儴浼氳瀹�', key: '' },
+				{ name: '鏈紑濮�', key: '1' },
+				{ name: '宸茬粨鏉�', key: '2' },
+			]],
+			dataList: [],
+			page: 1
+    }
+  },
+  onLoad() {
+		this.currentDate = dayjs().format('YYYY-MM-DD')
+		this.getList()
+  },
+  methods: {
+    getList() {
+			const { activeStatus } = this
+      myMeetingPage({
+        capacity: 10,
+        page: this.page,
+        model: {
+          queryDate: this.currentDate,
+					status: activeStatus.key || null,
+          // roomsId: this.roomId,
+          queryType: 1
+        }
+      }).then(res => {
+				this.dataList = res.data.records
+			})
+    },
+    handleDetail(item) {
+      uni.navigateTo({
+        // url: `/pages/staff/meetingDetail?id=${item.id}`,
+        url: `/pages/staff/meetingDetail`
+      })
+    },
+    changeCalendar(e) {
+      console.log(e)
+    },
+    // 鐐瑰嚮鏌愬ぉ
+    dayChange(data) {
+      console.log(data)
+      let date = data.time
+      let yyyy = data.time.substring(0, 4)
+      let mm = Number(data.time.substring(data.time.indexOf('-') + 1, data.time.lastIndexOf('-')))
+      let dd = Number(data.time.substring(data.time.lastIndexOf('-') + 1, data.time.length))
+      mm = mm < 10 ? `0${mm}` : mm
+      dd = dd < 10 ? `0${dd}` : dd
+      let riqi = `${yyyy}-${mm}-${dd}`
+      this.currentTime = riqi
+      this.list = []
+      this.next = false
+      this.page = 0
+      // this.getRoomList()
+    },
+    // 涓嬩竴鏈�
+    monthChange(data) {
+      let date = data.date.replace(/[/]/g, '-')
+      let yyyy = date.substring(0, 4)
+      let mm = Number(date.substring(date.indexOf('-') + 1, date.lastIndexOf('-')))
+      let dd = Number(date.substring(date.lastIndexOf('-') + 1, date.length))
+      mm = mm < 10 ? `0${mm}` : mm
+      dd = dd < 10 ? `0${dd}` : dd
+      let riqi = `${yyyy}-${mm}-${dd}`
+      console.log('鏃ユ湡', riqi)
+      this.currentTime1 = riqi
+      // this.getDateNum()
+    },
+		seletedStatus(e) {
+			this.activeStatus = { ...e.value[0] }
+			this.isShowStatus = false
+			this.getList()
 		},
-		handleDetail(item) {
-			uni.navigateTo({
-				// url: `/pages/staff/meetingDetail?id=${item.id}`,
-				url: `/pages/staff/meetingDetail`
-			});
-		},
-		changeCalendar(e) {
-			console.log(e);
-		},
-		// 鐐瑰嚮鏌愬ぉ
-		dayChange(data) {
-			console.log(data);
-			let date = data.time;
-			let yyyy = data.time.substring(0, 4);
-			let mm = Number(data.time.substring(data.time.indexOf('-') + 1, data.time.lastIndexOf('-')));
-			let dd = Number(data.time.substring(data.time.lastIndexOf('-') + 1, data.time.length));
-			mm = mm < 10 ? `0${mm}` : mm;
-			dd = dd < 10 ? `0${dd}` : dd;
-			let riqi = `${yyyy}-${mm}-${dd}`;
-			this.currentTime = riqi;
-			this.list = [];
-			this.next = false;
-			this.page = 0;
-			// this.getRoomList()
-		},
-		// 涓嬩竴鏈�
-		monthChange(data) {
-			let date = data.date.replace(/[/]/g, '-');
-			let yyyy = date.substring(0, 4);
-			let mm = Number(date.substring(date.indexOf('-') + 1, date.lastIndexOf('-')));
-			let dd = Number(date.substring(date.lastIndexOf('-') + 1, date.length));
-			mm = mm < 10 ? `0${mm}` : mm;
-			dd = dd < 10 ? `0${dd}` : dd;
-			let riqi = `${yyyy}-${mm}-${dd}`;
-			console.log('鏃ユ湡', riqi);
-			this.currentTime1 = riqi;
-			// this.getDateNum()
-		}
-	}
+  }
 };
 </script>
 
 <style lang="scss">
 page {
-	background-color: #f7f7f7;
+  background-color: #f7f7f7;
 }
 .main_app {
-	padding: 0;
-	background-color: #f7f7f7;
-	::v-deep .uni-calendar-item--checked {
-		background-color: #279baa;
-		border-radius: 8rpx;
-	}
-	::v-deep .uni-calendar-item--isDay-text {
-		color: #279baa;
-	}
-	::v-deep .uni-calendar-item--isDay {
-		background-color: #279baa;
-		color: #fff;
-		border-radius: 8rpx;
-	}
-	.tabs {
-		display: flex;
-		background-color: #fff;
-		.tab {
-			flex: 1;
-			height: 88rpx;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			font-size: 28rpx;
-			color: #666666;
-			position: relative;
-			.line {
-				width: 60rpx;
-				height: 4rpx;
-				background: #fff;
-				border-radius: 3rpx;
-				position: absolute;
-				bottom: 0;
-				left: 50%;
-				transform: translate(-50%, 0);
-			}
-		}
-		.active {
-			font-weight: 500;
-			font-size: 30rpx;
-			color: #222222;
-			.line {
-				background-color: #279baa;
-			}
-		}
-	}
-	//
-	.card_list {
-		padding: 30rpx;
-		.card_title {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			margin-bottom: 22rpx;
-			.name {
-				display: flex;
-				align-items: center;
-				.icon {
-					width: 6rpx;
-					height: 32rpx;
-					background: #279baa;
-					border-radius: 4rpx;
-					margin-right: 16rpx;
-				}
-				.text {
-					font-weight: 600;
-					font-size: 32rpx;
-					color: #222222;
-				}
-			}
-			.meeting {
-				display: flex;
-				height: 52rpx;
-				line-height: 52rpx;
-				background: #ffffff;
-				border-radius: 26rpx;
-				border: 2rpx solid #eeeeee;
-				padding: 0 24rpx;
-				.text {
-					font-size: 24rpx;
-					color: #333333;
-				}
-			}
-		}
-		.list {
-			.item {
-				padding: 0rpx 30rpx 30rpx;
-				background: #ffffff;
-				border-radius: 8rpx;
-				.head {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					border-bottom: 1rpx solid #e5e5e5;
-					padding: 22rpx 0;
-					margin-bottom: 22rpx;
-					.name {
-						font-weight: 600;
-						font-size: 32rpx;
-						color: #222222;
-					}
-					.status {
-						height: 38rpx;
-						line-height: 38rpx;
-						padding: 0 16rpx;
-						border-radius: 4rpx;
-						border: 1rpx solid #999999;
-						font-size: 22rpx;
-						color: #999999;
-					}
-				}
-				.line {
-					display: flex;
-					margin-bottom: 12rpx;
-					.label {
-						width: 140rpx;
-						color: #666666;
-					}
-					.value {
-						flex: 1;
-					}
-				}
-			}
-		}
-	}
+  padding: 0;
+  background-color: #f7f7f7;
+  ::v-deep .uni-calendar-item--checked {
+    background-color: #279baa;
+    border-radius: 8rpx;
+  }
+  ::v-deep .uni-calendar-item--isDay-text {
+    color: #279baa;
+  }
+	::v-deep .calendar-point {
+    /* background-color: #279baa; */
+  }
+	
+  ::v-deep .uni-calendar-item--isDay {
+    background-color: #279baa;
+    color: #fff;
+    border-radius: 8rpx;
+  }
+  .tabs {
+    display: flex;
+    background-color: #fff;
+    .tab {
+      flex: 1;
+      height: 88rpx;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      font-size: 28rpx;
+      color: #666666;
+      position: relative;
+      .line {
+        width: 60rpx;
+        height: 4rpx;
+        background: #fff;
+        border-radius: 3rpx;
+        position: absolute;
+        bottom: 0;
+        left: 50%;
+        transform: translate(-50%, 0);
+      }
+    }
+    .active {
+      font-weight: 500;
+      font-size: 30rpx;
+      color: #222222;
+      .line {
+        background-color: #279baa;
+      }
+    }
+  }
+  //
+  .card_list {
+    padding: 30rpx;
+    .card_title {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      margin-bottom: 22rpx;
+      .name {
+        display: flex;
+        align-items: center;
+        .icon {
+          width: 6rpx;
+          height: 32rpx;
+          background: #279baa;
+          border-radius: 4rpx;
+          margin-right: 16rpx;
+        }
+        .text {
+          font-weight: 600;
+          font-size: 32rpx;
+          color: #222222;
+        }
+      }
+      .meeting {
+        display: flex;
+        height: 52rpx;
+        line-height: 52rpx;
+        background: #ffffff;
+        border-radius: 26rpx;
+        border: 2rpx solid #eeeeee;
+        padding: 0 24rpx;
+        .text {
+          font-size: 24rpx;
+          color: #333333;
+        }
+      }
+    }
+    .list {
+      .item {
+        padding: 0rpx 30rpx 30rpx;
+        background: #ffffff;
+        border-radius: 8rpx;
+        .head {
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+          border-bottom: 1rpx solid #e5e5e5;
+          padding: 22rpx 0;
+          margin-bottom: 22rpx;
+          .name {
+            font-weight: 600;
+            font-size: 32rpx;
+            color: #222222;
+          }
+          .status {
+            height: 38rpx;
+            line-height: 38rpx;
+            padding: 0 16rpx;
+            border-radius: 4rpx;
+            border: 1rpx solid #999999;
+            font-size: 22rpx;
+            color: #999999;
+          }
+        }
+        .line {
+          display: flex;
+          margin-bottom: 12rpx;
+          .label {
+            width: 140rpx;
+            color: #666666;
+          }
+          .value {
+            flex: 1;
+          }
+        }
+      }
+    }
+  }
 }
 .container_b {
-	width: 100%;
-	padding: 30rpx;
-	background: #ffffff;
-	padding-top: 20rpx;
-	box-sizing: border-box;
+  width: 100%;
+  padding: 30rpx;
+  background: #ffffff;
+  padding-top: 20rpx;
+  box-sizing: border-box;
 }
-</style>
+</style>
diff --git a/h5/pages/staff/meetingSel.vue b/h5/pages/staff/meetingSel.vue
new file mode 100644
index 0000000..bec4d8a
--- /dev/null
+++ b/h5/pages/staff/meetingSel.vue
@@ -0,0 +1,322 @@
+<template>
+  <view class="main_app">
+    <view class="search_inp df_ac">
+      <image
+        class="mr12 search"
+        src="../../static/ic_search@2x.png"
+        mode="widthFix"
+      ></image>
+      <input
+        v-model="param.keyword"
+        @blur="initData()"
+        type="text"
+        placeholder="鎼滅储"
+        placeholder-style="color: #999999;"
+      />
+    </view>
+    <view class="member_list">
+      <view v-for="item in memberList" :key="item.id" class="line">
+        <image
+          :src="
+            item.prefixUrl
+              ? item.prefixUrl
+              : require('@/static/logo@2x.png')
+          "
+          class="avatar"
+          mode=""
+        ></image>
+        <view class="content">
+          <view class="info">
+            <text class="name">{{ item.realname }}</text>
+            <!-- <text class="tag">tag</text> -->
+          </view>
+          <view class="depart">{{ item.departmentName }}</view>
+        </view>
+        <image
+          @click="changeMem(item, index)"
+          v-if="item.checked"
+          src="@/static/meeting/icon/ic_choose_sel@2x.png"
+          mode="widthFix"
+          class="checked"
+        ></image>
+        <image
+          @click="changeMem(item, index)"
+          v-if="!item.checked"
+          src="@/static/meeting/icon/ic_choose@2x.png"
+          mode="widthFix"
+          class="checked"
+        ></image>
+        <text></text>
+      </view>
+      <view class="empty"></view>
+    </view>
+    <!--  -->
+    <view class="sub_wrap">
+      <view class="sel_mem">
+        <text>宸查�夋嫨锛�</text>
+        <view class="members">
+					 <text v-for="(item, i) in selList" :key="i">{{ item.realname }}锛�</text>
+        </view>
+        <image
+          @click="isShowSelMem = true"
+          class="open_icon"
+          src="../../static/staff/renyuan_ic_open.png"
+          mode=""
+        ></image>
+      </view>
+      <view class="btn" @click="onSubmit">纭({{ selList.length }}/20)</view>
+    </view>
+    <!--  -->
+     <u-popup
+      :show="isShowSelMem"
+      :round="12"
+      mode="bottom"
+      @close="isShowSelMem = false"
+    >
+      <view class="modal">
+        <view class="modal_header">
+          <text class="status">宸查�夋嫨锛歿{ selList.length }}浜�</text>
+          <text class="btn" @click="isShowSelMem = false">纭</text>
+        </view>
+        <view class="modal_mem_list">
+          <view class="line" v-for="(item, i) in selList" :key="i">
+            <image
+              :src="
+                item.faceImgFull
+                  ? item.faceImgFull
+                  : require('@/static/logo@2x.png')
+              "
+              class="avatar"
+              mode=""
+            ></image>
+            <view class="content">
+              <view class="info">
+                <text class="name">{{ item.realname }}</text>
+              </view>
+              <view class="depart">{{ item.departmentName }}</view>
+            </view>
+            <view class="btn" @click="handleRemove(item)">绉婚櫎</view>
+          </view>
+        </view>
+      </view>
+    </u-popup>
+  </view>
+</template>
+
+<script>
+import { userPagePost } from '@/api'
+export default {
+  data() {
+    return {
+      memberList: [],
+      selList: [],
+      param: {},
+      pagination: {
+        page: 1,
+        capacity: 20
+      },
+
+      isShowSelMem: false
+    }
+  },
+  onLoad(option) {
+    this.param = { ...option, keyword: '' }
+    this.initData()
+  },
+  methods: {
+    onSubmit() {
+			this.$eventBus.$emit('meetingPeo', this.selList)
+      uni.navigateBack()
+    },
+		changeMem(item, index) {
+      item.checked = !item.checked
+      this.selList = this.memberList.filter(i => i.checked)
+      // const arr = e.detail.value
+      // let arrTemp = arr.map(item => {
+      //   let obj = {}
+      //   this.memberList.forEach(ite => {
+      //     if (item == ite.id) {
+      //       obj.name = ite.name.split('-')[0]
+      //       obj.componey = ite.name.split('-')[1] || ''
+      //       obj.id = ite.id
+      //     }
+      //   })
+      //   return obj
+      // })
+      // this.selList = arrTemp
+      this.$forceUpdate()
+    },
+    initData() {
+      const { param, pagination } = this
+      userPagePost({
+        model: { ...param },
+        ...pagination,
+
+      }).then(res => {
+        this.memberList = res.data.records || []
+				this.memberList.map(i => {
+					i.checked = false
+				})
+      })
+    },
+		handleRemove(item) {
+      this.memberList.forEach(ite => {
+        if (item.id === ite.id) {
+          ite.checked = false
+        }
+      })
+      // console.log(this.memberList);
+      this.$forceUpdate()
+    },
+  }
+};
+</script>
+
+<style lang="scss">
+.modal {
+  padding: 40rpx 30rpx;
+  .modal_header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    .status {
+      font-weight: 600;
+    }
+    .btn {
+      color: #279baa;
+    }
+  }
+  .modal_mem_list {
+    .line {
+      display: flex;
+      align-items: center;
+      border-bottom: 1rpx solid #e5e5e5;
+      padding: 30rpx 0;
+      .avatar {
+        width: 64rpx;
+        height: 64rpx;
+        border-radius: 50%;
+        overflow: hidden;
+        margin-right: 20rpx;
+      }
+      .content {
+        flex: 1;
+        .depart {
+          font-size: 24rpx;
+          color: #666666;
+        }
+        .info {
+          display: flex;
+          margin-bottom: 16rpx;
+          .name {
+            font-size: 30rpx;
+          }
+        }
+      }
+      .btn {
+        width: 80rpx;
+        height: 48rpx;
+        line-height: 48rpx;
+        text-align: center;
+        font-size: 24rpx;
+        color: #333333;
+        border-radius: 4rpx;
+        border: 1rpx solid #999999;
+      }
+    }
+  }
+}
+.sub_wrap {
+  position: fixed;
+  bottom: 0;
+	background-color: #fff;
+  left: 0;
+  width: 100%;
+  box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
+  padding: 30rpx 30rpx 64rpx;
+  .sel_mem {
+    display: flex;
+    align-items: center;
+    .members {
+      width: 500rpx;
+      color: #4d98a7;
+      white-space: nowrap;
+      overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
+      text-overflow: ellipsis;
+      margin-right: 20rpx;
+    }
+    .open_icon {
+      width: 44rpx;
+      height: 44rpx;
+    }
+  }
+  .btn {
+    width: 690rpx;
+    height: 88rpx;
+    line-height: 88rpx;
+    background: #279baa;
+    border-radius: 44rpx;
+    color: #fff;
+    text-align: center;
+    margin-top: 22rpx;
+  }
+}
+.member_list {
+  .line {
+    display: flex;
+    align-items: center;
+    border-bottom: 1rpx solid #e5e5e5;
+    padding: 30rpx 0;
+    .avatar {
+      width: 64rpx;
+      height: 64rpx;
+      border-radius: 50%;
+      overflow: hidden;
+      margin-right: 20rpx;
+    }
+    .content {
+      flex: 1;
+      .depart {
+        font-size: 24rpx;
+        color: #666666;
+      }
+      .info {
+        display: flex;
+        margin-bottom: 16rpx;
+        .name {
+          font-size: 30rpx;
+        }
+        .tag {
+          font-size: 24rpx;
+          border-radius: 4rpx;
+          border: 1rpx solid #f62710;
+          color: #f62710;
+          padding: 0rpx 6rpx;
+          margin-left: 8rpx;
+        }
+      }
+    }
+		.checked{
+      width: 48rpx;
+    }
+  }
+  .empty {
+    width: 100%;
+    height: 280rpx;
+  }
+}
+.search_inp {
+  height: 72rpx;
+  background: #f7f7f7;
+  border-radius: 4rpx;
+  padding-left: 16rpx;
+  .search {
+    width: 28rpx;
+  }
+  input {
+    flex: 1;
+    font-size: 28rpx;
+    color: #333333;
+  }
+}
+</style>
diff --git a/h5/pages/staff/meetingSub.vue b/h5/pages/staff/meetingSub.vue
index 5dfd91e..c31b0cb 100644
--- a/h5/pages/staff/meetingSub.vue
+++ b/h5/pages/staff/meetingSub.vue
@@ -1,254 +1,387 @@
 <template>
-	<view class="main_app">
-		<view class="heade_title">
-			<image class="icon" src="../../static/staff/ar_left@2x.png" @click="changeDate(-1)" mode="widthFix"></image>
-			<text class="date">{{ activeDateCum }}</text>
-			<image class="icon" src="../../static/staff/ar_right@2x.png" @click="changeDate(1)" mode="widthFix"></image>
-		</view>
-		<!--  -->
-		<view class="meeting_list">
-			<view class="item" :class="{active: i === 0}" v-for="item,i in meetingList" :key="i">
-				<view class="name">{{ item.name }}</view>
-				<view class="line"></view>
-			</view>
-		</view>
-		<!--  -->
-		<view class="time_list">
-			<view class="item" v-for="item,i in timeList" :key="i">{{ item.time }}</view>
-		</view>
-		<!--  -->
-		<view class="main_footer">
-			<view class="df_ac">
-				<view>宸查�夋嫨锛�</view>
-				<view class="sel_time">xxxxxx</view>
-			</view>
-			<view class="btns">
-				<view class="left">
-					<view class="item" v-for="item in colorOptions" :key="item.name">
-						<view class="box" :style="{ background: item.color }"></view>
-						<view class="">{{ item.name }}</view>
-					</view>
-				</view>
-				<view class="sub" @click="$jump('/pages/staff/meetingSubOrder')">纭棰勭害</view>
-			</view>
-		</view>
-		<!--  -->
-		<u-popup :show="isShowDetail" :round="12" mode="bottom" @close="isShowDetail = false">
-			<view class="detail_modal">
-				<view class="title">浼氳瀹ら绾︽儏鍐�</view>
-				<view class="h1">璁ㄨxxxxx閫夊瀷</view>
-				<view class="line">
-					<view class="label">浼氳鏃堕棿</view>
-					<view class="value">00000</view>
-				</view>
-				<view class="line">
-					<view class="label">浼氳瀹�</view>
-					<view class="value">00000</view>
-				</view>
-				<view class="line">
-					<view class="label">棰勭害浜�</view>
-					<view class="value">00000</view>
-				</view>
-				<view class="btn" @click="isShowDetail = false">鍏抽棴</view>
-			</view>
-		</u-popup>
-	</view>
+  <view class="main_app">
+    <view class="heade_title">
+      <image
+        class="icon"
+        src="../../static/staff/ar_left@2x.png"
+        @click="changeDate(-1)"
+        mode="widthFix"
+      ></image>
+      <text class="date">{{ activeDateCum }}</text>
+      <image
+        class="icon"
+        src="../../static/staff/ar_right@2x.png"
+        @click="changeDate(1)"
+        mode="widthFix"
+      ></image>
+    </view>
+    <!--  -->
+    <view class="meeting_list">
+      <view
+        @click="roomClick(item)"
+        class="item"
+        :class="{ active: activeRoom.roomId === item.id }"
+        v-for="(item, i) in meetingList"
+        :key="i"
+      >
+        <view class="name">{{ item.name }}</view>
+        <view class="line"></view>
+      </view>
+    </view>
+    <!--  -->
+    <view class="time_list">
+      <view
+        @click="datetimeClick(item, i)"
+        class="item"
+        :class="{ disable: item.isUse, active: item.checked == '1' }"
+        v-for="(item, i) in timeList"
+        :key="i"
+      >
+        {{ item.startTime }}-{{ item.endTime }}
+      </view>
+    </view>
+    <!--  -->
+    <view class="main_footer">
+      <view class="df_ac">
+        <view>宸查�夋嫨锛�</view>
+        <view class="sel_time">{{ selDatetime }}</view>
+      </view>
+      <view class="btns">
+        <view class="left">
+          <view class="item" v-for="item in colorOptions" :key="item.name">
+            <view class="box" :style="{ background: item.color }"></view>
+            <view class="">{{ item.name }}</view>
+          </view>
+        </view>
+        <view class="sub" @click="onSubmit"
+          >纭棰勭害</view
+        >
+      </view>
+    </view>
+    <!--  -->
+    <u-popup
+      :show="isShowDetail"
+      :round="12"
+      mode="bottom"
+      @close="isShowDetail = false"
+    >
+      <view class="detail_modal">
+        <view class="title">浼氳瀹ら绾︽儏鍐�</view>
+        <view class="h1">璁ㄨxxxxx閫夊瀷</view>
+        <view class="line">
+          <view class="label">浼氳鏃堕棿</view>
+          <view class="value">00000</view>
+        </view>
+        <view class="line">
+          <view class="label">浼氳瀹�</view>
+          <view class="value">00000</view>
+        </view>
+        <view class="line">
+          <view class="label">棰勭害浜�</view>
+          <view class="value">00000</view>
+        </view>
+        <view class="btn" @click="isShowDetail = false">鍏抽棴</view>
+      </view>
+    </u-popup>
+  </view>
 </template>
 
 <script>
-	import dayjs from 'dayjs'
-	export default {
-		data() {
-			return {
-				activeDate: '',
-				isShowDetail: false,
-				meetingList: [
-					{ name: '201浼氳瀹�' },
-					{ name: '201浼氳瀹�' },
-					{ name: '201浼氳瀹�' },
-					{ name: '201浼氳瀹�' },
-				],
-				timeList: [
-					{ time: '08:30-09:00' },
-					{ time: '08:30-09:00' },
-					{ time: '08:30-09:00' },
-					{ time: '08:30-09:00' },
-				],
-				
-				colorOptions: [
-					{ color: '#279BAA', name: '宸查�夋嫨' },
-					{ color: '#F7F7F7', name: '鍙绾�' },
-					{ color: '#cccccc', name: '涓嶅彲棰勭害' },
-				]
-				
-			};
-		},
-		computed: {
-			activeDateCum(){
-				const { activeDate } = this
-				let weeks = ['鍛ㄦ棩', '鍛ㄤ竴','鍛ㄤ簩','鍛ㄤ笁','鍛ㄥ洓','鍛ㄤ簲','鍛ㄥ叚']
-				return dayjs(activeDate).format('YYYY骞碝鏈圖鏃�') + ' ' + weeks[dayjs(activeDate).day()]
+import dayjs from 'dayjs'
+import {
+  roomsListPost,
+  getRoomUseTime,
+	meetingDetail
+} from '@/api'
+export default {
+  data() {
+    return {
+      activeRoom: {
+        yudingDate: ''
+      },
+			selDatetime: '',
+      isShowDetail: false,
+      meetingList: [],
+      timeList: [],
+
+      colorOptions: [
+        { color: '#279BAA', name: '宸查�夋嫨' },
+        { color: '#F7F7F7', name: '鍙绾�' },
+        { color: '#cccccc', name: '涓嶅彲棰勭害' },
+      ]
+
+    }
+  },
+  computed: {
+    activeDateCum() {
+      const yudingDate = this.activeRoom.yudingDate
+      let weeks = ['鍛ㄦ棩', '鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚']
+      return dayjs(yudingDate).format('YYYY骞碝鏈圖鏃�') + ' ' + weeks[dayjs(yudingDate).day()]
+    }
+  },
+  onLoad() {
+    this.activeRoom.yudingDate = dayjs().format('YYYY-MM-DD')
+    this.getRoomList()
+  },
+  methods: {
+    roomClick(item) {
+      this.$set(this.activeRoom, 'roomId', item.id)
+      this.$set(this.activeRoom, 'roomName', item.name)
+    },
+		onSubmit() {
+			const { activeRoom } = this
+      const selTimeList = this.timeList.filter(i => i.checked == '1')
+      if (selTimeList.length == -1) {
+        return uni.showToast({
+          title: '璇峰厛閫夋嫨浼氳鏃舵',
+          icon: 'none'
+        })
+      }
+			const obj = {
+				startTime: selTimeList[0].startTime,
+				endTime: selTimeList[selTimeList.length - 1].endTime,
 			}
-		},
-		created() {
-			this.activeDate = dayjs().format('YYYY-MM-DD')
-		},
-		methods: {
-			changeDate(num){
-				const { activeDate } = this
-				let fn = num > 0 ? 'add' : 'subtract'
-				this.activeDate = dayjs(activeDate)[fn](1, 'days').format('YYYY-MM-DD')
+			uni.navigateTo({
+				url: `/pages/staff/meetingSubOrder?yudingDate=${activeRoom.yudingDate}&roomName=${activeRoom.roomName}&roomId=${activeRoom.roomId}&startTime=${obj.startTime}&endTime=${obj.endTime}`
+			})
+      // this.$jump('/pages/staff/vehicle/apply')
+    },
+    getRoomList() {
+      roomsListPost({}).then(res => {
+        this.meetingList = res.data || []
+        if (this.meetingList.length > 0) {
+          this.$set(this.activeRoom, 'roomId', this.meetingList[0].id)
+          this.$set(this.activeRoom, 'roomName', this.meetingList[0].name)
+          this.getRoomTime()
+        }
+      })
+    },
+    getRoomTime() {
+      const { activeRoom } = this
+      getRoomUseTime({
+        ...activeRoom
+      }).then(res => {
+        this.timeList = res.data || []
+        this.timeList.forEach((i, j) => {
+          i.checked = '0',
+            i.index = j
+        })
+      })
+    },
+    datetimeClick(item, index) {
+      if (item.isUse == '1') return
+			if(item.isChoose){
+				this.getDetail(item.id)
+				return
 			}
-		}
-	}
+      const { timeList } = this
+      const selTimeList = timeList.filter(i => i.checked == '1')
+      if (selTimeList.length === 0) {
+        this.timeList.forEach((ite, i) => {
+          if (i === index) {
+            ite.checked = '1'
+            this.$forceUpdate()
+          }
+        })
+      } else {
+        const findIndex = selTimeList.findIndex(i => i.index === index)
+        console.log('findIndex', findIndex)
+        if (findIndex === -1) {
+          const startNum = index - selTimeList[0].index
+          const endNum = index - selTimeList[selTimeList.length - 1].index
+          if (startNum == 1 || startNum == -1 || endNum == 1 || endNum == -1) {
+            console.log('鐩搁偦')
+            item.checked = true
+            this.$forceUpdate()
+          } else {
+            return uni.showToast({
+              title: '璇烽�夋嫨鐩搁偦鐨勬椂闂存',
+              icon: 'none'
+            })
+          }
+        } else {
+          if (index === selTimeList[0].index || index === selTimeList[selTimeList.length - 1].index) {
+            item.checked = false
+            this.$forceUpdate()
+          } else {
+            return uni.showToast({
+              title: '璇峰厛鍙栨秷鏈�澶栧眰鐨勬椂闂存',
+              icon: 'none'
+            })
+          }
+
+        }
+      }
+      const selTimeLists = this.timeList.filter(i => i.checked == '1')
+      // console.log('selTimeList', selTimeList);
+      if (selTimeLists.length === 0) {
+        this.selDatetime = ''
+      } else {
+        this.selDatetime = this.activeRoom.roomName + ' | ' + selTimeLists[0].startTime + '-' + selTimeLists[selTimeLists.length - 1].endTime
+      }
+    },
+    changeDate(num) {
+      const yudingDate = this.activeRoom.yudingDate
+      let fn = num > 0 ? 'add' : 'subtract'
+      this.yudingDate = dayjs(yudingDate)[fn](1, 'days').format('YYYY-MM-DD')
+      this.getRoomList()
+    },
+		getDetail(id) {
+			meetingDetail({
+				id
+			})
+		},
+  }
+}
 </script>
 
 <style lang="scss">
-	.detail_modal{
-		padding: 40rpx 30rpx;
-		.title{
-			text-align: center;
-			font-weight: 500;
-			font-size: 32rpx;
-			margin-bottom: 40rpx;
-		}
-		.h1{
-			font-weight: 500;
-			font-size: 32rpx;
-			margin-bottom: 30rpx;
-		}
-		.line{
-			display: flex;
-			margin-bottom: 20rpx;
-			.label{
-				width: 140rpx;
-				color: #888888;
-			}
-			.value{
-				color: #333333;
-			}
-		}
-		.btn{
-			margin-top: 230rpx;
-			width: 690rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			text-align: center;
-			background: #279BAA;
-			border-radius: 44rpx;
-			font-weight: 500;
-			font-size: 32rpx;
-			color: #FFFFFF;
-		}
-	}
-	.main_footer{
-		position: absolute;
-		width: 100%;
-		left: 0;
-		bottom: 0;
-		padding: 20rpx 30rpx 84rpx;
-		box-shadow: 0rpx -3rpx 6rpx 0rpx #EEEEEE;
-		.sel_time{
-			color: #279BAA;
-		}
-		.btns{
-			margin-top: 10rpx;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			.left{
-				display: flex;
-				.item{
-					display: flex;
-					align-items: center;
-					margin-right: 20rpx;
-					.box{
-						margin-right: 10rpx;
-						width: 32rpx;
-						height: 32rpx;
-					}
-				}
-			}
-			.sub{
-				width: 184rpx;
-				height: 72rpx;
-				line-height: 72rpx;
-				text-align: center;
-				background: #279BAA;
-				box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
-				border-radius: 36rpx;
-				font-size: 30rpx;
-				color: #FFFFFF;
-			}
-		}
-	}
-	.time_list{
-		display: flex;
-		justify-content: space-between;
-		padding: 30rpx;
-		flex-wrap: wrap;
-		.item{
-			width: 220rpx;
-			height: 80rpx;
-			line-height: 80rpx;
-			text-align: center;
-			background: #F7F7F7;
-			border-radius: 4rpx;
-			margin-bottom: 24rpx;
-			font-size: 30rpx;
-		}
-		.active{
-			background-color: #279BAA;
-			color: #fff;
-		}
-		.disable{
-			background-color: #cccccc;
-			color: #999999;
-		}
-	}
-	.meeting_list{
-		display: flex;
-		padding-left: 30rpx;
-		width: 720rpx;
-		overflow-x: auto;
-		border-bottom: 1rpx solid #E5E5E5;
-		.item{
-			flex-shrink: 0;
-			margin-right: 60rpx;
-			padding: 30rpx 0 0;
-			.line{
-				width: 60rpx;
-				height: 4rpx;
-				background-color: #fff;
-				margin: 26rpx auto 0;
-			}
-		}
-		.active{
-			color: #279BAA;
-			font-weight: 600;
-			font-size: 30rpx;
-			.line{
-				width: 60rpx;
-				height: 4rpx;
-				background-color: #279BAA;
-				margin: 26rpx auto 0;
-			}
-		}
-	}
-	.main_app{
-		padding: 0;
-	}
-.heade_title{
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	.date{
-		margin: 0 24rpx;
-		font-weight: 600;
-		font-size: 32rpx;
-	}
-	.icon{
-		width: 30rpx;
-	}
+.detail_modal {
+  padding: 40rpx 30rpx;
+  .title {
+    text-align: center;
+    font-weight: 500;
+    font-size: 32rpx;
+    margin-bottom: 40rpx;
+  }
+  .h1 {
+    font-weight: 500;
+    font-size: 32rpx;
+    margin-bottom: 30rpx;
+  }
+  .line {
+    display: flex;
+    margin-bottom: 20rpx;
+    .label {
+      width: 140rpx;
+      color: #888888;
+    }
+    .value {
+      color: #333333;
+    }
+  }
+  .btn {
+    margin-top: 230rpx;
+    width: 690rpx;
+    height: 88rpx;
+    line-height: 88rpx;
+    text-align: center;
+    background: #279baa;
+    border-radius: 44rpx;
+    font-weight: 500;
+    font-size: 32rpx;
+    color: #ffffff;
+  }
+}
+.main_footer {
+  position: fixed;
+  width: 100%;
+  left: 0;
+  bottom: 0;
+	background-color: #fff;
+  padding: 20rpx 30rpx 84rpx;
+  box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee;
+  .sel_time {
+    color: #279baa;
+  }
+  .btns {
+    margin-top: 10rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    .left {
+      display: flex;
+      .item {
+        display: flex;
+        align-items: center;
+        margin-right: 20rpx;
+        .box {
+          margin-right: 10rpx;
+          width: 32rpx;
+          height: 32rpx;
+        }
+      }
+    }
+    .sub {
+      width: 184rpx;
+      height: 72rpx;
+      line-height: 72rpx;
+      text-align: center;
+      background: #279baa;
+      box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee;
+      border-radius: 36rpx;
+      font-size: 30rpx;
+      color: #ffffff;
+    }
+  }
+}
+.time_list {
+  display: flex;
+  justify-content: space-between;
+  padding: 30rpx;
+  flex-wrap: wrap;
+  .item {
+    width: 220rpx;
+    height: 80rpx;
+    line-height: 80rpx;
+    text-align: center;
+    background: #f7f7f7;
+    border-radius: 4rpx;
+    margin-bottom: 24rpx;
+    font-size: 30rpx;
+  }
+  .active {
+    background-color: #279baa;
+    color: #fff;
+  }
+  .disable {
+    background-color: #cccccc;
+    color: #999999;
+  }
+}
+.meeting_list {
+  display: flex;
+  padding-left: 30rpx;
+  width: 720rpx;
+  overflow-x: auto;
+  border-bottom: 1rpx solid #e5e5e5;
+  .item {
+    flex-shrink: 0;
+    margin-right: 60rpx;
+    padding: 30rpx 0 0;
+    .line {
+      width: 60rpx;
+      height: 4rpx;
+      background-color: #fff;
+      margin: 26rpx auto 0;
+    }
+  }
+  .active {
+    color: #279baa;
+    font-weight: 600;
+    font-size: 30rpx;
+    .line {
+      width: 60rpx;
+      height: 4rpx;
+      background-color: #279baa;
+      margin: 26rpx auto 0;
+    }
+  }
+}
+.main_app {
+  padding: 0;
+}
+.heade_title {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  .date {
+    margin: 0 24rpx;
+    font-weight: 600;
+    font-size: 32rpx;
+  }
+  .icon {
+    width: 30rpx;
+  }
 }
 </style>
diff --git a/h5/pages/staff/meetingSubOrder.vue b/h5/pages/staff/meetingSubOrder.vue
index a452d63..031a92e 100644
--- a/h5/pages/staff/meetingSubOrder.vue
+++ b/h5/pages/staff/meetingSubOrder.vue
@@ -1,145 +1,249 @@
 <template>
-	<view class="main_app">
-		<view class="module_list">
-			<view class="item">
-				<view class="name">浼氳鏃堕棿</view>
-				<view class="line">
-					<view class="label">2022骞�22鏈�2鏃� 1000000000</view>
-					<u-icon name="arrow-right" color="#999999" size="14" />
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">浼氳瀹�</view>
-				<view class="line">
-					<view class="label">aaaaaaaa</view>
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">棰勭害浜�</view>
-				<view class="line">
-					<view class="label">aaaaaaaa</view>
-				</view>
-			</view>
-			<view class="empty"></view>
-			<view class="item">
-				<view class="name">
-					<text>浼氳涓婚</text>
-					<text class="star">*</text>
-				</view>
-				<view class="line">
-					<input type="text" v-model="param.aaa" placeholder="璇疯緭鍏ヤ細璁富棰�" placeholder-class="placeholder9" class="label">
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					<text>浼氳鍐呭</text>
-				</view>
-				<view class="line">
-					<u-textarea border="none" v-model="param.aaa" count :maxlength="300" placeholder="璇疯緭鍏ヤ細璁唴瀹�" placeholder-class="placeholder9" class="label" />
-				</view>
-			</view>
-			<view class="empty"></view>
-			<view class="item">
-				<view class="name">鍙備細浜哄憳</view>
-				<view class="line">
-					<view class="label">
-						<text v-if="false">moumoumou</text>
-						<text v-else class="placeholder9" @click="$jump('/pages/staff/memberSel')">璇烽�夋嫨</text>
-					</view>
-					<u-icon name="arrow-right" color="#999999" size="14" @click="$jump('/pages/staff/memberSel')" />
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">閫夋嫨鏈嶅姟椤�</view>
-				<view class="line">
-					<view class="label">
-						<view class="service_item" v-for="(item,index) in serviceOps" :key="index">
-							{{ item.value }}
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="item">
-				<view class="name">
-					<text>澶囨敞</text>
-				</view>
-				<view class="line">
-					<textarea v-model="param.as" :maxlength="-1" placeholder="璇疯緭鍏�" placeholder-class="placeholder9" class="label" />
-				</view>
-			</view>
-			
-			<view class="sub_btn">
-				纭棰勭害
-			</view>
-			
-		</view>
-	</view>
+  <view class="main_app">
+    <view class="module_list">
+      <view class="item">
+        <view class="name">浼氳鏃堕棿</view>
+        <view class="line">
+          <view class="label">
+            {{ param.activeDate }} {{ param.startTime }}-{{ param.endTime }}
+          </view>
+          <u-icon name="arrow-right" color="#999999" size="14" />
+        </view>
+      </view>
+      <view class="item">
+        <view class="name">浼氳瀹�</view>
+        <view class="line">
+          <view class="label">{{ param.roomName }}</view>
+        </view>
+      </view>
+      <view class="item">
+        <view class="name">棰勭害浜�</view>
+        <view class="line">
+          <view class="label">{{ userInfo.realname }}</view>
+        </view>
+      </view>
+      <view class="empty"></view>
+      <view class="item">
+        <view class="name">
+          <text>浼氳涓婚</text>
+          <text class="star">*</text>
+        </view>
+        <view class="line">
+          <input
+            type="text"
+            v-model="param.name"
+            placeholder="璇疯緭鍏ヤ細璁富棰�"
+            placeholder-class="placeholder9"
+            class="label"
+          />
+        </view>
+      </view>
+      <view class="item">
+        <view class="name">
+          <text>浼氳鍐呭</text>
+        </view>
+        <view class="line">
+          <u-textarea
+            border="none"
+            v-model="param.content"
+            count
+            :maxlength="300"
+            placeholder="璇疯緭鍏ヤ細璁唴瀹�"
+            placeholder-class="placeholder9"
+            class="label"
+          />
+        </view>
+      </view>
+      <view class="empty"></view>
+      <view class="item">
+        <view class="name">鍙備細浜哄憳</view>
+        <view class="line" @click="selPeople">
+          <view class="label">
+            <text v-if="param.sysList && param.sysList.length > 0">
+							{{ param.sysList.map(i=>i.realname).join(',') }}
+						</text>
+            <text
+              v-else
+              class="placeholder9"
+              @click="$jump('/pages/staff/memberSel')"
+              >璇烽�夋嫨</text
+            >
+          </view>
+          <u-icon
+            name="arrow-right"
+            color="#999999"
+            size="14"
+            @click="$jump('/pages/staff/memberSel')"
+          />
+        </view>
+      </view>
+      <view class="item">
+        <view class="name">閫夋嫨鏈嶅姟椤�</view>
+        <view class="line">
+          <view class="label">
+            <view
+              class="service_item"
+							:class="{active: item.checked}"
+              v-for="(item, index) in info.projectList"
+              :key="index"
+							@click="serviceClick(item)"
+            >
+              {{ item.projectName }}
+            </view>
+          </view>
+        </view>
+      </view>
+      <view class="item">
+        <view class="name">
+          <text>澶囨敞</text>
+        </view>
+        <view class="line">
+          <textarea
+            v-model="param.remark"
+            :maxlength="-1"
+            placeholder="璇疯緭鍏�"
+            placeholder-class="placeholder9"
+            class="label"
+          />
+        </view>
+      </view>
+
+      <view class="sub_btn" @click="onSubmit"> 纭棰勭害 </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				param: {},
-				serviceOps: [
-					{ key: '0', value: '甯崱' },
-					{ key: '1', value: '鎶曞奖浠�' },
-					{ key: '2', value: '绗旇鏈數鑴�' },
-				]
-			};
-		}
-	}
+import {
+  reservationMeeting,
+  getRoomDetail
+} from '@/api'
+import dayjs from 'dayjs'
+export default {
+  data() {
+    return {
+      param: {},
+      userInfo: uni.getStorageSync('userInfo'),
+			info: {},
+    }
+  },
+  onLoad(option) {
+    this.param = { ...option }
+    this.$set(this.param, 'activeDate', dayjs(option.yudingDate).format('YYYY骞碝鏈圖鏃�'))
+		this.initOption()
+  },
+	mounted() {
+    this.$eventBus.$on('meetingPeo', (res) => {
+      this.$set(this.param, 'sysList', res)
+      // this.$set(this.param, 'memberIds', res.map(i => i.id).join(','))
+      // this.$set(this.param, 'memberNames', res.map(i => i.name).join(','))
+    })
+  },
+  methods: {
+		onSubmit() {
+			const { param, info } = this
+			if (!param.name) return uni.showToast({
+        title: '璇疯緭鍏ヤ細璁富棰�',
+        icon: 'none'
+      })
+			reservationMeeting({
+				...param,
+				startTime: `${param.yudingDate} ${param.startTime}:00`,
+				endTime: `${param.yudingDate} ${param.endTime}:00`,
+				projectList: info.projectList.filter(i => i.checked),
+			}).then(res => {
+				if(res.code === 200){
+
+				}
+			})
+		},
+    selPeople() {
+			const { param } = this
+			let startTime = param.yudingDate + ' ' + param.startTime
+			let endTime = param.yudingDate + ' ' + param.endTime
+      uni.navigateTo({
+        url: `/pages/staff/meetingSel?startTime=${startTime}&endTime=${endTime}`
+      })
+    },
+		serviceClick(item) {
+			const { info } = this
+			info.projectList.forEach(ite => {
+				if(ite.projectId === item.projectId){
+					ite.checked = !ite.checked
+				}
+			})
+			this.$forceUpdate()
+		},
+    initOption() {
+			const roomId = Number(this.param.roomId)
+      getRoomDetail({ roomId }).then(res => {
+        res.data.projectList.forEach(item => {
+          item.active = false
+        })
+        this.info = res.data
+				if(this.info && this.info.projectList){
+					this.info.projectList.forEach(i => {
+						i.checked = false
+					})
+				}
+      })
+    }
+  }
+}
 </script>
 
 <style lang="scss">
-.module_list{
-	.item{
-		border-bottom: 1rpx solid #E5E5E5;
-		padding: 30rpx 0;
-		.name{
-			color: #666666;
-			margin-bottom: 30rpx;
-		}
-		.line{
-			display: flex;
-			.label{
-				flex: 1;
-				display: flex;
-				align-items: center;
-				.service_item{
-					height: 64rpx;
-					line-height: 64rpx;
-					background: #F7F7F7;
-					border-radius: 4rpx;
-					padding: 0 24rpx;
-					margin-right: 20rpx;
+.module_list {
+  .item {
+    border-bottom: 1rpx solid #e5e5e5;
+    padding: 30rpx 0;
+    .name {
+      color: #666666;
+      margin-bottom: 30rpx;
+    }
+    .line {
+      display: flex;
+      .label {
+        flex: 1;
+        display: flex;
+        align-items: center;
+        .service_item {
+          height: 64rpx;
+          line-height: 64rpx;
+          background: #f7f7f7;
+          border-radius: 4rpx;
+          padding: 0 24rpx;
+          margin-right: 20rpx;
+        }
+				.active{
+					background-color: #4d99a8;
+					color: #fff;
 				}
-			}
-			
-		}
-	}
-	padding-bottom: 100rpx;
+      }
+    }
+  }
+  padding-bottom: 100rpx;
 }
 .empty {
-	width: 750rpx;
-	height: 20rpx;
-	background-color: #f7f7f7;
-	margin: 0 -30rpx;
+  width: 750rpx;
+  height: 20rpx;
+  background-color: #f7f7f7;
+  margin: 0 -30rpx;
 }
-.sub_btn{
-				width: 690rpx;
-				height: 72rpx;
-				line-height: 72rpx;
-				text-align: center;
-				background: #279BAA;
-				box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
-				border-radius: 36rpx;
-				font-size: 30rpx;
-				color: #FFFFFF;
-				margin-top: 20rpx;
-			}
-.star{
-	margin-left: 4rpx;
-	color: #e42d2d;
+.sub_btn {
+  width: 690rpx;
+  height: 72rpx;
+  line-height: 72rpx;
+  text-align: center;
+  background: #279baa;
+  box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee;
+  border-radius: 36rpx;
+  font-size: 30rpx;
+  color: #ffffff;
+  margin-top: 20rpx;
+}
+.star {
+  margin-left: 4rpx;
+  color: #e42d2d;
 }
 </style>
diff --git a/h5/pages/staff/memberSel copy.vue b/h5/pages/staff/memberSel copy.vue
deleted file mode 100644
index b468860..0000000
--- a/h5/pages/staff/memberSel copy.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-<template>
-	<view class="main_app">
-		<view class="search_inp df_ac">
-			<image class="mr12 search" src="../../static/ic_search@2x.png" mode="widthFix"></image>
-			<input v-model="param.name" @blur="initData()" type="text" placeholder="鎼滅储" placeholder-style="color: #999999;" />
-		</view>
-		<view class="member_list">
-			<view v-for="item in memberList" :key="item.id" class="line">
-				<image :src="item.faceImgFull ? item.faceImgFull : require('@/static/logo@2x.png')" class="avatar" mode=""></image>
-				<view class="content">
-					<view class="info">
-						<text class="name">{{ item.name }}</text>
-						<!-- <text class="tag">tag</text> -->
-					</view>
-					<view class="depart">{{ item.companyName }}</view>
-				</view>
-				<checkbox class="checkbox" />
-				<text></text>
-			</view>
-			<view class="empty"></view>
-		</view>
-		<!--  -->
-		<view class="sub_wrap">
-			<view class="sel_mem">
-				<text>宸查�夋嫨锛�</text>
-				<view class="members">
-					<text v-for="(item, i) in 100" :key="i">{{ item }}</text>
-				</view>
-				<image @click="isShowSelMem = true" class="open_icon" src="../../static/staff/renyuan_ic_open.png" mode=""></image>
-			</view>
-			<view class="btn" @click="onSubmit">纭(00/20)</view>
-		</view>
-		<!--  -->
-		<u-popup :show="isShowSelMem" :round="12" mode="bottom" @close="isShowSelMem = false">
-			<view class="modal">
-				<view class="modal_header">
-					<text class="status">宸查�夋嫨锛歺x浜�</text>
-					<text class="btn" @click="isShowSelMem = false">纭</text>
-				</view>
-				<view class="modal_mem_list">
-					<view class="line">
-						<image src="../../static/logo@2x.png" class="avatar" mode=""></image>
-						<view class="content">
-							<view class="info">
-								<text class="name">name</text>
-							</view>
-							<view class="depart">xx绉戝</view>
-						</view>
-						<view class="btn">绉婚櫎</view>
-					</view>
-				</view>
-			</view>
-		</u-popup>
-		
-	</view>
-</template>
-
-<script>
-import { findHiddenAreaMemberList } from '@/api'
-export default {
-	data() {
-		return {
-			memberList: [],
-			selList: [],
-			param: {},
-
-			isShowSelMem: false
-		}
-	},
-	onLoad() {
-		this.initData()
-	},
-	methods: {
-		onSubmit() {
-			uni.navigateBack()
-		},
-		initData() {
-			const { param } = this
-			findHiddenAreaMemberList({
-				name: param.name
-			}).then(res => {
-        this.memberList = res.data || []
-      })
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.modal {
-	padding: 40rpx 30rpx;
-	.modal_header {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		.status {
-			font-weight: 600;
-		}
-		.btn {
-			color: #279baa;
-		}
-	}
-	.modal_mem_list {
-		.line {
-			display: flex;
-			align-items: center;
-			border-bottom: 1rpx solid #e5e5e5;
-			padding: 30rpx 0;
-			.avatar {
-				width: 64rpx;
-				height: 64rpx;
-				border-radius: 50%;
-				overflow: hidden;
-				margin-right: 20rpx;
-			}
-			.content {
-				flex: 1;
-				.depart {
-					font-size: 24rpx;
-					color: #666666;
-				}
-				.info {
-					display: flex;
-					margin-bottom: 16rpx;
-					.name {
-						font-size: 30rpx;
-					}
-				}
-			}
-			.btn{
-				width: 80rpx;
-				height: 48rpx;
-				line-height: 48rpx;
-				text-align: center;
-				font-size: 24rpx;
-				color: #333333;
-				border-radius: 4rpx;
-				border: 1rpx solid #999999;
-			}
-		}
-	}
-}
-.sub_wrap {
-	position: absolute;
-	bottom: 0;
-	left: 0;
-	width: 100%;
-	box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
-	padding: 30rpx 30rpx 64rpx;
-	.sel_mem {
-		display: flex;
-		align-items: center;
-		.members {
-			width: 500rpx;
-			color: #4d98a7;
-			white-space: nowrap;
-			overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
-			text-overflow: ellipsis;
-			margin-right: 20rpx;
-		}
-		.open_icon {
-			width: 44rpx;
-			height: 44rpx;
-		}
-	}
-	.btn {
-		width: 690rpx;
-		height: 88rpx;
-		line-height: 88rpx;
-		background: #279baa;
-		border-radius: 44rpx;
-		color: #fff;
-		text-align: center;
-		margin-top: 22rpx;
-	}
-}
-.member_list {
-	.line {
-		display: flex;
-		align-items: center;
-		border-bottom: 1rpx solid #e5e5e5;
-		padding: 30rpx 0;
-		.avatar {
-			width: 64rpx;
-			height: 64rpx;
-			border-radius: 50%;
-			overflow: hidden;
-			margin-right: 20rpx;
-		}
-		.content {
-			flex: 1;
-			.depart {
-				font-size: 24rpx;
-				color: #666666;
-			}
-			.info {
-				display: flex;
-				margin-bottom: 16rpx;
-				.name {
-					font-size: 30rpx;
-				}
-				.tag {
-					font-size: 24rpx;
-					border-radius: 4rpx;
-					border: 1rpx solid #f62710;
-					color: #f62710;
-					padding: 0rpx 6rpx;
-					margin-left: 8rpx;
-				}
-			}
-		}
-	}
-	.empty {
-		width: 100%;
-		height: 280rpx;
-	}
-}
-.search_inp {
-	height: 72rpx;
-	background: #f7f7f7;
-	border-radius: 4rpx;
-	padding-left: 16rpx;
-	.search{
-		width: 28rpx;
-	}
-	input {
-		flex: 1;
-		font-size: 28rpx;
-		color: #333333;
-	}
-}
-</style>
diff --git a/h5/pages/staff/vehicle/applePeo.vue b/h5/pages/staff/vehicle/applePeo.vue
index 2f62cce..54e7a5d 100644
--- a/h5/pages/staff/vehicle/applePeo.vue
+++ b/h5/pages/staff/vehicle/applePeo.vue
@@ -15,30 +15,40 @@
       />
     </view>
     <view class="member_list">
-      <checkbox-group v-model="selList" @change="changeMem">
-        <view v-for="item in memberList" :key="item.id" class="line">
-          <image
-            :src="
-              item.faceImgFull
-                ? item.faceImgFull
-                : require('@/static/logo@2x.png')
-            "
-            class="avatar"
-            mode=""
-          ></image>
-          <view class="content">
-            <view class="info">
-              <text class="name">{{ item.name }}</text>
-              <!-- <text class="tag">tag</text> -->
-            </view>
-            <view class="depart">{{ item.companyName }}</view>
+      <view v-for="(item, index) in memberList" :key="item.id" class="line">
+        <image
+          :src="
+            item.faceImgFull
+              ? item.faceImgFull
+              : require('@/static/logo@2x.png')
+          "
+          class="avatar"
+          mode=""
+        ></image>
+        <view class="content">
+          <view class="info">
+            <text class="name">{{ item.name }}</text>
+            <!-- <text class="tag">tag</text> -->
           </view>
-          <label>
-            <checkbox :checked="item.checked" :value="String(item.id)" class="checkbox" />
-          </label>
-          <text></text>
+          <view class="depart">{{ item.companyName }}</view>
         </view>
-      </checkbox-group>
+        <image
+          @click="changeMem(item, index)"
+          v-if="item.checked"
+          src="@/static/meeting/icon/ic_choose_sel@2x.png"
+          mode="widthFix"
+          class="checked"
+        ></image>
+        <image
+          @click="changeMem(item, index)"
+          v-if="!item.checked"
+          src="@/static/meeting/icon/ic_choose@2x.png"
+          mode="widthFix"
+          class="checked"
+        ></image>
+        <text></text>
+      </view>
+
       <view class="empty"></view>
     </view>
     <!--  -->
@@ -55,7 +65,7 @@
           mode=""
         ></image>
       </view>
-      <view class="btn" @click="onSubmit">纭({{selList.length}}/20)</view>
+      <view class="btn" @click="onSubmit">纭({{ selList.length }}/20)</view>
     </view>
     <!--  -->
     <u-popup
@@ -100,8 +110,8 @@
   data() {
     return {
       memberList: [],
-      selList: [],
       param: {},
+      selList: [],
 
       isShowSelMem: false
     }
@@ -109,32 +119,42 @@
   onLoad() {
     this.initData()
   },
+  mounted() {
+    this.$eventBus.$on('applePeoDetail', (res)=>{
+      res.forEach(item => {
+        this.changeMem(item)
+      })
+      this.$nextnick(() => {
+        this.$forceUpdate()
+      })
+    })
+  },
   methods: {
     onSubmit() {
       this.$eventBus.$emit('applePeo', this.selList)
       uni.navigateBack()
     },
-    changeMem(e) {
-      const arr = e.detail.value
-      let arrTemp = arr.map(item => {
-        let obj = {}
-        this.memberList.forEach(ite => {
-          if (item == ite.id) {
-            obj.name = ite.name.split('-')[0]
-            obj.componey = ite.name.split('-')[1] || ''
-            obj.id = ite.id
-          }
-        })
-        return obj
-      })
-      this.selList = arrTemp
-      // this.$forceUpdate()
+    changeMem(item, index) {
+      item.checked = !item.checked
+      this.selList = this.memberList.filter(i => i.checked)
+      // const arr = e.detail.value
+      // let arrTemp = arr.map(item => {
+      //   let obj = {}
+      //   this.memberList.forEach(ite => {
+      //     if (item == ite.id) {
+      //       obj.name = ite.name.split('-')[0]
+      //       obj.componey = ite.name.split('-')[1] || ''
+      //       obj.id = ite.id
+      //     }
+      //   })
+      //   return obj
+      // })
+      // this.selList = arrTemp
+      this.$forceUpdate()
     },
     handleRemove(item) {
-      const selIndex = this.selList.findIndex(i => i.id === item.id)
-      this.selList.splice(selIndex, 1)
       this.memberList.forEach(ite => {
-        if(item.id === ite.id){
+        if (item.id === ite.id) {
           ite.checked = false
         }
       })
@@ -282,6 +302,9 @@
         }
       }
     }
+    .checked{
+      width: 48rpx;
+    }
   }
   .empty {
     width: 100%;
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index 174c512..d6436b5 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -80,7 +80,7 @@
           <text>*</text>
           <text>涔樿溅浜哄憳</text>
         </view>
-        <view class="value" @click="$jump('/pages/staff/vehicle/applePeo')">
+        <view class="value" @click="selPeople">
           <text
             class="mr6"
             :style="{
@@ -200,6 +200,12 @@
         }
       })
     },
+    selPeople() {
+      if(this.param.memberList && this.param.memberList.length > 0){
+        this.$eventBus.$emit('applePeoDetail', this.param.memberList)
+      }
+      this.$jump('/pages/staff/vehicle/applePeo')
+    },
     confirmDate(e) {
 
       this.param.planUseDate = dayjs(e.value).format('YYYY-MM-DD HH:mm')
diff --git a/h5/pages/staff/vehicle/sendACar.vue b/h5/pages/staff/vehicle/sendACar.vue
index 96c407a..f11605d 100644
--- a/h5/pages/staff/vehicle/sendACar.vue
+++ b/h5/pages/staff/vehicle/sendACar.vue
@@ -18,6 +18,7 @@
         class="box_list_item"
         v-for="(item, index) in dataList"
         :key="index"
+				@click="itemDetail(item)"
       >
         <view class="box_list_item_head">
           <text>{{ item.carCode }}</text>
@@ -118,6 +119,11 @@
         this.total = res.data.total
       })
     },
+		itemDetail(item) {
+			uni.navigateTo({
+				url: "/pages/staff/vehicle/sendACarDetail?id=" + item.id
+			})
+		},
     seletedCar(e) {
       const item = e.value[0]
       this.$set(this.param, 'carCode', item.code)
diff --git a/h5/pages/staff/vehicle/sendACarDetail.vue b/h5/pages/staff/vehicle/sendACarDetail.vue
new file mode 100644
index 0000000..9cd3da5
--- /dev/null
+++ b/h5/pages/staff/vehicle/sendACarDetail.vue
@@ -0,0 +1,407 @@
+<template>
+  <view class="main_app">
+    <view class="status_wrap">
+      <view class="name">{{ info.memberName }}鐨勭敤杞︾敵璇�</view>
+      <view class="placeholder9">{{ info.companyName }}</view>
+      <view class="status">
+        <text class="loading" v-if="info.status == '0'">鐢宠涓�</text>
+        <text class="grr" v-if="info.status == '1'">瀹℃壒涓�</text>
+        <text class="grr" v-if="info.status == '2'">瀹℃壒閫氳繃</text>
+        <text class="error" v-if="info.status == '3'">瀹℃壒涓嶉�氳繃</text>
+        <text class="grr" v-if="info.status == '4'">宸插彇娑�</text>
+      </view>
+    </view>
+    <!--  -->
+    <view class="emyty"></view>
+    <view class="module_list">
+      <view class="item">
+        <view class="label">棰勮鐢ㄨ溅鏃舵</view>
+        <view class="value">{{ info.startTime.slice(0, 16) }}鑷硔{ info.endTime.slice(0, 16) }}</view>
+      </view>
+			<view class="item">
+        <view class="label">棰勮鍑哄彂鏃堕棿</view>
+        <view class="value">{{ info.planUseDate }}</view>
+      </view>
+			<view class="item">
+        <view class="label">涔樿溅浜哄憳</view>
+        <view class="value">{{ info.memberNames }}</view>
+      </view>
+      <view class="item">
+        <view class="label">鐩殑鍦�</view>
+        <view class="value">{{ info.type == '1' ? '甯傚' : '瀹ゅ唴' }}锛歿{ info.addr }}</view>
+      </view>
+      <view class="item">
+        <view class="label">鐢ㄨ溅浜嬬敱</view>
+        <view class="value">{{ info.content }}</view>
+      </view>
+      <view class="item">
+        <view class="label">杞﹁締淇℃伅</view>
+        <view class="value">{{ info.carCode }}</view>
+      </view>
+      <view class="item">
+        <view class="label">鍙告満淇℃伅</view>
+        <view class="value">{{ info.driverName }} {{ info.driverPhone }}</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>
+</template>
+
+<script>
+import { carUseBookDetail } from '@/api'
+export default {
+  data() {
+    return {
+      showApprModal: false,
+      id: '',
+      info: {},
+      param: {},
+
+    }
+  },
+  onLoad(option) {
+    this.id = option.id
+    this.getDetail()
+  },
+  methods: {
+    getDetail() {
+      const { id } = this
+      carUseBookDetail(id).then(res => {
+        this.info = { ...res.data }
+      })
+    },
+    handleSub(flag) {
+      // this.param.flag = 
+      if (flag === '1') {
+
+      } else {
+
+      }
+      this.showApprModal = true
+    }
+  },
+}
+</script>
+<style>
+page {
+  background-color: #f7f7f7;
+}
+</style>
+<style lang="scss">
+.main_app {
+  background-color: #fff;
+  padding-bottom: 0;
+
+  .flow_wrap {
+    padding: 30rpx 0;
+
+    .flow_title {
+      font-weight: 500;
+      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;
+          }
+        }
+
+        .content {
+          flex: 1;
+
+          .head {
+            display: flex;
+            justify-content: space-between;
+            margin-bottom: 4rpx;
+
+            .event {
+              font-size: 30rpx;
+            }
+
+            .time {
+              font-size: 26rpx;
+              color: #999999;
+            }
+          }
+
+          .name_wrap {
+            font-size: 26rpx;
+            color: #777777;
+
+            .status {
+              color: #279baa;
+            }
+          }
+
+          .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;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  .module_list {
+    .item {
+      padding: 30rpx 0;
+      border-bottom: 1rpx solid #e5e5e5;
+
+      .label {
+        font-size: 26rpx;
+        color: #666666;
+        margin-bottom: 20rpx;
+      }
+
+      .value {
+        font-size: 30rpx;
+        display: flex;
+        align-items: center;
+
+        .avatar {
+          margin-right: 20rpx;
+          width: 120rpx;
+          height: 120rpx;
+          border-radius: 8rpx;
+          border: 2rpx solid #e5e5e5;
+        }
+
+        .info {
+          flex: 1;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          font-size: 26rpx;
+          color: #666666;
+
+          .name {
+            font-size: 30rpx;
+            color: #333333;
+          }
+        }
+      }
+    }
+  }
+
+  .status_wrap {
+    position: relative;
+    padding: 30rpx 0;
+
+    .name {
+      font-weight: 500;
+      font-size: 32rpx;
+      margin-bottom: 20rpx;
+      color: #222222;
+    }
+
+    .desc {
+      font-size: 26rpx;
+      color: #ed4545;
+    }
+
+    .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: #279baa;
+    }
+  }
+
+  .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;
+    }
+
+    .agree {
+      background: #279baa;
+      color: #fff;
+      border: 1rpx solid #279baa;
+    }
+  }
+
+  .appr_modal {
+    padding: 36rpx 30rpx 0;
+
+    .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;
+    }
+  }
+
+  .emyty {
+    width: 750rpx;
+    height: 20rpx;
+    background-color: #f7f7f7;
+    margin: 0 -30rpx;
+  }
+}
+</style>
diff --git a/h5/pages/staff/vehicle/shinei.vue b/h5/pages/staff/vehicle/shinei.vue
index 63ea472..71b1bb4 100644
--- a/h5/pages/staff/vehicle/shinei.vue
+++ b/h5/pages/staff/vehicle/shinei.vue
@@ -155,9 +155,6 @@
       } else {
         this.selDatetime = this.param.queryDate.slice(5) + ' ' + selTimeLists[0].startHours + '-' + selTimeLists[selTimeLists.length - 1].endHours
       }
-      // if(true){
-      // 	this.selDatetime.push(item)
-      // }
     },
     confirmDate(e) {
       this.param.queryDate = dayjs(e.value).format('YYYY-MM-DD')
diff --git a/h5/utils/service.js b/h5/utils/service.js
index b26180f..4131187 100644
--- a/h5/utils/service.js
+++ b/h5/utils/service.js
@@ -26,16 +26,18 @@
 					// 鎺у埗鍙版樉绀烘暟鎹俊鎭�
 					uni.hideLoading()
 					// 鐧诲綍杩囨湡
-					if (data.code === 401) {
+					if (data.code !== 200) {
+						setTimeout(() => {
+							uni.showToast({
+								title: data.message,
+								icon: "none",
+								duration: 2000
+							})
+						})
+					}
+					if (data.code === 5112) {
 						uni.navigateTo({
 							url: '/pages/staffLogin/login'
-						});
-					}
-					if (data.code !== 200) {
-						uni.showToast({
-							title: data.message,
-							icon: "none",
-							duration: 2000
 						})
 					}
 					resolve(data)
@@ -46,7 +48,7 @@
 					uni.showToast({
 						title: '璇锋眰鎺ュ彛澶辫触'
 					})
-					
+
 					// 杩斿洖閿欒娑堟伅
 					reject(err)
 					uni.hideLoading()

--
Gitblit v1.9.3