From deb2a67c1a9824b288ce4a7a228347ffd60964fe Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 24 九月 2024 18:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/platform/LogisticsRecord/waybill.vue                                                                      |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java |   29 
 admin/src/views/statistics/platformRecord.vue                                                                             |  147 +-
 admin/src/views/platform/components/PlatformQueuing.vue                                                                   |   77 +
 admin/src/api/platform/index.js                                                                                           |    6 
 admin/src/views/platform/LogisticsRecord/leaveAuth.vue                                                                    |    9 
 admin/src/views/platform/LogisticsRecord/operationCity.vue                                                                |    3 
 h5/pages/driver/reserved.vue                                                                                              |   16 
 admin/src/views/index.vue                                                                                                 |   97 +
 admin/src/api/workbench/index.js                                                                                          |    2 
 pda/pages/index/queueup.vue                                                                                               |    3 
 h5/pages/staff/task/driver.vue                                                                                            |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java            |   17 
 admin/.env.test                                                                                                           |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                |    9 
 admin/src/views/platform/index.vue                                                                                        |  268 ++---
 admin/src/components/common/CommonHeader.vue                                                                              |   16 
 pda/pages/index/center.vue                                                                                                | 1707 ++++++++++++++++++++--------------------
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                    |   16 
 admin/src/views/platform/LogisticsRecord/operation.vue                                                                    |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java                      |   13 
 22 files changed, 1,260 insertions(+), 1,199 deletions(-)

diff --git a/admin/.env.test b/admin/.env.test
index 87a902c..0e7cb4a 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -1,4 +1,4 @@
 # 娴嬭瘯鐜閰嶇疆
 NODE_ENV = 'production'
 
-VUE_APP_API_URL  = 'http://10.50.250.178:8088/gateway_interface/'
+VUE_APP_API_URL  = 'http://192.168.5.13/gateway_interface'
diff --git a/admin/src/api/platform/index.js b/admin/src/api/platform/index.js
index a047f80..f799f80 100644
--- a/admin/src/api/platform/index.js
+++ b/admin/src/api/platform/index.js
@@ -8,7 +8,11 @@
 export function platformCallList(data) {
   return request.post('/visitsAdmin/cloudService/business/platform/platformCallList', data)
 }
-// 鍙彿
+//  鍏ュ洯鍙彿
+export function platformInPark(data) {
+  return request.post('/visitsAdmin/cloudService/business/platform/platformInPark', data)
+}
+// 鏈堝彴鍙彿
 export function platformCallNumber(data) {
   return request.post('/visitsAdmin/cloudService/business/platform/platformCallNumber', data)
 }
diff --git a/admin/src/api/workbench/index.js b/admin/src/api/workbench/index.js
index c0efa78..815b79b 100644
--- a/admin/src/api/workbench/index.js
+++ b/admin/src/api/workbench/index.js
@@ -2,7 +2,7 @@
 
 // 椤堕儴瀵艰埅
 export function getAppHeaderNav (data) {
-  return request.get('/visitsAdmin/cloudService/business/hksync/getHkMenuLink', data)
+  return request.get('/visitsAdmin/cloudService/business/hksync/getHkMenuLink?type='+ data)
 }
 // 涓讳綋鏁版嵁
 export function getWorkbenchBody (data) {
diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 39799db..cc86262 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -8,10 +8,10 @@
             <div>鏈嶅姟涓績</div>
             <div class="linellae"></div>
           </div>
-          <div class="item" @click="getHeaderNav('')">瀹夐槻涓績</div>
-          <div class="item" @click="getHeaderNav('')">娑堥槻涓績</div>
-          <div class="item" @click="getHeaderNav('')">鑳界涓績</div>
-          <div class="item" @click="getHeaderNav('')">椹鹃┒鑸�</div>
+          <div class="item" @click="getHeaderNav('0')">瀹夐槻涓績</div>
+          <div class="item" @click="getHeaderNav('1')">娑堥槻涓績</div>
+          <div class="item" @click="getHeaderNav('2')">鑳界涓績</div>
+          <div class="item" @click="getHeaderNav('3')">椹鹃┒鑸�</div>
         </div>
         <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> -->
       </div>
@@ -155,11 +155,9 @@
         this.$refs.changePwdDataForm.resetFields()
       })
     },
