From 5c53a09ff28e5be90af9c1bc0534a4320fc5aec0 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 23 十二月 2024 14:08:11 +0800
Subject: [PATCH] ll

---
 admin/src/views/contract/components/contractEdit.vue            |  232 +++++++++--------
 h5/pages/polling/detail.vue                                     |   54 +++-
 admin/src/views/project/components/OperaYwRoomWindow.vue        |   13 
 h5/pages/workOrder/edit.vue                                     |    9 
 h5/utils/config.js                                              |    4 
 admin/src/views/Inspection/task.vue                             |    2 
 h5/pages/operation/device.vue                                   |   20 +
 h5/pages/index.vue                                              |   26 +
 h5/pages/login.vue                                              |    2 
 admin/src/views/workorder/components/detail.vue                 |   72 +++-
 h5/pages/polling/task.vue                                       |   21 +
 h5/static/plan_ic_finish@2x.png                                 |    0 
 h5/pages/workOrder/list.vue                                     |    6 
 h5/pages/workOrder/detail.vue                                   |  153 +++++++++--
 h5/pages/polling/point.vue                                      |   74 +++--
 h5/static/play.png                                              |    0 
 admin/src/views/Inspection/components/taskDetail.vue            |    7 
 admin/src/views/project/components/OperaYwBuildingWindow.vue    |   12 
 admin/src/views/workorder/components/OperaYwWorkorderWindow.vue |   14 
 19 files changed, 476 insertions(+), 245 deletions(-)

diff --git a/admin/src/views/Inspection/components/taskDetail.vue b/admin/src/views/Inspection/components/taskDetail.vue
index 54b30a5..43adcf6 100644
--- a/admin/src/views/Inspection/components/taskDetail.vue
+++ b/admin/src/views/Inspection/components/taskDetail.vue
@@ -1,5 +1,5 @@
 <template>
-  <GlobalWindow title="宸℃浠诲姟璇︽儏" :showConfirm="false" :visible.sync="isShowModal">
+  <GlobalWindow title="宸℃浠诲姟璇︽儏" width="800px" :showConfirm="false" :visible.sync="isShowModal">
     <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getDetail(1)" @clear="clear" />
     <el-table v-loading="loading" :data="list" stripe>
       <el-table-column prop="pointName" label="宸℃鐐瑰悕绉�" min-width="100" show-overflow-tooltip />
@@ -17,6 +17,11 @@
           <span class="red" v-if="row.dealStatus == 1">寮傚父</span>
         </template>
       </el-table-column>
+      <el-table-column prop="" label="宸℃闄勪欢" min-width="100" show-overflow-tooltip>
+        <template v-slot="{ row }">
+          
+        </template>
+      </el-table-column>
       <el-table-column prop="dealInfo" label="宸℃璇存槑" min-width="100" show-overflow-tooltip />
     </el-table>
     <div class="mt20">
diff --git a/admin/src/views/Inspection/task.vue b/admin/src/views/Inspection/task.vue
index b9fe645..7084b40 100644
--- a/admin/src/views/Inspection/task.vue
+++ b/admin/src/views/Inspection/task.vue
@@ -5,7 +5,7 @@
       <el-form-item label="璁″垝鍚嶇О" prop="planTitle">
         <el-input v-model="searchForm.planTitle" placeholder="璇疯緭鍏ヨ鍒掑悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="浠诲姟鐘舵��">
+      <el-form-item label="浠诲姟鐘舵��" prop="status">
         <el-select v-model="searchForm.status" label="浠诲姟鐘舵��" filterable clearable>
           <el-option value="0" label="寰呭紑濮�"></el-option>
           <el-option value="1" label="杩涜涓�"></el-option>
diff --git a/admin/src/views/contract/components/contractEdit.vue b/admin/src/views/contract/components/contractEdit.vue
index a2ae60c..7e13e64 100644
--- a/admin/src/views/contract/components/contractEdit.vue
+++ b/admin/src/views/contract/components/contractEdit.vue
@@ -1,12 +1,6 @@
 <template>
-  <GlobalWindow
-    width="100%"
-    :title="title"
-    :withFooter="false"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-    @close="close">
+  <GlobalWindow width="100%" :title="title" :withFooter="false" :visible.sync="visible" :confirm-working="isWorking"
+    @confirm="confirm" @close="close">
     <div class="tabs fixed">
       <div class="tab" :class="{ active: activeTabs === 0 }">1銆佸熀鏈俊鎭�</div>
       <div class="tab" :class="{ active: activeTabs === 1 }">2銆佽垂鐢ㄦ潯娆�</div>
@@ -19,7 +13,8 @@
             <div class="list">
               <el-form-item label="鍚堝悓绫诲瀷" prop="type">
                 <el-select v-model="form.type" placeholder="璇烽�夋嫨" @change="changeType">
-                  <el-option v-for="(item, index) in types" :key="index" :value="item.value" :label="item.name"></el-option>
+                  <el-option v-for="(item, index) in types" :key="index" :value="item.value"
+                    :label="item.name"></el-option>
                 </el-select>
               </el-form-item>
               <el-form-item label="鍚堝悓缂栧彿" prop="code">
@@ -27,21 +22,26 @@
               </el-form-item>
               <el-form-item label="缁忓姙浜�" prop="userId">
                 <el-select v-model="form.userId" filterable placeholder="璇烽�夋嫨">
-                  <el-option v-for="(item, index) in agentList" :key="index" :value="item.id" :label="item.realname"></el-option>
+                  <el-option v-for="(item, index) in agentList" :key="index" :value="item.id"
+                    :label="item.realname"></el-option>
                 </el-select>
               </el-form-item>
               <el-form-item label="鍚堝悓绛捐鏃ユ湡" prop="signDate">
-                <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false" placeholder="璇烽�夋嫨" />
+                <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false"
+                  placeholder="璇烽�夋嫨" />
               </el-form-item>
               <el-form-item label="鍚堝悓寮�濮嬫棩鏈�" prop="startDate">
-                <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+                <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false"
+                  value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
               </el-form-item>
               <el-form-item label="鍚堝悓缁撴潫鏃ユ湡" prop="endDate">
-                <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+                <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false"
+                  value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
               </el-form-item>
               <el-form-item label="褰掑睘椤圭洰" prop="projectId">
                 <el-select v-model="form.projectId" @change="getHouseTree" placeholder="璇烽�夋嫨">
-                  <el-option v-for="(item, index) in projectList" :key="index" :value="item.id" :label="item.name"></el-option>
+                  <el-option v-for="(item, index) in projectList" :key="index" :value="item.id"
+                    :label="item.name"></el-option>
                 </el-select>
               </el-form-item>
               <el-form-item label="缁撴灉鍙栨暣(鍥涜垗浜斿叆)" prop="roundedUp">
@@ -52,7 +52,8 @@
               </el-form-item>
               <el-form-item label="鎵�灞炲叕鍙�" prop="companyId">
                 <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
-                  <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id" :label="item.name"></el-option>
+                  <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id"
+                    :label="item.name"></el-option>
                 </el-select>
               </el-form-item>
             </div>
@@ -65,24 +66,21 @@
               </el-form-item>
               <el-form-item label="鑱旂郴浜�" prop="memberId">
                 <el-select v-model="form.memberId" placeholder="璇烽�夋嫨">
