From c5b5706cd645440a877c546978751b63bf40d008 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 20 九月 2024 10:13:11 +0800
Subject: [PATCH] ll

---
 admin/src/api/meeting/bookings.js              |   42 
 admin/src/views/business/visits.vue            |  252 +++----
 admin/src/views/business/strandedPersonnel.vue |   99 --
 h5/pages/staff/meetingSel.vue                  |  751 ++++++++++++------------
 h5_meeting/utils/config.js                     |    4 
 h5_meeting/utils/service.js                    |    3 
 h5_meeting/package-lock.json                   |  129 ---
 admin/src/views/business/visitorManagement.vue |    4 
 /dev/null                                      |    3 
 h5/pages/staff/meetingDetail.vue               |   34 
 h5_meeting/pages/index/index.vue               |   38 
 h5/pages/staff/memberSel.vue                   |   23 
 h5_meeting/.hbuilderx/launch.json              |    9 
 h5_meeting/package.json                        |    2 
 admin/src/views/meeting/bookings.vue           |  242 ++-----
 h5/manifest.json                               |    2 
 h5/pages/staff/task/vDangetAppr.vue            |  130 ++-
 admin/.env.development                         |    2 
 admin/src/views/business/internalMember.vue    |   15 
 h5/api/meeting.js                              |   16 
 h5_meeting/manifest.json                       |   32 
 h5_meeting/pages/index/config.vue              |    6 
 22 files changed, 829 insertions(+), 1,009 deletions(-)

diff --git a/admin/.env.development b/admin/.env.development
index 7ba7bdf..657e1bc 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,5 +2,5 @@
 NODE_ENV = 'development'
 
 VUE_APP_API_URL  = 'http://localhost:10010'
-VUE_APP_API_URL  = 'http://192.168.0.139:10010'
+VUE_APP_API_URL  = 'http://192.168.137.1:10010'
 # VUE_APP_API_URL  = 'http://10.50.250.178:8088/gateway_interface'
diff --git a/admin/src/api/meeting/bookings.js b/admin/src/api/meeting/bookings.js
index 544beb4..efd7284 100644
--- a/admin/src/api/meeting/bookings.js
+++ b/admin/src/api/meeting/bookings.js
@@ -1,13 +1,13 @@
 import request from '../../utils/request'
 // 鏌ヨ