-    getHeaderNav(){
-      getAppHeaderNav({
-        type: ''
-      }).then(res => {
-        this.headerNavData = res
+    getHeaderNav(type){
+      getAppHeaderNav(type).then(res => {
+        window.open(res, "_blank");
       })
     },
     // 纭畾淇敼瀵嗙爜
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index a391765..2fbeab3 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -65,7 +65,7 @@
         <div class="funcs">
           <div class="home_title">甯哥敤鍔熻兘</div>
           <div class="list">
-            <div v-for="item in funcList" :key="item.name" class="item">
+            <div v-for="item in funcList" @click="funcClick(item)" :key="item.name" class="item">
               <img class="mb10" :src="item.url" alt="" />
               <div>{{ item.name }}</div>
             </div>
@@ -227,47 +227,56 @@
 import { weeks } from '@/utils/config'
 import {
   getWorkbenchBody,
-  getWorkbenchHead
+  getWorkbenchHead,
+  getAppHeaderNav
 } from '@/api'
 const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
 export default {
-  data () {
+  data() {
     return {
       colors,
       nowDate: '',
       nowWeek: '',
       funcList: [
-        { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png') },
-        { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png') },
-        { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png') },
+        { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png'), path: '/business/reportRecord' },
+        { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png'), path: '/operation/danger/record' },
+        { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png'), path: '/meeting/bookings' },
         { name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') }
       ]
     }
   },
   computed: {
-    userInfo(){
+    userInfo() {
       return this.$store.state.userInfo
     }
   },
-  created () {
-
+  created() {
     this.updateDate()
     setInterval(() => {
       this.updateDate()
     }, 1000 * 60 * 60)
   },
-  mounted () {
+  mounted() {
     this.initData()
   },
   methods: {
-    updateDate () {
+    funcClick(item) {
+      if (item.name == '鑰冨嫟宸ヤ綔鍙�') {
+        getAppHeaderNav(4).then(res => {
+          window.open(res, "_blank")
+          return
+        })
+      }
+      this.$router.push(item.path)
+    },
+    updateDate() {
       this.nowDate = dayjs().format('YYYY骞碝鏈圖鏃�')
       this.nowWeek = weeks[new Date().getDay()]
     },
-    initData () {
+    initData() {
       this.getWorkBody() //涓讳綋鏁版嵁
       this.getWorkHead() //涓讳綋鏁版嵁
-      
+
       this.initEchart1()
       this.initEchart2()
       this.initEchart3()
@@ -279,7 +288,7 @@
     getWorkHead() {
       getWorkbenchHead()
     },
-    initEchart1 () {
+    initEchart1() {
       const myChart = echarts.init(document.getElementById('echart1'))
       const option = {
         series: [
@@ -307,7 +316,7 @@
         myChart.resize()
       })
     },
-    initEchart2 () {
+    initEchart2() {
       const myChart = echarts.init(document.getElementById('echart2'))
       myChart.setOption({
         grid: {
@@ -362,7 +371,7 @@
         myChart.resize()
       })
     },
-    initEchart3 () {
+    initEchart3() {
       const myChart = echarts.init(document.getElementById('echart3'))
       myChart.setOption({
         tooltip: {
@@ -461,7 +470,7 @@
         myChart.resize()
       })
     },
-    initEchart4 () {
+    initEchart4() {
       const myChart = echarts.init(document.getElementById('echart4'))
       myChart.setOption({
         tooltip: {
@@ -568,23 +577,28 @@
 div {
   box-sizing: border-box;
 }
+
 .home_title {
   font-weight: 600;
   font-size: 16px;
   color: #222222;
   line-height: 22px;
 }
+
 .main {
   display: flex;
   position: relative;
   z-index: 99;
+
   .app_content {
     flex: 1;
+
     .static_card {
       height: 187px;
       color: #fff;
       display: flex;
       justify-content: space-between;
+
       .card {
         flex: 1;
         height: 187px;
@@ -592,16 +606,20 @@
         box-shadow: 0px 2px 10px 0px rgba(32, 127, 247, 0.4);
         border-radius: 8px;
         margin-right: 14px;
+
         &:nth-of-type(2) {
           background: linear-gradient(270deg, #8383ff 0%, #6b6eff 100%);
         }
+
         &:nth-of-type(3) {
           background: linear-gradient(270deg, #42d49d 0%, #12bb8b 100%);
         }
+
         &:nth-of-type(4) {
           margin-right: 0;
           background: linear-gradient(270deg, #30d3de 0%, #04b7cd 100%);
         }
+
         .header {
           height: 103px;
           display: flex;
@@ -609,16 +627,19 @@
           align-items: center;
           padding: 20px 20px 12px;
           border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+
           img {
             width: 40px;
             height: 40px;
           }
+
           .num {
             font-weight: 600;
             font-size: 30px;
             margin-top: 12px;
           }
         }
+
         .content {
           height: 82px;
           display: flex;
@@ -629,20 +650,25 @@
         }
       }
     }
+
     .funcs {
       height: 149px;
       padding: 20px;
       background: #fff;
       margin: 10px 0;
+
       .list {
         display: flex;
         padding-top: 20px;
+
         .item {
           display: flex;
           flex-direction: column;
           align-items: center;
           justify-content: center;
           margin-right: 24px;
+          cursor: pointer;
+
           img {
             width: 44px;
             height: 44px;
@@ -651,9 +677,11 @@
       }
     }
   }
+
   .app_side {
     width: 408px;
     margin-left: 10px;
+
     .task {
       background: #fff;
       border-radius: 2px;
@@ -661,6 +689,7 @@
       padding: 20px;
       height: 346px;
       margin-bottom: 10px;
+
       .header {
         .num {
           position: relative;
@@ -675,27 +704,33 @@
           border-radius: 8px;
           margin-left: 13px;
         }
+
         .more {
           font-size: 13px;
           color: #999999;
         }
       }
+
       .list {
         .item {
           display: flex;
           align-items: center;
           margin-top: 15px;
+
           .content {
             flex: 1;
+
             .title {
               color: #222222;
               margin-bottom: 5px;
             }
+
             .time {
               color: #999999;
               font-size: 12px;
             }
           }
+
           .btn {
             margin-left: 10px;
             width: 58px;
@@ -711,12 +746,14 @@
         }
       }
     }
+
     .warnning {
       background: #fff;
       border-radius: 2px;
       border: 1px solid #eeeeee;
       padding: 20px;
       height: 508px;
+
       .header {
         .num {
           position: relative;
@@ -731,13 +768,16 @@
           border-radius: 8px;
           margin-left: 13px;
         }
+
         .more {
           font-size: 13px;
           color: #999999;
         }
       }
+
       .list {
         padding-top: 6px;
+
         .item {
           margin-top: 10px;
           padding: 15px;
@@ -745,29 +785,35 @@
           height: 140px;
           background: rgba(32, 127, 247, 0.05);
           border-radius: 4px;
+
           .name_wrap {
             margin-bottom: 10px;
+
             .name {
               font-weight: 600;
               color: #222222;
             }
+
             .identity {
               font-size: 13px;
               color: #207ff7;
             }
           }
+
           .line {
             color: #666666;
             margin-bottom: 8px;
             font-size: 13px;
           }
+
           .auth {
             .time {
               font-weight: 600;
               font-size: 13px;
               color: #ee3821;
             }
-            .btn{
+
+            .btn {
               margin-left: 10px;
               width: 58px;
               text-align: center;
@@ -784,6 +830,7 @@
       }
     }
   }
+
   .static_wrap {
     .wrap {
       background: #fff;
@@ -792,30 +839,37 @@
       border: 1px solid #eeeeee;
       height: 250px;
       flex: 1;
+
       &:nth-of-type(2n) {
         margin-left: 10px;
       }
+
       .echart {
         width: 100%;
         height: 190px;
       }
+
       .header {
         display: flex;
         justify-content: space-between;
         align-items: center;
+
         .more {
           font-size: 13px;
           color: #999999;
         }
       }
     }
+
     .static1 {
       .content {
         display: flex;
         justify-content: center;
         align-items: center;
+
         .echart_wrap {
           position: relative;
+
           .pie_text {
             position: absolute;
             left: 50%;
@@ -824,16 +878,20 @@
             z-index: 999;
           }
         }
+
         .echart {
           width: 150px;
           height: 150px;
         }
+
         .list {
           margin-left: 36px;
+
           .item {
             display: flex;
             align-items: center;
             margin: 8px 0;
+
             .icon {
               width: 16px;
               height: 16px;
@@ -841,6 +899,7 @@
               margin-right: 6px;
               background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%);
             }
+
             .text {
               margin-right: 6px;
             }
@@ -850,6 +909,7 @@
     }
   }
 }
+
 .main_home {
   background: #f4f7fc;
   position: relative;
@@ -858,6 +918,7 @@
   overflow: auto;
   padding: 20px;
   padding-top: 92px;
+
   .home_header {
     position: absolute;
     top: 0;
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 116e23f..efacbd1 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -47,7 +47,7 @@
       <el-table-column label="鎿嶄綔" align="center" fixed="right" min-width="100" show-overflow-tooltip>
         <template v-slot="scope">
           <el-button type="text" v-permissions="['business:platformbooks:detail']"
-            @click="handleAuth(scope.row)">绂昏繙鎺堟潈</el-button>
+            @click="handleAuth(scope.row)">绂诲洯鎺堟潈</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -171,12 +171,11 @@
       })
     },
     handleAuth(row) {
-      this.$confirm('鏄惁瀵瑰綋鍓嶈繍鍗曠殑杞﹁締杩涜绂诲洯鎺堟潈锛屾槸鍒欒繘琛岀鍥巿鏉冿紵', '鎻愮ず', {
+      this.$prompt('澶囨敞', '绂诲洯鎺堟潈', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        platformPowerLevel({ jobId: row.id }).then(res => {
+      }).then(({ remark }) => {
+        platformPowerLevel({ jobId: row.id,remark }).then(res => {
           Message.success('绂诲洯鎺堟潈鎴愬姛')
           this.getList()
         })
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
index e06226e..95dd8c5 100644
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ b/admin/src/views/platform/LogisticsRecord/operation.vue
@@ -55,6 +55,8 @@
 import UploadFaceImg from '@/components/common/UploadFaceImg'
 import { Message } from 'element-ui'
 import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
 export default {
   components: {
     Pagination,
@@ -146,6 +148,7 @@
         this.list.forEach(item => {
           item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
           item.taskOrigin = 'WMS鑾峰彇'
+          item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
         })
         this.pagination.total = res.total || 0
       }, () => {
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 0fbb43c..a2017c6 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -56,6 +56,8 @@
 import UploadFaceImg from '@/components/common/UploadFaceImg'
 import { Message } from 'element-ui'
 import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
 export default {
   components: {
     Pagination,
@@ -147,6 +149,7 @@
         this.list.forEach(item => {
           item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
           item.taskOrigin = 'WMS鑾峰彇'
+          item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
         })
         this.pagination.total = res.total || 0
       }, () => {
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index a65fc5a..a86666b 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -39,10 +39,10 @@
       </el-table-column>
       <el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip>
         <template v-slot="scope">
-          <el-button type="text" class="red" v-permissions="['business:platformjob:delete']"
+          <el-button v-if="scope.row.status == '12'" type="text" class="red" v-permissions="['business:platformjob:delete']"
             @click="handleDel(scope.row)">鍒犻櫎</el-button>
-          <el-button type="text" v-permissions="['business:platformjob:query']"
-            @click="handleDetail(scope.row)">棰勭害璇︽儏</el-button>
+          <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
+            @click="handleDetail(scope.row)">杩愬崟璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -143,8 +143,8 @@
         model: {
           ...filters,
           jobType: '0',
-          beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
-          beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
+          createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
+          createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
         },
         capacity: pagination.pageSize,
         page: page || pagination.page,
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
index d32f32e..c175a11 100644
--- a/admin/src/views/platform/components/PlatformQueuing.vue
+++ b/admin/src/views/platform/components/PlatformQueuing.vue
@@ -1,18 +1,10 @@
 <template>
-  <GlobalWindow
-    :title="'鏈堝彴鍙彿-'+title"
-    :visible.sync="isShowModal"
-    :showConfirm="false"
-    width="800px"
-  >
+  <GlobalWindow :title="callType == 1 ? '鍙彿鍏ュ洯-' + title : '鏈堝彴鍙彿-' + title" :visible.sync="isShowModal"
+    :showConfirm="false" width="800px">
     <div class="queuing_modal">
       <div class="df_ac mb20">
         <span>鎼滅储杞﹁締锛�</span>
-        <el-input
-          class="flex1 mr20"
-          v-model="carCodeFront"
-          placeholder="璇疯緭鍏ヨ溅鐗屽彿"
-        ></el-input>
+        <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
         <el-button type="primary" @click="getList">鏌ユ壘</el-button>
         <el-button @click="reset">閲嶇疆</el-button>
       </div>
@@ -34,7 +26,7 @@
             </div>
             <div v-else class="ite">
               <span>杩愯緭鍗曞彿锛�</span>
-              <span>{{ item.code }}</span>
+              <span>{{ item.billCode }}</span>
             </div>
             <div class="ite">
               <span>椹鹃┒鍛橈細</span>
@@ -60,11 +52,7 @@
           </div>
         </div>
       </div>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="pagination"
-      >
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
       </pagination>
     </div>
   </GlobalWindow>
@@ -73,7 +61,7 @@
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
 import Pagination from '@/components/common/Pagination'
-import { platformCallList, platformCallNumber } from '@/api'
+import { platformCallList, platformCallNumber, platformInPark } from '@/api'
 import { statusMap } from '../config'
 import { Message } from 'element-ui'
 export default {
@@ -81,7 +69,7 @@
     GlobalWindow,
     Pagination
   },
-  data () {
+  data() {
     return {
       statusMap,
       isShowModal: false,
@@ -93,24 +81,35 @@
       },
       carCodeFront: '',
       title: '',
+      callType: '1',
       activePlat: {},
       dataList: []
 
     }
   },
   methods: {
-    handleCall (item) {
-      const activePlatform = this.activePlat
-      platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
-        Message.success('鍙彿鎴愬姛')
-        this.$emit('success')
-        this.getList()
-      })
+    handleCall(item) {
+      const { activePlat, callType } = this
+      if (callType == 1) { // 鍏ュ洯鍙彿
+        platformInPark({
+          jobId: item.id,
+          platformId: activePlat.id
+        }).then(() => {
+          Message.success('鍙彿鎴愬姛')
+          this.getList()
+        })
+      } else {
+        platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => {
+          Message.success('鍙彿鎴愬姛')
+          this.$emit('success')
+          this.getList()
+        })
+      }
     },
-    getList () {
-      const { activePlat, pagination, carCodeFront } = this
+    getList() {
+      const { activePlat, pagination, carCodeFront, callType } = this
       platformCallList({
-        model: { callType: '2', platformId: activePlat.id, carCodeFront },
+        model: { callType, platformId: activePlat.id, carCodeFront },
         page: pagination.page,
         capacity: pagination.pageSize
       }).then(res => {
@@ -118,21 +117,21 @@
         this.pagination.total = res.total
       })
     },
-    reset () {
+    reset() {
       this.carCodeFront = ''
       this.pagination.page = 1
       this.pagination.pageSize = 10
       this.getList()
     },
-    handleSizeChange (e) {
+    handleSizeChange(e) {
       this.pagination.pageSize = e
       this.getList()
     },
-    handlePageChange (e) {
+    handlePageChange(e) {
       this.pagination.page = e
       this.getList()
     },
-    handleSub () {
+    handleSub() {
       const { param } = this
       this.subLoading = true
       PlatformEdit({
@@ -153,8 +152,10 @@
 
 <style lang="scss" scoped>
 @import "@/assets/style/variables.scss";
+
 .queuing_modal {
   padding: 10px 30px;
+
   .list {
     .item {
       background: #f4fafb;
@@ -162,8 +163,10 @@
       border: 1px solid #dfe2e8;
       margin-bottom: 10px;
       padding: 16px;
+
       .head {
         margin-bottom: 15px;
+
         .plate {
           width: 90px;
           text-align: center;
@@ -174,9 +177,11 @@
           border: 1px solid #279baa;
           background-color: #fff;
         }
+
         .status {
           color: $primaryColor;
         }
+
         .code {
           display: flex;
           font-weight: 600;
@@ -188,24 +193,29 @@
           border-radius: 4px;
           border: 1px solid $primaryColor;
           padding-right: 4px;
+
           span {
             &:nth-of-type(1) {
               background: $primaryColor;
               padding: 0 8px;
               color: #fff;
             }
+
             &:nth-of-type(2) {
               padding-left: 4px;
             }
           }
         }
       }
+
       .info {
         display: flex;
         flex-wrap: wrap;
+
         .ite {
           width: 33.3%;
           margin-bottom: 8px;
+
           span {
             &:nth-child(1) {
               color: #666666;
@@ -213,6 +223,7 @@
           }
         }
       }
+
       .footer {
         .detail {
           color: $primaryColor;
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index 052788a..890d23c 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -2,13 +2,8 @@
   <div class="main_app">
     <div class="mb20 main_header">
       <div class="platgroup_tabs">
-        <div
-          class="tab"
-          :class="{ active: activeGroup.id === item.id }"
-          @click="platgroupClick(item)"
-          v-for="(item, i) in PlatGroupList"
-          :key="i"
-        >
+        <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)"
+          v-for="(item, i) in PlatGroupList" :key="i">
           {{ item.name }}
         </div>
         <!-- <el-tabs v-model="activeGroup.id" @tab-click="platgroupClick">
@@ -20,9 +15,7 @@
           />
         </el-tabs> -->
       </div>
-      <el-button type="primary" class="ml20" @click="handleSet"
-        >閰嶇疆鏈堝彴</el-button
-      >
+      <el-button type="primary" class="ml20" @click="handleSet">閰嶇疆鏈堝彴</el-button>
     </div>
     <!--  -->
     <div v-if="activeGroup.platformList" class="platform_list">
@@ -34,38 +27,23 @@
             </div>
             <div class="name">{{ item.name }}</div>
             <div class="ite">
-              <span class="placeholder9">浣滀笟锛�</span
-              ><span>{{ item.platformWorkVO.workNum }}</span>
+              <span class="placeholder9">浣滀笟锛�</span><span>{{ item.platformWorkVO.workNum }}</span>
             </div>
             <div class="ite">
-              <span class="placeholder9">宸插彨锛�</span
-              ><span>{{ item.platformWorkVO.callNum }}</span>
+              <span class="placeholder9">宸插彨锛�</span><span>{{ item.platformWorkVO.callNum }}</span>
             </div>
             <div class="ite">
-              <span class="placeholder9">绛夊緟锛�</span
-              ><span>{{ item.platformWorkVO.waitNum }}</span>
+              <span class="placeholder9">绛夊緟锛�</span><span>{{ item.platformWorkVO.waitNum }}</span>
             </div>
             <div class="ite">
-              <span class="placeholder9">寮傚父锛�</span
-              ><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
+              <span class="placeholder9">寮傚父锛�</span><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
             </div>
           </div>
-          <el-button type="primary" @click="handleQueuing(item)">
-            <div class="df_ac">
-              <img class="shengyin" src="@/assets/icons/shengyin.png" alt="">
-              <span>鍙彿</span>
-            </div>
-          </el-button>
+          <el-button @click="handleQueuing(item, 1)">鍙彿鍏ュ洯</el-button>
+          <el-button type="primary" @click="handleQueuing(item, 2)">鏈堝彴鍙彿</el-button>
         </div>
-        <div
-          class="list"
-          v-if="item.platformWorkVO && item.platformWorkVO.platformJobList"
-        >
-          <div
-            class="info"
-            v-for="task in item.platformWorkVO.platformJobList"
-            :key="task.id"
-          >
+        <div class="list" v-if="item.platformWorkVO && item.platformWorkVO.platformJobList">
+          <div class="info" :class="{err: task.status == 8}" v-for="task in item.platformWorkVO.platformJobList" :key="task.id">
             <div class="line">
               <div class="left">
                 <div v-if="task.carCodeFront" class="code">
@@ -76,18 +54,14 @@
                 </div>
               </div>
               <div class="right">
-                <div
-                  class="status"
-                  v-if="task.status != 4 && task.status != 5"
-                  :class="{ red: task.status == 8 }"
-                >
+                <div class="status_item" v-if="task.status != 4 && task.status != 5" :class="{ red: task.status == 8 }">
                   <span class="lab">{{ statusMap[task.status] }}</span>
                 </div>
-                <div class="status" v-if="task.status == 4">
+                <div class="status_item" v-if="task.status == 4">
                   <span class="lab">鍙彿涓�</span> {{ task.callDateTemp }}
                 </div>
-                <div class="status scs" v-if="task.status == 5">
-                  <span class="lab">宸蹭綔涓�</span> {{ task.startDateTemp }}
+                <div class="status_item scs" v-if="task.status == 5">
+                  <span class="lab">浣滀笟涓�</span> {{ task.startDateTemp }}
                 </div>
               </div>
             </div>
@@ -98,13 +72,13 @@
               </div>
               <div v-else class="ite">
                 <span>杩愯緭鍗曞彿锛�</span>
-                <span>{{ task.code }}</span>
+                <span>{{ task.billCode }}</span>
               </div>
-              <div class="ite">
+              <div class="ite siji">
                 <span>椹鹃┒鍛橈細</span>
                 <span>{{ task.driverName }}</span>
               </div>
-              <div class="ite">
+              <div class="ite phone">
                 <span>鎵嬫満鍙凤細</span>
                 <span>{{ task.drivierPhone }}</span>
               </div>
@@ -120,66 +94,38 @@
             </div>
             <div class="line">
               <div v-if="task.type != 4" class="left">
-                <span class="primaryColor pointer" @click="handleDetail"
-                  >杩愬崟璇︽儏</span
-                >
+                <span class="primaryColor pointer" @click="handleDetail">杩愬崟璇︽儏</span>
               </div>
               <div v-else></div>
               <div class="right">
-                <el-button
-                  v-if="task.status == 5"
-                  plain
-                  @click="handleErr(task)"
-                  >寮傚父鎸傝捣</el-button
-                >
-                <el-button
-                  v-if="task.status == 5 || task.status == 8"
-                  plain
-                  @click="handleTransform(item, task)"
-                  >杞Щ鏈堝彴</el-button
-                >
-                <el-button
-                  v-if="task.status == 4"
-                  plain
-                  @click="handlePass(task)"
-                  >杩囧彿</el-button
-                >
-                <el-button
-                  v-if="task.status == 5 || task.status == 8"
-                  type="primary"
-                  @click="handleFinish(task)"
-                  >浣滀笟瀹屾垚</el-button
-                >
-                <el-button
-                  v-if="task.status == 4"
-                  type="primary"
-                  @click="handleWork(task)"
-                  >寮�濮嬩綔涓�</el-button
-                >
+                <el-button v-if="task.status == 5" plain @click="handleErr(task)">寮傚父鎸傝捣</el-button>
+                <el-button v-if="task.status == 5 || task.status == 8" plain
+                  @click="handleTransform(item, task)">杞Щ鏈堝彴</el-button>
+                <el-button v-if="task.status == 4" plain @click="handlePass(task)">杩囧彿</el-button>
+                <el-button v-if="task.status == 5 || task.status == 8" type="primary"
+                  @click="handleFinish(task)">浣滀笟瀹屾垚</el-button>
+                <el-button v-if="task.status == 4" type="primary" @click="handleWork(task)">寮�濮嬩綔涓�</el-button>
               </div>
             </div>
           </div>
         </div>
-        <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0" class="empty_plat">
+        <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0"
+          class="empty_plat">
           <img src="@/assets/images/default_nodata.png" alt="">
           <div>鏆傛棤杞﹁締</div>
         </div>
       </div>
     </div>
     <!-- 閰嶇疆鏄剧ず鏈堝彴 -->
-    <GlobalWindow
-      title="閰嶇疆鏄剧ず鏈堝彴"
-      :visible.sync="isShowSet"
-      :confirm-working="setLoading"
-      @confirm="handleSetSub"
-      width="560px"
-    >
+    <GlobalWindow title="閰嶇疆鏄剧ず鏈堝彴" :visible.sync="isShowSet" :confirm-working="setLoading" @confirm="handleSetSub"
+      width="560px">
       <div class="set_modal">
         <div class="mb10" v-for="group in PlatGroupList" :key="group.id">
-          <div class="title">{{group.name}}</div>
+          <div class="title">{{ group.name }}</div>
           <div class="list">
-            <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }" v-for="item in group.platformList" :key="item.id">
-              <div>{{item.name}}</div>
+            <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }"
+              v-for="item in group.platformList" :key="item.id">
+              <div>{{ item.name }}</div>
               <div v-if="item.showConfig" class="bg"></div>
               <i v-if="item.showConfig" class="el-icon-check scs"></i>
             </div>
@@ -190,33 +136,14 @@
     <!-- 杩愬崟璇︽儏 -->
     <!--  -->
     <!-- 鍙彿 -->
-    <PlatformQueuing
-      ref="PlatformQueuingRef"
-      v-if="isShowQueuing"
-      @success="getPlatGroupList"
-      @close="isShowQueuing = false"
-    />
-    <WaybillDetail
-      ref="WaybillDetailRef"
-      v-if="isShowDetail"
-      @success="getList"
-      @close="isShowDetail = false"
-    />
-    <el-dialog
-      title="杞Щ鏈堝彴"
-      :visible.sync="isShowTransform"
-      width="500px"
-      style="margin-top: 12vh"
-    >
+    <PlatformQueuing ref="PlatformQueuingRef" v-if="isShowQueuing" @success="getPlatGroupList"
+      @close="isShowQueuing = false" />
+    <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
+    <el-dialog title="杞Щ鏈堝彴" :visible.sync="isShowTransform" width="500px" style="margin-top: 12vh">
       <div class="df_ac">
         <span>閫夋嫨杞Щ鍒扮殑鏈堝彴锛�</span>
         <el-select v-model="activePlatId">
-          <el-option
-            v-for="item in activeGroup.platformList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          >
+          <el-option v-for="item in activeGroup.platformList" :key="item.id" :label="item.name" :value="item.id">
           </el-option>
         </el-select>
       </div>
@@ -254,7 +181,7 @@
     WaybillDetail,
     GlobalWindow
   },
-  data () {
+  data() {
     return {
       statusMap,
       activeGroup: {},
@@ -275,29 +202,29 @@
       timer: null
     }
   },
-  created () {
+  created() {
     this.getPlatGroupList()
     // this.getList()
   },
   methods: {
-    handleWork (item) {
+    handleWork(item) {
       platformBeginWork({ jobId: item.id }).then(res => {
         Message.success('宸插紑濮嬩綔涓�')
         this.getPlatGroupList()
       })
     },
-    handleFinish (item) {
+    handleFinish(item) {
       platformFinishWork({ jobId: item.id }).then(res => {
         Message.success('瀹屾垚浣滀笟')
         this.getPlatGroupList()
       })
     },
-    handleTransform (item, task) {
+    handleTransform(item, task) {
       this.activePlatId = item.id
       this.activetaskId = task.id
       this.isShowTransform = true
     },
-    transformSub () {
+    transformSub() {
       const { activePlatId, activetaskId } = this
       platformMove({ platformId: activePlatId, jobId: activetaskId }).then(res => {
         Message.success('杞Щ鏈堝彴鎴愬姛')
@@ -305,8 +232,8 @@
         this.getPlatGroupList()
       })
     },
-    handlePass (item) {
-      this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�', '娓╅Θ鎻愮ず', {
+    handlePass(item) {
+      this.$confirm(`纭 ${item.carCodeFront}缃负杩囧彿鍚楋紵杩囧彿鍚庯紝闇�瑕侀噸鏂扮鍒版墠鑳借繘鍏ュ洯鍖篳, '娓╅Θ鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
@@ -317,7 +244,7 @@
         })
       })
     },
-    handleErr (item) {
+    handleErr(item) {
       this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�', '娓╅Θ鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
@@ -329,14 +256,14 @@
         })
       })
     },
-    platgroupClick (item) {
+    platgroupClick(item) {
       this.activeGroup = { ...item }
       this.circulInitTaskList()
       this.timer = setInterval(() => {
         this.circulInitTaskList()
       }, 1000)
     },
-    getPlatGroupList () {
+    getPlatGroupList() {
       getPlatformGroupList({
         queryData: 1,
         queryType: 1
@@ -355,7 +282,7 @@
         }
       })
     },
-    circulInitTaskList () {
+    circulInitTaskList() {
       if (this.activeGroup && this.activeGroup.platformList && this.activeGroup.platformList.length > 0) {
         const time = new Date()
         this.activeGroup.platformList.forEach(plat => {
@@ -383,31 +310,32 @@
         this.$forceUpdate()
       }
     },
-    handleQueuing (item) {
+    handleQueuing(item, callType) {
       this.isShowQueuing = true
       this.$nextTick(() => {
         this.$refs.PlatformQueuingRef.isShowModal = true
+        this.$refs.PlatformQueuingRef.callType = callType
         this.$refs.PlatformQueuingRef.activePlat = { ...item }
         this.$refs.PlatformQueuingRef.getList()
         this.$refs.PlatformQueuingRef.title = item.name
       })
     },
-    handleDetail () {
+    handleDetail() {
       this.isShowDetail = true
       this.$nextTick(() => {
         this.$refs.WaybillDetailRef.isShowModal = true
       })
     },
-    getList () {
+    getList() {
       const { groupId } = this
       listByGroupId(groupId).then(res => {
         this.platList = res
       })
     },
-    handleSet () {
+    handleSet() {
       this.isShowSet = true
     },
-    handleSetSub () {
+    handleSetSub() {
       const { PlatGroupList } = this
       const ids = []
       PlatGroupList.forEach(item => {
@@ -427,7 +355,7 @@
         this.setLoading = false
       })
     },
-    platformSetClick (id) {
+    platformSetClick(id) {
       const { PlatGroupList } = this
       PlatGroupList.forEach(item => {
         item.platformList.forEach(platform => {
@@ -443,8 +371,10 @@
 
 <style lang="scss" scoped>
 @import "@/assets/style/variables.scss";
+
 .platform_list {
   width: 100%;
+
   .item {
     /* padding: 16px 24px; */
     background: #ffffff;
@@ -452,27 +382,32 @@
     border: 1px solid #dfe2e8;
     margin-bottom: 12px;
     width: 100%;
+
     .head {
       display: flex;
       justify-content: space-between;
       align-items: center;
       height: 50px;
-      background: linear-gradient( 270deg, #FFFFFF 0%, #EBF6F7 100%);
+      background: linear-gradient(270deg, #FFFFFF 0%, #EBF6F7 100%);
       border-radius: 2px 2px 0px 0px;
       padding: 0 20px;
-      .shengyin{
+
+      .shengyin {
         width: 12px;
         height: 12px;
         margin-right: 3px;
       }
+
       .left {
         flex: 1;
         display: flex;
         align-items: center;
+
         .name {
           font-size: 16px;
           margin-right: 50px;
         }
+
         .status {
           line-height: 25px;
           height: 25px;
@@ -481,18 +416,19 @@
           color: #ffffff;
           padding: 0 6px;
         }
+
         .ite {
           margin-right: 30px;
         }
       }
     }
+
     .list {
       display: flex;
       flex-wrap: wrap;
-      justify-content: space-between;
       margin-top: 10px;
       padding: 16px;
-      width: calc( 100% - 48px );
+      width: calc(100% - 0);
       .info {
         background: #f4fafb;
         border-radius: 2px;
@@ -500,23 +436,41 @@
         padding: 16px;
         border-radius: 2px;
         margin-bottom: 10px;
-        width: calc( 31.6% - 16px );
-        .status {
+        width: calc(31.6% - 22px);
+        margin-right: 10px;
+
+        &:nth-of-type(3n) {
+          margin-right: 0;
+        }
+
+        .status_item {
           .lab {
             font-weight: 500;
           }
+
           color: #00ba67;
         }
+
         .line {
           display: flex;
           align-items: center;
           justify-content: space-between;
           flex-wrap: wrap;
           margin-bottom: 6px;
+
           .ite {
             width: 33.3%;
             margin-top: 8px;
           }
+
+          .siji {
+            width: 29%;
+          }
+
+          .phone {
+            width: 37.6%;
+          }
+
           .left {
             .code {
               display: flex;
@@ -529,18 +483,21 @@
               border-radius: 4px;
               border: 1px solid $primaryColor;
               padding-right: 4px;
+
               span {
                 &:nth-of-type(1) {
                   background: $primaryColor;
                   padding: 0 8px;
                   color: #fff;
                 }
+
                 &:nth-of-type(2) {
                   padding-left: 4px;
                 }
               }
             }
           }
+
           .right {
             display: flex;
             align-items: center;
@@ -549,18 +506,22 @@
       }
       .jobing {
         background: #effbf5;
+
         .status {
           color: #00ba67;
         }
       }
+
       .err {
         background: #fef6f6;
+
         .status {
           color: #ed4545;
         }
       }
     }
-    .empty_plat{
+
+    .empty_plat {
       width: 100%;
       height: 170px;
       display: flex;
@@ -569,27 +530,33 @@
       align-items: center;
       font-size: 12px;
       color: #B2B2B2;
-      img{
+
+      img {
         width: 110px;
       }
     }
   }
-  .emyty{
-    .head{
-      background: linear-gradient( 270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
+
+  .emyty {
+    .head {
+      background: linear-gradient(270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
     }
-    .status{
+
+    .status {
       background: #CCCCCC !important;
     }
   }
 }
+
 .main_header {
   display: flex;
   position: relative;
+
   .platgroup_tabs {
     flex: 1;
     display: flex;
     border-bottom: 1px solid #dfe2e8;
+
     .tab {
       color: #666666;
       margin-right: 40px;
@@ -597,6 +564,7 @@
       padding-bottom: 18px;
       border-bottom: 2px solid #fff;
     }
+
     .active {
       font-weight: 500;
       font-size: 15px;
@@ -604,6 +572,7 @@
       border-bottom: 2px solid $primary-color;
     }
   }
+
   .ml20 {
     position: absolute;
     width: 120px;
@@ -612,6 +581,7 @@
     top: -4px;
   }
 }
+
 /*  */
 .set_modal {
   .title {
@@ -619,9 +589,11 @@
     font-weight: 600;
     margin-bottom: 16px;
   }
+
   .list {
     display: flex;
     flex-wrap: wrap;
+
     .item {
       cursor: pointer;
       padding: 0 36px;
@@ -635,7 +607,8 @@
       margin-right: 13px;
       position: relative;
       overflow: hidden;
-      .bg{
+
+      .bg {
         position: absolute;
         right: -12px;
         bottom: -12px;
@@ -644,22 +617,25 @@
         background: $primaryColor;
         transform: rotate(45deg);
       }
-      .scs{
+
+      .scs {
         position: absolute;
         right: -1px;
         bottom: -1px;
         color: #fff;
         z-index: 99999;
-        transform:scale(.8)
+        transform: scale(.8)
       }
     }
+
     .active {
-      background: rgba(39,155,170,0.06);
+      background: rgba(39, 155, 170, 0.06);
       border: 1px solid $primaryColor;
       color: $primaryColor;
     }
   }
 }
+
 /*  */
 /*  */
 </style>
diff --git a/admin/src/views/statistics/platformRecord.vue b/admin/src/views/statistics/platformRecord.vue
index 4053fb3..a7edbbe 100644
--- a/admin/src/views/statistics/platformRecord.vue
+++ b/admin/src/views/statistics/platformRecord.vue
@@ -1,82 +1,45 @@
 <template>
   <div class="main_app">
-    <QueryForm
-      v-model="filters"
-      :query-form-config="queryFormConfig"
-      @handleQuery="getList(1)"
-      @clear="clear"
-    />
+    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
     <el-table v-loading="loading" :data="list" stripe>
-      <el-table-column
-        prop="name"
-        label="鏈堝彴鍚嶇О"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="鏈堝彴缁�"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="杞﹀墠鐗岀収鍙�"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="杞﹀悗鐗岀収鍙�"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="浣滀笟寮�濮�"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="浣滀笟缁撴潫"
-        min-width="100"
-        show-overflow-tooltip
-      />
-      <el-table-column
-        prop="name"
-        label="浣滀笟鏃堕暱"
-        min-width="100"
-        show-overflow-tooltip
-      /><el-table-column
-        prop="name"
-        label="杩愯緭鍗曞彿/鍚堝悓鍙�"
-        min-width="100"
-        show-overflow-tooltip
-      />
+      <el-table-column prop="platformName" label="鏈堝彴鍚嶇О" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="platformGroupName" label="鏈堝彴缁�" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="carCodeFront" label="杞﹀墠鐗岀収鍙�" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="carCodeBack" label="杞﹀悗鐗岀収鍙�" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="startDate" label="浣滀笟寮�濮�" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="doneDate" label="浣滀笟缁撴潫" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip /><el-table-column prop="name"
+        label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="100" show-overflow-tooltip>
+        <template v-slot="scope">
+          <span>{{ scope.row.billCode || scope.row.contractNum }}</span>
+        </template>
+      </el-table-column>
     </el-table>
-    <pagination
-      @size-change="handleSizeChange"
-      @current-change="getList"
-      :pagination="pagination"
-    />
+    <div class="mt20">
+      <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
+    </div>
   </div>
 </template>
 
 <script>
 import Pagination from '@/components/common/Pagination'
 import QueryForm from '@/components/common/QueryForm'
+import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration);
+import { platformJobPage, getPlatformGroupList } from '@/api'
 export default {
   components: {
     Pagination,
     QueryForm
   },
-  data () {
+  data() {
     return {
       loading: false,
       pagination: {
-        capacity: 10,
-        page: 1
+        pageSize: 10,
+        page: 1,
+        total: 0
       },
       filters: {},
       list: [],
@@ -84,18 +47,18 @@
       queryFormConfig: {
         formItems: [
           {
-            filed: 'aaaa',
+            filed: 'platformName',
             type: 'input',
             label: '鏈堝彴鍚嶇О'
           },
           {
-            filed: 'bbb',
+            filed: 'platformGroupId',
             type: 'select',
             label: '鏈堝彴缁�',
             options: []
           },
           {
-            filed: 'aaaa',
+            filed: 'carCodeFront',
             type: 'input',
             label: '杞︾墝鍙�'
           },
@@ -109,22 +72,64 @@
       }
     }
   },
+  created() {
+    this.getList()
+    this.getGroupList()
+  },
   methods: {
-    handleSub () {
+    handleSub() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
           alert('submit!')
         }
       })
     },
-    getList (page) { },
-    clear () { },
-    handleSizeChange (capacity) {
-      this.pagination.capacity = capacity
+    getGroupList() {
+      getPlatformGroupList({queryData: 0,queryType: 0}).then(res => {
+        this.queryFormConfig.formItems[1].options = res.map(i => {
+          return {
+            value: i.id,
+            label: i.name
+          }
+        })
+      })
+    },
+    getList(page) {
+      const { pagination, filters } = this
+      this.loading = true
+      platformJobPage({
+        model: {
+          ...filters,
+          queryStatus: '5,6,9,10',
+          beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
+          beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
+        },
+        capacity: pagination.pageSize,
+        page: page || pagination.page,
+      }).then(res => {
+        this.loading = false
+        this.list = res.records || []
+        this.list.forEach(item => {
+          item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'
+          item.taskOrigin = 'WMS鑾峰彇'
+          item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�');
+        })
+        this.pagination.total = res.total || 0
+      }, () => {
+        this.loading = false
+      })
+    },
+    clear() {
+      this.filters = {}
+      this.pagination.pageSize = 10
+      this.pagination.page = 1
+      this.getList()
+    },
+    handleSizeChange(capacity) {
+      this.pagination.pageSize = capacity
     }
   }
 }
 </script>
 
-<style>
-</style>
+<style></style>
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index 0683f0f..90f4ccd 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -7,8 +7,8 @@
 					<text>*</text>
 					<text>鍏ュ洯鍘熷洜</text>
 				</view>
-				<view class="value" @click="showReason = true">
-					<text class="mr6" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
+				<view class="value" @click="reasonClick">
+					<text class="mr6" :class="{gray: param.id}" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
 				</view>
 			</view>
@@ -105,7 +105,8 @@
 		</view>
 		
 		<!--  -->
-		<u-picker :show="showReason" keyName="reason" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
+		<u-picker :show="showReason" keyName="reason" closeOnClickOverlay @close="showReason = false"
+			@cancel="showReason = false" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
 		<u-datetime-picker
 			:show="showDatetime"
 			closeOnClickOverlay
@@ -149,6 +150,12 @@
 		this.initData()
 	},
 	methods: {
+		reasonClick() {
+			if(this.param.id){
+				return
+			}
+			this.showReason = true
+		},
 		onSubmit() {
 			const param = { ...this.param }
 			if (!param.arriveDate) return this.showToast('璇烽�夋嫨鍒板満鏃堕棿')
@@ -297,6 +304,9 @@
 			display: flex;
 			align-items: center;
 			justify-content: flex-end;
+			.gray{
+				color: #999999 !important;
+			}
 			.btns {
 				display: flex;
 				align-items: center;
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index d6c5060..421cfdd 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -2,7 +2,7 @@
   <view class="main_app">
     <view class="status_wrap">
       <view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
-      <view class="desc">{{info.carCodeFront}}</view>
+      <view class="gray">{{info.carCodeFront}}</view>
 			<view class="desc" :class="{
 			    gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
 			  }">{{ infoStatus }}</view>
@@ -425,14 +425,15 @@
       margin-bottom: 20rpx;
       color: #222222;
     }
-
+		
     .desc {
       font-size: 26rpx;
-      color: #999999;
+      color: #ed4545;
 			margin-bottom: 12rpx;
     }
 		.gray {
 			color: #999999;
+			margin-bottom: 12rpx;
 		}
 
     .status {
diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index a1aaff3..a528592 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -1,858 +1,851 @@
-<template>
-  <view class="main_app">
-    <view class="main_content">
-      <view class="title" @click="showPlatformgroup = true"
-        >{{ activePlatformGroup.name
-        }}<u-icon
-          name="arrow-down"
-          size="20"
-          class="ml12"
-          color="#999999"
-        ></u-icon
-      ></view>
-      <view class="platform_list">
-        <view
-          class="item"
-          :class="{ active: item.id === activePlatform.id }"
-          v-for="(item, index) in activePlatformGroup.platformList"
-          :key="index"
-          @click="platformClick(item)"
-          >{{ item.name }}</view
-        >
-      </view>
-      <view class="status_wrap">
-        <view class="status"
-          >浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view
-        >
-        <view class="status"
-          >宸插彨锛�<text>{{ platformTaskInfo.callNum }}</text></view
-        >
-        <view class="status"
-          >绛夊緟锛�<text>{{ platformTaskInfo.waitNum }}</text></view
-        >
-        <view class="status"
-          >寮傚父锛�<text>{{ platformTaskInfo.exceptionNum }}</text></view
-        >
-      </view>
-    </view>
-    <!--  -->
-    <view style="padding-bottom: 140rpx">
-      <view
-        v-for="item in platformTaskInfo.platformJobList"
-        :key="item.id"
-        class="platform_ing"
-      >
-        <view class="head">
-          <view class="code">
-            <text>{{ item.carCodeFront.slice(0, 1) }}</text>
-            <text>{{ item.carCodeFront.slice(1, 2) }}</text>
-            <text>路</text>
-            <text>{{ item.carCodeFront.slice(2) }}</text>
-          </view>
-          <view
-            class="status"
-            v-if="item.status != 4 && item.status != 5"
-            :class="{ red: item.status == 8 }"
-            >{{ statusMap[item.status] }}</view
-          >
-          <view class="status" v-if="item.status == 4"
-            >鍙彿涓� {{ item.callDateTemp }}</view
-          >
-          <view class="status scs" v-if="item.status == 5"
-            >宸蹭綔涓� {{ item.startDateTemp }}</view
-          >
-        </view>
-        <view class="line" v-if="item.type == 4">
-          <text class="label">鍚堝悓鍗曞彿</text>
-          <text class="value">{{ item.contractNum }}</text>
-        </view>
-        <view class="line" v-else>
-          <text class="label">杩愯緭鍗曞彿</text>
-          <text class="value">{{ item.code }}</text>
-          <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
-        </view>
-        <view class="line">
-          <text class="label">椹鹃┒鍛�</text>
-          <text class="value"
-            >{{ item.driverName }} {{ item.drivierPhone }}</text
-          >
-        </view>
-        <view class="line">
-          <text class="label">鎬昏繍杈撻噺</text>
-          <text class="value">{{ item.totalNum }}涓囨敮</text>
-        </view>
-        <view class="line" v-if="item.type != 4">
-          <text class="label">杩愯緭鍏徃</text>
-          <text class="value">{{ item.carrierName }}</text>
-        </view>
-        <view class="btns">
-          <view v-if="item.status == 4" class="btn" @click="handlePass(item)"
-            >杩囧彿</view
-          >
-          <view
-            v-if="item.status == 4"
-            class="btn active"
-            @click="handleWork(item)"
-            >寮�濮嬩綔涓�</view
-          >
-
-          <view v-if="item.status == 5" class="btn" @click="handleErr(item)"
-            >寮傚父鎸傝捣</view
-          >
-          <view
-            v-if="item.status == 5 || item.status == 8"
-            class="btn"
-            @click="handleTransform(item)"
-            >杞Щ鏈堝彴</view
-          >
-          <view
-            v-if="item.status == 5 || item.status == 8"
-            class="btn active"
-            @click="handleFinish(item)"
-            >浣滀笟瀹屾垚</view
-          >
-        </view>
-      </view>
-      <view v-if="!platformTaskInfo.platformJobList || platformTaskInfo.platformJobList.length == 0" class="empty_wrap">
-        <image src="@/static/default_nodata@2x.png" />
-        <text>鏆傛棤浣滀笟杞﹁締</text>
-      </view>
-    </view>
-    <!--  -->
-    <view class="main_footer">
-      <view class="btn" @click="PlatformCallClick(1)">鍏ュ洯鍙彿</view>
-      <view class="btn active" @click="PlatformCallClick(2)">鏈堝彴鍙彿</view>
-    </view>
-    <!-- 鍙彿 -->
-    <u-popup
-      :show="showPlatformCall"
-      closeable
-      safeAreaInsetTop
-      round="10"
-      @close="showPlatformCall = false"
-    >
-      <view
-        class="PlatformCallModal"
-        :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
-      >
-        <view class="title" v-if="callType == 2"
-          >鏈堝彴鍙彿({{ activePlatform.name }})</view
-        >
-        <view class="title" v-else>鍏ュ洯鍙彿</view>
-        <view class="input_wrap">
-          <u-icon name="search" class="mr12" size="19" color="#999999" />
-          <input
-            v-model="platformCallSearch"
-            type="text"
-            placeholder="鎼滅储杞﹁締鐗岀収"
-            placeholder-class="placeholder9"
-            @confirm="callQuery"
-          />
-        </view>
-        <view class="order_list">
-          <scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
-            <view
-              class="platform_ing"
-              v-for="item in platformCallList"
-              :key="item.id"
-            >
-              <view class="head">
-                <view v-if="item.carCodeFront" class="code">
-                  <text>{{ item.carCodeFront.slice(0, 1) }}</text>
-                  <text>{{ item.carCodeFront.slice(1, 2) }}</text>
-                  <text>路</text>
-                  <text>{{ item.carCodeFront.slice(2) }}</text>
-                </view>
-                <view class="status" :class="{ scs: item.status == 4 }">{{
-                  statusMap[item.status]
-                }}</view>
-              </view>
-              <view class="line" v-if="item.type == 4">
-                <text class="label">鍚堝悓鍗曞彿</text>
-                <text class="value">{{ item.contractNum }}</text>
-              </view>
-              <view class="line" v-else>
-                <text class="label">杩愯緭鍗曞彿</text>
-                <text class="value">{{ item.code }}</text>
-                <text class="primaryColor" @click="handleDetail()"
-                  >杩愬崟璇︽儏</text
-                >
-              </view>
-              <view class="line">
-                <text class="label">椹鹃┒鍛�</text>
-                <text class="value"
-                  >{{ item.driverName }} {{ item.drivierPhone }}</text
-                >
-              </view>
-              <view class="line">
-                <text class="label">鎬昏繍杈撻噺</text>
-                <text class="value">{{ item.totalNum }}涓囨敮</text>
-              </view>
-              <view class="line" v-if="item.type != 4">
-                <text class="label">杩愯緭鍏徃</text>
-                <text class="value">{{ item.carrierName }}</text>
-              </view>
-              <view class="btns">
-                <view class="btn active" @click="handleCall(item)">鍙彿</view>
-              </view>
-            </view>
-          </scroll-view>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 杩愬崟璇︽儏 -->
-    <u-popup
-      :show="showDetail"
-      closeable
-      safeAreaInsetTop
-      round="10"
-      @close="showDetail = false"
-    >
-      <view
-        class="PlatformCallModal"
-        :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
-      >
-        <view class="title">杩愬崟璇︽儏</view>
-        <view class="platform_ing" style="padding: 0">
-          <view class="head">
-            <view class="code">
-              <text>鐨�</text>
-              <text>AD1212</text>
-            </view>
-          </view>
-          <view class="line">
-            <text class="label">杩愯緭鍗曞彿</text>
-            <text class="value">11111</text>
-          </view>
-          <view class="line">
-            <text class="label">椹鹃┒鍛�</text>
-            <text class="value">11111</text>
-          </view>
-          <view class="line">
-            <text class="label">鎬昏繍杈撻噺</text>
-            <text class="value">11111</text>
-          </view>
-          <view class="line">
-            <text class="label">杩愯緭鍏徃</text>
-            <text class="value">11111</text>
-          </view>
-        </view>
-        <view class="detail_list">
-          <view class="item">
-            <view class="orderId">鍚堝悓缂栧彿锛歿{ 111 }}</view>
-            <view class="addr">鏀惰揣鍦帮細{{ 111 }}</view>
-            <view class="content">
-              <view class="line"
-                ><view class="label">鐗╂枡锛�</view
-                ><view class="value">榛勫北</view></view
-              >
-              <view class="line"
-                ><view class="label">鏁伴噺锛�</view
-                ><view class="value">榛勫北</view></view
-              >
-              <view class="line"
-                ><view class="label">鐗╂枡锛�</view
-                ><view class="value">榛勫北</view></view
-              >
-              <view class="line"
-                ><view class="label">鏁伴噺锛�</view
-                ><view class="value">榛勫北</view></view
-              >
-            </view>
-          </view>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 杞Щ鏈堝彴 -->
-    <u-popup
-      :show="showTransform"
-      closeable
-      safeAreaInsetTop
-      round="10"
-      @close="showTransform = false"
-    >
-      <view class="TransformModal">
-        <view class="title">杞Щ鏈堝彴</view>
-        <view class="transform_list">
-          <view
-            class="line"
-            @click="transformPlatClick(item)"
-            v-for="item in activePlatformGroup.platformList"
-            :key="item.id"
-          >
-            <view class="name">{{ item.name }}</view>
-            <view class="status" :class="{ green: item.workStatus == 1 }"
-              >({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})</view
-            >
-            <image
-              v-if="transformPlatId == item.id"
-              src="@/static/ic_select@2x.png"
-              class="checked"
-            />
-          </view>
-        </view>
-        <view class="btns">
-          <view class="btn" @click="transformCancel">鍙栨秷</view>
-          <view class="btn active" @click="transformSub">纭畾</view>
-        </view>
-      </view>
-    </u-popup>
-    <!--  -->
-    <u-picker
-      :show="showPlatformgroup"
-      keyName="name"
-      :columns="[platformGroupList]"
-      @cancel="showPlatformgroup = false"
-      @confirm="platConfirm"
-    ></u-picker>
-  </view>
-</template>
-
-<script>
-import {
-  getPlatformGroupList,
-  getPlatformWorkData,
-  platformCallList,
-  platformCallNumber,
-  platformInPark,
-  beginWork,
-  finishWork,
-  platformMove,
-  platformErr,
-  platformOverNumber
-} from '@/api'
-import { statusMap } from '@/utils/config.js'
-import dayjs from 'dayjs'
-import duration from 'dayjs/plugin/duration'
-dayjs.extend(duration)
-
-export default {
-  data() {
-    return {
-      statusMap,
-      windowTop: 44,
-      showPlatformCall: false, // 鏈堝彴鍙彿
-      showDetail: false,
-      showTransform: false, // 杞Щ
-      showPlatformgroup: false,
-
-      platformGroupList: [],
-      activePlatformGroup: {},
-      platformTaskInfo: {},
-      activePlatform: {},
-
-      platformCallList: [],//鍙彿鍒楄〃
-      platformCallSearch: '',
-      platformCallTotal: 0,
-      platformCallPage: 1,
-      callType: 1,
-
-      transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
-      transformId: '', // 杞Щ璁板綍浠诲姟id
-    }
-  },
-  onLoad() {
-    this.getPlatformGroup()
-    const res = uni.getWindowInfo()
-    this.windowTop = res.windowTop
-  },
-  methods: {
-    getPlatformGroup() {
-      getPlatformGroupList({
-        queryData: 1,
-        queryType: 0
-      }).then(res => {
-        this.platformGroupList = res.data || []
-        if (this.platformGroupList.length > 0) {
-          this.activePlatformGroup = this.platformGroupList[0]
-          if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
-            this.activePlatform = this.activePlatformGroup.platformList[0]
-            this.getPlatformTask()
-          }
-        }
-      })
-    },
-    getPlatformTask() {
-      getPlatformWorkData({ platformId: this.activePlatform.id }).then(res => {
-        this.platformTaskInfo = res.data
-        this.circulInitTaskList()
-        setInterval(() => {
-          this.circulInitTaskList()
-        }, 1000)
-      })
-    },
-    circulInitTaskList() {
-      if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList.length > 0) {
-        let time = new Date()
-        this.platformTaskInfo.platformJobList.forEach(item => {
-          if (item.callDate) {
-            let timeNum = time.getTime() - new Date(item.callDate).getTime()
-            if (timeNum > 3600000) {
-              item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
-            } else {
-              item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
-            }
-          }
-          if (item.startDate) {
-            let timeNum = time.getTime() - new Date(item.startDate).getTime()
-            if (timeNum > 3600000) {
-              item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
-            } else {
-              item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
-            }
-          }
-        })
-        this.$forceUpdate()
-      }
-    },
-    platConfirm(e) {
-      const index = e.indexs[0]
-      this.activePlatformGroup = this.platformGroupList[index]
-      if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
-        this.activePlatform = this.activePlatformGroup.platformList[0]
-        this.getPlatformTask()
-      }
-      this.showPlatformgroup = false
-    },
-    platformClick(item) {
-      this.activePlatform = item
-      this.getPlatformTask()
-    },
-    handleDetail() {
-      this.showDetail = true
-    },
-    handleFinish(item) {
-      finishWork({ jobId: item.id }).then(res => {
-        this.showToast('瀹屾垚浣滀笟')
-        this.getPlatformTask()
-      })
-    },
-    handleWork(item) { // 寮�濮嬩綔涓�
-      beginWork({ jobId: item.id }).then(res => {
-        this.showToast('宸插紑濮嬩綔涓�')
-        this.getPlatformTask()
-      })
-    },
-    handlePass(item) {
-      uni.showModal({
-        content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�',
-        success: (res) => {
-          if (res.confirm) {
-            platformOverNumber({ jobId: item.id, platformId: this.activePlatform.id }).then(res => {
-              this.showToast('杩囧彿鎴愬姛')
-              this.getPlatformTask()
-            })
-          }
-        }
-      })
-
-    },
-    handleCall(item) {
-      const { callType, activePlatform } = this
-      this.platformCallList = []
-      this.platformCallPage = 1
-      if (callType == 1) { // 鍏ュ洯鍙彿
-        platformInPark({ jobId: item.id }).then(res => {
-          this.showToast('鍙彿鎴愬姛')
-          this.getPlatformCallList()
-        })
-      } else { // 鏈堝彴鍙彿
-        platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
-          this.showToast('鍙彿鎴愬姛')
-          this.getPlatformCallList()
-          this.getPlatformTask()
-        })
-      }
-    },
-    PlatformCallClick(callType) {
-      this.callType = callType
-      this.showPlatformCall = true
-      this.platformCallList = []
-      this.platformCallPage = 1
-      this.platformCallSearch = ''
-      this.getPlatformCallList()
-    },
-    callQuery() {
-      this.platformCallList = []
-      this.platformCallPage = 1
-      this.getPlatformCallList()
-    },
-    callScrolltolower() {
-      const { platformCallTotal, platformCallList } = this
-      if(platformCallTotal > platformCallList.length){
-        this.getPlatformCallList()
-      }
-    },
-    getPlatformCallList() {
-      const { platformCallPage, callType, activePlatform, platformCallSearch } = this
-      platformCallList({
-        model: { callType, platformId: activePlatform.id, carCodeFront: platformCallSearch },
-        capacity: 10,
-        page: platformCallPage
-      }).then(res => {
-        if (res.data && res.data.records) {
-          this.platformCallList = [ ...this.platformCallList, ...res.data.records]
-          this.platformCallTotal = res.data.total
-        }
-      })
-    },
-    transformPlatClick(item) {
-      this.transformPlatId = item.id
-    },
-    transformCancel() {
-      this.transformPlatId = ''
-      this.showTransform = false
-    },
-    transformSub() {
-      const { transformPlatId, transformId } = this
-      platformMove({ platformId: transformPlatId, jobId: transformId }).then(res => {
-        this.showToast('杞Щ鏈堝彴鎴愬姛')
-        this.transformCancel()
-        this.getPlatformTask()
-      })
-    },
-    handleTransform(item) {
-      let { activePlatform } = this
-      this.transformId = item.id
-      this.transformPlatId = activePlatform.id
-      this.showTransform = true
-    },
-    handleErr(item) {
-      uni.showModal({
-        content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�',
-        success: (res) => {
-          if (res.confirm) {
-            platformErr({ jobId: item.id }).then(ress => {
-              this.showToast('寮傚父鎸傝捣鎴愬姛')
-              this.getPlatformTask()
-            })
-          }
-        }
-      })
-    }
-  }
-}
-</script>
-<style lang="scss">
-.main_app {
-  padding: 0rpx;
-  height: calc(100vh - 44px);
-  font-size: 30rpx;
-  color: #333333;
-  background: url("@/static/bg_yuetai@2x.png") no-repeat;
-  background-size: 100% 100%;
-  .main_content {
-    background-color: #fff;
-    padding: 30rpx;
-    .platform_list {
-      display: flex;
-      flex-wrap: wrap;
-      .item {
-        width: 210rpx;
-        height: 80rpx;
-        line-height: 80rpx;
-        text-align: center;
-        background: #ffffff;
-        border-radius: 8rpx;
-        border: 1rpx solid #999999;
-        font-size: 30rpx;
-        color: #222222;
-        margin-bottom: 20rpx;
-        margin-right: 30rpx;
-        &:nth-of-type(3n) {
-          margin-right: 0;
-        }
-      }
-      .active {
-        color: #fff;
-        background-color: $uni-color-primary;
-        border-color: $uni-color-primary;
-      }
-    }
-    .status_wrap {
-      display: flex;
-      align-items: center;
-      justify-content: space-evenly;
-      width: 690rpx;
-      height: 76rpx;
-      margin-top: 4rpx;
-      background: #ffffff;
-      box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.18);
-      border-radius: 8rpx;
-      .status {
-        color: #666666;
-        text {
-          color: #111111;
-        }
-        &:nth-last-child(1) {
-          text {
-            color: #ed4545;
-          }
-        }
-      }
-    }
-    .title {
-      font-weight: 500;
-      font-size: 32rpx;
-      color: #111111;
-      line-height: 44rpx;
-      margin-bottom: 30rpx;
-      display: flex;
-      justify-content: center;
-    }
-  }
-  .platform_ing {
-    margin-top: 20rpx;
-    padding: 30rpx;
-    background-color: #fff;
-    .head {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      margin-bottom: 30rpx;
-      .code {
-        display: flex;
-        font-weight: 600;
-        height: 60rpx;
-        line-height: 60rpx;
-        font-size: 32rpx;
-        color: #111111;
-        border-radius: 8rpx;
-        border: 1rpx solid #dfdede;
-        text {
-          &:nth-of-type(1) {
-            background: #e9f5f6;
-            padding: 0 12rpx;
-          }
-          &:nth-of-type(2) {
-            padding-left: 4rpx;
-          }
-          &:nth-of-type(4) {
-            padding-right: 6rpx;
-          }
-        }
-      }
-      .status {
-        font-size: 30rpx;
-        color: $uni-color-primary;
-      }
-      .scs {
-        color: #00ba67;
-      }
-    }
-    .line {
-      display: flex;
-      margin-bottom: 20rpx;
-      .label {
-        width: 144rpx;
-        color: #666666;
-      }
-      .value {
-        flex: 1;
-      }
-    }
-    .btns {
-      display: flex;
-      justify-content: flex-end;
-      .btn {
-        width: 210rpx;
-        height: 76rpx;
-        line-height: 76rpx;
-        text-align: center;
-        background: #ffffff;
-        border-radius: 40rpx;
-        border: 1rpx solid #999999;
-        margin-left: 20rpx;
-      }
-      .active {
-        background-color: $uni-color-primary;
-        color: #fff;
-        border-color: $uni-color-primary;
-      }
-    }
-  }
-  .empty {
-    width: 220rpx;
-    margin: 160rpx auto;
-  }
-  .main_footer {
-    width: 750rpx;
-    height: 136rpx;
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    padding: 24rpx 30rpx;
-    display: flex;
-    justify-content: space-between;
-    font-size: 32rpx;
-    background-color: #fff;
-    .btn {
-      width: 224rpx;
-      height: 88rpx;
-      line-height: 88rpx;
-      text-align: center;
-      background: #ffffff;
-      border-radius: 44rpx;
-      color: $uni-color-primary;
-      border: 1rpx solid $uni-color-primary;
-    }
-    .active {
-      width: 436rpx;
-      background-color: $uni-color-primary;
-      color: #fff;
-      border-color: $uni-color-primary;
-    }
-  }
-}
-.PlatformCallModal {
-  height: calc(100vh - 44px);
-  padding: 30rpx;
-  .title {
-    text-align: center;
-    margin: 0 0 30rpx;
-  }
-  .input_wrap {
-    display: flex;
-    align-items: center;
-    width: 690rpx;
-    height: 76rpx;
-    background: #f7f7f7;
-    border-radius: 38rpx;
-    padding: 0 30rpx;
-  }
-  .order_list {
-    height: calc(100% - 140rpx);
-    .scroll_view {
-      height: 100%;
-    }
-    .platform_ing {
-      border-radius: 8rpx;
-      border: 1rpx solid #dfe2e8;
-    }
-  }
-  .detail_list {
-    border-top: 1rpx solid #e5e5e5;
-    padding: 30rpx 0;
-    .orderId {
-      font-size: 30rpx;
-      color: $uni-color-primary;
-      margin-bottom: 14rpx;
-    }
-    .addr {
-      font-size: 26rpx;
-      color: #666666;
-      margin-bottom: 20rpx;
-    }
-    .content {
-      width: 100%;
-      padding: 20rpx;
-      background: #f7f7f7;
-      border-radius: 8rpx;
-      .line {
-        display: flex;
-        margin-bottom: 20rpx;
-        &:nth-of-type(2n) {
-          padding-bottom: 20rpx;
-          border-bottom: 1rpx solid #e5e5e5;
-        }
-        &:last-child {
-          padding-bottom: 0rpx;
-          border-bottom: none;
-        }
-        .label {
-          font-size: 28rpx;
-          color: #666666;
-          width: 88rpx;
-        }
-        .value {
-          font-size: 28rpx;
-          color: #222222;
-        }
-      }
-    }
-  }
-  .btns {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    .btn {
-      width: 336rpx;
-      height: 88rpx;
-      border-radius: 44rpx;
-      border: 1rpx solid $uni-color-primary;
-      color: $uni-color-primary;
-      font-size: 32rpx;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-    }
-    .active {
-      color: #fff;
-      background-color: $uni-color-primary;
-    }
-  }
-}
-.TransformModal {
-  height: 900rpx;
-  padding: 30rpx;
-  position: relative;
-  .title {
-    text-align: center;
-    margin: 0 0 30rpx;
-  }
-  .btns {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    position: absolute;
-    z-index: 999;
-    left: 30rpx;
-    bottom: 30rpx;
-    .btn {
-      width: 336rpx;
-      height: 88rpx;
-      border-radius: 44rpx;
-      border: 1rpx solid $uni-color-primary;
-      color: $uni-color-primary;
-      font-size: 32rpx;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-    }
-    .active {
-      color: #fff;
-      margin-left: 18rpx;
-      background-color: $uni-color-primary;
-    }
-  }
-  .transform_list {
-    height: 660rpx;
-    margin-bottom: 30rpx;
-    overflow: auto;
-    .line {
-      display: flex;
-      align-items: center;
-      border-bottom: 1rpx solid #e5e5e5;
-      padding-bottom: 30rpx;
-      margin-bottom: 30rpx;
-      .name {
-        font-size: 32rpx;
-        color: #111111;
-      }
-      .status {
-        flex: 1;
-        font-size: 28rpx;
-        color: $uni-color-primary;
-        margin-left: 12rpx;
-      }
-      .green {
-        color: #00ba67;
-      }
-      .checked {
-        width: 40rpx;
-        height: 40rpx;
-      }
-    }
-  }
-}
+<template>
+	<view class="main_app">
+		<view class="main_content">
+			<view class="title" @click="showPlatformgroup = true">{{ activePlatformGroup.name
+        }}<u-icon name="arrow-down" size="20" class="ml12" color="#999999"></u-icon></view>
+			<view class="platform_list">
+				<view class="item" :class="{ active: item.id === activePlatform.id }"
+					v-for="(item, index) in activePlatformGroup.platformList" :key="index" @click="platformClick(item)">
+					{{ item.name }}</view>
+			</view>
+			<view class="status_wrap">
+				<view class="status">浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view>
+				<view class="status">宸插彨锛�<text>{{ platformTaskInfo.callNum }}</text></view>
+				<view class="status">绛夊緟锛�<text>{{ platformTaskInfo.waitNum }}</text></view>
+				<view class="status">寮傚父锛�<text>{{ platformTaskInfo.exceptionNum }}</text></view>
+			</view>
+		</view>
+		<!--  -->
+		<view style="padding-bottom: 140rpx">
+			<view v-for="item in platformTaskInfo.platformJobList" :key="item.id" class="platform_ing">
+				<view class="head">
+					<view class="code">
+						<text>{{ item.carCodeFront.slice(0, 1) }}</text>
+						<text>{{ item.carCodeFront.slice(1, 2) }}</text>
+						<text>路</text>
+						<text>{{ item.carCodeFront.slice(2) }}</text>
+					</view>
+					<view class="status" v-if="item.status != 4 && item.status != 5" :class="{ red: item.status == 8 }">
+						{{ statusMap[item.status] }}</view>
+					<view class="status" v-if="item.status == 4">鍙彿涓� {{ item.callDateTemp }}</view>
+					<view class="status scs" v-if="item.status == 5">宸蹭綔涓� {{ item.startDateTemp }}</view>
+				</view>
+				<view class="line" v-if="item.type == 4">
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.contractNum }}</text>
+				</view>
+				<view class="line" v-else>
+					<text class="label">杩愯緭鍗曞彿</text>
+					<text class="value">{{ item.code }}</text>
+					<text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+				</view>
+				<view class="line">
+					<text class="label">椹鹃┒鍛�</text>
+					<text class="value">{{ item.driverName }} {{ item.drivierPhone }}</text>
+				</view>
+				<view class="line">
+					<text class="label">鎬昏繍杈撻噺</text>
+					<text class="value">{{ item.totalNum }}涓囨敮</text>
+				</view>
+				<view class="line" v-if="item.type != 4">
+					<text class="label">杩愯緭鍏徃</text>
+					<text class="value">{{ item.carrierName }}</text>
+				</view>
+				<view class="btns">
+					<view v-if="item.status == 4" class="btn" @click="handlePass(item)">杩囧彿</view>
+					<view v-if="item.status == 4" class="btn active" @click="handleWork(item)">寮�濮嬩綔涓�</view>
+
+					<view v-if="item.status == 5" class="btn" @click="handleErr(item)">寮傚父鎸傝捣</view>
+					<view v-if="item.status == 5 || item.status == 8" class="btn" @click="handleTransform(item)">杞Щ鏈堝彴</view>
+					<view v-if="item.status == 5 || item.status == 8" class="btn active" @click="handleFinish(item)">浣滀笟瀹屾垚</view>
+				</view>
+			</view>
+			<view v-if="!platformTaskInfo.platformJobList || platformTaskInfo.platformJobList.length == 0" class="empty_wrap">
+				<image src="@/static/default_nodata@2x.png" />
+				<text>鏆傛棤浣滀笟杞﹁締</text>
+			</view>
+		</view>
+		<!--  -->
+		<view class="main_footer">
+			<view class="btn" @click="PlatformCallClick(1)">鍏ュ洯鍙彿</view>
+			<view class="btn active" @click="PlatformCallClick(2)">鏈堝彴鍙彿</view>
+		</view>
+		<!-- 鍙彿 -->
+		<u-popup :show="showPlatformCall" closeable safeAreaInsetTop round="10" @close="showPlatformCall = false">
+			<view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
+				<view class="title" v-if="callType == 2">鏈堝彴鍙彿({{ activePlatform.name }})</view>
+				<view class="title" v-else>鍏ュ洯鍙彿</view>
+				<view class="input_wrap">
+					<u-icon name="search" class="mr12" size="19" color="#999999" />
+					<input v-model="platformCallSearch" type="text" placeholder="鎼滅储杞﹁締鐗岀収" placeholder-class="placeholder9"
+						@confirm="callQuery" />
+				</view>
+				<view class="order_list">
+					<scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
+						<view class="platform_ing" v-for="item in platformCallList" :key="item.id">
+							<view class="head">
+								<view v-if="item.carCodeFront" class="code">
+									<text>{{ item.carCodeFront.slice(0, 1) }}</text>
+									<text>{{ item.carCodeFront.slice(1, 2) }}</text>
+									<text>路</text>
+									<text>{{ item.carCodeFront.slice(2) }}</text>
+								</view>
+								<view class="status" :class="{ scs: item.status == 4 }">{{
+                  statusMap[item.status]
+                }}</view>
+							</view>
+							<view class="line" v-if="item.type == 4">
+								<text class="label">鍚堝悓鍗曞彿</text>
+								<text class="value">{{ item.contractNum }}</text>
+							</view>
+							<view class="line" v-else>
+								<text class="label">杩愯緭鍗曞彿</text>
+								<text class="value">{{ item.code }}</text>
+								<text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+							</view>
+							<view class="line">
+								<text class="label">椹鹃┒鍛�</text>
+								<text class="value">{{ item.driverName }} {{ item.drivierPhone }}</text>
+							</view>
+							<view class="line">
+								<text class="label">鎬昏繍杈撻噺</text>
+								<text class="value">{{ item.totalNum }}涓囨敮</text>
+							</view>
+							<view class="line" v-if="item.type != 4">
+								<text class="label">杩愯緭鍏徃</text>
+								<text class="value">{{ item.carrierName }}</text>
+							</view>
+							<view class="btns">
+								<view class="btn active" @click="handleCall(item)">鍙彿</view>
+							</view>
+						</view>
+					</scroll-view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 杩愬崟璇︽儏 -->
+		<u-popup :show="showDetail" closeable safeAreaInsetTop round="10" @close="showDetail = false">
+			<view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
+				<view class="title">杩愬崟璇︽儏</view>
+				<view class="platform_ing" style="padding: 0">
+					<view class="head">
+						<view class="code">
+							<text>鐨�</text>
+							<text>AD1212</text>
+						</view>
+					</view>
+					<view class="line">
+						<text class="label">杩愯緭鍗曞彿</text>
+						<text class="value">11111</text>
+					</view>
+					<view class="line">
+						<text class="label">椹鹃┒鍛�</text>
+						<text class="value">11111</text>
+					</view>
+					<view class="line">
+						<text class="label">鎬昏繍杈撻噺</text>
+						<text class="value">11111</text>
+					</view>
+					<view class="line">
+						<text class="label">杩愯緭鍏徃</text>
+						<text class="value">11111</text>
+					</view>
+				</view>
+				<view class="detail_list">
+					<view class="item">
+						<view class="orderId">鍚堝悓缂栧彿锛歿{ 111 }}</view>
+						<view class="addr">鏀惰揣鍦帮細{{ 111 }}</view>
+						<view class="content">
+							<view class="line">
+								<view class="label">鐗╂枡锛�</view>
+								<view class="value">榛勫北</view>
+							</view>
+							<view class="line">
+								<view class="label">鏁伴噺锛�</view>
+								<view class="value">榛勫北</view>
+							</view>
+							<view class="line">
+								<view class="label">鐗╂枡锛�</view>
+								<view class="value">榛勫北</view>
+							</view>
+							<view class="line">
+								<view class="label">鏁伴噺锛�</view>
+								<view class="value">榛勫北</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</u-popup>
+		<!-- 杞Щ鏈堝彴 -->
+		<u-popup :show="showTransform" closeable safeAreaInsetTop round="10" @close="showTransform = false">
+			<view class="TransformModal">
+				<view class="title">杞Щ鏈堝彴</view>
+				<view class="transform_list">
+					<view class="line" @click="transformPlatClick(item)" v-for="item in activePlatformGroup.platformList"
+						:key="item.id">
+						<view class="name">{{ item.name }}</view>
+						<view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})
+						</view>
+						<image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
+					</view>
+				</view>
+				<view class="btns">
+					<view class="btn" @click="transformCancel">鍙栨秷</view>
+					<view class="btn active" @click="transformSub">纭畾</view>
+				</view>
+			</view>
+		</u-popup>
+		<!--  -->
+		<u-picker :show="showPlatformgroup" keyName="name" :columns="[platformGroupList]"
+			@cancel="showPlatformgroup = false" @confirm="platConfirm"></u-picker>
+	</view>
+</template>
+
+<script>
+	import {
+		getPlatformGroupList,
+		getPlatformWorkData,
+		platformCallList,
+		platformCallNumber,
+		platformInPark,
+		beginWork,
+		finishWork,
+		platformMove,
+		platformErr,
+		platformOverNumber
+	} from '@/api'
+	import {
+		statusMap
+	} from '@/utils/config.js'
+	import dayjs from 'dayjs'
+	import duration from 'dayjs/plugin/duration'
+	dayjs.extend(duration)
+
+	export default {
+		data() {
+			return {
+				statusMap,
+				windowTop: 44,
+				showPlatformCall: false, // 鏈堝彴鍙彿
+				showDetail: false,
+				showTransform: false, // 杞Щ
+				showPlatformgroup: false,
+
+				platformGroupList: [],
+				activePlatformGroup: {},
+				platformTaskInfo: {},
+				activePlatform: {},
+
+				platformCallList: [], //鍙彿鍒楄〃
+				platformCallSearch: '',
+				platformCallTotal: 0,
+				platformCallPage: 1,
+				callType: 1,
+
+				transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
+				transformId: '', // 杞Щ璁板綍浠诲姟id
+			}
+		},
+		onLoad() {
+			this.getPlatformGroup()
+			const res = uni.getWindowInfo()
+			this.windowTop = res.windowTop
+		},
+		methods: {
+			getPlatformGroup() {
+				getPlatformGroupList({
+					queryData: 1,
+					queryType: 0
+				}).then(res => {
+					this.platformGroupList = res.data || []
+					if (this.platformGroupList.length > 0) {
+						this.activePlatformGroup = this.platformGroupList[0]
+						if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+							this.activePlatform = this.activePlatformGroup.platformList[0]
+							this.getPlatformTask()
+						}
+					}
+				})
+			},
+			getPlatformTask() {
+				getPlatformWorkData({
+					platformId: this.activePlatform.id
+				}).then(res => {
+					this.platformTaskInfo = res.data
+					this.circulInitTaskList()
+					setInterval(() => {
+						this.circulInitTaskList()
+					}, 1000)
+				})
+			},
+			circulInitTaskList() {
+				if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList
+					.length > 0) {
+					let time = new Date()
+					this.platformTaskInfo.platformJobList.forEach(item => {
+						if (item.callDate) {
+							let timeNum = time.getTime() - new Date(item.callDate).getTime()
+							if (timeNum > 3600000) {
+								item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
+							} else {
+								item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+							}
+						}
+						if (item.startDate) {
+							let timeNum = time.getTime() - new Date(item.startDate).getTime()
+							if (timeNum > 3600000) {
+								item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+							} else {
+								item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+							}
+						}
+					})
+					this.$forceUpdate()
+				}
+			},
+			platConfirm(e) {
+				const index = e.indexs[0]
+				this.activePlatformGroup = this.platformGroupList[index]
+				if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+					this.activePlatform = this.activePlatformGroup.platformList[0]
+					this.getPlatformTask()
+				}
+				this.showPlatformgroup = false
+			},
+			platformClick(item) {
+				this.activePlatform = item
+				this.getPlatformTask()
+			},
+			handleDetail() {
+				this.showDetail = true
+			},
+			handleFinish(item) {
+				finishWork({
+					jobId: item.id
+				}).then(res => {
+					this.showToast('瀹屾垚浣滀笟')
+					this.getPlatformTask()
+				})
+			},
+			handleWork(item) { // 寮�濮嬩綔涓�
+				beginWork({
+					jobId: item.id
+				}).then(res => {
+					this.showToast('宸插紑濮嬩綔涓�')
+					this.getPlatformTask()
+				})
+			},
+			handlePass(item) {
+				uni.showModal({
+					content: `纭 ${item.carCodeFront}缃负杩囧彿鍚楋紵杩囧彿鍚庯紝闇�瑕侀噸鏂扮鍒版墠鑳借繘鍏ュ洯鍖篳,
+					success: (res) => {
+						if (res.confirm) {
+							platformOverNumber({
+								jobId: item.id,
+								platformId: this.activePlatform.id
+							}).then(res => {
+								this.showToast('杩囧彿鎴愬姛')
+								this.getPlatformTask()
+							})
+						}
+					}
+				})
+
+			},
+			handleCall(item) {
+				const {
+					callType,
+					activePlatform
+				} = this
+				this.platformCallList = []
+				this.platformCallPage = 1
+				if (callType == 1) { // 鍏ュ洯鍙彿
+					platformInPark({
+						jobId: item.id
+					}).then(res => {
+						this.showToast('鍙彿鎴愬姛')
+						this.getPlatformCallList()
+					})
+				} else { // 鏈堝彴鍙彿
+					platformCallNumber({
+						platformId: activePlatform.id,
+						jobId: item.id
+					}).then(res => {
+						this.showToast('鍙彿鎴愬姛')
+						this.getPlatformCallList()
+						this.getPlatformTask()
+					})
+				}
+			},
+			PlatformCallClick(callType) {
+				this.callType = callType
+				this.showPlatformCall = true
+				this.platformCallList = []
+				this.platformCallPage = 1
+				this.platformCallSearch = ''
+				this.getPlatformCallList()
+			},
+			callQuery() {
+				this.platformCallList = []
+				this.platformCallPage = 1
+				this.getPlatformCallList()
+			},
+			callScrolltolower() {
+				const {
+					platformCallTotal,
+					platformCallList
+				} = this
+				if (platformCallTotal > platformCallList.length) {
+					this.getPlatformCallList()
+				}
+			},
+			getPlatformCallList() {
+				const {
+					platformCallPage,
+					callType,
+					activePlatform,
+					platformCallSearch
+				} = this
+				platformCallList({
+					model: {
+						callType,
+						platformId: activePlatform.id,
+						carCodeFront: platformCallSearch
+					},
+					capacity: 10,
+					page: platformCallPage
+				}).then(res => {
+					if (res.data && res.data.records) {
+						this.platformCallList = [...this.platformCallList, ...res.data.records]
+						this.platformCallTotal = res.data.total
+					}
+				})
+			},
+			transformPlatClick(item) {
+				this.transformPlatId = item.id
+			},
+			transformCancel() {
+				this.transformPlatId = ''
+				this.showTransform = false
+			},
+			transformSub() {
+				const {
+					transformPlatId,
+					transformId
+				} = this
+				platformMove({
+					platformId: transformPlatId,
+					jobId: transformId
+				}).then(res => {
+					this.showToast('杞Щ鏈堝彴鎴愬姛')
+					this.transformCancel()
+					this.getPlatformTask()
+				})
+			},
+			handleTransform(item) {
+				let {
+					activePlatform
+				} = this
+				this.transformId = item.id
+				this.transformPlatId = activePlatform.id
+				this.showTransform = true
+			},
+			handleErr(item) {
+				uni.showModal({
+					content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�',
+					success: (res) => {
+						if (res.confirm) {
+							platformErr({
+								jobId: item.id
+							}).then(ress => {
+								this.showToast('寮傚父鎸傝捣鎴愬姛')
+								this.getPlatformTask()
+							})
+						}
+					}
+				})
+			}
+		}
+	}
+</script>
+<style lang="scss">
+	.main_app {
+		padding: 0rpx;
+		height: calc(100vh - 44px);
+		font-size: 30rpx;
+		color: #333333;
+		background: url("@/static/bg_yuetai@2x.png") no-repeat;
+		background-size: 100% 100%;
+
+		.main_content {
+			background-color: #fff;
+			padding: 30rpx;
+
+			.platform_list {
+				display: flex;
+				flex-wrap: wrap;
+
+				.item {
+					width: 210rpx;
+					height: 80rpx;
+					line-height: 80rpx;
+					text-align: center;
+					background: #ffffff;
+					border-radius: 8rpx;
+					border: 1rpx solid #999999;
+					font-size: 30rpx;
+					color: #222222;
+					margin-bottom: 20rpx;
+					margin-right: 30rpx;
+
+					&:nth-of-type(3n) {
+						margin-right: 0;
+					}
+				}
+
+				.active {
+					color: #fff;
+					background-color: $uni-color-primary;
+					border-color: $uni-color-primary;
+				}
+			}
+
+			.status_wrap {
+				display: flex;
+				align-items: center;
+				justify-content: space-evenly;
+				width: 690rpx;
+				height: 76rpx;
+				margin-top: 4rpx;
+				background: #ffffff;
+				box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.18);
+				border-radius: 8rpx;
+
+				.status {
+					color: #666666;
+
+					text {
+						color: #111111;
+					}
+
+					&:nth-last-child(1) {
+						text {
+							color: #ed4545;
+						}
+					}
+				}
+			}
+
+			.title {
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #111111;
+				line-height: 44rpx;
+				margin-bottom: 30rpx;
+				display: flex;
+				justify-content: center;
+			}
+		}
+
+		.platform_ing {
+			margin-top: 20rpx;
+			padding: 30rpx;
+			background-color: #fff;
+
+			.head {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				margin-bottom: 30rpx;
+
+				.code {
+					display: flex;
+					font-weight: 600;
+					height: 60rpx;
+					line-height: 60rpx;
+					font-size: 32rpx;
+					color: #111111;
+					border-radius: 8rpx;
+					border: 1rpx solid #dfdede;
+
+					text {
+						&:nth-of-type(1) {
+							background: #e9f5f6;
+							padding: 0 12rpx;
+						}
+
+						&:nth-of-type(2) {
+							padding-left: 4rpx;
+						}
+
+						&:nth-of-type(4) {
+							padding-right: 6rpx;
+						}
+					}
+				}
+
+				.status {
+					font-size: 30rpx;
+					color: $uni-color-primary;
+				}
+
+				.scs {
+					color: #00ba67;
+				}
+			}
+
+			.line {
+				display: flex;
+				margin-bottom: 20rpx;
+
+				.label {
+					width: 144rpx;
+					color: #666666;
+				}
+
+				.value {
+					flex: 1;
+				}
+			}
+
+			.btns {
+				display: flex;
+				justify-content: flex-end;
+
+				.btn {
+					width: 210rpx;
+					height: 76rpx;
+					line-height: 76rpx;
+					text-align: center;
+					background: #ffffff;
+					border-radius: 40rpx;
+					border: 1rpx solid #999999;
+					margin-left: 20rpx;
+				}
+
+				.active {
+					background-color: $uni-color-primary;
+					color: #fff;
+					border-color: $uni-color-primary;
+				}
+			}
+		}
+
+		.empty {
+			width: 220rpx;
+			margin: 160rpx auto;
+		}
+
+		.main_footer {
+			width: 750rpx;
+			height: 136rpx;
+			position: fixed;
+			bottom: 0;
+			left: 0;
+			padding: 24rpx 30rpx;
+			display: flex;
+			justify-content: space-between;
+			font-size: 32rpx;
+			background-color: #fff;
+
+			.btn {
+				width: 224rpx;
+				height: 88rpx;
+				line-height: 88rpx;
+				text-align: center;
+				background: #ffffff;
+				border-radius: 44rpx;
+				color: $uni-color-primary;
+				border: 1rpx solid $uni-color-primary;
+			}
+
+			.active {
+				width: 436rpx;
+				background-color: $uni-color-primary;
+				color: #fff;
+				border-color: $uni-color-primary;
+			}
+		}
+	}
+
+	.PlatformCallModal {
+		height: calc(100vh - 44px);
+		padding: 30rpx;
+
+		.title {
+			text-align: center;
+			margin: 0 0 30rpx;
+		}
+
+		.input_wrap {
+			display: flex;
+			align-items: center;
+			width: 690rpx;
+			height: 76rpx;
+			background: #f7f7f7;
+			border-radius: 38rpx;
+			padding: 0 30rpx;
+		}
+
+		.order_list {
+			height: calc(100% - 140rpx);
+
+			.scroll_view {
+				height: 100%;
+			}
+
+			.platform_ing {
+				border-radius: 8rpx;
+				border: 1rpx solid #dfe2e8;
+			}
+		}
+
+		.detail_list {
+			border-top: 1rpx solid #e5e5e5;
+			padding: 30rpx 0;
+
+			.orderId {
+				font-size: 30rpx;
+				color: $uni-color-primary;
+				margin-bottom: 14rpx;
+			}
+
+			.addr {
+				font-size: 26rpx;
+				color: #666666;
+				margin-bottom: 20rpx;
+			}
+
+			.content {
+				width: 100%;
+				padding: 20rpx;
+				background: #f7f7f7;
+				border-radius: 8rpx;
+
+				.line {
+					display: flex;
+					margin-bottom: 20rpx;
+
+					&:nth-of-type(2n) {
+						padding-bottom: 20rpx;
+						border-bottom: 1rpx solid #e5e5e5;
+					}
+
+					&:last-child {
+						padding-bottom: 0rpx;
+						border-bottom: none;
+					}
+
+					.label {
+						font-size: 28rpx;
+						color: #666666;
+						width: 88rpx;
+					}
+
+					.value {
+						font-size: 28rpx;
+						color: #222222;
+					}
+				}
+			}
+		}
+
+		.btns {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.btn {
+				width: 336rpx;
+				height: 88rpx;
+				border-radius: 44rpx;
+				border: 1rpx solid $uni-color-primary;
+				color: $uni-color-primary;
+				font-size: 32rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.active {
+				color: #fff;
+				background-color: $uni-color-primary;
+			}
+		}
+	}
+
+	.TransformModal {
+		height: 900rpx;
+		padding: 30rpx;
+		position: relative;
+
+		.title {
+			text-align: center;
+			margin: 0 0 30rpx;
+		}
+
+		.btns {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			position: absolute;
+			z-index: 999;
+			left: 30rpx;
+			bottom: 30rpx;
+
+			.btn {
+				width: 336rpx;
+				height: 88rpx;
+				border-radius: 44rpx;
+				border: 1rpx solid $uni-color-primary;
+				color: $uni-color-primary;
+				font-size: 32rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.active {
+				color: #fff;
+				margin-left: 18rpx;
+				background-color: $uni-color-primary;
+			}
+		}
+
+		.transform_list {
+			height: 660rpx;
+			margin-bottom: 30rpx;
+			overflow: auto;
+
+			.line {
+				display: flex;
+				align-items: center;
+				border-bottom: 1rpx solid #e5e5e5;
+				padding-bottom: 30rpx;
+				margin-bottom: 30rpx;
+
+				.name {
+					font-size: 32rpx;
+					color: #111111;
+				}
+
+				.status {
+					flex: 1;
+					font-size: 28rpx;
+					color: $uni-color-primary;
+					margin-left: 12rpx;
+				}
+
+				.green {
+					color: #00ba67;
+				}
+
+				.checked {
+					width: 40rpx;
+					height: 40rpx;
+				}
+			}
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue
index e9e23c7..a62ada9 100644
--- a/pda/pages/index/queueup.vue
+++ b/pda/pages/index/queueup.vue
@@ -21,7 +21,7 @@
         />
       </view>
       <view class="count"
-        >宸茬鍒拌溅杈嗭細<text>{{ total }}</text></view
+        >鎬绘帓闃熻溅杈嗭細<text>{{ total }}</text></view
       >
     </view>
     <!--  -->
@@ -139,6 +139,7 @@
     platConfirm(e) {
       const index = e.indexs[0]
       this.platformGroup = this.platformGroupList[index]
+			this.platformLineUpList = []
       this.getList()
       this.showPlatformgroup = false
     },
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
index da445e9..1214156 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -35,11 +35,10 @@
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
-@Api(tags = "娴峰悍鏁版嵁鍚屾鎺ュ彛")
+@Api(tags = "娴峰悍鎺ュ彛娴嬭瘯宸ュ叿鎺ュ彛")
 @RestController
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hktest")
 public class HkInterfaceTestCloudController extends BaseController {
-
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -67,32 +66,32 @@
         return ApiResponse.success(  HKService.wxAccessToken(configId,tageId));
     }
     @ApiOperation("銆愭捣搴枫�戞祴璇曞垎椤佃幏鍙栧憡璀︿簨浠�")
-    @GetMapping("/nhEventPageList")
+    @PostMapping("/nhEventPageList")
     @LoginNoRequired
     public ApiResponse<BaseResponse> nhEventPageList(@RequestBody NhEventPageListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.nhEventPageList(param));
     }
 
     @ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵��")
-    @GetMapping("/sensorStatusSearch")
+    @PostMapping("/sensorStatusSearch")
     @LoginNoRequired
     public ApiResponse<BaseResponse> sensorStatusSearch(@RequestBody SensorStatusListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.sensorStatusSearch(param));
     }
     @ApiOperation("銆愭捣搴枫�戞煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃")
-    @GetMapping("/fireChannelSearch")
+    @PostMapping("/fireChannelSearch")
     @LoginNoRequired
     public ApiResponse<BaseResponse> fireChannelSearch(@RequestBody FireChannelListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.fireChannelSearch(param));
     }
     @ApiOperation("銆愭捣搴枫�戞捣搴疯娑堥槻璁惧鍒楄〃")
-    @GetMapping("/fireDeviceSearch")
+    @PostMapping("/fireDeviceSearch")
     @LoginNoRequired
     public ApiResponse<BaseResponse> fireDeviceSearch(@RequestBody FireDeviceListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.fireDeviceSearch(param));
     }
     @ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃茶澶囬儴浠剁姸鎬�")
-    @GetMapping("/fireDeviceStatusSearch")
+    @PostMapping("/fireDeviceStatusSearch")
     @LoginNoRequired
     public ApiResponse<BaseResponse> fireDeviceStatusSearch(@RequestBody FireDeviceStatuslListRequest param, HttpServletResponse response) {
         return ApiResponse.success(  HKService.fireDeviceStatusSearch(param));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index b9e3b0d..8e39c56 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -593,24 +593,24 @@
 	 * @param body
 	 * @return
 	 */
-	public static String fireDeviceStatusSearch(Map<String,String> body) {
-		return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body);
+	public static String fireDeviceStatusSearch(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body);
 	}
 	/**
 	 *	鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
 	 * @param body
 	 * @return
 	 */
-	public static String sensorStatusSearch(Map<String,String> body) {
-		return startDoGetStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body);
+	public static String sensorStatusSearch(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body);
 	}
 	/**
 	 *	璇㈡秷闃茶澶囧垪琛�
 	 * @param body
 	 * @return
 	 */
-	public static String fireChannelSearch(Map<String,String> body) {
-		return startDoGetStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body);
+	public static String fireChannelSearch(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body);
 	}
 
 	/**
@@ -618,8 +618,8 @@
 	 * @param body
 	 * @return
 	 */
-	public static String fireDeviceSearch(Map<String,String> body) {
-		return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body);
+	public static String fireDeviceSearch(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body);
 	}
 	/**
 	 *	鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
index c750997..3823fba 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
@@ -13,6 +13,6 @@
   private int pageNo	;// number	False	褰撳墠椤电爜
   private int totalPage;//	number	False	鎬婚〉鏁�
 
-  @JSONField(name="list",alternateNames = {"rows","records"})
+  @JSONField(name="list",alternateNames = {"rows","list"})
   private List<T> list	;// object[]	False	鏉冮檺缁勫璞″垪琛�
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
index 38407bc..b9f0d5b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
@@ -4,21 +4,16 @@
 
 @Data
 public class FireDeviceStatusListResponse {
-      private String id	;//String	false	棰勫憡璀︿簨浠跺敮涓�鏍囪瘑
-      private String warningName	;//String	false	棰勫憡璀﹀悕绉�
-      private String nodeType	;//Number	false	鑺傜偣绫诲瀷
-      private String nodeId	;//String	false	鑺傜偣ID
-      private String nodeName;//	String	false	鑺傜偣鍚嶇О
-      private String nodePath;//	String	false	鑺傜偣璺緞
-      private String ruleType	;//String	false	棰勫憡璀︾被鍨�
-      private String warningLevel	;//Number	false	棰勫憡璀︾瓑绾э紝1锛氫竴鑸紝2锛氫弗閲嶏紝3锛氭晠闅�
-      private String warningValue	;//String	false	鏁版嵁椤瑰綋鍓嶅��
-      private String warningEventTip;//	String	false	寮傚父鍘熷洜
-      private String createTime;//	String	false	鍙戠敓鏃堕棿
-      private String benchmark;//	String	false	鍩哄噯鏁版嵁
-      private String handleStatus;//	Number	false	澶勭悊鐘舵�侊細1锛氭湭澶勭悊锛�2锛氬凡澶勭悊
-      private String note;//	String	false	澶勭悊鎰忚
-      private String handleTime;//	String	false	澶勭悊鏃堕棿
-      private String normal;//	Boolean	false	棰勫憡璀︽槸鍚︽甯�
-      private String deviceId;//	String	false	璁惧id
+        private String cn	;//String	false
+        private String regionIndexCode	;//String	false
+        private String indexCode;//	String	false
+        private String regionName;//	String	false
+        private String deviceIndexCode;//	String	false
+        private String deviceType;//	Number	false
+        private String unitStatus	;//Number	false
+        private String online;//	Number	false
+        private String collectTime;//	String	false
+        private String faultType;//	String	false
+        private String faultName;//	String	false
+        private String faultNum;//	String	false
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 485b0fc..31f76aa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -926,7 +926,7 @@
     public  static  BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>   fireDeviceStatusSearch(FireDeviceStatuslListRequest param){
         log.info("銆愭捣搴锋煡璇㈡秷闃茶澶囬儴浠剁姸鎬併��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
-            String res = HKTools.fireDeviceStatusSearch(toMap(param));
+            String res = HKTools.fireDeviceStatusSearch(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>>(){};
             BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
@@ -944,7 +944,7 @@
     public  static  BaseResponse<BaseListPageResponse<SensorStatusListResponse>>   sensorStatusSearch(SensorStatusListRequest param){
         log.info("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�併��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
-            String res = HKTools.sensorStatusSearch(toMap(param));
+            String res = HKTools.sensorStatusSearch(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference<BaseResponse<BaseListPageResponse<SensorStatusListResponse>>>(){};
             BaseResponse<BaseListPageResponse<SensorStatusListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
@@ -963,7 +963,7 @@
     public  static  BaseResponse<BaseListPageResponse<FireChannelListResponse>>   fireChannelSearch(FireChannelListRequest param){
         log.info("銆愭捣搴锋煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
-            String res = HKTools.fireChannelSearch(toMap(param));
+            String res = HKTools.fireChannelSearch(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference<BaseResponse<BaseListPageResponse<FireChannelListResponse>>>(){};
             BaseResponse<BaseListPageResponse<FireChannelListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
@@ -981,7 +981,7 @@
     public  static  BaseResponse<BaseListPageResponse<FireDeviceListResponse>>   fireDeviceSearch(FireDeviceListRequest param){
         log.info("銆愭捣搴疯娑堥槻璁惧鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
-            String res = HKTools.fireDeviceSearch(toMap(param));
+            String res = HKTools.fireDeviceSearch(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceListResponse>>>(){};
             BaseResponse<BaseListPageResponse<FireDeviceListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
@@ -1338,7 +1338,6 @@
             log.error("銆愭捣搴疯幏鍙栧叏閮ㄦ湀鍙颁俊鎭��================澶辫触====锛歕n" + e.getMessage());
         }
         return null;
-
     }
     /**
      *鍙戦�佹秷鎭粰LED
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 9816597..b10d537 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1027,7 +1027,6 @@
      */
     private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
         //TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
-
         List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                 .eq(PlatformDevice::getPlatformId,model.getPlatformId())
                 .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
@@ -1041,7 +1040,6 @@
                 continue;
             }
             if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
-
                 //濡傛灉鏄疞ED
                 TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
                 TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
@@ -1053,16 +1051,21 @@
                 body.setMethod("ControlLedGereral");//鍥哄畾鍊�
                 request.setIndexCode(device.getHkId());
                 request.setOperationType(219);//鍥哄畾鍊�
-                regions.setActionType(0);
+                regions.setActionType(32);
                 regions.setContent(content);
                 regions.setRegionNo(1);
                 regions.setRegionType(14);
-                regions.setFontColor(2);
+                regions.setFontColor(1);
                 regions.setCircleTimes(1);//寰幆娆℃暟
-                regions.setFontSize(31);//
+                regions.setFontSize(32);//
                 regions.setStayTime(1);//鍗曚綅锛燂紵
+                regions.setRegionLeftTopXPos(0);
+                regions.setRegionLeftTopYPos(0);
+                regions.setRegionRightBottomXPos(255);
+                regions.setRegionRightBottomYPos(31);
                 request.setRegions(new ArrayList<>());
                 request.getRegions().add(regions);
+                regions.setSpeed(13);
                 body.setParams(request);
                 HKService.transparentchannel(head,body);
             }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
@@ -1073,9 +1076,9 @@
         if(broadcastList.size()>0){
             CustomBroadcastRequest request = new CustomBroadcastRequest();
             request.setAudioPointIndexCode(broadcastList);
-            request.setPlayDuration(60);//鍗曚綅绉�
+            request.setPlayDuration(15);//鍗曚綅绉�
             request.setBroadCastMode("tts");
-            request.setPriority(15);
+            request.setPriority(1);
             request.setState(1);//鎾斁/鍋滄鏍囪瘑 1-鎾斁锛�0-鍋滄
             request.setPlayTtsContent(content);
             HKService.customBroadcast(request);

--
Gitblit v1.9.3