-                  <el-option v-for="(item, index) in contactsList" :key="index" :value="item.id" :label="item.name"></el-option>
+                  <el-option v-for="(item, index) in contactsList" :key="index" :value="item.id"
+                    :label="item.name"></el-option>
                 </el-select>
-<!--                <el-input v-model="form.memberName" readonly placeholder="璇风偣鍑婚�夋嫨绉熷" />-->
+                <!--                <el-input v-model="form.memberName" readonly placeholder="璇风偣鍑婚�夋嫨绉熷" />-->
               </el-form-item>
             </div>
           </el-form>
         </div>
         <div class="main_house">
           <div class="title">璇烽�夋嫨鎴挎簮</div>
-          <el-tree
-            :data="houseList"
-            show-checkbox
-            node-key="idd"
-            @check="checkHouseRoom"
-            :default-expanded-keys="ids"
-            :default-checked-keys="ids"
-            :props="{ children: 'projectDataVOList', label: 'name' }">
-            <span class="custom-tree-node" style="width: 100%; display: flex; align-items: center; justify-content: space-between;" slot-scope="{ node, data }">
+          <el-tree :data="houseList" show-checkbox node-key="idd" @check="checkHouseRoom" :default-expanded-keys="ids"
+            :default-checked-keys="ids" :props="{ children: 'projectDataVOList', label: 'name' }">
+            <span class="custom-tree-node"
+              style="width: 100%; display: flex; align-items: center; justify-content: space-between;"
+              slot-scope="{ node, data }">
               <span>{{ data.name }}</span>
               <span style="color: #2080f7;" v-if="data.lv === 3">
                 {{ data.area }}銕�
@@ -113,8 +111,12 @@
     </div>
     <div v-show="activeTabs === 1">
       <div class="tabs cost_tabs">
-        <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0,2].includes(form.type)">绉熻祦鏉℃</div>
-        <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0,1].includes(form.type)">鐗╀笟鏉℃</div>
+        <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0, 2].includes(form.type)">
+          绉熻祦鏉℃
+        </div>
+        <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0, 1].includes(form.type)">
+          鐗╀笟鏉℃
+        </div>
       </div>
       <!--   绉熻祦鏉℃   -->
       <div v-show="cactiveTabs === 0">
@@ -128,7 +130,8 @@
                 </el-form-item>
                 <el-form-item label="浠樻鏂瑰紡" prop="zlPayType">
                   <el-select v-model="form.zlPayType" @change="changePayType" placeholder="璇烽�夋嫨">
-                    <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option>
+                    <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value"
+                      :label="item.name"></el-option>
                   </el-select>
                 </el-form-item>
                 <el-form-item label="鍏嶇鏈�" prop="zlDate">
@@ -141,18 +144,22 @@
                 <el-button type="text" size="medium" @click="addZl">澧炲姞</el-button>
               </div>
               <div class="list">
-                <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(zlDetailList, index) in form.zlDetailList" :key="index">
+                <div style="width: 100%; display: flex; flex-wrap: wrap;"
+                  v-for="(zlDetailList, index) in form.zlDetailList" :key="index">
                   <el-form-item label="璧峰鏃ユ湡" :prop="'zlDetailList.' + index + '.time'" :rules="{
                     required: true, message: '璇烽�夋嫨', trigger: 'blur'
                   }">
-                    <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+                    <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)"
+                      value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
                   </el-form-item>
                   <el-form-item label="鍚堝悓鍗曚环" :prop="'zlDetailList.' + index + '.price'" :rules="{
                     required: true, message: '璇疯緭鍏�', trigger: 'blur'
                   }">
                     <el-input placeholder="璇疯緭鍏�" v-model="zlDetailList.price" @input="clearzl" class="input-with-select">
-                      <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append" placeholder="璇烽�夋嫨">
-                        <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value" :label="item.name"></el-option>
+                      <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append"
+                        placeholder="璇烽�夋嫨">
+                        <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value"
+                          :label="item.name"></el-option>
                       </el-select>
                     </el-input>
                   </el-form-item>
@@ -161,7 +168,8 @@
                   }">
                     <div style="display: flex; align-items: center; justify-content: space-between;">
                       <el-input v-model="zlDetailList.advanceDays" @input="clearzl" placeholder="璇疯緭鍏�" v-trim />
-                      <el-link :underline="false" type="danger" @click="deleZl(index)" style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
+                      <el-link :underline="false" type="danger" @click="deleZl(index)"
+                        style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
                     </div>
                   </el-form-item>
                 </div>
@@ -185,24 +193,24 @@
           </el-table-column>
           <el-table-column label="鏈熸暟" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag>
+              <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
             </template>
           </el-table-column>
           <el-table-column label="鍖洪棿" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              {{row.startDate}} ~ {{row.endDate}}
+              {{ row.startDate }} ~ {{ row.endDate }}
             </template>
           </el-table-column>
           <el-table-column prop="planPayDate" label="浠樻鏃�" align="center" show-overflow-tooltip />
           <el-table-column label="搴旀敹" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              {{row.receivableFee}}鍏�
+              {{ row.receivableFee }}鍏�
             </template>
           </el-table-column>
         </el-table>
         <div class="total">
           <span>鎬昏</span>
-          <div>璐圭敤搴旀敹鎬昏锛歿{zlPrice}}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{form.zlDeposit}}鍏�</div>
+          <div>璐圭敤搴旀敹鎬昏锛歿{ zlPrice }}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{ form.zlDeposit }}鍏�</div>
         </div>
       </div>
       <!--   鐗╀笟鏉℃   -->
@@ -217,7 +225,8 @@
                 </el-form-item>
                 <el-form-item label="浠樻鏂瑰紡" prop="wyPayType">
                   <el-select v-model="form.wyPayType" @change="changePayType1" placeholder="璇烽�夋嫨">
-                    <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option>
+                    <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value"
+                      :label="item.name"></el-option>
                   </el-select>
                 </el-form-item>
                 <el-form-item label="鍏嶇鏈�" prop="wyDate">
@@ -230,18 +239,22 @@
                 <el-button type="text" size="medium" @click="addWy">澧炲姞</el-button>
               </div>
               <div class="list">
-                <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(wyDetailList, index) in form.wyDetailList" :key="index">
+                <div style="width: 100%; display: flex; flex-wrap: wrap;"
+                  v-for="(wyDetailList, index) in form.wyDetailList" :key="index">
                   <el-form-item label="璧峰鏃ユ湡" :prop="'wyDetailList.' + index + '.time'" :rules="{
                     required: true, message: '璇疯緭鍏�', trigger: 'blur'
                   }">
-                    <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+                    <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)"
+                      value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
                   </el-form-item>
                   <el-form-item label="鍚堝悓鍗曚环" :prop="'wyDetailList.' + index + '.price'" :rules="{
                     required: true, message: '璇疯緭鍏�', trigger: 'blur'
                   }">
                     <el-input placeholder="璇疯緭鍏�" @input="clearwy" v-model="wyDetailList.price">
-                      <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append" placeholder="璇烽�夋嫨">
-                        <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value" :label="item.name"></el-option>
+                      <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append"
+                        placeholder="璇烽�夋嫨">
+                        <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value"
+                          :label="item.name"></el-option>
                       </el-select>
                     </el-input>
                   </el-form-item>
