From 4e2e52b766d87fc528d02bdebc1757c3dda8c596 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 26 二月 2025 09:22:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/platform/LogisticsRecord/waybill.vue                                                 |    4 
 h5/pages/staff/vehicle/shiwai.vue                                                                    |   22 
 admin/src/views/business/empower.vue                                                                 |    6 
 h5/pages/staff/vehicle/sendACar.vue                                                                  |   19 
 admin/src/views/business/retention.vue                                                               |    2 
 h5/pages/staff/vehicle/shinei.vue                                                                    |   22 
 h5/pages/visitorApplication/memberSel.vue                                                            |  282 +++
 screen/src/views/SecurityControl.vue                                                                 |   34 
 admin/src/components/business/OperaHiddenDangerParamWindow.vue                                       |    1 
 admin/src/views/statistics/platformStatic.vue                                                        |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java |    2 
 h5/pages/staff/task/driver.vue                                                                       |    6 
 admin/src/views/business/platformEvent.vue                                                           |    1 
 admin/src/views/business/retentionCars.vue                                                           |    8 
 admin/src/views/business/platformInterfaceLog.vue                                                    |    1 
 admin/src/views/meeting/bookings.vue                                                                 |   22 
 admin/src/views/platform/LogisticsRecord/operation.vue                                               |    1 
 admin/src/views/business/smsEmail.vue                                                                |    6 
 h5/pages/staff/vehicle/apply.vue                                                                     |  122 
 admin/src/views/business/carEvent.vue                                                                |    4 
 h5/pages.json                                                                                        |    7 
 h5/pages/staff/visitorReport.vue                                                                     |   20 
 admin/src/views/business/wmsInterfaceLog.vue                                                         |    1 
 h5/pages/driver/index.vue                                                                            |   18 
 admin/src/views/business/trainTime.vue                                                               |  134 -
 admin/src/views/platform/LogisticsRecord/leaveAuth.vue                                               |    1 
 h5/pages/staff/meetingSel.vue                                                                        |    7 
 admin/src/views/platform/LogisticsRecord/operationCity.vue                                           |    1 
 h5/pages/driver/reservedDetail.vue                                                                   |    6 
 admin/src/views/business/interfaceLog.vue                                                            |    1 
 h5/pages/visitorApplication/visitorApplication.vue                                                   | 2803 ++++++++++++++++++------------------
 h5/pages/staff/task/index.vue                                                                        |   22 
 admin/src/views/task/index.vue                                                                       |    2 
 admin/src/views/platform/LogisticsRecord/subscribe.vue                                               |    4 
 admin/src/views/business/platformBroadcastLog.vue                                                    |    4 
 h5/pages/staff/snapshot.vue                                                                          |   22 
 admin/src/views/platform/LogisticsRecord/waybillQuery.vue                                            |    1 
 h5/pages/staff/vehicle/applePeo.vue                                                                  |  752 +++++----
 h5/pages/staff/task/vDangetAppr.vue                                                                  |   65 
 admin/src/views/business/deviceEvent.vue                                                             |    4 
 40 files changed, 2,427 insertions(+), 2,017 deletions(-)

diff --git a/admin/src/components/business/OperaHiddenDangerParamWindow.vue b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
index 4b9a8a0..f373969 100644
--- a/admin/src/components/business/OperaHiddenDangerParamWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerParamWindow.vue
@@ -95,6 +95,7 @@
             })
           }
         }
+        this.loadMember()
       })
     },
     getfindCompanyTreePage() {
diff --git a/admin/src/views/business/carEvent.vue b/admin/src/views/business/carEvent.vue
index bd9412a..a14baf4 100644
--- a/admin/src/views/business/carEvent.vue
+++ b/admin/src/views/business/carEvent.vue
@@ -140,8 +140,8 @@
   methods: {
     reset() {
       this.$refs.searchForm.resetFields()
-      this.searchForm.radio = '0'
-      this.changeRadio('0')
+      this.searchForm.radio = ''
+      // this.changeRadio('0')
       this.time = []
       this.search()
     },
diff --git a/admin/src/views/business/deviceEvent.vue b/admin/src/views/business/deviceEvent.vue
index 02ad4f8..6dd132c 100644
--- a/admin/src/views/business/deviceEvent.vue
+++ b/admin/src/views/business/deviceEvent.vue
@@ -155,8 +155,8 @@
     reset() {
       this.$refs.searchForm.resetFields()
       this.time = []
-      this.searchForm.radio = '0'
-      this.changeRadio('0')
+      this.searchForm.radio = ''
+      // this.changeRadio('0')
       this.search()
     }
   }
diff --git a/admin/src/views/business/empower.vue b/admin/src/views/business/empower.vue
index 5be2ce0..bab44d4 100644
--- a/admin/src/views/business/empower.vue
+++ b/admin/src/views/business/empower.vue
@@ -173,9 +173,9 @@
     },
     reset () {
       this.$refs.searchForm.resetFields()
-      this.searchForm.radio = '0'
-      this.changeRadio('0')
-      // this.search()
+      this.searchForm.radio = ''
+      // this.changeRadio('0')
+      this.search()
     }
   }
 }
diff --git a/admin/src/views/business/interfaceLog.vue b/admin/src/views/business/interfaceLog.vue
index 4fd6355..69ce768 100644
--- a/admin/src/views/business/interfaceLog.vue
+++ b/admin/src/views/business/interfaceLog.vue
@@ -137,6 +137,7 @@
       this.$refs.searchForm.resetFields()
       this.searchForm.startDate = ''
       this.searchForm.endDate = ''
+      this.searchForm.radio = ''
       this.time = []
       this.search()
     }
diff --git a/admin/src/views/business/platformBroadcastLog.vue b/admin/src/views/business/platformBroadcastLog.vue
index 14c7504..9abaad8 100644
--- a/admin/src/views/business/platformBroadcastLog.vue
+++ b/admin/src/views/business/platformBroadcastLog.vue
@@ -145,8 +145,8 @@
     reset () {
       this.$refs.searchForm.resetFields()
       this.time = []
-      this.searchForm.radio = '0'
-      this.changeRadio('0')
+      this.searchForm.radio = ''
+      // this.changeRadio('0')
       this.search()
     }
   }
diff --git a/admin/src/views/business/platformEvent.vue b/admin/src/views/business/platformEvent.vue
index 193fbf5..5271aab 100644
--- a/admin/src/views/business/platformEvent.vue
+++ b/admin/src/views/business/platformEvent.vue
@@ -152,6 +152,7 @@
       this.$refs.searchForm.resetFields()
       this.searchForm.startDate = ''
       this.searchForm.endDate = ''
+      this.searchForm.radio = ''
       this.time = []
       this.search()
     }
diff --git a/admin/src/views/business/platformInterfaceLog.vue b/admin/src/views/business/platformInterfaceLog.vue
index 70b00ca..af1910b 100644
--- a/admin/src/views/business/platformInterfaceLog.vue
+++ b/admin/src/views/business/platformInterfaceLog.vue
@@ -137,6 +137,7 @@
       this.$refs.searchForm.resetFields()
       this.searchForm.startDate = ''
       this.searchForm.endDate = ''
+      this.searchForm.radio = ''
       this.time = []
       this.search()
     }
