From 214e6fe7a754ddf4900e07033a2fda6200f4d7a1 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 16 十二月 2024 19:38:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/vehicle/category.vue                           |   25 
 h5/pages/waybill/home.vue                                      |    4 
 h5/index.html                                                  |    1 
 screen/src/utils/request.js                                    |    2 
 h5/pages/driver/forgetPsd.vue                                  |    4 
 admin/src/views/vehicle/components/OperaCategoryWindow.vue     |    2 
 h5/pages/staffLogin/forgetPsd.vue                              |    4 
 h5/pages/staff/vehicle/shinei.vue                              |    2 
 admin/src/components/business/OperaHiddenDangerParamWindow.vue |    5 
 h5/static/waybill/ic_yunshu_sel@2x.png                         |    0 
 h5/pages/waybill/list.vue                                      |  289 ++++---
 screen/src/api/index.js                                        |   14 
 screen/src/views/LogisticsCenter.vue                           |    1 
 h5/static/driver/ic_fahuodi@2x.png                             |    0 
 h5/manifest.json                                               |    8 
 screen/src/views/EnergyConsum.vue                              |   71 +
 h5/pages/staff/vehicle/apply.vue                               |   17 
 h5/pages/waybill/waybillDetail.vue                             |  525 +++++++-----
 h5/pages/staffLogin/login.vue                                  |    2 
 h5/utils/config.js                                             |    4 
 h5/pages/login/login.vue                                       |    2 
 h5/static/waybill/ic_yunshu@2x.png                             |    0 
 screen/src/views/LogisticsEfficiency.vue                       |  328 +++++--
 h5/static/waybill/ic_peizai@2x.png                             |    0 
 admin/src/views/index.vue                                      |    2 
 h5/pages/driver/taskDetail.vue                                 |   21 
 h5/pages/staff/snapshot.vue                                    |    2 
 h5/pages/driver/login.vue                                      |    2 
 admin/src/views/business/reportRecord.vue                      |    5 
 h5/static/waybill/ic_peizai_sel@2x.png                         |    0 
 screen/src/views/SecurityControl.vue                           |    9 
 screen/src/assets/images/FireFighting/fire_right.png           |    0 
 h5/static/waybill/ic_dingdan@2x.png                            |    0 
 h5/static/waybill/ic_ruku.png                                  |    0 
 h5/static/waybill/ic_dingdan_sel@2x.png                        |    0 
 h5/static/waybill/ic_daohuo_sel@2x.png                         |    0 
 h5/static/driver/map_point@2x.png                              |    0 
 h5/pages/driver/index.vue                                      |    2 
 h5/static/waybill/ic_cangku_sel@2x.png                         |    0 
 admin/src/views/platform/LogisticsRecord/operationCity.vue     |    2 
 h5/static/waybill/ic_dangqian@2x.png                           |    0 
 h5/pages/userinfo/userinfo.vue                                 |  873 +++++++++++---------
 screen/src/views/TaskEfficiency.vue                            |  113 +
 h5/static/waybill/ic_cangku@2x.png                             |    0 
 h5/static/driver/ic_huowu@2x.png                               |    0 
 h5/App.vue                                                     |    3 
 h5/pages/driver/taskConfirm.vue                                |    2 
 h5/pages/staff/task/vDangetAppr.vue                            |   13 
 screen/src/views/FireFighting.vue                              |   92 +
 49 files changed, 1,443 insertions(+), 1,008 deletions(-)

diff --git a/admin/src/components/business/OperaHiddenDangerParamWindow.vue b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
index 4e351b2..87b9660 100644
--- a/admin/src/components/business/OperaHiddenDangerParamWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
@@ -4,11 +4,11 @@
       <el-form-item label="鍚嶇О" prop="name">
         <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim />
       </el-form-item>
-      <!-- <el-form-item label="璐d换閮ㄩ棬" prop="companyId">
+      <el-form-item label="璐d换閮ㄩ棬" prop="companyId">
         <el-select filterable clearable @change="() => loadMember(1)" v-model="form.companyId">
           <el-option v-for="op in department" :key="op.id" :label="op.name" :value="op.id"></el-option>
         </el-select>
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item v-if="form.type == 0" label="閫夋嫨瀹夊叏鍛�" prop="memberIdList">
         <el-select v-model="form.memberIdList" filterable multiple clearable placeholder="璇烽�夋嫨">
           <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
@@ -70,7 +70,6 @@
       this.form.memberIdList = null
       this.form.type = type
       this.getfindCompanyTreePage()
-      this.loadMember()
       // 鏂板缓缁勭粐
       if (target == null) {
         this.$nextTick(() => {
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 0c1c06b..b5a71a7 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -149,7 +149,8 @@
       },
       pagination: {
         capacity: 10,
-        page: 1
+        page: 1,
+        total: 0
       },
       total: 0
     }
@@ -203,6 +204,7 @@
         ...pagination
       }).then(res => {
         this.dataList = res.records || []
+        this.pagination.total = res.total
       })
     },
     clear () {
@@ -213,6 +215,7 @@
     },
     handleSizeChange (capacity) {
       this.pagination.capacity = capacity
+      this.getList()
     }
   }
 }
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index d7a404d..f97c7b7 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="main_home">
-    <div style="position: fixed;z-index: 99999"><video  style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div>
+    <!-- <div style="position: fixed;z-index: 99999"><video  style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div> -->
     <div class="home_header">
       <div class="mb10 fs17">涓嬪崍濂斤紝{{ userInfo.realname }}</div>
       <div class="fs13">
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 3dceb78..8b0634f 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -19,7 +19,7 @@
     <el-table class="mb20" v-loading="loading" :data="list" stripe>
       <el-table-column prop="contractNum" label="鍚堝悓鍙�" min-width="100" show-overflow-tooltip />
       <el-table-column prop="reason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip />
-      <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="120" show-overflow-tooltip />
       <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
       <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip />
       <!-- <el-table-column prop="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
diff --git a/admin/src/views/vehicle/category.vue b/admin/src/views/vehicle/category.vue
index ecf4b97..5b14a1b 100644
--- a/admin/src/views/vehicle/category.vue
+++ b/admin/src/views/vehicle/category.vue
@@ -18,8 +18,8 @@
             <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
                 <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
                         v-permissions="['business:category:create']">鏂板缓</el-button></li>
-                <li v-permissions="['business:category:exportExcel']"><el-button type="primary" @click="exportExcel"
-                        >瀵煎嚭</el-button></li>
+                <li v-permissions="['business:category:exportExcel']"><el-button type="primary"
+                        @click="exportExcel">瀵煎嚭</el-button></li>
             </ul>
             <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
                 :data="dataList" stripe @selection-change="handleSelectionChange">
@@ -42,7 +42,7 @@
                     </template>
                 </el-table-column>
             </el-table>
-            <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination">
+            <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination">
             </pagination>
         </template>
         <!-- 鏂板缓/淇敼 -->
@@ -79,11 +79,11 @@
     },
     created() {
         this.config({
-      module: '杞﹁締淇℃伅琛�',
-      api: '/business/category',
-      'field.id': 'id',
-      'field.main': 'id'
-    })
+            module: '杞﹁締淇℃伅琛�',
+            api: '/business/category',
+            'field.id': 'id',
+            'field.main': 'id'
+        })
         this.getList()
     },
     methods: {
@@ -110,8 +110,11 @@
             })
 
         },
-        getList() {
+        getList(page) {
             const { pagination, filters } = this
+            if (page) {
+                pagination.page = page
+            }
             this.loading = true
             fetchList({
                 model: { ...filters },
@@ -125,6 +128,10 @@
                 this.loading = false
             })
         },
+        handleSizeChange(val){
+            this.pagination.pageSize = val
+            this.getList()
+        }
     }
 }
 </script>
diff --git a/admin/src/views/vehicle/components/OperaCategoryWindow.vue b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
index b3588eb..cfcc402 100644
--- a/admin/src/views/vehicle/components/OperaCategoryWindow.vue
+++ b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
@@ -2,7 +2,7 @@
   <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm">
     <el-form :model="form" ref="form" :rules="rules">
       <el-form-item label="鎵�灞炲垎绫�" prop="parentId">
-        <el-select :disabled="form.id" v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
+        <el-select :disabled="form.id" clearable v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
           <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
         </el-select>
       </el-form-item>
diff --git a/h5/App.vue b/h5/App.vue
index 04a031d..709d712 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -145,6 +145,9 @@
   color: #999999 !important;
   font-size: 28rpx;
 }
+.placeholder3{
+	color: #333333 !important;
+}
 .red{
 	color: red !important;
 }
diff --git a/h5/index.html b/h5/index.html
index a87db61..a2db0ec 100644
--- a/h5/index.html
+++ b/h5/index.html
@@ -11,6 +11,7 @@
         (coverSupport ? ', viewport-fit=cover' : '') + '" />')
     </script>
 		<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"/> 
+		<script src="https://webapi.amap.com/maps?v=2.0&key=96b8d96e645290f1de14f5229ee030e4"></script>
     <title></title>
     <!--preload-links-->
     <!--app-context-->
