From a8c03746e6bd8ac1d46dc48c1b10bceff543664f Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 10 十二月 2024 20:16:12 +0800
Subject: [PATCH] ll

---
 admin/src/components/business/operaVisitsWindow.vue |    3 
 h5/pages/staff/meetingCalendar.vue                  |    4 
 screen/src/assets/images/task/bg@2x.png             |    0 
 h5/pages/staff/vehicle/sendACar.vue                 |    4 
 h5_meeting/utils/config.js                          |    4 
 screen/src/views/SecurityControl.vue                |   41 
 h5/store/index.js                                   |    6 
 h5/pages/index/index.vue                            |   18 
 admin/src/views/vehicle/cars.vue                    |    6 
 h5/api/staff.js                                     |    6 
 h5/static/ic_cancel.png                             |    0 
 h5/pages/staff/vehicle/apply.vue                    |    9 
 h5_meeting/manifest.json                            |    4 
 admin/src/components/common/RichEditor.vue          |    2 
 h5/pages/staffLogin/login.vue                       |   35 
 h5/utils/config.js                                  |    6 
 h5/pages/driver/index.vue                           |  758 +++++++++++----------
 h5/pages/login/login.vue                            |   82 +-
 h5/static/staff/shenfen_bg@2x.png                   |    0 
 h5/pages/staff/index.vue                            |  583 ++++++++--------
 screen/src/assets/images/SecurityControl/bg@2x.png  |    0 
 screen/src/router/index.js                          |    5 
 h5/pages/userinfo/userinfo.vue                      |    3 
 screen/src/views/TaskEfficiency.vue                 |   12 
 h5/pages/staff/task/index.vue                       |    1 
 h5/pages/staff/snapshot.vue                         |   90 +-
 h5/static/play.png                                  |    0 
 h5/App.vue                                          |    9 
 h5/pages/staff/vehicle/sendACarDetail.vue           |  233 +++---
 h5/pages/staff/task/vDangetAppr.vue                 |  105 ++
 screen/src/assets/images/task/title@2x.png          |    0 
 31 files changed, 1,089 insertions(+), 940 deletions(-)