@@ -250,7 +263,8 @@
                   }">
                     <div style="display: flex; align-items: center; justify-content: space-between;">
                       <el-input v-model="wyDetailList.advanceDays" @input="clearwy" placeholder="璇疯緭鍏�" v-trim />
-                      <el-link :underline="false" type="danger" @click="deleWy(index)" style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
+                      <el-link :underline="false" type="danger" @click="deleWy(index)"
+                        style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
                     </div>
                   </el-form-item>
                 </div>
@@ -274,32 +288,33 @@
           </el-table-column>
           <el-table-column label="鏈熸暟" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag>
+              <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
             </template>
           </el-table-column>
           <el-table-column label="鍖洪棿" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              {{row.startDate}} ~ {{row.endDate}}
+              {{ row.startDate }} ~ {{ row.endDate }}
             </template>
           </el-table-column>
           <el-table-column prop="planPayDate" label="浠樻鏃�" align="center" show-overflow-tooltip />
           <el-table-column prop="receivableFee" label="搴旀敹" align="center" show-overflow-tooltip>
             <template slot-scope="{row}">
-              {{row.receivableFee}}鍏�
+              {{ row.receivableFee }}鍏�
             </template>
           </el-table-column>
         </el-table>
         <div class="total">
           <span>鎬昏</span>
-          <div>璐圭敤搴旀敹鎬昏锛歿{wyPrice}}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{form.wyDeposit}}鍏�</div>
+          <div>璐圭敤搴旀敹鎬昏锛歿{ wyPrice }}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{ form.wyDeposit }}鍏�</div>
         </div>
       </div>
     </div>
     <div class="window__footer" style="position: sticky; bottom: 0; left: 0; z-index: 9; background: #ffffff;">
       <slot name="footer">
-        <el-button @click="confirm" :loading="confirmWorking" type="primary">{{activeTabs === 0 ? '涓嬩竴姝�' : '鎻愪氦'}}</el-button>
+        <el-button @click="confirm" :loading="confirmWorking" type="primary">{{ activeTabs === 0 ? '涓嬩竴姝�' :
+          '鎻愪氦'}}</el-button>
         <slot name="btns" />
-        <el-button @click="close">{{activeTabs === 0 ? '杩斿洖' : '涓婁竴姝�'}}</el-button>
+        <el-button @click="close">{{ activeTabs === 0 ? '杩斿洖' : '涓婁竴姝�' }}</el-button>
       </slot>
     </div>
     <!-- 閫夋嫨绉熷 -->
@@ -328,7 +343,7 @@
   computed: {
     ...mapState(['userInfo'])
   },
-  data () {
+  data() {
     return {
       title: '鍒涘缓鍚堝悓',
       activeTabs: 0,
@@ -347,7 +362,7 @@
         memberId: '',
         memberName: '',
         fileList: [],
-  
+
         zlDeposit: '',
         zlPayType: '',
         zlFreeStartDate: '',
@@ -363,7 +378,7 @@
             advanceDays: ''
           }
         ],
-  
+
         wyDeposit: '',
         wyPayType: '',
         wyFreeStartDate: '',
@@ -379,17 +394,17 @@
             advanceDays: ''
           }
         ],
-  
+
         roomIds: []
       },
-      
+
       ids: [],
-  
+
       zlList: [],
       wyList: [],
-      
+
       rules,
-  
+
       contactsList: [],
 
       loadingInstance: null,
@@ -432,12 +447,12 @@
         { name: '鍏�/m虏路骞�', value: 2 },
         { name: '鍏�/鍦�', value: 6 },
       ],
-      
+
       houseLvThree: []
     }
   },
   methods: {
-    open (title, target) {
+    open(title, target) {
       this.title = title
       this.ids = []
       this.houseList = []
@@ -486,7 +501,7 @@
         // this.getHouseTree()
       })
     },