diff --git a/h5/manifest.json b/h5/manifest.json
index 141a8b9..d3e82c9 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -128,9 +128,9 @@
                 "/zhyq_interface" : {
                     // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
                     // "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-                    // "target" : "http://192.168.0.106:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-                    // "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-                    "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    // "target" : "http://192.168.0.107:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    // "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     "changeOrigin" : true, // 鍏佽璺ㄥ煙 
                     "pathRewrite" : {
                         "^/zhyq_interface" : ""
@@ -142,7 +142,7 @@
         "sdkConfigs" : {
             "maps" : {
                 "amap" : {
-                    "key" : "d9a554b1808ce10a12a932ed9b0db1d0",
+                    "key" : "96b8d96e645290f1de14f5229ee030e4",
                     "securityJsCode" : "",
                     "serviceHost" : ""
                 }
diff --git a/h5/pages/driver/forgetPsd.vue b/h5/pages/driver/forgetPsd.vue
index 2330ee2..b2d5c36 100644
--- a/h5/pages/driver/forgetPsd.vue
+++ b/h5/pages/driver/forgetPsd.vue
@@ -7,14 +7,14 @@
     <view class="login_list">
       <view class="login_list_item">
         <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
-        <input v-model="form.phone" :maxlength="11" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+        <input v-model="form.phone"  type="tel" :maxlength="11" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
       </view>
       <view class="login_list_item">
         <image src="@/static/ic_captcha.png" mode="widthFix"></image>
         <input
           v-model="form.validCode"
           placeholder="璇疯緭鍏ラ獙璇佺爜"
-          type="text"
+           type="number"
         />
         <text class="captcha" v-if="countDown == 0" @click="initCaptcha"
           >鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 29134b3..b2f5b0c 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -327,7 +327,7 @@
 		background: #ffffff;
 		box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
 		border-radius: 16rpx;
-		height: 280rpx;
+		height: 260rpx;
 		width: 98%;
 		margin-left: 1%;
 
diff --git a/h5/pages/driver/login.vue b/h5/pages/driver/login.vue
index 26b8fed..374d179 100644
--- a/h5/pages/driver/login.vue
+++ b/h5/pages/driver/login.vue
@@ -7,7 +7,7 @@
     <view class="login_list">
       <view class="login_list_item">
         <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
-        <input v-model="form.username"  @focus="showKeyboard = true" @blur="showKeyboard = false" maxlength="18" placeholder="鎵嬫満鍙�" />
+        <input v-model="form.username"  type="tel"  @focus="showKeyboard = true" @blur="showKeyboard = false" maxlength="18" placeholder="鎵嬫満鍙�" />
       </view>
       <view class="login_list_item">
         <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
diff --git a/h5/pages/driver/taskConfirm.vue b/h5/pages/driver/taskConfirm.vue
index 622fc0c..f8327f9 100644
--- a/h5/pages/driver/taskConfirm.vue
+++ b/h5/pages/driver/taskConfirm.vue
@@ -109,7 +109,7 @@
 								</view>
 								<view class="line">
 									<view class="label">鏁伴噺锛�</view>
-									<view class="value">{{ line.ioQty }}</view>
+									<view class="value">{{ line.ioQty }}涓囨敮</view>
 								</view>
 							</view>
 						</view>
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index e2aab9b..b74792b 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -7,7 +7,9 @@
 			<view class="name" v-if="param.status == 3">鍏ュ洯绛夊緟</view>
 			<view class="name" v-if="param.status == 4">璇峰叆鍥仠闈爗{param.platformName}}浣滀笟</view>
 			<view class="name" v-if="param.status == 5">鏈堝彴浣滀笟涓�</view>
-			<view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+			<view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+			<view class="name" v-if="param.status == 7">杞Щ涓�</view>
+			<view class="name red" v-if="param.status == 8">寮傚父鎸傝捣</view>
 			<view class="id_card">{{ param.carCodeFront }}</view>
 			<view class="status">{{statusMap[param.status]}}</view>
 		</view>
@@ -104,7 +106,6 @@
 				<view class="time">{{nowTime}}</view>
 			</view>
 		</view>
-		<view class="space"></view>
 		<!-- 绛夊緟鍙彿 -->
 		<view v-if="param.status == 2" class="padding_wrap">
 			<view class="btn check" @click="handleQueue">鏌ョ湅鎺掗槦鎯呭喌</view>
@@ -152,7 +153,7 @@
 								</view>
 								<view class="line">
 									<view class="label">鏁伴噺锛�</view>
-									<view class="value">{{ line.ioQty }}</view>
+									<view class="value">{{ line.ioQty }}涓囨敮</view>
 								</view>
 							</view>
 						</view>
@@ -181,10 +182,10 @@
 					status: '0'
 				},
 				jobId: '',
-				lat: '',
-				lnt: '',
-				// lat: '31.783205',
-				// lnt: '117.262635',
+				// lat: '',
+				// lnt: '',
+				lat: '31.783205',
+				lnt: '117.262635',
 				nowTime: '',
 				wmsInfo: {},
 				signDistance: uni.getStorageSync('driverGuide').signDistance,
@@ -205,7 +206,8 @@
 				// 		'openLocation'
 				// 	] // 蹇呭~锛岄渶瑕佷娇鐢ㄧ殑JS鎺ュ彛鍒楄〃
 				// })
-				this.getLocation()
+				this.getLocation()
+				// this.getDetail()
 			} else {
 				this.getDetail()
 			}
@@ -285,7 +287,8 @@
 					type: 'wgs84',
 					success: (res) => {
 						this.lat = res.latitude
-						this.lnt = res.longitude
+						this.lnt = res.longitude
+						console.log('---', res);
 						this.getDetail()
 					},
 					fail: (err) => {
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index 9ab5fd0..67da103 100644
--- a/h5/pages/login/login.vue
+++ b/h5/pages/login/login.vue
@@ -41,7 +41,7 @@
 	export default {
 		data() {
 			return {
-				code: ''
+				code: 'qwe'
 			}
 		},
 		onLoad(option) {
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index 8c9b8e2..a275108 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -87,7 +87,7 @@
 					<text></text>
 					<text>鑱旂郴鐢佃瘽</text>
 				</view>
-				<view class="value"><input type="text" disabled placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-model="param.memberPhone"
+				<view class="value"><input type="tel" disabled placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-model="param.memberPhone"
 						placeholder-style="color: #999999;" /></view>
 			</view>
 			<view class="line">
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 74c1459..e02a154 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -263,9 +263,9 @@
 			@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
 		<!--  -->
 
-		<view v-if="videoPlay" class="video_app">
+<!-- 		<view v-show="videoPlay" class="video_app">
 			<video controls id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video>
-		</view>
+		</view> -->
 	</view>
 </template>
 
@@ -366,15 +366,16 @@
 				console.log(item)
 				this.videoPlay = true;
 				this.videoUrl = item.fileurlFull;
+				this.videoContext.requestFullScreen();
 				this.$nextTick(() => {
-					this.videoContext.requestFullScreen();
 					this.videoContext.play();
 				})
 				
 			},
 			handleOpen() {
 				this.isShowHandle = true;
-				const submitFileList = this.info.submitFileList || []
+				const submitFileList = this.info.submitFileList || []
+				this.dealBeforeFileList  = [...submitFileList]
 				this.submitFileList = [...submitFileList];
 				this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
 			},
@@ -1377,6 +1378,10 @@
 		top: 0;
 		width: 100vw;
 		height: 100vh;
+		video{
+			width: 100%;
+			height: 100%;
+		}
 	}
 	.Transfer_footer {
 		display: flex;
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index 23ad5ae..d0fa466 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -227,13 +227,19 @@
 </script>
 
 <style lang="scss">
+	page{
+		background-color: #f7f7f7;
+	}
 .main_wrap {
   .line {
     display: flex;
     justify-content: space-between;
     align-items: center;
     border-bottom: 1rpx solid #e5e5e5;
-    padding: 30rpx 0;
+    padding: 30rpx;
+		background-color: #fff;
+		width: 750rpx;
+		margin: 0 -30rpx;
     .label {
       font-size: 30rpx;
       font-weight: 400;
@@ -262,11 +268,14 @@
     }
   }
   .upload_line {
-    padding: 30rpx 0;
+    padding: 30rpx;
+		width: 750rpx;
+		margin: 0 -30rpx;
+		background-color: #fff;
     textarea {
       margin-top: 12rpx;
       width: 100%;
-      height: 180rpx;
+      height: 120rpx;
       font-size: 28rpx;
       font-weight: 400;
       color: #222222;
@@ -307,7 +316,7 @@
 }
 .tip {
   background: #f7f7f7;
-  padding: 30rpx 30rpx 180rpx;
+  padding: 30rpx 30rpx 10rpx;
   margin: 0 -30rpx;
   .title {
     line-height: 40rpx;
diff --git a/h5/pages/staff/vehicle/shinei.vue b/h5/pages/staff/vehicle/shinei.vue
index 3e00088..0c4d8da 100644
--- a/h5/pages/staff/vehicle/shinei.vue
+++ b/h5/pages/staff/vehicle/shinei.vue
@@ -262,7 +262,7 @@
 							// if (dayjs().format('YYYY-MM-DD') == param.queryDate) {
 							// let endTime = new Date(i.endTime).getTime()
 							// let nowTime = new Date().getTime()
-							i.pastFlag = new Date().getTime() > new Date(i.startTime).getTime()
+							i.pastFlag = new Date().getTime() > new Date(i.endTime).getTime()
 							// if (endTime < nowTime) {
 							//   i.isUse = 1
 							// }
diff --git a/h5/pages/staffLogin/forgetPsd.vue b/h5/pages/staffLogin/forgetPsd.vue
index a009fb9..fcf607d 100644
--- a/h5/pages/staffLogin/forgetPsd.vue
+++ b/h5/pages/staffLogin/forgetPsd.vue
@@ -6,14 +6,14 @@
     <view class="login_list">
       <view class="login_list_item">
         <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
-        <input v-model="form.phone" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+        <input v-model="form.phone"  type="tel" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
       </view>
       <view class="login_list_item">
         <image src="@/static/ic_captcha.png" mode="widthFix"></image>
         <input
           v-model="form.validCode"
           placeholder="璇疯緭鍏ラ獙璇佺爜"
-          type="text"
+          type="number"
         />
         <text class="captcha" v-if="countDown == 0" @click="initCaptcha"
           >鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index b20464b..3681b31 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -6,7 +6,7 @@
     <view class="login_list">
       <view class="login_list_item">
         <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
-        <input v-model="form.username" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="璐﹀彿" />
+        <input v-model="form.username" type="number" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="璐﹀彿" />
       </view>
       <view class="login_list_item">
         <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index 6d579f0..c825b10 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -1,409 +1,468 @@
-<template>
-	<view class="container">
-		<view class="visitor-form">
-			<view class="cell">
-				<view class="title"><b>*</b>濮撳悕</view>
-				<view class="content">
-					<input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
-				</view>
-			</view>
-			<view class="cell">
-				<view class="title"><b>*</b>鎵嬫満鍙�</view>
-				<view class="content">
-					<input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
-				</view>
-			</view>
-			<view class="cell">
-				<view class="title"><b>*</b>璇佷欢绫诲瀷</view>
-				<view class="content" @click="show = true">
-					<text :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
-					<u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
-				</view>
-			</view>
-			<view class="cell">
-				<view class="title"><b>*</b>璇佷欢鍙风爜</view>
-				<view class="content">
-					<input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
-				</view>
-			</view>
-			<view class="empty"></view>
-			<view class="cell">
-				<view class="title"><b>*</b>鍏徃鍚嶇О</view>
-				<view class="content">
-					<input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
-				</view>
-			</view>
-			<view class="cell">
-				<view class="title1">
-					<text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
-					<text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
-					<text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
-				</view>
-				<view class="content">
-					<view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
-						<u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
-					</view>
-					<view class="content_uplaod" @click="upload('faceImg')" v-else>
-						<image :src="visitorData.faceImgUrl" mode="widthFix"></image>
-					</view>
-				</view>
-			</view>
-			<view style="height: 20rpx; background-color: #F7F7F7;"></view>
-			<!-- <view class="cell">
-				<view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
-				<view class="content">
-					<view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
-						<u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
-					</view>
-					<view class="content_uplaod" @click="upload('imgurl')" v-else>
-						<image :src="visitorData.imgurlUrl" mode="widthFix"></image>
-					</view>
-				</view>
-			</view> -->
-		</view>
-		<view v-if="!showKeyboard" class="footer-box">
-			<view class="submit-button" @click="submit">涓嬩竴姝�</view>
-		</view>
-		<!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
-		<u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
-		<qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg" @crop="uploadImg"></qf-image-cropper>
-	</view>
-</template>
-
-<script>
-	import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
-	import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
-	import { mapState } from 'vuex'
-	import { uploadAvatar } from "@/utils/config"
-	import { getSystemDictData, visitorSub } from '@/api'
-	export default {
-		data() {
-			return {
-				photoSrc: "",
-				show: false,
-				showKeyboard: false,
-				visit: '',
-				type: '',
-				columns: [[{name: '韬唤璇�', id: 0}, {name: '娓境璇佷欢', id: 1},{name: '鎶ょ収', id: 2}]],
-				fileList: [],
-				visitorData: {
-					userAnswerId: '',
-					name: '',
-					phone: '',
-					idcardType: 0,
-					idcardTypeName: '韬唤璇�',
-					idcardNo: '',
-					faceImg: '',
-					faceImgUrl: '',
-					imgurl: '',
-					imgurlUrl: '',
-					companyName: ''
-				}
+<template>
+	<view class="container">
+		<view class="visitor-form">
+			<view class="cell">
+				<view class="title"><b>*</b>濮撳悕</view>
+				<view class="content">
+					<input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false"
+						placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
+				</view>
+			</view>
+			<view class="cell">
+				<view class="title"><b>*</b>鎵嬫満鍙�</view>
+				<view class="content">
+					<input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11"
+						placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
+				</view>
+			</view>
+			<view class="cell">
+				<view class="title"><b>*</b>璇佷欢绫诲瀷</view>
+				<view class="content" @click="show = true">
+					<text
+						:style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+				</view>
+			</view>
+			<view class="cell">
+				<view class="title"><b>*</b>璇佷欢鍙风爜</view>
+				<view class="content">
+					<input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false"
+						placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
+				</view>
+			</view>
+			<view class="empty"></view>
+			<view class="cell">
+				<view class="title"><b>*</b>鍏徃鍚嶇О</view>
+				<view class="content">
+					<input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false"
+						placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
+				</view>
+			</view>
+			<view class="cell">
+				<view class="title1">
+					<text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
+					<text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
+					<text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
+				</view>
+				<view class="content">
+					<view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
+						<u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
+					</view>
+					<view class="content_uplaod" @click="upload('faceImg')" v-else>
+						<image :src="visitorData.faceImgUrl" mode="widthFix"></image>
+					</view>
+				</view>
+			</view>
+			<view style="height: 20rpx; background-color: #F7F7F7;"></view>
+			<!-- <view class="cell">
+				<view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
+				<view class="content">
+					<view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
+						<u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+					</view>
+					<view class="content_uplaod" @click="upload('imgurl')" v-else>
+						<image :src="visitorData.imgurlUrl" mode="widthFix"></image>
+					</view>
+				</view>
+			</view> -->
+		</view>
+		<view v-if="!showKeyboard" class="footer-box">
+			<view class="submit-button" @click="submit">涓嬩竴姝�</view>
+		</view>
+		<!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
+		<u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
+		<qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg"
+			@crop="uploadImg"></qf-image-cropper>
+	</view>
+</template>
+
+<script>
+	import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
+	import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
+	import {
+		mapState
+	} from 'vuex'
+	import {
+		uploadAvatar
+	} from "@/utils/config"
+	import {
+		getSystemDictData,
+		visitorSub
+	} from '@/api'
+	export default {
+		data() {
+			return {
+				photoSrc: "",
+				show: false,
+				showKeyboard: false,
+				visit: '',
+				type: '',
+				columns: [
+					[{
+						name: '韬唤璇�',
+						id: 0
+					}, {
+						name: '娓境璇佷欢',
+						id: 1
+					}, {
+						name: '鎶ょ収',
+						id: 2
+					}]
+				],
+				fileList: [],
+				visitorData: {
+					userAnswerId: '',
+					name: '',
+					phone: '',
+					idcardType: 0,
+					idcardTypeName: '韬唤璇�',
+					idcardNo: '',
+					faceImg: '',
+					faceImgUrl: '',
+					imgurl: '',
+					imgurlUrl: '',
+					companyName: ''
+				}
+			}
+		},
+		components: {
+			tlyPictureCut,
+			QfImageCropper
+		},
+
+		onLoad(option) {
+			const visitorData = uni.getStorageSync('member')
+			if (visitorData.faceImg) {
+				visitorData.faceImgUrl = visitorData.prefixUrl + visitorData.faceImg
+			}
+			if (visitorData && visitorData.name) {
+				this.visitorData = visitorData
+			}
+			this.visitorData.companyName = visitorData.visitCompanyName
+			this.visitorData.idcardNo = visitorData.idcardDecode
+			if (this.visitorData.idcardType === 0) {
+				this.visitorData.idcardTypeName = '韬唤璇�'
+			} else if (this.visitorData.idcardType === 1) {
+				this.visitorData.idcardTypeName = '娓境璇佷欢'
+			} else if (this.visitorData.idcardType === 2) {
+				this.visitorData.idcardTypeName = '鎶ょ収'
 			}
-		},
-		components: { tlyPictureCut, QfImageCropper },
-		
-		onLoad(option) {
-			const visitorData = uni.getStorageSync('visitorData')
-			if(visitorData && visitorData.name){
-				this.visitorData = visitorData
-			}
-			// if (this.member ) {
-			// 	this.visitorData.name = this.member.name
-			// 	this.visitorData.phone = this.member.phone
-			// 	this.visitorData.idcardNo = this.member.idcardDecode
-			// 	this.visitorData.companyName = this.member.visitCompanyName
-			// 	this.visitorData.faceImg = this.member.faceImg
-			// 	if (this.member.faceImg) {
-			// 		this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
-			// 	}
-			// 	this.visitorData.imgurl = this.member.imgurl
-			// 	if (this.member.imgurl) {
-			// 		this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
-			// 	}
-			// 	this.visitorData.idcardType = this.member.idcardType
-			// 	if (this.member.idcardType === 0) {
-			// 		this.visitorData.idcardTypeName = '韬唤璇�'
-			// 	} else if (this.member.idcardType === 1) {
-			// 		this.visitorData.idcardTypeName = '娓境璇佷欢'
-			// 	} else if (this.member.idcardType === 2) {
-			// 		this.visitorData.idcardTypeName = '鎶ょ収'
-			// 	}
-			// }
-			this.visitorData.userAnswerId = option.answerId || ''
-			// this.getVisit()
-			// uni.$on('update', (data) => {
-			// 	this.uploadImg(data.tempFilePath)
-			// })
-		},
-
-		methods: {
-			submit() {
-				const { visitorData } = this
-				if (!this.visitorData.name) return uni.showToast({
-					title: '濮撳悕涓嶈兘涓虹┖',
-					icon: 'none'
-				})
-				if (!this.visitorData.phone) return uni.showToast({
-					title: '鎵嬫満鍙蜂笉鑳戒负绌�',
-					icon: 'none'
-				})
-				const regExp = /^1[3456789]\d{9}$/;
-				if (!regExp.test(this.visitorData.phone)) return uni.showToast({
-					title: '鎵嬫満鍙锋牸寮忛敊璇�',
-					icon: 'none'
-				})
-				if (!String(this.visitorData.idcardType)) return uni.showToast({
-					title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
-					icon: 'none'
-				})
-				if (!this.visitorData.idcardNo) return uni.showToast({
-					title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
-					icon: 'none'
-				})
-				if (this.visitorData.idcardType === 0) {
-					const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
-					if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
-						title: '璇佷欢鍙风爜鏍煎紡閿欒',
-						icon: 'none'
-					})
-				}
-				if (!this.visitorData.companyName) return uni.showToast({
-					title: '鍏徃涓嶈兘涓虹┖',
-					icon: 'none'
-				})
-				if (!this.visitorData.faceImg) return uni.showToast({
-					title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
-					icon: 'none'
-				})
-				// if (this.visit === '1') {
-				// 	if (!this.visitorData.imgurl) return uni.showToast({
-				// 		title: '鍋ュ悍璇佷笉鑳戒负绌�',
-				// 		icon: 'none'
-				// 	})
-				// }
-				uni.setStorageSync('visitorData', this.visitorData)
-				uni.navigateTo({
-					url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
-				});
-			},
-			getVisit() {
-				// 鏄惁闇�瑕� 鍋ュ悍璇�
-				getSystemDictData({
-					dictCode: 'SYSTEM',
-					label: 'HEALTH_CARD'
-				}).then(res => {
-					if (res.code === 200) {
-						this.visit = res.data.code
-					}
-				})
-			},
-			uploadImg(file) {
-				var that = this
-				that.$refs.cropper.close()
-				uni.showLoading({ title: '涓婁紶涓�', mask: true });
-				uni.uploadFile({
-					url: uploadAvatar,
-					filePath: file.tempFilePath,
-					name: 'file',
-					formData: {
-						folderCode: 'MEMBER_IMG',
-						isFace: 0
-					},
-					success: (uploadFileRes) => {
-						let res = JSON.parse(uploadFileRes.data)
-						this.visitorData.faceImg = res.data.halfPath
-						this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-					},
-					fail(err) {
-						alert('澶辫触')
-					},
-					complete() {
-						uni.hideLoading();
-					}
-				});
-			},
-			upload(type) {
-				var that = this
-				that.type = type
-				if (type === 'faceImg') {
-					that.$refs.cropper.chooseImage()
-					return
-				}
-				uni.chooseImage({
-					count: 1,
-					success: (chooseImageRes) => {
-						// if (type === 'faceImg') {
-						// 	that.photoSrc = chooseImageRes.tempFilePaths[0];
-						// 	that.$refs.tlyPictureCut.showPop();
-						// }
-						if (type === 'imgurl') {
-							uni.showLoading({ title: '涓婁紶涓�', mask: true });
-							uni.uploadFile({
-								url: uploadAvatar,
-								filePath: chooseImageRes.tempFilePaths[0],
-								name: 'file',
-								formData: {
-									folderCode: 'MEMBER_IMG'
-								},
-								timeout: 60000,
-								success: (uploadFileRes) => {
-									let res = JSON.parse(uploadFileRes.data)
-									that.visitorData.imgurl = res.data.halfPath
-									that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-								},
-								complete() {
-									uni.hideLoading();
-								}
-							});
-						}
-					},
-					fail(err) {
-						alert('api鎶ラ敊')
-					}
-				});
-			},
-			confirm(e) {
-				this.visitorData.idcardType = e.value[0].id
-				this.visitorData.idcardTypeName = e.value[0].name
-				this.show = false
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	page {
-		background-color: #F7F7F7 !important;
-	}
-	.u-upload__button {
-		margin: 0 !important;
-	}
-	.content_uplaod {
-		width: 120rpx;
-		height: 120rpx;
-		background: #F7F7F7;
-		border-radius: 8rpx;
-		border: 2rpx solid #E5E5E5;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		overflow: hidden;
-	}
-	.content_uplaod image {
-		width: 100%;
-		height: 100%;
-	}
-	.empty{
-		width: 750rpx;
-		height: 20rpx;
-		margin: 0 -30rpx;
-		background-color: #f7f7f7;;
-	}
-	.title {
-		font-size: 30rpx;
-		font-weight: 400;
-		color: #222222;
-		display: flex;
-		align-items: center;
-	}
-
-	.title b {
-		color: #E42D2D;
-		margin-right: 4rpx;
-	}
-	
-	.title1 {
-		display: flex;
-		flex-direction: column;
-		.title1_a {
-			font-size: 30rpx !important;
-			font-weight: 400;
-			color: #222222;
-			display: flex;
-			align-items: center;
-			margin-bottom: 20rpx;
-			b {
-				color: #E42D2D;
-				margin-right: 4rpx;
-
-			}
-		}
-		.title1_b {
-			font-size: 24rpx !important;
-			font-weight: 400;
-			color: #999999;
-		}
-	}
-
-	.add-other {
-		border: 1rpx solid #4d99a8;
-		color: #4d99a8;
-		font-size: 11rpx;
-		padding: 0 12rpx;
-		height: 32rpx;
-		line-height: 32rpx;
-		width: 120rpx;
-		text-align: center;
-		border-radius: 24rpx;
-		margin: 20rpx auto;
-	}
-
-	.footer-box {
-		width: 100%;
-		position: fixed;
-		bottom: 30rpx;
-		height: 80rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.submit-button {
-		width: calc(100% - 60rpx);
-		height: 88rpx;
-		line-height: 88rpx;
-		background: #4d99a8;
-		border-radius: 4rpx;
-		color: #fff;
-		border-radius: 44rpx;
-		font-size: 32rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-</style>
-
-<style lang="scss" scoped>
-	.popup-content {
-		padding: 20rpx;
-		height: 100%;
-		overflow: hidden;
-		display: flex;
-		flex-flow: column;
-
-		.input {
-			border: 1rpx solid #ccc;
-			border-radius: 4rpx;
-			padding: 4rpx 12rpx;
-			font-size: 28rpx;
-			font-weight: 400;
-			color: #333333;
-		}
-
-		.respondent-item {
-			padding: 10rpx;
-			border-bottom: 1rpx solid #eee;
-			cursor: pointer;
-
-			&:hover {
-				background-color: #eee;
-			}
-		}
-
-		.van-list {
-			flex: 1;
-			overflow: auto;
-		}
-	}
+			if (this.visitorData.imgurl) {
+					this.visitorData.imgurlUrl = this.visitorData.prefixUrl + this.visitorData.imgurl
+				}
+			// if (this.member ) {
+			// 	this.visitorData.name = this.member.name
+			// 	this.visitorData.phone = this.member.phone
+			// 	this.visitorData.idcardNo = this.member.idcardDecode
+			// 	this.visitorData.companyName = this.member.visitCompanyName
+			// 	this.visitorData.faceImg = this.member.faceImg
+			// 	if (this.member.faceImg) {
+			// 		this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
+			// 	}
+			// 	this.visitorData.imgurl = this.member.imgurl
+			// 	if (this.member.imgurl) {
+			// 		this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
+			// 	}
+			// 	this.visitorData.idcardType = this.member.idcardType
+			// 	if (this.member.idcardType === 0) {
+			// 		this.visitorData.idcardTypeName = '韬唤璇�'
+			// 	} else if (this.member.idcardType === 1) {
+			// 		this.visitorData.idcardTypeName = '娓境璇佷欢'
+			// 	} else if (this.member.idcardType === 2) {
+			// 		this.visitorData.idcardTypeName = '鎶ょ収'
+			// 	}
+			// }
+			this.visitorData.userAnswerId = option.answerId || ''
+			// this.getVisit()
+			// uni.$on('update', (data) => {
+			// 	this.uploadImg(data.tempFilePath)
+			// })
+		},
+
+		methods: {
+			submit() {
+				const {
+					visitorData
+				} = this
+				if (!this.visitorData.name) return uni.showToast({
+					title: '濮撳悕涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.visitorData.phone) return uni.showToast({
+					title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+					icon: 'none'
+				})
+				const regExp = /^1[3456789]\d{9}$/;
+				if (!regExp.test(this.visitorData.phone)) return uni.showToast({
+					title: '鎵嬫満鍙锋牸寮忛敊璇�',
+					icon: 'none'
+				})
+				if (!String(this.visitorData.idcardType)) return uni.showToast({
+					title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.visitorData.idcardNo) return uni.showToast({
+					title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (this.visitorData.idcardType === 0) {
+					const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+					if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
+						title: '璇佷欢鍙风爜鏍煎紡閿欒',
+						icon: 'none'
+					})
+				}
+				if (!this.visitorData.companyName) return uni.showToast({
+					title: '鍏徃涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.visitorData.faceImg) return uni.showToast({
+					title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				// if (this.visit === '1') {
+				// 	if (!this.visitorData.imgurl) return uni.showToast({
+				// 		title: '鍋ュ悍璇佷笉鑳戒负绌�',
+				// 		icon: 'none'
+				// 	})
+				// }
+				uni.setStorageSync('visitorData', this.visitorData)
+				uni.navigateTo({
+					url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
+				});
+			},
+			getVisit() {
+				// 鏄惁闇�瑕� 鍋ュ悍璇�
+				getSystemDictData({
+					dictCode: 'SYSTEM',
+					label: 'HEALTH_CARD'
+				}).then(res => {
+					if (res.code === 200) {
+						this.visit = res.data.code
+					}
+				})
+			},
+			uploadImg(file) {
+				var that = this
+				that.$refs.cropper.close()
+				uni.showLoading({
+					title: '涓婁紶涓�',
+					mask: true
+				});
+				uni.uploadFile({
+					url: uploadAvatar,
+					filePath: file.tempFilePath,
+					name: 'file',
+					formData: {
+						folderCode: 'MEMBER_IMG',
+						isFace: 0
+					},
+					success: (uploadFileRes) => {
+						let res = JSON.parse(uploadFileRes.data)
+						this.visitorData.faceImg = res.data.halfPath
+						this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+					},
+					fail(err) {
+						alert('澶辫触')
+					},
+					complete() {
+						uni.hideLoading();
+					}
+				});
+			},
+			upload(type) {
+				var that = this
+				that.type = type
+				if (type === 'faceImg') {
+					that.$refs.cropper.chooseImage()
+					return
+				}
+				uni.chooseImage({
+					count: 1,
+					success: (chooseImageRes) => {
+						// if (type === 'faceImg') {
+						// 	that.photoSrc = chooseImageRes.tempFilePaths[0];
+						// 	that.$refs.tlyPictureCut.showPop();
+						// }
+						if (type === 'imgurl') {
+							uni.showLoading({
+								title: '涓婁紶涓�',
+								mask: true
+							});
+							uni.uploadFile({
+								url: uploadAvatar,
+								filePath: chooseImageRes.tempFilePaths[0],
+								name: 'file',
+								formData: {
+									folderCode: 'MEMBER_IMG'
+								},
+								timeout: 60000,
+								success: (uploadFileRes) => {
+									let res = JSON.parse(uploadFileRes.data)
+									that.visitorData.imgurl = res.data.halfPath
+									that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+								},
+								complete() {
+									uni.hideLoading();
+								}
+							});
+						}
+					},
+					fail(err) {
+						alert('api鎶ラ敊')
+					}
+				});
+			},
+			confirm(e) {
+				this.visitorData.idcardType = e.value[0].id
+				this.visitorData.idcardTypeName = e.value[0].name
+				this.show = false
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F7F7F7 !important;
+	}
+
+	.u-upload__button {
+		margin: 0 !important;
+	}
+
+	.content_uplaod {
+		width: 120rpx;
+		height: 120rpx;
+		background: #F7F7F7;
+		border-radius: 8rpx;
+		border: 2rpx solid #E5E5E5;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		overflow: hidden;
+	}
+
+	.content_uplaod image {
+		width: 100%;
+		height: 100%;
+	}
+
+	.empty {
+		width: 750rpx;
+		height: 20rpx;
+		margin: 0 -30rpx;
+		background-color: #f7f7f7;
+		;
+	}
+
+	.title {
+		font-size: 30rpx;
+		font-weight: 400;
+		color: #222222;
+		display: flex;
+		align-items: center;
+	}
+
+	.title b {
+		color: #E42D2D;
+		margin-right: 4rpx;
+	}
+
+	.title1 {
+		display: flex;
+		flex-direction: column;
+
+		.title1_a {
+			font-size: 30rpx !important;
+			font-weight: 400;
+			color: #222222;
+			display: flex;
+			align-items: center;
+			margin-bottom: 20rpx;
+
+			b {
+				color: #E42D2D;
+				margin-right: 4rpx;
+
+			}
+		}
+
+		.title1_b {
+			font-size: 24rpx !important;
+			font-weight: 400;
+			color: #999999;
+		}
+	}
+
+	.add-other {
+		border: 1rpx solid #4d99a8;
+		color: #4d99a8;
+		font-size: 11rpx;
+		padding: 0 12rpx;
+		height: 32rpx;
+		line-height: 32rpx;
+		width: 120rpx;
+		text-align: center;
+		border-radius: 24rpx;
+		margin: 20rpx auto;
+	}
+
+	.footer-box {
+		width: 100%;
+		position: fixed;
+		bottom: 30rpx;
+		height: 80rpx;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.submit-button {
+		width: calc(100% - 60rpx);
+		height: 88rpx;
+		line-height: 88rpx;
+		background: #4d99a8;
+		border-radius: 4rpx;
+		color: #fff;
+		border-radius: 44rpx;
+		font-size: 32rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+</style>
+
+<style lang="scss" scoped>
+	.popup-content {
+		padding: 20rpx;
+		height: 100%;
+		overflow: hidden;
+		display: flex;
+		flex-flow: column;
+
+		.input {
+			border: 1rpx solid #ccc;
+			border-radius: 4rpx;
+			padding: 4rpx 12rpx;
+			font-size: 28rpx;
+			font-weight: 400;
+			color: #333333;
+		}
+
+		.respondent-item {
+			padding: 10rpx;
+			border-bottom: 1rpx solid #eee;
+			cursor: pointer;
+
+			&:hover {
+				background-color: #eee;
+			}
+		}
+
+		.van-list {
+			flex: 1;
+			overflow: auto;
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/h5/pages/waybill/home.vue b/h5/pages/waybill/home.vue
index 16478c4..d76ff1e 100644
--- a/h5/pages/waybill/home.vue
+++ b/h5/pages/waybill/home.vue
@@ -4,7 +4,7 @@
 		<view class="login_wrap">
 			<view class="item">
 				<view class="la">鎵嬫満鍙�</view>
-			  <input v-model="form.phone" maxlength="18" placeholder-class="placeholder9" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+			  <input v-model="form.phone" type="tel" maxlength="18" placeholder-class="placeholder9" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
 			</view>
 			<view class="item">
 				<view class="la">楠岃瘉鐮�</view>
@@ -13,7 +13,7 @@
 			  	  v-model="form.code"
 			  	  placeholder="璇疯緭鍏ラ獙璇佺爜"
 			  		placeholder-class="placeholder9"
-			  	  type="text"
+			  	  type="number"
 			  	/>
 			  	<text class="captcha" v-if="countDown == 0" @click="initCaptcha"
 			  	  >鑾峰彇楠岃瘉鐮�</text
diff --git a/h5/pages/waybill/list.vue b/h5/pages/waybill/list.vue
index 625f111..56bec0d 100644
--- a/h5/pages/waybill/list.vue
+++ b/h5/pages/waybill/list.vue
@@ -1,46 +1,49 @@
 <template>
 	<view class="main_app">
-		<view class="head_wrap">
+		<view class="head_wrap" @click="openModal">
 			<view class="search_box">
 				<image src="@/static/ic_search@2x.png" class="search" mode=""></image>
-				<input type="text" placeholder-class="placeholder9" v-model="param.name" @confirm="handleQuery" />
+				<!-- <input type="text" disabled placeholder-class="placeholder9" v-model="param.contractNumber" @confirm="handleQuery" /> -->
 			</view>
-			<view class="right" @click="openModal">
+			<view class="right">
 				<image src="@/static/ic_shaixuan@2x.png" mode=""></image>
 				<text>绛涢��</text>
 			</view>
 		</view>
 		<!--  -->
-		<view class="main_list">
-			<view class="item" v-for="item,index in list" :key="index">
-				<view class="head">
-					<view class="code">{{item.contractNumber}}</view>
-					<view class="status">{{item.orderStatus}}</view>
-				</view>
-				<view class="content">
-					<view class="line">
-						<view class="la">鍙戣揣鍦帮細</view>
-						<view class="val">{{item.fromRepertoty || '-'}}</view>
+		<scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
+			<view class="main_list">
+				<view class="item" v-for="item,index in list" :key="index">
+					<view class="head">
+						<view class="code">{{item.contractNumber}}</view>
+						<view class="status">{{item.orderStatusDesc }}</view>
 					</view>
-					<view class="line">
-						<view class="la">鍒拌揣鍦帮細</view>
-						<view class="val">{{item.toRepertoty || '-'}}</view>
+					<view class="content">
+						<view class="line">
+							<view class="la">鍙戣揣鍦帮細</view>
+							<view class="val">{{item.fromRepertoty || item.deliveryEnterprise || '-'}}</view>
+						</view>
+						<view class="line">
+							<view class="la">鍒拌揣鍦帮細</view>
+							<view class="val">{{item.toRepertoty || item.receiveEnterprise || '-'}}</view>
+						</view>
+						<view class="line">
+							<view class="la">杞︾墝鍙凤細</view>
+							<view class="val">{{item.plateNumber || item.plateName || '-'}}</view>
+						</view>
 					</view>
-					<view class="line">
-						<view class="la">杞︾墝鍙凤細</view>
-						<view class="val">{{item.plateNumber || '-'}}</view>
+					<view class="footer">
+						<view class="time">{{item.ncCreateDate}}</view>
+						<view class="detail" @click="handleDetail(item)">鏌ョ湅璇︽儏</view>
 					</view>
 				</view>
-				<view class="footer">
-					<view class="time">{{item.ncCreateDate}}</view>
-					<view class="detail" @click="handleDetail(item)">鏌ョ湅璇︽儏</view>
+				<view v-if="list.length === 0" style="text-align: center">
+					<image src="@/static/empty.png" style="width: 320rpx; margin: 120px auto 0" mode="widthFix" />
+					<view class="placeholder9 fs24">鏆傛棤鏁版嵁</view>
 				</view>
 			</view>
-			<view v-if="list.length === 0" style="text-align: center">
-				<image src="@/static/empty.png" style="width: 320rpx; margin: 120px auto 0" mode="widthFix" />
-				<view class="placeholder9 fs24">鏆傛棤鏁版嵁</view>
-			</view>
-		</view>
+		</scroll-view>
+
 		<!--  -->
 		<u-popup :show="showModal" round="12" @close="showModal = false">
 			<view class="modal">
@@ -48,45 +51,47 @@
 				<view class="line">
 					<view class="la">鍚堝悓鍙�</view>
 					<view class="val">
-						<input type="text" placeholder-class="placeholder9" v-model="form.contract" />
+						<input type="text" placeholder-class="placeholder9" v-model="form.contractNumber" />
 					</view>
 				</view>
 				<view class="line">
 					<view class="la">鍒跺崟寮�濮嬫棩鏈�</view>
 					<view class="val" @click="showStarttime = true">
 						<text class="mr12"
-							:class="{placeholder9: !form.starttime}">{{ form.starttime ? form.starttime : '璇烽�夋嫨' }}</text>
+							:class="{placeholder9: !form.ncCreateDateTimeStart}">{{ form.ncCreateDateTimeStart ? form.ncCreateDateTimeStart : '璇烽�夋嫨' }}</text>
 						<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
 					</view>
 				</view>
 				<view class="line">
 					<view class="la">鍒跺崟缁撴潫鏃ユ湡</view>
 					<view class="val" @click="showEndtime = true">
-						<text class="mr12" :class="{placeholder9: !form.endtime}">{{ form.endtime ? form.endtime : '璇烽�夋嫨' }}</text>
+						<text class="mr12"
+							:class="{placeholder9: !form.ncCreateDateTimeEnd}">{{ form.ncCreateDateTimeEnd ? form.ncCreateDateTimeEnd : '璇烽�夋嫨' }}</text>
 						<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
 					</view>
 				</view>
 				<view class="line">
 					<view class="la">鍙戣揣鍦�</view>
 					<view class="val">
-						<input type="text" placeholder-class="placeholder9" v-model="form.fromRepertoty" />
+						<input type="text" placeholder-class="placeholder9" v-model="form.deliveryEnterprise" />
 					</view>
 				</view>
 				<view class="line">
 					<view class="la">鍒拌揣鍦�</view>
 					<view class="val">
-						<input type="text" placeholder-class="placeholder9" v-model="form.toRepertoty" />
+						<input type="text" placeholder-class="placeholder9" v-model="form.receiveEnterprise" />
 					</view>
 				</view>
 				<view class="line">
 					<view class="la">鐪佷唤</view>
 					<view class="val" @click="showPri = true">
-						<text class="mr12" :class="{placeholder9: !form.provinceName}">{{ form.provinceName ? form.provinceName : '璇烽�夋嫨' }}</text>
+						<text class="mr12"
+							:class="{placeholder9: !form.provinceName}">{{ form.provinceName ? form.provinceName : '璇烽�夋嫨' }}</text>
 						<u-icon name="arrow-right" size="14" color="#999999"></u-icon>
 					</view>
 				</view>
 				<view class="btns">
-					<view class="btn" @click="showModal = false">鍙栨秷</view>
+					<view class="btn" @click="clear">鍙栨秷</view>
 					<view class="btn sub" @click="modalSub">鎻愪氦</view>
 				</view>
 			</view>
@@ -95,9 +100,9 @@
 		<u-datetime-picker :show="showStarttime" v-model="form.starttime" mode="date" @confirm="confirmStart"
 			@cancel="showStarttime = false"></u-datetime-picker>
 		<u-datetime-picker :show="showEndtime" v-model="form.endtime" mode="date" @confirm="confirmEnd"
-			@cancel="showEndtime = false"></u-datetime-picker>
-		<u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
-			
+			@cancel="showEndtime = false"></u-datetime-picker>
+		<u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
+
 	</view>
 </template>
 
@@ -116,7 +121,7 @@
 
 				showModal: false,
 				showStarttime: false,
-				showEndtime: false,
+				showEndtime: false,
 				showPri: false,
 				form: {},
 				provinceList: [
@@ -128,61 +133,94 @@
 				]
 			};
 		},
-		onLoad(options) {
-			this.$set(this.param, 'phoneNumber', options.phone)
-			this.$set(this.form, 'starttime', dayjs().format('YYYY/MM/DD'))
-			const nextMonth = dayjs().add(1, 'month');
-			this.$set(this.form, 'endtime', nextMonth.format('YYYY/MM/DD'))
+		onLoad(options) {
+			this.$set(this.param, 'phoneNumber', options.phone)
 			this.getList()
 		},
-		methods: {
+		methods: {
+			clear() {
+				this.param = {
+					phoneNumber: this.param.phoneNumber
+				}
+				this.form = {}
+				this.page = 1
+				this.list = []
+				this.showModal = false
+				this.getList()
+			},
 			modalSub() {
 				this.handleQuery()
 				this.showModal = false
 			},
 			openModal() {
 				this.showModal = true
-			},
-			confirmPro(e) {
-				this.$set(this.form, 'provinceName', e.value[0])
-				this.showPri = false
+				// this.$set(this.form, 'ncCreateDateTimeStart', dayjs().subtract(1, 'month').format('YYYY-MM-DD'))
+				// const nextMonth = dayjs().add(1, 'month');
+				// this.$set(this.form, 'ncCreateDateTimeEnd', dayjs().format('YYYY-MM-DD'))
+			},
+			confirmPro(e) {
+				this.$set(this.form, 'provinceName', e.value[0])
+				this.showPri = false
 			},
 			confirmStart(e) {
 				this.$nextTick(() => {
-					this.$set(this.form, 'starttime', dayjs(e.value).format('YYYY/MM/DD'))
+					this.$set(this.form, 'ncCreateDateTimeStart', dayjs(e.value).format('YYYY-MM-DD'))
 				})
 				this.showStarttime = false
 			},
 			confirmEnd(e) {
 				this.$nextTick(() => {
-					this.$set(this.form, 'endtime', dayjs(e.value).format('YYYY/MM/DD'))
+					this.$set(this.form, 'ncCreateDateTimeEnd', dayjs(e.value).format('YYYY-MM-DD'))
 				})
 				this.showEndtime = false
 			},
 			handleQuery() {
+				this.page = 1
+				this.list = []
 				this.getList()
 			},
-			handleDetail(item) {
-				uni.navigateTo({
-					url: '/pages/waybill/waybillDetail?id=' + item.contractNumber
-				})
+			handleDetail(item) {
+				uni.navigateTo({
+					url: '/pages/waybill/waybillDetail?id=' + item.contractNumber
+				})
+			},
+			scrolltolower() {
+				const {
+					total,
+					list
+				} = this
+				if (list.length < total) {
+					this.page = this.page + 1
+					this.getList()
+				} else {
+					this.showToast('鏆傛棤鏇村鏁版嵁')
+				}
 			},
 			getList() {
 				const {
 					param,
-					form
-				} = this
-				if(form.contract){
-					form.contractNumber = [form.contract]
-				}else{
-					form.contractNumber = null
-				}
+					form,
+					page
+				} = this
+				// if (form.contract) {
+				// 	form.contractNumber = form.contract
+				// } else {
+				// 	form.contractNumber = null
+				// }
 				orderListTms({
-					...param,
-					...form
+					parameters: {
+						...param,
+						...form
+					},
+					pager: {
+						rows: 10,
+						page
+					}
 				}).then(res => {
-					this.list = res.data || []
-					this.total = res.data.total
+					if (res.data && res.data.rows) {
+						this.list = [...this.list, ...res.data.rows]
+						this.total = res.data.totalCount
+					}
 				})
 			}
 		}
@@ -236,87 +274,92 @@
 		}
 	}
 
-	.main_list {
+	.scroll_Y {
 		background-color: #f7f7f7;
-		width: 750rpx;
-		margin: 0 -30rpx;
-		padding: 24rpx 30rpx;
-		height: calc(100vh - 140rpx);
 
-		.item {
-			border-radius: 8rpx;
-			margin-bottom: 20rpx;
-			padding: 0 30rpx;
-			background-color: #fff;
+		height: calc(100vh - 130rpx);
 
-			.head {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				padding: 0 30rpx;
-				width: 690rpx;
-				height: 84rpx;
-				margin: 0 -30rpx;
-				background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
+		.main_list {
+			width: 750rpx;
+			margin: 0 -30rpx;
+			padding: 24rpx 30rpx;
 
-				.code {
-					font-weight: 500;
-					font-size: 32rpx;
-					color: #222222;
-				}
-
-				.status {
-					color: $uni-color-primary;
-				}
-			}
-
-			.content {
-				padding: 20rpx 0rpx;
-				border-bottom: 1rpx solid #E5E5E5;
+			.item {
+				border-radius: 8rpx;
 				margin-bottom: 20rpx;
+				padding: 0 30rpx;
+				background-color: #fff;
 
-				.line {
+				.head {
 					display: flex;
-					margin-bottom: 16rpx;
-					font-size: 26rpx;
+					justify-content: space-between;
+					align-items: center;
+					padding: 0 30rpx;
+					width: 690rpx;
+					height: 84rpx;
+					margin: 0 -30rpx;
+					background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
 
-					.la {
-						color: #666666;
+					.code {
+						font-weight: 500;
+						font-size: 32rpx;
+						color: #222222;
 					}
 
-					.val {}
-
-					&:nth-last-child(1) {
-						margin-bottom: 0;
+					.status {
+						color: $uni-color-primary;
 					}
 				}
-			}
 
-			.footer {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				font-size: 26rpx;
-				color: #999999;
-				padding-bottom: 20rpx;
+				.content {
+					padding: 20rpx 0rpx;
+					border-bottom: 1rpx solid #E5E5E5;
+					margin-bottom: 20rpx;
 
-				.detail {
-					width: 168rpx;
-					height: 60rpx;
-					background: #FFFFFF;
-					border-radius: 30rpx;
-					border: 1rpx solid $uni-color-primary;
-					color: $uni-color-primary;
+					.line {
+						display: flex;
+						margin-bottom: 16rpx;
+						font-size: 26rpx;
+
+						.la {
+							color: #666666;
+						}
+
+						.val {}
+
+						&:nth-last-child(1) {
+							margin-bottom: 0;
+						}
+					}
+				}
+
+				.footer {
 					display: flex;
+					justify-content: space-between;
 					align-items: center;
-					justify-content: center;
 					font-size: 26rpx;
+					color: #999999;
+					padding-bottom: 20rpx;
 
+					.detail {
+						width: 168rpx;
+						height: 60rpx;
+						background: #FFFFFF;
+						border-radius: 30rpx;
+						border: 1rpx solid $uni-color-primary;
+						color: $uni-color-primary;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						font-size: 26rpx;
+
+					}
 				}
 			}
 		}
 	}
 
+
 	.modal {
 		.modal_title {
 			height: 112rpx;
diff --git a/h5/pages/waybill/waybillDetail.vue b/h5/pages/waybill/waybillDetail.vue
index e507bac..0b78b75 100644
--- a/h5/pages/waybill/waybillDetail.vue
+++ b/h5/pages/waybill/waybillDetail.vue
@@ -1,235 +1,350 @@
 <template>
 	<view class="main_app">
-		<image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image>
-		<view class="info">
-			<view class="head">
-				<view class="code">{{info.contractNumber}}</view>
-				<view class="status">{{info.orderStatus}}</view>
-			</view>
-			<view class="content">
-				<view class="line">
-					<view class="la">鍙戣揣鍦�</view>
-					<view class="val">{{info.fromRepertoty || '-'}}</view>
+		<!-- <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image> -->
+		<map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="4">
+
+		</map>
+		<view class="main_content">
+			<view class="info">
+				<view class="head">
+					<view class="code">{{info.contractNumber}}</view>
+					<view class="status">{{info.orderStatusDesc}}</view>
 				</view>
-				<view class="line">
-					<view class="la">鍒拌揣鍦�</view>
-					<view class="val">{{info.toRepertoty || '-'}}</view>
-				</view>
-				<view class="line">
-					<view class="la">杞︾墝鍙�</view>
-					<view class="val">{{info.plateNumber || '-'}}</view>
-				</view>
-				<view class="line">
-					<view class="la">鍙告満淇℃伅</view>
-					<view class="val">{{ '-'}}</view>
-				</view>
-				<view class="line">
-					<view class="la">杞﹁締浣嶇疆</view>
-					<view class="val">{{ '-'}}</view>
-				</view>
-				<view class="line">
-					<view class="la">棰勮鍒拌揪</view>
-					<view class="val">{{'-'}}</view>
+				<view class="content">
+					<view class="line">
+						<view class="la">鍙戣揣鍦�</view>
+						<view class="val">{{info.deliveryEnterprise || '-'}}</view>
+					</view>
+					<view class="line">
+						<view class="la">鍒拌揣鍦�</view>
+						<view class="val">{{info.receiveEnterprise || '-'}}</view>
+					</view>
+					<view class="line">
+						<view class="la">杞︾墝鍙�</view>
+						<view class="val">{{info.plateName || '-'}}</view>
+					</view>
+					<view class="line">
+						<view class="la">鍙告満淇℃伅</view>
+						<view class="val" @click="callPhone(info.driverTel)">{{ info.driverName  }} <text class="primaryColor ml12">{{info.driverTel}}</text> </view>
+					</view>
+					<view class="line">
+						<view class="la">杞﹁締浣嶇疆</view>
+						<view class="val">{{'-'}}</view>
+					</view>
+					<view class="line">
+						<view class="la">棰勮鍒拌揪</view>
+						<view class="val">{{info.plannedArrivedDate}}</view>
+					</view>
 				</view>
 			</view>
-		</view>
-		<view class="drive_info">
-			<view class="title">鐗╂祦淇℃伅</view>
-<!-- 			<view class="item">
-				<view class="h2">
-					<view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view>
-					<view class="text">鍒拌揪鍗歌揣鍦�</view>
+			<view class="drive_info">
+				<view class="title">鐗╂祦淇℃伅</view>
+				<view class="drive_list" v-for="dri,k in info.cicleStatusList">
+					<view class="separate"></view>
+					<view class="item_title">
+						<view class="icon_wrap">
+							<image v-if="dri.key == 0 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image>
+							<image v-if="dri.key == 0 && k == 0" src="@/static/waybill/ic_dingdan_sel@2x.png" class="icon"></image>
+							<image v-if="dri.key == 1 && k != 0" src="@/static/waybill/ic_peizai@2x.png" class="icon"></image>
+							<image v-if="dri.key == 1 && k == 0" src="@/static/waybill/ic_peizai_sel@2x.png" class="icon"></image>
+							<image v-if="dri.key == 2 && k != 0" src="@/static/waybill/ic_cangku@2x.png" class="icon"></image>
+							<image v-if="dri.key == 2 && k == 0" src="@/static/waybill/ic_cangku_sel@2x.png" class="icon"></image>
+							<image v-if="dri.key == 3 && k != 0" src="@/static/waybill/ic_yunshu@2x.png" class="icon"></image>
+							<image v-if="dri.key == 3 && k == 0" src="@/static/waybill/ic_yunshu_sel@2x.png" class="icon"></image>
+							<image v-if="dri.key == 4" src="@/static/waybill/ic_daohuo_sel@2x.png" class="icon"></image>
+							<image v-if="dri.key == 5" src="@/static/waybill/ic_ruku.png" class="icon"></image>
+						</view>
+						<view class="" :class="{primaryColor: k == 0}">{{dri.name}}</view>
+					</view>
+					<view class="item" v-for="item,i in dri.secondList">
+						<view class="h2" v-if="item.orderStatusDes">
+							<view class="icon_wrap"  v-if="i != 0">
+								<image src="@/static/driver/ic_mostarted.png" class="icon"></image>
+							</view>
+							<view v-else class="icon_wrap"></view>
+							<view class="text" :class="{placeholder3: k==0 && i== 0}" >
+								{{item.orderStatusDes}}
+								<text v-if="item.tel">锛屽彂璐т粨搴撶數璇濓細</text>
+								<text v-if="item.tel" @click="callPhone(item.tel)" class="primaryColor">{{item.tel}}</text>
+							</view>
+						</view>
+						<view class="time">{{item.recordDate}}</view>
+					</view>
 				</view>
-				<view class="time">202422222222</view>
-				<view class="separate"></view>
 			</view>
-			<view class="item">
-				<view class="h2 h1">
-					<view class="icon_wrap"><image src="@/static/driver/ic_dangqian.png" class="icon"></image></view>
-					<view class="text">鍒拌揪鍗歌揣鍦�</view>
-				</view>
-				<view class="time">202422222222</view>
-				<view class="separate separate_ac"></view>
-			</view>
-			<view class="item">
-				<view class="h2">
-					<view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view>
-					<view class="text">鍒拌揪鍗歌揣鍦�</view>
-				</view>
-				<view class="time">202422222222</view>
-				<view class="separate"></view>
-			</view> -->
-		</view>
+		</view>
 	</view>
 </template>
 
-<script>
-	import { orderInfoTms } from '@/api'
+<script>
+	import {
+		orderInfoTms
+	} from '@/api'
 	export default {
 		data() {
 			return {
-				id: '',
-				info: {},
-				param: {}
+				id: '',
+				info: {},
+				param: {},
+
+				latitude: 31.783205,
+				longitude: 117.262635,
+				markers: [],
+				includePoints: [
+					// {latitude: 31.783205, longitude: 117.262635}, {latitude: 36.783205, longitude: 118.10},
+				],
+
+				polyline: [
+					// {
+					// 	points: [{
+					// 		latitude: 31.783205,
+					// 		longitude: 117.262635
+					// 	}, {
+					// 		latitude: 36.783205,
+					// 		longitude: 118.10
+					// 	}],
+					// 	color: '#FF0000',
+					// 	width: 3
+					// }, 
+				]
 			};
-		},
-		onLoad(options) {
-			this.id = options.id
-			this.getDetail()
-		},
-		methods: {
-			getDetail() {
-				orderInfoTms({ contractNumber: this.id }).then(res => {
-					this.info = res.data
-				})
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.getDetail()
+		},
+		methods: {
+			getDetail() {
+				orderInfoTms({
+					contractNumber: this.id
+				}).then(res => {
+					this.info = res.data
+					if (res.data.deliveryLat && res.data.receiveLat) {
+						this.markers = []
+						this.markers.push({
+							id: 1,
+							latitude: res.data.deliveryLat,
+							longitude: res.data.deliveryLon,
+							width: 36,
+							iconPath: '/static/driver/ic_fahuodi@2x.png',
+							label: {
+								content: ' ',
+								padding: 3,
+								borderWidth: 2,
+								borderRadius: '50%',
+								borderColor: '#fff',
+								borderRadius: 32,
+								bgColor: '#FF0000'
+							}
+						})
+						this.markers.push({
+							id: 2,
+							latitude: res.data.receiveLat,
+							longitude: res.data.receiveLon,
+							width: 36,
+							iconPath: '/static/driver/ic_huowu@2x.png',
+							label: {
+								content: ' ',
+								padding: 3,
+								borderWidth: 2,
+								borderRadius: '50%',
+								borderColor: '#fff',
+								borderRadius: 32,
+								bgColor: '#FF0000'
+							}
+						})
+						this.latitude = (Number(this.markers[0].latitude) + Number(this.markers[1].latitude)) / 2 - 8
+						this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2
+					}
+					if (res.data && res.data.gisList && res.data.gisList.length > 0) {
+						this.gisInfo = res.data.gisList[0]
+					}
+				})
 			},
+			callPhone(phone){
+				uni.makePhoneCall({
+					phoneNumber: phone
+				});
+			}
 		}
 	}
 </script>
 
-<style lang="scss" scoped>
-	page{
-		background-color: #f7f7f7;
+<style lang="scss" scoped>
+	page {
+		background-color: #f7f7f7;
 	}
-	.main_app{
-		padding-top: 120rpx;
-		.bg{
-			width: 750rpx;
-			position: absolute;
-			left: 0;
-			top: 0;
-		}
-		.drive_info{
-			background: #fff;
-			border-radius: 16rpx;
-			padding: 30rpx;
-			margin-bottom: 20rpx;
-			.title{
-				font-weight: 500;
-				font-size: 32rpx;
-				color: #222222;
-				margin-bottom: 20rpx;
-			}
-			.line{
-				display: flex;
-				margin-bottom: 24rpx;
-				.label{
-					color: #666666;
-					margin-right: 40rpx;
-				}
-				.val{
-					
-				}
-			}
-			.item{
-				position: relative;
-				color: #999999;
-				margin-bottom: 30rpx;
-				.h2{
-					display: flex;
-					align-items: center;
-					height: 48rpx;
-					.icon_wrap{
-						width: 48rpx;
-						margin-right: 30rpx;
-						display: flex;
-						align-items: center;
-						justify-content: center;
-						.icon{
-							width: 24rpx;
-							height: 24rpx;
-							position: relative;
-							z-index: 2;
-						}
-					}
-				}
-				.h1{
-					.icon_wrap{
-						.icon{
-							width: 48rpx;
-							height: 48rpx;
-						}
-					}
-				}
-				.time{
-					padding-left: 78rpx;
-					font-size: 24rpx;
-					margin-top: 6rpx;
-				}
-				.separate{
-					height: calc( 100% );
-					width: 1rpx;
-					border: 1rpx dashed #666666;
-					position: absolute;
-					left: 22rpx;
-					top: 24rpx;
-					z-index: 1;
-				}
-				.separate_ac{
-					top: 48rpx;
-				}
-			}
-		}
-
-		.info {
-			border-radius: 12rpx;
-			margin-bottom: 20rpx;
-			padding: 0 30rpx;
-			background-color: #fff;
-			overflow: hidden;
+
+	.main_app {
+		padding: 0;
+		padding-top: 45vh;
+		.main_content{
+			height: 55vh ;
+			overflow: auto;
+			padding: 20rpx 30rpx 0;
 			position: relative;
-			z-index: 1;
-			.head {
+			z-index: 999;
+		}
+		#map {
+			width: 750rpx;
+			position: absolute;
+			left: 0;
+			top: 0;
+			height: 105vh;
+
+			::v-deep .amap-marker-label {
+				top: 36px !important;
+				left: 12px !important;
+				border: 3px solid #fff !important;
+				border-radius: 50%;
+				box-shadow: #222222 0px 0px 1px;
+			}
+		}
+
+		.drive_info {
+			background: #fff;
+			border-radius: 16rpx;
+			padding: 30rpx;
+			margin-bottom: 20rpx;
+			position: relative;
+			z-index: 999;
+			.separate {
+				height: calc( 100% - 250rpx );
+				width: 1rpx;
+				border: 1rpx dashed #CCCCCC;
+				position: absolute;
+				left: 53rpx;
+				top: 102rpx;
+				z-index: -1;
+			}
+			.title {
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #222222;
+				margin-bottom: 20rpx;
+			}
+
+			.line {
+				display: flex;
+				margin-bottom: 24rpx;
+
+				.label {
+					color: #666666;
+					margin-right: 40rpx;
+				}
+
+				.val {}
+			}
+			.item_title{
+				font-weight: 600;
+				font-size: 32rpx;
 				display: flex;
-				justify-content: space-between;
 				align-items: center;
-				padding: 0 30rpx;
-				width: 690rpx;
-				height: 84rpx;
-				margin: 0 -30rpx;
-				background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%);
-		
-				.code {
-					font-weight: 500;
-					font-size: 32rpx;
-					color: #222222;
-				}
-		
-				.status {
-					color: $uni-color-primary;
-				}
 			}
-		
-			.content {
-				padding: 20rpx 0rpx;
-				margin-bottom: 20rpx;
-		
-				.line {
-					display: flex;
-					margin-bottom: 16rpx;
-					font-size: 26rpx;
-		
-					.la {
-						color: #666666;
-						width: 140rpx;
-					}
-		
-					.val {}
-		
-					&:nth-last-child(1) {
-						margin-bottom: 0;
-					}
+			.icon_wrap {
+				width: 48rpx;
+				margin-right: 30rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				.icon {
+					width: 48rpx;
+					height: 48rpx;
+					position: relative;
+					z-index: 2;
 				}
-			}
-		
-		}
+			}
+			.item {
+				position: relative;
+				color: #999999;
+				margin-bottom: 30rpx;
+				.text{
+					color: #666666;
+				}
+				.icon {
+					width: 20rpx;
+					height: 20rpx;
+					position: relative;
+					z-index: 2;
+				}
+				.h2 {
+					display: flex;
+					align-items: center;
+					height: 48rpx;
+				}
+
+				.h1 {
+				}
+
+				.time {
+					padding-left: 78rpx;
+					font-size: 24rpx;
+					margin-top: 6rpx;
+				}
+			}
+		}
+
+		.info {
+			border-radius: 12rpx;
+			margin-bottom: 20rpx;
+			padding: 0 30rpx;
+			background-color: #fff;
+			overflow: hidden;
+			position: relative;
+			z-index: 1;
+
+			.head {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 0 30rpx;
+				width: 690rpx;
+				height: 84rpx;
+				margin: 0 -30rpx;
+				background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
+
+				.code {
+					font-weight: 500;
+					font-size: 32rpx;
+					color: #222222;
+				}
+
+				.status {
+					color: $uni-color-primary;
+				}
+			}
+
+			.content {
+				padding: 20rpx 0rpx;
+				margin-bottom: 20rpx;
+
+				.line {
+					display: flex;
+					margin-bottom: 16rpx;
+					font-size: 28rpx;
+
+					.la {
+						color: #666666;
+						width: 140rpx;
+					}
+
+					.val {}
+
+					&:nth-last-child(1) {
+						margin-bottom: 0;
+					}
+				}
+			}
+
+		}
 	}
-	.main_bg {
-		position: absolute;
-		left: 0;
+
+	.main_bg {
+		position: absolute;
+		left: 0;
 		top: 0;
-		width: 100%;
-		z-index: -1;
+		width: 100%;
+		z-index: -1;
 		color: #222222;
 	}
 </style>
\ No newline at end of file
diff --git a/h5/static/driver/ic_fahuodi@2x.png b/h5/static/driver/ic_fahuodi@2x.png
new file mode 100644
index 0000000..df70766
--- /dev/null
+++ b/h5/static/driver/ic_fahuodi@2x.png
Binary files differ
diff --git a/h5/static/driver/ic_huowu@2x.png b/h5/static/driver/ic_huowu@2x.png
new file mode 100644
index 0000000..f3a7d30
--- /dev/null
+++ b/h5/static/driver/ic_huowu@2x.png
Binary files differ
diff --git a/h5/static/driver/map_point@2x.png b/h5/static/driver/map_point@2x.png
new file mode 100644
index 0000000..b6fd406
--- /dev/null
+++ b/h5/static/driver/map_point@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_cangku@2x.png b/h5/static/waybill/ic_cangku@2x.png
new file mode 100644
index 0000000..88e6453
--- /dev/null
+++ b/h5/static/waybill/ic_cangku@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_cangku_sel@2x.png b/h5/static/waybill/ic_cangku_sel@2x.png
new file mode 100644
index 0000000..17cb1b6
--- /dev/null
+++ b/h5/static/waybill/ic_cangku_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dangqian@2x.png b/h5/static/waybill/ic_dangqian@2x.png
new file mode 100644
index 0000000..fc5a9e6
--- /dev/null
+++ b/h5/static/waybill/ic_dangqian@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_daohuo_sel@2x.png b/h5/static/waybill/ic_daohuo_sel@2x.png
new file mode 100644
index 0000000..ad26c44
--- /dev/null
+++ b/h5/static/waybill/ic_daohuo_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dingdan@2x.png b/h5/static/waybill/ic_dingdan@2x.png
new file mode 100644
index 0000000..2fdbf73
--- /dev/null
+++ b/h5/static/waybill/ic_dingdan@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_dingdan_sel@2x.png b/h5/static/waybill/ic_dingdan_sel@2x.png
new file mode 100644
index 0000000..03a3641
--- /dev/null
+++ b/h5/static/waybill/ic_dingdan_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_peizai@2x.png b/h5/static/waybill/ic_peizai@2x.png
new file mode 100644
index 0000000..d0d35d3
--- /dev/null
+++ b/h5/static/waybill/ic_peizai@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_peizai_sel@2x.png b/h5/static/waybill/ic_peizai_sel@2x.png
new file mode 100644
index 0000000..6e3f821
--- /dev/null
+++ b/h5/static/waybill/ic_peizai_sel@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_ruku.png b/h5/static/waybill/ic_ruku.png
new file mode 100644
index 0000000..d2a4f7b
--- /dev/null
+++ b/h5/static/waybill/ic_ruku.png
Binary files differ
diff --git a/h5/static/waybill/ic_yunshu@2x.png b/h5/static/waybill/ic_yunshu@2x.png
new file mode 100644
index 0000000..b992d62
--- /dev/null
+++ b/h5/static/waybill/ic_yunshu@2x.png
Binary files differ
diff --git a/h5/static/waybill/ic_yunshu_sel@2x.png b/h5/static/waybill/ic_yunshu_sel@2x.png
new file mode 100644
index 0000000..50c6ade
--- /dev/null
+++ b/h5/static/waybill/ic_yunshu_sel@2x.png
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 05ff784..08884a3 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,8 +1,8 @@
 
-// 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/#/'
 
diff --git a/screen/src/api/index.js b/screen/src/api/index.js
index ab60818..a20cb1c 100644
--- a/screen/src/api/index.js
+++ b/screen/src/api/index.js
@@ -49,6 +49,10 @@
 export const getFighalarmDataList = (data) => {
   return request('visitsAdmin/cloudService/board/api/fightingAdmin/alarmDataList', data)
 }
+// 娓╂箍搴︽暟鎹�
+export const getTemperatureHumidityData = (data) => {
+  return request('visitsAdmin/cloudService/board/api/fightingAdmin/getTemperatureHumidityData', data)
+}
 
 
 // 鍦哄唴璋冨害鐪嬫澘 浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻
@@ -68,7 +72,7 @@
   return request('visitsAdmin/cloudService/board/api/onSitDispatch/centerData', data)
 }
 // 鍦哄唴璋冨害鐪嬫澘 浠婃棩杞﹁締浣滀笟鎯呭喌
-export const cncarWorkSituation  = (data) => {
+export const cncarWorkSituation = (data) => {
   return request('visitsAdmin/cloudService/board/api/onSitDispatch/carWorkSituation', data)
 }
 // 鍦哄唴璋冨害鐪嬫澘 瀹炴椂浣滀笟鏁堢巼
@@ -104,6 +108,14 @@
 export const wltransportMeasure = (data) => {
   return request('visitsAdmin/cloudService/board/api/platformJobRun/transportMeasure', data)
 }
+// 鐗╂祦杩愯璋冨害鐪嬫澘 杞﹁締
+export const carsListPost = (data) => {
+  return request('/visitsAdmin/cloudService/board/api/platformJobRun/carsList', data)
+}
+// 鐗╂祦杩愯璋冨害鐪嬫澘 鏍规嵁杞﹁締鏌ヤ俊鎭�
+export const getCarsJobDetails = (data) => {
+  return request('/visitsAdmin/cloudService/board/api/platformJobRun/getCarsJobDetails', data, 'POST')
+}
 
 
 // 瀹夐槻绠℃帶澶у睆 涓績鏁版嵁
diff --git a/screen/src/assets/images/FireFighting/fire_right.png b/screen/src/assets/images/FireFighting/fire_right.png
new file mode 100644
index 0000000..4302af9
--- /dev/null
+++ b/screen/src/assets/images/FireFighting/fire_right.png
Binary files differ
diff --git a/screen/src/utils/request.js b/screen/src/utils/request.js
index a20accf..0beb37a 100644
--- a/screen/src/utils/request.js
+++ b/screen/src/utils/request.js
@@ -2,7 +2,7 @@
 
 const instance = axios.create({
   baseURL: '/gateway_interface',
-  timeout: 10000,
+  timeout: 30000,
   withCredentials: true,
   headers: {
     shopId: 1
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 8e383e4..8035926 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -25,7 +25,7 @@
               <img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
               <div>
                 <div class="name">鏈勾绱寰幆鐑熺</div>
-                <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
+                <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
                   data1.smokeBoxTotal.toLocaleString()
                     }}</span><span>鍙�</span></div>
               </div>
@@ -81,25 +81,30 @@
                 </div>
                 <div class="static" v-if="data1.electricityQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <template v-if="data1.electricityQuantity.sameNum">
+                    <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
                   <span class="val"
                     v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                       Math.abs(((data1.electricityQuantity.totalNum -
                         data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                     }}%</span>
-                  <span class="val" v-else>-</span>
+                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                   <span class="lab">鐜瘮</span>
-                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <template v-if="data1.electricityQuantity.ringNum">
+                    <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
+
                   <span class="val"
                     v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                       Math.abs(((data1.electricityQuantity.totalNum -
                         data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                     }}%</span>
-                  <span class="val" v-else>-</span>
+                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                 </div>
               </div>
               <div class="item">
@@ -112,21 +117,25 @@
                 </div>
                 <div class="static" v-if="data1.waterQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+                  <template v-if="data1.waterQuantity.sameNum">
+                    <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
+                  <span class="val" v-if="data1.waterQuantity.sameNum && data1.waterQuantity.sameNum != 0">{{
                     Math.abs(((data1.waterQuantity.totalNum -
-                      data1.waterQuantity.sameNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
-                  <span class="val" v-else>-</span>
+                      data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
                   <span class="lab">鐜瘮</span>
-                  <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+                  <template v-if="data1.waterQuantity.ringNum">
+                    <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
+                  <span class="val" v-if="data1.waterQuantity.ringNum && data1.waterQuantity.ringNum != 0">{{
                     Math.abs(((data1.waterQuantity.totalNum -
-                      data1.waterQuantity.ringNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
-                  <span class="val" v-else>-</span>
+                      data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
                 </div>
               </div>
               <div class="item">
@@ -139,23 +148,27 @@
                 </div>
                 <div class="static" v-if="data1.gasQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <template v-if="data1.gasQuantity.sameNum">
+                    <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
                   <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                     Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
                       * 100).toFixed(1))
                   }}%</span>
-                  <span class="val" v-else>-</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
                   <span class="lab">鐜瘮</span>
-                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
-                    src="@/assets/images/ic_up.webp" alt="" />
-                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <template v-if="data1.gasQuantity.sameNum">
+                    <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
+                      src="@/assets/images/ic_up.webp" alt="" />
+                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  </template>
                   <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                     Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
                       * 100).toFixed(1))
                   }}%</span>
-                  <span class="val" v-else>-</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
                 </div>
               </div>
             </div>
diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue
index 8e63144..3049f9f 100644
--- a/screen/src/views/FireFighting.vue
+++ b/screen/src/views/FireFighting.vue
@@ -37,7 +37,7 @@
                       <div class="line">
                         <span class="item name">{{ item.typeName }}</span>
                         <span class="item">{{ item.totalDeviceNum || 0 }}</span>
-                        <span class="item">{{ item.alarmDeviceNum || 0 }}</span>
+                        <span class="item" style="color: #FEAF01;">{{ item.alarmDeviceNum || 0 }}</span>
                         <span class="item">{{ item.shieldDeviceNum || 0 }}</span>
                         <span class="item">{{ item.errDeviceNum || 0 }}</span>
                         <span class="item">{{ item.offlineDeviceNum || 0 }}</span>
@@ -130,9 +130,9 @@
                   <span>娓╁害/婀垮害浼犳劅鍣�</span>
                 </div>
                 <div class="right">
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
-                  <div class="num">1/5</div>
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
+                  <img @click="changeData8(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
+                  <div class="num">{{dataIndex8 + 1}}/{{ dataList8.length }}</div>
+                  <img @click="changeData8(1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
                 </div>
               </div>
               <div class="list_wrap">
@@ -140,19 +140,19 @@
                   <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
                   <span>鍗歌揣鍖�1</span>
                 </div>
-                <div class="list">
+                <div class="list" v-if="dataList8 && dataList8.length > 0">
                   <div class="item">
                     <img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
                     <div class="content">
-                      <div class="num">23<span>掳C</span></div>
-                      <div class="la">闃堝�� 0锝�100掳C</div>
+                      <div class="num">{{ dataList8[dataIndex8].temperatureData?.latestValue }}<span>掳C</span></div>
+                      <div class="la">闃堝�� {{ dataList8[dataIndex8].temperatureData?.alarmLow }}锝瀧{ dataList8[dataIndex8].temperatureData?.alarmHigh }}掳C</div>
                     </div>
                   </div>
                   <div class="item">
                     <img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
                     <div class="content">
-                      <div class="num">23<span>%</span></div>
-                      <div class="la">闃堝�� 0锝�100%</div>
+                      <div class="num">{{ dataList8[dataIndex8].humidityData?.latestValue }}<span>%</span></div>
+                      <div class="la">闃堝�� {{ dataList8[dataIndex8].humidityData?.alarmLow }}锝瀧{ dataList8[dataIndex8].humidityData?.alarmHigh }}</div>
                     </div>
                   </div>
                 </div>
@@ -191,9 +191,9 @@
                     <div class="liquidlevel_wrap">
                       <div class="liquidlevel" id="liquidlevel"></div>
                       <div class="unit">3.45 <span>M</span></div>
-                      <div class="place">闃堝�� 0锝�4.50M</div>
+                      <div class="placeT">闃堝��</div>
                     </div>
-
+                    <div class="place">闃堝�� 0锝�4.50M</div>
                   </div>
                 </div>
               </div>
@@ -218,12 +218,12 @@
                 <div class="separate"></div>
                 <div class="item">
                   <div>璁″垝缁翠繚</div>
-                  <div class="num active">{{ dataList5.planProtectTotal }}</div>
+                  <div class="num acc">{{ dataList5.planProtectTotal }}</div>
                 </div>
                 <div class="separate"></div>
                 <div class="item">
                   <div>缁翠繚鐜�</div>
-                  <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="num active">{{
+                  <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="acc num">{{
                     ((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
                 </div>
               </div>
@@ -326,7 +326,8 @@
   getFightingcenterData,
   getFightingDeAlarm,
   getFightingDeviceY,
-  getFighalarmDataList
+  getFighalarmDataList,
+  getTemperatureHumidityData
 } from '@/api'
 
 const colors = ['#FEAF01', '#01ABFE', '#51F9E4']
@@ -746,8 +747,9 @@
   const data4 = dataList3.value.map(i => i.errNum)
   const months = dataList3.value.map(i => {
     return i.startDate.substring(5, 7) + '鏈�'
-  }
-  )
+  })
+
+
   const option = {
     legend: {
       x: "center",
@@ -919,6 +921,23 @@
   })
 }
 
+const dataList8 = ref([])
+const dataIndex8 = ref(0)
+const getData8 = () => {
+  getTemperatureHumidityData().then(res => {
+    dataList8.value = res.data || []
+  })
+}
+const changeData8 = (num) => {
+  if(dataIndex8.value == dataList8.value.length - 1  && num > 0){
+    dataIndex8.value = 0
+  }else if (dataIndex8.value == 0 && num < 0){
+    dataIndex8.value = dataList8.value.length - 1
+  }else{
+    dataIndex8.value =  dataIndex8.value + num
+  }
+}
+
 const autoplayFlag = (list = [], leng = 4, time = 2000) => {
   if (list.length > leng) {
     return { delay: time, disableOnInteraction: false }
@@ -953,6 +972,7 @@
   getData5()
   // getData6()
   getData7()
+  getData8()
   setInterval(() => {
     getData2()
     getData3()
@@ -963,6 +983,7 @@
   setInterval(() => {
 
     getData5()
+    getData8()
 
   }, 60 * 60 * 1000)
 
@@ -973,7 +994,7 @@
     loopFn1()
     loopFn2()
   }, 12000)
-  
+
 })
 
 
@@ -1173,6 +1194,7 @@
 
       .content_wrap {
         flex: 1;
+        flex-shrink: 0;
         margin-right: 20px;
 
         .title_wrap {
@@ -1216,8 +1238,9 @@
             }
 
             .icon {
-              width: 13px;
-              height: 16px;
+              width: 30px;
+              cursor: pointer;
+              /* height: 16px; */
             }
           }
         }
@@ -1248,7 +1271,17 @@
             .item {
               display: flex;
               align-items: center;
-
+              position: relative;
+              .place{
+                position: absolute;
+                top: 120px;
+                right: 70px;
+                z-index: 999;
+                font-size: 13px;
+                color: #869CC9;
+                width: 120px;
+                text-align: center;
+              }
               .icon {
                 width: 70px;
                 height: 70px;
@@ -1278,7 +1311,6 @@
             text-align: center;
             position: relative;
             left: 30px;
-
             .watergage {
               width: 130px;
               height: 112px;
@@ -1327,17 +1359,18 @@
               }
             }
 
-            .place {
+            .placeT {
               position: relative;
               bottom: 10px;
               left: 4px;
               font-size: 44px;
               color: #869CC9;
+              opacity: 0;
             }
 
             .liquidlevel {
-              width: 320px;
-              height: 420px;
+              width: 300px;
+              height: 396px;
 
             }
           }
@@ -1372,6 +1405,17 @@
               margin-top: 12px;
               font-weight: bold;
               font-size: 32px;
+
+            }
+
+            .acc {
+              background-image: -webkit-linear-gradient(top,
+                  #ffffff 0%,
+                  #c8ddff 66%,
+                  #95eefc 72%,
+                  #95eefc 100%);
+              -webkit-background-clip: text;
+              -webkit-text-fill-color: transparent;
             }
 
             .active {
diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue
index ccf7558..5e96964 100644
--- a/screen/src/views/LogisticsCenter.vue
+++ b/screen/src/views/LogisticsCenter.vue
@@ -722,7 +722,6 @@
   })
   myChart.on('click', function (params) {
     console.log(params.name)
-
   })
   window.addEventListener('resize', function () {//鎵ц
     myChart.resize()
diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue
index 8a4cebb..899b850 100644
--- a/screen/src/views/LogisticsEfficiency.vue
+++ b/screen/src/views/LogisticsEfficiency.vue
@@ -3,7 +3,7 @@
     <div class="main_app">
       <img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" />
       <div class="main_header">
-        <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
+        <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> -->
         <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-璋冨害鑳芥晥璺熻釜</div>
         <div class="time_wrap">
           <span class="date">{{ date }}</span>
@@ -30,14 +30,22 @@
               <div class="content">
                 <div class="num" v-if="data1.monthOutTotal || data1.yearOutTotal">{{ activeTab1 == 0 ?
                   data1.monthOutTotal.toLocaleString() : data1.yearOutTotal.toLocaleString() }}</div>
-                <div class="unit_wrap" v-if="data1.monthOutTotalOnYear || data1.yearOutTotalOnYear">
-                  <span style="color: #869CC9;">鍚屾瘮</span>
-                  <img
-                    v-if="(activeTab1 == 0 && data1.monthOutTotalOnYear > 0) || (activeTab1 == 1 && data1.yearOutTotalOnYear > 0)"
-                    src="@/assets/images/ic_up.png" class="icon" alt="">
-                  <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
-                  <span>{{ activeTab1 == 0 ? Math.abs(data1.monthOutTotalOnYear) : Math.abs(data1.yearOutTotalOnYear)
-                    }}%</span>
+                <div class="unit_wrap">
+                  <span style="color: #869CC9;">{{ activeTab1 == 0 ? '鍚屾瘮' : '鐜瘮' }}</span>
+                  <template v-if="activeTab1 == 0 && data1.monthLastOutTotal">
+                    <img v-if="data1.monthOutTotal > data1.monthLastOutTotal" src="@/assets/images/ic_up.png"
+                      class="icon" alt="">
+                    <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
+                  </template>
+                  <template v-if="activeTab1 == 1 && data1.yearLastOutTotal">
+                    <img v-if="data1.yearOutTotal > data1.yearLastOutTotal" src="@/assets/images/ic_up.png"
+                      class="icon" alt="">
+                    <img v-else src="@/assets/images/ic_down.png" class="icon" alt="">
+                  </template>
+                  
+                  <span v-if="activeTab1 == 0 && data1.monthLastOutTotal">{{ Math.abs((((data1.monthOutTotal - data1.monthLastOutTotal)/data1.monthLastOutTotal) * 100).toFixed(1)) }}%</span>
+                  <span v-else-if="activeTab1 == 1 && data1.yearLastOutTotal">{{ Math.abs((((data1.yearOutTotal - data1.yearLastOutTotal)/data1.yearLastOutTotal) * 100).toFixed(1)) }}%</span>
+                  <span v-else>-</span>
                 </div>
               </div>
               <div class="train_wrap">
@@ -151,21 +159,33 @@
             <div class="list">
               <div class="item">
                 <img src="@/assets/images/LogisticsCenter/car_zaitu@2x.png" alt="">
-                <span>鍦ㄩ�旓細{{ 8 }}</span>
+                <span>鍦ㄩ�旓細{{ data7.busyNum }}</span>
               </div>
               <div class="item">
                 <img src="@/assets/images/LogisticsCenter/car_kongxian@2x.png" alt="">
-                <span>绌洪棽锛歿{ 8 }}</span>
+                <span>绌洪棽锛歿{ data7.idleNum }}</span>
               </div>
               <div class="item">
                 <img src="@/assets/images/LogisticsCenter/car_lixian@2x.png" alt="">
-                <span>绂荤嚎锛歿{ 8 }}</span>
+                <span>绂荤嚎锛歿{ data7.offlineNum }}</span>
               </div>
             </div>
             <div class="echart_wrap">
               <div ref="echartMap" class="echart_map" id="echartMap"></div>
             </div>
-
+            <div class="warnning_info">
+              <div class="head" @click="isShowCarW = !isShowCarW">
+                <img src="../assets/images/FireFighting/fire_right.png" alt="">
+                <span>杞﹁締鎶ヨ</span>
+              </div>
+              <div v-if="isShowCarW" class="war_list">
+                <div class="line" v-for="item in data7.eventList">
+                  <div class="id_card">{{ item.carCode }}</div>
+                  <div class="title">{{ item.title }}</div>
+                  <div v-if="item.time">{{ item.time.slice(11) }}</div>
+                </div>
+              </div>
+            </div>
           </div>
         </div>
         <div class="right_box">
@@ -187,7 +207,7 @@
                 <img src="@/assets/images/energy_ef/ic_chukuxiaolv@2x.png" alt="">
                 <div class="content">
                   <div class="name">鍑哄簱鏁堢巼</div>
-                  <div class="num"><span>{{ activeTab12 == 0 ? data1.todayInRata : data1.monthInRata }}</span>涓囨敮/灏忔椂
+                  <div class="num"><span>{{ activeTab12 == 0 ? data1.todayOutRate : data1.monthOutRate }}</span>涓囨敮/灏忔椂
                   </div>
                 </div>
               </div>
@@ -195,7 +215,7 @@
                 <img src="@/assets/images/energy_ef/ic_rukuxiaolv@2x.png" alt="">
                 <div class="content">
                   <div class="name">鍏ュ簱鏁堢巼</div>
-                  <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.monthOutTotal : data1.yearOutTotal
+                  <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.todayInRate : data1.monthInRate
                       }}</span>涓囨敮/灏忔椂</div>
                 </div>
               </div>
@@ -259,7 +279,7 @@
         </div>
       </div>
       <!--  -->
-      <div class="modal" v-if="showModal">
+      <div class="modal" v-if="activeCar && activeCar.phone">
         <div class="title_head">
           <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
           <span>鐨朼222</span>
@@ -314,7 +334,7 @@
           </div>
         </div>
       </div>
-      <div class="modal_mask" v-if="showModal" @click="showModal = false"></div>
+      <div class="modal_mask" v-if="activeCar && activeCar.phone" @click="activeCar = {}"></div>
     </div>
   </v-scale-screen>
 </template>
@@ -336,6 +356,8 @@
   wlstockList,
   wltotalInList,
   wltransportMeasure,
+  carsListPost,
+  getCarsJobDetails
 } from '@/api'
 import 'swiper/css/swiper.min.css'
 import Swiper from 'swiper'
@@ -351,13 +373,6 @@
   time.value = dayjs().format('HH:mm:ss')
 
 }, 1000)
-
-const showModal = ref(false)
-const modalTab = ref(0)
-const modalTabClick = (val) => {
-  modalTab.value = val
-}
-
 
 
 const initEnergy = () => {
@@ -381,42 +396,62 @@
       left: '3%',
       right: '4%',
       bottom: '3%',
-      top: '18%',
+      top: '26%',
       containLabel: true
     },
     tooltip: {
       trigger: 'axis'
     },
-    xAxis: [{
-      nameGap: 5,
-      type: 'category',
-      axisLine: {
-        show: true,
-        lineStyle: {
-          color: '#999'
+    xAxis: [
+      {
+        nameGap: 5,
+        type: 'category',
+        axisLine: {
+          show: true,
+          lineStyle: {
+            color: '#999'
+          },
         },
-      },
-      axisLabel: {
-        color: '#869CC9'
-        // fontSize: 24,
-      },
-      axisTick: {
-        show: false,
-      },
-      data: dataList2.value.map(i => i.planDate),
-    }],
+        axisLabel: {
+          color: '#869CC9'
+          // fontSize: 24,
+        },
+        axisTick: {
+          show: false,
+        },
+        data: dataList2.value.map(i => i.planDateStrT),
+      }
+    ],
     yAxis: [
       {
-        nameTextStyle: {
-          color: '#869CC9',
-        },
-        offset: 0,
-        name: '涓囨敮',
         type: 'value',
+        name: '涓�',
+        min: 0,
         axisLabel: {
           show: true,
           color: "#869CC9",
         },
+        splitLine: {
+          show: true,
+          lineStyle: {
+            width: 1,
+            color: "rgba(49,105,129,0.4)",
+            type: 'dashed'
+          }
+        },
+        // interval: 5,
+        axisLabel: {
+          formatter: '{value}'
+        }
+      },
+      {
+        type: 'value',
+        name: '涓囨敮',
+        nameTextStyle: {
+          color: '#869CC9',
+        },
+        offset: 0,
+        type: 'value',
         axisLine: {
           show: true,
         },
@@ -428,18 +463,10 @@
             type: 'dashed'
           }
         },
-      },
-      {
-        type: 'value',
-        name: '%',
-        min: 0,
-        max: 100,
-        // interval: 5,
         axisLabel: {
-          formatter: '{value}%'
-        },
-        splitLine: false
-      }
+          formatter: '{value}'
+        }
+      },
     ],
     series: [
       {
@@ -452,6 +479,7 @@
           position: 'top',
           color: '#fff',
         },
+        yAxisIndex: 1,
         itemStyle: {
           color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
             {
@@ -475,6 +503,7 @@
         name: '浠诲姟瀹屾垚閲�',
         type: 'bar',
         barWidth: 10,
+        yAxisIndex: 1,
         label: {
           show: false,
           position: 'top',
@@ -504,6 +533,7 @@
         type: 'line',
         smooth: false,
         showAllSymbol: true,
+        yAxisIndex: 0,
         symbol: 'none',
         lineStyle: {
           color: "#1a43bc"
@@ -555,26 +585,24 @@
 const initMap = () => {
   var myChart = echarts.init(echartMap.value)
   echarts.registerMap('js', ahJSON)
-  var scatterData = [
-    {
-      name: '骞煎効鍥�',
-      num: 15,
-      color: ['#1984ff', '#184b8d'],
-      img: icKongxian,
-      data: [
-        { name: '', value: [117.25, 31.49] },
-      ],
-    },
-    {
-      name: '灏忓',
-      num: 11,
-      color: ['#f16c08', '#7f3710'],
-      img: icLixian,
-      data: [
-        { name: '', value: [118.5, 31.08] },
-      ],
+  const scatterData = data7.value.carsList.map(item => {
+    return {
+      name: item.terminalId,
+      img: item.status == 0 ? icLixian : item.status == 1 || item.status == 2 ? icZaitu : icKongxian,
+      data: [{ code: item.plateNum, value: [item.longitude, item.latitude] }]
     }
-  ]
+  })
+  // var scatterData = [
+  //   {
+  //     name: '骞煎効鍥�',
+  //     num: 15,
+  //     // color: ['#1984ff', '#184b8d'],
+  //     img: icKongxian,
+  //     data: [
+  //       { name: 'asdasdas ', value: [117.25, 31.49] },
+  //     ],
+  //   },
+  // ]
   let serData = []
   scatterData.forEach((item) => {
     serData.push({
@@ -609,30 +637,11 @@
       },
       symbolSize: [32, 40],
       hoverAnimation: true,
-
       zlevel: 99,
       data: item.data,
     })
   }
   )
-  var center = {
-    '鍚堣偉甯�': [117.25, 31.83],
-    '婊佸窞甯�': [118.32, 32.3],
-    '鑺滄箹甯�': [118.43, 31.35],
-    '闃滈槼甯�': [115.38, 32.89],
-    '铓屽煚甯�': [117.39, 32.92],
-    '娣崡甯�': [116.99, 32.63],
-    '椹瀺灞卞競': [118.5, 31.71],
-    '瀹夊簡甯�': [117.05, 30.52],
-    '榛勫北甯�': [118.33, 29.71],
-    '閾滈櫟甯�': [117.81, 30.94],
-    '瀹垮窞甯�': [116.98, 33.64],
-    '娣寳甯�': [116.8, 33.9],
-    '鍏畨甯�': [116.51, 31.75],
-    '姹犲窞甯�': [117.49, 30.66],
-    '瀹e煄甯�': [118.76, 30.94],
-    '浜冲窞甯�': [115.78, 33.84],
-  }
   var data = [
     { name: "鍚堣偉甯�", value: 3 },
     { name: "婊佸窞甯�", value: 0 },
@@ -659,16 +668,6 @@
       x: 'center',
       textStyle: {
         color: '#ffffff'
-      }
-    },
-    tooltip: {
-      trigger: 'item',
-      formatter: function (params) {
-        if (typeof (params.value)[2] == "undefined") {
-          return params.name + ' : ' + params.value
-        } else {
-          return params.name + ' : ' + params.value[2]
-        }
       }
     },
     visualMap: {
@@ -712,7 +711,7 @@
         symbolSize: 14,
         label: {
           normal: {
-            show: true,
+            show: false,
             formatter: function (params) {
               return '{fline|鍦扮偣锛�' + params.data.city + '}\n{tline|' + (params.data.info || '鍙戠敓xx闆嗕欢') + '}'
             },
@@ -751,10 +750,7 @@
         label: {
           show: true,
           color: '#ffffff',
-          emphasis: {
-            color: 'white',
-            show: false
-          }
+
         },
         itemStyle: {
           normal: {
@@ -763,9 +759,15 @@
             areaColor: '#1d3b60'
           },
           emphasis: {
-            areaColor: '#FA8C16',
-            borderWidth: 1,
-            color: '#428598'
+            disabled: true,
+            // areaColor: '#FA8C16',
+            // borderWidth: 1,
+            // color: '#428598',
+            label: {
+              show: true, // 濮嬬粓鏄剧ず鏂囧瓧
+              color: '#fff' // 璁剧疆鏂囧瓧棰滆壊
+            },
+            areaColor: null
           }
         },
         data: data
@@ -775,10 +777,22 @@
   }
 
   myChart.setOption(option)
+  myChart.on('click', function (params) {
+    const item = params.data
+    getCarsJobDetails({ carCode: item.code }).then(res => {
+      activeCar.value = res.data
+    })
+  })
   window.addEventListener('resize', function () {//鎵ц
     myChart.resize()
   })
 }
+const activeCar = ref({})
+const modalTab = ref(0)
+const modalTabClick = (val) => {
+  modalTab.value = val
+}
+
 
 const data1 = ref({})
 const activeTab1 = ref(0)
@@ -798,11 +812,17 @@
 
 const dataList2 = ref([])
 const activeTab2 = ref(0)
-const tabClick2 = (val) => { activeTab2.value = val }
+const tabClick2 = (val) => {
+  activeTab2.value = val
+  getData2()
+}
 const getData2 = () => {
   wltransportMeasure({ queryType: activeTab2.value }).then(res => {
-    const result = res.data
+    const result = res.data || []
     dataList2.value = result
+    dataList2.value.forEach(item => {
+      item.planDateStrT = activeTab2.value == 2 ? dayjs(item.planDate).format('M') : dayjs(item.planDate).format('M.D')
+    })
     initEnergy()
   })
 }
@@ -831,7 +851,10 @@
 }
 const data4 = ref({})
 const activeTab4 = ref(0)
-const tabClick4 = (val) => { activeTab4.value = val }
+const tabClick4 = (val) => {
+  activeTab4.value = val
+  getData4()
+}
 const getData4 = () => {
   wljobData({ queryType: activeTab4.value }).then(res => {
     const result = res.data
@@ -850,7 +873,7 @@
       return i
     })
     dataList5.value.forEach(i => {
-      i.rate = ((i.num / count) * 100).toFixed(0)
+      i.rate = count == 0 ? 0 : ((i.num / count) * 100).toFixed(0)
     })
     data5.value = count
     initEchart1()
@@ -859,8 +882,18 @@
 const dataList6 = ref([])
 const getData6 = () => {
   wlstockList().then(res => {
-    const result = res.data
+    const result = res.data.stockList || []
     dataList6.value = result
+  })
+}
+
+const isShowCarW = ref(false)
+const data7 = ref({})
+const getData7 = () => {
+  carsListPost().then(res => {
+    const result = res.data || {}
+    data7.value = result
+    initMap()
   })
 }
 
@@ -896,8 +929,7 @@
   getData4()
   getData5()
   getData6()
-
-  initMap()
+  getData7()
 
   setTimeout(() => {
     loopFn1()
@@ -1212,7 +1244,7 @@
       }
 
       .echart_wrap {
-        width: 100%;
+        width: 86%;
         height: 100%;
 
         .echart_map {
@@ -1221,6 +1253,58 @@
           /* transform: rotate(60deg); */
         }
       }
+
+      .warnning_info {
+        position: absolute;
+        right: 0;
+        bottom: 0;
+        border-top: 1px solid #5ecbce;
+        border-bottom: 1px solid #5ecbce;
+
+        .head {
+          display: flex;
+          width: 280px;
+          height: 57px;
+          background: rgba(0, 30, 63, 0.4);
+          backdrop-filter: blur(5px);
+          display: flex;
+          align-items: center;
+          padding-left: 10px;
+          font-weight: bold;
+          font-size: 16px;
+          cursor: pointer;
+
+          img {
+            width: 14px;
+            margin-right: 10px;
+          }
+        }
+
+        .war_list {
+          max-height: 300px;
+          overflow: auto;
+
+          .line {
+            font-size: 13px;
+            color: #D2E0FF;
+            display: flex;
+            align-items: center;
+            height: 30px;
+
+            div {
+              flex: 3;
+            }
+
+            .id_card {
+              color: #00F2F3;
+            }
+
+            .title {
+              flex: 4;
+            }
+          }
+        }
+      }
     }
   }
 
diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue
index 1496439..17f7c0a 100644
--- a/screen/src/views/SecurityControl.vue
+++ b/screen/src/views/SecurityControl.vue
@@ -422,7 +422,7 @@
               </div>
               <div class="list two-swiper">
                 <div class="swiper-wrapper">
-                  <template v-for="item, i in dataList2">
+                  <template v-for="item, i in dataList2.filter(i => i.total > 0)">
                     <div class="item two-swiper-slide swiper-slide">
                       <div class="line">
                         <div class="driver">{{ item.deviceType }}</div>
@@ -948,7 +948,7 @@
     initialSlide: 0,
     direction: 'vertical', //绔栫洿鏂瑰悜
     slidesPerView: 3,
-    autoplay: autoplayFlag(dataList2.value, 3, 4000),
+    autoplay: autoplayFlag(dataList2.value.filter(i => i.total > 0), 3, 4000),
     observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
   })
 }
@@ -1688,7 +1688,8 @@
         display: flex;
         justify-content: center;
         align-items: center;
-        padding: 16px 24px;
+        padding-top: 16px;
+        padding-left: 24px;
 
         .echart_wrap {
           position: relative;
@@ -1724,7 +1725,7 @@
         }
 
         .list {
-          margin-left: 36px;
+          margin-left: 32px;
           flex: 1;
           display: flex;
           flex-direction: column;
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index 4bc1764..159aea2 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -2,7 +2,6 @@
   <v-scale-screen width="1920" height="960">
     <div class="main_app">
       <img src="@/assets/images/task/bg@2x.png" class="main_bg" alt="" />
-      <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
       <div class="main_header">
         <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
         <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-浣滀笟鏁堣兘缁熺</div>
@@ -66,7 +65,7 @@
             <div class="list one-swiper">
               <div class="swiper-wrapper">
                 <div class="line one-swiper-slide swiper-slide" v-for="item, i in dataList2" :key="i">
-                  <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
+                  <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
                   <div class="id_card">{{ item.platformName }}</div>
                   <div class="wrap">
                     <ChargeRate :rate="item.rate" />
@@ -130,9 +129,7 @@
             </div>
           </div>
           <div class="center_box_bg">
-            <!-- <div class="no no1" @click="workModalClick">1</div>
-            <div class="no no2" @click="workModalClick">2</div>
-            <div class="no no3" @click="workModalClick">3</div> -->
+            <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
             <div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal">
               <img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt="">
               <div class="head">
@@ -165,9 +162,11 @@
             </div>
           </div>
           <div class="center_box_two">
-            <!-- <div class="videos">
-              <div class="video" v-for="i in 4"></div>
-            </div> -->
+            <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos">
+              <div class="video" v-for="indexCode in data4.videoIndexCodes">
+                <Video v-if="indexCode" :href="data4.videoPluginUrl" :indexCode="indexCode" />
+              </div>
+            </div>
             <div class="list">
               <div class="line header">
                 <div>鏈堝彴鍚嶇О</div>
@@ -227,22 +226,24 @@
             <div class="echart_wrap">
               <div class="echart3" id="echart3"></div>
             </div>
-            <div class="list">
-              <div class="line" v-for="item, i in data6?.platformLogList">
-                <div class="time_wrap">
-                  <div class="time" :style="{
-                    backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
-                  }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
-                  <div class="sp" :style="{
-                    backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
-                  }"></div>
-                  <div class="dian" :style="{
-                    backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
-                  }"></div>
+            <div class="list four-swiper">
+              <div class="swiper-wrapper">
+                <div class="line four-swiper-slide swiper-slide" v-for="item, i in data6?.platformLogList">
+                  <div class="time_wrap">
+                    <div class="time" :style="{
+                      backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+                    }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
+                    <div class="sp" :style="{
+                      backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+                    }"></div>
+                    <div class="dian" :style="{
+                      backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+                    }"></div>
+                  </div>
+                  <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
+                  <div class="status">{{ statusMap[item.objType] }}</div>
+                  <div class="desc">{{ item.content }}</div>
                 </div>
-                <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
-                <div class="status">{{ statusMap[item.objType] }}</div>
-                <div class="desc">{{ item.content }}</div>
               </div>
             </div>
           </div>
@@ -273,7 +274,7 @@
                           <span>鍛婅锛歿{ item.eventContent }}</span>
                         </div>
                         <div class="wrap">
-                          <!-- <span style="margin-right: 30px;">鐘舵�侊細寰呭鐞�</span> -->
+                          <span style="margin-right: 50px;">{{ item.platformName }}</span>
                           <span>宸插彂鐢燂細{{ item.haveTime }}</span>
                         </div>
                       </div>
@@ -305,6 +306,7 @@
 dayjs.extend(duration)
 import 'swiper/css/swiper.min.css'
 import Swiper from 'swiper'
+import Video from './videoUrl/Video.vue'
 import {
   cnplatformGroupFinish,
   cnplatformDuration,
@@ -563,7 +565,7 @@
     }]),
   ]
   const temp = []
-  temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100.0' : 0 })
+  temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100' : 0 })
   temp.push({ name: '宸插彨鍙�', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
   temp.push({ name: '宸蹭綔涓�', value: data4.value?.workedNum || 0, rate: data4.value?.signedNum ? (data4.value.workedNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
   temp.push({ name: '宸插畬鎴�', value: data4.value?.doneNum || 0, rate: data4.value?.signedNum ? (data4.value.doneNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
@@ -754,7 +756,7 @@
 
 const data6 = ref({})
 const getData6 = () => {
-  cncarWorkSituation({ size: 7 }).then(res => {
+  cncarWorkSituation({ size: 30 }).then(res => {
     const result = res.data
     data6.value = result
   })
@@ -773,6 +775,23 @@
 
 const showWorkModal = ref(false)
 const workModalParam = ref({})
+// point_icon
+const pointList = ref([
+  { left: 230, top: 190 },
+  { left: 265, top: 180 },
+  { left: 300, top: 170 },
+  { left: 335, top: 160 },
+  { left: 370, top: 150 },
+
+  { left: 530, top: 50  },
+  { left: 550, top: 65 },
+  { left: 570, top: 75 },
+  { left: 590, top: 75 },
+  { left: 600, top: 80 },
+  { left: 850, top: 60 },
+
+])
+
 const platformClick = (val) => {
   workModalParam.value = val
   console.log(val)
@@ -812,6 +831,15 @@
     observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
   })
 }
+const loopFn6 = () => {
+  var newSwiper1 = new Swiper('.four-swiper', {
+    initialSlide: 0,
+    direction: 'vertical', //绔栫洿鏂瑰悜
+    slidesPerView: 7,
+    autoplay: autoplayFlag(data6.value.platformLogList, 7, 4000),
+    observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+  })
+}
 const autoplayFlag = (list = [], leng = 4, time = 2000) => {
   if (list.length > leng) {
     return { delay: time, disableOnInteraction: false }
@@ -845,6 +873,7 @@
     loopFn2()
     loopFn5()
     loopFn7()
+    loopFn6()
   }, 12000)
 })
 
@@ -1068,6 +1097,13 @@
       display: flex;
       justify-content: center;
       align-items: center;
+      position: relative;
+      .point_icon {
+        position: absolute;
+        left: 850px;
+        top: 60px;
+      }
+
       .no {
         width: 28px;
         height: 28px;
@@ -1149,8 +1185,7 @@
 
     .center_box_two {
       width: 100%;
-      background: rgba(0, 86, 255, 0.05);
-      backdrop-filter: blur(5px);
+      
 
       .videos {
         width: 100%;
@@ -1173,7 +1208,8 @@
         width: 100%;
         height: 210px;
         overflow-y: auto;
-
+        background: rgba(0, 86, 255, 0.05);
+      backdrop-filter: blur(5px);
         .two-swiper {
           height: 180px;
           overflow: hidden;
@@ -1203,7 +1239,7 @@
         }
 
         .lined {
-          background: rgba(0,160,255,0.6) !important;
+          background: rgba(0, 160, 255, 0.6) !important;
           font-weight: 600 !important;
         }
 
@@ -1226,6 +1262,7 @@
       backdrop-filter: blur(5px);
       background: rgba(0, 86, 255, 0.05);
       backdrop-filter: blur(5px);
+
       .static_wrap {
         display: flex;
         padding: 20px 0 15px;
@@ -1261,14 +1298,16 @@
 
       .list {
         margin: 0 20px 0;
-        width: 100%;
-        height: 222px;
+        width: 430px;
+        height: 231px;
+        overflow: hidden;
+        scrollbar-width: none;
 
         .line {
           display: flex;
           align-items: center;
           font-size: 12px;
-          height: 33px;
+          height: 33px !important;
           color: #D2E0FF;
           width: 100%;
 
@@ -1321,6 +1360,7 @@
     .right_box_two {
       padding: 20px 20px 0;
       margin-top: 20px;
+
       .list {
         height: 220px;
         overflow: hidden;
@@ -1328,6 +1368,7 @@
         background: rgba(0, 86, 255, 0.05);
         backdrop-filter: blur(5px);
         padding-top: 15px;
+
         .item {
           display: flex;
           font-size: 13px;
@@ -1561,12 +1602,6 @@
   position: relative;
   z-index: -2;
   font-size: 14px;
-
-  .point_icon {
-    position: absolute;
-    left: 800px;
-    top: 420px;
-  }
 
   .main_bg {
     position: absolute;

--
Gitblit v1.9.3