-export function fetchList (data) {
+export function fetchList(data) {
   return request.post('/meetingAdmin/cloudService/business/bookings/page', data, {
     trim: true
   })
 }
 
 // 瀵煎嚭Excel
-export function exportExcel (data) {
+export function exportExcel(data) {
   return request.post('/meetingAdmin/cloudService/business/bookings/exportExcel', data, {
     trim: true,
     download: true
@@ -15,41 +15,49 @@
 }
 
 // 鍒涘缓
-export function create (data) {
+export function create(data) {
   return request.post('/meetingAdmin/cloudService/business/bookings/create', data)
 }
 
 // 淇敼
-export function updateById (data) {
+export function updateById(data) {
   return request.post('/meetingAdmin/cloudService/business/bookings/updateById', data)
 }
 // 鍙栨秷
-export function cancelById (data) {
+export function cancelById(data) {
   return request.post('/meetingAdmin/cloudService/business/meeting/reservationCancel', data)
 }
-// 缁撴潫
-export function overBookById (data) {
+// 寮�濮�
+export function startById(data) {
+  return request.post('/meetingAdmin/cloudService/business/meeting/start', data)
+}
+// 鎻愬墠寮�濮�
+export function startEarlyById(data) {
+  return request.post('/meetingAdmin/cloudService/business/meeting/startEarly', data)
+}
+// 
+export function overBookById(data) {
   return request.post('/meetingAdmin/cloudService/business/meeting/reservationOver', data)
 }
 // 棰勫畾璇︽儏
-export function BookDetailById (params) {
+export function BookDetailById(params) {
   return request.get('/meetingAdmin/cloudService/web/meeting/meetingDetail', {
     params
   })
 }
 
 // 鍒犻櫎
-export function deleteById (id) {
+export function deleteById(id) {
   return request.get(`/meetingAdmin/cloudService/business/bookings/delete/${id}`)
 }
 
 // 鏍规嵁ID鏌ヨ
-export function bookingsDetail (id) {
+export function bookingsDetail(id) {
   return request.get(`/meetingAdmin/cloudService/business/bookings/${id}`)
 }
 
 // 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
+export function deleteByIdInBatch(ids) {
   return request.get('/meetingAdmin/cloudService/business/bookings/delete/batch', {
     params: {
       ids
@@ -58,11 +66,11 @@
 }
 
 // 浼氳瀹や娇鐢ㄦ椂闀跨粺璁�
-export function getRoomStatistics (yearNum, roomId) {
+export function getRoomStatistics(yearNum, roomId) {
   return request.get(`/meetingAdmin/cloudService/business/bookings/getRoomStatistics?yearNum=${yearNum}&roomId=${roomId}`)
 }
 // 浼氳瀹や娇鐢ㄦ椂闀跨粺璁″鍑篍xcel
-export function exportRoomStatistics (data) {
+export function exportRoomStatistics(data) {
   return request.post(`/meetingAdmin/cloudService/business/bookings/exportRoomStatistics`, data, {
     trim: true,
     download: true
@@ -70,11 +78,11 @@
 }
 
 // 浜哄憳鍙傚姞浼氳鏃跺父
-export function getUserStatistics (data) {
+export function getUserStatistics(data) {
   return request.post(`/meetingAdmin/cloudService/business/bookings/getUserStatistics`, data)
 }
 // 浜哄憳鍙備細鏃堕暱缁熻瀵煎嚭Excel
-export function exportUserStatistics (data) {
+export function exportUserStatistics(data) {
   return request.post(`/meetingAdmin/cloudService/business/bookings/exportUserStatistics`, data, {
     trim: true,
     download: true
@@ -82,10 +90,10 @@
 }
 
 //
-export function reservationCancel (type) {
+export function reservationCancel(type) {
   return request.get(`/meetingAdmin/cloudService/business/bookings/reservationCancel?type=${type}`)
 }
 //
-export function findMothBookingMeet ({roomId, dateMonth}) {
+export function findMothBookingMeet({ roomId, dateMonth }) {
   return request.post(`/meetingAdmin/cloudService/business/bookings/findMothBookingMeet?roomId=${roomId}&dateMonth=${dateMonth}`)
 }
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index 12dce90..8ca8ae6 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -61,7 +61,12 @@
                 @selection-change="handleSelectionChange"
             >
                 <el-table-column type="selection" width="55"></el-table-column>
-                <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
+                <el-table-column prop="name" label="濮撳悕" min-width="110px">
+                  <template slot-scope="{row}">
+                    <span>{{ row.name }}</span>
+                      <span class="zhuguan" v-if="row.headStatus == 1">涓荤</span>
+                    </template>
+                </el-table-column>
                 <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
                 <el-table-column prop="idcardDecode" label="韬唤璇佸彿" min-width="100px"></el-table-column>
                 <el-table-column label="鎬у埆" min-width="100px">
@@ -381,6 +386,7 @@
 </script>
 
 <style lang="scss" scoped>
+ @import '@/assets/style/variables.scss';
     .box {
         width: 100%;
         display: flex;
@@ -395,4 +401,11 @@
             height: 100%;
         }
     }
+    .zhuguan{
+      color: $primary-color;
+      border: 1px solid $primary-color;
+      padding: 0px 3px;
+      border-radius: 4px;
+      margin-left: 6px;
+    }
 </style>
diff --git a/admin/src/views/business/strandedPersonnel.vue b/admin/src/views/business/strandedPersonnel.vue
index 596ee84..6a3512b 100644
--- a/admin/src/views/business/strandedPersonnel.vue
+++ b/admin/src/views/business/strandedPersonnel.vue
@@ -1,26 +1,12 @@
 <template>
   <TableLayout :permissions="['business:member:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form
-      ref="searchForm"
-      slot="search-form"
-      :model="searchForm"
-      label-width="100px"
-      inline
-    >
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
       <el-form-item label="濮撳悕" prop="name">
-        <el-input
-          v-model="searchForm.name"
-          placeholder="璇疯緭鍏ヨ瀹㈠悕绉�"
-          @keypress.enter.native="search"
-        ></el-input>
+        <el-input v-model="searchForm.name" 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-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
         <el-select v-model="searchForm.type" placeholder="璇烽�夋嫨">
@@ -38,28 +24,11 @@
       <!--            <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']">-->
       <!--                <li><el-button type="primary" v-permissions="['business:member:create']" @click="thaws">绂诲満</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" width="55"></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
-          prop="companyName"
-          label="缁勭粐"
-          min-width="100px"
-        ></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 prop="companyName" label="缁勭粐" min-width="100px"></el-table-column>
         <el-table-column label="鐢ㄦ埛绫诲瀷" min-width="100px">
           <template slot-scope="{ row }">
             <span v-if="row.type === 0">鍔冲姟璁垮</span>
@@ -67,60 +36,34 @@
             <span v-if="row.type === 2">鍐呴儴浜哄憳</span>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="inDate"
-          label="鍦ㄥ洯鏃堕棿"
-          min-width="100px"
-        ></el-table-column>
-        <el-table-column
-          prop="outDate"
-          label="鎺堟潈鍒版湡鏃堕棿"
-          min-width="100px"
-        ></el-table-column>
+        <el-table-column prop="inDate" label="鍦ㄥ洯鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column prop="outDate" label="鎺堟潈鍒版湡鏃堕棿" min-width="100px"></el-table-column>
         <el-table-column label="瓒呮椂鏃堕暱" min-width="100px">
           <template slot-scope="{ row }">
-            <span v-if="row.outStatus === 1"
-              >{{ row.timeOut.toString().replace("-", "") }}鍒嗛挓</span
-            >
+            <span v-if="row.outStatus === 1">{{ row.timeOut.toString().replace("-", "") }}鍒嗛挓</span>
             <span v-else>-</span>
           </template>
         </el-table-column>
         <el-table-column label="鐘舵��" min-width="100px">
           <template slot-scope="{ row }">
             <span v-if="row.outStatus === 0">鏈秴鏃�</span>
-            <span style="color: red" v-else-if="row.outStatus === 1"
-              >宸茶秴鏃�</span
-            >
+            <span style="color: red" v-else-if="row.outStatus === 1">宸茶秴鏃�</span>
             <span v-else-if="row.outStatus === 2">鍗冲皢瓒呮椂</span>
           </template>
         </el-table-column>
-        <el-table-column
-          v-if="
-            containPermissions([
-              'business:member:update',
-              'business:member:delete',
-            ])
-          "
-          label="鎿嶄綔"
-          min-width="120"
-          fixed="right"
-        >
+        <el-table-column v-if="
+          containPermissions([
+            'business:member:update',
+            'business:member:delete',
+          ])
+        " label="鎿嶄綔" min-width="120" fixed="right">
           <template slot-scope="{ row }">
-            <el-button
-              type="text"
-              icon="el-icon-edit"
-              v-permissions="['business:member:update']"
-              @click="departure(row.id)"
-              >绂诲巶</el-button
-            >
+            <el-button type="text" icon="el-icon-edit" v-permissions="['business:member:update']"
+              @click="departure(row.id)">绂诲巶</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      >
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
       </pagination>
     </template>
   </TableLayout>
@@ -160,7 +103,7 @@
   },
   methods: {
     departure(id) {
-      this.$confirm('纭畾绂诲満鍚�, 鏄惁缁х画?', '鎻愮ず', {
+      this.$confirm('纭畾绂诲巶鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
diff --git a/admin/src/views/business/visitorManagement.vue b/admin/src/views/business/visitorManagement.vue
index 15a8e82..04cffad 100644
--- a/admin/src/views/business/visitorManagement.vue
+++ b/admin/src/views/business/visitorManagement.vue
@@ -55,8 +55,8 @@
                 </el-table-column>
                 <el-table-column prop="idcardDecode" label="韬唤璇佸彿" width="150px"></el-table-column>
                 <el-table-column prop="visitCompanyName" label="缁勭粐" min-width="100px"></el-table-column>
-                <el-table-column prop="visitsCount" label="鎷滆娆℃暟" min-width="100px"></el-table-column>
-                <el-table-column prop="visitsLastDate" label="鏈�鍚庢嫓璁挎椂闂�" min-width="100px"></el-table-column>
+                <el-table-column prop="visitTimes" label="鎷滆娆℃暟" min-width="100px"></el-table-column>
+                <el-table-column prop="lastVisitDate" label="鏈�鍚庢嫓璁挎椂闂�" min-width="100px"></el-table-column>
             </el-table>
             <pagination
                 @size-change="handleSizeChange"
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 6673066..bdb040a 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -1,123 +1,115 @@
 <template>
-    <TableLayout :permissions="['business:visits:query']">
-        <!-- 鎼滅储琛ㄥ崟 -->
-        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="name">
-                <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
-            <el-form-item label="韬唤璇佸彿" prop="idcardNo">
-                <el-input v-model="searchForm.idcardNo" 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="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option label="寰呮彁浜ゅ鎵�" value="0"></el-option>
-                    <el-option label="瀹℃壒涓�" value="1"></el-option>
-                    <el-option label="瀹℃牳閫氳繃" value="2"></el-option>
-                    <el-option label="瀹℃牳涓嶉�氳繃" value="3"></el-option>
-                    <el-option label="鍙栨秷" value="4"></el-option>
-                    <el-option label="棰勭害鎴愬姛" value="5"></el-option>
-                    <el-option label="棰勭害澶辫触" value="6"></el-option>
-                    <el-option label="鎷滆涓�" value="7"></el-option>
-                    <el-option label="宸茬绂�" value="8"></el-option>
-                    <el-option label="宸插け鏁�" value="9"></el-option>
-                </el-select>
-            </el-form-item>
-            <section>
-                <el-button type="primary" @click="search">鎼滅储</el-button>
-<!--                <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
-                <el-button @click="reset">閲嶇疆</el-button>
-            </section>
-        </el-form>
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-           <ul class="toolbar" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
-               <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">鏂板缓</el-button></li>
-               <li><el-button type="primary" :loading="isWorking.export" @click="exportExcel" v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button></li>
-           </ul>
-            <el-table
-                v-loading="isWorking.search"
-                :data="tableData.list"
-                stripe
-                @selection-change="handleSelectionChange"
-            >
-                <el-table-column type="selection" width="55"></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 prop="companyName" label="璁垮鍗曚綅" min-width="100px"></el-table-column>
-                <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
-                <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100px"></el-table-column>
-                <el-table-column label="棰勭害鏃堕棿" min-width="170px">
-                    <template slot-scope="{row}">
-                        <span>璧凤細{{row.starttime}}</span><br/>
-                        <span>姝細{{row.endtime}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="绛惧埌鏃堕棿" min-width="170px">
-                    <template slot-scope="{row}">
-                        <div v-if="row.inDate && row.outDate">
-                            <span>璧凤細{{row.inDate}}</span><br/>
-                            <span>姝細{{row.outDate}}</span>
-                        </div>
-                        <span v-else>-</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="鏂藉伐浜哄憳" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span v-if="row.type == 0">鍚�</span>
-                        <span v-if="row.type == 1">鏄�</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="闅忚杞﹁締" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span>{{row.carNos}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
-                        <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996);">澶勭悊涓�</span>
-                        <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996);">宸插悓鎰�</span>
-                        <span style="color: gray;" v-if="row.status === 3" >宸叉嫆缁�</span>
-                        <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
-                        <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
-                        <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
-                        <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
-                        <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
-                      <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                    v-if="containPermissions(['business:visits:update', 'business:visits:delete'])"
-                    label="鎿嶄綔"
-                    min-width="200"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-                      <el-button type="text" @click="departure(row.id)" v-permissions="['business:visits:level']" icon="el-icon-delete" style="color: red" v-if="row.status == 7">绂诲巶</el-button>
-                      <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']" icon="el-icon-delete"   style="color: red" v-if="row.status == 5">鍙栨秷棰勭害</el-button>
-                      <el-button type="text" @click="resend(row.id)" v-permissions="['business:visits:update']" icon="el-icon-edit"   v-if="row.status == 6">閲嶆柊涓嬪彂</el-button>
-                        <!-- <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('璇︽儏', row.id)" icon="el-icon-view">璇︽儏</el-button> -->
-                        <el-button type="text" @click="handleDetail(row)" icon="el-icon-view">璇︽儏</el-button>
-<!--                        <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">鏌ヨ瀹℃壒缁撴灉</el-button>-->
-                    </template>
-                </el-table-column>
-            </el-table>
-            <pagination
-                @size-change="handleSizeChange"
-                @current-change="handlePageChange"
-                :pagination="tableData.pagination"
-            >
-            </pagination>
-            <!--      璇︽儏      -->
-            <!-- <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> -->
-            <TaskDetail v-if="isShowDetail" ref="DetailRef" />
-            <!-- 鏂板缓 -->
-            <OperaVisitsWindow @close="isShowEdit = false" @success="search"  v-if="isShowEdit" ref="operaVisitsWindowRef" />
-        </template>
-    </TableLayout>
+  <TableLayout :permissions="['business:visits:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="name">
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="韬唤璇佸彿" prop="idcardNo">
+        <el-input v-model="searchForm.idcardNo" 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="status">
+        <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+          <el-option label="寰呮彁浜ゅ鎵�" value="0"></el-option>
+          <el-option label="瀹℃壒涓�" value="1"></el-option>
+          <el-option label="瀹℃牳閫氳繃" value="2"></el-option>
+          <el-option label="瀹℃牳涓嶉�氳繃" value="3"></el-option>
+          <el-option label="鍙栨秷" value="4"></el-option>
+          <el-option label="棰勭害鎴愬姛" value="5"></el-option>
+          <el-option label="棰勭害澶辫触" value="6"></el-option>
+          <el-option label="鎷滆涓�" value="7"></el-option>
+          <el-option label="宸茬绂�" value="8"></el-option>
+          <el-option label="宸插け鏁�" value="9"></el-option>
+        </el-select>
+      </el-form-item>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <!--                <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <ul class="toolbar" v-permissions="['business:visits:create', 'business:visits:exportExcel']">
+        <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
+            v-permissions="['business:visits:create']">鏂板缓</el-button></li>
+        <li><el-button type="primary" :loading="isWorking.export" @click="exportExcel"
+            v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button></li>
+      </ul>
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55"></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 prop="companyName" label="璁垮鍗曚綅" min-width="100px"></el-table-column>
+        <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
+        <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100px"></el-table-column>
+        <el-table-column label="棰勭害鏃堕棿" min-width="170px">
+          <template slot-scope="{row}">
+            <span>璧凤細{{ row.starttime }}</span><br />
+            <span>姝細{{ row.endtime }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="绛惧埌鏃堕棿" min-width="170px">
+          <template slot-scope="{row}">
+            <div v-if="row.inDate && row.outDate">
+              <span>璧凤細{{ row.inDate }}</span><br />
+              <span>姝細{{ row.outDate }}</span>
+            </div>
+            <span v-else>-</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="鏂藉伐浜哄憳" min-width="100px">
+          <template slot-scope="{row}">
+            <span v-if="row.type == 0">鍚�</span>
+            <span v-if="row.type == 1">鏄�</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="闅忚杞﹁締" min-width="100px">
+          <template slot-scope="{row}">
+            <span>{{ row.carNos }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
+          <template slot-scope="{row}">
+            <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
+            <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996);">澶勭悊涓�</span>
+            <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996);">宸插悓鎰�</span>
+            <span style="color: gray;" v-if="row.status === 3">宸叉嫆缁�</span>
+            <span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
+            <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
+            <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
+            <span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
+            <span v-if="row.status === 8" style="color: red">宸茬绂�</span>
+            <span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-if="containPermissions(['business:visits:update', 'business:visits:delete'])" label="鎿嶄綔"
+          min-width="200" fixed="right">
+          <template slot-scope="{row}">
+            <el-button type="text" @click="departure(row.id)" v-permissions="['business:visits:level']"
+              icon="el-icon-delete" style="color: red" v-if="row.status == 7">绂诲巶</el-button>
+            <el-button type="text" @click="cancel(row.id)" v-permissions="['business:visits:cancel']"
+              icon="el-icon-delete" style="color: red" v-if="row.status == 5">鍙栨秷棰勭害</el-button>
+            <el-button type="text" @click="resend(row.id)" v-permissions="['business:visits:update']"
+              icon="el-icon-edit" v-if="row.status == 6">閲嶆柊涓嬪彂</el-button>
+            <!-- <el-button type="text" @click="$refs.OperaVisitsDesWindow.open('璇︽儏', row.id)" icon="el-icon-view">璇︽儏</el-button> -->
+            <el-button type="text" @click="handleDetail(row)" icon="el-icon-view">璇︽儏</el-button>
+            <!--                        <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">鏌ヨ瀹℃壒缁撴灉</el-button>-->
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+      </pagination>
+      <!--      璇︽儏      -->
+      <!-- <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> -->
+      <TaskDetail v-if="isShowDetail" ref="DetailRef" />
+      <!-- 鏂板缓 -->
+      <OperaVisitsWindow @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="operaVisitsWindowRef" />
+    </template>
+  </TableLayout>
 </template>
 
 <script>
@@ -132,7 +124,7 @@
   name: 'Visits',
   extends: BaseTable,
   components: { TableLayout, Pagination, TaskDetail, OperaVisitsWindow },
-  data () {
+  data() {
     return {
       isShowEdit: false,
       isShowDetail: false,
@@ -146,7 +138,7 @@
       }
     }
   },
-  created () {
+  created() {
     this.config({
       module: '璁垮鐢宠淇℃伅琛�',
       api: '/business/visits',
@@ -156,9 +148,9 @@
     this.search()
   },
   methods: {
-    handleDetail (row) {
+    handleDetail(row) {
       this.isShowDetail = true
-      console.log('row', row);
+      console.log('row', row)
       this.$nextTick(() => {
         this.$refs.DetailRef.id = row.id
         this.$refs.DetailRef.type = 0
@@ -166,19 +158,19 @@
         this.$refs.DetailRef.isShowModal = true
       })
     },
-    handleEdit () {
+    handleEdit() {
       this.isShowEdit = true
       this.$nextTick(() => {
         this.$refs.operaVisitsWindowRef.isShowModal = true
       })
     },
-    departure (id) {
-      this.$confirm('纭畾绂诲満鍚�, 鏄惁缁х画?', '鎻愮ず', {
+    departure(id) {
+      this.$confirm('纭畾绂诲巶鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-      level(id)
+        level(id)
           .then(res => {
             this.page = 1
             this.getData()
@@ -187,13 +179,13 @@
 
       })
     },
-    cancel (id) {
+    cancel(id) {
       this.$confirm('纭畾鍙栨秷棰勭害鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-      visitCancel(id)
+        visitCancel(id)
           .then(res => {
             this.page = 1
             this.getData()
@@ -202,7 +194,7 @@
 
       })
     },
-    resend (id) {
+    resend(id) {
       this.$confirm('纭畾灏濊瘯閲嶆柊鍙戣捣棰勭害鍚�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue
index f6e4b81..e9e45a1 100644
--- a/admin/src/views/meeting/bookings.vue
+++ b/admin/src/views/meeting/bookings.vue
@@ -1,36 +1,15 @@
 <template>
   <TableLayout :permissions="['business:bookings:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form
-      ref="searchForm"
-      slot="search-form"
-      :model="searchForm"
-      label-width="100px"
-      inline
-    >
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
       <el-form-item label="浼氳瀹�" prop="roomId">
-        <el-select
-          v-model="searchForm.roomId"
-          filterable
-          clearable
-          placeholder="璇烽�夋嫨浼氳瀹�"
-        >
-          <el-option
-            v-for="item in rooms"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          />
+        <el-select v-model="searchForm.roomId" filterable clearable placeholder="璇烽�夋嫨浼氳瀹�">
+          <el-option v-for="item in rooms" :key="item.id" :value="item.id" :label="item.name" />
         </el-select>
       </el-form-item>
       <el-form-item label="棰勭害閮ㄩ棬" prop="department">
-        <el-cascader
-          v-model="searchForm.department"
-          :options="department"
-          :show-all-levels="false"
-          clearable
-          :props="props"
-        ></el-cascader>
+        <el-cascader v-model="searchForm.department" :options="department" :show-all-levels="false" clearable
+          :props="props"></el-cascader>
         <!-- @change="handleChange" -->
         <!-- <el-select
           v-model="searchForm.departmentId"
@@ -42,52 +21,23 @@
         </el-select> -->
       </el-form-item>
       <el-form-item label="浼氳涓婚" prop="name">
-        <el-input
-          v-model="searchForm.name"
-          placeholder="璇疯緭鍏ヤ細璁富棰�"
-          @keypress.enter.native="search"
-        ></el-input>
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ細璁富棰�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="棰勭害浜�" prop="realName">
-        <el-input
-          v-model="searchForm.realName"
-          placeholder="璇疯緭鍏ラ绾︿汉"
-          @keypress.enter.native="search"
-        ></el-input>
+        <el-input v-model="searchForm.realName" placeholder="璇疯緭鍏ラ绾︿汉" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="浼氳鐘舵��" prop="status">
-        <el-select
-          v-model="searchForm.meetingStatus"
-          filterable
-          clearable
-          placeholder="璇烽�夋嫨鐘舵��"
-        >
-          <el-option
-            v-for="item in status"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          />
+        <el-select v-model="searchForm.meetingStatus" filterable clearable placeholder="璇烽�夋嫨鐘舵��">
+          <el-option v-for="item in status" :key="item.id" :value="item.id" :label="item.name" />
         </el-select>
       </el-form-item>
       <el-form-item label="璧锋鏃堕棿" prop="startTime">
-        <el-date-picker
-          v-model="date"
-          type="datetimerange"
-          range-separator="鑷�"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          :default-time="['00:00:00', '23:59:59']"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-          @change="selectDate"
-        ></el-date-picker>
+        <el-date-picker v-model="date" type="datetimerange" range-separator="鑷�" value-format="yyyy-MM-dd HH:mm:ss"
+          :default-time="['00:00:00', '23:59:59']" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿"
+          @change="selectDate"></el-date-picker>
         <!-- <el-date-picker v-model="searchForm.startTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂�" @change="search"/> -->
       </el-form-item>
-      <el-radio-group
-        v-model="searchForm.radio"
-        size="small"
-        @input="changeRadio"
-      >
+      <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>
@@ -102,73 +52,35 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <ul
-        class="toolbar"
-        v-permissions="[
-          'business:bookings:create',
-          'business:bookings:exportExcel',
-        ]"
-      >
+      <ul class="toolbar" v-permissions="[
+        'business:bookings:create',
+        'business:bookings:exportExcel',
+      ]">
         <li>
-          <el-button
-            type="primary"
-            @click="$refs.operaBookingsWindow.open('鏂板缓浼氳')"
-            v-permissions="['business:bookings:create']"
-            >鏂板缓</el-button
-          >
+          <el-button type="primary" @click="$refs.operaBookingsWindow.open('鏂板缓浼氳')"
+            v-permissions="['business:bookings:create']">鏂板缓</el-button>
         </li>
         <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button></li> -->
         <li>
-          <el-button
-            :loading="isWorking.export"
-            v-permissions="['business:bookings:exportExcel']"
-            @click="exportExcel"
-            >瀵煎嚭</el-button
-          >
+          <el-button :loading="isWorking.export" v-permissions="['business:bookings:exportExcel']"
+            @click="exportExcel">瀵煎嚭</el-button>
         </li>
       </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        border
-        @selection-change="handleSelectionChange"
-      >
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe border
+        @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
-        >
+        <el-table-column prop="name" label="浼氳涓婚" align="center" min-width="120px" show-overflow-tooltip>
           <template slot-scope="{ row }">
             <span class="long-title-style">{{ row.name }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="roomName"
-          label="浼氳瀹�"
-          align="center"
-          min-width="120px"
-          show-overflow-tooltip
-        >
+        <el-table-column prop="roomName" label="浼氳瀹�" align="center" min-width="120px" show-overflow-tooltip>
           <template slot-scope="{ row }">
             <span class="long-title-style">{{ row.roomName }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="meetingTime"
-          label="浼氳鏃堕棿"
-          align="center"
-          min-width="120px"
-        ></el-table-column>
-        <el-table-column
-          prop="managerInfo"
-          label="棰勭害浜�"
-          align="center"
-          min-width="100px"
-        ></el-table-column>
+        <el-table-column prop="meetingTime" label="浼氳鏃堕棿" align="center" min-width="120px"></el-table-column>
+        <el-table-column prop="managerInfo" label="棰勭害浜�" align="center" min-width="100px"></el-table-column>
         <el-table-column label="浼氳鐘舵��" align="center" min-width="60px">
           <template slot-scope="{ row }">
             <span v-if="row.meetingStatus == 1">鏈紑濮�</span>
@@ -179,56 +91,34 @@
             <!-- {{ row.status==0 ? '姝e父' : '鍙栨秷' }} -->
           </template>
         </el-table-column>
-        <el-table-column
-          prop="createDate"
-          label="鍒涘缓鏃堕棿"
-          align="center"
-          min-width="150px"
-        ></el-table-column>
+        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="150px"></el-table-column>
         <!-- <el-table-column prop="content" label="浼氳鍐呭" min-width="100px"></el-table-column> -->
-        <el-table-column
-          v-if="
-            containPermissions([
-              'business:bookings:update',
-              'business:bookings:delete',
-            ])
-          "
-          label="鎿嶄綔"
-          min-width="100"
-          align="center"
-          fixed="right"
-        >
+        <el-table-column v-if="
+          containPermissions([
+            'business:bookings:update',
+            'business:bookings:delete',
+          ])
+        " label="鎿嶄綔" min-width="100" align="center" fixed="right">
           <template slot-scope="{ row }">
             <template>
-              <el-button
-                type="text"
-                @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)"
-                >鏌ョ湅璇︽儏</el-button
-              >
-              <el-button v-if="row.meetingStatus == '1'" type="text" @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)" v-permissions="['business:bookings:update']">缂栬緫</el-button>
-              <!-- <el-button type="text" @click="copy(row)">澶嶅埗</el-button> -->
-              <el-button v-if="row.meetingStatus == '1'"  type="text" @click="cancelMeeting(row.id)" v-permissions="['business:bookings:update']">鎾ゅ洖</el-button>
+              <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
+              <el-button v-if="row.meetingStatus == '1'" type="text"
+                @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)"
+                v-permissions="['business:bookings:update']">缂栬緫</el-button>
+              <el-button type="text" v-if="row.meetingStatus == '1'" @click="handleStart(row)">寮�濮�</el-button>
+              <el-button v-if="row.meetingStatus == '1'" type="text" @click="cancelMeeting(row.id)"
+                v-permissions="['business:bookings:update']">鎾ゅ洖</el-button>
             </template>
             <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button> -->
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      >
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
       </pagination>
     </template>
     <!-- 鏂板缓/淇敼 -->
-    <OperaBookingsWindow
-      ref="operaBookingsWindow"
-      @success="handlePageChange"
-    />
-    <OperaBookingsDetailWindow
-      @success="search"
-      ref="operaBookingsDetailWindow"
-    />
+    <OperaBookingsWindow ref="operaBookingsWindow" @success="handlePageChange" />
+    <OperaBookingsDetailWindow @success="search" ref="operaBookingsDetailWindow" />
 
   </TableLayout>
 </template>
@@ -242,13 +132,13 @@
 import { findList } from '@/api/meeting/rooms'
 import { getSystemDictData } from '@/api/system/dictData'
 import { fetchList } from '@/api/business/company'
-import { cancelById, bookingsDetail } from '@/api/meeting/bookings'
+import { cancelById, bookingsDetail, startEarlyById, startById } from '@/api/meeting/bookings'
 import { timeForMat } from '@/utils/util'
 export default {
   name: 'Bookings',
   extends: BaseTable,
   components: { TableLayout, Pagination, OperaBookingsWindow, OperaBookingsDetailWindow },
-  data () {
+  data() {
     return {
       date: [],
       // 鎼滅储
@@ -290,12 +180,12 @@
       link: 'https://dmtest.ahapp.net/meeting_h5/' // H5_LINK_ADDR
     }
   },
-  provide () {
+  provide() {
     return {
       rooms: () => this.rooms
     }
   },
-  created () {
+  created() {
     this.config({
       module: '浼氳瀹ら瀹氫俊鎭〃',
       api: '/meeting/bookings',
@@ -318,7 +208,7 @@
     this.changeRadio('0')
   },
   methods: {
-    changeRadio (e) {
+    changeRadio(e) {
       if (e === '0') {
         this.searchForm.startTime = timeForMat(0)[0]
         this.searchForm.endTime = timeForMat(0)[1]
@@ -334,7 +224,7 @@
       }
       this.search()
     },
-    newTree (tree) {
+    newTree(tree) {
       if (tree == null) {
         return []
       }
@@ -351,12 +241,12 @@
         return newItem
       })
     },
-    selectDate (v) {
+    selectDate(v) {
       this.searchForm.endTime = v[1] + ' 23:59:59'
       this.searchForm.startTime = v[0] + ' 00:00:00'
       this.searchForm.radio = null
     },
-    reset () {
+    reset() {
       this.$refs.searchForm.resetFields()
       this.date = []
       this.searchForm.radio = '0'
@@ -364,7 +254,7 @@
       this.searchForm.endTime = ''
       this.changeRadio('0')
     },
-    copy (row) {
+    copy(row) {
       const text = `${row.realName} 閭�璇锋偍鍔犲叆浼氳\n浼氳涓婚锛�${row.name}\n浼氳瀹わ細${row.roomName}\n浼氳鏃堕棿锛�${row.meetingTime}\n鐐瑰嚮閾炬帴鐩存帴鍔犲叆浼氳锛歕n${this.link}?id=${row.id}`
       this.$copyText(text)
         .then(() => {
@@ -373,7 +263,20 @@
         .catch(e => {
         })
     },
-    cancelMeeting (id) {
+    handleStart(row) {
+      this.$dialog.messageWaring('寮�濮嬩細璁�', '鏄惁寮�濮嬪綋鍓嶄細璁紵')
+        .then(() => {
+          let fn = new Date(row.startTime).getTime() > new Date().getTime() ? startEarlyById : startById
+          fn({ id: row.id })
+            .then(() => {
+              this.$message.success('浼氳宸插紑濮�')
+              this.handlePageChange()
+            })
+            .catch(e => {
+            })
+        })
+    },
+    cancelMeeting(id) {
       this.$dialog.messageWaring('鍙栨秷浼氳', '鏄惁鍙栨秷褰撳墠浼氳锛�')
         .then(() => {
           cancelById({ id })
@@ -385,7 +288,7 @@
             })
         })
     },
-    showDetail (id) {
+    showDetail(id) {
       bookingsDetail(id)
         .then(res => {
           this.$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', res)
@@ -393,7 +296,7 @@
         .catch(e => {
         })
     },
-    editBookings (id) {
+    editBookings(id) {
       bookingsDetail(id)
         .then(res => {
           this.$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', res)
@@ -401,7 +304,7 @@
         .catch(e => {
         })
     },
-    handlePageChange (pageIndex) {
+    handlePageChange(pageIndex) {
       this.__checkApi()
       this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
       this.isWorking.search = true
@@ -433,24 +336,29 @@
 <style lang="scss" scoped>
 .detail_modal {
   padding: 20px 16px;
+
   .title {
     text-align: center;
     font-weight: 600;
     font-size: 16px;
     margin-bottom: 20px;
   }
+
   .h1 {
     font-weight: 600;
     font-size: 16px;
     margin-bottom: 15px;
   }
+
   .line {
     display: flex;
     margin-bottom: 10px;
+
     .label {
       width: 70px;
       color: #888888;
     }
+
     .value {
       color: #333333;
     }
diff --git a/h5/api/meeting.js b/h5/api/meeting.js
index c9f6413..0eed5fb 100644
--- a/h5/api/meeting.js
+++ b/h5/api/meeting.js
@@ -95,3 +95,19 @@
     data
   })
 }
+// 浼氳瀹� 寮�濮�
+export const startMeetignById = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/start',
+    method: 'post',
+    data
+  })
+}
+// 浼氳瀹� 鎻愬墠寮�濮�
+export const startEarlyMeetignById = (data) => {
+  return http({
+    url: 'meetingAdmin/cloudService/web/meeting/startEarly',
+    method: 'post',
+    data
+  })
+}
diff --git a/h5/manifest.json b/h5/manifest.json
index 50678d7..8f1b88c 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -91,7 +91,7 @@
             "proxy" : {
                 "/admin_interface" : {
                     // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
-                    "target" : "http://192.168.137.1:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     // "target" : "http://192.168.31.42:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     // "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     "changeOrigin" : true, // 鍏佽璺ㄥ煙 
diff --git a/h5/pages/staff/meetingDetail.vue b/h5/pages/staff/meetingDetail.vue
index fd97fcf..3484e31 100644
--- a/h5/pages/staff/meetingDetail.vue
+++ b/h5/pages/staff/meetingDetail.vue
@@ -76,9 +76,10 @@
     <view class="empty empty2"></view>
     <view class="main_footer" v-if="detail.meetingStatus == '1'">
       <view class="btn" @click="openCancel">鎾ゅ洖</view>
-      <view class="btn agree" @click="handleEdit">淇敼</view>
+      <view class="btn edit" @click="handleEdit">淇敼</view>
+      <view class="btn agree" @click="handleStart">寮�濮嬩細璁�</view>
     </view>
-    <view class="main_footer" v-if="detail.meetingStatus == '2'">
+    <view class="main_footer" v-if="detail.meetingStatus == '2' && detail.isAdmin == 1">
       <view class="btn agree" @click="openClose">缁撴潫</view>
     </view>
     <!-- 鎾ゅ洖 -->
@@ -131,7 +132,7 @@
 </template>
 
 <script>
-import { meetingDetail, cancelById, closeMeetignById } from '@/api'
+import { meetingDetail, cancelById, closeMeetignById,startMeetignById,startEarlyMeetignById } from '@/api'
 export default {
   data() {
     return {
@@ -171,7 +172,7 @@
           setTimeout(() => {
             uni.showToast({
               title: '鎻愪氦鎴愬姛',
-              icon: 'success'
+              icon: 'none'
             })
           })
           setTimeout(() => {
@@ -180,6 +181,23 @@
         }
       })
     },
+		handleStart() {
+			const { id, detail } = this
+			let fn = new Date(detail.startTime).getTime() > new Date().getTime() ? startEarlyMeetignById : startMeetignById
+			fn({ id }).then(res => {
+			  if (res.code === 200) {
+			    setTimeout(() => {
+			      uni.showToast({
+			        title: '浼氳宸插紑濮�',
+			        icon: 'none'
+			      })
+			    })
+			    setTimeout(() => {
+			      uni.navigateBack()
+			    })
+			  }
+			})
+		},
     handleEdit() {
       const { id } = this
       uni.navigateTo({
@@ -273,7 +291,7 @@
   background-color: #fff;
   padding: 0 30rpx;
   .btn {
-    flex: 1;
+    flex: 3;
     height: 88rpx;
     line-height: 88rpx;
     background: #ffffff;
@@ -283,8 +301,12 @@
     text-align: center;
     margin: 16rpx 8rpx;
   }
-
+	.edit{
+		color: $uni-color-primary;
+		border: 1rpx solid $uni-color-primary;
+	}
   .agree {
+		flex: 5;
     background: $uni-color-primary;
     color: #fff;
     border: 1rpx solid $uni-color-primary;
diff --git a/h5/pages/staff/meetingSel.vue b/h5/pages/staff/meetingSel.vue
index ba35cde..9fb133c 100644
--- a/h5/pages/staff/meetingSel.vue
+++ b/h5/pages/staff/meetingSel.vue
@@ -1,378 +1,373 @@
-<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.keyword"
-        @blur="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.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>
-            <text class="tag" v-if="item.status == '1'">鏈変細璁�</text>
-          </view>
-          <view class="depart">{{ item.departmentName }}</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="empty"></view>
-    </view>
-    <!--  -->
-    <view class="sub_wrap">
-      <view class="sel_mem">
-        <text>宸查�夋嫨锛�</text>
-        <view class="members">
-          <text v-for="(item, i) in selList" :key="i"
-            >{{ item.realname }}锛�</text
-          >
-        </view>
-        <image
-          @click="isShowSelMem = true"
-          class="open_icon"
-          src="../../static/staff/renyuan_ic_open.png"
-          mode=""
-        ></image>
-      </view>
-      <view class="btn" @click="onSubmit"
-        >纭({{ selList.length }}/{{ param.limitNum }})</view
-      >
-    </view>
-    <!--  -->
-    <u-popup
-      catchtouchmove
-      :show="isShowSelMem"
-      :round="12"
-      mode="bottom"
-      @close="closeModal"
-    >
-      <view class="modal">
-        <view class="modal_header">
-          <text class="status">宸查�夋嫨锛歿{ selList.length }}浜�</text>
-          <text class="btn" @click="subSelMem">纭</text>
-        </view>
-        <view class="modal_mem_list">
-          <view class="line" v-for="(item, i) in selList" :key="i">
-            <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>
-        </view>
-      </view>
-    </u-popup>
-  </view>
-</template>
-
-<script>
-import { userPagePost } from '@/api'
-import dayjs from 'dayjs'
-export default {
-  data() {
-    return {
-      memberList: [],
-      selList: [],
-      param: {
-        limitNum: ''
-      },
-      pagination: {
-        page: 1,
-        capacity: 20
-      },
-
-      isShowSelMem: false
-    }
-  },
-  onLoad(option) {
-    this.param = {
-      limitNum: option.limitNum,
-      keyword: '',
-      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('meetingPeoDetail', (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()
-        })
-      }, 1000)
-    })
-  },
-  methods: {
-    onSubmit() {
-      this.$eventBus.$emit('meetingPeo', 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)
-      // const arr = e.detail.value
-      // let arrTemp = arr.map(item => {
-      //   let obj = {}
-      //   this.memberList.forEach(ite => {
-      //     if (item == ite.id) {
-      //       obj.name = ite.name.split('-')[0]
-      //       obj.componey = ite.name.split('-')[1] || ''
-      //       obj.id = ite.id
-      //     }
-      //   })
-      //   return obj
-      // })
-      // this.selList = arrTemp
-      this.$forceUpdate()
-    },
-    initData() {
-      const { param, pagination } = this
-      userPagePost({
-        model: { ...param },
-        ...pagination,
-
-      }).then(res => {
-        this.memberList = res.data.records || []
-        this.memberList.map(i => {
-          i.checked = false
-        })
-      })
-    },
-    closeModal() {
-      this.selList = this.memberList.filter(i => i.checked)
-      this.isShowSelMem = false
-    },
-    subSelMem() {
-      const { selList, memberList } = this
-      memberList.forEach(ite => {
-        ite.checked = false
-        selList.forEach(item => {
-          if (ite.id === item.id) {
-            ite.checked = true
-          } else { }
-        })
-      })
-      this.isShowSelMem = false
-      this.$forceUpdate()
-    },
-    handleRemove(i) {
-      this.selList.splice(i, 1)
-
-      // console.log(this.memberList);
-      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;
-        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 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;
-          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>
+<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.keyword" @blur="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.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>
+						<text class="tag" v-if="item.status == '1'">鏈変細璁�</text>
+					</view>
+					<view class="depart">{{ item.departmentName }}</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="empty"></view>
+		</view>
+		<!--  -->
+		<view class="sub_wrap">
+			<view class="sel_mem">
+				<text>宸查�夋嫨锛�</text>
+				<view class="members">
+					<text v-for="(item, i) in selList" :key="i">{{ item.realname }}锛�</text>
+				</view>
+				<image @click="openSeleter" class="open_icon" src="../../static/staff/renyuan_ic_open.png" mode=""></image>
+			</view>
+			<view class="btn" @click="onSubmit">纭({{ selList.length }}/{{ param.limitNum }})</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: ''
+				},
+				pagination: {
+					page: 1,
+					capacity: 20
+				},
+
+				isShowSelMem: false
+			}
+		},
+		onLoad(option) {
+			this.param = {
+				limitNum: option.limitNum,
+				keyword: '',
+				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('meetingPeoDetail', (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()
+					})
+				}, 1000)
+			})
+		},
+		methods: {
+			onSubmit() {
+				this.$eventBus.$emit('meetingPeo', 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({
+					model: {
+						...param
+					},
+					...pagination,
+
+				}).then(res => {
+					this.memberList = res.data.records || []
+					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">
+	.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 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;
+						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/memberSel.vue b/h5/pages/staff/memberSel.vue
index d4d2c99..8405ca0 100644
--- a/h5/pages/staff/memberSel.vue
+++ b/h5/pages/staff/memberSel.vue
@@ -17,15 +17,8 @@
     <view class="member_list">
       <checkbox-group @change="changeMem">
         <view v-for="item in memberList" :key="item.id" class="line">
-          <image
-            :src="
-              item.faceImgFull
-                ? item.faceImgFull
-                : require('@/static/default_avatar.png')
-            "
-            class="avatar"
-            mode=""
-          ></image>
+          <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>
@@ -234,6 +227,18 @@
       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 {
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 6a3b311..53f969b 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -12,7 +12,7 @@
 				<view class="img_wrap" v-for="item in info.submitFileList" :key="item.id">
 					<image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
 						class="img" />
-					<video v-if="item.type == 1" :src="item.fileurlFull" class="video" controls />
+					<video v-if="item.type == 1" :src="item.fileurlFull" class="video" :controls="false" />
 				</view>
 			</view>
 			<view class="text_wrap">
@@ -28,8 +28,8 @@
 		</view>
 		<!--  -->
 		<view class="emyty"></view>
-		<view v-if="info.status == 1 || info.status == 2" class="module_list">
-			<view class="flow_title">澶勭悊缁撴灉</view>
+		<view v-if="info.status == 1 || info.status == 2" class="module_list">
+			<view class="title">澶勭悊缁撴灉</view>
 			<view class="item">
 				<view class="label">澶勭悊缁撴灉</view>
 				<view class="value primaryColor" :class="{ red: info.status == 2 }">{{ statusMap[info.status] }}</view>
@@ -39,7 +39,7 @@
 				<view class="value">
 					<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i">
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull"></video>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 			</view>
@@ -48,7 +48,7 @@
 				<view class="value">
 					<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i">
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull"></video>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 			</view>
@@ -68,7 +68,7 @@
 							v-if="info.status == 1 || index < flowList.length - 1" />
 						<image src="@/static/staff/liucheng_fail@2x.png" class="status"
 							v-if="info.status == 2 && index == flowList.length - 1" />
-						<image v-if="item.avatar != null && item.avatar != ''" :src="item.avatar" class="img" alt="" />
+						<image v-if="item.avatar != null && item.avatar != ''" :src="item.avatar" class="img" alt="" />
 						<!-- <image v-else src="@/static/default_avatar.png" class="img" mode=""></image> -->
 						<span v-if="item.avatar == null || item.avatar == ''"
 							class="img_name">{{ item.createUserName && item.createUserName.slice(0, 1) }}</span>
@@ -76,7 +76,7 @@
 					<view class="content">
 						<view class="head">
 							<view class="event">{{ item.title }}</view>
-							<view class="time">{{ item.createDate }}</view>
+							<view class="time" v-if="item.createDate">{{ item.createDate.slice(0,16) }}</view>
 						</view>
 						<view class="line">
 							<view class="company">
@@ -97,9 +97,11 @@
 		</view>
 		<view class="emyty"></view>
 		<view class="main_footer">
-			<view  v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">閫�鍥�</view>
-			<view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">杞氦</view>
-			<view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">澶勭悊</view>
+			<view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">閫�鍥�</view>
+			<view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">
+				杞氦</view>
+			<view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">澶勭悊
+			</view>
 		</view>
 
 		<!-- 閫�鍥� -->
@@ -128,7 +130,7 @@
 						<u-icon class="close" size="20" name="close-circle-fill" color="red"
 							@click="fileDel('dealBeforeFileList', i)"></u-icon>
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull"></video>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 				<view class="label">閫�鍥炶鏄�</view>
@@ -168,7 +170,7 @@
 						<u-icon class="close" size="20" name="close-circle-fill" color="red"
 							@click="fileDel('dealBeforeFileList', i)"></u-icon>
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull"></video>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 				<view class="label">
@@ -184,7 +186,7 @@
 						<u-icon class="close" size="20" name="close-circle-fill" color="red"
 							@click="fileDel('dealAfterFileList', i)"></u-icon>
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull"></video>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 				<view class="label">鏁存敼璇存槑</view>
@@ -226,8 +228,8 @@
 				<view class="member_list">
 					<view class="mt24 placeholder6">鍏眥{ memberList.length }}鏉℃暟鎹�</view>
 					<view v-for="item in memberList" :key="item.id" class="line">
-						<image :src="item.faceImgFull ? item.faceImgFull : require('@/static/meeting/common/default_user@2x.png')"
-							class="avatar" mode=""></image>
+						<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>
@@ -235,10 +237,9 @@
 							</view>
 							<view class="depart">{{ item.companyName }}</view>
 						</view>
-						<image @click="changeMem(item)" v-if="transferParam.id == item.id"
-							src="@/static/checkbox_sel@2x.png" mode="widthFix" class="checked"></image>
-						<image @click="changeMem(item)" v-else src="@/static/video@2x.png" mode="widthFix"
-							class="checked"></image>
+						<image @click="changeMem(item)" v-if="transferParam.id == item.id" src="@/static/checkbox_sel@2x.png"
+							mode="widthFix" class="checked"></image>
+						<image @click="changeMem(item)" v-else src="@/static/video@2x.png" mode="widthFix" class="checked"></image>
 						<text></text>
 					</view>
 					<view class="empty"></view>
@@ -250,7 +251,8 @@
 			</view>
 		</u-popup>
 		<!-- 閫�鍥炴椂闂� -->
-		<u-datetime-picker :show="isShowBackDate" @confirm="confirmBackDate" @cancel="isShowBackDate = false"
+		<u-datetime-picker :show="isShowBackDate" :minDate="new Date().getTime()" :closeOnClickOverlay="false"
+			@confirm="confirmBackDate" @close="isShowBackDate = false" @cancel="isShowBackDate = false"
 			mode="datetime"></u-datetime-picker>
 
 		<u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
@@ -273,7 +275,7 @@
 			return {
 				isShowBack: false,
 				param: {},
-				info: {},
+				info: {},
 				userInfo: this.$store.state.userInfo,
 				flowList: [],
 
@@ -341,14 +343,14 @@
 			},
 			handleOpen() {
 				this.isShowHandle = true;
-				const submitFileList = this.info.submitFileList || []
+				const submitFileList = this.info.submitFileList || []
 				this.submitFileList = [...submitFileList];
 				this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
 			},
 			handleBack() {
-				this.isShowBack = true;
+				this.isShowBack = true;
 				// const submitFileList = this.info.submitFileList || []
-				// this.submitFileList = [...submitFileList];
+				// this.submitFileList = [...submitFileList];
 				this.dealBeforeFileList = []
 				this.$set(this.backParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
 			},
@@ -435,10 +437,8 @@
 			},
 			getMemList() {
 				findHiddenAreaMemberList({
-					model: {
-						...this.transferModel,
-						id: this.info.areaId
-					},
+					...this.transferModel,
+					id: this.info.areaId,
 					...this.pagination
 				}).then(res => {
 					this.memberList = res.data || [];
@@ -748,21 +748,27 @@
 		}
 	};
 </script>
-<style>
+
+<style lang="scss">
 	page {
 		background-color: #f7f7f7;
+
+		::v-deep .u-popup__content {
+			border-top: 1rpx solid #cccccc;
+		}
 	}
-</style>
-<style lang="scss">
+
 	.main_app {
 		background-color: #fff;
 		padding-bottom: 0;
-		.flow_title {
-			font-weight: 600;
-			font-size: 32rpx;
-			color: #222222;
-			margin-bottom: 24rpx;
+
+		.flow_title {
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #222222;
+			margin-bottom: 24rpx;
 		}
+
 		.flow_wrap {
 			padding: 30rpx 0;
 
@@ -831,17 +837,19 @@
 							}
 						}
 
-						.line{
-							.company{
-								font-size: 26rpx;
-								color: #777777;
-							}
-							.status-green{
-								color: $uni-color-primary;
-							}
-							.status-red{
-								color: red;
-							}
+						.line {
+							.company {
+								font-size: 26rpx;
+								color: #777777;
+							}
+
+							.status-green {
+								color: $uni-color-primary;
+							}
+
+							.status-red {
+								color: red;
+							}
 						}
 
 						.remark {
@@ -920,10 +928,14 @@
 			}
 		}
 
-		.module_list {
-			.title{
-				
+		.module_list {
+			.title {
+				font-weight: 600;
+				font-size: 32rpx;
+				color: #222222;
+				padding-top: 28rpx;
 			}
+
 			.item {
 				padding: 30rpx 0;
 				border-bottom: 1rpx solid #e5e5e5;
@@ -1012,7 +1024,8 @@
 				}
 
 				.video {
-					height: 160rpx;
+					width: 100%;
+					max-height: 100%;
 				}
 			}
 
@@ -1184,7 +1197,7 @@
 
 				video {
 					width: 100%;
-					max-height: 120rpx;
+					height: 100%;
 				}
 			}
 		}
@@ -1227,6 +1240,19 @@
 				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;
 
diff --git a/h5_meeting/.hbuilderx/launch.json b/h5_meeting/.hbuilderx/launch.json
index f5c1c0b..8e2b38a 100644
--- a/h5_meeting/.hbuilderx/launch.json
+++ b/h5_meeting/.hbuilderx/launch.json
@@ -4,6 +4,13 @@
         {
             "openVueDevtools" : false,
             "type" : "uni-app:h5"
-        }
+        },
+	{
+		"app-plus" : 
+		{
+			"launchtype" : "local"
+		},
+		"type" : "uniCloud"
+	}
     ]
 }
diff --git a/h5_meeting/manifest.json b/h5_meeting/manifest.json
index 52ecdd7..e88dc5e 100644
--- a/h5_meeting/manifest.json
+++ b/h5_meeting/manifest.json
@@ -5,30 +5,6 @@
     "versionName" : "1.0.0",
     "versionCode" : "100",
     "transformPx" : false,
-		"h5": {
-				"router": {
-					"mode": "hash",
-					"base": "./"
-				},
-				// "base" : "/h5/"
-				"devServer": {
-					"port": 8090,
-					"historyApiFallback": true,
-					"disableHostCheck": true,
-					"proxy": {
-						"/meetingAdmin": {
-							// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
-							// "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-							"target": "http://192.168.137.1:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-							"changeOrigin": true, // 鍏佽璺ㄥ煙 
-							"pathRewrite": {
-								"^/meetingAdmin": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
-							}
-						}
-					},
-					"https": false
-				}
-			},
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
         "usingComponents" : true,
@@ -65,9 +41,13 @@
                 ]
             },
             /* ios鎵撳寘閰嶇疆 */
-            "ios" : {},
+            "ios" : {
+                "dSYMs" : false
+            },
             /* SDK閰嶇疆 */
-            "sdkConfigs" : {}
+            "sdkConfigs" : {
+                "ad" : {}
+            }
         }
     },
     /* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
diff --git a/h5_meeting/package-lock.json b/h5_meeting/package-lock.json
index 41a7d26..8b1c85c 100644
--- a/h5_meeting/package-lock.json
+++ b/h5_meeting/package-lock.json
@@ -2,130 +2,15 @@
   "requires": true,
   "lockfileVersion": 1,
   "dependencies": {
-    "balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-    },
-    "brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "requires": {
-        "balanced-match": "^1.0.0"
-      }
-    },
     "dayjs": {
-      "version": "1.11.13"
+      "version": "1.11.13",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
     },
-    "decompress-response": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
-      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
-      "requires": {
-        "mimic-response": "^3.1.0"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-    },
-    "glob": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
-      "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^5.0.1",
-        "once": "^1.3.0"
-      }
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-    },
-    "js-binary-schema-parser": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
-      "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
-    },
-    "mimic-response": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
-      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
-    },
-    "minimatch": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
-      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
-      "requires": {
-        "brace-expansion": "^2.0.1"
-      }
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "parenthesis": {
-      "version": "3.1.8",
-      "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz",
-      "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
-    },
-    "simple-concat": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
-      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
-    },
-    "simple-get": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
-      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
-      "requires": {
-        "decompress-response": "^6.0.0",
-        "once": "^1.3.1",
-        "simple-concat": "^1.0.0"
-      }
-    },
-    "string-split-by": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz",
-      "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
-      "requires": {
-        "parenthesis": "^3.1.5"
-      }
-    },
-    "vue-qr": {
-      "version": "4.0.9",
-      "resolved": "https://registry.npmjs.org/vue-qr/-/vue-qr-4.0.9.tgz",
-      "integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
-      "requires": {
-        "glob": "^8.0.1",
-        "js-binary-schema-parser": "^2.0.2",
-        "simple-get": "^4.0.1",
-        "string-split-by": "^1.0.0"
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    "uqrcodejs": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/uqrcodejs/-/uqrcodejs-4.0.7.tgz",
+      "integrity": "sha512-84+aZmD2godCVI+93lxE3YUAPNY8zAJvNA7xRS7R7U+q57KzMDepBSfNCwoRUhWOfR6eHFoAOcHRPwsP6ka1cA=="
     }
   }
 }
diff --git a/h5_meeting/package.json b/h5_meeting/package.json
index c2ce703..2728378 100644
--- a/h5_meeting/package.json
+++ b/h5_meeting/package.json
@@ -1,6 +1,6 @@
 {
   "dependencies": {
     "dayjs": "^1.11.13",
-    "vue-qr": "^4.0.9"
+    "uqrcodejs": "^4.0.7"
   }
 }
diff --git a/h5_meeting/pages/index/config.vue b/h5_meeting/pages/index/config.vue
index e17d074..b476e6a 100644
--- a/h5_meeting/pages/index/config.vue
+++ b/h5_meeting/pages/index/config.vue
@@ -11,7 +11,7 @@
 			<view class="item">
 				<view class="title">鎺ュ彛鍦板潃</view>
 				<view class="line">
-					<input type="text" v-model="param.addr" />
+					<input type="text" v-model="param.baseUrl" />
 					<image src="../../static/icon/right.svg" class="icon"></image>
 				</view>
 			</view>
@@ -48,7 +48,9 @@
 					})
 				})
 				setTimeout(()=>{
-					uni.navigateBack()
+					uni.redirectTo({
+						url:'/pages/index/index'
+					})
 				}, 400)
 			}
 		}
diff --git a/h5_meeting/pages/index/index.vue b/h5_meeting/pages/index/index.vue
index 91910e4..b93eb84 100644
--- a/h5_meeting/pages/index/index.vue
+++ b/h5_meeting/pages/index/index.vue
@@ -28,7 +28,8 @@
 					<text>棰勭害浜猴細{{meetingInfo.bookingUser }}</text>
 				</view>
 			</view>
-			<vueQr v-if="meetingInfo.id" :text="meetingInfo.id" class="qrcode" />
+			<canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
+			<!-- <vueQr v-if="meetingInfo.id" :text="meetingInfo.id" class="qrcode" /> -->
 		</view>
 		<view class="meeting_wrap">
 			<view class="title">浠婃棩浼氳锛坽{ info.meetingListResponseList && info.meetingListResponseList.length > 0 ? info.meetingListResponseList.length : 0 }}锛�</view>
@@ -63,12 +64,13 @@
 
 <script>
 	import dayjs from 'dayjs'
-	import vueQr from 'vue-qr/src/packages/vue-qr.vue'
+	// import vueQr from 'vue-qr/src/packages/vue-qr.vue'
+	import UQRCode from 'uqrcodejs'
 	import {
 		meetScreenData
 	} from '@/api/index.js'
 	export default {
-		components: {vueQr},
+		// components: {vueQr},
 		data() {
 			return {
 				time: '',
@@ -87,7 +89,7 @@
 				meetingInfo: {}
 			}
 		},
-		onLoad() {
+		onShow() {
 			this.initDatetime()
 			this.param = uni.getStorageSync('param') || {}
 			if (!this.param.code) {
@@ -96,6 +98,8 @@
 				})
 			}
 			this.getData()
+		},
+		onReady() {
 		},
 		methods: {
 			getData() {
@@ -105,9 +109,25 @@
 					this.info = res.data
 					if(this.info.meetingListResponseList && this.info.meetingListResponseList.length > 0){
 						this.meetingInfo = this.info.meetingListResponseList[0]
-						this.$forceUpdate()
+						this.qrcodeCreate()
 					}
 				})
+			},
+			qrcodeCreate(){
+				 // 鑾峰彇uQRCode瀹炰緥
+				  var qr = new UQRCode();
+				  // 璁剧疆浜岀淮鐮佸唴瀹�
+				  qr.data = "https://uqrcode.cn/doc";
+				  // 璁剧疆浜岀淮鐮佸ぇ灏忥紝蹇呴』涓巆anvas璁剧疆鐨勫楂樹竴鑷�
+				  qr.size = 83;
+				  // 璋冪敤鍒朵綔浜岀淮鐮佹柟娉�
+				  qr.make();
+				  // 鑾峰彇canvas涓婁笅鏂�
+				  var canvasContext = uni.createCanvasContext('qrcode', this); // 濡傛灉鏄粍浠讹紝this蹇呴』浼犲叆
+				  // 璁剧疆uQRCode瀹炰緥鐨刢anvas涓婁笅鏂�
+				  qr.canvasContext = canvasContext;
+				  // 璋冪敤缁樺埗鏂规硶灏嗕簩缁寸爜鍥炬缁樺埗鍒癱anvas涓�
+				  qr.drawCanvas();
 			},
 			touchend() {
 				this.touchNum++
@@ -169,7 +189,7 @@
 		display: flex;
 		flex-direction: column;
 		justify-content: space-between;
-		padding-bottom: 35rpx;
+		padding-bottom: 42rpx;
 		color: #fff;
 		overflow: hidden;
 		.meeting_wrap {
@@ -260,8 +280,8 @@
 			}
 
 			.qrcode {
-				width: 166rpx;
-				height: 166rpx;
+				width: 83px;
+				height: 83px;
 			}
 		}
 
@@ -285,7 +305,7 @@
 		}
 
 		.header_wrap {
-			padding: 34rpx 34rpx 0 0;
+			padding: 42rpx 34rpx 0 0;
 			display: flex;
 			justify-content: space-between;
 			align-items: center;
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json b/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json
deleted file mode 100644
index e195b09..0000000
--- a/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "hash": "7c90d9b3",
-  "configHash": "8347bd5a",
-  "lockfileHash": "102ea5b9",
-  "browserHash": "defb2146",
-  "optimized": {
-    "dayjs": {
-      "src": "../../../../../node_modules/dayjs/dayjs.min.js",
-      "file": "dayjs.js",
-      "fileHash": "84c9bd87",
-      "needsInterop": true
-    }
-  },
-  "chunks": {}
-}
\ No newline at end of file
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js
deleted file mode 100644
index 3241bd1..0000000
--- a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js
+++ /dev/null
@@ -1,300 +0,0 @@
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __commonJS = (cb, mod) => function __require() {
-  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
-
-// ../../../../../../Users/niannian/Desktop/working/璞嗙背绉戞妧/dmvisit/h5_meeting/node_modules/dayjs/dayjs.min.js
-var require_dayjs_min = __commonJS({
-  "../../../../../../Users/niannian/Desktop/working/璞嗙背绉戞妧/dmvisit/h5_meeting/node_modules/dayjs/dayjs.min.js"(exports, module) {
-    !function(t, e) {
-      "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e();
-    }(exports, function() {
-      "use strict";
-      var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
-        var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
-        return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
-      } }, m = function(t2, e2, n2) {
-        var r2 = String(t2);
-        return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
-      }, v = { s: m, z: function(t2) {
-        var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
-        return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
-      }, m: function t2(e2, n2) {
-        if (e2.date() < n2.date())
-          return -t2(n2, e2);
-        var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c);
-        return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
-      }, a: function(t2) {
-        return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
-      }, p: function(t2) {
-        return { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
-      }, u: function(t2) {
-        return void 0 === t2;
-      } }, g = "en", D = {};
-      D[g] = M;
-      var p = "$isDayjsObject", S = function(t2) {
-        return t2 instanceof _ || !(!t2 || !t2[p]);
-      }, w = function t2(e2, n2, r2) {
-        var i2;
-        if (!e2)
-          return g;
-        if ("string" == typeof e2) {
-          var s2 = e2.toLowerCase();
-          D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
-          var u2 = e2.split("-");
-          if (!i2 && u2.length > 1)
-            return t2(u2[0]);
-        } else {
-          var a2 = e2.name;
-          D[a2] = e2, i2 = a2;
-        }
-        return !r2 && i2 && (g = i2), i2 || !r2 && g;
-      }, O = function(t2, e2) {
-        if (S(t2))
-          return t2.clone();
-        var n2 = "object" == typeof e2 ? e2 : {};
-        return n2.date = t2, n2.args = arguments, new _(n2);
-      }, b = v;
-      b.l = w, b.i = S, b.w = function(t2, e2) {
-        return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
-      };
-      var _ = function() {
-        function M2(t2) {
-          this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
-        }
-        var m2 = M2.prototype;
-        return m2.parse = function(t2) {
-          this.$d = function(t3) {
-            var e2 = t3.date, n2 = t3.utc;
-            if (null === e2)
-              return /* @__PURE__ */ new Date(NaN);
-            if (b.u(e2))
-              return /* @__PURE__ */ new Date();
-            if (e2 instanceof Date)
-              return new Date(e2);
-            if ("string" == typeof e2 && !/Z$/i.test(e2)) {
-              var r2 = e2.match($);
-              if (r2) {
-                var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
-                return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
-              }
-            }
-            return new Date(e2);
-          }(t2), this.init();
-        }, m2.init = function() {
-          var t2 = this.$d;
-          this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
-        }, m2.$utils = function() {
-          return b;
-        }, m2.isValid = function() {
-          return !(this.$d.toString() === l);
-        }, m2.isSame = function(t2, e2) {
-          var n2 = O(t2);
-          return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
-        }, m2.isAfter = function(t2, e2) {
-          return O(t2) < this.startOf(e2);
-        }, m2.isBefore = function(t2, e2) {
-          return this.endOf(e2) < O(t2);
-        }, m2.$g = function(t2, e2, n2) {
-          return b.u(t2) ? this[e2] : this.set(n2, t2);
-        }, m2.unix = function() {
-          return Math.floor(this.valueOf() / 1e3);
-        }, m2.valueOf = function() {
-          return this.$d.getTime();
-        }, m2.startOf = function(t2, e2) {
-          var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) {
-            var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
-            return r2 ? i2 : i2.endOf(a);
-          }, $2 = function(t3, e3) {
-            return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
-          }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
-          switch (f2) {
-            case h:
-              return r2 ? l2(1, 0) : l2(31, 11);
-            case c:
-              return r2 ? l2(1, M3) : l2(0, M3 + 1);
-            case o:
-              var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
-              return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
-            case a:
-            case d:
-              return $2(v2 + "Hours", 0);
-            case u:
-              return $2(v2 + "Minutes", 1);
-            case s:
-              return $2(v2 + "Seconds", 2);
-            case i:
-              return $2(v2 + "Milliseconds", 3);
-            default:
-              return this.clone();
-          }
-        }, m2.endOf = function(t2) {
-          return this.startOf(t2, false);
-        }, m2.$set = function(t2, e2) {
-          var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
-          if (o2 === c || o2 === h) {
-            var y2 = this.clone().set(d, 1);
-            y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
-          } else
-            l2 && this.$d[l2]($2);
-          return this.init(), this;
-        }, m2.set = function(t2, e2) {
-          return this.clone().$set(t2, e2);
-        }, m2.get = function(t2) {
-          return this[b.p(t2)]();
-        }, m2.add = function(r2, f2) {
-          var d2, l2 = this;
-          r2 = Number(r2);
-          var $2 = b.p(f2), y2 = function(t2) {
-            var e2 = O(l2);
-            return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
-          };
-          if ($2 === c)
-            return this.set(c, this.$M + r2);
-          if ($2 === h)
-            return this.set(h, this.$y + r2);
-          if ($2 === a)
-            return y2(1);
-          if ($2 === o)
-            return y2(7);
-          var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
-          return b.w(m3, this);
-        }, m2.subtract = function(t2, e2) {
-          return this.add(-1 * t2, e2);
-        }, m2.format = function(t2) {
-          var e2 = this, n2 = this.$locale();
-          if (!this.isValid())
-            return n2.invalidDate || l;
-          var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) {
-            return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
-          }, d2 = function(t3) {
-            return b.s(s2 % 12 || 12, t3, "0");
-          }, $2 = f2 || function(t3, e3, n3) {
-            var r3 = t3 < 12 ? "AM" : "PM";
-            return n3 ? r3.toLowerCase() : r3;
-          };
-          return r2.replace(y, function(t3, r3) {
-            return r3 || function(t4) {
-              switch (t4) {
-                case "YY":
-                  return String(e2.$y).slice(-2);
-                case "YYYY":
-                  return b.s(e2.$y, 4, "0");
-                case "M":
-                  return a2 + 1;
-                case "MM":
-                  return b.s(a2 + 1, 2, "0");
-                case "MMM":
-                  return h2(n2.monthsShort, a2, c2, 3);
-                case "MMMM":
-                  return h2(c2, a2);
-                case "D":
-                  return e2.$D;
-                case "DD":
-                  return b.s(e2.$D, 2, "0");
-                case "d":
-                  return String(e2.$W);
-                case "dd":
-                  return h2(n2.weekdaysMin, e2.$W, o2, 2);
-                case "ddd":
-                  return h2(n2.weekdaysShort, e2.$W, o2, 3);
-                case "dddd":
-                  return o2[e2.$W];
-                case "H":
-                  return String(s2);
-                case "HH":
-                  return b.s(s2, 2, "0");
-                case "h":
-                  return d2(1);
-                case "hh":
-                  return d2(2);
-                case "a":
-                  return $2(s2, u2, true);
-                case "A":
-                  return $2(s2, u2, false);
-                case "m":
-                  return String(u2);
-                case "mm":
-                  return b.s(u2, 2, "0");
-                case "s":
-                  return String(e2.$s);
-                case "ss":
-                  return b.s(e2.$s, 2, "0");
-                case "SSS":
-                  return b.s(e2.$ms, 3, "0");
-                case "Z":
-                  return i2;
-              }
-              return null;
-            }(t3) || i2.replace(":", "");
-          });
-        }, m2.utcOffset = function() {
-          return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
-        }, m2.diff = function(r2, d2, l2) {
-          var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() {
-            return b.m(y2, m3);
-          };
-          switch (M3) {
-            case h:
-              $2 = D2() / 12;
-              break;
-            case c:
-              $2 = D2();
-              break;
-            case f:
-              $2 = D2() / 3;
-              break;
-            case o:
-              $2 = (g2 - v2) / 6048e5;
-              break;
-            case a:
-              $2 = (g2 - v2) / 864e5;
-              break;
-            case u:
-              $2 = g2 / n;
-              break;
-            case s:
-              $2 = g2 / e;
-              break;
-            case i:
-              $2 = g2 / t;
-              break;
-            default:
-              $2 = g2;
-          }
-          return l2 ? $2 : b.a($2);
-        }, m2.daysInMonth = function() {
-          return this.endOf(c).$D;
-        }, m2.$locale = function() {
-          return D[this.$L];
-        }, m2.locale = function(t2, e2) {
-          if (!t2)
-            return this.$L;
-          var n2 = this.clone(), r2 = w(t2, e2, true);
-          return r2 && (n2.$L = r2), n2;
-        }, m2.clone = function() {
-          return b.w(this.$d, this);
-        }, m2.toDate = function() {
-          return new Date(this.valueOf());
-        }, m2.toJSON = function() {
-          return this.isValid() ? this.toISOString() : null;
-        }, m2.toISOString = function() {
-          return this.$d.toISOString();
-        }, m2.toString = function() {
-          return this.$d.toUTCString();
-        }, M2;
-      }(), k = _.prototype;
-      return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t2) {
-        k[t2[1]] = function(e2) {
-          return this.$g(e2, t2[0], t2[1]);
-        };
-      }), O.extend = function(t2, e2) {
-        return t2.$i || (t2(e2, _, O), t2.$i = true), O;
-      }, O.locale = w, O.isDayjs = S, O.unix = function(t2) {
-        return O(1e3 * t2);
-      }, O.en = D[g], O.Ls = D, O.p = {}, O;
-    });
-  }
-});
-export default require_dayjs_min();
-//# sourceMappingURL=dayjs.js.map
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map
deleted file mode 100644
index 904b1a0..0000000
--- a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "version": 3,
-  "sources": ["../../../../../node_modules/dayjs/dayjs.min.js"],
-  "sourcesContent": ["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));"],
-  "mappings": ";;;;;;AAAA;AAAA;AAAA,KAAC,SAAS,GAAE,GAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQ,EAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,QAAM,EAAE;AAAA,IAAC,EAAE,SAAM,WAAU;AAAC;AAAa,UAAI,IAAE,KAAI,IAAE,KAAI,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,UAAS,IAAE,QAAO,IAAE,OAAM,IAAE,QAAO,IAAE,SAAQ,IAAE,WAAU,IAAE,QAAO,IAAE,QAAO,IAAE,gBAAe,IAAE,8FAA6F,IAAE,uFAAsF,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASA,IAAE;AAAC,YAAIC,KAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,KAAEF,KAAE;AAAI,eAAM,MAAIA,MAAGC,IAAGC,KAAE,MAAI,EAAE,KAAGD,GAAEC,EAAC,KAAGD,GAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAE,IAAE,SAASD,IAAEC,IAAEC,IAAE;AAAC,YAAIC,KAAE,OAAOH,EAAC;AAAE,eAAM,CAACG,MAAGA,GAAE,UAAQF,KAAED,KAAE,KAAG,MAAMC,KAAE,IAAEE,GAAE,MAAM,EAAE,KAAKD,EAAC,IAAEF;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,GAAE,GAAE,SAASA,IAAE;AAAC,YAAIC,KAAE,CAACD,GAAE,UAAU,GAAEE,KAAE,KAAK,IAAID,EAAC,GAAEE,KAAE,KAAK,MAAMD,KAAE,EAAE,GAAEE,KAAEF,KAAE;AAAG,gBAAOD,MAAG,IAAE,MAAI,OAAK,EAAEE,IAAE,GAAE,GAAG,IAAE,MAAI,EAAEC,IAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASJ,GAAEC,IAAEC,IAAE;AAAC,YAAGD,GAAE,KAAK,IAAEC,GAAE,KAAK;AAAE,iBAAM,CAACF,GAAEE,IAAED,EAAC;AAAE,YAAIE,KAAE,MAAID,GAAE,KAAK,IAAED,GAAE,KAAK,MAAIC,GAAE,MAAM,IAAED,GAAE,MAAM,IAAGG,KAAEH,GAAE,MAAM,EAAE,IAAIE,IAAE,CAAC,GAAEE,KAAEH,KAAEE,KAAE,GAAEE,KAAEL,GAAE,MAAM,EAAE,IAAIE,MAAGE,KAAE,KAAG,IAAG,CAAC;AAAE,eAAM,EAAE,EAAEF,MAAGD,KAAEE,OAAIC,KAAED,KAAEE,KAAEA,KAAEF,QAAK;AAAA,MAAE,GAAE,GAAE,SAASJ,IAAE;AAAC,eAAOA,KAAE,IAAE,KAAK,KAAKA,EAAC,KAAG,IAAE,KAAK,MAAMA,EAAC;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAM,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,EAAC,EAAEA,EAAC,KAAG,OAAOA,MAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAO,WAASA;AAAA,MAAC,EAAC,GAAE,IAAE,MAAK,IAAE,CAAC;AAAE,QAAE,CAAC,IAAE;AAAE,UAAI,IAAE,kBAAiB,IAAE,SAASA,IAAE;AAAC,eAAOA,cAAa,KAAG,EAAE,CAACA,MAAG,CAACA,GAAE,CAAC;AAAA,MAAE,GAAE,IAAE,SAASA,GAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAIC;AAAE,YAAG,CAACH;AAAE,iBAAO;AAAE,YAAG,YAAU,OAAOA,IAAE;AAAC,cAAII,KAAEJ,GAAE,YAAY;AAAE,YAAEI,EAAC,MAAID,KAAEC,KAAGH,OAAI,EAAEG,EAAC,IAAEH,IAAEE,KAAEC;AAAG,cAAIC,KAAEL,GAAE,MAAM,GAAG;AAAE,cAAG,CAACG,MAAGE,GAAE,SAAO;AAAE,mBAAON,GAAEM,GAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAIC,KAAEN,GAAE;AAAK,YAAEM,EAAC,IAAEN,IAAEG,KAAEG;AAAA,QAAC;AAAC,eAAM,CAACJ,MAAGC,OAAI,IAAEA,KAAGA,MAAG,CAACD,MAAG;AAAA,MAAC,GAAE,IAAE,SAASH,IAAEC,IAAE;AAAC,YAAG,EAAED,EAAC;AAAE,iBAAOA,GAAE,MAAM;AAAE,YAAIE,KAAE,YAAU,OAAOD,KAAEA,KAAE,CAAC;AAAE,eAAOC,GAAE,OAAKF,IAAEE,GAAE,OAAK,WAAU,IAAI,EAAEA,EAAC;AAAA,MAAC,GAAE,IAAE;AAAE,QAAE,IAAE,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,SAASF,IAAEC,IAAE;AAAC,eAAO,EAAED,IAAE,EAAC,QAAOC,GAAE,IAAG,KAAIA,GAAE,IAAG,GAAEA,GAAE,IAAG,SAAQA,GAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI,IAAE,WAAU;AAAC,iBAASO,GAAER,IAAE;AAAC,eAAK,KAAG,EAAEA,GAAE,QAAO,MAAK,IAAE,GAAE,KAAK,MAAMA,EAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,GAAE,KAAG,CAAC,GAAE,KAAK,CAAC,IAAE;AAAA,QAAE;AAAC,YAAIS,KAAED,GAAE;AAAU,eAAOC,GAAE,QAAM,SAAST,IAAE;AAAC,eAAK,KAAG,SAASA,IAAE;AAAC,gBAAIC,KAAED,GAAE,MAAKE,KAAEF,GAAE;AAAI,gBAAG,SAAOC;AAAE,qBAAO,oBAAI,KAAK,GAAG;AAAE,gBAAG,EAAE,EAAEA,EAAC;AAAE,qBAAO,oBAAI;AAAK,gBAAGA,cAAa;AAAK,qBAAO,IAAI,KAAKA,EAAC;AAAE,gBAAG,YAAU,OAAOA,MAAG,CAAC,MAAM,KAAKA,EAAC,GAAE;AAAC,kBAAIE,KAAEF,GAAE,MAAM,CAAC;AAAE,kBAAGE,IAAE;AAAC,oBAAIC,KAAED,GAAE,CAAC,IAAE,KAAG,GAAEE,MAAGF,GAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAOD,KAAE,IAAI,KAAK,KAAK,IAAIC,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC,CAAC,IAAE,IAAI,KAAKF,GAAE,CAAC,GAAEC,IAAED,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEE,EAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKJ,EAAC;AAAA,UAAC,EAAED,EAAC,GAAE,KAAK,KAAK;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,cAAIT,KAAE,KAAK;AAAG,eAAK,KAAGA,GAAE,YAAY,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,QAAQ,GAAE,KAAK,KAAGA,GAAE,OAAO,GAAE,KAAK,KAAGA,GAAE,SAAS,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,KAAGA,GAAE,WAAW,GAAE,KAAK,MAAIA,GAAE,gBAAgB;AAAA,QAAC,GAAES,GAAE,SAAO,WAAU;AAAC,iBAAO;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAM,EAAE,KAAK,GAAG,SAAS,MAAI;AAAA,QAAE,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,EAAEF,EAAC;AAAE,iBAAO,KAAK,QAAQC,EAAC,KAAGC,MAAGA,MAAG,KAAK,MAAMD,EAAC;AAAA,QAAC,GAAEQ,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,iBAAO,EAAED,EAAC,IAAE,KAAK,QAAQC,EAAC;AAAA,QAAC,GAAEQ,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAMA,EAAC,IAAE,EAAED,EAAC;AAAA,QAAC,GAAES,GAAE,KAAG,SAAST,IAAEC,IAAEC,IAAE;AAAC,iBAAO,EAAE,EAAEF,EAAC,IAAE,KAAKC,EAAC,IAAE,KAAK,IAAIC,IAAEF,EAAC;AAAA,QAAC,GAAES,GAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAQ,IAAE,GAAG;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAQ;AAAA,QAAC,GAAEA,GAAE,UAAQ,SAAST,IAAEC,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,CAAC,CAAC,EAAE,EAAEF,EAAC,KAAGA,IAAES,KAAE,EAAE,EAAEV,EAAC,GAAEW,KAAE,SAASX,IAAEC,IAAE;AAAC,gBAAIG,KAAE,EAAE,EAAEF,GAAE,KAAG,KAAK,IAAIA,GAAE,IAAGD,IAAED,EAAC,IAAE,IAAI,KAAKE,GAAE,IAAGD,IAAED,EAAC,GAAEE,EAAC;AAAE,mBAAOC,KAAEC,KAAEA,GAAE,MAAM,CAAC;AAAA,UAAC,GAAEQ,KAAE,SAASZ,IAAEC,IAAE;AAAC,mBAAO,EAAE,EAAEC,GAAE,OAAO,EAAEF,EAAC,EAAE,MAAME,GAAE,OAAO,GAAG,IAAGC,KAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMF,EAAC,CAAC,GAAEC,EAAC;AAAA,UAAC,GAAEW,KAAE,KAAK,IAAGL,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGK,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAOJ,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAOP,KAAEQ,GAAE,GAAE,CAAC,IAAEA,GAAE,IAAG,EAAE;AAAA,YAAE,KAAK;AAAE,qBAAOR,KAAEQ,GAAE,GAAEH,EAAC,IAAEG,GAAE,GAAEH,KAAE,CAAC;AAAA,YAAE,KAAK;AAAE,kBAAIO,KAAE,KAAK,QAAQ,EAAE,aAAW,GAAEC,MAAGH,KAAEE,KAAEF,KAAE,IAAEA,MAAGE;AAAE,qBAAOJ,GAAER,KAAEM,KAAEO,KAAEP,MAAG,IAAEO,KAAGR,EAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOI,GAAEE,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOF,GAAEE,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK,MAAM;AAAA,UAAC;AAAA,QAAC,GAAEL,GAAE,QAAM,SAAST,IAAE;AAAC,iBAAO,KAAK,QAAQA,IAAE,KAAE;AAAA,QAAC,GAAES,GAAE,OAAK,SAAST,IAAEC,IAAE;AAAC,cAAIC,IAAEe,KAAE,EAAE,EAAEjB,EAAC,GAAEU,KAAE,SAAO,KAAK,KAAG,QAAM,KAAIC,MAAGT,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,QAAOR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,YAAWR,GAAE,CAAC,IAAEQ,KAAE,SAAQR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,WAAUR,GAAE,CAAC,IAAEQ,KAAE,gBAAeR,IAAGe,EAAC,GAAEL,KAAEK,OAAI,IAAE,KAAK,MAAIhB,KAAE,KAAK,MAAIA;AAAE,cAAGgB,OAAI,KAAGA,OAAI,GAAE;AAAC,gBAAIJ,KAAE,KAAK,MAAM,EAAE,IAAI,GAAE,CAAC;AAAE,YAAAA,GAAE,GAAGF,EAAC,EAAEC,EAAC,GAAEC,GAAE,KAAK,GAAE,KAAK,KAAGA,GAAE,IAAI,GAAE,KAAK,IAAI,KAAK,IAAGA,GAAE,YAAY,CAAC,CAAC,EAAE;AAAA,UAAE;AAAM,YAAAF,MAAG,KAAK,GAAGA,EAAC,EAAEC,EAAC;AAAE,iBAAO,KAAK,KAAK,GAAE;AAAA,QAAI,GAAEH,GAAE,MAAI,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAM,EAAE,KAAKD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,MAAI,SAAST,IAAE;AAAC,iBAAO,KAAK,EAAE,EAAEA,EAAC,CAAC,EAAE;AAAA,QAAC,GAAES,GAAE,MAAI,SAASN,IAAEO,IAAE;AAAC,cAAIQ,IAAEP,KAAE;AAAK,UAAAR,KAAE,OAAOA,EAAC;AAAE,cAAIS,KAAE,EAAE,EAAEF,EAAC,GAAEG,KAAE,SAASb,IAAE;AAAC,gBAAIC,KAAE,EAAEU,EAAC;AAAE,mBAAO,EAAE,EAAEV,GAAE,KAAKA,GAAE,KAAK,IAAE,KAAK,MAAMD,KAAEG,EAAC,CAAC,GAAEQ,EAAC;AAAA,UAAC;AAAE,cAAGC,OAAI;AAAE,mBAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI;AAAE,mBAAO,KAAK,IAAI,GAAE,KAAK,KAAGT,EAAC;AAAE,cAAGS,OAAI;AAAE,mBAAOC,GAAE,CAAC;AAAE,cAAGD,OAAI;AAAE,mBAAOC,GAAE,CAAC;AAAE,cAAIL,MAAGU,KAAE,CAAC,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,IAAGN,EAAC,KAAG,GAAEH,KAAE,KAAK,GAAG,QAAQ,IAAEN,KAAEK;AAAE,iBAAO,EAAE,EAAEC,IAAE,IAAI;AAAA,QAAC,GAAEA,GAAE,WAAS,SAAST,IAAEC,IAAE;AAAC,iBAAO,KAAK,IAAI,KAAGD,IAAEC,EAAC;AAAA,QAAC,GAAEQ,GAAE,SAAO,SAAST,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,KAAK,QAAQ;AAAE,cAAG,CAAC,KAAK,QAAQ;AAAE,mBAAOA,GAAE,eAAa;AAAE,cAAIC,KAAEH,MAAG,wBAAuBI,KAAE,EAAE,EAAE,IAAI,GAAEC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGU,KAAEf,GAAE,UAASiB,KAAEjB,GAAE,QAAOQ,KAAER,GAAE,UAASkB,KAAE,SAASpB,IAAEE,IAAEE,IAAEC,IAAE;AAAC,mBAAOL,OAAIA,GAAEE,EAAC,KAAGF,GAAEC,IAAEE,EAAC,MAAIC,GAAEF,EAAC,EAAE,MAAM,GAAEG,EAAC;AAAA,UAAC,GAAEa,KAAE,SAASlB,IAAE;AAAC,mBAAO,EAAE,EAAEK,KAAE,MAAI,IAAGL,IAAE,GAAG;AAAA,UAAC,GAAEY,KAAEF,MAAG,SAASV,IAAEC,IAAEC,IAAE;AAAC,gBAAIC,KAAEH,KAAE,KAAG,OAAK;AAAK,mBAAOE,KAAEC,GAAE,YAAY,IAAEA;AAAA,UAAC;AAAE,iBAAOA,GAAE,QAAQ,GAAG,SAASH,IAAEG,IAAE;AAAC,mBAAOA,MAAG,SAASH,IAAE;AAAC,sBAAOA,IAAE;AAAA,gBAAC,KAAI;AAAK,yBAAO,OAAOC,GAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOM,KAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,KAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOa,GAAElB,GAAE,aAAYK,IAAEY,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOC,GAAED,IAAEZ,EAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAE;AAAA,gBAAG,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmB,GAAElB,GAAE,aAAYD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOG,GAAElB,GAAE,eAAcD,GAAE,IAAGgB,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,GAAEhB,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOI,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOa,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAON,GAAEP,IAAEC,IAAE,IAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOM,GAAEP,IAAEC,IAAE,KAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOL,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAO,EAAE,EAAEA,GAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,EAAEJ,EAAC,KAAGI,GAAE,QAAQ,KAAI,EAAE;AAAA,UAAC,CAAE;AAAA,QAAC,GAAEK,GAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAkB,IAAE,EAAE;AAAA,QAAC,GAAEA,GAAE,OAAK,SAASN,IAAEe,IAAEP,IAAE;AAAC,cAAIC,IAAEC,KAAE,MAAKL,KAAE,EAAE,EAAEU,EAAC,GAAET,KAAE,EAAEN,EAAC,GAAEW,MAAGL,GAAE,UAAU,IAAE,KAAK,UAAU,KAAG,GAAEM,KAAE,OAAKN,IAAEO,KAAE,WAAU;AAAC,mBAAO,EAAE,EAAEH,IAAEJ,EAAC;AAAA,UAAC;AAAE,kBAAOD,IAAE;AAAA,YAAC,KAAK;AAAE,cAAAI,KAAEI,GAAE,IAAE;AAAG;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,KAAEI,GAAE,IAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAJ,MAAGG,KAAED,MAAG;AAAO;AAAA,YAAM,KAAK;AAAE,cAAAF,MAAGG,KAAED,MAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAF,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,KAAE;AAAE;AAAA,YAAM;AAAQ,cAAAH,KAAEG;AAAA,UAAC;AAAC,iBAAOJ,KAAEC,KAAE,EAAE,EAAEA,EAAC;AAAA,QAAC,GAAEH,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAM,CAAC,EAAE;AAAA,QAAE,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,EAAE,KAAK,EAAE;AAAA,QAAC,GAAEA,GAAE,SAAO,SAAST,IAAEC,IAAE;AAAC,cAAG,CAACD;AAAE,mBAAO,KAAK;AAAG,cAAIE,KAAE,KAAK,MAAM,GAAEC,KAAE,EAAEH,IAAEC,IAAE,IAAE;AAAE,iBAAOE,OAAID,GAAE,KAAGC,KAAGD;AAAA,QAAC,GAAEO,GAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAQ,IAAE,KAAK,YAAY,IAAE;AAAA,QAAI,GAAEA,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAEA,GAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAY;AAAA,QAAC,GAAED;AAAA,MAAC,EAAE,GAAE,IAAE,EAAE;AAAU,aAAO,EAAE,YAAU,GAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,CAAC,EAAE,QAAS,SAASR,IAAE;AAAC,UAAEA,GAAE,CAAC,CAAC,IAAE,SAASC,IAAE;AAAC,iBAAO,KAAK,GAAGA,IAAED,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,CAAE,GAAE,EAAE,SAAO,SAASA,IAAEC,IAAE;AAAC,eAAOD,GAAE,OAAKA,GAAEC,IAAE,GAAE,CAAC,GAAED,GAAE,KAAG,OAAI;AAAA,MAAC,GAAE,EAAE,SAAO,GAAE,EAAE,UAAQ,GAAE,EAAE,OAAK,SAASA,IAAE;AAAC,eAAO,EAAE,MAAIA,EAAC;AAAA,MAAC,GAAE,EAAE,KAAG,EAAE,CAAC,GAAE,EAAE,KAAG,GAAE,EAAE,IAAE,CAAC,GAAE;AAAA,IAAC,CAAE;AAAA;AAAA;",
-  "names": ["t", "e", "n", "r", "i", "s", "u", "a", "M", "m", "f", "l", "$", "y", "v", "g", "D", "o", "d", "c", "h"]
-}
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/package.json b/h5_meeting/unpackage/dist/cache/.vite/deps/package.json
deleted file mode 100644
index 3dbc1ca..0000000
--- a/h5_meeting/unpackage/dist/cache/.vite/deps/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "type": "module"
-}
diff --git a/h5_meeting/utils/config.js b/h5_meeting/utils/config.js
index 8b7806b..19b2359 100644
--- a/h5_meeting/utils/config.js
+++ b/h5_meeting/utils/config.js
@@ -1,6 +1,6 @@
 
-export const baseUrl = 'meetingAdmin/'
-// export const baseUrl = 'http://192.168.0.139:10010/admin_interface/'
+// export const baseUrl = 'meetingAdmin/'
+export const baseUrl = 'http://10.50.250.178:8088/gateway_interface/meetingAdmin/'
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
 
diff --git a/h5_meeting/utils/service.js b/h5_meeting/utils/service.js
index 92da23d..69029d9 100644
--- a/h5_meeting/utils/service.js
+++ b/h5_meeting/utils/service.js
@@ -12,8 +12,9 @@
 				title: '鍔犺浇涓�',
 				mask: true
 			})
+			const param = uni.getStorageSync('param') || {}
 			uni.request({
-				url: baseUrl + options.url,
+				url: param.baseUrl || baseUrl + options.url,
 				data: options.data || {},
 				method: options.method || 'GET',
 				header: options.header || {

--
Gitblit v1.9.3