diff --git a/admin/src/views/business/retention.vue b/admin/src/views/business/retention.vue
index 0be1f07..054b175 100644
--- a/admin/src/views/business/retention.vue
+++ b/admin/src/views/business/retention.vue
@@ -137,7 +137,7 @@
     reset() {
       this.$refs.searchForm.resetFields()
       this.searchForm.startTime = ''
-      this.searchForm.radio = '0'
+      this.searchForm.radio = ''
       this.searchForm.endTime = ''
       this.time = []
       this.search()
diff --git a/admin/src/views/business/retentionCars.vue b/admin/src/views/business/retentionCars.vue
index 0719476..e4756e2 100644
--- a/admin/src/views/business/retentionCars.vue
+++ b/admin/src/views/business/retentionCars.vue
@@ -51,7 +51,7 @@
         <el-table-column prop="carNo" label="杞︾墝鍙�" min-width="100px"></el-table-column>
         <el-table-column prop="companyName" label="缁勭粐" min-width="250px">
           <template slot-scope="{ row }">
-            <span>{{row.companyName || row.visitCompanyName || '' }}</span>
+            <span>{{ row.companyName || row.visitCompanyName || '' }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="carType" label="杞﹁締绫诲瀷" min-width="100px">
@@ -67,7 +67,7 @@
         </el-table-column>
         <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
         <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
-<!--        <el-table-column label="杩涘満闂ㄧ" min-width="100px">
+        <!--        <el-table-column label="杩涘満闂ㄧ" min-width="100px">
           <template slot-scope="{ row }">
             &lt;!&ndash; <span v-if="row.type === 1">-</span> &ndash;&gt;
             <span>{{ row.deviceName || '-' }}</span>
@@ -138,13 +138,13 @@
     reset() {
       this.$refs.searchForm.resetFields()
       this.searchForm.startTime = ''
-      this.searchForm.radio = '0'
+      this.searchForm.radio = ''
       this.searchForm.endTime = ''
       this.time = []
       this.search()
     },
     seleTime(e) {
-      if(e && e.length >2){
+      if (e && e.length > 2) {
         this.searchForm.startTime = e[0]
         this.searchForm.endTime = e[1]
         this.searchForm.radio = null
diff --git a/admin/src/views/business/smsEmail.vue b/admin/src/views/business/smsEmail.vue
index 369cfdd..eb2262d 100644
--- a/admin/src/views/business/smsEmail.vue
+++ b/admin/src/views/business/smsEmail.vue
@@ -115,13 +115,13 @@
       'field.main': 'id'
     })
     this.changeRadio('0')
-    this.search()
+    // this.search()
   },
   methods: {
     reset() {
       this.$refs.searchForm.resetFields()
-      this.searchForm.radio = '0'
-      this.changeRadio('0')
+      this.searchForm.radio = ''
+      // this.changeRadio('0')
       this.time = []
       this.search()
     },
diff --git a/admin/src/views/business/trainTime.vue b/admin/src/views/business/trainTime.vue
index 92f382d..d571886 100644
--- a/admin/src/views/business/trainTime.vue
+++ b/admin/src/views/business/trainTime.vue
@@ -1,69 +1,51 @@
 <template>
-    <TableLayout :permissions="['business:deviceevent:query']">
-        <!-- 鎼滅储琛ㄥ崟 -->
-        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
-                <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
-            <el-form-item label="缁勭粐" prop="companyName">
-                <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
-            <el-form-item label="鍩硅寮�濮嬫椂闂�" prop="eventType">
-                <el-date-picker
-                    @change="seleTime"
-                    v-model="time"
-                    type="datetimerange"
-                    format="yyyy-MM-dd HH:mm:ss"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    range-separator="鑷�"
-                    start-placeholder="寮�濮嬫棩鏈�"
-                    end-placeholder="缁撴潫鏃ユ湡">
-                </el-date-picker>
-            </el-form-item>
-            <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
-                <el-radio-button label="0">褰撳ぉ</el-radio-button>
-                <el-radio-button label="1">杩�7澶�</el-radio-button>
-                <el-radio-button label="2">杩�30澶�</el-radio-button>
-            </el-radio-group>
-            <section>
-                <el-button type="primary" @click="search">鎼滅储</el-button>
-                <el-button @click="reset">閲嶇疆</el-button>
-            </section>
-        </el-form>
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-            <el-table
-                v-loading="isWorking.search"
-                :data="tableData.list"
-                stripe
-            >
-                <el-table-column prop="name" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
-                <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
-              <el-table-column prop="idcardNo" label="璇佷欢鍙�" min-width="150px"></el-table-column>
-                <el-table-column prop="companyName" label="缁勭粐鍚嶇О" min-width="150px"></el-table-column>
-                <el-table-column prop="startTime" label="寮�濮嬫棩鏈�" min-width="150px"></el-table-column>
-                <el-table-column prop="endTime" label="缁撴潫鏃ユ湡" min-width="150px"></el-table-column>
-              <el-table-column label="浜鸿劯鐓х墖" min-width="80px">
-                <template slot-scope="{row}">
-                  <el-image
-                      v-if="row.faceImg"
-                      style="width: 80px; height: 80px"
-                      :src="row.faceImg"
-                      :preview-src-list="[row.faceImg]">
-                  </el-image>
-                </template>
-              </el-table-column>
-                <el-table-column prop="createName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
-              <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
-            </el-table>
-            <pagination
-                @size-change="handleSizeChange"
-                @current-change="handlePageChange"
-                :pagination="tableData.pagination"
-            >
-            </pagination>
-        </template>
-    </TableLayout>
+  <TableLayout :permissions="['business:deviceevent:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
+        <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="缁勭粐" prop="companyName">
+        <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鍩硅寮�濮嬫椂闂�" prop="eventType">
+        <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
+          value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+        </el-date-picker>
+      </el-form-item>
+      <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
+        <el-radio-button label="0">褰撳ぉ</el-radio-button>
+        <el-radio-button label="1">杩�7澶�</el-radio-button>
+        <el-radio-button label="2">杩�30澶�</el-radio-button>
+      </el-radio-group>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
+        <el-table-column prop="name" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
+        <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+        <el-table-column prop="idcardNo" label="璇佷欢鍙�" min-width="150px"></el-table-column>
+        <el-table-column prop="companyName" label="缁勭粐鍚嶇О" min-width="150px"></el-table-column>
+        <el-table-column prop="startTime" label="寮�濮嬫棩鏈�" min-width="150px"></el-table-column>
+        <el-table-column prop="endTime" label="缁撴潫鏃ユ湡" min-width="150px"></el-table-column>
+        <el-table-column label="浜鸿劯鐓х墖" min-width="80px">
+          <template slot-scope="{row}">
+            <el-image v-if="row.faceImg" style="width: 80px; height: 80px" :src="row.faceImg"
+              :preview-src-list="[row.faceImg]">
+            </el-image>
+          </template>
+        </el-table-column>
+        <el-table-column prop="createName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
+      </el-table>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+      </pagination>
+    </template>
+  </TableLayout>
 </template>
 
 <script>
@@ -75,7 +57,7 @@
   name: 'DeviceEvent',
   extends: BaseTable,
   components: { TableLayout, Pagination },
-  data () {
+  data() {
     return {
       // 鎼滅储
       searchForm: {
@@ -92,7 +74,7 @@
       time1: []
     }
   },
-  created () {
+  created() {
     this.config({
       module: '鍩硅鏈夋晥鏈熷垪琛�',
       api: '/business/trainTime',
@@ -103,7 +85,7 @@
     this.search()
   },
   methods: {
-    changeRadio (e) {
+    changeRadio(e) {
       if (e === '0') {
         this.searchForm.startTimeStart = timeForMat(0)[0]
         this.searchForm.startTimeEnd = timeForMat(0)[1]
@@ -119,15 +101,15 @@
       }
       this.search()
     },
-    seleTime (e) {
-      if(e && e.length > 1) {
+    seleTime(e) {
+      if (e && e.length > 1) {
         this.searchForm.startTimeStart = e[0]
         this.searchForm.startTimeEnd = e[1]
         this.searchForm.radio = null
         this.search()
       }
     },
-    changeRadio1 (e) {
+    changeRadio1(e) {
       if (e === '0') {
         this.searchForm.endTimeStart = timeForMat(0)[0]
         this.searchForm.endTimeEnd = timeForMat(0)[1]
@@ -143,21 +125,21 @@
       }
       this.search()
     },
-    seleTime1 (e) {
-      if (e && e.length > 1 ) {
+    seleTime1(e) {
+      if (e && e.length > 1) {
         this.searchForm.endTimeStart = e[0]
         this.searchForm.endTimeEnd = e[1]
         this.searchForm.radio1 = null
         this.search()
       }
     },
-    reset () {
+    reset() {
       this.$refs.searchForm.resetFields()
       this.time = []
       this.time1 = []
-      this.searchForm.radio = '0'
+      this.searchForm.radio = ''
       this.searchForm.radio1 = '0'
-      this.changeRadio('0')
+      // this.changeRadio('0')
       this.search()
     }
   }
diff --git a/admin/src/views/business/wmsInterfaceLog.vue b/admin/src/views/business/wmsInterfaceLog.vue
index 47bdd43..d8bbce2 100644
--- a/admin/src/views/business/wmsInterfaceLog.vue
+++ b/admin/src/views/business/wmsInterfaceLog.vue
@@ -137,6 +137,7 @@
       this.$refs.searchForm.resetFields()
       this.searchForm.startDate = ''
       this.searchForm.endDate = ''
+      this.searchForm.radio = ''
       this.time = []
       this.search()
     }
diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue
index 882ef72..c4443e1 100644
--- a/admin/src/views/meeting/bookings.vue
+++ b/admin/src/views/meeting/bookings.vue
@@ -66,8 +66,7 @@
             @click="exportExcel">瀵煎嚭</el-button>
         </li>
       </ul>
-      <el-table v-loading="isWorking.search" :data="tableData.list" stripe
-        @selection-change="handleSelectionChange">
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
         <!-- <el-table-column type="selection" align="center" width="55"></el-table-column> -->
         <el-table-column prop="name" label="浼氳涓婚" align="center" min-width="120px" show-overflow-tooltip>
           <template slot-scope="{ row }">
@@ -102,11 +101,15 @@
           <template slot-scope="{ row }">
             <template>
               <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
-              <el-button v-if="row.meetingStatus == '1' && row.creator===userInfo.id" type="text"
-                @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)" >缂栬緫</el-button>
-              <el-button type="text" v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" @click="handleStart(row)">寮�濮�</el-button>
-              <el-button type="text" v-if="row.creator===userInfo.id && row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button>
-              <el-button v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" type="text" @click="cancelMeeting(row.id)">鎾ゅ洖</el-button>
+              <el-button v-if="row.meetingStatus == '1' && row.creator === userInfo.id" type="text"
+                @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)">缂栬緫</el-button>
+              <el-button type="text"
+                v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')"
+                @click="handleStart(row)">寮�濮�</el-button>
+              <el-button type="text" v-if="row.creator === userInfo.id && row.meetingStatus == '2'"
+                @click="handleEnd(row)">缁撴潫</el-button>
+              <el-button v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')"
+                type="text" @click="cancelMeeting(row.id)">鎾ゅ洖</el-button>
             </template>
             <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button> -->
           </template>
@@ -249,10 +252,11 @@
     reset() {
       this.$refs.searchForm.resetFields()
       this.date = []
-      this.searchForm.radio = '0'
+      this.searchForm.radio = ''
       this.searchForm.startTime = ''
       this.searchForm.endTime = ''
-      this.changeRadio('0')
+      // this.changeRadio('0')
+      this.search()
     },
     copy(row) {
       const text = `${row.realName} 閭�璇锋偍鍔犲叆浼氳\n浼氳涓婚锛�${row.name}\n浼氳瀹わ細${row.roomName}\n浼氳鏃堕棿锛�${row.meetingTime}\n鐐瑰嚮閾炬帴鐩存帴鍔犲叆浼氳锛歕n${this.link}?id=${row.id}`
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 1d7eefc..88762c8 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -222,7 +222,6 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0
       }
       this.getList()
     },
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
index 4dca807..d921c8c 100644
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ b/admin/src/views/platform/LogisticsRecord/operation.vue
@@ -200,7 +200,6 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0
       }
       this.getList()
     },
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 5ec9a53..bdc7185 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -200,7 +200,6 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0
       }
       this.getList()
     },
diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue
index a70d11c..933b5b1 100644
--- a/admin/src/views/platform/LogisticsRecord/subscribe.vue
+++ b/admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -325,9 +325,9 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0,
       }
-      this.changeRadio('0')
+      this.getList()
+      // this.changeRadio('0')
     },
     handleDetail(row) {
       this.isShowDriver = true
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index 4eaa9b7..8888613 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -228,9 +228,9 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0
       }
-      this.changeRadio('0')
+      this.getList()
+      // this.changeRadio('0')
     },
     handleDetail(row) {
       this.isShowDetail = true
diff --git a/admin/src/views/platform/LogisticsRecord/waybillQuery.vue b/admin/src/views/platform/LogisticsRecord/waybillQuery.vue
index 7f91fa0..c2a814e 100644
--- a/admin/src/views/platform/LogisticsRecord/waybillQuery.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybillQuery.vue
@@ -153,7 +153,6 @@
       this.pagination.page = 1
       this.filters = {
         selDate: [],
-        fastdate: 0
       }
       this.getList()
     },
diff --git a/admin/src/views/statistics/platformStatic.vue b/admin/src/views/statistics/platformStatic.vue
index 598b986..0cb0834 100644
--- a/admin/src/views/statistics/platformStatic.vue
+++ b/admin/src/views/statistics/platformStatic.vue
@@ -159,10 +159,10 @@
     },
     clear() {
       this.filters = {
-        fastdate: 0,
         selDate: []
       }
-      this.changeRadio('0')
+      this.getList()
+      // this.changeRadio('0')
     },
     handleSizeChange(capacity) {
       this.pagination.pageSize = capacity
diff --git a/admin/src/views/task/index.vue b/admin/src/views/task/index.vue
index 11345da..4eb6bd9 100644
--- a/admin/src/views/task/index.vue
+++ b/admin/src/views/task/index.vue
@@ -272,7 +272,7 @@
       this.loading = true
       taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => {
         this.headData = res
-        this.getList(page)
+        this.getList(1)
       }, () => {
         this.loading = false
       })
diff --git a/h5/pages.json b/h5/pages.json
index 149b228..7d64341 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -496,6 +496,13 @@
         	{
         		"navigationBarTitleText" : "浠诲姟鎿嶄綔鏄庣粏"
         	}
+        },
+        {
+        	"path" : "pages/visitorApplication/memberSel",
+        	"style" : 
+        	{
+        		"navigationBarTitleText" : "閫夋嫨琚浜�"
+        	}
         }
     ],
 	"subPackages": [
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index db7e113..8541b74 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -10,10 +10,14 @@
 			<view class="h2">鐗╂祦杞︿笓鍖�</view>
 			<image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
 		</view>
-		<!--  -->
+		<!--  -->
+		<view class="title_wrap">
+			<view class="name">浣滀笟浠诲姟</view>
+			<view class="placeholder9">{{activeCurrent + 1}}/{{taskList.length}}</view>
+		</view>
 		<view v-if="taskList && taskList.length > 0" class="task_list">
-			<swiper circular class="task_swiper">
-				<swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)">
+			<swiper circular indicator-dots indicator-active-color="#4d99a8" indicator-color="#e0e2e7" class="task_swiper" @change="changeCur" :current="activeCurrent">
+				<swiper-item v-for="item in taskList" :current='activeCurrent' :key="item.id" @click="taskClick(item)">
 					<view class="item">
 						<view class="head">
 							<view class="name">{{ item.contractNum ? '鍚堝悓鍗�' : '杩愯緭鍗�' }}{{ item.billCode || item.contractNum }}</view>
@@ -109,7 +113,8 @@
 	export default {
 		data() {
 			return {
-				taskList: [],
+				taskList: [],
+				activeCurrent: 0,
 				driverInfo: uni.getStorageSync('driverInfo'),
 			}
 		},
@@ -139,7 +144,10 @@
 			this.initData()
 		},
 
-		methods: {
+		methods: {
+			changeCur(e) {
+				this.activeCurrent = e.detail.current
+			},
 			jump(path) {
 				this.$jump(path)
 			},
diff --git a/h5/pages/driver/reservedDetail.vue b/h5/pages/driver/reservedDetail.vue
index 6f86053..f918538 100644
--- a/h5/pages/driver/reservedDetail.vue
+++ b/h5/pages/driver/reservedDetail.vue
@@ -28,6 +28,7 @@
 					<image
 						v-if="info.transportImg"
 					  class="avatar_wrap"
+						@click="priviewImage(info.prefixUrl + info.transportImg)"
 					  :src="info.prefixUrl + info.transportImg"
 					></image>
 				</view>
@@ -136,6 +137,11 @@
 		this.getDetail(option.id)
 	},
   methods: {
+		priviewImage(url) {
+			uni.previewImage({
+				urls: [url]
+			})
+		},
 		handleCancel(){
 			const { info } = this
 			uni.showModal({
diff --git a/h5/pages/staff/meetingSel.vue b/h5/pages/staff/meetingSel.vue
index fdf97af..cac37aa 100644
--- a/h5/pages/staff/meetingSel.vue
+++ b/h5/pages/staff/meetingSel.vue
@@ -2,7 +2,7 @@
 	<view class="main_app" :class="{ popupShow: isShowSelMem }">
 		<view class="search_inp df_ac">
 			<image class="mr12 search" src="../../static/ic_search@2x.png" mode="widthFix"></image>
-			<input v-model="param.queryParam" @blur="initData()" type="text" placeholder="鎼滅储"
+			<input v-model="param.queryParam" @confirm="initData()" type="text" placeholder="鎼滅储"
 				placeholder-style="color: #999999;" />
 		</view>
 		<view class="member_list">
@@ -301,7 +301,10 @@
 		}
 	}
 
-	.member_list {
+	.member_list {
+		height: calc( 100vh - 130rpx );
+		overflow: auto;
+		margin-top: 10rpx;
 		.line {
 			display: flex;
 			align-items: center;
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index 269cff5..c5005fb 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -120,7 +120,7 @@
 		<u-picker keyName="name" :show="isShowType" closeOnClickOverlay :columns="areaType" @confirm="seletedType"
 			@close="isShowType = false" @cancel="isShowType = false"></u-picker>
 		<!--  -->
-		<u-datetime-picker :show="isShowTime" :minDate="new Date().getTime()" mode="datetime" closeOnClickOverlay
+		<u-datetime-picker :show="isShowTime" :formatter="formatter" :minDate="new Date().getTime()" mode="datetime" closeOnClickOverlay
 			@cancel="isShowTime = false" @close="isShowTime = false" @confirm="seletedDate"></u-datetime-picker>
 		<!--  -->
 		<u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
@@ -172,7 +172,25 @@
 				this.$set(this.param, 'checkorName', option.name)
 			})
 		},
-		methods: {
+		methods: {
+			formatter(type, value) {
+				if (type === 'year') {
+					return `${value}骞碻
+				}
+				if (type === 'month') {
+					return `${value}鏈坄
+				}
+				if (type === 'day') {
+					return `${value}鏃
+				}
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				return value
+			},
 			onSubmit() {
 				const {
 					param,
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index 35e11a1..fdfe0fc 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -29,6 +29,7 @@
 			  <view class="label">鍑嗚繍璇佺収鐗�</view>
 			  <view class="value">
 					<image
+					@click="priviewImage(info.prefixUrl + info.transportImg)"
 						v-if="info.transportImg"
 					  class="avatar_wrap"
 					  :src="info.prefixUrl + info.transportImg"
@@ -162,6 +163,11 @@
 		this.getDetail(option.id)
 	},
   methods: {
+		priviewImage(url) {
+			uni.previewImage({
+				urls: [url]
+			})
+		},
 		getDetail(id) {
 			driverApplyDetail({id}).then(res => {
 				this.info = res.data
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index 619ff2b..275c5e4 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -206,6 +206,7 @@
       :show="tiemShow"
       v-model="startDate"
       mode="date"
+			:formatter="formatter"
       @confirm="confirmLeft"
       @cancel="tiemShow = false"
     ></u-datetime-picker>
@@ -216,6 +217,7 @@
       "
       v-model="startDate"
       mode="date"
+			:formatter="formatter"
       @confirm="confirmRight"
       @cancel="tiemShow1 = false"
     ></u-datetime-picker>
@@ -248,7 +250,7 @@
         { name: '璁垮鎶ュ', id: 1 },
         { name: '鐢ㄨ溅鐢宠', id: 2 },
         { name: '闅愭偅闅忔墜鎷�', id: 3 },
-        { name: '鐗╂祦杞︾敵璇�', id: 4 },
+        { name: '鐗╂祦杞︾敵璇�', id: 6 },
         { name: '鑰冨嫟浠e姙', id: 7 },
       ],
       startDate: dayjs().format('YYYY-MM-DD'),
@@ -279,6 +281,24 @@
 		this.getHeadList()
   },
   methods: {
+		formatter(type, value) {
+			if (type === 'year') {
+				return `${value}骞碻
+			}
+			if (type === 'month') {
+				return `${value}鏈坄
+			}
+			if (type === 'day') {
+				return `${value}鏃
+			}
+			if (type === 'hour') {
+				return `${value}鏃禶
+			}
+			if (type === 'minute') {
+				return `${value}鍒哷
+			}
+			return value
+		},
     statusClick(val) {
       this.pagination.page = 0
       this.dataList = []
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 14fbc1f..5a7619c 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="main_app">
+	<view class="main_app" :style="{height: windowHeight  + 'px'}">
 		<view class="status_wrap">
 			<view class="name">{{ info.categoryName }}</view>
 			<view v-if="info.status == '0'" class="status">{{ statusMap[info.status] }}</view>
@@ -113,6 +113,7 @@
 				</view>
 			</view>
 		</view>
+		<view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" style="height: 90rpx;border: 1px solid red;"></view>
 		<view class="emyty"></view>
 		<view class="main_footer" v-if="info.status == 0 && info.checkUserId == userInfo.memberId">
 			<view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">閫�鍥�</view>
@@ -254,21 +255,22 @@
 		</u-popup>
 		<!-- 杞氦 -->
 		<u-popup :show="isShowTransfer" :round="10" safeAreaInsetBottom mode="bottom" @close="isShowTransfer = false">
-			<view class="appr_modal">
+			<view class="appr_modal tran_modal">
 				<view class="title">閫夋嫨鍛樺伐</view>
 				<view class="search_inp df_ac">
 					<image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
-					<input v-model="transferModel.name" @blur="getMemList()" type="text" placeholder="鎼滅储閮ㄩ棬/浜哄憳"
+					<input v-model="transferModel.queryParam" @focus="showKeyboard = true" @blur="showKeyboard = false" @confirm="getMemList()" type="text" placeholder="鎼滅储浜哄憳濮撳悕"
 						placeholder-style="color: #999999;" />
 				</view>
+				<view class="mt24 placeholder6">鍏眥{ memberList.length }}鏉℃暟鎹�</view>
 				<view class="member_list">
-					<view class="mt24 placeholder6">鍏眥{ memberList.length }}鏉℃暟鎹�</view>
+					
 					<view v-for="item in memberList" :key="item.id" class="line">
-						<image v-if="item.faceImgFull" :src="item.faceImgFull" class="avatar"></image>
-						<span v-else class="img_name">{{ item.name && item.name.slice(0, 1) }}</span>
+						<image v-if="item.faceImg" :src="item.faceImg" class="avatar"></image>
+						<span v-else class="img_name">{{ item.realname && item.realname.slice(0, 1) }}</span>
 						<view class="content">
 							<view class="info">
-								<text class="name">{{ item.name }}</text>
+								<text class="name">{{ item.realname }}</text>
 								<!-- <text class="tag">tag</text> -->
 							</view>
 							<view class="depart">{{ item.companyName }}</view>
@@ -280,7 +282,7 @@
 					</view>
 					<view class="empty"></view>
 				</view>
-				<view class="Transfer_footer">
+				<view v-if="!showKeyboard" class="Transfer_footer">
 					<view class="btn" @click="isShowTransfer = fales">鍙栨秷</view>
 					<view class="btn active" @click="enterTransfer">纭杞氦</view>
 				</view>
@@ -307,7 +309,7 @@
 import {
 	hiddenDangerDetail,
 	uploadUrl,
-	findHiddenAreaMemberList,
+	userPagePost,
 	dealHiddenDanger,
 	transferHiddenDanger,
 	findListFlowDanger
@@ -323,7 +325,8 @@
 			flowList: [],
 
 			id: '',
-			type: '',
+			type: '',
+			windowHeight: '',
 			cateList: [{
 				name: '璁垮鐢宠',
 				id: 0
@@ -374,13 +377,17 @@
 
 			videoPlay: false,
 			videoContext: null,
-			videoUrl: ''
+			videoUrl: '',
+			showKeyboard: false,
 		}
 	},
-	onLoad(op) {
+	onLoad(op) {
+		const result = uni.getWindowInfo()
+		this.windowHeight = result.windowHeight
 		uni.setStorageSync('ywinfo', {})
 		this.id = op.id
-		this.getDetail()
+		this.getDetail()
+		// this.handleTransfer()
 	},
 	methods: {
 		priviewImage(url) {
@@ -432,7 +439,7 @@
 			findListFlowDanger({
 				hiddenDangerId: id
 			}).then(res => {
-				this.flowList = res.data
+				this.flowList = res.data || []
 			})
 		},
 		onSubmit() {
@@ -481,7 +488,7 @@
 					icon: 'none'
 				})
 			transferHiddenDanger({
-				checkUserId: transferParam.id,
+				checkUserId: transferParam.memberId,
 				id
 			}).then(res => {
 				if (res.code === 200) {
@@ -503,11 +510,11 @@
 			this.isShowTransfer = true
 			this.getMemList()
 		},
-		getMemList() {
-			findHiddenAreaMemberList({
-				...this.transferModel,
-				// id: this.info.areaId,
-				...this.pagination
+		getMemList() {
+			userPagePost({
+				...this.transferModel,
+				querySpecial: 1, type: 2, companyType: 1,workStatus:0
+			
 			}).then(res => {
 				this.memberList = res.data || []
 			})
@@ -829,7 +836,7 @@
 .main_app {
 	background-color: #fff;
 	padding-bottom: 0;
-
+	position: relative;
 	.flow_title {
 		font-weight: 600;
 		font-size: 32rpx;
@@ -838,14 +845,13 @@
 	}
 
 	.flow_wrap {
-		padding: 30rpx 0 90rpx;
-
+		padding: 30rpx 0 30rpx;
+		background-color: #fff;
 		.list {
 			.item {
 				display: flex;
 				margin-bottom: 48rpx;
 				position: relative;
-
 				.separate {
 					position: absolute;
 					width: 4rpx;
@@ -1073,7 +1079,6 @@
 			display: flex;
 			margin-bottom: 20rpx;
 			flex-wrap: wrap;
-
 			.img_wrap {
 				margin-top: 24rpx;
 				width: 156rpx;
@@ -1156,7 +1161,7 @@
 		width: 100%;
 		z-index: 9999;
 		left: 0;
-		padding: 30rpx 10rpx 60rpx;
+		padding: 10rpx 10rpx 30rpx;
 		display: flex;
 		justify-content: space-between;
 		background: #ffffff;
@@ -1290,7 +1295,9 @@
 			}
 		}
 	}
-
+	.tran_modal{
+		height: 1260rpx;
+	}
 	.emyty {
 		width: 750rpx;
 		height: 20rpx;
@@ -1329,9 +1336,9 @@
 }
 
 .member_list {
-	height: 920rpx;
+	height: 900rpx;
 	overflow: auto;
-
+	// border: 1px solid;
 	.line {
 		display: flex;
 		align-items: center;
diff --git a/h5/pages/staff/vehicle/applePeo.vue b/h5/pages/staff/vehicle/applePeo.vue
index 58ec92a..a8b3503 100644
--- a/h5/pages/staff/vehicle/applePeo.vue
+++ b/h5/pages/staff/vehicle/applePeo.vue
@@ -1,366 +1,386 @@
-<template>
-  <view class="main_app" :class="{ popupShow: isShowSelMem }">
-    <view class="search_inp df_ac">
-      <image
-        class="mr12 search"
-        src="@/static/ic_search@2x.png"
-        mode="widthFix"
-      ></image>
-      <input
-        v-model="param.name"
-        @blur="initData()"
-        type="text"
-        placeholder="鎼滅储"
-        placeholder-style="color: #999999;"
-      />
-    </view>
-    <view class="member_list">
-      <view @click="changeMem(item, index)" v-for="(item, index) in memberList" :key="item.id" class="line">
-        <image
-          v-if="item.faceImgFull"
-          :src="item.faceImgFull"
-          class="avatar"
-          mode=""
-        ></image>
-        <view v-else class="avatar">{{ item.name.slice(0, 1) }}</view>
-        <view class="content">
-          <view class="info">
-            <text class="name">{{ item.name }}</text>
-            <!-- <text class="tag">tag</text> -->
-          </view>
-          <view class="depart">{{ item.companyName }}</view>
-        </view>
-        <image
-          v-if="item.checked"
-          src="@/static/checkbox_sel@2x.png"
-          mode="widthFix"
-          class="checked"
-        ></image>
-        <image
-          v-if="!item.checked"
-          src="@/static/meeting/icon/ic_choose@2x.png"
-          mode="widthFix"
-          class="checked"
-        ></image>
-        <text></text>
-      </view>
-
-      <view class="empty"></view>
-    </view>
-    <!--  -->
-    <view class="sub_wrap">
-      <view class="sel_mem">
-        <text>宸查�夋嫨锛�</text>
-        <view class="members">
-          <text v-for="(item, i) in selList" :key="i">{{ item.name }}锛�</text>
-        </view>
-        <image
-          @click="openSeleter"
-          class="open_icon"
-          src="@/static/staff/renyuan_ic_open.png"
-          mode=""
-        ></image>
-      </view>
-      <view class="btn" @click="onSubmit">纭</view>
-    </view>
-    <!--  -->
-    <u-popup
-      :show="isShowSelMem"
-      :round="12"
-      mode="bottom"
-      @close="closeModal"
-    >
-      <view class="modal">
-        <view class="modal_header">
-          <text class="status">宸查�夋嫨锛歿{ selList.filter(i => i.checkedTemp).length }}浜�</text>
-          <text class="btn" @click="subSelMem">纭</text>
-        </view>
-        <view class="modal_mem_list">
-					<template v-for="(item, i) in selList">
-						<view class="line" v-if="item.checkedTemp" :key="i">
-						  <image
-						    :src="
-						      item.faceImgFull
-						        ? item.faceImgFull
-						        : require('@/static/logo@2x.png')
-						    "
-						    class="avatar"
-						    mode=""
-						  ></image>
-						  <view class="content">
-						    <view class="info">
-						      <text class="name">{{ item.name }}</text>
-						    </view>
-						    <view class="depart">{{ item.componey }}</view>
-						  </view>
-						  <view class="btn" @click="handleRemove(i)">绉婚櫎</view>
-						</view>
-					</template>
-        </view>
-      </view>
-    </u-popup>
-  </view>
-</template>
-
-<script>
-import { findTypeMemberInfo } from '@/api'
-export default {
-  data() {
-    return {
-      memberList: [],
-      param: {},
-      selList: [],
-
-      isShowSelMem: false,
-      pagination: {
-        capacity: 20,
-        page: 1
-      },
-    }
-  },
-  onLoad() {
-    this.initData()
-  },
-  onReachBottom() {
-    // if(){}
-  },
-  mounted() {
-    this.$eventBus.$on('applePeoDetail', (res) => {
-      res.forEach(item => {
-        this.memberList.forEach(mem => {
-          if (item.id === mem.id) {
-            mem.checked = !mem.checked
-          }
-        })
-      })
-      this.selList = this.memberList.filter(i => i.checked)
-      this.$nextTick(() => {
-        this.$forceUpdate()
-      })
-    })
-  },
-  methods: {
-    initData() {
-      const { param } = this
-      findTypeMemberInfo({
-        // model: {
-        name: param.name,
-        // },
-        type: '2',
-        companyType: 1,
-      }).then(res => {
-        this.memberList = res.data || []
-        this.memberList.forEach(i => {
-					const index = this.selList.findIndex(ite => ite.id === i.id)
-          i.checked = index > -1
-        })
-      })
-    },
-    onSubmit() {
-      if (this.selList.length === 0) return uni.showToast({
-        title: '璇峰厛閫夋嫨浜哄憳',
-        icon: 'none'
-      })
-      this.$eventBus.$emit('applePeo', this.selList)
-      uni.navigateBack()
-    },
-    changeMem(item, index) {
-      // this.memberList.forEach(mem => {
-      //   if(item.id === mem.id){
-      //     item.checked = !item.checked
-      //   }
-      // })
-      item.checked = !item.checked
-			const i = this.selList.findIndex(a => a.id === item.id)
-			if(item.checked && i === -1){
-				this.selList.push(item)
-			}else{
-				this.selList.splice(i, 1)
-			}
-      this.$forceUpdate()
-    },
-		openSeleter() {
-			this.isShowSelMem = true
-			this.selList.forEach(item => {
-				item.checkedTemp = true
-			})
-			this.$forceUpdate()
-		},
-		subSelMem() {
-		  const { memberList } = this
-			this.selList = this.selList.filter(i => i.checkedTemp)
-			console.log('selList', this.selList);
-		  memberList.forEach(ite => {
-				const index = this.selList.findIndex(i => i.id === ite.id)
-		    ite.checked = index > -1
-		  })
-		  this.isShowSelMem = false
-		  this.$forceUpdate()
-		},
-		closeModal() {
-		  this.selList.forEach(item => {
-		  	item.checkedTemp = true
-		  })
-		  this.isShowSelMem = false
-		},
-    handleRemove(i) {
-      this.selList[i].checkedTemp = false
-      this.$forceUpdate()
-    },
-  }
-};
-</script>
-
-<style lang="scss">
-.modal {
-  padding: 40rpx 30rpx;
-  max-height: 1000rpx;
-  .modal_header {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    padding-bottom: 20rpx;
-    .status {
-      font-weight: 600;
-    }
-    .btn {
-      color: $uni-color-primary;
-    }
-  }
-  .modal_mem_list {
-    max-height: 860rpx;
-    overflow: auto;
-    .line {
-      display: flex;
-      align-items: center;
-      border-bottom: 1rpx solid #e5e5e5;
-      padding: 30rpx 0;
-      .avatar {
-        width: 64rpx;
-        height: 64rpx;
-        border-radius: 50%;
-        overflow: hidden;
-        margin-right: 20rpx;
-      }
-      .content {
-        flex: 1;
-        .depart {
-          font-size: 24rpx;
-          color: #666666;
-        }
-        .info {
-          display: flex;
-          margin-bottom: 16rpx;
-          .name {
-            font-size: 30rpx;
-          }
-        }
-      }
-      .btn {
-        width: 80rpx;
-        height: 48rpx;
-        line-height: 48rpx;
-        text-align: center;
-        font-size: 24rpx;
-        color: #333333;
-        border-radius: 4rpx;
-        border: 1rpx solid #999999;
-      }
-    }
-  }
-}
-.sub_wrap {
-  position: fixed;
-  bottom: 0;
-  left: 0;
-  z-index: 9999;
-  width: 100%;
-  background-color: #fff;
-  box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
-  padding: 30rpx 30rpx 64rpx;
-  .sel_mem {
-    display: flex;
-    align-items: center;
-    .members {
-      width: 500rpx;
-      color: $uni-color-primary;
-      white-space: nowrap;
-      overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
-      text-overflow: ellipsis;
-      margin-right: 20rpx;
-    }
-    .open_icon {
-      width: 44rpx;
-      height: 44rpx;
-    }
-  }
-  .btn {
-    width: 690rpx;
-    height: 88rpx;
-    line-height: 88rpx;
-    background: $uni-color-primary;
-    border-radius: 44rpx;
-    color: #fff;
-    text-align: center;
-    margin-top: 22rpx;
-  }
-}
-.member_list {
-  .line {
-    display: flex;
-    align-items: center;
-    border-bottom: 1rpx solid #e5e5e5;
-    padding: 30rpx 0;
-    .avatar {
-      width: 64rpx;
-      height: 64rpx;
-      border-radius: 50%;
-      overflow: hidden;
-      margin-right: 20rpx;
-    }
-    .content {
-      flex: 1;
-      .depart {
-        font-size: 24rpx;
-        color: #666666;
-      }
-      .info {
-        display: flex;
-        margin-bottom: 16rpx;
-        .name {
-          font-size: 30rpx;
-        }
-        .tag {
-          font-size: 24rpx;
-          border-radius: 4rpx;
-          border: 1rpx solid #f62710;
-          color: #f62710;
-          padding: 0rpx 6rpx;
-          margin-left: 8rpx;
-        }
-      }
-    }
-    .checked {
-      width: 48rpx;
-    }
-  }
-  .empty {
-    width: 100%;
-    height: 280rpx;
-  }
-}
-.search_inp {
-  height: 72rpx;
-  background: #f7f7f7;
-  border-radius: 4rpx;
-  padding-left: 16rpx;
-  .search {
-    width: 28rpx;
-  }
-  input {
-    flex: 1;
-    font-size: 28rpx;
-    color: #333333;
-  }
-}
-</style>
+<template>
+	<view class="main_app" :style="{ height: windowHeight + 'px' }" :class="{ popupShow: isShowSelMem }">
+		<view class="search_inp df_ac">
+			<image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
+			<input v-model="param.queryParam" @confirm="initData()" type="text" placeholder="鎼滅储"
+				placeholder-style="color: #999999;" />
+		</view>
+		<view class="member_list">
+			<view v-for="(item, index) in memberList" :key="item.id" class="line">
+				<image v-if="item.faceImg" :src="item.faceImg" class="avatar" mode=""></image>
+				<view v-else class="avatar">{{ item.realname.slice(0, 1) }}</view>
+				<view class="content">
+					<view class="info">
+						<text class="name">{{ item.realname }}</text>
+						<text class="tag" v-if="item.status == '1'">鏈変細璁�</text>
+					</view>
+					<view class="depart">{{ item.departmentName || item.companyName }}</view>
+				</view>
+				<image @click="changeMem(item, index)" v-if="item.checked" src="@/static/checkbox_sel@2x.png" mode="widthFix"
+					class="checked"></image>
+				<image @click="changeMem(item, index)" v-if="!item.checked" src="@/static/meeting/icon/ic_choose@2x.png"
+					mode="widthFix" class="checked"></image>
+				<text></text>
+			</view>
+			<view class="" style="height: 220rpx;"></view>
+			<view v-if="memberList.length == 0" class="empty_wrap">
+				<image src="@/static/empty.png" mode=""></image>
+				<text>鏆傛棤鏁版嵁</text>
+			</view>
+		</view>
+		<!--  -->
+		<view class="sub_wrap">
+			<view class="sel_mem">
+				<text>宸查�夋嫨锛�</text>
+				<view class="members">
+					<text v-for="(item, i) in selList" :key="i">{{ item.realname }}锛�</text>
+				</view>
+				<image @click="openSeleter" class="open_icon" src="@/static/staff/renyuan_ic_open.png" mode=""></image>
+			</view>
+			<view class="btn" @click="onSubmit">纭({{ selList.length }})</view>
+		</view>
+		<!--  -->
+		<u-popup catchtouchmove :show="isShowSelMem" :round="12" mode="bottom" @close="closeModal">
+			<view class="modal">
+				<view class="modal_header">
+					<text class="status">宸查�夋嫨锛歿{selList.filter(i => i.checkedTemp).length}}浜�</text>
+					<text class="btn" @click="subSelMem">纭</text>
+				</view>
+				<view class="modal_mem_list">
+					<template v-for="(item, i) in selList">
+						<view class="line" v-if="item.checkedTemp">
+							<image v-if="item.avatar" :src="item.prefixUrl + item.avatar" class="avatar" mode=""></image>
+							<view v-else class="avatar">{{ item.realname.slice(0, 1) }}</view>
+							<view class="content">
+								<view class="info">
+									<text class="name">{{ item.realname }}</text>
+								</view>
+								<view class="depart">{{ item.departmentName }}</view>
+							</view>
+							<view class="btn" @click="handleRemove(i)">绉婚櫎</view>
+						</view>
+					</template>
+				</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+import {
+	userPagePost
+} from '@/api'
+import dayjs from 'dayjs'
+export default {
+	data() {
+		return {
+			memberList: [],
+			selList: [],
+			param: {
+				limitNum: ''
+			},
+			windowHeight: '',
+			pagination: {
+				page: 1,
+				capacity: 40
+			},
+
+			isShowSelMem: false
+		}
+	},
+	onLoad(option) {
+		const result = uni.getWindowInfo()
+		this.windowHeight = result.windowHeight
+		this.param = {
+			// limitNum: option.limitNum,
+			queryParam: '',
+			startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
+			endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
+		}
+		this.initData()
+	},
+	mounted() {
+		this.$eventBus.$on('applePeoDetail', (res) => {
+			setTimeout(() => {
+				res.forEach(item => {
+					this.memberList.forEach(mem => {
+						if (item.id == mem.id) {
+							mem.checked = true
+						}
+					})
+				})
+				this.selList = this.memberList.filter(i => i.checked)
+				this.$nextTick(() => {
+					this.$forceUpdate()
+				})
+			}, 500)
+		})
+	},
+	methods: {
+		onSubmit() {
+			this.$eventBus.$emit('applePeo', this.selList)
+			uni.navigateBack()
+		},
+		changeMem(item, index) {
+			// const { selList, param } = this
+			// if (this.selList.length == param.limitNum && !item.checked) return uni.showToast({
+			//   title: `璇ヤ細璁彲瀹圭撼${param.limitNum}浜篳,
+			//   icon: 'none'
+			// })
+			// item.checked = !item.checked
+			// this.selList = this.memberList.filter(i => i.checked)
+			// // 
+			item.checked = !item.checked
+			const i = this.selList.findIndex(a => a.id === item.id)
+			if (item.checked && i === -1) {
+				this.selList.push(item)
+			} else {
+				this.selList.splice(i, 1)
+			}
+			this.$forceUpdate()
+		},
+		openSeleter() {
+			this.isShowSelMem = true
+			this.selList.forEach(item => {
+				item.checkedTemp = true
+			})
+			this.$forceUpdate()
+		},
+		initData() {
+			const {
+				param,
+				pagination
+			} = this
+			userPagePost({
+				...param,
+				querySpecial: 1, type: 2, companyType: 1, workStatus: 0
+
+			}).then(res => {
+				this.memberList = res.data || []
+				this.memberList.forEach(i => {
+					const index = this.selList.findIndex(ite => ite.id === i.id)
+					i.checked = index > -1
+				})
+			})
+		},
+		closeModal() {
+			this.selList.forEach(item => {
+				item.checkedTemp = true
+			})
+			this.isShowSelMem = false
+		},
+		subSelMem() {
+			const {
+				memberList
+			} = this
+			this.selList = this.selList.filter(i => i.checkedTemp)
+			memberList.forEach(ite => {
+				const index = this.selList.findIndex(i => i.id === ite.id)
+				ite.checked = index > -1
+			})
+			this.isShowSelMem = false
+			this.$forceUpdate()
+		},
+		handleRemove(i) {
+			this.selList[i].checkedTemp = false
+			this.$forceUpdate()
+		},
+	}
+}
+</script>
+
+<style lang="scss">
+.main_app {
+	position: relative;
+}
+
+.modal {
+	padding: 40rpx 30rpx;
+	max-height: 1000rpx;
+
+	.modal_header {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding-bottom: 20rpx;
+
+		.status {
+			font-weight: 600;
+		}
+
+		.btn {
+			color: $uni-color-primary;
+		}
+	}
+
+	.modal_mem_list {
+		max-height: 860rpx;
+		overflow: auto;
+
+		.line {
+			display: flex;
+			align-items: center;
+			border-bottom: 1rpx solid #e5e5e5;
+			padding: 30rpx 0;
+
+			.avatar {
+				width: 64rpx;
+				height: 64rpx;
+				border-radius: 50%;
+				overflow: hidden;
+				margin-right: 20rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				background-color: $uni-color-primary;
+				color: #fff;
+			}
+
+			.content {
+				flex: 1;
+
+				.depart {
+					font-size: 24rpx;
+					color: #666666;
+				}
+
+				.info {
+					display: flex;
+					margin-bottom: 16rpx;
+
+					.name {
+						font-size: 30rpx;
+					}
+				}
+			}
+
+			.btn {
+				width: 80rpx;
+				height: 48rpx;
+				line-height: 48rpx;
+				text-align: center;
+				font-size: 24rpx;
+				color: #333333;
+				border-radius: 4rpx;
+				border: 1rpx solid #999999;
+			}
+		}
+	}
+}
+
+.sub_wrap {
+	position: fixed;
+	bottom: 0;
+	background-color: #fff;
+	left: 0;
+	width: 100%;
+	box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
+	padding: 30rpx 30rpx 42rpx;
+
+	.sel_mem {
+		display: flex;
+		align-items: center;
+
+		.members {
+			width: 500rpx;
+			color: $uni-color-primary;
+			white-space: nowrap;
+			overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
+			text-overflow: ellipsis;
+			margin-right: 20rpx;
+		}
+
+		.open_icon {
+			width: 44rpx;
+			height: 44rpx;
+		}
+	}
+
+	.btn {
+		width: 690rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		background: $uni-color-primary;
+		border-radius: 44rpx;
+		color: #fff;
+		text-align: center;
+		margin-top: 22rpx;
+	}
+}
+
+.member_list {
+	height: calc(100vh - 130rpx);
+	overflow: auto;
+	margin-top: 10rpx;
+
+	.line {
+		display: flex;
+		align-items: center;
+		border-bottom: 1rpx solid #e5e5e5;
+		padding: 30rpx 0;
+
+		.avatar {
+			width: 64rpx;
+			height: 64rpx;
+			border-radius: 50%;
+			overflow: hidden;
+			margin-right: 20rpx;
+		}
+
+		.content {
+			flex: 1;
+
+			.depart {
+				font-size: 24rpx;
+				color: #666666;
+			}
+
+			.info {
+				display: flex;
+				margin-bottom: 16rpx;
+
+				.name {
+					font-size: 30rpx;
+				}
+
+				.tag {
+					font-size: 24rpx;
+					border-radius: 4rpx;
+					border: 1rpx solid #f62710;
+					color: #f62710;
+					padding: 0rpx 6rpx;
+					margin-left: 8rpx;
+					display: flex;
+					align-items: center;
+				}
+			}
+		}
+
+		.checked {
+			width: 48rpx;
+		}
+	}
+
+	.empty {
+		width: 100%;
+		height: 280rpx;
+	}
+}
+
+.search_inp {
+	height: 72rpx;
+	background: #f7f7f7;
+	border-radius: 4rpx;
+	padding-left: 16rpx;
+
+	.search {
+		width: 28rpx;
+	}
+
+	input {
+		flex: 1;
+		font-size: 28rpx;
+		color: #333333;
+	}
+}
+</style>
\ No newline at end of file
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index d0fa466..0112528 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -8,10 +8,7 @@
           <text>棰勮鐢ㄨ溅鏃舵</text>
         </view>
         <view class="value" @click="$goBack()">
-          <text
-            class="mr6"
-            :style="{ color: param.startTime ? '#000000' : '#999999' }"
-          >
+          <text class="mr6" :style="{ color: param.startTime ? '#000000' : '#999999' }">
             <text v-if="param.startTime">
               {{ param.startTime.slice(5, 16) }}鑷硔{
                 param.endTime.slice(5, 16)
@@ -28,13 +25,8 @@
           <text>鐢宠杞﹁締</text>
         </view>
         <view class="value" @click="$goBack()">
-          <input
-            type="text"
-            disabled
-            placeholder="璇疯緭鍏ョ敵璇疯溅杈�"
-            v-model="param.carCode"
-            placeholder-style="color: #999999;"
-          />
+          <input type="text" disabled placeholder="璇疯緭鍏ョ敵璇疯溅杈�" v-model="param.carCode"
+            placeholder-style="color: #999999;" />
         </view>
       </view>
       <view class="line">
@@ -43,11 +35,8 @@
           <text>棰勮鍑哄彂鏃堕棿</text>
         </view>
         <view class="value" @click="isShowDatetime = true">
-          <text
-            class="mr6"
-            :style="{ color: param.planUseDate ? '#000000' : '#999999' }"
-            >{{ param.planUseDate ? param.planUseDate : "璇烽�夋嫨" }}</text
-          >
+          <text class="mr6" :style="{ color: param.planUseDate ? '#000000' : '#999999' }">{{ param.planUseDate ?
+            param.planUseDate : "璇烽�夋嫨" }}</text>
           <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
         </view>
       </view>
@@ -67,12 +56,7 @@
           <text>鐩殑鍦�</text>
         </view>
         <view class="value">
-          <input
-            type="text"
-            placeholder="璇疯緭鍏�"
-            v-model="param.addr"
-            placeholder-style="color: #999999;"
-          />
+          <input type="text" placeholder="璇疯緭鍏�" v-model="param.addr" placeholder-style="color: #999999;" />
         </view>
       </view>
       <view class="line">
@@ -81,25 +65,20 @@
           <text>涔樿溅浜哄憳</text>
         </view>
         <view class="value" @click="selPeople">
-          <text
-            class="mr6"
-            :style="{
-              color:
-                param.memberList && param.memberList.length > 0
-                  ? '#000000'
-                  : '#999999',
-            }"
-          >
+          <text class="mr6" :style="{
+            color:
+              param.memberList && param.memberList.length > 0
+                ? '#000000'
+                : '#999999',
+          }">
             <text v-if="param.memberNames">
               <text v-for="(mem, i) in param.memberList" :key="mem.id">
                 <template v-if="i < 2">
-                  <text>{{ mem.name }}</text>
+                  <text>{{ mem.realname }}</text>
                   <text v-if="i < 1 && param.memberList.length > 1">,</text>
                 </template>
               </text>
-              <text v-if="param.memberList.length > 2"
-                >绛墈{ param.memberList.length }}浜�</text
-              >
+              <text v-if="param.memberList.length > 2">绛墈{ param.memberList.length }}浜�</text>
             </text>
             <text v-else>璇烽�夋嫨</text>
           </text>
@@ -112,41 +91,24 @@
           <text>鐢ㄨ溅浜嬬敱</text>
         </view>
         <view class="value">
-          <textarea
-            type="text"
-            placeholder="璇疯緭鍏�"
-            :maxlength="-1"
-            v-model="param.content"
-            placeholder-style="color: #999999;"
-          />
+          <textarea type="text" placeholder="璇疯緭鍏�" :maxlength="-1" v-model="param.content"
+            placeholder-style="color: #999999;" />
         </view>
       </view>
     </view>
     <view class="tip">
       <view class="title">娉ㄦ剰浜嬮」锛�</view>
-      <view class="line"
-        >1銆佸叕鍙歌溅杈嗗鍑洪渶鍔炵悊鐢ㄨ溅鐢宠琛紝缁忔壒鍑嗗悗鏂瑰彲澶栧嚭锛堝�熷嚭锛夈��</view
-      >
+      <view class="line">1銆佸叕鍙歌溅杈嗗鍑洪渶鍔炵悊鐢ㄨ溅鐢宠琛紝缁忔壒鍑嗗悗鏂瑰彲澶栧嚭锛堝�熷嚭锛夈��</view>
       <view class="line">2銆佸競澶栫敤杞﹂渶鎬荤粡鍔炲鎵广��</view>
-      <view class="line"
-        >3銆佸�熷嚭杞﹁締蹇呴』閬靛畧浜ら�氳鍒欙紝瀹夊叏琛岄┒銆傚浜庤溅杈嗗彂鐢熶氦閫氭剰澶栵紝瀵瑰綋浜嬩汉鍙婄涓夋柟閫犳垚浜鸿韩浼ゅ鍙婃崯澶憋紝鍏徃鍙互鍗忓姪澶勭悊淇濋櫓鍏徃璧斿伩鐩稿叧浜嬪疁锛屼絾涓嶆壙鎷呬换浣曡矗浠诲拰璐圭敤銆�</view
-      >
-      <view class="line"
-        >4銆佸叕鍙稿�熺粰鐢宠浜虹敤杞︼紝鐢宠鍊熻溅浜轰负绗竴璐d换浜猴紝涓嶅厑璁歌浆鍊熺粰鍏朵粬浜轰娇鐢紝鑻ヨ鍊熺粰浠栦汉浣跨敤銆傝矗浠讳汉瑕佹壙鎷呭叏閮ㄨ矗浠汇��</view
-      >
-			<view class="sub_btn" @click="handleSub">鎻愪氦</view>
+      <view class="line">3銆佸�熷嚭杞﹁締蹇呴』閬靛畧浜ら�氳鍒欙紝瀹夊叏琛岄┒銆傚浜庤溅杈嗗彂鐢熶氦閫氭剰澶栵紝瀵瑰綋浜嬩汉鍙婄涓夋柟閫犳垚浜鸿韩浼ゅ鍙婃崯澶憋紝鍏徃鍙互鍗忓姪澶勭悊淇濋櫓鍏徃璧斿伩鐩稿叧浜嬪疁锛屼絾涓嶆壙鎷呬换浣曡矗浠诲拰璐圭敤銆�</view>
+      <view class="line">4銆佸叕鍙稿�熺粰鐢宠浜虹敤杞︼紝鐢宠鍊熻溅浜轰负绗竴璐d换浜猴紝涓嶅厑璁歌浆鍊熺粰鍏朵粬浜轰娇鐢紝鑻ヨ鍊熺粰浠栦汉浣跨敤銆傝矗浠讳汉瑕佹壙鎷呭叏閮ㄨ矗浠汇��</view>
+      <view class="sub_btn" @click="handleSub">鎻愪氦</view>
     </view>
     <!--  -->
     <!-- :minDate="new Date(param.startTime).getTime()"
       :maxDate="new Date(param.endTime).getTime()" -->
-    <u-datetime-picker
-      :show="isShowDatetime"
-      @confirm="confirmDate"
-      :minDate="new Date(param.startTime).getTime()"
-      :maxDate="new Date(param.endTime).getTime()"
-      @cancel="isShowDatetime = false"
-      mode="datetime"
-    ></u-datetime-picker>
+    <u-datetime-picker :show="isShowDatetime" @confirm="confirmDate" :minDate="new Date(param.startTime).getTime()"
+      :maxDate="new Date(param.endTime).getTime()" @cancel="isShowDatetime = false" mode="datetime"></u-datetime-picker>
   </view>
 </template>
 
@@ -164,15 +126,15 @@
   mounted() {
     this.$eventBus.$on('applePeo', (res) => {
       this.$set(this.param, 'memberList', res)
-      this.$set(this.param, 'memberIds', res.map(i => i.id).join(','))
-      this.$set(this.param, 'memberNames', res.map(i => i.name).join(','))
+      this.$set(this.param, 'memberIds', res.map(i => i.memberId).join(','))
+      this.$set(this.param, 'memberNames', res.map(i => i.realname).join(','))
     })
   },
   onLoad(option) {
     console.log(option)
     this.param = { ...option }
     this.minDate = new Date().getTime()
-		this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm')
+    this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm')
   },
   methods: {
     handleSub() {
@@ -227,9 +189,10 @@
 </script>
 
 <style lang="scss">
-	page{
-		background-color: #f7f7f7;
-	}
+page {
+  background-color: #f7f7f7;
+}
+
 .main_wrap {
   .line {
     display: flex;
@@ -237,12 +200,14 @@
     align-items: center;
     border-bottom: 1rpx solid #e5e5e5;
     padding: 30rpx;
-		background-color: #fff;
-		width: 750rpx;
-		margin: 0 -30rpx;
+    background-color: #fff;
+    width: 750rpx;
+    margin: 0 -30rpx;
+
     .label {
       font-size: 30rpx;
       font-weight: 400;
+
       text {
         &:nth-child(1) {
           color: #e42d2d;
@@ -250,6 +215,7 @@
         }
       }
     }
+
     .value {
       flex: 1;
       height: 100%;
@@ -257,6 +223,7 @@
       display: flex;
       align-items: center;
       justify-content: flex-end;
+
       input {
         width: 100%;
         height: 100%;
@@ -267,11 +234,13 @@
       }
     }
   }
+
   .upload_line {
     padding: 30rpx;
-		width: 750rpx;
-		margin: 0 -30rpx;
-		background-color: #fff;
+    width: 750rpx;
+    margin: 0 -30rpx;
+    background-color: #fff;
+
     textarea {
       margin-top: 12rpx;
       width: 100%;
@@ -280,6 +249,7 @@
       font-weight: 400;
       color: #222222;
     }
+
     .adduser_list_item_ipt1_upload {
       margin-top: 24rpx;
       width: 120rpx;
@@ -292,6 +262,7 @@
       align-items: center;
       justify-content: center;
       overflow: hidden;
+
       image {
         width: 100%;
         height: 100%;
@@ -299,11 +270,12 @@
     }
   }
 }
+
 .sub_btn {
   // position: fixed;
   // bottom: 84rpx;
   // left: 30rpx;
-	margin-top: 60rpx;
+  margin-top: 60rpx;
   width: 690rpx;
   height: 88rpx;
   line-height: 88rpx;
@@ -314,20 +286,24 @@
   font-size: 30rpx;
   color: #ffffff;
 }
+
 .tip {
   background: #f7f7f7;
   padding: 30rpx 30rpx 10rpx;
   margin: 0 -30rpx;
+
   .title {
     line-height: 40rpx;
     margin-bottom: 22rpx;
   }
+
   .line {
     font-size: 26rpx;
     color: #666666;
     line-height: 36rpx;
   }
 }
+
 .main_app {
   padding-bottom: 0;
   // padding-top: 10rpx;
diff --git a/h5/pages/staff/vehicle/sendACar.vue b/h5/pages/staff/vehicle/sendACar.vue
index 4747678..57a4afe 100644
--- a/h5/pages/staff/vehicle/sendACar.vue
+++ b/h5/pages/staff/vehicle/sendACar.vue
@@ -69,6 +69,7 @@
     <u-datetime-picker
       mode="date"
       v-model="param.queryDate"
+			:formatter="formatter"
       :show="isShowDate"
       :minDate="minDate"
       closeOnClickOverlay
@@ -116,6 +117,24 @@
 		}
   },
   methods: {
+		formatter(type, value) {
+			if (type === 'year') {
+				return `${value}骞碻
+			}
+			if (type === 'month') {
+				return `${value}鏈坄
+			}
+			if (type === 'day') {
+				return `${value}鏃
+			}
+			if (type === 'hour') {
+				return `${value}鏃禶
+			}
+			if (type === 'minute') {
+				return `${value}鍒哷
+			}
+			return value
+		},
     getList() {
       const { param, pagination } = this
       pagination.page = pagination.page + 1
diff --git a/h5/pages/staff/vehicle/shinei.vue b/h5/pages/staff/vehicle/shinei.vue
index 0c4d8da..4704e57 100644
--- a/h5/pages/staff/vehicle/shinei.vue
+++ b/h5/pages/staff/vehicle/shinei.vue
@@ -46,7 +46,7 @@
 		<u-picker keyName="code" :show="isShowCar" :columns="carsList" @confirm="seletedCar"
 			@cancel="isShowCar = false"></u-picker>
 		<!-- 鏃ユ湡 -->
-		<u-datetime-picker ref="startPick" :show="isShowDate" :minDate="minDate" @confirm="confirmDate"
+		<u-datetime-picker ref="startPick" :formatter="formatter" :show="isShowDate" :minDate="minDate" @confirm="confirmDate"
 			@cancel="isShowDate = false" mode="date"></u-datetime-picker>
 		<!-- 璇︽儏 -->
 		<u-popup :show="isShowDetail" :round="12" mode="bottom" @close="isShowDetail = false">
@@ -131,7 +131,25 @@
 			this.minDate = new Date().getTime() - (6 * 24 * 60 * 60 * 1000)
 			this.initData()
 		},
-		methods: {
+		methods: {
+			formatter(type, value) {
+				if (type === 'year') {
+					return `${value}骞碻
+				}
+				if (type === 'month') {
+					return `${value}鏈坄
+				}
+				if (type === 'day') {
+					return `${value}鏃
+				}
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				return value
+			},
 			onSubmit() {
 				const {
 					param
diff --git a/h5/pages/staff/vehicle/shiwai.vue b/h5/pages/staff/vehicle/shiwai.vue
index 790f484..531e6b3 100644
--- a/h5/pages/staff/vehicle/shiwai.vue
+++ b/h5/pages/staff/vehicle/shiwai.vue
@@ -42,7 +42,7 @@
         <view class="line">
           <text>鐢ㄨ溅鏃舵</text>
           <text>
-            {{ item.startTime.slice(5, 16) }}鑷硔{
+            {{ item.startTime.slice(5, 16) }} 鑷� {{
               item.endTime.slice(5, 16)
             }}</text
           >
@@ -102,6 +102,7 @@
 		   :show="isShowDate"
 			ref="startPick"
 		   title="寮�濮嬫椂闂�"
+			 :formatter="formatter"
 		   :minDate="minDate"
 		   @close="isShowDate = false"
 		   :closeOnClickOverlay="true"
@@ -112,6 +113,7 @@
       mode="datetime"
       :show="isShowEndDate"
       title="缁撴潫鏃堕棿"
+			:formatter="formatter"
       :minDate="new Date(param.startTime || null).getTime()"
       @close="endtimeClose"
       :closeOnClickOverlay="true"
@@ -144,6 +146,24 @@
     this.initData()
   },
   methods: {
+		formatter(type, value) {
+			if (type === 'year') {
+				return `${value}骞碻
+			}
+			if (type === 'month') {
+				return `${value}鏈坄
+			}
+			if (type === 'day') {
+				return `${value}鏃
+			}
+			if (type === 'hour') {
+				return `${value}鏃禶
+			}
+			if (type === 'minute') {
+				return `${value}鍒哷
+			}
+			return value
+		},
 		showDate() {
 			this.isShowDate = true
 			if (!this.param.startTime) {
diff --git a/h5/pages/staff/visitorReport.vue b/h5/pages/staff/visitorReport.vue
index afc7353..4431d4e 100644
--- a/h5/pages/staff/visitorReport.vue
+++ b/h5/pages/staff/visitorReport.vue
@@ -138,6 +138,7 @@
       :show="show4"
       :minDate="new Date().getTime()"
       mode="datetime"
+			:formatter="formatter"
       @cancel="show4 = false"
       @confirm="setinDate"
     ></u-datetime-picker>
@@ -145,6 +146,7 @@
     <u-datetime-picker
       v-if="form1.starttime"
       :show="show5"
+			:formatter="formatter"
       :minDate="formatTimeStamp(form1.starttime)"
       :maxDate="formatTimeStamp(maxTime)"
       mode="datetime"
@@ -262,6 +264,24 @@
     // this.getUserValid()
   },
   methods: {
+		formatter(type, value) {
+			if (type === 'year') {
+				return `${value}骞碻
+			}
+			if (type === 'month') {
+				return `${value}鏈坄
+			}
+			if (type === 'day') {
+				return `${value}鏃
+			}
+			if (type === 'hour') {
+				return `${value}鏃禶
+			}
+			if (type === 'minute') {
+				return `${value}鍒哷
+			}
+			return value
+		},
     openInput(type) {
       this.inputType = type
       this.$refs.keyboard.open()
diff --git a/h5/pages/visitorApplication/memberSel.vue b/h5/pages/visitorApplication/memberSel.vue
new file mode 100644
index 0000000..7df8de5
--- /dev/null
+++ b/h5/pages/visitorApplication/memberSel.vue
@@ -0,0 +1,282 @@
+<template>
+  <view class="main_app">
+    <view class="search_inp df_ac">
+      <image
+        class="mr12 search"
+        src="../../static/ic_search@2x.png"
+        mode="widthFix"
+      ></image>
+      <input
+        v-model="param.name"
+        @confirm="initData()"
+        type="text"
+        placeholder="璇疯緭鍏ュ鍚嶈繘琛屾悳绱�"
+        placeholder-style="color: #999999;"
+      />
+    </view>
+    <view class="member_list">
+      <checkbox-group @change="changeMem">
+        <view v-for="item in memberList" :key="item.id" class="line">
+          <image v-if="item.faceImgFull" :src="item.faceImgFull" class="avatar" ></image>
+          <span v-else class="img_name">{{item.name && item.name.slice(0,1)}}</span>
+          <view class="content">
+            <view class="info">
+              <text class="name">{{ item.name }}</text>
+              <!-- <text class="tag">tag</text> -->
+            </view>
+            <view class="depart">{{ item.companyName }}</view>
+          </view>
+          <label>
+            <checkbox
+              :value="String(item.id)"
+              class="checkbox"
+            />
+          </label>
+          <text></text>
+        </view>
+      </checkbox-group>
+      <view v-if="memberList.length == 0" class="empty_wrap">
+      	<image src="../../static/empty.png"></image>
+      	<text>鏆傛棤鏁版嵁</text>
+      </view>
+    </view>
+
+    <u-popup
+      :show="isShowSelMem"
+      :round="12"
+      mode="bottom"
+      @close="isShowSelMem = false"
+    >
+      <view class="modal">
+        <view class="modal_header">
+          <text class="status">宸查�夋嫨锛歺x浜�</text>
+          <text class="btn" @click="isShowSelMem = false">纭</text>
+        </view>
+        <view class="modal_mem_list">
+          <view class="line">
+            <image
+              src="../../static/logo@2x.png"
+              class="avatar"
+              mode=""
+            ></image>
+            <view class="content">
+              <view class="info">
+                <text class="name">name</text>
+              </view>
+              <view class="depart">xx绉戝</view>
+            </view>
+            <view class="btn">绉婚櫎</view>
+          </view>
+        </view>
+      </view>
+    </u-popup>
+  </view>
+</template>
+
+<script>
+import { getVisitedMember } from '@/api'
+export default {
+  data() {
+    return {
+      memberList: [],
+      selList: [],
+      param: {},
+
+      isShowSelMem: false
+    }
+  },
+  onLoad(option) {
+    // this.$set(this.param, 'id', option.areaId || '')
+    this.initData()
+  },
+  methods: {
+    onSubmit() {
+      uni.navigateBack()
+    },
+    changeMem(e) {
+			console.log( e.detail.value[0]);
+			const id = Number(e.detail.value[0])
+			const item = this.memberList.find(i => i.id === id)
+      this.$eventBus.$emit('svisitorAppSel', item)
+			uni.navigateBack()
+    },
+    initData() {
+      const { param } = this
+			getVisitedMember({
+				...param
+			}).then(res => {
+			  this.memberList = res.data || []
+			})
+      // findHiddenAreaMemberList({
+      //   name: param.name,
+      //   id: param.id
+      // }).then(res => {
+      //   this.memberList = res.data || []
+      // })
+    }
+  }
+};
+</script>
+
+<style lang="scss">
+	.main_app{
+		padding-top: 30rpx;
+	}
+.modal {
+  padding: 40rpx 30rpx;
+  .modal_header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    .status {
+      font-weight: 600;
+    }
+    .btn {
+      color: $uni-color-primary;
+    }
+  }
+  .modal_mem_list {
+    .line {
+      display: flex;
+      align-items: center;
+      border-bottom: 1rpx solid #e5e5e5;
+      padding: 30rpx 0;
+      .avatar {
+        width: 64rpx;
+        height: 64rpx;
+        border-radius: 50%;
+        overflow: hidden;
+        margin-right: 20rpx;
+      }
+      .content {
+        flex: 1;
+        .depart {
+          font-size: 24rpx;
+          color: #666666;
+        }
+        .info {
+          display: flex;
+          margin-bottom: 16rpx;
+          .name {
+            font-size: 30rpx;
+          }
+        }
+      }
+      .btn {
+        width: 80rpx;
+        height: 48rpx;
+        line-height: 48rpx;
+        text-align: center;
+        font-size: 24rpx;
+        color: #333333;
+        border-radius: 4rpx;
+        border: 1rpx solid #999999;
+      }
+    }
+  }
+}
+.sub_wrap {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
+  padding: 30rpx 30rpx 64rpx;
+  .sel_mem {
+    display: flex;
+    align-items: center;
+    .members {
+      width: 500rpx;
+      color: $uni-color-primary;
+      white-space: nowrap;
+      overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
+      text-overflow: ellipsis;
+      margin-right: 20rpx;
+    }
+    .open_icon {
+      width: 44rpx;
+      height: 44rpx;
+    }
+  }
+  .btn {
+    width: 690rpx;
+    height: 88rpx;
+    line-height: 88rpx;
+    background: $uni-color-primary;
+    border-radius: 44rpx;
+    color: #fff;
+    text-align: center;
+    margin-top: 22rpx;
+  }
+}
+.member_list {
+	height: calc( 100vh - 130rpx );
+	overflow: auto;
+	margin-top: 10rpx;
+  .line {
+    display: flex;
+    align-items: center;
+    border-bottom: 1rpx solid #e5e5e5;
+    padding: 30rpx 0;
+    .avatar {
+      width: 64rpx;
+      height: 64rpx;
+      border-radius: 50%;
+      overflow: hidden;
+      margin-right: 20rpx;
+    }
+		.img_name{
+			width: 64rpx;
+			height: 64rpx;
+			line-height: 64rpx;
+			text-align: center;
+			border-radius: 50%;
+			overflow: hidden;
+			margin-right: 20rpx;
+			background: $uni-color-primary;
+			color: #fff;
+			border: 1rpx solid $uni-color-primary;
+		}
+    .content {
+      flex: 1;
+      .depart {
+        font-size: 24rpx;
+        color: #666666;
+      }
+      .info {
+        display: flex;
+        margin-bottom: 16rpx;
+        .name {
+          font-size: 30rpx;
+        }
+        .tag {
+          font-size: 24rpx;
+          border-radius: 4rpx;
+          border: 1rpx solid #f62710;
+          color: #f62710;
+          padding: 0rpx 6rpx;
+          margin-left: 8rpx;
+        }
+      }
+    }
+  }
+  .empty {
+    width: 100%;
+    height: 280rpx;
+  }
+}
+.search_inp {
+  height: 72rpx;
+  background: #f7f7f7;
+  border-radius: 4rpx;
+  padding-left: 16rpx;
+  .search {
+    width: 28rpx;
+  }
+  input {
+    flex: 1;
+    font-size: 28rpx;
+    color: #333333;
+  }
+}
+</style>
diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index 135a850..487dff6 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/h5/pages/visitorApplication/visitorApplication.vue
@@ -1,1408 +1,1397 @@
-<template>
-  <view class="visit">
-    <!-- <view class="head">鎷滆淇℃伅</view> -->
-    <view class="list">
-      <view class="list_item">
-        <view class="list_item_label">
-          <text>*</text>
-          <text>琚浜�</text>
-        </view>
-        <view class="list_item_content" @click="showName = true">
-          <text :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{
-            form1.receptMemberName ? form1.receptMemberName : "璇烽�夋嫨"
-          }}</text>
-          <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-        </view>
-      </view>
-      <view class="list_item">
-        <view class="list_item_label">
-          <text>*</text>
-          <text>鍏ュ洯鏃堕棿</text>
-        </view>
-        <view class="list_item_content" @click="show4 = true">
-          <text :style="{ color: form1.starttime ? '#000000' : '' }">{{
-            form1.starttime ? form1.starttime : "璇烽�夋嫨"
-          }}</text>
-          <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-        </view>
-      </view>
-      <view class="list_item">
-        <view class="list_item_label">
-          <text>*</text>
-          <text>绂诲洯鏃堕棿</text>
-        </view>
-        <view class="list_item_content" @click="openLC">
-          <text :style="{ color: form1.endtime ? '#000000' : '' }">{{
-            form1.endtime ? form1.endtime : "璇烽�夋嫨"
-          }}</text>
-          <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-        </view>
-      </view>
-      <!-- <view class="list_item" v-if="accessControl === '1'" @click="show = true">
-				<view class="list_item_label">
-					<text>璁块棶闂ㄧ</text>
-					<text>*</text>
-				</view>
-				<view class="list_item_content">
-					<text :style="{color: form1.doorSelectName ? '#000000' : ''}">{{form1.doorSelectName ? form1.doorSelectName : '璇烽�夋嫨'}}</text>
-					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-				</view>
-			</view> -->
-      <div class="empty"></div>
-      <view class="list_item">
-        <view class="list_item_label">
-          <text>*</text>
-          <text>鎷滆浜嬬敱</text>
-        </view>
-        <view class="list_item_content" @click="showReason = true">
-          <text :style="{ color: form1.reason ? '#000000' : '' }">{{
-            form1.reason ? form1.reason : "璇烽�夋嫨鎷滆浜嬬敱"
-          }}</text>
-          <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
-        </view>
-      </view>
-      <view class="list_item">
-        <view class="list_item_label">
-          <text></text>
-          <text>鏄惁鏂藉伐浣滀笟</text>
-        </view>
-        <view class="list_item_content">
-          <switch
-            color="#4e99a9"
-            style="transform: scale(0.8)"
-            @change="constructionChange"
-          />
-        </view>
-      </view>
-      <view v-if="form1.type == '1'" class="list_item">
-        <view class="list_item_label">
-          <text></text>
-          <text>鏂藉伐鍐呭</text>
-          <!-- <text>*</text> -->
-        </view>
-        <view class="list_item_content">
-          <input
-            type="text"
-            v-model="form1.constructionReason"
-            placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�"
-            placeholder-style="color: #999999;"
-          />
-        </view>
-      </view>
-      <view class="list_item">
-        <view class="list_item_label">
-          <text></text>
-          <text>闅忚杞﹁締</text>
-        </view>
-        <view class="list_item_content" @click="openInput(1)">
-          <text :style="{ color: form1.carNos ? '#000000' : '' }">{{
-            form1.carNos ? form1.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
-          }}</text>
-          <!-- <input type="text" placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> -->
-        </view>
-      </view>
-    </view>
-    <view class="footer">
-      <view class="footer_btn" @click="onSubmit">鎻愪氦</view>
-    </view>
-    <!-- 鍏ュ洯鏃堕棿 -->
-    <u-datetime-picker
-      :show="show4"
-      :minDate="new Date().getTime()"
-      mode="datetime"
-      @cancel="show4 = false"
-      @confirm="setstarttime"
-    ></u-datetime-picker>
-    <!-- 绂诲洯鏃堕棿 -->
-    <u-datetime-picker
-      v-if="form1.starttime"
-      :show="show5"
-      :minDate="formatTimeStamp(form1.starttime)"
-      :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')"
-      mode="datetime"
-      @cancel="show5 = false"
-      @confirm="setendtime"
-    ></u-datetime-picker>
-    <!-- 闂ㄧ -->
-    <u-popup
-      :show="show"
-      :round="10"
-      :safeAreaInsetBottom="true"
-      :closeable="true"
-      mode="bottom"
-      @close="closeMJ"
-    >
-      <view class="menjin">
-        <view class="respondent-title"> 閫夋嫨闂ㄧ </view>
-        <scroll-view scroll-y class="list">
-          <view
-            class="list_item"
-            v-for="(item, index) in columns"
-            :key="index"
-            @click="seleMJ(index)"
-          >
-            <text>{{ item.name }}</text>
-            <image
-              src="@/static/checkbox@2x.png"
-              mode="widthFix"
-              v-show="!item.active"
-            ></image>
-            <image
-              src="@/static/checkbo1x_sel@2x.png"
-              mode="widthFix"
-              v-show="item.active"
-            ></image>
-          </view>
-        </scroll-view>
-        <view class="menjin_footer">
-          <view class="menjin_footer_item" @click="closeMJ">鍙栨秷</view>
-          <view class="menjin_footer_item" @click="submitMJ">纭</view>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 閫夋嫨闅忚浜哄憳 -->
-    <u-popup
-      :show="show1"
-      :round="10"
-      :safeAreaInsetBottom="true"
-      :closeable="true"
-      mode="bottom"
-      @close="show1 = false"
-    >
-      <view class="popup-content">
-        <view class="respondent-title"> 閫夋嫨闅忚浜哄憳 </view>
-        <view class="search-box">
-          <view class="search-box-top">
-            <view class="search-box-top-ipt">
-              <image src="@/static/ic_search@2x.png" mode="widthFix"></image>
-              <input type="text" placeholder="鎼滅储濮撳悕/鎵嬫満鍙�" />
-            </view>
-            <text
-              @click="
-                show1 = false;
-                show3 = true;
-              "
-              >鏂板</text
-            >
-          </view>
-          <view class="search-box-total">鍏�0鏉℃暟鎹�</view>
-        </view>
-        <scroll-view scroll-y class="list">
-          <view class="item" v-for="(item, index) in 8" :key="index">
-            <view class="item_a">
-              <!-- <image src="@/static/checkbox.png" mode="widthFix" v-if="!item.active" /> -->
-              <image src="@/static/checkbox_sel@2x.png" mode="widthFix" />
-            </view>
-            <view class="item_b">
-              <image src="@/static/ic_mima@2x.png" mode="widthFix" />
-            </view>
-            <view class="item_c">
-              <text>鐢ㄦ埛鍚�</text>
-              <text>宸叉媺榛�</text>
-            </view>
-          </view>
-        </scroll-view>
-        <view class="footer1">
-          <view class="footer_left">
-            <text class="footer_left_a">宸查�夋嫨锛�0浜�</text>
-            <text class="footer_left_b">鏉庝紵锛�</text>
-          </view>
-          <view class="footer_btn">纭 0/0</view>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 杞﹁締 -->
-    <u-popup
-      :show="show2"
-      :round="10"
-      :safeAreaInsetBottom="true"
-      :closeable="true"
-      mode="bottom"
-      @close="show2 = false"
-    >
-      <view class="addcar">
-        <view class="addcar_head">娣诲姞杞﹁締</view>
-        <view class="addcar_ipt">
-          <input type="text" v-model="carName" placeholder="璇疯緭鍏ヨ溅鐗屽彿" />
-        </view>
-        <view class="addcar_footer">
-          <view class="addcar_footer_item" @click="show2 = false">鍙栨秷</view>
-          <view class="addcar_footer_item t" @click="submitCart">鎻愪氦</view>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 娣诲姞闅忚浜哄憳 -->
-    <u-popup
-      :show="show3"
-      :round="10"
-      :safeAreaInsetBottom="true"
-      :closeable="true"
-      mode="bottom"
-      @close="show3 = false"
-    >
-      <view class="adduser">
-        <view class="adduser_head">闅忚浜哄憳</view>
-        <view class="adduser_list">
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>濮撳悕</text>
-              <text>*</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <input
-                type="text"
-                v-model="withUserList.name"
-                placeholder-style="color: #999999;font-size: 28rpx;"
-                placeholder="璇疯緭鍏ョ湡瀹炲鍚�"
-              />
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>鎵嬫満鍙�</text>
-              <text>*</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <input
-                type="number"
-                v-model="withUserList.phone"
-                maxlength="11"
-                placeholder-style="color: #999999;font-size: 28rpx;"
-                placeholder="璇疯緭鍏ユ墜鏈哄彿"
-              />
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>璇佷欢绫诲瀷</text>
-              <text>*</text>
-            </view>
-            <view class="adduser_list_item_ipt" @click="show6 = true">
-              <text
-                :style="{ color: withUserList.idcardTypeName ? '#000000' : '' }"
-                >{{
-                  withUserList.idcardTypeName
-                    ? withUserList.idcardTypeName
-                    : "璇烽�夋嫨"
-                }}</text
-              >
-              <u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>璇佷欢鍙风爜</text>
-              <text>*</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <input
-                type="text"
-                v-model="withUserList.idcardNo"
-                maxlength="18"
-                placeholder-style="color: #999999;font-size: 28rpx;"
-                placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�"
-              />
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>*</text>
-              <text>鍏徃</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <input
-                type="text"
-                v-model="withUserList.companyName"
-                placeholder-style="color: #999999;font-size: 28rpx;"
-                placeholder="璇疯緭鍏ュ叕鍙稿悕绉�"
-              />
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text></text>
-              <text>闅忚杞﹁締</text>
-            </view>
-            <view class="adduser_list_item_ipt" @click="openInput(2)">
-              <text :style="{ color: withUserList.carNos ? '#000000' : '' }">{{
-                withUserList.carNos ? withUserList.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
-              }}</text>
-              <!-- <input type="text" v-model="withUserList.carNos" disabled placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ溅鐗屽彿" /> -->
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label1">
-              <text class="cc">浜鸿劯鐓х墖<b>*</b></text>
-              <text class="aa"
-                >1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text
-              >
-              <text class="aa">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊锛�</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <view
-                class="adduser_list_item_ipt1_upload"
-                @click="upload('faceImg')"
-                v-if="!withUserList.faceImgUrl"
-              >
-                <u-icon
-                  name="plus"
-                  color="rgb(153, 153, 153)"
-                  size="28"
-                ></u-icon>
-              </view>
-              <view
-                class="adduser_list_item_ipt1_upload"
-                @click="upload('faceImg')"
-                v-else
-              >
-                <image :src="withUserList.faceImgUrl" mode="widthFix"></image>
-              </view>
-            </view>
-          </view>
-          <view class="adduser_list_item">
-            <view class="adduser_list_item_label">
-              <text>鍋ュ悍璇佺収鐗�</text>
-              <text v-if="visit === '1'">*</text>
-            </view>
-            <view class="adduser_list_item_ipt">
-              <view
-                class="adduser_list_item_ipt1_upload"
-                @click="upload('imgurl')"
-                v-if="!withUserList.imgurlUrl"
-              >
-                <u-icon
-                  name="plus"
-                  color="rgb(153, 153, 153)"
-                  size="28"
-                ></u-icon>
-              </view>
-              <view
-                class="adduser_list_item_ipt1_upload"
-                @click="upload('imgurl')"
-                v-else
-              >
-                <image :src="withUserList.imgurlUrl" mode="widthFix"></image>
-              </view>
-            </view>
-          </view>
-        </view>
-        <view class="adduser_footer">
-          <view class="adduser_footer_item" @click="show3 = false">鍙栨秷</view>
-          <view class="adduser_footer_item t" @click="submitUser">鎻愪氦</view>
-        </view>
-      </view>
-    </u-popup>
-    <u-picker
-      keyName="name"
-      :show="show6"
-      :columns="columns1"
-      @confirm="seleIdcard"
-      @cancel="show6 = false"
-    ></u-picker>
-    <u-picker
-      keyName="name"
-      :show="showName"
-      :columns="VisitPoeple"
-      @confirm="selectedName"
-      @cancel="showName = false"
-    ></u-picker>
-    <u-picker
-      keyName="title"
-      :show="showReason"
-      :columns="VisitReason"
-      @confirm="selectedReason"
-      @cancel="showReason = false"
-    ></u-picker>
-    <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
-    <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
-    <qf-image-cropper
-      ref="cropper"
-      :width="280"
-      :height="280"
-      :radius="30"
-      @crop="uploadImg"
-    ></qf-image-cropper>
-  </view>
-</template>
-
-<script>
-import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue"
-import keyboardInput from "@/components/keyboard-input/keyboard-input.vue"
-import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue'
-import { getDaysAfterDate } from '@/utils/utils.js'
-import {
-  getVisitedMember,
-  getSystemDictData,
-  getVisitedVisitReason,
-  createFk
-} from '@/api'
-export default {
-  data() {
-    return {
-      photoSrc: '',
-      type: '',
-      inputType: '',
-      showName: false,
-      show: false,
-      show1: false,
-      show2: false,
-      show3: false,
-      show4: false,
-      show5: false,
-      show6: false,
-      show7: false,
-      showReason: false,
-      fileList: [],
-      columns1: [
-        [{ name: '韬唤璇�', id: 0 }, { name: '娓境璇佷欢', id: 1 }, { name: '鎶ょ収', id: 2 }],
-      ],
-      VisitReason: [],
-      VisitPoeple: [],
-      columns: [],
-      cars: [],
-      day: null,
-      maxTime: '',
-      carName: '',
-      personnel: [],
-      userAnswerId: '',
-      form1: {
-        phone1: '',
-        receptMemberId: '',
-        receptMemberName: '',
-        starttime: '',
-        endtime: '',
-        doors: '',
-        doorSelectName: '',
-        reason: '',
-        carNos: '',
-        type: 0
-      },
-      withUserList: {
-        name: '',
-        phone: '',
-        idcardType: '',
-        idcardTypeName: '',
-        companyName: '',
-        idcardNo: '',
-        faceImg: '',
-        faceImgUrl: '',
-        imgurl: '',
-        imgurlUrl: ''
-      },
-      visit: '',
-      form: {},
-      accessControl: '',
-      verify: ''
-    }
-  },
-  components: { tlyPictureCut, keyboardInput, QfImageCropper },
-  onLoad(options) {
-    if (options.data) {
-      this.form = JSON.parse(options.data)
-    }
-    // this.getvisit()
-    // this.getVisit1()
-    // this.getUserValid()
-    this.getUser()
-  },
-  methods: {
-    openInput(type) {
-      this.inputType = type
-      this.$refs.keyboard.open()
-    },
-    setPlate(e) {
-      if (this.inputType === 1) {
-        this.form1.carNos = e
-      } else if (this.inputType === 2) {
-        this.withUserList.carNos = e
-      }
-      this.$forceUpdate()
-      this.closeInput()
-    },
-    closeInput() {
-      this.$refs.keyboard.close()
-    },
-    constructionChange(e) {
-      console.log(e.detail.value)
-      this.form1.type = Number(e.detail.value)
-      console.log(this.form1.type)
-    },
-    uploadImg(file) {
-      this.$refs.cropper.close()
-      uni.showLoading({ title: '涓婁紶涓�', mask: true })
-      uni.uploadFile({
-        url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
-        filePath: file.tempFilePath,
-        name: 'file',
-        formData: {
-          folderCode: 'MEMBER_IMG'
-        },
-        success: (uploadFileRes) => {
-          let res = JSON.parse(uploadFileRes.data)
-          this.withUserList.faceImg = res.data.halfPath
-          this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-        },
-        complete() {
-          uni.hideLoading()
-        }
-      })
-    },
-    closeMJ() {
-      this.show = false
-      this.columns.forEach(item => {
-        item.active = false
-      })
-    },
-    onSubmit() {
-      if (!this.form1.receptMemberId) return uni.showToast({
-        title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�',
-        icon: 'none'
-      })
-      if (!this.form1.starttime) return uni.showToast({
-        title: '鍏ュ洯鏃堕棿涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.form1.endtime) return uni.showToast({
-        title: '绂诲洯鏃堕棿涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.form1.doorSelectName && this.accessControl == 1) return uni.showToast({
-        title: '璁块棶闂ㄧ涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.form1.reason) return uni.showToast({
-        title: '鎷滆浜嬬敱涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      // this.form1.starttime = this.form1.starttime + ':00'
-      // this.form1.endtime = this.form1.endtime + ':00'
-      let data = JSON.parse(JSON.stringify(this.form1))
-      data.starttime = data.starttime + ':00'
-      data.endtime = data.endtime + ':00'
-      createFk({
-        ...this.form,
-        ...data,
-        openid: this.$store.state.openId,
-        withUserList: this.personnel
-      }).then(res => {
-        if (res.code === 200) {
-          uni.navigateTo({
-            url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}`
-          })
-        }
-      })
-    },
-    deleUser(i) {
-      this.personnel.splice(i, 1)
-    },
-    getVisit1() {
-      // 鏄惁闇�瑕佺瓟棰�
-      this.$u.api.getSystemDictData({
-        dictCode: 'SYSTEM',
-        label: 'HEALTH_CARD'
-      }).then(res => {
-        if (res.code === 200) {
-          this.visit = res.data.code
-        }
-      })
-      // 璧峰鏃堕棿鏃堕暱
-      getSystemDictData({
-        dictCode: 'VISIT_CONFIG',
-        label: 'VALIDATE_VISIT'
-      }).then(res => {
-        if (res.code === 200) {
-          this.day = Number(res.data.code)
-          // console.log(nextDay('after', true, this.day))
-        }
-      })
-    },
-    submitUser() {
-      if (!this.withUserList.name) return uni.showToast({
-        title: '濮撳悕涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.withUserList.phone) return uni.showToast({
-        title: '鎵嬫満鍙蜂笉鑳戒负绌�',
-        icon: 'none'
-      })
-      const regExp = /^1[3456789]\d{9}$/
-      if (!regExp.test(this.withUserList.phone)) return uni.showToast({
-        title: '鎵嬫満鍙锋牸寮忛敊璇�',
-        icon: 'none'
-      })
-      if (!String(this.withUserList.idcardType)) return uni.showToast({
-        title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.withUserList.idcardNo) return uni.showToast({
-        title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (this.withUserList.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.withUserList.idcardNo)) return uni.showToast({
-          title: '璇佷欢鍙风爜鏍煎紡閿欒',
-          icon: 'none'
-        })
-      }
-      if (!this.withUserList.companyName) return uni.showToast({
-        title: '鍏徃涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (!this.withUserList.faceImg) return uni.showToast({
-        title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
-        icon: 'none'
-      })
-      if (this.visit === '1') {
-        if (!this.withUserList.imgurl) return uni.showToast({
-          title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
-          icon: 'none'
-        })
-      }
-      let arr = JSON.parse(JSON.stringify(this.withUserList))
-      this.personnel.push(arr)
-      this.show3 = false
-      this.withUserList.name = ''
-      this.withUserList.phone = ''
-      this.withUserList.idcardType = ''
-      this.withUserList.idcardTypeName = ''
-      this.withUserList.companyName = ''
-      this.withUserList.idcardNo = ''
-      this.withUserList.faceImg = ''
-      this.withUserList.faceImgUrl = ''
-      this.withUserList.imgurl = ''
-      this.withUserList.imgurlUrl = ''
-    },
-    upload(type) {
-      this.type = type
-      if (type === 'faceImg') {
-        this.$refs.cropper.open()
-        return
-      }
-      uni.chooseImage({
-        success: (chooseImageRes) => {
-          uni.showLoading({ title: '涓婁紶涓�', mask: true })
-          for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
-            uni.uploadFile({
-              url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
-              filePath: chooseImageRes.tempFilePaths[i],
-              name: 'file',
-              formData: {
-                folderCode: 'MEMBER_IMG'
-              },
-              success: (uploadFileRes) => {
-                let res = JSON.parse(uploadFileRes.data)
-                if (type === 'faceImg') {
-                  this.withUserList.faceImg = res.data.halfPath
-                  this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-                } else {
-                  this.withUserList.imgurl = res.data.halfPath
-                  this.withUserList.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-                }
-              },
-              complete() {
-                if (i === chooseImageRes.tempFilePaths.length - 1) {
-                  uni.hideLoading()
-                }
-              }
-            })
-          }
-        }
-      })
-    },
-    seleIdcard(e) {
-      this.withUserList.idcardType = e.value[0].id
-      this.withUserList.idcardTypeName = e.value[0].name
-      this.show6 = false
-    },
-    selectedName(e) {
-      this.form1.receptMemberName = e.value[0].name
-      this.form1.receptMemberId = e.value[0].id
-      this.form1.receptMemberDepartment = e.value[0].companyId
-      this.showName = false
-    },
-    selectedReason(e) {
-      this.form1.reason = e.value[0].title
-      console.log(e.value[0].title)
-      this.showReason = false
-    },
-    submitCart() {
-      if (!this.carName) return uni.showToast({
-        title: '璇疯緭鍏ヨ溅鐗屽彿鐮�',
-        icon: 'none'
-      })
-      this.cars.push(this.carName)
-      this.form1.carNos = this.cars.join(',')
-      this.carName = ''
-      this.show2 = false
-    },
-    deleCars(i) {
-      this.cars.splice(i, 1)
-      this.form1.carNos = this.cars.join(',')
-    },
-    submitMJ() {
-      let arr = []
-      let names = []
-      this.columns.forEach(item => {
-        if (item.active) {
-          arr.push(item.id)
-          names.push(item.name)
-        }
-      })
-      if (arr.length === 0) return uni.showToast({
-        title: '璇烽�夋嫨闂ㄧ',
-        icon: 'none'
-      })
-      this.form1.doorSelectName = names.join(',')
-      this.form1.doors = arr.join(',')
-      this.show = false
-    },
-    seleMJ(i) {
-      this.columns.forEach((item, index) => {
-        if (index === i) {
-          item.active = !item.active
-        }
-      })
-    },
-    openLC() {
-      if (!this.form1.starttime) return uni.showToast({
-        title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿',
-        icon: 'none'
-      })
-      this.show5 = true
-    },
-    setstarttime(e) {
-      this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
-      // this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'), this.day)
-      this.maxTime = this.form1.starttime
-      console.log(this.form1.starttime.slice(0,10))
-      this.show4 = false
-    },
-    setendtime(e) {
-      this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
-      this.show5 = false
-    },
-    formatTimeStamp(date) {
-      return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`))
-    },
-    // 鏌ヨ鐢ㄦ埛
-    getUser() {
-      getVisitedMember().then(res => {
-        this.VisitPoeple = [res.data || []]
-      })
-      getVisitedVisitReason({}).then(res => {
-        this.VisitReason = [res.data || []]
-      })
-    },
-    // 琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
-    getUserValid() {
-      getSystemDictData({
-        dictCode: 'SYSTEM',
-        label: 'BEVISITED_USER_VALID'
-      }).then(res => {
-        if (res.code === 200) {
-          this.verify = res.data.code
-        }
-      })
-    },
-    // 鑾峰彇鏄惁闇�瑕侀�夋嫨闂ㄧ/闂ㄧ鍒楄〃
-    getvisit() {
-      getSystemDictData({
-        dictCode: 'SYSTEM',
-        label: 'SELECT_DOORS_VISIT_REQUIRED'
-      }).then(res => {
-        if (res.code === 200) {
-          this.accessControl = res.data.code
-          if (res.data.code === '1') {
-            this.$u.api.deviceRoleList({ type: 1 })
-              .then(device => {
-                if (device.code === 200) {
-                  if (device.data.length > 0) {
-                    device.data.forEach(item => {
-                      item.active = false
-                    })
-                    this.columns = device.data
-                  }
-                }
-              })
-          }
-        }
-      })
-    },
-    confirm(e) {
-      this.show = false
-    }
-  }
-}
-</script>
-<style>
-page {
-  background-color: #f7f7f7 !important;
-}
-.u-upload__button {
-  margin: 0 !important;
-}
-</style>
-<style lang="scss" scoped>
-.visit {
-  width: 100%;
-  .menjin {
-    width: 100%;
-    .respondent-title {
-      width: 100%;
-      height: 100rpx;
-      line-height: 100rpx;
-      text-align: center;
-      font-size: 32rpx;
-      font-weight: 600;
-      color: #222222;
-    }
-    .list {
-      width: 100%;
-      height: 400rpx;
-      display: flex;
-      flex-direction: column;
-      .list_item {
-        width: 100%;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        text {
-          font-size: 28rpx;
-          color: #000000;
-        }
-        image {
-          width: 30rpx;
-          height: 30rpx;
-        }
-      }
-    }
-    .menjin_footer {
-      width: 100%;
-      padding: 30rpx;
-      box-sizing: border-box;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      .menjin_footer_item {
-        flex: 1;
-        height: 80rpx;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        border-radius: 10rpx;
-        background-color: $uni-color-primary;
-        color: #ffffff;
-        font-size: 26rpx;
-        margin-left: 30rpx;
-        &:first-child {
-          margin-left: 0 !important;
-        }
-      }
-    }
-  }
-  .adduser {
-    padding: 30rpx;
-    width: 100%;
-    box-sizing: border-box;
-    .adduser_head {
-      width: 100%;
-      text-align: center;
-      font-size: 32rpx;
-      font-family: PingFangSC, PingFang SC;
-      font-weight: 600;
-      color: #222222;
-    }
-    .adduser_list {
-      width: 100%;
-      margin-top: 40rpx;
-      .adduser_list_item {
-        width: 100%;
-        padding: 24rpx 0;
-        box-sizing: border-box;
-        border-bottom: 1rpx solid #e5e5e5;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        .adduser_list_item_label1 {
-          flex: 1;
-          display: flex;
-          flex-direction: column;
-          .cc {
-            font-size: 30rpx;
-            font-family: PingFangSC, PingFang SC;
-            font-weight: 400;
-            color: #222222;
-            margin-bottom: 20rpx;
-            b {
-              font-size: 30rpx;
-              font-family: PingFangSC, PingFang SC;
-              font-weight: 400;
-              color: #e0312a;
-            }
-          }
-          .aa {
-            font-size: 24rpx;
-            font-weight: 400;
-            color: #999999;
-          }
-        }
-        .adduser_list_item_label {
-          flex-shrink: 0;
-          display: flex;
-          align-items: center;
-          font-family: PingFangSC, PingFang SC;
-          font-size: 30rpx;
-          text {
-            &:nth-child(1) {
-              color: #e0312a;
-            }
-            &:nth-child(2) {
-              color: #222222;
-            }
-          }
-        }
-        .adduser_list_item_ipt {
-          flex-shrink: 0;
-          text-align: right;
-          font-size: 28rpx;
-          font-family: PingFangSC, PingFang SC;
-          font-weight: 400;
-          color: #333333;
-          margin-left: 30rpx;
-          display: flex;
-          align-items: center;
-          justify-content: flex-end;
-          .adduser_list_item_ipt1_upload {
-            width: 120rpx;
-            height: 120rpx;
-            background-color: #ececec;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            overflow: hidden;
-            image {
-              width: 100%;
-              height: 100%;
-            }
-          }
-          text {
-            font-size: 28rpx;
-            font-family: PingFangSC, PingFang SC;
-            font-weight: 400;
-            color: #999999;
-          }
-        }
-      }
-    }
-    .adduser_footer {
-      width: 100%;
-      margin-top: 60rpx;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      .t {
-        background: #4d99a9 !important;
-        color: #ffffff !important;
-      }
-      .adduser_footer_item {
-        width: 336rpx;
-        height: 88rpx;
-        line-height: 88rpx;
-        text-align: center;
-        border-radius: 44rpx;
-        border: 1rpx solid #4d99a9;
-        font-size: 32rpx;
-        font-family: PingFangSC, PingFang SC;
-        font-weight: 400;
-        color: #4d99a9;
-        margin-right: 18rpx;
-        &:last-child {
-          margin: 0 !important;
-        }
-      }
-    }
-  }
-
-  .addcar {
-    padding: 30rpx;
-    width: 100%;
-    box-sizing: border-box;
-    .addcar_head {
-      text-align: center;
-      font-size: 32rpx;
-      font-family: PingFangSC, PingFang SC;
-      font-weight: 600;
-      color: #222222;
-    }
-    .addcar_ipt {
-      width: 100%;
-      height: 100rpx;
-      line-height: 100rpx;
-      text-align: center;
-      background: #f7f7f7;
-      border-radius: 50rpx;
-      margin-top: 60rpx;
-      input {
-        width: 100%;
-        height: 100%;
-        font-size: 28rpx;
-        font-weight: 400;
-        color: #000000;
-        text-align: center;
-      }
-    }
-    .addcar_footer {
-      width: 100%;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      margin-top: 60rpx;
-      .t {
-        background: #4d99a9 !important;
-        color: #ffffff !important;
-      }
-      .addcar_footer_item {
-        flex: 1;
-        height: 88rpx;
-        line-height: 88rpx;
-        font-size: 32rpx;
-        font-weight: 400;
-        color: #025eef;
-        text-align: center;
-        border-radius: 44rpx;
-        border: 1rpx solid #025eef;
-        margin-right: 18rpx;
-        &:last-child {
-          margin-right: 0 !important;
-        }
-      }
-    }
-  }
-
-  .popup-content {
-    padding: 30rpx 30rpx 0 30rpx;
-    overflow: hidden;
-    display: flex;
-    flex-flow: column;
-    .respondent-title {
-      width: 100%;
-      text-align: center;
-      font-size: 32rpx;
-      font-weight: 600;
-      color: #222222;
-    }
-    .search-box {
-      width: 100%;
-      margin-top: 40rpx;
-      .search-box-top {
-        width: 100%;
-        height: 68rpx;
-        display: flex;
-        align-items: center;
-        .search-box-top-ipt {
-          flex: 1;
-          height: 100%;
-          padding: 0 30rpx;
-          box-sizing: border-box;
-          background: #f7f7f7;
-          border-radius: 4rpx;
-          display: flex;
-          align-items: center;
-          image {
-            width: 36rpx;
-            height: 36rpx;
-            flex-shrink: 0;
-            margin-right: 22rpx;
-          }
-          input {
-            flex: 1;
-            height: 100%;
-            font-size: 26rpx;
-            font-weight: 400;
-            color: #b2b2b2;
-          }
-        }
-        text {
-          flex-shrink: 0;
-          margin-left: 30rpx;
-          font-size: 28rpx;
-          font-weight: 400;
-          color: #025eef;
-        }
-      }
-      .search-box-total {
-        font-size: 26rpx;
-        font-weight: 400;
-        color: #666666;
-        margin-top: 24rpx;
-      }
-    }
-    .list {
-      width: 100%;
-      height: 800rpx;
-      margin-top: 30rpx;
-      padding: 0 !important;
-      .item {
-        width: 100%;
-        height: 102rpx;
-        display: flex;
-        align-items: center;
-        border-bottom: 1rpx solid #e5e5e5;
-        .item_a {
-          flex-shrink: 0;
-          width: 36rpx;
-          height: 36rpx;
-          margin-right: 24rpx;
-          image {
-            width: 100%;
-            height: 100%;
-          }
-        }
-        .item_b {
-          flex-shrink: 0;
-          width: 80rpx;
-          height: 80rpx;
-          display: flex;
-          align-items: center;
-          justify-content: center;
-          overflow: hidden;
-          margin-right: 24rpx;
-          image {
-            width: 100%;
-            height: 100%;
-          }
-        }
-        .item_c {
-          flex: 1;
-          display: flex;
-          align-items: center;
-          text {
-            &:nth-child(1) {
-              font-size: 30rpx;
-              font-family: PingFangSC, PingFang SC;
-              font-weight: 400;
-              color: #222222;
-            }
-            &:nth-child(2) {
-              font-size: 20rpx;
-              font-family: PingFangSC, PingFang SC;
-              font-weight: 400;
-              color: #999999;
-              padding: 1rpx 4rpx;
-              box-sizing: border-box;
-              background-color: #eeeeee;
-              margin-left: 12rpx;
-            }
-          }
-        }
-      }
-    }
-    .footer1 {
-      width: 100%;
-      height: 100rpx;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      padding: 14rpx 0 0 0;
-      box-sizing: border-box;
-      .footer_left {
-        flex: 1;
-        display: flex;
-        flex-direction: column;
-        .footer_left_a {
-          font-size: 26rpx;
-          font-family: PingFangSC, PingFang SC;
-          font-weight: 400;
-          color: #333333;
-        }
-        .footer_left_b {
-          font-size: 24rpx;
-          font-family: PingFangSC, PingFang SC;
-          font-weight: 400;
-          color: #999999;
-        }
-      }
-      .footer_btn {
-        flex-shrink: 0;
-        width: 216rpx;
-        height: 72rpx;
-        line-height: 72rpx;
-        text-align: center;
-        background: #025eef;
-        border-radius: 8rpx;
-        font-size: 28rpx;
-        font-weight: 600;
-        color: #ffffff;
-      }
-    }
-  }
-
-  .head {
-    width: 100%;
-    padding: 20rpx 30rpx;
-    box-sizing: border-box;
-    font-size: 28rpx;
-    font-weight: 400;
-    color: #666666;
-  }
-
-  .list {
-    width: 100%;
-    padding: 0 30rpx;
-    box-sizing: border-box;
-    background-color: #ffffff;
-    .empty {
-      width: 750rpx;
-      height: 20rpx;
-      background-color: #f7f7f7;
-      margin: 0 -30rpx;
-    }
-    .list_item {
-      width: 100%;
-      // min-height: 98rpx;
-      padding: 30rpx 0;
-      box-sizing: border-box;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      border-bottom: 1rpx solid #e5e5e5;
-
-      .list_item_label {
-        flex-shrink: 0;
-        display: flex;
-        align-items: center;
-
-        text {
-          &:nth-child(1) {
-            font-size: 30rpx;
-            font-weight: 400;
-            color: #e42d2d;
-          }
-
-          &:nth-child(2) {
-            font-size: 30rpx;
-            font-weight: 400;
-            color: #222222;
-          }
-        }
-      }
-
-      .list_item_content {
-        flex: 1;
-        height: 100%;
-        margin-left: 30rpx;
-        display: flex;
-        align-items: center;
-        justify-content: flex-end;
-
-        text {
-          font-size: 28rpx;
-          font-weight: 400;
-          color: #999999;
-          margin-right: 6rpx;
-        }
-
-        input {
-          width: 100%;
-          height: 100%;
-          text-align: right;
-          font-size: 28rpx;
-          font-weight: 400;
-          color: #222222;
-        }
-      }
-    }
-  }
-
-  .cate {
-    width: 100%;
-    padding: 30rpx;
-    box-sizing: border-box;
-    background-color: #ffffff;
-    .cate_head {
-      font-size: 32rpx;
-      font-family: PingFangSC, PingFang SC;
-      font-weight: 600;
-      color: #222222;
-    }
-
-    .cate_list {
-      width: 100%;
-      display: flex;
-      align-items: center;
-      flex-wrap: wrap;
-      margin-top: 30rpx;
-
-      .cate_list_item {
-        height: 64rpx;
-        padding: 0 20rpx;
-        box-sizing: border-box;
-        background-color: #eeeeee;
-        border-radius: 4rpx;
-        margin-right: 20rpx;
-        margin-bottom: 20rpx;
-        display: flex;
-        align-items: center;
-
-        &:last-child {
-          margin-right: 0 !important;
-        }
-
-        text {
-          font-size: 26rpx;
-          font-family: PingFangSC, PingFang SC;
-          font-weight: 400;
-          color: #333333;
-          margin-right: 30rpx;
-        }
-      }
-    }
-
-    .cate_add {
-      width: 200rpx;
-      height: 50rpx;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      background: rgba(2, 94, 239, 0);
-      border-radius: 25rpx;
-      border: 1rpx solid #4c99a8;
-      font-size: 22rpx;
-      font-family: PingFangSC, PingFang SC;
-      font-weight: 400;
-      margin-top: 20rpx;
-      color: #4c99a8;
-      margin: 0 auto;
-    }
-  }
-
-  .zw {
-    width: 100%;
-    height: calc(env(safe-area-inset-bottom) + 118rpx);
-  }
-
-  .footer {
-    width: 100%;
-    padding: 0 30rpx;
-    padding-bottom: env(safe-area-inset-bottom);
-    box-sizing: border-box;
-		margin-top: 80rpx;
-    // position: fixed;
-    // left: 0;
-    // bottom: 30rpx;
-
-    .footer_btn {
-      width: 100%;
-      height: 88rpx;
-      line-height: 88rpx;
-      text-align: center;
-      background: #4c99a8;
-      border-radius: 44rpx;
-      font-size: 32rpx;
-      font-weight: 600;
-      color: #ffffff;
-    }
-  }
-}
+<template>
+	<view class="visit">
+		<!-- <view class="head">鎷滆淇℃伅</view> -->
+		<view class="list">
+			<view class="list_item">
+				<view class="list_item_label">
+					<text>*</text>
+					<text>琚浜�</text>
+				</view>
+				<view class="list_item_content" @click="selName">
+					<text :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{
+            form1.receptMemberName ? form1.receptMemberName : "璇烽�夋嫨"
+          }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
+			</view>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text>*</text>
+					<text>鍏ュ洯鏃堕棿</text>
+				</view>
+				<view class="list_item_content" @click="show4 = true">
+					<text :style="{ color: form1.starttime ? '#000000' : '' }">{{
+            form1.starttime ? form1.starttime : "璇烽�夋嫨"
+          }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
+			</view>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text>*</text>
+					<text>绂诲洯鏃堕棿</text>
+				</view>
+				<view class="list_item_content" @click="openLC">
+					<text :style="{ color: form1.endtime ? '#000000' : '' }">{{
+            form1.endtime ? form1.endtime : "璇烽�夋嫨"
+          }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
+			</view>
+			<!-- <view class="list_item" v-if="accessControl === '1'" @click="show = true">
+				<view class="list_item_label">
+					<text>璁块棶闂ㄧ</text>
+					<text>*</text>
+				</view>
+				<view class="list_item_content">
+					<text :style="{color: form1.doorSelectName ? '#000000' : ''}">{{form1.doorSelectName ? form1.doorSelectName : '璇烽�夋嫨'}}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
+			</view> -->
+			<div class="empty"></div>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text>*</text>
+					<text>鎷滆浜嬬敱</text>
+				</view>
+				<view class="list_item_content" @click="showReason = true">
+					<text :style="{ color: form1.reason ? '#000000' : '' }">{{
+            form1.reason ? form1.reason : "璇烽�夋嫨鎷滆浜嬬敱"
+          }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
+				</view>
+			</view>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text></text>
+					<text>鏄惁鏂藉伐浣滀笟</text>
+				</view>
+				<view class="list_item_content">
+					<switch color="#4e99a9" style="transform: scale(0.8)" @change="constructionChange" />
+				</view>
+			</view>
+			<view v-if="form1.type == '1'" class="list_item">
+				<view class="list_item_label">
+					<text></text>
+					<text>鏂藉伐鍐呭</text>
+					<!-- <text>*</text> -->
+				</view>
+				<view class="list_item_content">
+					<input type="text" v-model="form1.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�"
+						placeholder-style="color: #999999;" />
+				</view>
+			</view>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text></text>
+					<text>闅忚杞﹁締</text>
+				</view>
+				<view class="list_item_content" @click="openInput(1)">
+					<text :style="{ color: form1.carNos ? '#000000' : '' }">{{
+            form1.carNos ? form1.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
+          }}</text>
+					<!-- <input type="text" placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> -->
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view class="footer_btn" @click="onSubmit">鎻愪氦</view>
+		</view>
+		<!-- 鍏ュ洯鏃堕棿 -->
+		<u-datetime-picker :show="show4" :minDate="new Date().getTime()" mode="datetime" :formatter="formatter"
+			@cancel="show4 = false" @confirm="setstarttime"></u-datetime-picker>
+		<!-- 绂诲洯鏃堕棿 -->
+		<u-datetime-picker v-if="form1.starttime" :show="show5" :formatter="formatter"
+			:minDate="formatTimeStamp(form1.starttime)" :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')"
+			mode="datetime" @cancel="show5 = false" @confirm="setendtime"></u-datetime-picker>
+		<!-- 闂ㄧ -->
+		<u-popup :show="show" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="closeMJ">
+			<view class="menjin">
+				<view class="respondent-title"> 閫夋嫨闂ㄧ </view>
+				<scroll-view scroll-y class="list">
+					<view class="list_item" v-for="(item, index) in columns" :key="index" @click="seleMJ(index)">
+						<text>{{ item.name }}</text>
+						<image src="@/static/checkbox@2x.png" mode="widthFix" v-show="!item.active"></image>
+						<image src="@/static/checkbo1x_sel@2x.png" mode="widthFix" v-show="item.active"></image>
+					</view>
+				</scroll-view>
+				<view class="menjin_footer">
+					<view class="menjin_footer_item" @click="closeMJ">鍙栨秷</view>
+					<view class="menjin_footer_item" @click="submitMJ">纭</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 閫夋嫨闅忚浜哄憳 -->
+		<u-popup :show="show1" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show1 = false">
+			<view class="popup-content">
+				<view class="respondent-title"> 閫夋嫨闅忚浜哄憳 </view>
+				<view class="search-box">
+					<view class="search-box-top">
+						<view class="search-box-top-ipt">
+							<image src="@/static/ic_search@2x.png" mode="widthFix"></image>
+							<input type="text" placeholder="鎼滅储濮撳悕/鎵嬫満鍙�" />
+						</view>
+						<text @click="
+                show1 = false;
+                show3 = true;
+              ">鏂板</text>
+					</view>
+					<view class="search-box-total">鍏�0鏉℃暟鎹�</view>
+				</view>
+				<scroll-view scroll-y class="list">
+					<view class="item" v-for="(item, index) in 8" :key="index">
+						<view class="item_a">
+							<!-- <image src="@/static/checkbox.png" mode="widthFix" v-if="!item.active" /> -->
+							<image src="@/static/checkbox_sel@2x.png" mode="widthFix" />
+						</view>
+						<view class="item_b">
+							<image src="@/static/ic_mima@2x.png" mode="widthFix" />
+						</view>
+						<view class="item_c">
+							<text>鐢ㄦ埛鍚�</text>
+							<text>宸叉媺榛�</text>
+						</view>
+					</view>
+				</scroll-view>
+				<view class="footer1">
+					<view class="footer_left">
+						<text class="footer_left_a">宸查�夋嫨锛�0浜�</text>
+						<text class="footer_left_b">鏉庝紵锛�</text>
+					</view>
+					<view class="footer_btn">纭 0/0</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 杞﹁締 -->
+		<u-popup :show="show2" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show2 = false">
+			<view class="addcar">
+				<view class="addcar_head">娣诲姞杞﹁締</view>
+				<view class="addcar_ipt">
+					<input type="text" v-model="carName" placeholder="璇疯緭鍏ヨ溅鐗屽彿" />
+				</view>
+				<view class="addcar_footer">
+					<view class="addcar_footer_item" @click="show2 = false">鍙栨秷</view>
+					<view class="addcar_footer_item t" @click="submitCart">鎻愪氦</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 娣诲姞闅忚浜哄憳 -->
+		<u-popup :show="show3" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show3 = false">
+			<view class="adduser">
+				<view class="adduser_head">闅忚浜哄憳</view>
+				<view class="adduser_list">
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>濮撳悕</text>
+							<text>*</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<input type="text" v-model="withUserList.name" placeholder-style="color: #999999;font-size: 28rpx;"
+								placeholder="璇疯緭鍏ョ湡瀹炲鍚�" />
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>鎵嬫満鍙�</text>
+							<text>*</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<input type="number" v-model="withUserList.phone" maxlength="11"
+								placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>璇佷欢绫诲瀷</text>
+							<text>*</text>
+						</view>
+						<view class="adduser_list_item_ipt" @click="show6 = true">
+							<text :style="{ color: withUserList.idcardTypeName ? '#000000' : '' }">{{
+                  withUserList.idcardTypeName
+                    ? withUserList.idcardTypeName
+                    : "璇烽�夋嫨"
+                }}</text>
+							<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>璇佷欢鍙风爜</text>
+							<text>*</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<input type="text" v-model="withUserList.idcardNo" maxlength="18"
+								placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�" />
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>*</text>
+							<text>鍏徃</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<input type="text" v-model="withUserList.companyName" placeholder-style="color: #999999;font-size: 28rpx;"
+								placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" />
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text></text>
+							<text>闅忚杞﹁締</text>
+						</view>
+						<view class="adduser_list_item_ipt" @click="openInput(2)">
+							<text :style="{ color: withUserList.carNos ? '#000000' : '' }">{{
+                withUserList.carNos ? withUserList.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
+              }}</text>
+							<!-- <input type="text" v-model="withUserList.carNos" disabled placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ溅鐗屽彿" /> -->
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label1">
+							<text class="cc">浜鸿劯鐓х墖<b>*</b></text>
+							<text class="aa">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
+							<text class="aa">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊锛�</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<view class="adduser_list_item_ipt1_upload" @click="upload('faceImg')" v-if="!withUserList.faceImgUrl">
+								<u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+							</view>
+							<view class="adduser_list_item_ipt1_upload" @click="upload('faceImg')" v-else>
+								<image :src="withUserList.faceImgUrl" mode="widthFix"></image>
+							</view>
+						</view>
+					</view>
+					<view class="adduser_list_item">
+						<view class="adduser_list_item_label">
+							<text>鍋ュ悍璇佺収鐗�</text>
+							<text v-if="visit === '1'">*</text>
+						</view>
+						<view class="adduser_list_item_ipt">
+							<view class="adduser_list_item_ipt1_upload" @click="upload('imgurl')" v-if="!withUserList.imgurlUrl">
+								<u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+							</view>
+							<view class="adduser_list_item_ipt1_upload" @click="upload('imgurl')" v-else>
+								<image :src="withUserList.imgurlUrl" mode="widthFix"></image>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="adduser_footer">
+					<view class="adduser_footer_item" @click="show3 = false">鍙栨秷</view>
+					<view class="adduser_footer_item t" @click="submitUser">鎻愪氦</view>
+				</view>
+			</view>
+		</u-popup>
+		<u-picker keyName="name" :show="show6" :columns="columns1" @confirm="seleIdcard" @cancel="show6 = false"></u-picker>
+		<u-picker keyName="name" :show="showName" :columns="VisitPoeple" @confirm="selectedName"
+			@cancel="showName = false"></u-picker>
+		<u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason"
+			@cancel="showReason = false"></u-picker>
+		<!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
+		<keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
+		<qf-image-cropper ref="cropper" :width="280" :height="280" :radius="30" @crop="uploadImg"></qf-image-cropper>
+	</view>
+</template>
+
+<script>
+	import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue"
+	import keyboardInput from "@/components/keyboard-input/keyboard-input.vue"
+	import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue'
+	import {
+		getDaysAfterDate
+	} from '@/utils/utils.js'
+	import {
+		getVisitedMember,
+		getSystemDictData,
+		getVisitedVisitReason,
+		createFk
+	} from '@/api'
+	export default {
+		data() {
+			return {
+				photoSrc: '',
+				type: '',
+				inputType: '',
+				showName: false,
+				show: false,
+				show1: false,
+				show2: false,
+				show3: false,
+				show4: false,
+				show5: false,
+				show6: false,
+				show7: false,
+				showReason: false,
+				fileList: [],
+				columns1: [
+					[{
+						name: '韬唤璇�',
+						id: 0
+					}, {
+						name: '娓境璇佷欢',
+						id: 1
+					}, {
+						name: '鎶ょ収',
+						id: 2
+					}],
+				],
+				VisitReason: [],
+				VisitPoeple: [],
+				columns: [],
+				cars: [],
+				day: null,
+				maxTime: '',
+				carName: '',
+				personnel: [],
+				userAnswerId: '',
+				form1: {
+					phone1: '',
+					receptMemberId: '',
+					receptMemberName: '',
+					starttime: '',
+					endtime: '',
+					doors: '',
+					doorSelectName: '',
+					reason: '',
+					carNos: '',
+					type: 0
+				},
+				withUserList: {
+					name: '',
+					phone: '',
+					idcardType: '',
+					idcardTypeName: '',
+					companyName: '',
+					idcardNo: '',
+					faceImg: '',
+					faceImgUrl: '',
+					imgurl: '',
+					imgurlUrl: ''
+				},
+				visit: '',
+				form: {},
+				accessControl: '',
+				verify: ''
+			}
+		},
+		components: {
+			tlyPictureCut,
+			keyboardInput,
+			QfImageCropper
+		},
+		onLoad(options) {
+			if (options.data) {
+				this.form = JSON.parse(options.data)
+			}
+			// this.getvisit()
+			// this.getVisit1()
+			// this.getUserValid()
+			this.getUser()
+		},
+		mounted() {
+			this.$eventBus.$on('svisitorAppSel', (option) => {
+				// this.$set(this.param, 'checkUserId', option.id)
+				// this.$set(this.param, 'applyCheckUserId', option.id)
+				// this.$set(this.param, 'checkorName', option.name)
+
+				this.form1.receptMemberName = option.name
+				this.form1.receptMemberId = option.id
+				this.form1.receptMemberDepartment = option.companyName
+			})
+		},
+		methods: {
+			formatter(type, value) {
+				if (type === 'year') {
+					return `${value}骞碻
+				}
+				if (type === 'month') {
+					return `${value}鏈坄
+				}
+				if (type === 'day') {
+					return `${value}鏃
+				}
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				return value
+			},
+			selName() {
+				uni.navigateTo({
+					url: '/pages/visitorApplication/memberSel'
+				})
+			},
+			openInput(type) {
+				this.inputType = type
+				this.$refs.keyboard.open()
+			},
+			setPlate(e) {
+				if (this.inputType === 1) {
+					this.form1.carNos = e
+				} else if (this.inputType === 2) {
+					this.withUserList.carNos = e
+				}
+				this.$forceUpdate()
+				this.closeInput()
+			},
+			closeInput() {
+				this.$refs.keyboard.close()
+			},
+			constructionChange(e) {
+				console.log(e.detail.value)
+				this.form1.type = Number(e.detail.value)
+				console.log(this.form1.type)
+			},
+			uploadImg(file) {
+				this.$refs.cropper.close()
+				uni.showLoading({
+					title: '涓婁紶涓�',
+					mask: true
+				})
+				uni.uploadFile({
+					url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
+					filePath: file.tempFilePath,
+					name: 'file',
+					formData: {
+						folderCode: 'MEMBER_IMG'
+					},
+					success: (uploadFileRes) => {
+						let res = JSON.parse(uploadFileRes.data)
+						this.withUserList.faceImg = res.data.halfPath
+						this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+					},
+					complete() {
+						uni.hideLoading()
+					}
+				})
+			},
+			closeMJ() {
+				this.show = false
+				this.columns.forEach(item => {
+					item.active = false
+				})
+			},
+			onSubmit() {
+				if (!this.form1.receptMemberId) return uni.showToast({
+					title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�',
+					icon: 'none'
+				})
+				if (!this.form1.starttime) return uni.showToast({
+					title: '鍏ュ洯鏃堕棿涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.endtime) return uni.showToast({
+					title: '绂诲洯鏃堕棿涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.doorSelectName && this.accessControl == 1) return uni.showToast({
+					title: '璁块棶闂ㄧ涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.reason) return uni.showToast({
+					title: '鎷滆浜嬬敱涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				// this.form1.starttime = this.form1.starttime + ':00'
+				// this.form1.endtime = this.form1.endtime + ':00'
+				let data = JSON.parse(JSON.stringify(this.form1))
+				data.starttime = data.starttime + ':00'
+				data.endtime = data.endtime + ':00'
+				createFk({
+					...this.form,
+					...data,
+					openid: this.$store.state.openId,
+					withUserList: this.personnel
+				}).then(res => {
+					if (res.code === 200) {
+						uni.navigateTo({
+							url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}`
+						})
+					}
+				})
+			},
+			deleUser(i) {
+				this.personnel.splice(i, 1)
+			},
+			getVisit1() {
+				// 鏄惁闇�瑕佺瓟棰�
+				this.$u.api.getSystemDictData({
+					dictCode: 'SYSTEM',
+					label: 'HEALTH_CARD'
+				}).then(res => {
+					if (res.code === 200) {
+						this.visit = res.data.code
+					}
+				})
+				// 璧峰鏃堕棿鏃堕暱
+				getSystemDictData({
+					dictCode: 'VISIT_CONFIG',
+					label: 'VALIDATE_VISIT'
+				}).then(res => {
+					if (res.code === 200) {
+						this.day = Number(res.data.code)
+						// console.log(nextDay('after', true, this.day))
+					}
+				})
+			},
+			submitUser() {
+				if (!this.withUserList.name) return uni.showToast({
+					title: '濮撳悕涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.withUserList.phone) return uni.showToast({
+					title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+					icon: 'none'
+				})
+				const regExp = /^1[3456789]\d{9}$/
+				if (!regExp.test(this.withUserList.phone)) return uni.showToast({
+					title: '鎵嬫満鍙锋牸寮忛敊璇�',
+					icon: 'none'
+				})
+				if (!String(this.withUserList.idcardType)) return uni.showToast({
+					title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.withUserList.idcardNo) return uni.showToast({
+					title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (this.withUserList.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.withUserList.idcardNo)) return uni.showToast({
+						title: '璇佷欢鍙风爜鏍煎紡閿欒',
+						icon: 'none'
+					})
+				}
+				if (!this.withUserList.companyName) return uni.showToast({
+					title: '鍏徃涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.withUserList.faceImg) return uni.showToast({
+					title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (this.visit === '1') {
+					if (!this.withUserList.imgurl) return uni.showToast({
+						title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+						icon: 'none'
+					})
+				}
+				let arr = JSON.parse(JSON.stringify(this.withUserList))
+				this.personnel.push(arr)
+				this.show3 = false
+				this.withUserList.name = ''
+				this.withUserList.phone = ''
+				this.withUserList.idcardType = ''
+				this.withUserList.idcardTypeName = ''
+				this.withUserList.companyName = ''
+				this.withUserList.idcardNo = ''
+				this.withUserList.faceImg = ''
+				this.withUserList.faceImgUrl = ''
+				this.withUserList.imgurl = ''
+				this.withUserList.imgurlUrl = ''
+			},
+			upload(type) {
+				this.type = type
+				if (type === 'faceImg') {
+					this.$refs.cropper.open()
+					return
+				}
+				uni.chooseImage({
+					success: (chooseImageRes) => {
+						uni.showLoading({
+							title: '涓婁紶涓�',
+							mask: true
+						})
+						for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
+							uni.uploadFile({
+								url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
+								filePath: chooseImageRes.tempFilePaths[i],
+								name: 'file',
+								formData: {
+									folderCode: 'MEMBER_IMG'
+								},
+								success: (uploadFileRes) => {
+									let res = JSON.parse(uploadFileRes.data)
+									if (type === 'faceImg') {
+										this.withUserList.faceImg = res.data.halfPath
+										this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+									} else {
+										this.withUserList.imgurl = res.data.halfPath
+										this.withUserList.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+									}
+								},
+								complete() {
+									if (i === chooseImageRes.tempFilePaths.length - 1) {
+										uni.hideLoading()
+									}
+								}
+							})
+						}
+					}
+				})
+			},
+			seleIdcard(e) {
+				this.withUserList.idcardType = e.value[0].id
+				this.withUserList.idcardTypeName = e.value[0].name
+				this.show6 = false
+			},
+			selectedName(e) {
+				this.form1.receptMemberName = e.value[0].name
+				this.form1.receptMemberId = e.value[0].id
+				this.form1.receptMemberDepartment = e.value[0].companyId
+				this.showName = false
+			},
+			selectedReason(e) {
+				this.form1.reason = e.value[0].title
+				console.log(e.value[0].title)
+				this.showReason = false
+			},
+			submitCart() {
+				if (!this.carName) return uni.showToast({
+					title: '璇疯緭鍏ヨ溅鐗屽彿鐮�',
+					icon: 'none'
+				})
+				this.cars.push(this.carName)
+				this.form1.carNos = this.cars.join(',')
+				this.carName = ''
+				this.show2 = false
+			},
+			deleCars(i) {
+				this.cars.splice(i, 1)
+				this.form1.carNos = this.cars.join(',')
+			},
+			submitMJ() {
+				let arr = []
+				let names = []
+				this.columns.forEach(item => {
+					if (item.active) {
+						arr.push(item.id)
+						names.push(item.name)
+					}
+				})
+				if (arr.length === 0) return uni.showToast({
+					title: '璇烽�夋嫨闂ㄧ',
+					icon: 'none'
+				})
+				this.form1.doorSelectName = names.join(',')
+				this.form1.doors = arr.join(',')
+				this.show = false
+			},
+			seleMJ(i) {
+				this.columns.forEach((item, index) => {
+					if (index === i) {
+						item.active = !item.active
+					}
+				})
+			},
+			openLC() {
+				if (!this.form1.starttime) return uni.showToast({
+					title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿',
+					icon: 'none'
+				})
+				this.show5 = true
+			},
+			setstarttime(e) {
+				this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
+				// this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'), this.day)
+				this.maxTime = this.form1.starttime
+				console.log(this.form1.starttime.slice(0, 10))
+				this.show4 = false
+			},
+			setendtime(e) {
+				this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
+				this.show5 = false
+			},
+			formatTimeStamp(date) {
+				return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`))
+			},
+			// 鏌ヨ鐢ㄦ埛
+			getUser() {
+				getVisitedMember().then(res => {
+					this.VisitPoeple = [res.data || []]
+				})
+				getVisitedVisitReason({}).then(res => {
+					this.VisitReason = [res.data || []]
+				})
+			},
+			// 琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
+			getUserValid() {
+				getSystemDictData({
+					dictCode: 'SYSTEM',
+					label: 'BEVISITED_USER_VALID'
+				}).then(res => {
+					if (res.code === 200) {
+						this.verify = res.data.code
+					}
+				})
+			},
+			// 鑾峰彇鏄惁闇�瑕侀�夋嫨闂ㄧ/闂ㄧ鍒楄〃
+			getvisit() {
+				getSystemDictData({
+					dictCode: 'SYSTEM',
+					label: 'SELECT_DOORS_VISIT_REQUIRED'
+				}).then(res => {
+					if (res.code === 200) {
+						this.accessControl = res.data.code
+						if (res.data.code === '1') {
+							this.$u.api.deviceRoleList({
+									type: 1
+								})
+								.then(device => {
+									if (device.code === 200) {
+										if (device.data.length > 0) {
+											device.data.forEach(item => {
+												item.active = false
+											})
+											this.columns = device.data
+										}
+									}
+								})
+						}
+					}
+				})
+			},
+			confirm(e) {
+				this.show = false
+			}
+		}
+	}
+</script>
+<style>
+	page {
+		background-color: #f7f7f7 !important;
+	}
+
+	.u-upload__button {
+		margin: 0 !important;
+	}
+</style>
+<style lang="scss" scoped>
+	.visit {
+		width: 100%;
+
+		.menjin {
+			width: 100%;
+
+			.respondent-title {
+				width: 100%;
+				height: 100rpx;
+				line-height: 100rpx;
+				text-align: center;
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #222222;
+			}
+
+			.list {
+				width: 100%;
+				height: 400rpx;
+				display: flex;
+				flex-direction: column;
+
+				.list_item {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+
+					text {
+						font-size: 28rpx;
+						color: #000000;
+					}
+
+					image {
+						width: 30rpx;
+						height: 30rpx;
+					}
+				}
+			}
+
+			.menjin_footer {
+				width: 100%;
+				padding: 30rpx;
+				box-sizing: border-box;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.menjin_footer_item {
+					flex: 1;
+					height: 80rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					border-radius: 10rpx;
+					background-color: $uni-color-primary;
+					color: #ffffff;
+					font-size: 26rpx;
+					margin-left: 30rpx;
+
+					&:first-child {
+						margin-left: 0 !important;
+					}
+				}
+			}
+		}
+
+		.adduser {
+			padding: 30rpx;
+			width: 100%;
+			box-sizing: border-box;
+
+			.adduser_head {
+				width: 100%;
+				text-align: center;
+				font-size: 32rpx;
+				font-family: PingFangSC, PingFang SC;
+				font-weight: 600;
+				color: #222222;
+			}
+
+			.adduser_list {
+				width: 100%;
+				margin-top: 40rpx;
+
+				.adduser_list_item {
+					width: 100%;
+					padding: 24rpx 0;
+					box-sizing: border-box;
+					border-bottom: 1rpx solid #e5e5e5;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+
+					.adduser_list_item_label1 {
+						flex: 1;
+						display: flex;
+						flex-direction: column;
+
+						.cc {
+							font-size: 30rpx;
+							font-family: PingFangSC, PingFang SC;
+							font-weight: 400;
+							color: #222222;
+							margin-bottom: 20rpx;
+
+							b {
+								font-size: 30rpx;
+								font-family: PingFangSC, PingFang SC;
+								font-weight: 400;
+								color: #e0312a;
+							}
+						}
+
+						.aa {
+							font-size: 24rpx;
+							font-weight: 400;
+							color: #999999;
+						}
+					}
+
+					.adduser_list_item_label {
+						flex-shrink: 0;
+						display: flex;
+						align-items: center;
+						font-family: PingFangSC, PingFang SC;
+						font-size: 30rpx;
+
+						text {
+							&:nth-child(1) {
+								color: #e0312a;
+							}
+
+							&:nth-child(2) {
+								color: #222222;
+							}
+						}
+					}
+
+					.adduser_list_item_ipt {
+						flex-shrink: 0;
+						text-align: right;
+						font-size: 28rpx;
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						color: #333333;
+						margin-left: 30rpx;
+						display: flex;
+						align-items: center;
+						justify-content: flex-end;
+
+						.adduser_list_item_ipt1_upload {
+							width: 120rpx;
+							height: 120rpx;
+							background-color: #ececec;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							overflow: hidden;
+
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+
+						text {
+							font-size: 28rpx;
+							font-family: PingFangSC, PingFang SC;
+							font-weight: 400;
+							color: #999999;
+						}
+					}
+				}
+			}
+
+			.adduser_footer {
+				width: 100%;
+				margin-top: 60rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.t {
+					background: #4d99a9 !important;
+					color: #ffffff !important;
+				}
+
+				.adduser_footer_item {
+					width: 336rpx;
+					height: 88rpx;
+					line-height: 88rpx;
+					text-align: center;
+					border-radius: 44rpx;
+					border: 1rpx solid #4d99a9;
+					font-size: 32rpx;
+					font-family: PingFangSC, PingFang SC;
+					font-weight: 400;
+					color: #4d99a9;
+					margin-right: 18rpx;
+
+					&:last-child {
+						margin: 0 !important;
+					}
+				}
+			}
+		}
+
+		.addcar {
+			padding: 30rpx;
+			width: 100%;
+			box-sizing: border-box;
+
+			.addcar_head {
+				text-align: center;
+				font-size: 32rpx;
+				font-family: PingFangSC, PingFang SC;
+				font-weight: 600;
+				color: #222222;
+			}
+
+			.addcar_ipt {
+				width: 100%;
+				height: 100rpx;
+				line-height: 100rpx;
+				text-align: center;
+				background: #f7f7f7;
+				border-radius: 50rpx;
+				margin-top: 60rpx;
+
+				input {
+					width: 100%;
+					height: 100%;
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #000000;
+					text-align: center;
+				}
+			}
+
+			.addcar_footer {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				margin-top: 60rpx;
+
+				.t {
+					background: #4d99a9 !important;
+					color: #ffffff !important;
+				}
+
+				.addcar_footer_item {
+					flex: 1;
+					height: 88rpx;
+					line-height: 88rpx;
+					font-size: 32rpx;
+					font-weight: 400;
+					color: #025eef;
+					text-align: center;
+					border-radius: 44rpx;
+					border: 1rpx solid #025eef;
+					margin-right: 18rpx;
+
+					&:last-child {
+						margin-right: 0 !important;
+					}
+				}
+			}
+		}
+
+		.popup-content {
+			padding: 30rpx 30rpx 0 30rpx;
+			overflow: hidden;
+			display: flex;
+			flex-flow: column;
+
+			.respondent-title {
+				width: 100%;
+				text-align: center;
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #222222;
+			}
+
+			.search-box {
+				width: 100%;
+				margin-top: 40rpx;
+
+				.search-box-top {
+					width: 100%;
+					height: 68rpx;
+					display: flex;
+					align-items: center;
+
+					.search-box-top-ipt {
+						flex: 1;
+						height: 100%;
+						padding: 0 30rpx;
+						box-sizing: border-box;
+						background: #f7f7f7;
+						border-radius: 4rpx;
+						display: flex;
+						align-items: center;
+
+						image {
+							width: 36rpx;
+							height: 36rpx;
+							flex-shrink: 0;
+							margin-right: 22rpx;
+						}
+
+						input {
+							flex: 1;
+							height: 100%;
+							font-size: 26rpx;
+							font-weight: 400;
+							color: #b2b2b2;
+						}
+					}
+
+					text {
+						flex-shrink: 0;
+						margin-left: 30rpx;
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #025eef;
+					}
+				}
+
+				.search-box-total {
+					font-size: 26rpx;
+					font-weight: 400;
+					color: #666666;
+					margin-top: 24rpx;
+				}
+			}
+
+			.list {
+				width: 100%;
+				height: 800rpx;
+				margin-top: 30rpx;
+				padding: 0 !important;
+
+				.item {
+					width: 100%;
+					height: 102rpx;
+					display: flex;
+					align-items: center;
+					border-bottom: 1rpx solid #e5e5e5;
+
+					.item_a {
+						flex-shrink: 0;
+						width: 36rpx;
+						height: 36rpx;
+						margin-right: 24rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					.item_b {
+						flex-shrink: 0;
+						width: 80rpx;
+						height: 80rpx;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						overflow: hidden;
+						margin-right: 24rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					.item_c {
+						flex: 1;
+						display: flex;
+						align-items: center;
+
+						text {
+							&:nth-child(1) {
+								font-size: 30rpx;
+								font-family: PingFangSC, PingFang SC;
+								font-weight: 400;
+								color: #222222;
+							}
+
+							&:nth-child(2) {
+								font-size: 20rpx;
+								font-family: PingFangSC, PingFang SC;
+								font-weight: 400;
+								color: #999999;
+								padding: 1rpx 4rpx;
+								box-sizing: border-box;
+								background-color: #eeeeee;
+								margin-left: 12rpx;
+							}
+						}
+					}
+				}
+			}
+
+			.footer1 {
+				width: 100%;
+				height: 100rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding: 14rpx 0 0 0;
+				box-sizing: border-box;
+
+				.footer_left {
+					flex: 1;
+					display: flex;
+					flex-direction: column;
+
+					.footer_left_a {
+						font-size: 26rpx;
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						color: #333333;
+					}
+
+					.footer_left_b {
+						font-size: 24rpx;
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						color: #999999;
+					}
+				}
+
+				.footer_btn {
+					flex-shrink: 0;
+					width: 216rpx;
+					height: 72rpx;
+					line-height: 72rpx;
+					text-align: center;
+					background: #025eef;
+					border-radius: 8rpx;
+					font-size: 28rpx;
+					font-weight: 600;
+					color: #ffffff;
+				}
+			}
+		}
+
+		.head {
+			width: 100%;
+			padding: 20rpx 30rpx;
+			box-sizing: border-box;
+			font-size: 28rpx;
+			font-weight: 400;
+			color: #666666;
+		}
+
+		.list {
+			width: 100%;
+			padding: 0 30rpx;
+			box-sizing: border-box;
+			background-color: #ffffff;
+
+			.empty {
+				width: 750rpx;
+				height: 20rpx;
+				background-color: #f7f7f7;
+				margin: 0 -30rpx;
+			}
+
+			.list_item {
+				width: 100%;
+				// min-height: 98rpx;
+				padding: 30rpx 0;
+				box-sizing: border-box;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				border-bottom: 1rpx solid #e5e5e5;
+
+				.list_item_label {
+					flex-shrink: 0;
+					display: flex;
+					align-items: center;
+
+					text {
+						&:nth-child(1) {
+							font-size: 30rpx;
+							font-weight: 400;
+							color: #e42d2d;
+						}
+
+						&:nth-child(2) {
+							font-size: 30rpx;
+							font-weight: 400;
+							color: #222222;
+						}
+					}
+				}
+
+				.list_item_content {
+					flex: 1;
+					height: 100%;
+					margin-left: 30rpx;
+					display: flex;
+					align-items: center;
+					justify-content: flex-end;
+
+					text {
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #999999;
+						margin-right: 6rpx;
+					}
+
+					input {
+						width: 100%;
+						height: 100%;
+						text-align: right;
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #222222;
+					}
+				}
+			}
+		}
+
+		.cate {
+			width: 100%;
+			padding: 30rpx;
+			box-sizing: border-box;
+			background-color: #ffffff;
+
+			.cate_head {
+				font-size: 32rpx;
+				font-family: PingFangSC, PingFang SC;
+				font-weight: 600;
+				color: #222222;
+			}
+
+			.cate_list {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				flex-wrap: wrap;
+				margin-top: 30rpx;
+
+				.cate_list_item {
+					height: 64rpx;
+					padding: 0 20rpx;
+					box-sizing: border-box;
+					background-color: #eeeeee;
+					border-radius: 4rpx;
+					margin-right: 20rpx;
+					margin-bottom: 20rpx;
+					display: flex;
+					align-items: center;
+
+					&:last-child {
+						margin-right: 0 !important;
+					}
+
+					text {
+						font-size: 26rpx;
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						color: #333333;
+						margin-right: 30rpx;
+					}
+				}
+			}
+
+			.cate_add {
+				width: 200rpx;
+				height: 50rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background: rgba(2, 94, 239, 0);
+				border-radius: 25rpx;
+				border: 1rpx solid #4c99a8;
+				font-size: 22rpx;
+				font-family: PingFangSC, PingFang SC;
+				font-weight: 400;
+				margin-top: 20rpx;
+				color: #4c99a8;
+				margin: 0 auto;
+			}
+		}
+
+		.zw {
+			width: 100%;
+			height: calc(env(safe-area-inset-bottom) + 118rpx);
+		}
+
+		.footer {
+			width: 100%;
+			padding: 0 30rpx;
+			padding-bottom: env(safe-area-inset-bottom);
+			box-sizing: border-box;
+			margin-top: 80rpx;
+			// position: fixed;
+			// left: 0;
+			// bottom: 30rpx;
+
+			.footer_btn {
+				width: 100%;
+				height: 88rpx;
+				line-height: 88rpx;
+				text-align: center;
+				background: #4c99a8;
+				border-radius: 44rpx;
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #ffffff;
+			}
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue
index 1b4ec61..5eb0b21 100644
--- a/screen/src/views/SecurityControl.vue
+++ b/screen/src/views/SecurityControl.vue
@@ -220,8 +220,8 @@
                 <div class="content">
                   <div class="name">闀挎湡鐩稿叧鏂�</div>
                   <div class="num today"><span>{{ data.relatedTotal || 0
-                      }}</span> | {{ data.inParkTotal ? ((data.relatedTotal / data.inParkTotal) * 100).toFixed(1) : 0
-                    }}%</div>
+                  }}</span> | {{ data.inParkTotal ? ((data.relatedTotal / data.inParkTotal) * 100).toFixed(1) : 0
+                      }}%</div>
                 </div>
               </div>
               <div class="item">
@@ -453,7 +453,7 @@
             <div class="line header">
               <div>濮撳悕</div>
               <div class="dept">鎷滆閮ㄩ棬</div>
-              <div class="dept">瓒呮椂鏃堕暱</div>
+              <div class="time">瓒呮椂鏃堕暱</div>
             </div>
             <div v-if="dataList3.length > 0" class="three-swiper list">
               <div class="swiper-wrapper">
@@ -461,7 +461,7 @@
                   <div class="line">
                     <div>{{ item.name }}</div>
                     <div class="dept">{{ item.companyName }}</div>
-                    <div class="dept">{{ item.timeOutMinuteT }}</div>
+                    <div class="time">{{ item.timeOutMinuteT }}</div>
                   </div>
                   <div class="separate"></div>
                 </div>
@@ -612,7 +612,7 @@
   })
 }
 
-const colors = [ '#01ABFE','#FEAF01', '#51F9E4']
+const colors = ['#01ABFE', '#FEAF01', '#51F9E4']
 const initEchart2 = () => {
   const myChart = echarts.init(document.getElementById('echart2'))
   const option = {
@@ -676,16 +676,18 @@
   ]
   const data = []
   if (data4.value.total) {
-    data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(1) })
-    data.push({ name: '宸茬櫥璁�', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(1) })
-    data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(1) })
-    data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(1) })
+    data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(3) })
+    data.push({ name: '宸茬櫥璁�', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(3) })
+    data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(3) })
+    data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(3) })
   } else {
     data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: 0 })
     data.push({ name: '宸茬櫥璁�', value: data4.value.registerVisitNum, rate: 0 })
     data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: 0 })
     data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: 0 })
   }
+  data.sort((a, b) => (b.value - a.value))
+  // console.log('data', data);
 
   const option = {
     color: colors,
@@ -752,7 +754,7 @@
           position: 'outside',
           formatter: (params) => {
             const index = params.dataIndex
-            return `{color${index}|${params.data.name} ${params.data.rate}%}`
+            return `{color${index}|${params.data.name} ${(params.data.rate * 100).toFixed(1)}%}`
             // return `<div>${params.data.name}</div>`
           },
           rich: {
@@ -826,8 +828,8 @@
         }
         return item
       })
-      console.log('dataList2', dataList2.value);
-      
+      console.log('dataList2', dataList2.value)
+
       data2.value = total
       if (online >= outline) {
         temp.push({ name: '鍦ㄧ嚎', value: online, rate: ((online / (online + outline)) * 100).toFixed(1) })
@@ -851,6 +853,7 @@
     data4.value = res.data || {}
     let obj = data4.value
     data4.value.total = obj.levelNum + obj.retentionNum + obj.registerVisitNum + obj.waitVisitNum
+
     const result = res.data?.visitRetentionDataList || []
     dataList3.value = result.map(i => {
       if (i.timeOutMinute) {
@@ -861,7 +864,7 @@
       } else if (i.timeOutMinute > 60) {
         i.timeOutMinuteT = dayjs.duration(i.timeOutMinute * 60 * 1000).format('H鏃秏鍒�')
       } else {
-        i.timeOutMinuteT = item.timeOutMinuteT + '鍒�'
+        i.timeOutMinuteT = i.timeOutMinute + '鍒�'
       }
 
       return i
@@ -1599,6 +1602,7 @@
     width: 786px;
     margin-right: 20px;
     position: relative;
+
     /* one-swiper */
     .one_swiper_wrap {
       height: 140px;
@@ -1930,11 +1934,11 @@
     }
 
     .dept {
-      flex: 5;
+      flex: 8;
     }
 
     .time {
-      flex: 4;
+      flex: 5;
     }
   }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 0c6509f..8eff348 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -1305,7 +1305,7 @@
                         .set(Notices::getInfo,"宸叉嫆缁�")
                         .eq(Notices::getObjId,notices.getObjId())
                         .eq(Notices::getObjType,notices.getObjType())
-                        .eq(Notices::getReaded,Constants.ZERO)
+//                        .eq(Notices::getReaded,Constants.ZERO)
                         .ne(Notices::getId,notices.getId())
                 );
             }

--
Gitblit v1.9.3