diff --git a/admin/src/components/business/operaVisitsWindow.vue b/admin/src/components/business/operaVisitsWindow.vue
index 28d9454..b5bdf07 100644
--- a/admin/src/components/business/operaVisitsWindow.vue
+++ b/admin/src/components/business/operaVisitsWindow.vue
@@ -148,7 +148,8 @@
       VisitReason: [],
       memberList: [],
       uploadData: {
-        folder: 'member'
+        folder: 'member',
+        isFace: 0
       },
       startPickerOptions: {
         disabledDate (time) {
diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index d144c66..81249a5 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -1,7 +1,7 @@
 <template>
   <div :style="styleEditor">
     <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" />
-    <Editor style="max-height: 300px;min-height: 100px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
+    <Editor style="min-height: 80px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
             @onCreated="onCreated" @onChange="onChange" />
   </div>
 </template>
diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue
index cddc4f7..efd2bd9 100644
--- a/admin/src/views/vehicle/cars.vue
+++ b/admin/src/views/vehicle/cars.vue
@@ -168,9 +168,9 @@
     this.getCate()
   },
   methods: {
-    handleSelectionChange(e) {
-      this.searchForm.ids = e.map(i => i.id).join(',')
-    },
+    // handleSelectionChange(e) {
+    //   this.searchForm.ids = e.map(i => i.id).join(',')
+    // },
     changeSel(e) {
       console.log(e)
       if (e && e.length == 1) {
diff --git a/h5/App.vue b/h5/App.vue
index c567d31..04a031d 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -1,8 +1,13 @@
 <script>
-import { wxAuthorize, refreshToken } from '@/api'
+import { wxAuthorize, refreshToken, app_url } from '@/api'
 export default {
   onLaunch: function () {
-    
+    window.addEventListener("popstate", (event) => {
+			const path = this.$route.fullPath
+    	if(path == '/pages/login/login' || path == '/'){
+				window.location.href = app_url
+			}
+    })
   },
   onShow: function () {
     console.log('App Show')
diff --git a/h5/api/staff.js b/h5/api/staff.js
index ea64d24..f00cf4a 100644
--- a/h5/api/staff.js
+++ b/h5/api/staff.js
@@ -14,6 +14,12 @@
     method: 'get'
   })
 }
+export const saveHkUserOpenid = () => {
+  return http({
+    url: 'visitsAdmin/cloudService/business/hksync/saveHkUserOpenid',
+    method: 'post'
+  })
+}
 // 鍒锋柊token
 export const refreshToken = () => {
   return http({
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index e79d32a..56e65be 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -1,358 +1,402 @@
-<template>
-	<view class="main_app">
-		<view class="title_wrap">
-			<view class="name">{{ driverInfo.realname }}锛屾杩庣櫥褰曪綖</view>
-			<view class="btn" @click="loginOut">閫�鍑虹櫥褰�</view>
-		</view>
-		<!--  -->
-		<view class="banner_wrap">
-			<view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
-			<view class="h2">鐗╂祦杞︿笓鍖�</view>
-			<image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
-		</view>
-		<!--  -->
-		<view v-if="taskList && taskList.length > 0" class="task_list">
-			<swiper circular class="task_swiper">
-				<swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)">
-					<view class="item">
-						<view class="head">
-							<view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum}}</view>
-							<view class="status">
-								<view class="text" v-if="item.status == 0">璇风‘璁や换鍔�</view>
-								<view class="text" v-if="item.status == 1">璇蜂簬{{item.arriveDate.slice(5,11)}}鐜板満绛惧埌</view>
-								<view class="text" v-if="item.status == 2">鍓嶆柟鎺掗槦锛歿{item.lineUpNum}}杈�</view>
-								<view class="text" v-if="item.status == 3">璇峰叆鍥繘鍏ョ瓑寰呭尯</view>
-								<view class="text" v-if="item.status == 4">璇峰叆鍥仠闈爗{item.platformName}}浣滀笟</view>
-								<view class="text" v-if="item.status == 5">{{item.platformName}}浣滀笟涓�</view>
-								<view class="text" v-if="item.status == 6">浣滀笟宸插畬鎴�</view>
-								<view class="text" v-if="item.status == 7">杞Щ涓�</view>
-								<view class="text red" v-if="item.status == 8">寮傚父鎸傝捣</view>
-								<view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view>
-								<view class="time" v-if="item.finishTimeStr && item.status == 5">棰勮瀹屾垚鏃堕棿锛歿{ item.finishTimeStr }}</view>
-							</view>
-						</view>
-						<view class="content">
-							<view class="info">
-								<view class="plate">
-									<image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image>
-									<text>{{ item.carCodeFront }}</text>
-								</view>
-								<view class="plate">
-									<image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image>
-									<text>{{ item.totalNum }}涓囨敮</text>
-								</view>
-							</view>
-							<view class="sub">
-								<view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view>
-								<view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">{{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view>
-								<view v-if="item.status == 0" class="sub_btn">纭浠诲姟</view>
-								<view v-if="item.status == 1" class="sub_btn">绔嬪嵆绛惧埌</view>
-								<view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">鏌ョ湅鎺掗槦</view>
-							</view>
-						</view>
-					</view>
-				</swiper-item>
-			</swiper>
-		</view>
-		<!--  -->
-		<view class="title_wrap"><view class="name">涓氬姟鍔炵悊</view></view>
-		<view class="container1">
-			<view class="left">
-				<view class="img_wrap img1" @click="$jump('/pages/driver/notice')">
-					<image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
-					<view class="h1">鍏ュ洯椤荤煡</view>
-					<view class="h2">RESERVATION</view>
-				</view>
-				<view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide?str=bookingTips')">
-					<image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image>
-					<view class="h1">棰勭害鎸囧崡</view>
-					<view class="h2">APPOINTMENT GUIDE</view>
-				</view>
-			</view>
-			<view class="right">
-				<view class="img_wrap img2" @click="$jump('/pages/driver/reservedRecord')">
-					<image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image>
-					<view class="h1">棰勭害璁板綍</view>
-					<view class="h2">APPOINTMENT RECORD</view>
-				</view>
-				<view class="img_wrap img2" @click="$jump('/pages/driver/queueUp')">
-					<image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image>
-					<view class="h1">鏈堝彴鎺掗槦鎯呭喌</view>
-					<view class="h2">HIDDEN DANGER</view>
-				</view>
-				<view class="img_wrap img2" @click="$jump('/pages/driver/reservedGuide?str=reservationMap')">
-					<image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image>
-					<view class="h1">鍥尯瀵艰鍥�</view>
-					<view class="h2">GUIDE MAP</view>
-				</view>
-			</view>
-		</view>
-		<!--  -->
-		<view class="copyright">
-			<image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" />
-			<text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
-		</view>
-	</view>
-</template>
-
-<script>
-import { logoutPost, driverHomeData } from '@/api';
-export default {
-	data() {
-		return {
-			taskList: [],
-			driverInfo: uni.getStorageSync('driverInfo'),
-			
-		};
-	},
-	onShow() {
-		this.initData();
-	},
-	methods: {
-		initData() {
-			driverHomeData().then(res => {
-				if (res.code == 200) {
-					uni.setStorageSync('driverGuide', {
-						bookingTips: res.data.bookingTips,
-						reservationMap: res.data.reservationMap,
-						signDistance: res.data.signDistance
-					});
-					this.taskList = res.data.platformJobList || []
-				}
-			});
-		},
+<template>
+	<view class="main_app">
+		<view class="title_wrap">
+			<view class="name">{{ driverInfo.realname }}锛屾杩庣櫥褰曪綖</view>
+			<view class="btn" @click="loginOut">閫�鍑虹櫥褰�</view>
+		</view>
+		<!--  -->
+		<view class="banner_wrap">
+			<view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
+			<view class="h2">鐗╂祦杞︿笓鍖�</view>
+			<image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
+		</view>
+		<!--  -->
+		<view v-if="taskList && taskList.length > 0" class="task_list">
+			<swiper circular class="task_swiper">
+				<swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)">
+					<view class="item">
+						<view class="head">
+							<view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum }}</view>
+							<view class="status">
+								<view class="text" v-if="item.status == 0">璇风‘璁や换鍔�</view>
+								<view class="text" v-if="item.status == 1">璇蜂簬{{ item.arriveDate.slice(5, 11) }}鐜板満绛惧埌</view>
+								<view class="text" v-if="item.status == 2">鍓嶆柟鎺掗槦锛歿{ item.lineUpNum }}杈�</view>
+								<view class="text" v-if="item.status == 3">璇峰叆鍥繘鍏ョ瓑寰呭尯</view>
+								<view class="text" v-if="item.status == 4">璇峰叆鍥仠闈爗{ item.platformName }}浣滀笟</view>
+								<view class="text" v-if="item.status == 5">{{ item.platformName }}浣滀笟涓�</view>
+								<view class="text" v-if="item.status == 6">浣滀笟宸插畬鎴�</view>
+								<view class="text" v-if="item.status == 7">杞Щ涓�</view>
+								<view class="text red" v-if="item.status == 8">寮傚父鎸傝捣</view>
+								<view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view>
+								<view class="time" v-if="item.finishTimeStr && item.status == 5">棰勮瀹屾垚鏃堕棿锛歿{ item.finishTimeStr }}</view>
+							</view>
+						</view>
+						<view class="content">
+							<view class="info">
+								<view class="plate">
+									<image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image>
+									<text>{{ item.carCodeFront }}</text>
+								</view>
+								<view class="plate">
+									<image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image>
+									<text>{{ item.totalNum }}涓囨敮</text>
+								</view>
+							</view>
+							<view class="sub">
+								<view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view>
+								<view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">
+									{{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view>
+								<view v-if="item.status == 0" class="sub_btn">纭浠诲姟</view>
+								<view v-if="item.status == 1" class="sub_btn">绔嬪嵆绛惧埌</view>
+								<view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">鏌ョ湅鎺掗槦</view>
+							</view>
+						</view>
+					</view>
+				</swiper-item>
+			</swiper>
+		</view>
+		<!--  -->
+		<view class="title_wrap">
+			<view class="name">涓氬姟鍔炵悊</view>
+		</view>
+		<view class="container1">
+			<view class="left">
+				<view class="img_wrap img1" @click="jump('/pages/driver/notice')">
+					<image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
+					<view class="h1">鍏ュ洯椤荤煡</view>
+					<view class="h2">RESERVATION</view>
+				</view>
+				<view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=bookingTips')">
+					<image src="@/static/driver/wuliu_ic_zhinan@2x.png" class="img"></image>
+					<view class="h1">棰勭害鎸囧崡</view>
+					<view class="h2">APPOINTMENT GUIDE</view>
+				</view>
+			</view>
+			<view class="right">
+				<view class="img_wrap img2" @click="jump('/pages/driver/reservedRecord')">
+					<image src="@/static/driver/wuliu_ic_yuyuejilu@2x.png" class="img"></image>
+					<view class="h1">棰勭害璁板綍</view>
+					<view class="h2">APPOINTMENT RECORD</view>
+				</view>
+				<view class="img_wrap img2" @click="jump('/pages/driver/queueUp')">
+					<image src="@/static/driver/wuliu_ic_paidui@2x.png" class="img"></image>
+					<view class="h1">鏈堝彴鎺掗槦鎯呭喌</view>
+					<view class="h2">HIDDEN DANGER</view>
+				</view>
+				<view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=reservationMap')">
+					<image src="@/static/driver/wuliu_ic_daolan@2x.png" class="img"></image>
+					<view class="h1">鍥尯瀵艰鍥�</view>
+					<view class="h2">GUIDE MAP</view>
+				</view>
+			</view>
+		</view>
+		<!--  -->
+		<view class="copyright">
+			<image src="@/static/logo_s@2x.png" class="mr6" mode="widthFix" />
+			<text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
+		</view>
+	</view>
+</template>
+
+<script>
+import {
+	logoutPost,
+	driverHomeData,
+	app_url
+} from '@/api'
+export default {
+	data() {
+		return {
+			taskList: [],
+			driverInfo: uni.getStorageSync('driverInfo'),
+
+		}
+	},
+	onShow() {
+		this.initData()
+	},
+
+	methods: {
+		jump(path) {
+			this.$jump(path)
+		},
+		initData() {
+			driverHomeData().then(res => {
+				if (res.code == 200) {
+					uni.setStorageSync('driverGuide', {
+						bookingTips: res.data.bookingTips,
+						reservationMap: res.data.reservationMap,
+						signDistance: res.data.signDistance
+					})
+					this.taskList = res.data.platformJobList || []
+				}
+			})
+		},
 		loginOut() {
-			this.$store.commit('empty');
-			logoutPost();
-			uni.redirectTo({
-				url: '/pages/driver/login'
-			});
-		},
-		taskClick(item) {
-			const status = item.status
-			console.log(item);
-			if(status == 0){
-				uni.navigateTo({url: '/pages/driver/taskConfirm?id=' + item.id});
-			}
-			// else if(status == 2){
-			// 	uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
-			// }
-			else{
-				uni.navigateTo({url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`});
-			}
-		},
-		handleTask(item) {
-			uni.navigateTo({
-				url: '/pages/driver/taskConfirm?id=' + item.id
-			});
-		},
-		handleSign(item) {
-			uni.navigateTo({
-				url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
-			});
-		},
-		handleQueue(item) {
-			uni.navigateTo({
-				url:'/pages/driver/queueUp?jobId=' + item.id	
-			})
-		},
-	}
-};
-</script>
-
-<style lang="scss">
-.title_wrap {
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	margin-bottom: 24rpx;
-	padding-top: 10rpx;
-	.name {
-		font-weight: 600;
-		font-size: 34rpx;
-		color: #222222;
-	}
-	.btn {
-		width: 144rpx;
-		height: 56rpx;
-		border-radius: 36rpx;
-		border: 1rpx solid $uni-color-primary;
-		font-size: 26rpx;
-		color: $uni-color-primary;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-}
-.main_app {
-	padding-top: 12rpx;
-}
-.banner_wrap {
-	padding: 54rpx 44rpx;
-	color: #fff;
-	position: relative;
-	width: 688rpx;
-	height: 270rpx;
-	margin-bottom: 28rpx;
-	.h1 {
-		font-weight: bold;
-		line-height: 66rpx;
-		font-size: 44rpx;
-		margin-bottom: 14rpx;
-	}
-	.h2 {
-		font-weight: 600;
-		font-size: 28rpx;
-		width: 192rpx;
-		color: $uni-color-primary;
-		height: 48rpx;
-		line-height: 48rpx;
-		text-align: center;
-		background: #ffffff;
-		box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
-		border-radius: 24rpx;
-	}
-	.banner {
-		position: absolute;
-		top: 0;
-		left: 0;
-		width: 100%;
-		z-index: -1;
-	}
-}
-.container1 {
-	display: flex;
-	flex-wrap: wrap;
-	view {
-		width: 336rpx;
-	}
-	.left {
-		margin-right: 18rpx;
-	}
-	.img_wrap {
-		position: relative;
-		padding: 24rpx 0rpx 0 28rpx;
-		border-radius: 8rpx;
-		overflow: hidden;
-		.h1 {
-			font-weight: 600;
-			font-size: 32rpx;
-			color: #222222;
-			line-height: 48rpx;
-			margin-bottom: 4rpx;
-		}
-		.h2 {
-			font-size: 22rpx;
-			color: #7b9da1;
-			line-height: 34rpx;
-		}
-		.img {
-			width: 100%;
-			height: 100%;
-			position: absolute;
-			top: 0;
-			left: 0;
-			z-index: -1;
-		}
-	}
-	.img1 {
-		width: 336rpx;
-		height: 296rpx;
-		margin-bottom: 16rpx;
-	}
-	.img2 {
-		width: 336rpx;
-		height: 140rpx;
-		margin-bottom: 16rpx;
-	}
-}
-.task_list {
-	margin-bottom: 0rpx;
-	.task_swiper {
-		padding: 12rpx 10rpx;
-		height: 340rpx;
-		width: 730rpx;
-		margin-left: -20rpx;
-		box-sizing: border-box;
-	}
-	.item {
-		background: #ffffff;
-		box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
-		border-radius: 16rpx;
-		height: 280rpx;
-		width: 98%;
-		margin-left: 1%;
-		.head {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
-			padding: 0rpx 30rpx;
-			height: 92rpx;
-			.name {
-				font-weight: 600;
-				font-size: 36rpx;
-				color: #222222;
-			}
-			.status {
-				color: $uni-color-primary;
-				font-weight: 600;
-				text-align: right;
-				.time {
-					font-size: 24rpx;
-					font-weight: 360;
-				}
-			}
-		}
-		.content {
-			height: 180rpx;
-			.info {
-				display: flex;
-				padding: 24rpx 30rpx;
-				.plate {
-					flex: 1;
-					display: flex;
-					align-items: center;
-					.icon {
-						width: 26rpx;
-						height: 26rpx;
-						margin-right: 10rpx;
-					}
-				}
-			}
-			.sub {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				height: 68rpx;
-				padding: 0 30rpx 0;
-				.time {
-					font-size: 26rpx;
-					color: #999999;
-				}
-				.sub_btn {
-					height: 68rpx;
-					line-height: 68rpx;
-					padding: 0 34rpx;
-					color: #ffffff;
-					background: $uni-color-primary;
-					box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4);
-					border-radius: 40rpx;
-				}
-			}
-		}
-	}
-}
-.copyright {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	margin-top: 44rpx;
-	font-size: 24rpx;
-	color: #666666;
-	image {
-		width: 40rpx;
-		height: 40rpx;
-	}
-}
-</style>
+			logoutPost()
+			this.$store.commit('empty')
+			window.location.href = app_url
+		},
+		taskClick(item) {
+			const status = item.status
+			if (status == 0) {
+				uni.navigateTo({
+					url: '/pages/driver/taskConfirm?id=' + item.id
+				})
+			}
+			// else if(status == 2){
+			// 	uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
+			// }
+			else {
+				uni.navigateTo({
+					url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+				})
+			}
+		},
+		handleTask(item) {
+			uni.navigateTo({
+				url: '/pages/driver/taskConfirm?id=' + item.id
+			})
+		},
+		handleSign(item) {
+			uni.navigateTo({
+				url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+			})
+		},
+		handleQueue(item) {
+			uni.navigateTo({
+				url: '/pages/driver/queueUp?jobId=' + item.id
+			})
+		},
+	}
+}
+</script>
+
+<style lang="scss">
+.title_wrap {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	margin-bottom: 24rpx;
+	padding-top: 10rpx;
+
+	.name {
+		font-weight: 600;
+		font-size: 34rpx;
+		color: #222222;
+	}
+
+	.btn {
+		width: 144rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 1rpx solid $uni-color-primary;
+		font-size: 26rpx;
+		color: $uni-color-primary;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+}
+
+.main_app {
+	padding-top: 12rpx;
+}
+
+.banner_wrap {
+	padding: 54rpx 44rpx;
+	color: #fff;
+	position: relative;
+	width: 688rpx;
+	height: 270rpx;
+	margin-bottom: 28rpx;
+
+	.h1 {
+		font-weight: bold;
+		line-height: 66rpx;
+		font-size: 44rpx;
+		margin-bottom: 14rpx;
+	}
+
+	.h2 {
+		font-weight: 600;
+		font-size: 28rpx;
+		width: 192rpx;
+		color: $uni-color-primary;
+		height: 48rpx;
+		line-height: 48rpx;
+		text-align: center;
+		background: #ffffff;
+		box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(39, 155, 170, 0.31);
+		border-radius: 24rpx;
+	}
+
+	.banner {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		z-index: -1;
+	}
+}
+
+.container1 {
+	display: flex;
+	flex-wrap: wrap;
+
+	view {
+		width: 336rpx;
+	}
+
+	.left {
+		margin-right: 18rpx;
+	}
+
+	.img_wrap {
+		position: relative;
+		padding: 24rpx 0rpx 0 28rpx;
+		border-radius: 8rpx;
+		overflow: hidden;
+
+		.h1 {
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #222222;
+			line-height: 48rpx;
+			margin-bottom: 4rpx;
+		}
+
+		.h2 {
+			font-size: 22rpx;
+			color: #7b9da1;
+			line-height: 34rpx;
+		}
+
+		.img {
+			width: 100%;
+			height: 100%;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: -1;
+		}
+	}
+
+	.img1 {
+		width: 336rpx;
+		height: 296rpx;
+		margin-bottom: 16rpx;
+	}
+
+	.img2 {
+		width: 336rpx;
+		height: 140rpx;
+		margin-bottom: 16rpx;
+	}
+}
+
+.task_list {
+	margin-bottom: 0rpx;
+
+	.task_swiper {
+		padding: 12rpx 10rpx;
+		height: 340rpx;
+		width: 730rpx;
+		margin-left: -20rpx;
+		box-sizing: border-box;
+	}
+
+	.item {
+		background: #ffffff;
+		box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
+		border-radius: 16rpx;
+		height: 280rpx;
+		width: 98%;
+		margin-left: 1%;
+
+		.head {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			background: linear-gradient(270deg, #fefeff 0%, #e1f7fe 100%);
+			padding: 0rpx 30rpx;
+			height: 92rpx;
+
+			.name {
+				font-weight: 600;
+				font-size: 36rpx;
+				color: #222222;
+			}
+
+			.status {
+				color: $uni-color-primary;
+				font-weight: 600;
+				text-align: right;
+
+				.time {
+					font-size: 24rpx;
+					font-weight: 360;
+				}
+			}
+		}
+
+		.content {
+			height: 180rpx;
+
+			.info {
+				display: flex;
+				padding: 24rpx 30rpx;
+
+				.plate {
+					flex: 1;
+					display: flex;
+					align-items: center;
+
+					.icon {
+						width: 26rpx;
+						height: 26rpx;
+						margin-right: 10rpx;
+					}
+				}
+			}
+
+			.sub {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				height: 68rpx;
+				padding: 0 30rpx 0;
+
+				.time {
+					font-size: 26rpx;
+					color: #999999;
+				}
+
+				.sub_btn {
+					height: 68rpx;
+					line-height: 68rpx;
+					padding: 0 34rpx;
+					color: #ffffff;
+					background: $uni-color-primary;
+					box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4);
+					border-radius: 40rpx;
+				}
+			}
+		}
+	}
+}
+
+.copyright {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	margin-top: 44rpx;
+	font-size: 24rpx;
+	color: #666666;
+
+	image {
+		width: 40rpx;
+		height: 40rpx;
+	}
+}
+</style>
\ No newline at end of file
diff --git a/h5/pages/index/index.vue b/h5/pages/index/index.vue
index 91628d7..9237ee9 100644
--- a/h5/pages/index/index.vue
+++ b/h5/pages/index/index.vue
@@ -29,7 +29,7 @@
 </template>
 
 <script>
-import { wxAuthorize } from '@/api'
+import { wxAuthorize, app_url } from '@/api'
 export default {
 
   data() {
@@ -37,14 +37,8 @@
 
     }
   },
-  onBackPress(options) {
-    uni.redirectTo({
-      url: '/pages/login/login'
-    })
-    return true
-  },
   onLoad() {
-		
+
   },
   methods: {
     jump(type) {
@@ -107,6 +101,7 @@
     display: flex;
     flex-direction: column;
     position: relative;
+
     .banner_bg {
       position: absolute;
       top: 0;
@@ -114,6 +109,7 @@
       width: 100%;
       z-index: -1;
     }
+
     .h2 {
       font-size: 28rpx;
       font-family: SourceHanSansSC, SourceHanSansSC;
@@ -121,6 +117,7 @@
       color: #ffffff;
       margin-top: 14rpx;
     }
+
     text {
       &:first-child {
         font-size: 44rpx;
@@ -131,12 +128,14 @@
       }
     }
   }
+
   .main_title {
     font-weight: 600;
     font-size: 32rpx;
     color: #222222;
     margin: 40rpx 0 32rpx;
   }
+
   .box_list {
     width: 100%;
     display: flex;
@@ -148,11 +147,13 @@
     .box_list_item {
       width: 100%;
       margin-bottom: 20rpx;
+
       image {
         width: 100%;
       }
     }
   }
+
   .copyright {
     display: flex;
     align-items: center;
@@ -160,6 +161,7 @@
     margin-top: 84rpx;
     font-size: 24rpx;
     color: #666666;
+
     image {
       width: 40rpx;
       height: 40rpx;
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index c20258d..15766ad 100644
--- a/h5/pages/login/login.vue
+++ b/h5/pages/login/login.vue
@@ -1,6 +1,6 @@
 <template>
 	<view class="main_app">
-		<image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" />
+		<image class="login_bg" src="@/static/staff/shenfen_bg@2x.png" mode="widthFix" />
 		<view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
 		<view class="placeholder6 place">璇烽�夋嫨鎮ㄧ殑韬唤</view>
 		<view class="item" @click="userAuth(1)">
@@ -32,7 +32,7 @@
 
 <script>
 	import {
-		wxAuthorizea,
+		wxAuthorizea,
 		getUserInfo
 	} from '@/api'
 	import {
@@ -41,18 +41,17 @@
 	export default {
 		data() {
 			return {
-				code: '091RVIkl2SZXDe4WySll2pAL8D1RVIkb'
+				code: ''
 			}
 		},
-		onLoad() {
+		onShow() {
 			var that = this
-			let url = window.location.href
+			let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
 			let code = ''
-			if (url.indexOf('code=') !== -1) {
+			if (window.location.href.indexOf('code=') !== -1 || this.code) {
 
-			} else {
-				return
-				let url = window.location.href
+			} else {
+				// let url = window.location.href
 				const appID = 'wx173e6caf5abc718a'
 				let uri = encodeURIComponent(url)
 				let authURL =
@@ -98,13 +97,13 @@
 				let url = window.location.href
 				let code = ''
 				if (url.indexOf('code=') !== -1 || this.code) {
-					// const query = url.split('?')
-					// for (const q of query) {
-					// 	if (q.indexOf('code=') !== -1) {
-					// 		let statusIndex = q.indexOf('&state') - 1
-					// 		code = q.substring(q.indexOf('code=') + 5, statusIndex)
-					// 	}
-					// }
+					const query = url.split('?')
+					for (const q of query) {
+						if (q.indexOf('code=') !== -1) {
+							let statusIndex = q.indexOf('&state')
+							code = q.substring(q.indexOf('code=') + 5, statusIndex)
+						}
+					}
 					wxAuthorizea({
 						code: code || this.code,
 						source: source
@@ -113,35 +112,32 @@
 							that.$store.commit('setOpenId', res.data.openid)
 							if (res.data.member) {
 								that.$store.commit('setMember', res.data.member)
-							}
-							if (res.data.token) {
-								that.$store.commit('setToken', res.data.token)
-								getUserInfo().then(ress => {
-								  that.$store.commit('setUserInfo', ress.data)
-								})
 							}
 							let flag = res.data.member && res.data.member.id
-							setTimeout(() => {
-								if (source == 0) {
-									this.driverLogin(flag)
-								} else if (source == 2) {
-									this.staffLogin(flag)
-								} else {
-									this.jump('/pages/index/index')
-								}
+							setTimeout(() => {
+								if (source == 0) {
+									if (res.data.token) {
+										that.$store.commit('setToken', res.data.token)
+										getUserInfo().then(ress => {
+											that.$store.commit('setDriverInfo', ress.data)
+										})
+									}
+									this.driverLogin(flag)
+								} else if (source == 2) {
+									if (res.data.token) {
+										that.$store.commit('setToken', res.data.token)
+										getUserInfo().then(ress => {
+											that.$store.commit('setUserInfo', ress.data)
+										})
+									}
+									this.staffLogin(flag)
+								} else {
+									this.jump('/pages/index/index')
+								}
 							}, 300)
 						}
 					})
 				}
-				// }
-				// 鍒锋柊token
-				// setTimeout(() => {
-				// 	refreshToken().then(res => {
-				// 		if (res.code && res.code === 200) {
-				// 			this.$store.commit('setToken', res.data)
-				// 		}
-				// 	})
-				// }, 3000)
 			}
 		}
 	}
@@ -149,9 +145,9 @@
 
 <style lang="scss">
 	.main_app {
-		width: 100vw;
-		box-sizing: border-box;
-		overflow: hidden;
+		width: 100vw;
+		box-sizing: border-box;
+		overflow: hidden;
 		margin: 0;
 		height: 100vh;
 		padding-top: 80rpx;
@@ -161,7 +157,7 @@
 
 		.login_bg {
 			position: absolute;
-			top: 0;
+			top: 0;
 			left: 0;
 			width: 100%;
 			z-index: -1;
diff --git a/h5/pages/staff/index.vue b/h5/pages/staff/index.vue
index 15b25ae..369467b 100644
--- a/h5/pages/staff/index.vue
+++ b/h5/pages/staff/index.vue
@@ -1,291 +1,292 @@
-<template>
-  <view class="main_app">
-    <view class="title_wrap">
-      <view class="name" v-if="userInfo.realname"
-        >{{ userInfo.realname || "" }}锛屾杩庣櫥褰曪綖</view
-      >
-      <view class="name" v-else>璇峰厛鐧诲綍</view>
-      <view class="btn" @click="loginOut">{{
-        userInfo.realname ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�"
-      }}</view>
-    </view>
-    <view class="banner_wrap">
-      <view class="h1">瀹夋嘲鐗╂祦</view>
-      <view class="h2">瀹夊叏閲嶄簬娉板北 鏈嶅姟杩芥眰鍗撹秺</view>
-      <image
-        class="banner"
-        src="../../static/banner.jpg"
-        mode="widthFix"
-      ></image>
-    </view>
-    <view v-if="list1.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"><view class="name">涓氬姟鍔炵悊</view></view>
-    <view class="container1">
-			<view class="list">
-				<block v-for="item in list1" :key="item.name">
-					<view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)">
-						<image :src="item.img" class="icon" />
-						<view class="name">{{item.name}}</view>
-					</view>
-				</block>
-			</view>
-<!--      <view class="left">
-        <view class="img_wrap img1" @click="jump('/pages/staff/visitorReport')">
-          <image src="@/static/staff/ic_fangkebaobei.png" class="img"></image>
-          <view class="h1">璁垮鎶ュ</view>
-          <view class="h2">VISITOR REPORTING</view>
-        </view>
-        <view class="img_wrap img2" @click="jump('/pages/staff/meetingSub')">
-          <image src="@/static/staff/ic_yuyuehuiyishi.png" class="img"></image>
-          <view class="h1">棰勭害浼氳瀹�</view>
-          <view class="h2">BOOK A MEETING ROOM</view>
-        </view>
-      </view>
-      <view class="right">
-        <view class="img_wrap img2" @click="jump('/pages/staff/snapshot')">
-          <image src="@/static/staff/ic_yinhuansuipai.png" class="img"></image>
-          <view class="h1">闅愭偅闅忔墜鎷�</view>
-          <view class="h2">HIDDEN DANGER</view>
-        </view>
-        <view class="img_wrap img2" @click="jump('/pages/staff/vehicle/index')">
-          <image
-            src="@/static/staff/ic_yongcheshenqing.png"
-            class="img"
-          ></image>
-          <view class="h1">鐢ㄨ溅鐢宠</view>
-          <view class="h2">VEHICLE APPLICATION</view>
-        </view>
-        <view
-          class="img_wrap img2"
-          @click="jump('/pages/changePassword/changePassword')"
-        >
-          <image src="@/static/staff/ic_xiugaimima.png" class="img"></image>
-          <view class="h1">淇敼瀵嗙爜</view>
-          <view class="h2">CHANGE PASSWORD</view>
-        </view>
-      </view> -->
-    </view>
-    <!--  -->
-    <view v-if="list2.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap"><view class="name">涓氬姟鏌ヨ</view></view>
-    <view class="container2">
-			<view class="list">
-				<block v-for="item in list2" :key="item.name">
-					<view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)">
-						<image :src="item.img" class="icon" />
-						<view class="name">{{item.name}}</view>
-						<view v-if="item.name == '浠诲姟涓績' && taskInfo" class="task_num">{{ taskInfo }}</view>
-					</view>
-				</block>
-			</view>
-			
-<!--      <view class="img_wrap" @click="jump('/pages/staff/task/index')">
-        <image class="img" src="@/static/staff/ic_renwuzhongxin.png"></image>
-        <view class="h1">浠诲姟涓績</view>
-        <view class="h2">TASK CENTER</view>
-        <view class="task_num">{{
-         taskInfo
-        }}</view>
-      </view>
-      <view class="img_wrap" @click="jump('/pages/staff/meetingCalendar')">
-        <image class="img" src="@/static/staff/ic_wodehuiyi.png"></image>
-        <view class="h1">鎴戠殑浼氳鏃ュ巻</view>
-        <view class="h2">MY MEETING CALENDAR</view>
-      </view>
-      <view class="img_wrap" @click="jump('/pages/staff/vehicle/sendACar')">
-        <image class="img" src="@/static/staff/ic_paichejilu.png"></image>
-        <view class="h1">娲捐溅璁板綍</view>
-        <view class="h2">VEHICLE DISPATCH</view>
-      </view>
-      <view class="img_wrap" @click="jump('/pages/staff/meetingManager')">
-        <image class="img" src="@/static/staff/ic_huiyishiguanli.png"></image>
-        <view class="h1">浼氳瀹ょ鐞�</view>
-        <view class="h2">MANAGE MEETING ROOMS</view>
-      </view> -->
-    </view>
-    <view class="copyright">
-      <image src="@/static/logo_s@2x.png" mode="widthFix" />
-      <text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
-    </view>
-  </view>
-</template>
-
-<script>
-import { logoutPost, stagingHead, wxAuthorize, refreshToken } from '@/api'
-export default {
-  data() {
-    return {
-      userInfo: uni.getStorageSync('userInfo') || {permissions: []},
-      taskInfo: 0,
-			list1: [
-				{ name: '璁垮鎶ュ', url: '/pages/staff/visitorReport', img: require('@/static/home/ic_fangkebaobei@3x.png'),auth: 'weixin:menu:visitcar' },
-				{ name: '闅愭偅闅忔墜鎷�', url: '/pages/staff/snapshot', img: require('@/static/home/ic_yinhuansuishoupai@3x.png'),auth: 'weixin:menu:hiddendanger' },
-				{ name: '鐢ㄨ溅鐢宠', url: '/pages/staff/vehicle/index', img: require('@/static/home/ic_yongcheshenqing@3x.png'),auth: 'weixin:menu:usecar' },
-				{ name: '棰勭害浼氳瀹�', url: '/pages/staff/meetingSub', img: require('@/static/home/ic_yuyuehuiyishi@3x.png'),auth: 'weixin:menu:meeting' },
-				{ name: '淇敼瀵嗙爜', url: '/pages/changePassword/changePassword', img: require('@/static/home/ic_xiugaimima@3x.png'),auth: 'weixin:menu:password' },
-				{ name: '鎴戠殑鑰冨嫟', url: '/pages/staff/signin', img: require('@/static/home/ic_kaoqin@3x.png'),auth: 'weixin:menu:attendance' },
-			],
-			list2: [
-				{ name: '浠诲姟涓績', url: '/pages/staff/task/index', img: require('@/static/home/ic_renwuzhongxin@3x.png'),auth: 'weixin:menu:taskcenter' },
-				{ name: '鎴戠殑浼氳鏃ュ巻', url: '/pages/staff/meetingCalendar', img: require('@/static/home/ic_wodehuiyi@3x.png'),auth: 'weixin:menu:meetingcalendar' },
-				{ name: '娲捐溅璁板綍', url: '/pages/staff/vehicle/sendACar', img: require('@/static/home/ic_paichejilu@3x.png'),auth: 'weixin:menu:usecarrecord' },
-				{ name: '浼氳瀹ょ鐞�', url: '/pages/staff/meetingManager', img: require('@/static/home/ic_huiyishiguanli@3x.png'),auth: 'weixin:menu:meetingmanage' }
-			],
-			
-    }
-  },
-  onLoad() {
-    
-    this.getTaskInfo()
-    // 鍒锋柊token
-    // setTimeout(() => {
-    //   refreshToken().then(res => {
-    //     if (res.code && res.code === 200) {
-    //       this.$store.commit('setToken', res.data)
-    //     }
-    //   })
-    // }, 3000)
-  },
-  mounted() {
-    this.$eventBus.$on('taskBack', () => {
-      console.log('----');
-      this.getTaskInfo()
-    })
-		console.log('aaa', this.userInfo.permissions.indexOf('system:user:create'));
-  },
-  methods: {
-    jump(path) {
-      uni.navigateTo({
-        url: path
-      })
-    },
-		checkAuth(str) {
-			const permissions = this.userInfo.permissions
-			return permissions.indexOf(str) > -1
-		},
-    loginOut() {
-      this.$store.commit('empty')
-      logoutPost()
-      uni.redirectTo({
-        url: '/pages/staffLogin/login'
-      })
-    },
-    getTaskInfo() {
-      stagingHead({
-        isDetail: '1'
-      }).then(res => {
-        this.taskInfo = res.data.noticeWaitNum + res.data.noticeCopyNum
-				if(this.taskInfo && this.taskInfo > 99){
-					this.taskInfo = 99
-				}
-      })
-    },
-  }
-};
-</script>
-
-<style lang="scss" scoped>
-.title_wrap {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  margin-bottom: 24rpx;
-	padding-top: 10rpx;
-  .name {
-    font-weight: 600;
-    font-size: 34rpx;
-    color: #222222;
-  }
-  .btn {
-    width: 144rpx;
-    height: 56rpx;
-    border-radius: 36rpx;
-    border: 1rpx solid $uni-color-primary;
-    font-size: 26rpx;
-    color: $uni-color-primary;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-}
-.main_app {
-  padding-top: 12rpx;
-}
-.list{
-	display: flex;
-	width: 100%;
-	flex-wrap: wrap;
-	.item{
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-		width: 25%;
-		margin-bottom: 40rpx;
-		font-size: 26rpx;
-		position: relative;
-		image{
-			width: 88rpx;
-			height: 88rpx;
-			margin-bottom: 20rpx;
-		}
-		.task_num{
-			position: absolute;
-			top: -10rpx;
-			right: 28rpx;
-			font-size: 24rpx;
-			width: 36rpx;
-			height: 36rpx;
-			background-color: red;
-			color: #fff;
-			border-radius: 50%;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-	}
-}
-.banner_wrap {
-  padding: 54rpx 44rpx;
-  color: #fff;
-  position: relative;
-  width: 688rpx;
-  height: 270rpx;
-  margin-bottom: 40rpx;
-  .h1 {
-    font-weight: bold;
-    line-height: 66rpx;
-    font-size: 44rpx;
-    margin-bottom: 14rpx;
-  }
-  .banner {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    z-index: -1;
-  }
-}
-.container1 {
-  display: flex;
-  flex-wrap: wrap;
-	padding: 10rpx 0 10rpx;
-}
-.container2 {
-  display: flex;
-  flex-wrap: wrap;
-}
-.copyright {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  font-size: 24rpx;
-  color: #666666;
-	position: fixed;
-	width: 100%;
-	left: 0;
-	bottom: 48rpx;
-  image {
-    width: 40rpx;
-    height: 40rpx;
-  }
-}
-</style>
+<template>
+	<view class="main_app">
+		<view class="title_wrap">
+			<view class="name" v-if="userInfo.realname">{{ userInfo.realname || "" }}锛屾杩庣櫥褰曪綖</view>
+			<view class="name" v-else>璇峰厛鐧诲綍</view>
+			<view class="btn" @click="loginOut">{{
+				userInfo.realname ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�"
+			}}</view>
+		</view>
+		<view class="banner_wrap">
+			<view class="h1">瀹夋嘲鐗╂祦</view>
+			<view class="h2">瀹夊叏閲嶄簬娉板北 鏈嶅姟杩芥眰鍗撹秺</view>
+			<image class="banner" src="../../static/banner.jpg" mode="widthFix"></image>
+		</view>
+		<view v-if="list1.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap">
+			<view class="name">涓氬姟鍔炵悊</view>
+		</view>
+		<view class="container1">
+			<view class="list">
+				<block v-for="item in list1" :key="item.name">
+					<view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)">
+						<image :src="item.img" class="icon" />
+						<view class="name">{{ item.name }}</view>
+					</view>
+				</block>
+			</view>
+		</view>
+		<!--  -->
+		<view v-if="list2.filter(i => checkAuth(i.auth)).length > 0" class="title_wrap">
+			<view class="name">涓氬姟鏌ヨ</view>
+		</view>
+		<view class="container2">
+			<view class="list">
+				<block v-for="item in list2" :key="item.name">
+					<view v-if="checkAuth(item.auth)" class="item" @click="jump(item.url)">
+						<image :src="item.img" class="icon" />
+						<view class="name">{{ item.name }}</view>
+						<view v-if="item.name == '浠诲姟涓績' && taskInfo" class="task_num">{{ taskInfo }}</view>
+					</view>
+				</block>
+			</view>
+		</view>
+		<view class="copyright">
+			<image src="@/static/logo_s@2x.png" mode="widthFix" />
+			<text>瀹夊窘瀹夋嘲鐗╂祦鏈夐檺璐d换鍏徃鐗堟潈鎵�鏈�</text>
+		</view>
+	</view>
+</template>
+
+<script>
+import {
+	logoutPost,
+	stagingHead,
+	wxAuthorize,
+	refreshToken,
+	app_url
+} from '@/api'
+export default {
+	data() {
+		return {
+			userInfo: uni.getStorageSync('userInfo') || {
+				permissions: []
+			},
+			taskInfo: 0,
+			list1: [{
+				name: '璁垮鎶ュ',
+				url: '/pages/staff/visitorReport',
+				img: require('@/static/home/ic_fangkebaobei@3x.png'),
+				auth: 'weixin:menu:visitcar'
+			},
+			{
+				name: '闅愭偅闅忔墜鎷�',
+				url: '/pages/staff/snapshot',
+				img: require('@/static/home/ic_yinhuansuishoupai@3x.png'),
+				auth: 'weixin:menu:hiddendanger'
+			},
+			{
+				name: '鐢ㄨ溅鐢宠',
+				url: '/pages/staff/vehicle/index',
+				img: require('@/static/home/ic_yongcheshenqing@3x.png'),
+				auth: 'weixin:menu:usecar'
+			},
+			{
+				name: '棰勭害浼氳瀹�',
+				url: '/pages/staff/meetingSub',
+				img: require('@/static/home/ic_yuyuehuiyishi@3x.png'),
+				auth: 'weixin:menu:meeting'
+			},
+			{
+				name: '淇敼瀵嗙爜',
+				url: '/pages/changePassword/changePassword',
+				img: require('@/static/home/ic_xiugaimima@3x.png'),
+				auth: 'weixin:menu:password'
+			},
+			{
+				name: '鎴戠殑鑰冨嫟',
+				url: '/pages/staff/signin',
+				img: require('@/static/home/ic_kaoqin@3x.png'),
+				auth: 'weixin:menu:attendance'
+			},
+			],
+			list2: [{
+				name: '浠诲姟涓績',
+				url: '/pages/staff/task/index',
+				img: require('@/static/home/ic_renwuzhongxin@3x.png'),
+				auth: 'weixin:menu:taskcenter'
+			},
+			{
+				name: '鎴戠殑浼氳鏃ュ巻',
+				url: '/pages/staff/meetingCalendar',
+				img: require('@/static/home/ic_wodehuiyi@3x.png'),
+				auth: 'weixin:menu:meetingcalendar'
+			},
+			{
+				name: '娲捐溅璁板綍',
+				url: '/pages/staff/vehicle/sendACar',
+				img: require('@/static/home/ic_paichejilu@3x.png'),
+				auth: 'weixin:menu:usecarrecord'
+			},
+			{
+				name: '浼氳瀹ょ鐞�',
+				url: '/pages/staff/meetingManager',
+				img: require('@/static/home/ic_huiyishiguanli@3x.png'),
+				auth: 'weixin:menu:meetingmanage'
+			}
+			],
+
+		}
+	},
+	mounted() {
+	},
+
+	onShow() {
+		setTimeout(() => {
+			this.getTaskInfo()
+		}, 300)
+	},
+	methods: {
+		jump(path) {
+			if (path == '/pages/staff/signin') {
+				window.open('https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index')
+			} else {
+				uni.navigateTo({
+					url: path
+				})
+			}
+
+		},
+		checkAuth(str) {
+			const permissions = this.userInfo.permissions
+			return permissions.indexOf(str) > -1
+		},
+		loginOut() {
+			logoutPost()
+			this.$store.commit('empty')
+			window.location.href = app_url
+		},
+		getTaskInfo() {
+			stagingHead({
+				isDetail: '1'
+			}).then(res => {
+				this.taskInfo = res.data.noticeWaitNum + res.data.noticeCopyNum
+				if (this.taskInfo && this.taskInfo > 99) {
+					this.taskInfo = 99
+				}
+			})
+		},
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.title_wrap {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	margin-bottom: 24rpx;
+	padding-top: 10rpx;
+
+	.name {
+		font-weight: 600;
+		font-size: 34rpx;
+		color: #222222;
+	}
+
+	.btn {
+		width: 144rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 1rpx solid $uni-color-primary;
+		font-size: 26rpx;
+		color: $uni-color-primary;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+}
+
+.main_app {
+	padding-top: 12rpx;
+}
+
+.list {
+	display: flex;
+	width: 100%;
+	flex-wrap: wrap;
+
+	.item {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		width: 25%;
+		margin-bottom: 40rpx;
+		font-size: 26rpx;
+		position: relative;
+
+		image {
+			width: 88rpx;
+			height: 88rpx;
+			margin-bottom: 20rpx;
+		}
+
+		.task_num {
+			position: absolute;
+			top: -10rpx;
+			right: 28rpx;
+			font-size: 24rpx;
+			width: 36rpx;
+			height: 36rpx;
+			background-color: red;
+			color: #fff;
+			border-radius: 50%;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+		}
+	}
+}
+
+.banner_wrap {
+	padding: 54rpx 44rpx;
+	color: #fff;
+	position: relative;
+	width: 688rpx;
+	height: 270rpx;
+	margin-bottom: 40rpx;
+
+	.h1 {
+		font-weight: bold;
+		line-height: 66rpx;
+		font-size: 44rpx;
+		margin-bottom: 14rpx;
+	}
+
+	.banner {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		z-index: -1;
+	}
+}
+
+.container1 {
+	display: flex;
+	flex-wrap: wrap;
+	padding: 10rpx 0 10rpx;
+}
+
+.container2 {
+	display: flex;
+	flex-wrap: wrap;
+}
+
+.copyright {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	font-size: 24rpx;
+	color: #666666;
+	position: fixed;
+	width: 100%;
+	left: 0;
+	bottom: 48rpx;
+
+	image {
+		width: 40rpx;
+		height: 40rpx;
+	}
+}
+</style>
\ No newline at end of file
diff --git a/h5/pages/staff/meetingCalendar.vue b/h5/pages/staff/meetingCalendar.vue
index 46d1239..dab5dd0 100644
--- a/h5/pages/staff/meetingCalendar.vue
+++ b/h5/pages/staff/meetingCalendar.vue
@@ -242,11 +242,11 @@
 		console.log(total);
 		console.log(recordList);
     if (activeTab == '0') {
-			// if(total <= myMeetingList.length) return this.showToast('鏆傛棤鏇村鏁版嵁')
+			if(total <= myMeetingList.length) return this.showToast('鏆傛棤鏇村鏁版嵁')
       this.myPage = this.myPage + 1
       this.getDayMeeting()
     } else {
-			// if(total <= recordList.length) return this.showToast('鏆傛棤鏇村鏁版嵁')
+			if(total <= recordList.length) return this.showToast('鏆傛棤鏇村鏁版嵁')
       this.recordPage = this.recordPage + 1
       this.getRecordList()
     }
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index 1224a70..a7050b6 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -1,17 +1,17 @@
 <template>
 	<view class="main_app">
 		<view class="main_wrap">
-			<!--  -->
-			<view class="line">
-				<view class="label">
-					<text>*</text>
-					<text>璐d换閮ㄩ棬</text>
-				</view>
-				<view class="value" @click="isShowCompany = true">
-					<text class="mr6"
-						:style="{ color: param.companyName ? '#000000' : '#999999' }">{{ param.companyName ? param.companyName : "璇烽�夋嫨" }}</text>
-					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-				</view>
+			<!--  -->
+			<view class="line">
+				<view class="label">
+					<text>*</text>
+					<text>璐d换閮ㄩ棬</text>
+				</view>
+				<view class="value" @click="isShowCompany = true">
+					<text class="mr6"
+						:style="{ color: param.companyName ? '#000000' : '#999999' }">{{ param.companyName ? param.companyName : "璇烽�夋嫨" }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
 			</view>
 			<view class="line">
 				<view class="label">
@@ -105,8 +105,8 @@
 				<view class="footer_btn" @click="onSubmit">鎻愪氦</view>
 			</view>
 		</view>
-		<!--  -->
-		<u-picker keyName="name" :show="isShowCompany" closeOnClickOverlay :columns="deptList" @confirm="seletedCompany"
+		<!--  -->
+		<u-picker keyName="name" :show="isShowCompany" closeOnClickOverlay :columns="deptList" @confirm="seletedCompany"
 			@close="isShowCompany = false" @cancel="isShowCompany = false"></u-picker>
 		<!-- 鍖哄煙 -->
 		<u-picker keyName="name" :show="isShowArea" closeOnClickOverlay :columns="areaOptions" @confirm="seletedArea"
@@ -130,7 +130,7 @@
 	import {
 		uploadUrl,
 		DangerCreate,
-		DangerConfigType,
+		DangerConfigType,
 		deptListPost
 	} from '@/api'
 	import dayjs from 'dayjs'
@@ -140,13 +140,13 @@
 				param: {},
 				submitFileList: [],
 
-				isShowCompany: false,
+				isShowCompany: false,
 				isShowArea: false,
 				isShowType: false,
 				isShowTime: false,
 				showUpload: false,
 
-				deptList: [],
+				deptList: [],
 				areaOptions: [],
 				areaType: [],
 			}
@@ -171,10 +171,10 @@
 				const {
 					param,
 					submitFileList
-				} = this
-				if (!param.companyName) return uni.showToast({
-					title: '璇烽�夋嫨璐d换閮ㄩ棬',
-					icon: 'none'
+				} = this
+				if (!param.companyName) return uni.showToast({
+					title: '璇烽�夋嫨璐d换閮ㄩ棬',
+					icon: 'none'
 				})
 				if (!param.areaName) return uni.showToast({
 					title: '璇烽�夋嫨闅愭偅鍖哄煙',
@@ -205,20 +205,20 @@
 						this.$jump('/pages/staff/snapshotResult')
 					}
 				})
-			},
-			seletedCompany(e) {
-				const item = e.value[0]
-				this.$set(this.param, 'companyId', item.id)
-				this.$set(this.param, 'companyName', item.name)
-				this.$set(this.param, 'areaId', '')
-				this.$set(this.param, 'areaName', '')
-				DangerConfigType({
-					type: '0',
-					companyId: item.id
-				}).then(res => {
-					this.areaOptions = [res.data]
-				})
-				this.isShowCompany = false
+			},
+			seletedCompany(e) {
+				const item = e.value[0]
+				this.$set(this.param, 'companyId', item.id)
+				this.$set(this.param, 'companyName', item.name)
+				this.$set(this.param, 'areaId', '')
+				this.$set(this.param, 'areaName', '')
+				DangerConfigType({
+					type: '0',
+					companyId: item.id
+				}).then(res => {
+					this.areaOptions = [res.data]
+				})
+				this.isShowCompany = false
 			},
 			seletedArea(e) {
 				const item = e.value[0]
@@ -250,9 +250,9 @@
 				this.$set(this.param, 'submitTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'))
 				this.isShowTime = false
 			},
-			initConfig() {
-				deptListPost({queryHiddenDanger: 1}).then(res => {
-					this.deptList = [res.data]
+			initConfig() {
+				deptListPost({queryHiddenDanger: 1}).then(res => {
+					this.deptList = [res.data]
 				})
 				DangerConfigType({
 					type: '1'
@@ -281,7 +281,7 @@
 				this.showUpload = false
 				let token = uni.getStorageSync('token') || ''
 				uni.chooseImage({
-					count: 4,
+					count: 9,
 					success: (chooseImageRes) => {
 						uni.showLoading({
 							title: '涓婁紶涓�',
@@ -425,9 +425,9 @@
 
 			.adduser_list_item_ipt1_upload {
 				margin-top: 24rpx;
-				width: 120rpx;
-				height: 120rpx;
-				margin-right: 24rpx;
+				width: 156rpx;
+				height: 156rpx;
+				margin-right: 20rpx;
 				border: 2rpx solid #e5e5e5;
 				background: #f7f7f7;
 				color: #666666;
@@ -437,7 +437,9 @@
 				align-items: center;
 				justify-content: center;
 				position: relative;
-
+				&:nth-of-type(4n){
+					margin-right: 0;
+				}
 				.close {
 					position: absolute;
 					right: -20rpx;
@@ -452,7 +454,7 @@
 
 				video {
 					width: 100%;
-					max-height: 120rpx;
+					max-height: 156rpx;
 				}
 			}
 		}
@@ -470,7 +472,7 @@
 
 	.footer {
 		width: 100%;
-		padding: 0 30rpx;
+		padding: 0 30rpx;
 		margin-top: 80rpx;
 		padding-bottom: env(safe-area-inset-bottom);
 		box-sizing: border-box;
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index 56ed2e0..00a8fb0 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -535,6 +535,7 @@
 				  font-size: 26rpx;
 				  font-weight: 400;
 					color: #999999;
+					width: 120rpx;
 				}
         .loading {
           color: $uni-color-primary;
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 53f969b..5dd7e69 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -9,10 +9,14 @@
 				class="status_img"></image>
 			<view>{{ info.content }}</view>
 			<view class="file_list">
-				<view class="img_wrap" v-for="item in info.submitFileList" :key="item.id">
+				<view class="img_wrap" v-for="item,i in info.submitFileList" :key="item.id">
 					<image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
 						class="img" />
-					<video v-if="item.type == 1" :src="item.fileurlFull" class="video" :controls="false" />
+					<view v-if="item.type == 1"  @click="videoClick(item, i)" class="video_wrap">
+						<video :id="'id' + i" :show-center-play-btn="false"
+							:src="item.fileurlFull" muted class="video" :controls="false" />
+						<image src="@/static/play.png" class="play" mode=""></image>
+					</view>
 				</view>
 			</view>
 			<view class="text_wrap">
@@ -257,6 +261,11 @@
 
 		<u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
 			@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
+		<!--  -->
+
+		<view v-if="videoPlay" class="video_app">
+			<video controls id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video>
+		</view>
 	</view>
 </template>
 
@@ -327,7 +336,11 @@
 					page: 1,
 					capacity: 50
 				},
-				memberList: []
+				memberList: [],
+
+				videoPlay: false,
+				videoContext: null,
+				videoUrl: ''
 			};
 		},
 		onLoad(op) {
@@ -340,6 +353,23 @@
 				uni.previewImage({
 					urls: [url]
 				});
+			},
+			screenChange(e) {
+				let fullScreen = e.detail.fullScreen; // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
+				if (!fullScreen) {
+					//閫�鍑哄叏灞�
+					this.videoPlay = false; // 闅愯棌鎾斁鐩掑瓙
+				}
+			},
+			videoClick(item, i) {
+				this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶
+				console.log(item)
+				this.videoUrl = item.fileurlFull;
+				this.videoContext.requestFullScreen({
+					direction: 90
+				});
+				this.videoContext.play();
+				this.videoPlay = true;
 			},
 			handleOpen() {
 				this.isShowHandle = true;
@@ -482,7 +512,7 @@
 				this.showUploadBe = false;
 				let token = uni.getStorageSync('token') || '';
 				uni.chooseImage({
-					count: 4,
+					count: 9,
 					success: chooseImageRes => {
 						uni.showLoading({
 							title: '涓婁紶涓�',
@@ -573,7 +603,7 @@
 				this.showUploadAf = false;
 				let token = uni.getStorageSync('token') || '';
 				uni.chooseImage({
-					count: 4,
+					count: 9,
 					success: chooseImageRes => {
 						uni.showLoading({
 							title: '涓婁紶涓�',
@@ -661,7 +691,7 @@
 				this.showUpload = false;
 				let token = uni.getStorageSync('token') || '';
 				uni.chooseImage({
-					count: 4,
+					count: 9,
 					success: chooseImageRes => {
 						uni.showLoading({
 							title: '涓婁紶涓�',
@@ -897,9 +927,9 @@
 		}
 
 		.adduser_list_item_ipt1_upload {
-			width: 120rpx;
-			height: 120rpx;
-			margin-right: 24rpx;
+			width: 156rpx;
+			height: 156rpx;
+			margin-right: 20rpx;
 			border: 2rpx solid #e5e5e5;
 			background: #f7f7f7;
 			color: #666666;
@@ -909,6 +939,10 @@
 			align-items: center;
 			justify-content: center;
 			position: relative;
+
+			&:nth-of-type(4n) {
+				margin-right: 0;
+			}
 
 			.close {
 				position: absolute;
@@ -924,7 +958,7 @@
 
 			video {
 				width: 100%;
-				max-height: 120rpx;
+				max-height: 156rpx;
 			}
 		}
 
@@ -999,25 +1033,44 @@
 			.file_list {
 				display: flex;
 				margin-bottom: 20rpx;
-				overflow-x: auto;
+				flex-wrap: wrap;
 
 				.img_wrap {
 					margin-top: 24rpx;
-					min-width: 160rpx;
-					height: 160rpx;
+					width: 156rpx;
+					height: 156rpx;
 					border: 2rpx solid #e5e5e5;
 					background: #f7f7f7;
 					color: #666666;
 					font-size: 22rpx;
-					display: flex;
+					display: flex;
+					border-radius: 4rpx;
 					flex-direction: column;
 					align-items: center;
 					justify-content: center;
 					position: relative;
-					margin-right: 16rpx;
+					margin-right: 20rpx;
 					flex-shrink: 0;
-				}
 
+					&:nth-of-type(4n) {
+						margin-right: 0;
+					}
+				}
+				.video_wrap{
+					position: relative;
+					border: 1px solid;
+					width: 156rpx;
+					height: 156rpx;
+					border-radius: 4rpx;
+					.play{
+						width: 60rpx;
+						height: 60rpx;
+						position: absolute;
+						top: 50%;
+						left: 50%;
+						transform: translate(-50%, -50%);
+					}
+				}
 				.img {
 					width: 100%;
 					max-height: 100%;
@@ -1036,9 +1089,13 @@
 				margin-top: 20rpx;
 
 				.line {
-					margin-bottom: 12rpx;
+					margin-bottom: 18rpx;
 					display: flex;
 					font-size: 24rpx;
+
+					&:nth-last-child(1) {
+						margin-bottom: 0;
+					}
 
 					.label {
 						color: #999999;
@@ -1055,7 +1112,7 @@
 				line-height: 60rpx;
 				padding: 0 32rpx;
 				border-radius: 0rpx 0rpx 0rpx 30rpx;
-				background-color: #e9edff;
+				background: rgba(39, 155, 170, 0.12);
 				color: $uni-color-primary;
 			}
 
@@ -1169,10 +1226,10 @@
 			}
 
 			.adduser_list_item_ipt1_upload {
-				margin-top: 24rpx;
-				width: 120rpx;
-				height: 120rpx;
-				margin-right: 24rpx;
+				margin-top: 20rpx;
+				width: 156rpx;
+				height: 156rpx;
+				margin-right: 20rpx;
 				border: 2rpx solid #e5e5e5;
 				background: #f7f7f7;
 				color: #666666;
@@ -1183,6 +1240,10 @@
 				justify-content: center;
 				position: relative;
 
+				&:nth-of-type(4n) {
+					margin-right: 0;
+				}
+
 				.close {
 					position: absolute;
 					right: -20rpx;
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index 2007cfa..23ad5ae 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -134,8 +134,8 @@
       <view class="line"
         >4銆佸叕鍙稿�熺粰鐢宠浜虹敤杞︼紝鐢宠鍊熻溅浜轰负绗竴璐d换浜猴紝涓嶅厑璁歌浆鍊熺粰鍏朵粬浜轰娇鐢紝鑻ヨ鍊熺粰浠栦汉浣跨敤銆傝矗浠讳汉瑕佹壙鎷呭叏閮ㄨ矗浠汇��</view
       >
+			<view class="sub_btn" @click="handleSub">鎻愪氦</view>
     </view>
-    <view class="sub_btn" @click="handleSub">鎻愪氦</view>
     <!--  -->
     <!-- :minDate="new Date(param.startTime).getTime()"
       :maxDate="new Date(param.endTime).getTime()" -->
@@ -291,9 +291,10 @@
   }
 }
 .sub_btn {
-  position: fixed;
-  bottom: 84rpx;
-  left: 30rpx;
+  // position: fixed;
+  // bottom: 84rpx;
+  // left: 30rpx;
+	margin-top: 60rpx;
   width: 690rpx;
   height: 88rpx;
   line-height: 88rpx;
diff --git a/h5/pages/staff/vehicle/sendACar.vue b/h5/pages/staff/vehicle/sendACar.vue
index 177ca60..53e9809 100644
--- a/h5/pages/staff/vehicle/sendACar.vue
+++ b/h5/pages/staff/vehicle/sendACar.vue
@@ -90,7 +90,7 @@
       carsList: [],
       param: {
         queryDate: dayjs().format('YYYY-MM-DD'),
-        memberId: uni.getStorageSync('userInfo').memberId
+        // memberId: uni.getStorageSync('userInfo').memberId
       },
       minDate: '',
       pagination: {
@@ -133,7 +133,7 @@
     },
     itemDetail(item) {
       uni.navigateTo({
-        url: "/pages/staff/vehicle/sendACarDetail?id=" + item.id
+        url: `/pages/staff/vehicle/sendACarDetail?id=${item.id}`
       })
     },
     seletedCar(e) {
diff --git a/h5/pages/staff/vehicle/sendACarDetail.vue b/h5/pages/staff/vehicle/sendACarDetail.vue
index cdd69e7..6e3e649 100644
--- a/h5/pages/staff/vehicle/sendACarDetail.vue
+++ b/h5/pages/staff/vehicle/sendACarDetail.vue
@@ -1,20 +1,16 @@
 <template>
 	<view class="main_app">
-		<view class="status_wrap">
-		  <view class="name">{{ info.createMemberName }}鎻愪氦鐨勭敤杞︾敵璇�</view>
-		  <view
-		    class="desc"
-		    :class="{
-		      gray: info.status == '2' || info.status == '3' || info.status == '4',
-		    }"
-		    >{{ infoStatus }}</view
-		  >
-		  <view v-if="info.status == '0' || info.status == '1'" class="status">{{
-		    statusMap[info.status]
-		  }}</view>
-		  <image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image>
-		  <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix"
-		    class="status_img"></image>
+		<view class="status_wrap">
+			<view class="name">{{ info.createMemberName || info.creatorName || info.memberName}}鎻愪氦鐨勭敤杞︾敵璇�</view>
+			<view class="desc gray">{{ info.companyName }}</view>
+			<view class="desc" style="margin-top: 16rpx;" v-if="info.status == 0">澶勭悊涓�</view>
+			<view v-if="info.status == '0' || info.status == '1'" class="status">{{
+		    statusMap[info.status]
+		  }}</view>
+			<image v-if="info.status == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image>
+			<image v-if="info.status == '4'" src="@/static/ic_cancel.png" mode="widthFix" class="status_img"></image>
+			<image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix"
+				class="status_img"></image>
 		</view>
 		<!--  -->
 		<view class="emyty"></view>
@@ -45,52 +41,52 @@
 				<view class="label">杞﹁締淇℃伅</view>
 				<view class="value">{{ info.carCode }}</view>
 			</view>
-			<view class="item">
+			<view class="item" v-if="info.driverName">
 				<view class="label">鍙告満淇℃伅</view>
-				<view class="value">{{ info.driverName }} {{ info.driverPhone }}</view>
+				<view class="value">{{ info.driverName }} {{ info.driverPhone || '' }}</view>
 			</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" :key="item.id">
-					<view class="separate"></view>
-					<view class="avatar">
-						<image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
-						<image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
-							src="@/static/staff/ic_shenpiren@2x.png" />
-						<image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
-						<span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
-						<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.checkDate }}</view>
-						</view>
-						<view class="name_wrap">
-							<text>{{ item.memberName
-			          }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1'  }"
-									v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
-						</view>
-						<view v-if="item.checkInfo" class="remark">{{
-			        item.checkInfo
-			      }}</view>
-						<!-- 鎶勯�佷汉 -->
-						<view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
-							<view class="child" v-for="child in item.approveList" :key="child.id">
-								<image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
-								<view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
-								<view>{{ child.memberName }}</view>
-							</view>
-						</view>
-					</view>
-				</view>
+			<view class="list" v-if="
+			    info.approveDateVO != null && info.approveDateVO.approveList != null
+			  ">
+				<view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
+					<view class="separate"></view>
+					<view class="avatar">
+						<image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
+						<image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
+							src="@/static/staff/ic_shenpiren@2x.png" />
+						<image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
+						<span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
+						<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.checkDate }}</view>
+						</view>
+						<view class="name_wrap">
+							<text>{{ item.memberName
+			          }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1'  }"
+									v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
+						</view>
+						<view v-if="item.checkInfo" class="remark">{{
+			        item.checkInfo
+			      }}</view>
+						<!-- 鎶勯�佷汉 -->
+						<view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
+							<view class="child" v-for="child in item.approveList" :key="child.id">
+								<image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
+								<view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
+								<view>{{ child.memberName }}</view>
+							</view>
+						</view>
+					</view>
+				</view>
 			</view>
 		</view>
 		<view class="emyty"></view>
@@ -103,13 +99,14 @@
 				<view class="btn" @click="handleSub(3)">鎷掔粷</view>
 				<view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
 			</template>
-		</view>
-		<template v-else>
-			<view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0" class="main_footer"  @click="isShowBack = true">
-				<view class="agree btn">鎾ゅ洖鐢ㄨ溅</view>
-			</view>
-		</template>
-		
+		</view>
+		<template v-else>
+			<view v-if="(info.approveDateVO.canBeApproved == 1 || userInfo.memberId == info.memberId) && info.status == 0"
+				class="main_footer" @click="isShowBack = true">
+				<view class="agree btn">鎾ゅ洖鐢ㄨ溅</view>
+			</view>
+		</template>
+
 
 		<!-- 鎾ら攢 -->
 		<u-popup :show="isShowBack" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowBack = false">
@@ -127,7 +124,8 @@
 			<view class="appr_modal">
 				<view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view>
 				<view v-if="param.status == 2" class="line" @click="openModal">
-					<text :class="{placeholder9: info.approveDateVO.driverParam == 0}" v-if="param.driverName">{{ param.driverName }}</text>
+					<text :class="{placeholder9: info.approveDateVO.driverParam == 0}"
+						v-if="param.driverName">{{ param.driverName }}</text>
 					<text v-else class="placeholder9">娲捐溅鍙告満</text>
 					<u-icon v-if="info.approveDateVO.driverParam == 1" class="ml12" name="arrow-right" color="#999999" />
 				</view>
@@ -159,7 +157,7 @@
 				showApprModal: false,
 				isShowBack: false,
 				backParam: {},
-				isShowDrive: false,
+				isShowDrive: false,
 				userInfo: uni.getStorageSync('userInfo') || {},
 				id: '',
 				appr: '',
@@ -207,11 +205,11 @@
 						})
 					}
 				})
-			},
-			openModal() {
-				if(this.info.approveDateVO.driverParam == 0) return
-				this.isShowDrive = true
-				
+			},
+			openModal() {
+				if (this.info.approveDateVO.driverParam == 0) return
+				this.isShowDrive = true
+
 			},
 			onSubBack() {
 				carUseBookBack({
@@ -265,20 +263,20 @@
 					this.getDriveList()
 				} else {
 
-				}
-				if(this.info.driverId && this.info.driverName){
-						this.$set(this.param, 'driverId', this.info.driverId)
-						this.$set(this.param, 'driverName', this.info.driverName)
+				}
+				if (this.info.driverId && this.info.driverName) {
+					this.$set(this.param, 'driverId', this.info.driverId)
+					this.$set(this.param, 'driverName', this.info.driverName)
 				}
 				this.showApprModal = true
 			},
 			getDriveList() {
-				driveListPost({}).then(res => {
+				driveListPost({}).then(res => {
 					const temp = res.data || []
-					this.driveList = [res.data]
-					if(this.param.driverId){
-						const item = temp.find(i=>i.id == this.param.driverId)
-						this.$set(this.param, 'driverName', item.name)
+					this.driveList = [res.data]
+					if (this.param.driverId) {
+						const item = temp.find(i => i.id == this.param.driverId)
+						this.$set(this.param, 'driverName', item.name)
 					}
 				})
 			},
@@ -505,45 +503,46 @@
 			}
 		}
 
- .status_wrap {
-    position: relative;
-    padding: 30rpx 0;
-
-    .name {
-      font-weight: 600;
-      font-size: 32rpx;
-      margin-bottom: 20rpx;
-      color: #222222;
-    }
-
-    .desc {
-      font-size: 26rpx;
-      color: #ed4545;
-    }
-
-    .gray {
-      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;
-    }
-
-    .status_img {
-      position: absolute;
-      right: 0rpx;
-      top: 20rpx;
-      width: 120rpx;
-    }
-  }
+		.status_wrap {
+			position: relative;
+			padding: 30rpx 0;
+
+			.name {
+				font-weight: 600;
+				font-size: 32rpx;
+				margin-bottom: 20rpx;
+				color: #222222;
+			}
+
+			.desc {
+				font-size: 26rpx;
+				color: #ed4545;
+			}
+
+			.gray {
+				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;
+			}
+
+			.status_img {
+				position: absolute;
+				right: 0rpx;
+				top: 20rpx;
+				width: 120rpx;
+			}
+		}
+
 		.main_footer {
 			padding-bottom: 64rpx;
 			display: flex;
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index 13adeca..b20464b 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -1,5 +1,5 @@
 <template>
-  <view class="login">
+  <view class="login" :style="{height: windowHeight  + 'px'}">
     <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" />
     <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" />
     <view class="login_title">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
@@ -30,7 +30,7 @@
       >
     </view>
 
-    <view class="deal_wrap" v-show="!showKeyboard">
+    <view class="deal_wrap">
       <image
         @click="changeFalg"
         v-if="ProtocolFlag"
@@ -44,6 +44,7 @@
         src="@/static/meeting/icon/ic_choose@2x.png"
         mode="widthFix"
         class="checked"
+				
       ></image>
       <text>鐧诲綍鍗冲悓鎰�</text>
       <text class="deal" @click="showContent">銆婂畨娉扮墿娴佺敤鎴峰崗璁��</text>
@@ -52,19 +53,22 @@
     <u-popup
       :show="isShowProtocol"
       @close="isShowProtocol = false"
+			closeable
       :round="8"
       mode="center"
     >
       <view class="modal">
         <!-- <view v-html="htmlText"></view> -->
-				<mp-html :content="htmlText" />
+				<view class="content">
+					<mp-html :content="htmlText" />
+				</view>
       </view>
     </u-popup>
   </view>
 </template>
 
 <script>
-import { loginPost, loginCaptcha, getUserInfo, getSystemDictData } from '@/api'
+import { loginPost, loginCaptcha, getUserInfo, getSystemDictData, saveHkUserOpenid } from '@/api'
 import { mapState, mapMutations } from 'vuex'
 export default {
   name: 'login',
@@ -81,12 +85,16 @@
       isShowProtocol: false,
       ProtocolFlag: false,
       captcha: {},
-      htmlText: ''
+      htmlText: '',
+			windowHeight: ''
     }
   },
 
   onLoad() {
     this.initCaptcha()
+		const result = uni.getWindowInfo()
+		this.windowHeight = result.windowHeight
+		console.log('result', result);
   },
   onBackPress(options) {
     uni.redirectTo({
@@ -148,6 +156,7 @@
               url: "/pages/staff/index"
             })
           })
+					saveHkUserOpenid({})
         }
       })
     }
@@ -163,6 +172,7 @@
   box-sizing: border-box;
   align-items: center;
   flex-direction: column;
+	position: relative;
   background: linear-gradient(
     180deg,
     rgba(39, 155, 170, 0.2) 0%,
@@ -247,7 +257,7 @@
     }
   }
   .deal_wrap {
-    position: fixed;
+    position: absolute;
     width: 100%;
     left: 0;
     text-align: center;
@@ -263,13 +273,20 @@
       margin-right: 12rpx;
     }
   }
+	.rela_wrap{
+		position: relative;
+		margin-top: 360rpx;
+	}
 }
 .modal {
   width: 690rpx;
-  min-height: 820rpx;
-  max-height: 720px;
+  max-height: 80vh;
   border-radius: 24rpx;
-  padding: 32rpx;
+  padding: 30rpx 30rpx;
 	overflow: auto;
+	// .content{
+	// 	height: 100%;
+	// 	overflow: auto;
+	// }
 }
 </style>
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index d6ed245..6d579f0 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -207,7 +207,8 @@
 					filePath: file.tempFilePath,
 					name: 'file',
 					formData: {
-						folderCode: 'MEMBER_IMG'
+						folderCode: 'MEMBER_IMG',
+						isFace: 0
 					},
 					success: (uploadFileRes) => {
 						let res = JSON.parse(uploadFileRes.data)
diff --git a/h5/static/ic_cancel.png b/h5/static/ic_cancel.png
new file mode 100644
index 0000000..ce81f0b
--- /dev/null
+++ b/h5/static/ic_cancel.png
Binary files differ
diff --git a/h5/static/play.png b/h5/static/play.png
new file mode 100644
index 0000000..1b4b225
--- /dev/null
+++ b/h5/static/play.png
Binary files differ
diff --git a/h5/static/staff/shenfen_bg@2x.png b/h5/static/staff/shenfen_bg@2x.png
new file mode 100644
index 0000000..32adb01
--- /dev/null
+++ b/h5/static/staff/shenfen_bg@2x.png
Binary files differ
diff --git a/h5/store/index.js b/h5/store/index.js
index 94fb56e..9e5b043 100644
--- a/h5/store/index.js
+++ b/h5/store/index.js
@@ -20,7 +20,6 @@
 
 	state: {
 		openId: openId || '',
-		// openId: openId || '123123',
 		member: member || null,
 		statusbarHeight: statusbarHeight || '0',
 		navHeight: navHeight || '0',
@@ -80,12 +79,11 @@
 		},
 		// 娓呯┖鐧诲綍缂撳瓨
 		empty(state) {
+			uni.clearStorageSync()
 			state.token = ''
+			state.openId = ''
 			state.userInfo = {}
 			state.driverInfo = {}
-			uni.removeStorageSync('userInfo')
-			uni.removeStorageSync('driverInfo')
-			uni.removeStorageSync('token')
 		}
 	},
 	actions: {
diff --git a/h5/utils/config.js b/h5/utils/config.js
index f0713f7..53f0fdd 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,8 +1,10 @@
 
-export const baseUrl = 'zhyq_interface/'
+// export const baseUrl = 'zhyq_interface/'
 // export const baseUrl = 'http://192.168.0.173/gateway_interface/'
 // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/'
-// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' 
+export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' 
+
+export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
 
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
diff --git a/h5_meeting/manifest.json b/h5_meeting/manifest.json
index 8c272f0..eeba487 100644
--- a/h5_meeting/manifest.json
+++ b/h5_meeting/manifest.json
@@ -96,9 +96,9 @@
             "disableHostCheck" : true,
             "proxy" : {
                 "/gateway_interface" : {
-                    // "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     // "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-                    "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    // "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     "changeOrigin" : true, // 鍏佽璺ㄥ煙 
                     "pathRewrite" : {
                         "^/gateway_interface" : ""
diff --git a/h5_meeting/utils/config.js b/h5_meeting/utils/config.js
index 1d8ad8b..11dc26e 100644
--- a/h5_meeting/utils/config.js
+++ b/h5_meeting/utils/config.js
@@ -1,6 +1,6 @@
 
-// export const baseUrl = 'gateway_interface/'/
-export const baseUrl = 'http://192.168.5.13/gateway_interface/'
+export const baseUrl = 'gateway_interface/'
+// export const baseUrl = 'http://192.168.5.13/gateway_interface/'
 // export const baseUrl = 'http://192.168.0.173/gateway_interface/'
 
 export const statusMap = {
diff --git a/screen/src/assets/images/SecurityControl/bg@2x.png b/screen/src/assets/images/SecurityControl/bg@2x.png
index 58acee1..b021e5c 100644
--- a/screen/src/assets/images/SecurityControl/bg@2x.png
+++ b/screen/src/assets/images/SecurityControl/bg@2x.png
Binary files differ
diff --git a/screen/src/assets/images/task/bg@2x.png b/screen/src/assets/images/task/bg@2x.png
new file mode 100644
index 0000000..607b4d3
--- /dev/null
+++ b/screen/src/assets/images/task/bg@2x.png
Binary files differ
diff --git a/screen/src/assets/images/task/title@2x.png b/screen/src/assets/images/task/title@2x.png
new file mode 100644
index 0000000..5883494
--- /dev/null
+++ b/screen/src/assets/images/task/title@2x.png
Binary files differ
diff --git a/screen/src/router/index.js b/screen/src/router/index.js
index 337b81d..01f66d0 100644
--- a/screen/src/router/index.js
+++ b/screen/src/router/index.js
@@ -10,6 +10,9 @@
     {
       path: '/PlatformCall', // 鏈堝彴鍙彿澶у睆
       name: 'PlatformCall',
+      meta: {
+        title: '瀹夋嘲鐗╂祦鏈堝彴鍙彿澶у睆'
+      },
       component: () => import('../views/PlatformCall.vue')
     },
     {
@@ -65,7 +68,7 @@
 
 
 router.beforeEach((to, from, next) => {
-	window.document.title = to.meta.title
+  window.document.title = to.meta.title
   next()
 })
 
diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue
index 878f757..1ace36c 100644
--- a/screen/src/views/SecurityControl.vue
+++ b/screen/src/views/SecurityControl.vue
@@ -19,7 +19,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>瀹炴椂鍥尯杞﹁締</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="second_title">
               <div class="title">
@@ -196,7 +196,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>鍦ㄥ洯浜哄憳鍒嗘瀽</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="second_title">
               <div class="title">
@@ -287,7 +287,7 @@
               <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
               <div>褰撳墠杞﹁締婊炵暀棰勮</div>
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
           </div>
           <div class="table">
             <div class="line header">
@@ -322,7 +322,7 @@
               <div class="separate"></div>
               <div class="tab" :class="{ active: warningTab == '2' }" @click="tasClick('2')">琛屼负鍛婅</div>
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
           </div>
           <div class="one_swiper_wrap">
             <div class="list one-swiper">
@@ -382,7 +382,7 @@
               <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
               <div>鍥尯瀹夐槻璁惧</div>
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
           </div>
           <div class="monitoring" @click="showJk = !showJk">
             <img src="@/assets/images/SecurityControl/ic_jiankong@2x.png" class="icon" alt="">
@@ -445,7 +445,7 @@
               <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
               <div>浠婃棩璁垮婊炵暀鎯呭喌</div>
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
           </div>
           <div class="table">
             <div class="line header">
@@ -741,7 +741,7 @@
           show: true,
           position: 'outside',
           formatter: (params) => {
-            const index = params.dataIndex;
+            const index = params.dataIndex
             return `{color${index}|${params.data.name} ${params.data.rate}%}`
             // return `<div>${params.data.name}</div>`
           },
@@ -1013,6 +1013,8 @@
       margin-bottom: 20px;
       font-size: 14px;
       color: #D2E0FF;
+      background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
 
       .second_title {
         margin-top: 24px;
@@ -1361,6 +1363,8 @@
 
     .right_box_one {
       margin-bottom: 20px;
+      background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
 
       .second_title {
         margin-top: 20px;
@@ -1443,9 +1447,15 @@
       }
     }
 
-    .right_box_two {}
+    .right_box_two {
+      background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
+    }
 
-    .right_box_three {}
+    .right_box_three {
+      background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
+    }
   }
 }
 
@@ -1571,6 +1581,8 @@
     .one_swiper_wrap {
       height: 140px;
       overflow: hidden;
+      background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
     }
 
     .list {
@@ -1659,6 +1671,8 @@
     flex: 1;
     margin-right: 20px;
     position: relative;
+    background: rgba(0, 86, 255, 0.05);
+    backdrop-filter: blur(5px);
 
     .content {
       display: flex;
@@ -1803,6 +1817,8 @@
 
   .visitor_warning {
     width: 360px;
+    background: rgba(0, 86, 255, 0.05);
+    backdrop-filter: blur(5px);
 
     .table {
       .list {
@@ -1838,13 +1854,6 @@
     align-items: center;
     font-weight: bold;
     font-size: 16px;
-    background-image: -webkit-linear-gradient(top,
-        #ffffff 0%,
-        #c8ddff 66%,
-        #85b4ff 72%,
-        #74a9ff 100%);
-    -webkit-background-clip: text;
-    -webkit-text-fill-color: transparent;
 
     .icon {
       width: 16px;
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index fac6891..f02d4e1 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -1,7 +1,7 @@
 <template>
   <v-scale-screen width="1920" height="960">
     <div class="main_app">
-      <img src="@/assets/images/FireFighting/bg@2x.png" class="main_bg" alt="" />
+      <img src="@/assets/images/task/bg@2x.png" class="main_bg" alt="" />
       <div class="main_header">
         <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
         <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-浣滀笟鏁堣兘缁熺</div>
@@ -19,7 +19,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="car_static">
               <div class="echart_wrap">
@@ -60,7 +60,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>浠婃棩鏈堝彴宸ヤ綔鏃堕暱瓒嬪娍</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="list one-swiper">
               <div class="swiper-wrapper">
@@ -86,7 +86,7 @@
                 <div class="separate"></div>
                 <div class="tab" :class="{ active: activeTab3 == 0 }" @click="tabClick3(0)">鍏ュ簱</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="echart_wrap">
               <div class="echart2" id="echart2"></div>
@@ -201,7 +201,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>浠婃棩杞﹁締浣滀笟鎯呭喌</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="static_wrap">
               <div class="item">
@@ -249,7 +249,7 @@
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                 <div>瀹炴椂鍛婅</div>
               </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              <img src="@/assets/images/task/title@2x.png" class="bg" alt="" />
             </div>
             <div class="list three-swiper">
               <div class="swiper-wrapper">

--
Gitblit v1.9.3