-    changePayType (e) {
+    changePayType(e) {
       if (e === 0) {
         this.unitOps = [
           { name: '鍏�/m虏路澶�', value: 0 },
@@ -514,7 +529,7 @@
       }
       this.clearzl()
     },
-    changePayType1 (e) {
+    changePayType1(e) {
       if (e === 0) {
         this.unitOps1 = [
           { name: '鍏�/m虏路澶�', value: 0 },
@@ -543,14 +558,14 @@
       this.clearwy()
     },
     // 鑾峰彇鑱旂郴浜�
-    getYwList () {
+    getYwList() {
       ywList({
         customerId: this.form.renterId
       }).then(res => {
         this.contactsList = res
       })
     },
-    getHouseData () {
+    getHouseData() {
       if (this.form.startDate && this.form.endDate) {
         this.getHouseTree()
         if (this.form.zlDetailList.length === 1) {
@@ -565,33 +580,33 @@
         }
       }
     },
-    changeType (e) {
+    changeType(e) {
       if (e === 0 || e === 2) {
         this.cactiveTabs = 0
       } else if (e === 0 || e === 1) {
         this.cactiveTabs = 1
       }
     },
-    getDayTime (num) {
-      const today = new Date();
-      const year = today.getFullYear();
-      const month = today.getMonth() + 1;
-      const day = today.getDate();
+    getDayTime(num) {
+      const today = new Date()
+      const year = today.getFullYear()
+      const month = today.getMonth() + 1
+      const day = today.getDate()
       if (!num) {
-        return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
+        return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`
       } else {
-        return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}`;
+        return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}`
       }
     },
-    clearzl () {
+    clearzl() {
       this.zlList = []
       this.zlPrice = ''
     },
-    clearwy () {
+    clearwy() {
       this.wyList = []
       this.wyPrice = ''
     },
-    confirm () {
+    confirm() {
       var that = this
       if (this.activeTabs === 0) {
         this.$refs.form.validate((valid) => {
@@ -633,7 +648,7 @@
         }
       }
     },
-    submit () {
+    submit() {
       // 璋冪敤鏂板缓鎺ュ彛
       this.isWorking = true
       create({ ...this.form })
@@ -646,26 +661,26 @@
           this.isWorking = false
         })
     },
-    getDate1 (e, index) {
+    getDate1(e, index) {
       this.form.zlDetailList[index].startDate = e[0]
       this.form.zlDetailList[index].endDate = e[1]
       this.clearzl()
     },
-    getDate2 (e, index) {
+    getDate2(e, index) {
       this.form.wyDetailList[index].startDate = e[0]
       this.form.wyDetailList[index].endDate = e[1]
       this.clearwy()
     },
-    checkHouseRoom (a, b) {
+    checkHouseRoom(a, b) {
       this.ids = b.checkedKeys
       let arr = b.checkedKeys.map(item => {
         if (item.split('-')[0] == 3) {
           return Number(item.split('-')[1])
         }
       })
-      this.form.roomIds = arr.filter(item => item !== undefined);
+      this.form.roomIds = arr.filter(item => item !== undefined)
     },
-    getHouseTree () {
+    getHouseTree() {
       tree({
         startDate: this.form.startDate,
         endDate: this.form.endDate,
@@ -681,14 +696,14 @@
     },
     addParamToArray(arr) {
       for (let i = 0; i < arr.length; i++) {
-        const currentItem = arr[i].projectDataVOList;
+        const currentItem = arr[i].projectDataVOList
         arr[i].idd = arr[i].lv + '-' + arr[i].id
         if (currentItem.length > 0) {
-          this.addParamToArray(currentItem);
+          this.addParamToArray(currentItem)
         }
       }
     },
-    generateZL () {
+    generateZL() {
       getBillList({ ...this.form, billType: 0 })
         .then(res => {
           let zlPrice = 0
@@ -703,7 +718,7 @@
           this.zlList = arr
         })
     },
-    generateWY () {
+    generateWY() {
       getBillList({ ...this.form, billType: 1 })
         .then(res => {
           this.wy = true
@@ -719,7 +734,7 @@
           this.wyList = arr
         })
     },
-    addZl () {
+    addZl() {
       this.form.zlDetailList.push({
         circleType: 0,
         startDate: this.form.startDate,
@@ -729,7 +744,7 @@
         advanceDays: ''
       })
     },
-    addWy () {
+    addWy() {
       this.form.wyDetailList.push({
         circleType: 0,
         startDate: this.form.startDate,
@@ -749,62 +764,66 @@
       this.form.wyDetailList.splice(index, 1)
       this.clearwy()
     },
-    getZLDate (e) {
+    getZLDate(e) {
       this.form.zlFreeStartDate = e[0]
       this.form.zlFreeEndDate = e[1]
       this.clearzl()
     },
-    getWYDate (e) {
+    getWYDate(e) {
       this.form.wyFreeStartDate = e[0]
       this.form.wyFreeEndDate = e[1]
       this.clearwy()
     },
-    getTenant (row) {
+    getTenant(row) {
       this.form.renterId = row.id
       this.form.renterName = row.name
       this.form.memberId = ''
       this.form.memberName = ''
       this.getYwList()
     },
-    dele (imgaddr) {
+    dele(imgaddr) {
       this.form.fileList.forEach((item, index) => {
         if (imgaddr === item.imgaddr) {
           this.form.fileList.splice(index, 1)
         }
       })
     },
-    getUser () {
+    getUser() {
       getUserList({})
         .then(res => {
           this.agentList = res
         })
     },
-    getProject () {
+    getProject() {
       getProjectList({})
         .then(res => {
-          this.projectList = res
+          this.projectList = res || []
+          if (this.projectList.length > 0) {
+            this.$set(this.form, 'projectId', this.projectList[0].id)
+            this.getHouseTree()
+          }
         })
     },
-    getCompany () {
+    getCompany() {
       companyList({ type: 2 })
         .then(res => {
           this.comparyList = res
           this.form.companyId = res[0].id
         })
     },
-    tabsClick (val) {
+    tabsClick(val) {
       this.activeTabs = val
     },
-    ctabsClick (val) {
+    ctabsClick(val) {
       this.cactiveTabs = val
     },
-    handleRent () {
+    handleRent() {
       this.$refs.MemberSearchRef.open()
     },
-    houseChange (e) {
+    houseChange(e) {
       console.log(e)
     },
-    beforeUpload (file) {
+    beforeUpload(file) {
       this.loadingInstance = Loading.service({
         lock: true,
         text: 'Loading',
@@ -812,14 +831,14 @@
         background: 'rgba(0, 0, 0, 0.7)'
       })
     },
-    uploadError () {
+    uploadError() {
       this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
         if (this.loadingInstance) {
           this.loadingInstance.close()
         }
       })
     },
-    getDay () {
+    getDay() {
       const now = new Date()
       const year = now.getFullYear()
       const month = now.getMonth() + 1 // 鍔�1浣垮叾浠�1寮�濮�
@@ -827,9 +846,9 @@
       const hours = now.getHours()
       const minutes = now.getMinutes()
       const seconds = now.getSeconds()
-      return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
+      return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`
     },
-    uploadAvatarSuccess (file) {
+    uploadAvatarSuccess(file) {
       this.$nextTick(() => {
         if (this.loadingInstance) {
           this.loadingInstance.close()
@@ -838,7 +857,7 @@
       const item = file.data[0]
       this.form.fileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() })
     },
-    close () {
+    close() {
       if (this.activeTabs === 0) {
         this.$emit('close')
       } else {
@@ -853,6 +872,7 @@
 
 <style lang="scss" scoped>
 @import '@/assets/style/variables.scss';
+
 .fixed {
   background: #ffffff;
   position: sticky;
@@ -860,6 +880,7 @@
   left: 0;
   z-index: 999;
 }
+
 .tabs {
   border-bottom: 1px solid #DFE2E8;
   display: flex;
@@ -962,6 +983,7 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
+
   span {
     font-weight: 500;
     font-size: 14px;
diff --git a/admin/src/views/project/components/OperaYwBuildingWindow.vue b/admin/src/views/project/components/OperaYwBuildingWindow.vue
index 83fecbe..f1387b7 100644
--- a/admin/src/views/project/components/OperaYwBuildingWindow.vue
+++ b/admin/src/views/project/components/OperaYwBuildingWindow.vue
@@ -89,7 +89,7 @@
     })
   },
   methods: {
-    open (title, target,type) {
+    open(title, target, type) {
       this.title = title
       this.visible = true
       this.getProject()
@@ -98,14 +98,14 @@
         this.$nextTick(() => {
           this.$refs.form.resetFields()
           this.form[this.configData['field.id']] = null
-          this.form.type=type
+          this.form.type = type
         })
         return
       }
       // 缂栬緫
       this.$nextTick(() => {
-        console.log('----');
-        
+        console.log('----')
+
         this.getDetail(target.id)
       })
     },
@@ -117,6 +117,10 @@
     getProject() {
       getProjectList({}).then(res => {
         this.projectList = res || []
+        if (this.projectList.length > 0) {
+          this.$set(this.form, 'projectId', this.projectList[0].id)
+          // this.changeProject(this.projectList[0].id)
+        }
       })
     }
   }
diff --git a/admin/src/views/project/components/OperaYwRoomWindow.vue b/admin/src/views/project/components/OperaYwRoomWindow.vue
index dc0c159..1ed0a57 100644
--- a/admin/src/views/project/components/OperaYwRoomWindow.vue
+++ b/admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -101,6 +101,8 @@
       this.title = title
       this.visible = true
       this.getProject()
+      this.buildList = []
+      this.floorList = []
       // 鏂板缓缁勭粐
       if (target == null) {
         this.$nextTick(() => {
@@ -115,8 +117,8 @@
         this.getDetail(target.id)
       })
     },
-    confirm () {
-      if(!this.form.feeArea){
+    confirm() {
+      if (!this.form.feeArea) {
         this.form.feeArea = this.form.rentArea
       }
       if (this.form.id == null || this.form.id === '') {
@@ -143,6 +145,10 @@
     getProject() {
       getProjectList({}).then(res => {
         this.projectList = res || []
+        if (this.projectList.length > 0) {
+          this.$set(this.form, 'projectId', this.projectList[0].id)
+          this.changeProject(this.projectList[0].id)
+        }
       })
 
     },
@@ -150,6 +156,9 @@
       this.form.buildingId = ''
       getBuildList({ projectId: e }).then(res => {
         this.buildList = res || []
+        // if(this.buildList.length > 0){
+        //   this.form.buildingId = this.buildList[0].id
+        // }
       })
     },
     changeBuild(e) {
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
index 4f8ce99..c97fbf4 100644
--- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -140,7 +140,7 @@
       this.visible = true
       this.getProject()
       this.getCate()
-      // 鏂板缓
+      // 鏂板缓 
       if (target == null) {
         this.form = {
           id: null,
@@ -192,7 +192,11 @@
     },
     getProject() {
       getProjectList({}).then(res => {
-        this.projectList = res
+        this.projectList = res || []
+        if(this.projectList.length > 0){
+          this.$set(this.form, 'projectId', this.projectList[0].id)
+          this.getBuild(this.projectList[0].id)
+        }
       })
     },
     getBuild(projectId) {
@@ -200,7 +204,11 @@
       this.$set(this.form, 'floorId', '')
       this.$set(this.form, 'roomId', '')
       getBuildList({ projectId }).then(res => {
-        this.buildList = res
+        this.buildList = res || []
+        // if(projectId && this.buildList.length > 0){
+        //   this.$set(this.form, 'buildingId', this.buildList[0].id)
+        //   this.changeBuild(this.buildList[0].id)
+        // }
       })
     },
     changeBuild(e) {
diff --git a/admin/src/views/workorder/components/detail.vue b/admin/src/views/workorder/components/detail.vue
index a6908d4..f2e7d5f 100644
--- a/admin/src/views/workorder/components/detail.vue
+++ b/admin/src/views/workorder/components/detail.vue
@@ -49,11 +49,21 @@
             <div class="value" v-if="info.fileList == null || !info.fileList.length">鏃�</div>
             <div class="value" v-if="info.fileList != null && info.fileList.length">
               <div v-for="item in info.fileList" :key="item.id" style="display: inline;margin-right: 20px">
-                <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls
-                  preload="auto" style="width: 80px;height: 80px;object-fit: contain;" :src="item.fileurlFull" />
-                <el-image v-else-if="item.fileurlFull" style="width:80px; height: 80px" :src="item.fileurlFull"
+                <!-- <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls
+                  preload="auto" style="width: 80px;height: 80px;object-fit: contain;" :src="item.fileurlFull" /> -->
+                <el-image v-if="item.type == 0" style="width:80px; height: 80px" :src="item.fileurlFull"
                   :preview-src-list="[item.fileurlFull]">
                 </el-image>
+              </div>
+            </div>
+          </div>
+          <div v-if="info.fileList && info.fileList.length > 0 && info.fileList.filter(i => i.type == 1).length > 0"
+            class="item max">
+            <div class="la">闂瑙嗛</div>
+            <div class="value">
+              <div v-for="item in info.fileList" :key="item.id" style="display: inline;margin-right: 20px">
+                <video v-if="item.type == 1" ref="videoRef" controls preload="auto"
+                  style="width: 240px;height: 160px;object-fit: contain;" :src="item.fileurlFull" />
               </div>
             </div>
           </div>
@@ -61,7 +71,7 @@
         <div class="side">
           <div class="title">宸ュ崟娴佽浆璁板綍</div>
           <div class="flow_list">
-            <div class="item" v-for="item,i in info.logList">
+            <div class="item" v-for="item, i in info.logList">
               <div class="icon">
                 <div class="dian"></div>
                 <div v-if="i < info.logList.length - 1" class="line"></div>
@@ -76,7 +86,9 @@
           </div>
         </div>
       </div>
-      <div class="title">{{ info.dealStatus == 0 || info.dealStatus == 1 ? '宸ュ崟澶勭悊' : '澶勭悊缁撴灉' }}</div>
+      <div class="title"
+        v-if="info.dealStatus == 2 || info.dealStatus == 0 || (info.dealStatus == 1 && info.dealUserId === userInfo.id)">
+        {{ info.dealStatus == 0 || info.dealStatus == 1 ? '宸ュ崟澶勭悊' : '澶勭悊缁撴灉' }}</div>
       <el-form :model="param" ref="form" :rules="rules">
         <template v-if="info.dealStatus == 0 || info.dealStatus == null">
           <el-form-item label="澶勭悊鏂瑰紡" prop="dealType">
@@ -84,7 +96,7 @@
               <el-radio v-model="param.dealType" :label="0">鎸囨淳</el-radio>
               <el-radio v-model="param.dealType" :label="1">鐩存帴鍥炲</el-radio>
             </div>
-          </el-form-item> 
+          </el-form-item>
           <el-form-item v-if="param.dealType == 0" label="鎸囨淳缁�" prop="dealUserId">
             <el-select v-model="param.dealUserId" clearable filterable class="w400">
               <el-option v-for="item in staffList" :label="item.realname" :value="item.id"></el-option>
@@ -104,8 +116,8 @@
           </el-form-item>
           <el-form-item label="鐜板満鍥剧墖">
             <div class="file_list">
-              <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true"
-                :action="uploadImgUrl" :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError"
+              <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true" :action="uploadImgUrl"
+                :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError"
                 :before-upload="beforeUpload">
                 <div class="upload_wrap">
                   <i class="el-icon-plus avatar-uploader-icon"></i>
@@ -223,8 +235,8 @@
       const { id } = this
       detailById(id).then(res => {
         this.info = res
-        if(this.info.dealStatus == 1){
-          this.$set(this.param, 'getDate',dayjs().format('YYYY-MM-DD HH:mm:ss') )
+        if (this.info.dealStatus == 1) {
+          this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
         }
       })
     },
@@ -316,13 +328,15 @@
     }
 
     .primaryColor {
-      border: 1px solid rgba(63, 126, 239,.2);
-      background-color: rgba(63, 126, 239,.2);
+      border: 1px solid rgba(63, 126, 239, .2);
+      background-color: rgba(63, 126, 239, .2);
     }
-    .green{
+
+    .green {
       background-color: rgba(83, 183, 148, .2);
       border: 1px solid rgba(83, 183, 148, .2);
     }
+
     .gray {
       color: #333333;
       background-color: rgba(128, 128, 128, .2);
@@ -352,7 +366,8 @@
       width: 100%;
       display: flex;
       align-items: center;
-      .la{
+
+      .la {
         margin-bottom: 0;
         width: 72px;
       }
@@ -362,38 +377,47 @@
       width: 100%;
     }
   }
-  .main_content{
+
+  .main_content {
     display: flex;
-    .side{
+
+    .side {
       width: 370px;
-      .title{
+
+      .title {
         font-size: 14px;
       }
-      .flow_list{
-        .item{
+
+      .flow_list {
+        .item {
           display: flex;
-          .icon{
+
+          .icon {
             width: 28px;
             display: flex;
             flex-direction: column;
             align-items: center;
-            .dian{
+
+            .dian {
               width: 12px;
               height: 12px;
               border-radius: 50%;
               background-color: #e89e42;
             }
-            .line{
+
+            .line {
               width: 1px;
               height: 100%;
               background-color: #e89e42;
             }
           }
-          .content{
+
+          .content {
             font-size: 12px;
             color: #999999;
             padding-bottom: 12px;
-            .name{
+
+            .name {
               font-size: 13px;
               color: #333333;
             }
diff --git a/h5/pages/index.vue b/h5/pages/index.vue
index 9d3409d..81b4ef6 100644
--- a/h5/pages/index.vue
+++ b/h5/pages/index.vue
@@ -1,6 +1,6 @@
 <template>
 	<view class="main_app">
-		<view class="hone_name title">{{ userInfo.realname }}锛屾杩庣櫥褰�</view>
+		<view class="hone_name title">{{ userInfo.realname }}锛屾杩庣櫥褰曪綖</view>
 		<view class="home_con">
 			<image class="bg" src="@/static/home/home_bg.jpg" mode=""></image>
 			<view class="h1">闃滃畞鏂囦綋涓績</view>
@@ -24,14 +24,15 @@
 	</view>
 </template>
 
-<script>
-	import { logoutPost } from '@/api'
+<script>
+	import {
+		logoutPost
+	} from '@/api'
 	export default {
 		data() {
 			return {
 				userInfo: uni.getStorageSync('userInfo') || {},
-				list1: [
-					{
+				list1: [{
 						name: '鏂板宸ュ崟',
 						url: '/pages/workOrder/edit',
 						img: require('@/static/home/ic_xinzenggongdan@2x.png'),
@@ -74,12 +75,15 @@
 					url: item.url
 				})
 			},
-			loginOut() {
-				logoutPost()
-				this.$store.commit('empty')
-				uni.redirectTo({
-					url: '/pages/login'
-				})
+			loginOut() {
+				logoutPost().then(res => {
+					this.$store.commit('empty')
+					setTimeout(() => {
+						uni.redirectTo({
+							url: '/pages/login'
+						})
+					}, 300)
+				})
 				// window.location.href= 'https://zhcg.fnwtzx.com/fn_h5'
 			},
 
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index 81323ed..b742a89 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -45,7 +45,7 @@
 					code: ''
 				},
 				downTime: 0,
-				code: ''
+				code: '111'
 				// code: ''
 			}
 		},
diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
index 9377ebb..414be7b 100644
--- a/h5/pages/operation/device.vue
+++ b/h5/pages/operation/device.vue
@@ -83,7 +83,8 @@
 	import {
 		uploadUrl,
 		ywDevicePost,
-		ywDeviceCreate
+		ywDeviceCreate,
+		getPointRecordByCode
 	} from '@/api'
 	import dayjs from 'dayjs';
 	import {
@@ -122,7 +123,7 @@
 			},
 			handleP() {
 				const {
-					param,
+					param, 
 					fileList
 				} = this
 				ywDeviceCreate({
@@ -285,8 +286,19 @@
 							},
 							(decodeText, decodeResult) => {
 								if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
-									this.$set(this.param, 'deviceCode', decodeText)
-									this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+									this.$set(this.param, 'deviceCode', decodeText)
+									this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+									getPointRecordByCode({
+										// taskId: this.id,
+										pointCode: decodeText
+									}).then(ress => {
+										if (ress.data) {
+											console.log('ress', ress.data);
+										} else {
+											this.showToast('鏈尮閰嶅埌宸℃鐐�,璇烽噸鏂版壂鎻�')
+										}
+									})
+									
 								}
 							},
 							(err) => {
diff --git a/h5/pages/polling/detail.vue b/h5/pages/polling/detail.vue
index 383395d..45ad7fb 100644
--- a/h5/pages/polling/detail.vue
+++ b/h5/pages/polling/detail.vue
@@ -34,7 +34,10 @@
 				<view class="content">
 					<view class="head">
 						<view>{{item.pointName}}</view>
-						<view class="status" :class="{ gray: item.status == 1 }">{{ item.status == 1 ? '宸插贰妫�' : '寰呭贰妫�' }}</view>
+						<view class="status" :class="{ gray: item.status == 1 }">
+							<image v-if="item.status == 1" src="@/static/plan_ic_finish@2x.png" class="icon" mode=""></image>
+							<text>{{ item.status == 1 ? '宸插贰妫�' : '寰呭贰妫�' }}</text>
+						</view>
 					</view>
 					<template v-if="item.status == 1">
 						<view class="line">
@@ -43,7 +46,10 @@
 						</view>
 						<view class="line">
 							<view class="la">宸℃鏃堕棿锛�</view>
-							<view class="val">{{item.dealDate}}</view>
+							<view class="val">
+								<text>{{item.dealDate}}</text>
+								<text v-if="item.status == 1" class="detail">鏌ョ湅璇︽儏</text>
+							</view>
 						</view>
 					</template>
 					<view class="desc" v-else>{{item.content}}</view>
@@ -100,11 +106,11 @@
 		},
 		onLoad(option) {
 			this.id = option.id
+			// this.getDetail()
+		},
+		onShow() {
 			this.getDetail()
 		},
-		// onShow() {
-		// 	this.getDetail()
-		// },
 		methods: {
 			openSc() {
 				this.isScaning = true;
@@ -164,7 +170,7 @@
 					this.info = res.data
 					let time = new Date(res.data.startDate).getTime()
 					console.log('res.data.startDate', new Date().getTime());
-					this.flag = new Date().getTime() > time
+					this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1)
 				})
 				ywPatrolTaskRecord({
 					capacity: 999,
@@ -268,14 +274,15 @@
 			margin-bottom: 20rpx;
 
 			.la {
-				color: #666666;
+				color: #666666;
+				
 			}
 		}
 
 		.list {
-			height: calc(100vh - 720rpx);
-			overflow: auto;
-
+			height: calc(100vh - 490rpx);
+			overflow: auto;
+			padding-bottom: 160rpx;
 			.item {
 				width: 690rpx;
 				height: 188rpx;
@@ -288,7 +295,18 @@
 				margin-bottom: 20rpx;
 
 				.line {
-					margin-bottom: 10rpx;
+					margin-bottom: 10rpx;
+					width: 100%;
+					.val{
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						flex: 1;
+						.detail{
+							color: $primaryColor;
+							font-size: 26rpx;
+						}
+					}
 				}
 
 				.icon {
@@ -311,9 +329,19 @@
 						margin-bottom: 16rpx;
 
 						.status {
-							offset-anchor: 28rpx;
+							font-size: 28rpx;
 							color: $primaryColor;
-							font-weight: 400;
+							font-weight: 400;
+							display: flex;
+							align-items: center;
+							.icon{
+								width: 40rpx;
+								height: 40rpx;
+								// border-radius: 50%;
+								// overflow: hidden;
+								background: none;
+							}
+							
 						}
 
 						.gray {
diff --git a/h5/pages/polling/point.vue b/h5/pages/polling/point.vue
index 4711fbc..1288d07 100644
--- a/h5/pages/polling/point.vue
+++ b/h5/pages/polling/point.vue
@@ -31,7 +31,7 @@
 					<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
 				</view>
 			</view>
-			<view class="desc">{{ info.dealInfo }}</view>
+			<view v-if="info.dealInfo" class="desc">{{ info.dealInfo }}</view>
 			<view class="line line_s">
 				<view class="la">宸℃浜猴細</view>
 				<view class="val">{{ info.realname }}</view>
@@ -78,11 +78,12 @@
 					</view>
 				</view>
 
-				<view class="label">澶勭悊璇存槑</view>
-				<textarea v-model="handleParam.dealInfo" placeholder="璇峰~鍐欏鐞嗚鏄�" placeholder-class="placeholder9" />
+				<view class="label" style="margin-bottom: 10rpx;">澶勭悊璇存槑</view>
+				<textarea v-model="handleParam.dealInfo" :maxlength="-1" placeholder="璇峰~鍐欏鐞嗚鏄�"
+					placeholder-class="placeholder9" />
 			</view>
 		</view>
-		<view class="sub_btn" @click="onSubmit">纭宸℃</view>
+		<view v-if="info.status == 0" class="sub_btn" @click="onSubmit">纭宸℃</view>
 		<!--  -->
 		<u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
 			<view class="sel_upload_wrap">
@@ -149,34 +150,38 @@
 					fileList,
 					id
 				} = this
-				if (handleParam.dealStatus == 1) {
-					return uni.showModal({
-						title: '娓╅Θ鎻愮ず',
-						content: '宸℃缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟锛�',
-						success: function(res) {
-							if (res.confirm) {
-								patrolData({
-									...handleParam,
-									multifileList: fileList,
-									id,
-								}).then(res => {
-									this.showToast('鎿嶄綔鎴愬姛')
-									uni.navigateBack()
-								})
+				patrolData({
+					...handleParam,
+					multifileList: fileList,
+					id,
+				}).then(res => {
+					if (handleParam.dealStatus == 1) {
+						return uni.showModal({
+							title: '娓╅Θ鎻愮ず',
+							content: '宸℃缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟锛�',
+							success: (res) => {
+								if (res.confirm) {
+									this.showToast('鎿嶄綔鎴愬姛')
+									setTimeout(() => {
+										uni.redirectTo({
+											url: '/pages/workOrder/edit'
+										})
+									}, 300)
+								}else{
+									this.showToast('鎿嶄綔鎴愬姛')
+									setTimeout(() => {
+										uni.navigateBack()
+									}, 300)
+								}
 							}
-						}
-					});
-				} else {
-					patrolData({
-						...handleParam,
-						multifileList: fileList,
-						id,
-					}).then(res => {
+						});
+					} else {
 						this.showToast('鎿嶄綔鎴愬姛')
-						uni.navigateBack()
-					})
-				}
-
+						setTimeout(() => {
+							uni.navigateBack()
+						}, 300)
+					}
+				})
 			},
 			getDetail() {
 				const {
@@ -360,10 +365,11 @@
 	}
 
 	.sub_btn {
-		position: fixed;
-		bottom: 68rpx;
-		left: 40rpx;
+		// position: fixed;
+		// bottom: 68rpx;
+		// left: 40rpx;
 		width: 670rpx;
+		margin-top: 60rpx;
 		height: 88rpx;
 		background: $primaryColor;
 		box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
@@ -417,7 +423,7 @@
 		textarea {
 			box-sizing: border-box;
 			width: 690rpx;
-			min-height: 200rpx;
+			min-height: 140rpx;
 			background-color: #f7f7f7;
 			font-size: 28rpx;
 			color: #333333;
diff --git a/h5/pages/polling/task.vue b/h5/pages/polling/task.vue
index 6ba466e..0e72898 100644
--- a/h5/pages/polling/task.vue
+++ b/h5/pages/polling/task.vue
@@ -44,13 +44,17 @@
 						<view class="line" @click="itemClick(item)">鎵ц鏃堕棿锛歿{ item.startDate.slice(11, 16) }} 鑷� {{ item.endDate.slice(11, 16) }}</view>
 						<view class="line">
 							<view @click="itemClick(item)">瀹屾垚鎯呭喌锛歿{item.finishNum || 0}}/{{item.patrolNum}}</view>
-							<view v-if="param.queryStatus == '0,1'" class="btn" @click="openSc(item)">
+							<view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1)" class="btn" @click="openSc(item)">
 								<image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
 								<view>鎵爜宸℃</view>
 							</view>
 						</view>
 					</view>
 				</view>
+				<view v-if="list.length == 0" class="empty_wrap">
+					<image src="@/static/empty.png" mode=""></image>
+					<view class="">鏆傛棤鏁版嵁</view>
+				</view>
 			</view>
 		</scroll-view>
 
@@ -93,7 +97,9 @@
 				// activeItem: {}
 			};
 		},
-		onLoad() {
+		onShow() {
+			this.page = 1
+			this.list = []
 			this.getList()
 		},
 		methods: {
@@ -184,7 +190,11 @@
 					page,
 					capacity: 10
 				}).then(res => {
-					this.list = [...this.list, ...res.data.records]
+					this.list = [...this.list, ...res.data.records]
+					this.list.forEach(item => {
+					let time = new Date(item.startDate).getTime()
+					item.flag = new Date().getTime() > time
+					})
 					this.total = res.data.total
 				})
 			}
@@ -272,10 +282,11 @@
 	}
 
 	.scroll_Y {
-		height: calc(100vh - 230rpx);
+		height: calc(100vh - 130rpx);
 	}
 
-	.list {
+	.list {
+		
 		.item {
 			display: flex;
 			// height: 290rpx;
diff --git a/h5/pages/workOrder/detail.vue b/h5/pages/workOrder/detail.vue
index f26e85c..c112a22 100644
--- a/h5/pages/workOrder/detail.vue
+++ b/h5/pages/workOrder/detail.vue
@@ -11,7 +11,12 @@
 			<view class="file_list">
 				<view class="file" v-for="(item,index) in info.fileList">
 					<image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
-					<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+					<!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
+					<view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
+						<video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
+							class="video" :enable-progress-gesture="false" autoplay muted />
+						<image src="@/static/play.png" class="play" mode=""></image>
+					</view>
 				</view>
 			</view>
 			<view class="content">
@@ -23,7 +28,7 @@
 					<view class="la">涓婃姤浜猴細</view>
 					<view class="val">{{ info.creatorName }}{{info.creatorCompany ? '-' + info.creatorCompany : ''}}</view>
 				</view>
-				<view class="line"  v-if="info.creatorPhone || info.creatorMobile">
+				<view class="line" v-if="info.creatorPhone || info.creatorMobile">
 					<view class="la">鑱旂郴鐢佃瘽锛�</view>
 					<view class="val">{{ info.creatorMobile || info.creatorPhone }}</view>
 				</view>
@@ -63,7 +68,7 @@
 				<image src="@/static/side/phoneed.png" class="icon"></image>
 				<text>涓婃姤浜�</text>
 			</view>
-			<view class="btn active" @click="isShowHandle = true">鍘诲鐞�</view>
+			<view class="btn active" @click="handleOpen">鍘诲鐞�</view>
 		</view>
 		<!--  -->
 		<u-popup :show="showUpload" @close="showUpload = false" zIndex="10076" closeOnClickOverlay>
@@ -74,8 +79,8 @@
 		</u-popup>
 		<!--  -->
 		<!-- 宸ュ崟澶勭悊 -->
-		<u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable
-			@close="isShowHandle = false">
+		<u-popup :show="isShowHandle" :round="10" :safeAreaInsetTop="true" :safeAreaInsetBottom="true" mode="bottom"
+			closeable @close="isShowHandle = false">
 			<view class="appr_modal">
 				<view class="title">宸ュ崟澶勭悊</view>
 				<view class="df_sb">
@@ -118,13 +123,18 @@
 		<u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
 			@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
 		<!--  -->
+		<view v-if="videoPlay" class="video_app">
+			<video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
+				:src="videoUrl" @fullscreenchange="screenChange"></video>
+			<view class="bg" @click="closeVideo"></view>
+		</view>
 	</view>
 </template>
 
 <script>
 	import {
 		uploadUrl,
-		ywWorkorderD,
+		ywWorkorderD,
 		ywWorkorderDeal
 	} from '@/api'
 	import dayjs from 'dayjs';
@@ -135,10 +145,14 @@
 				info: {},
 				showUpload: false,
 				isShowHandle: false,
-				isShowHandleDate: false,
+				isShowHandleDate: false,
 				userInfo: uni.getStorageSync('userInfo') || {},
 				handleParam: {},
-				dealFileList: []
+				dealFileList: [],
+
+				videoPlay: false,
+				videoContext: null,
+				videoUrl: ''
 			};
 		},
 		onLoad(option) {
@@ -147,25 +161,55 @@
 			this.getDetail()
 		},
 		methods: {
-			onSubmit() {
-				const { handleParam, dealFileList, id } = this
-				if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
-				ywWorkorderDeal({
-					...handleParam,
-					id,
-					dealFileList
-				}).then(res => {
-					if(res.code == 200){
-						this.showToast('鎿嶄綔鎴愬姛')
-						uni.navigateBack()
-					}
+			handleOpen() {
+				this.isShowHandle = true
+				this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
+			},
+			videoClick(item) {
+				this.videoPlay = true;
+				this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶
+				this.videoUrl = item.fileurlFull;
+				this.videoContext.requestFullScreen();
+				this.$nextTick(() => {
+					this.videoContext.play();
 				})
-			},
-			handleCall() {
-				const { info } = this
-				uni.makePhoneCall({
-					phoneNumber: info.creatorMobile
-				});
+			},
+			screenChange(e) {
+				let fullScreen = e.detail.fullScreen // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
+				if (!fullScreen) {
+					//閫�鍑哄叏灞�
+					this.videoPlay = false // 闅愯棌鎾斁鐩掑瓙
+				}
+			},
+			closeVideo() {
+				this.videoPlay = false
+				this.videoContext = null
+			},
+			onSubmit() {
+				const {
+					handleParam,
+					dealFileList,
+					id
+				} = this
+				if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
+				ywWorkorderDeal({
+					...handleParam,
+					id,
+					dealFileList
+				}).then(res => {
+					if (res.code == 200) {
+						this.showToast('鎿嶄綔鎴愬姛')
+						uni.navigateBack()
+					}
+				})
+			},
+			handleCall() {
+				const {
+					info
+				} = this
+				uni.makePhoneCall({
+					phoneNumber: info.creatorMobile
+				});
 			},
 			getDetail() {
 				ywWorkorderD(this.id).then(res => {
@@ -323,7 +367,7 @@
 
 				image,
 				video {
-					width: 156rpx;
+					width: 156rpx;
 					height: 156rpx;
 				}
 			}
@@ -488,28 +532,37 @@
 			display: flex;
 			flex-wrap: wrap;
 			margin-bottom: 30rpx;
+			max-height: 362rpx;
+			overflow-y: auto;
+			margin-right: -30rpx;
 		}
 
 		.adduser_list_item_ipt1_upload {
 			margin-top: 24rpx;
 			width: 156rpx;
 			height: 156rpx;
-			margin-right: 24rpx;
-			border: 2rpx solid #e5e5e5;
+			margin-right: 22rpx;
+			border: 1rpx solid #e5e5e5;
 			background: #f7f7f7;
 			color: #666666;
 			font-size: 22rpx;
+			box-sizing: border-box;
 			display: flex;
 			flex-direction: column;
 			align-items: center;
 			justify-content: center;
 			position: relative;
 
+			&:nth-of-type(4n) {
+				margin-right: 0;
+			}
+
 			.close {
 				position: absolute;
 				right: -20rpx;
 				top: -20rpx;
 				z-index: 9999;
+				background-color: #fff;
 			}
 
 			image {
@@ -523,4 +576,46 @@
 			}
 		}
 	}
+
+	.video_wrap {
+		position: relative;
+		border: 1px solid;
+		width: 156rpx;
+		height: 156rpx;
+		border-radius: 4rpx;
+
+		.play {
+			width: 60rpx !important;
+			height: 60rpx !important;
+			position: absolute;
+			top: 50%;
+			left: 50%;
+			transform: translate(-50%, -50%);
+		}
+	}
+
+	.video_app {
+		overflow: hidden;
+		position: fixed;
+		left: 0;
+		top: 0;
+		width: 100vw;
+		height: 100vh;
+		display: flex;
+		align-items: center;
+		z-index: 9990;
+
+		.bg {
+			background-color: rgba(0, 0, 0, .6);
+			position: absolute;
+			width: 100%;
+			height: 100%;
+			z-index: -1;
+		}
+
+		video {
+			width: 100%;
+			height: 42vh;
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/h5/pages/workOrder/edit.vue b/h5/pages/workOrder/edit.vue
index 3e0c34d..ff72df9 100644
--- a/h5/pages/workOrder/edit.vue
+++ b/h5/pages/workOrder/edit.vue
@@ -51,7 +51,7 @@
 						<u-icon class="close" size="20" name="close-circle-fill" color="red"
 							@click="fileDel('fileList', i)"></u-icon>
 						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
-						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+						<video v-if="item.type == 1" :show-center-play-btn="false" :src="item.fileurlFull" :controls="false"></video>
 					</view>
 				</view>
 			</view>
@@ -116,7 +116,7 @@
 				showCate2: false,
 				areaType: [
 					[{
-							name: '瀹ゅ唴瑁呬慨',
+							name: '瀹ゅ唴缁翠慨',
 							id: 0
 						},
 						{
@@ -431,7 +431,10 @@
 					position: absolute;
 					right: -20rpx;
 					top: -20rpx;
-					z-index: 9999;
+					z-index: 9999;
+					background-color: #fff;
+					border-radius: 50%;
+					overflow: hidden;
 				}
 
 				image {
diff --git a/h5/pages/workOrder/list.vue b/h5/pages/workOrder/list.vue
index 2da419f..7d8e1d2 100644
--- a/h5/pages/workOrder/list.vue
+++ b/h5/pages/workOrder/list.vue
@@ -32,7 +32,7 @@
 		<scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
 			<view class="list">
 				<view class="item" v-for="item in list" @click="itemClick(item)">
-					<image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
+					<image v-if="item.dealStatus == 0 || item.dealStatus == 1" src="@/static/side/workordered.png" class="icon"></image>
 					<image v-else src="@/static/side/workorder.png" class="icon"></image>
 					<view class="content">
 						<view class="name_wrap line">
@@ -216,7 +216,7 @@
 
 	}
 	.scroll_Y{
-		height: calc(100vh - 320rpx);
+		height: calc(100vh - 250rpx);
 	}
 	.list {
 		.item {
@@ -224,7 +224,7 @@
 			// height: 290rpx;
 			padding: 30rpx 0;
 			border-bottom: 2rpx solid #E5E5E5;
-
+		
 			.icon {
 				width: 80rpx;
 				height: 80rpx;
diff --git a/h5/static/plan_ic_finish@2x.png b/h5/static/plan_ic_finish@2x.png
new file mode 100644
index 0000000..01fafcc
--- /dev/null
+++ b/h5/static/plan_ic_finish@2x.png
Binary files differ
diff --git a/h5/static/play.png b/h5/static/play.png
new file mode 100644
index 0000000..1b4b225
--- /dev/null
+++ b/h5/static/play.png
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 450773b..49ff135 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,6 +1,6 @@
- // export const baseUrl = 'gateway_interface/'
+ export const baseUrl = 'gateway_interface/'
 // export const baseUrl = 'http://192.168.0.173/gateway_interface/'
-export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
+// export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
 
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`

--
Gitblit v1.9.3