From 0ed2002103cfe3d0892ee2468d98b7d3fad8e7b9 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 18 十月 2024 15:45:06 +0800
Subject: [PATCH] ll

---
 admin/src/views/login.vue                                         |    2 
 pda/api/index.js                                                  |    8 
 pda/static/ic_refused@2x.png                                      |    0 
 admin/src/components/common/GlobalAlertWindow.vue                 |   11 
 admin/src/views/business/approvalConfiguration.vue                |  265 ++++-----
 pda/static/staff/ic_chaosong@2x.png                               |    0 
 admin/src/views/operation/serviceCar/apprConfig.vue               |  267 ++++-----
 pda/pages.json                                                    |    7 
 pda/pages/index/SubDetail.vue                                     |  466 +++++++++++++++++
 admin/src/views/business/approvalReport.vue                       |  263 ++++-----
 pda/static/staff/ic_shenpiren@2x.png                              |    0 
 admin/src/components/business/OperaPlatformApproveTemplWindow.vue |   20 
 pda/static/staff/liucheng_fail@2x.png                             |    0 
 pda/static/ic_passed@2x.png                                       |    0 
 pda/pages/index/queueup.vue                                       |    6 
 admin/src/components/common/CommonHeader.vue                      |   11 
 pda/pages/index/center.vue                                        |   11 
 pda/manifest.json                                                 |  197 +++---
 pda/static/staff/liucheng_success@2x.png                          |    0 
 19 files changed, 964 insertions(+), 570 deletions(-)

diff --git a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
index b9c8038..47520d4 100644
--- a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
+++ b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
@@ -82,7 +82,7 @@
               <!-- 鎶勯�佷汉 -->
               <template v-if="apprList[activeIndex].type == '1'">
                 <div class="config_data_item_reviewed_content">
-                  <div v-for="(mem,memIndex) in apprList[activeIndex].objIds" :key="mem.id"
+                  <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
                     class="config_data_item_reviewed_content_item">
                     <span>{{ mem.name }}</span>
                     <i @click="memDel(memIndex)" class="el-icon-close"></i>
@@ -163,7 +163,7 @@
             ">
               浼佷笟缁勭粐鏋舵瀯
             </div>
-            <div style="width: 100%; height: 100%; overflow-y: scroll">
+            <div style="width: 100%; max-height: 560px; overflow-y: scroll">
               <Tree :list="companyTree" :defaultProps="{
                 name: 'name',
                 status: 'fsStatus',
@@ -172,7 +172,7 @@
               }" @callback="callback" />
             </div>
           </div>
-          <el-transfer filterable  :titles="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
+          <el-transfer filterable :titles="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
             filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
           </el-transfer>
         </div>
@@ -207,7 +207,7 @@
       activeType: '6',
       subLoading: false,
       apprList: [
-        { remark: '瀹℃壒浜�', active: false,approveType: 0, memberType: 1, type: '1', objIds: [] },
+        { remark: '瀹℃壒浜�', active: false, approveType: 0, memberType: 1, type: '1', objIds: [] },
         { remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
       ],
       activeIndex: 0,
@@ -230,7 +230,7 @@
       this.getfindCompanyTreePage()
       this.apprList = [
         { remark: '瀹℃壒浜�', active: false, type: '0', memberType: 1, objIds: [] },
-        { remark: '鎶勯�佷汉', active: false,approveType: 0, type: '1', objIds: [] }
+        { remark: '鎶勯�佷汉', active: false, approveType: 0, type: '1', objIds: [] }
       ]
       this.param = {}
       this.searchForm = {}
@@ -313,7 +313,7 @@
       this.activeIndex = 0
     },
     handleAddAppr() {
-      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�',approveType: 0, active: false, memberType: 1, type: 0, objIds: [] })
+      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, memberType: 1, type: 0, objIds: [] })
       // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
     },
     // 鑾峰彇缁勭粐鏍�
@@ -338,11 +338,11 @@
           erpOrgId: '',
           hasFace: '',
           hkStatus: '',
-          includeChild: false,
+          includeChild: true,
           type: 2
         },
         page: 1,
-        capacity: 30
+        capacity: 300
       }).then(res => {
         this.memberList = res.records || []
         this.memberList.forEach(item => {
@@ -658,10 +658,12 @@
     display: flex;
     justify-content: center;
     align-items: center;
-    ::v-deep .el-transfer-panel{
+
+    ::v-deep .el-transfer-panel {
       flex: 1;
       height: 100%;
     }
+
     ::v-deep .el-transfer-panel__body {
       height: 500px;
     }
diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 8af6eef..4b5996f 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -40,6 +40,8 @@
     <GlobalAlertWindow
       title="淇敼瀵嗙爜"
       :visible.sync="visible.changePwd"
+      :showClose="!userInfo.needChangePwd || userInfo.needChangePwd == '1'"
+      :showCancel="userInfo.needChangePwd && userInfo.needChangePwd == '0'"
       @confirm="confirmChangePwd"
       @close="visible.changePwd = false"
     >
@@ -62,7 +64,7 @@
             v-model="changePwdData.form.newPwd"
             type="password"
             placeholder="璇疯緭鍏ユ柊瀵嗙爜"
-            maxlength="30"
+            maxlength="20"
             show-password
           ></el-input>
         </el-form-item>
@@ -71,7 +73,7 @@
             v-model="changePwdData.form.confirmPwd"
             type="password"
             placeholder="璇峰啀娆¤緭鍏ユ柊瀵嗙爜"
-            maxlength="30"
+            maxlength="20"
             show-password
           ></el-input>
         </el-form-item>
@@ -136,7 +138,10 @@
     // }
   },
   mounted() {
-    console.log('userInfo',this.userInfo);
+    // console.log('userInfo',this.userInfo);
+    if(!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0'){
+      this.visible.changePwd = true
+    }
     
   },
   filters: {
diff --git a/admin/src/components/common/GlobalAlertWindow.vue b/admin/src/components/common/GlobalAlertWindow.vue
index 0907de8..f5b8623 100644
--- a/admin/src/components/common/GlobalAlertWindow.vue
+++ b/admin/src/components/common/GlobalAlertWindow.vue
@@ -9,6 +9,7 @@
     :close-on-click-modal="false"
     :wrapper-closable="false"
     :append-to-body="true"
+    :show-close="!showClose"
     @close="close"
   >
     <div slot="title" class="window__header">
@@ -20,7 +21,7 @@
     <div v-if="withFooter" class="window__footer">
       <slot name="footer">
         <el-button @click="confirm" :loading="confirmWorking" type="primary">纭畾</el-button>
-        <el-button @click="close">鍙栨秷</el-button>
+        <el-button v-if="showCancel" @click="close">鍙栨秷</el-button>
       </slot>
     </div>
   </el-dialog>
@@ -34,6 +35,14 @@
       type: String,
       default: '50%'
     },
+    showClose: {
+      type: Boolean,
+      default: false
+    },
+    showCancel: {
+      type: Boolean,
+      default: true
+    },
     // 鏄惁鍖呭惈搴曢儴鎿嶄綔
     withFooter: {
       type: Boolean,
diff --git a/admin/src/views/business/approvalConfiguration.vue b/admin/src/views/business/approvalConfiguration.vue
index cd61e1f..09b2d8f 100644
--- a/admin/src/views/business/approvalConfiguration.vue
+++ b/admin/src/views/business/approvalConfiguration.vue
@@ -20,45 +20,35 @@
               <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
             </div>
             <div v-for="(item, index) in apprList" :key="index">
-              <div
-                class="item yellow"
-                :class="{
-                  active: activeIndex == index,
-                  blue: item.type == '1',
-                }"
-                @click="flowClick(index)"
-              >
+              <div class="item yellow" :class="{
+                active: activeIndex == index,
+                blue: item.type == '1',
+              }" @click="flowClick(index)">
                 <div class="head">{{ item.remark }}</div>
                 <div class="content">
                   <!-- 瀹℃壒 -->
                   <template v-if="item.type == 0">
                     <template v-if="item.memberType == '0'">
-                    <div>琚浜�</div>
-                  </template>
+                      <div>琚浜�</div>
+                    </template>
                     <template v-if="item.memberType == '2'">
                       <div>閮ㄩ棬涓荤</div>
                     </template>
                     <template v-if="item.memberType == '1'">
                       <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
+                        <span>{{ item.objIds[0].name }}
+                          {{ item.objIds[0].companyName }}</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else-if="item.objIds && item.objIds.length > 1">
                         <span>{{ item.objIds[0].name }} 绛�</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else>璇烽�夋嫨</div>
                       <i class="el-icon-arrow-right"></i>
@@ -67,19 +57,14 @@
                   <!-- 鎶勯�� -->
                   <template v-if="item.type == 1">
                     <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
-                      </div>
-                      <div v-else-if="item.objIds && item.objIds.length > 1">
-                        <span>{{ item.objIds[0].name }} 绛�</span>
-                      </div>
-                      <div v-else>璇烽�夋嫨</div>
-                    <i
-                      v-if="item.memberType == '1'"
-                      class="el-icon-arrow-right"
-                    ></i>
+                      <span>{{ item.objIds[0].name }}
+                        {{ item.objIds[0].companyName }}</span>
+                    </div>
+                    <div v-else-if="item.objIds && item.objIds.length > 1">
+                      <span>{{ item.objIds[0].name }} 绛�</span>
+                    </div>
+                    <div v-else>璇烽�夋嫨</div>
+                    <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
                   </template>
                 </div>
               </div>
@@ -88,11 +73,7 @@
                   <div class="line"></div>
                   <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
                 </template>
-                <i
-                  v-if="apprList.length - 2 === index"
-                  @click="handleAddAppr()"
-                  class="el-icon-circle-plus add"
-                ></i>
+                <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
               </div>
             </div>
           </div>
@@ -102,118 +83,74 @@
             <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
             <div class="df_ac mb10">
               <div>瀹℃壒鑺傜偣鍚嶇О</div>
-              <el-input
-                class="w200 ml10"
-                v-model="apprList[activeIndex].remark"
-              ></el-input>
+              <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
             </div>
             <!-- 鎶勯�佷汉 -->
             <template v-if="apprList[activeIndex].type == '1'">
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="mem, memIndex in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i @click="memDel(memIndex)" class="el-icon-close"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </template>
-            <el-radio-group
-              v-if="apprList[activeIndex].type == '0'"
-              v-model="apprList[activeIndex].memberType"
-            >
+            <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
               <el-radio :label="0">琚浜�</el-radio>
               <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
               <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
             </el-radio-group>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 1"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
               <div class="config_data_item_reviewed_label">
                 <span>鎸囧畾瀹℃牳浜�</span>
                 <span>涓嶈秴杩�20浜�</span>
               </div>
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="mem,memIndex in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i class="el-icon-close" @click="memDel(memIndex)"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </div>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 2"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
               <div class="config_data_item_reviewed_label">
                 <span>閮ㄩ棬涓荤</span>
               </div>
               <div class="config_data_item_reviewed_r">
                 <span>琚浜虹殑</span>
-                <el-select
-                  v-model="apprList[activeIndex].objLevel"
-                  placeholder="璇烽�夋嫨"
-                  style="margin: 0 20px 0 10px"
-                >
+                <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
                   <el-option label="鐩存帴涓荤" :value="0" />
                   <el-option label="浜岀骇涓荤" :value="1" />
                   <el-option label="涓夌骇涓荤" :value="2" />
                   <el-option label="鍥涚骇涓荤" :value="4" />
                 </el-select>
-                <el-checkbox
-                  v-model="apprList[activeIndex].noleaderOpt"
-                  :true-label="1"
-                  :false-label="0"
-                  >鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox
-                >
+                <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
+                  :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
               </div>
             </div>
           </div>
-          <div
-            class="config_data_item"
-            v-if="
-              (apprList[activeIndex].memberType == 1 ||
-                apprList[activeIndex].memberType == 2) &&
-              apprList[activeIndex].type == '0'
-            "
-          >
+          <div class="config_data_item" v-if="
+            (apprList[activeIndex].memberType == 1 ||
+              apprList[activeIndex].memberType == 2) &&
+            apprList[activeIndex].type == '0'
+          ">
             <div class="config_data_item_label">
               瀹℃壒鏂瑰紡
               <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
             </div>
-            <el-radio-group
-              v-model="apprList[activeIndex].approveType"
-              style="display: flex; flex-direction: column"
-            >
-              <el-radio :label="0" style="margin-bottom: 20px"
-                >鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio
-              >
+            <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
+              <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
               <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
             </el-radio-group>
           </div>
           <div class="config_data_submit">
-            <el-button
-              @click="onSubmit"
-              :loading="subLoading"
-              style="background: #435ebe"
-              type="primary"
-              >淇濆瓨閰嶇疆椤�</el-button
-            >
-            <el-button
-              v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1"
-              type="danger"
-              plain
-              @click="handleDel"
-              >鍒犻櫎鑺傜偣</el-button
-            >
+            <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
+              type="primary">淇濆瓨閰嶇疆椤�</el-button>
+            <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
+              @click="handleDel">鍒犻櫎鑺傜偣</el-button>
           </div>
         </div>
       </div>
@@ -222,41 +159,27 @@
     <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
       <div class="staff_modal">
         <div class="left">
-          <div
-            style="
+          <div style="
               width: 100%;
               height: 50px;
               background: rgba(242, 242, 242, 1);
               line-height: 50px;
               text-align: center;
               font-size: 14px;
-            "
-          >
+            ">
             浼佷笟缁勭粐鏋舵瀯
           </div>
-          <div style="width: 100%; height: 100%; overflow-y: scroll">
-            <Tree
-              :list="companyTree"
-              :defaultProps="{
-                name: 'name',
-                status: 'fsStatus',
-                children: 'childList',
-                id: 'id',
-              }"
-              @callback="callback"
-            />
+          <div style="width: 100%; max-height: 560px; overflow-y: scroll">
+            <Tree :list="companyTree" :defaultProps="{
+              name: 'name',
+              status: 'fsStatus',
+              children: 'childList',
+              id: 'id',
+            }" @callback="callback" />
           </div>
         </div>
-        <el-transfer
-          filterable
-          :title="['鏈��', '宸查��']"
-          openAll
-          :props="{ label: 'name', key: 'keyTemp' }"
-          filter-placeholder="鎼滅储鍛樺伐"
-          v-model="searchForm.objIds"
-          :data="memberList"
-          class="transfer"
-        >
+        <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
+          filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
         </el-transfer>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -280,7 +203,7 @@
     TableLayout,
     Tree
   },
-  data () {
+  data() {
     return {
       activeType: '0',
       subLoading: false,
@@ -297,12 +220,12 @@
       companyTree: []
     }
   },
-  created () {
+  created() {
     this.getfindCompanyTreePage()
     this.initDate()
   },
   methods: {
-    handleClick () {
+    handleClick() {
       this.apprList = []
       const arr = [
         { remark: '瀹℃壒浜�', active: false, type: 0, objIds: [] },
@@ -311,12 +234,12 @@
       this.apprList = [...arr]
       this.initDate()
     },
-    flowClick (i) {
+    flowClick(i) {
       this.activeIndex = i
       this.apprList.forEach((item, index) => {
         if (i === index) {
           item.active = true
-          console.log("====================",item.objIds)
+          console.log("====================", item.objIds)
           if (item.objIds && item.objIds.length > 0) {
             const objIds = item.objIds.map(i => {
               return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}`
@@ -330,7 +253,7 @@
         }
       })
     },
-    initDate () {
+    initDate() {
       const { activeType } = this
       approveTemplByType(activeType).then(res => {
         if (res && res.paramList) {
@@ -344,7 +267,7 @@
                   companyName: i.companyName
                 }
               })
-            }else{
+            } else {
               item.objIds = []
             }
           })
@@ -356,7 +279,7 @@
         // console.log(res);
       })
     },
-    onSubmit () {
+    onSubmit() {
       const { apprList, activeType } = this
       const temp = JSON.parse(JSON.stringify(apprList))
       temp.forEach((item, index) => {
@@ -378,18 +301,18 @@
         this.subLoading = false
       })
     },
-    handleDel () {
+    handleDel() {
       const { activeIndex } = this
       this.apprList.splice(activeIndex, 1)
       this.activeIndex = 0
     },
-    handleAddAppr () {
-      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�',approveType: 0, active: false, type: 0, objIds: [] })
+    handleAddAppr() {
+      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
       // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
     },
 
     // 鑾峰彇缁勭粐鏍�
-    getfindCompanyTreePage () {
+    getfindCompanyTreePage() {
       fetchList()
         .then(res => {
           if (res && res.length > 0) {
@@ -401,7 +324,7 @@
           }
         })
     },
-    getMemberList () {
+    getMemberList() {
       memberListPost({
         model: {
           companyId: this.searchForm.companyId || '',
@@ -410,11 +333,11 @@
           erpOrgId: '',
           hasFace: '',
           hkStatus: '',
-          includeChild: false,
+          includeChild: true,
           type: 2
         },
         page: 1,
-        capacity: 30
+        capacity: 300
       }).then(res => {
         this.memberList = res.records || []
         this.memberList.forEach(item => {
@@ -423,13 +346,13 @@
         // console.log('defaultProps', res)
       })
     },
-    callback (row) {
+    callback(row) {
       console.log(row)
       this.$set(this.searchForm, 'companyId', row.id)
       this.$set(this.searchForm, 'erpOrgId', row.erpId)
       this.getMemberList()
     },
-    TransferSub () {
+    TransferSub() {
       const { activeIndex } = this
       if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
         if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
@@ -450,7 +373,7 @@
       this.isShowTransfer = false
       console.log(this.searchForm.objIds)
     },
-    memDel (memIndex) {
+    memDel(memIndex) {
       const { activeIndex } = this
       this.apprList.forEach((item, index) => {
         if (activeIndex === index) {
@@ -462,11 +385,11 @@
         }
       })
     },
-    selStaff () {
+    selStaff() {
       this.isShowTransfer = true
       this.getMemberList()
     },
-    seleItem (i) {
+    seleItem(i) {
       this.list.forEach((item, index) => {
         item.active = index === i
       })
@@ -484,6 +407,7 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
+
   .config_list {
     width: 543px;
     height: 100%;
@@ -493,18 +417,21 @@
     box-sizing: border-box;
     border: 1px solid #eeeeee;
     background: #f7f7f7;
+
     .config_list_head {
       width: 100%;
       height: 40px;
       display: flex;
       align-items: center;
       justify-content: space-between;
+
       span {
         font-size: 18px;
         font-weight: 500;
         color: #222222;
       }
     }
+
     .config_content {
       width: 100%;
       height: calc(100% - 40px);
@@ -514,28 +441,35 @@
       display: flex;
       align-items: center;
       flex-direction: column;
+
       &::-webkit-scrollbar {
         width: 0;
       }
+
       .active {
         border: 2px solid #4456ac !important;
       }
+
       .yellow {
         background: #e89e42 !important;
       }
+
       .blue {
         background: #5094f3 !important;
       }
+
       .arrows {
         display: flex;
         flex-direction: column;
         align-items: center;
         position: relative;
+
         .line {
           width: 1px;
           height: 60px;
           background-color: #ccc;
         }
+
         .add {
           font-size: 40px;
           color: #2080f7;
@@ -544,10 +478,12 @@
           z-index: 999;
           top: 10px;
         }
+
         img {
           width: 12px;
         }
       }
+
       .item {
         width: 200px;
         cursor: pointer;
@@ -558,12 +494,14 @@
         position: relative;
         display: flex;
         flex-direction: column;
+
         .head {
           height: 32px;
           line-height: 32px;
           padding: 2px 12px;
           color: #fff;
         }
+
         .content {
           flex: 1;
           background-color: #fff;
@@ -572,32 +510,39 @@
           padding: 0 12px;
           justify-content: space-between;
         }
+
         &:last-child {
           margin: 0 !important;
         }
       }
     }
   }
+
   .config_data {
     flex: 1;
     height: 100%;
     margin-left: 20px;
+
     .config_data_submit {
       margin-top: 50px;
     }
+
     .config_data_item {
       width: 100%;
       display: flex;
       flex-direction: column;
       margin-bottom: 30px;
+
       &:last-child {
         margin: 0 !important;
       }
+
       .config_data_item_label {
         font-size: 16px;
         font-weight: 500;
         color: #222222;
         margin-bottom: 20px;
+
         span {
           font-size: 12px;
           font-weight: 400;
@@ -605,14 +550,17 @@
           margin-left: 10px;
         }
       }
+
       .config_data_item_reviewed {
         width: 100%;
         margin-top: 20px;
+
         .config_data_item_reviewed_r {
           margin-top: 10px;
           width: 100%;
           display: flex;
           align-items: center;
+
           span {
             flex-shrink: 0;
             font-size: 14px;
@@ -620,15 +568,18 @@
             color: #666666;
           }
         }
+
         .config_data_item_reviewed_label {
           display: flex;
           align-items: center;
+
           span {
             &:nth-child(1) {
               font-size: 14px;
               font-weight: 400;
               color: #222222;
             }
+
             &:nth-child(2) {
               font-size: 12px;
               font-weight: 400;
@@ -641,6 +592,7 @@
     }
   }
 }
+
 .config_data_item_reviewed_content {
   width: 400px;
   margin-top: 10px;
@@ -652,6 +604,7 @@
   display: flex;
   align-items: flex-start;
   flex-wrap: wrap;
+
   .add {
     font-size: 12px;
     font-weight: 400;
@@ -659,6 +612,7 @@
     cursor: pointer;
     margin-top: 3px;
   }
+
   .config_data_item_reviewed_content_item {
     padding: 3px 5px;
     background: #f4f7fc;
@@ -666,11 +620,13 @@
     box-sizing: border-box;
     margin-right: 10px;
     margin-bottom: 10px;
+
     span {
       font-size: 12px;
       font-weight: 400;
       color: #333333;
     }
+
     i {
       color: #949ba2;
       margin-left: 10px;
@@ -678,22 +634,27 @@
     }
   }
 }
+
 .staff_modal {
   display: flex;
+
   .left {
     width: 300px;
     margin-right: 20px;
   }
+
   .transfer {
     height: 600px;
     width: 100%;
     display: flex;
     justify-content: center;
     align-items: center;
-    ::v-deep .el-transfer-panel{
+
+    ::v-deep .el-transfer-panel {
       flex: 1;
       height: 100%;
     }
+
     ::v-deep .el-transfer-panel__body {
       height: 500px;
     }
diff --git a/admin/src/views/business/approvalReport.vue b/admin/src/views/business/approvalReport.vue
index 0ce20bd..d37953a 100644
--- a/admin/src/views/business/approvalReport.vue
+++ b/admin/src/views/business/approvalReport.vue
@@ -9,52 +9,42 @@
           <div class="config_content">
             <div class="item">
               <div class="head">鍙戣捣浜�</div>
-              <div class="content">璁垮</div>
+              <div class="content">琚浜�</div>
             </div>
             <div class="arrows">
               <div class="line"></div>
               <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
             </div>
             <div v-for="(item, index) in apprList" :key="index">
-              <div
-                class="item yellow"
-                :class="{
-                  active: activeIndex == index,
-                  blue: item.type == '1',
-                }"
-                @click="flowClick(index)"
-              >
+              <div class="item yellow" :class="{
+                active: activeIndex == index,
+                blue: item.type == '1',
+              }" @click="flowClick(index)">
                 <div class="head">{{ item.remark }}</div>
                 <div class="content">
                   <!-- 瀹℃壒 -->
                   <template v-if="item.type == 0">
                     <template v-if="item.memberType == '0'">
-                    <div>琚浜�</div>
-                  </template>
+                      <div>琚浜�</div>
+                    </template>
                     <template v-if="item.memberType == '2'">
                       <div>閮ㄩ棬涓荤</div>
                     </template>
                     <template v-if="item.memberType == '1'">
                       <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
+                        <span>{{ item.objIds[0].name }}
+                          {{ item.objIds[0].companyName }}</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else-if="item.objIds && item.objIds.length > 1">
                         <span>{{ item.objIds[0].name }} 绛�</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else>璇烽�夋嫨</div>
                       <i class="el-icon-arrow-right"></i>
@@ -63,19 +53,14 @@
                   <!-- 鎶勯�� -->
                   <template v-if="item.type == 1">
                     <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
-                      </div>
-                      <div v-else-if="item.objIds && item.objIds.length > 1">
-                        <span>{{ item.objIds[0].name }} 绛�</span>
-                      </div>
-                      <div v-else>璇烽�夋嫨</div>
-                    <i
-                      v-if="item.memberType == '1'"
-                      class="el-icon-arrow-right"
-                    ></i>
+                      <span>{{ item.objIds[0].name }}
+                        {{ item.objIds[0].companyName }}</span>
+                    </div>
+                    <div v-else-if="item.objIds && item.objIds.length > 1">
+                      <span>{{ item.objIds[0].name }} 绛�</span>
+                    </div>
+                    <div v-else>璇烽�夋嫨</div>
+                    <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
                   </template>
                 </div>
               </div>
@@ -84,11 +69,7 @@
                   <div class="line"></div>
                   <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
                 </template>
-                <i
-                  v-if="apprList.length - 2 === index"
-                  @click="handleAddAppr()"
-                  class="el-icon-circle-plus add"
-                ></i>
+                <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
               </div>
             </div>
           </div>
@@ -98,118 +79,74 @@
             <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
             <div class="df_ac mb10">
               <div>瀹℃壒鑺傜偣鍚嶇О</div>
-              <el-input
-                class="w200 ml10"
-                v-model="apprList[activeIndex].remark"
-              ></el-input>
+              <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
             </div>
             <!-- 鎶勯�佷汉 -->
             <template v-if="apprList[activeIndex].type == '1'">
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="mem,memIndex in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i @click="memDel(memIndex)" class="el-icon-close"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </template>
-            <el-radio-group
-              v-if="apprList[activeIndex].type == '0'"
-              v-model="apprList[activeIndex].memberType"
-            >
+            <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
               <el-radio :label="0">琚浜�</el-radio>
               <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
               <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
             </el-radio-group>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 1"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
               <div class="config_data_item_reviewed_label">
                 <span>鎸囧畾瀹℃牳浜�</span>
                 <span>涓嶈秴杩�20浜�</span>
               </div>
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="(mem, memIndex) in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i class="el-icon-close" @click="memDel(memIndex)"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </div>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 2"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
               <div class="config_data_item_reviewed_label">
                 <span>閮ㄩ棬涓荤</span>
               </div>
               <div class="config_data_item_reviewed_r">
                 <span>琚浜虹殑</span>
-                <el-select
-                  v-model="apprList[activeIndex].objLevel"
-                  placeholder="璇烽�夋嫨"
-                  style="margin: 0 20px 0 10px"
-                >
+                <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
                   <el-option label="鐩存帴涓荤" :value="0" />
                   <el-option label="浜岀骇涓荤" :value="1" />
                   <el-option label="涓夌骇涓荤" :value="2" />
                   <el-option label="鍥涚骇涓荤" :value="4" />
                 </el-select>
-                <el-checkbox
-                  v-model="apprList[activeIndex].noleaderOpt"
-                  :true-label="1"
-                  :false-label="0"
-                  >鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox
-                >
+                <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
+                  :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
               </div>
             </div>
           </div>
-          <div
-            class="config_data_item"
-            v-if="
-              (apprList[activeIndex].memberType == 1 ||
-                apprList[activeIndex].memberType == 2) &&
-              apprList[activeIndex].type == '0'
-            "
-          >
+          <div class="config_data_item" v-if="
+            (apprList[activeIndex].memberType == 1 ||
+              apprList[activeIndex].memberType == 2) &&
+            apprList[activeIndex].type == '0'
+          ">
             <div class="config_data_item_label">
               瀹℃壒鏂瑰紡
               <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
             </div>
-            <el-radio-group
-              v-model="apprList[activeIndex].approveType"
-              style="display: flex; flex-direction: column"
-            >
-              <el-radio :label="0" style="margin-bottom: 20px"
-                >鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio
-              >
+            <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
+              <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
               <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
             </el-radio-group>
           </div>
           <div class="config_data_submit">
-            <el-button
-              @click="onSubmit"
-              :loading="subLoading"
-              style="background: #435ebe"
-              type="primary"
-              >淇濆瓨閰嶇疆椤�</el-button
-            >
-            <el-button
-              v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1"
-              type="danger"
-              plain
-              @click="handleDel"
-              >鍒犻櫎鑺傜偣</el-button
-            >
+            <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
+              type="primary">淇濆瓨閰嶇疆椤�</el-button>
+            <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
+              @click="handleDel">鍒犻櫎鑺傜偣</el-button>
           </div>
         </div>
       </div>
@@ -218,41 +155,27 @@
     <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
       <div class="staff_modal">
         <div class="left">
-          <div
-            style="
+          <div style="
               width: 100%;
               height: 50px;
               background: rgba(242, 242, 242, 1);
               line-height: 50px;
               text-align: center;
               font-size: 14px;
-            "
-          >
+            ">
             浼佷笟缁勭粐鏋舵瀯
           </div>
-          <div style="width: 100%; height: 100%; overflow-y: scroll">
-            <Tree
-              :list="companyTree"
-              :defaultProps="{
-                name: 'name',
-                status: 'fsStatus',
-                children: 'childList',
-                id: 'id',
-              }"
-              @callback="callback"
-            />
+          <div style="width: 100%; max-height: 560px; overflow-y: scroll">
+            <Tree :list="companyTree" :defaultProps="{
+              name: 'name',
+              status: 'fsStatus',
+              children: 'childList',
+              id: 'id',
+            }" @callback="callback" />
           </div>
         </div>
-        <el-transfer
-          filterable
-          :title="['鏈��', '宸查��']"
-          openAll
-          :props="{ label: 'name', key: 'keyTemp' }"
-          filter-placeholder="鎼滅储鍛樺伐"
-          v-model="searchForm.objIds"
-          :data="memberList"
-          class="transfer"
-        >
+        <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
+          filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
         </el-transfer>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -276,7 +199,7 @@
     TableLayout,
     Tree
   },
-  data () {
+  data() {
     return {
       activeType: '2',
       subLoading: false,
@@ -293,12 +216,12 @@
       companyTree: []
     }
   },
-  created () {
+  created() {
     this.getfindCompanyTreePage()
     this.initDate()
   },
   methods: {
-    flowClick (i) {
+    flowClick(i) {
       this.activeIndex = i
       this.apprList.forEach((item, index) => {
         if (i === index) {
@@ -316,7 +239,7 @@
         }
       })
     },
-    initDate () {
+    initDate() {
       const { activeType } = this
       approveTemplByType(activeType).then(res => {
         if (res && res.paramList) {
@@ -330,7 +253,7 @@
                   companyName: i.companyName
                 }
               })
-            }else{
+            } else {
               item.objIds = []
             }
           })
@@ -342,7 +265,7 @@
         // console.log(res);
       })
     },
-    onSubmit () {
+    onSubmit() {
       const { apprList, activeType } = this
       const temp = JSON.parse(JSON.stringify(apprList))
       temp.forEach((item, index) => {
@@ -364,18 +287,18 @@
         this.subLoading = false
       })
     },
-    handleDel () {
+    handleDel() {
       const { activeIndex } = this
       this.apprList.splice(activeIndex, 1)
       this.activeIndex = 0
     },
-    handleAddAppr () {
-      this.apprList.splice(this.apprList.length - 2, 0, { remark: '瀹℃壒浜�',approveType: 0, active: false, type: 0, objIds: [] })
+    handleAddAppr() {
+      this.apprList.splice(this.apprList.length - 2, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
       // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
     },
 
     // 鑾峰彇缁勭粐鏍�
-    getfindCompanyTreePage () {
+    getfindCompanyTreePage() {
       fetchList()
         .then(res => {
           if (res && res.length > 0) {
@@ -387,7 +310,7 @@
           }
         })
     },
-    getMemberList () {
+    getMemberList() {
       memberListPost({
         model: {
           companyId: this.searchForm.companyId || '',
@@ -396,11 +319,11 @@
           erpOrgId: '',
           hasFace: '',
           hkStatus: '',
-          includeChild: false,
+          includeChild: true,
           type: 2
         },
         page: 1,
-        capacity: 30
+        capacity: 300
       }).then(res => {
         this.memberList = res.records || []
         this.memberList.forEach(item => {
@@ -409,13 +332,13 @@
         // console.log('defaultProps', res)
       })
     },
-    callback (row) {
+    callback(row) {
       console.log(row)
       this.$set(this.searchForm, 'companyId', row.id)
       this.$set(this.searchForm, 'erpOrgId', row.erpId)
       this.getMemberList()
     },
-    TransferSub () {
+    TransferSub() {
       const { activeIndex } = this
       if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
         if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
@@ -436,7 +359,7 @@
       this.isShowTransfer = false
       console.log(this.searchForm.objIds)
     },
-    memDel (memIndex) {
+    memDel(memIndex) {
       const { activeIndex } = this
       this.apprList.forEach((item, index) => {
         if (activeIndex === index) {
@@ -448,11 +371,11 @@
         }
       })
     },
-    selStaff () {
+    selStaff() {
       this.isShowTransfer = true
       this.getMemberList()
     },
-    seleItem (i) {
+    seleItem(i) {
       this.list.forEach((item, index) => {
         item.active = index === i
       })
@@ -470,6 +393,7 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
+
   .config_list {
     width: 543px;
     height: 100%;
@@ -479,18 +403,21 @@
     box-sizing: border-box;
     border: 1px solid #eeeeee;
     background: #f7f7f7;
+
     .config_list_head {
       width: 100%;
       height: 40px;
       display: flex;
       align-items: center;
       justify-content: space-between;
+
       span {
         font-size: 18px;
         font-weight: 500;
         color: #222222;
       }
     }
+
     .config_content {
       width: 100%;
       height: calc(100% - 40px);
@@ -500,28 +427,35 @@
       display: flex;
       align-items: center;
       flex-direction: column;
+
       &::-webkit-scrollbar {
         width: 0;
       }
+
       .active {
         border: 2px solid #4456ac !important;
       }
+
       .yellow {
         background: #e89e42 !important;
       }
+
       .blue {
         background: #5094f3 !important;
       }
+
       .arrows {
         display: flex;
         flex-direction: column;
         align-items: center;
         position: relative;
+
         .line {
           width: 1px;
           height: 60px;
           background-color: #ccc;
         }
+
         .add {
           font-size: 40px;
           color: #2080f7;
@@ -530,10 +464,12 @@
           z-index: 999;
           top: 10px;
         }
+
         img {
           width: 12px;
         }
       }
+
       .item {
         width: 200px;
         cursor: pointer;
@@ -544,12 +480,14 @@
         position: relative;
         display: flex;
         flex-direction: column;
+
         .head {
           height: 32px;
           line-height: 32px;
           padding: 2px 12px;
           color: #fff;
         }
+
         .content {
           flex: 1;
           background-color: #fff;
@@ -558,32 +496,39 @@
           padding: 0 12px;
           justify-content: space-between;
         }
+
         &:last-child {
           margin: 0 !important;
         }
       }
     }
   }
+
   .config_data {
     flex: 1;
     height: 100%;
     margin-left: 20px;
+
     .config_data_submit {
       margin-top: 50px;
     }
+
     .config_data_item {
       width: 100%;
       display: flex;
       flex-direction: column;
       margin-bottom: 30px;
+
       &:last-child {
         margin: 0 !important;
       }
+
       .config_data_item_label {
         font-size: 16px;
         font-weight: 500;
         color: #222222;
         margin-bottom: 20px;
+
         span {
           font-size: 12px;
           font-weight: 400;
@@ -591,14 +536,17 @@
           margin-left: 10px;
         }
       }
+
       .config_data_item_reviewed {
         width: 100%;
         margin-top: 20px;
+
         .config_data_item_reviewed_r {
           margin-top: 10px;
           width: 100%;
           display: flex;
           align-items: center;
+
           span {
             flex-shrink: 0;
             font-size: 14px;
@@ -606,15 +554,18 @@
             color: #666666;
           }
         }
+
         .config_data_item_reviewed_label {
           display: flex;
           align-items: center;
+
           span {
             &:nth-child(1) {
               font-size: 14px;
               font-weight: 400;
               color: #222222;
             }
+
             &:nth-child(2) {
               font-size: 12px;
               font-weight: 400;
@@ -627,6 +578,7 @@
     }
   }
 }
+
 .config_data_item_reviewed_content {
   width: 400px;
   margin-top: 10px;
@@ -638,6 +590,7 @@
   display: flex;
   align-items: flex-start;
   flex-wrap: wrap;
+
   .add {
     font-size: 12px;
     font-weight: 400;
@@ -645,6 +598,7 @@
     cursor: pointer;
     margin-top: 3px;
   }
+
   .config_data_item_reviewed_content_item {
     padding: 3px 5px;
     background: #f4f7fc;
@@ -652,11 +606,13 @@
     box-sizing: border-box;
     margin-right: 10px;
     margin-bottom: 10px;
+
     span {
       font-size: 12px;
       font-weight: 400;
       color: #333333;
     }
+
     i {
       color: #949ba2;
       margin-left: 10px;
@@ -664,22 +620,27 @@
     }
   }
 }
+
 .staff_modal {
   display: flex;
+
   .left {
     width: 300px;
     margin-right: 20px;
   }
+
   .transfer {
     height: 600px;
     width: 100%;
     display: flex;
     justify-content: center;
     align-items: center;
-    ::v-deep .el-transfer-panel{
+
+    ::v-deep .el-transfer-panel {
       flex: 1;
       height: 100%;
     }
+
     ::v-deep .el-transfer-panel__body {
       height: 500px;
     }
diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index d0312a4..296a05e 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -82,7 +82,7 @@
       isRemPsd: false,
       username: '',
       password: '',
-      activeTab: '1',
+      activeTab: '0',
       // 楠岃瘉鐮�
       captcha: {
         loading: false,
diff --git a/admin/src/views/operation/serviceCar/apprConfig.vue b/admin/src/views/operation/serviceCar/apprConfig.vue
index 53a5e9c..e0bb8c7 100644
--- a/admin/src/views/operation/serviceCar/apprConfig.vue
+++ b/admin/src/views/operation/serviceCar/apprConfig.vue
@@ -20,14 +20,10 @@
               <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
             </div>
             <div v-for="(item, index) in apprList" :key="index">
-              <div
-                class="item yellow"
-                :class="{
-                  active: activeIndex == index,
-                  blue: item.type == '1',
-                }"
-                @click="flowClick(index)"
-              >
+              <div class="item yellow" :class="{
+                active: activeIndex == index,
+                blue: item.type == '1',
+              }" @click="flowClick(index)">
                 <div class="head">{{ item.remark }}</div>
                 <div class="content">
                   <!-- 瀹℃壒 -->
@@ -37,25 +33,19 @@
                     </template>
                     <template v-if="item.memberType == '1'">
                       <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
+                        <span>{{ item.objIds[0].name }}
+                          {{ item.objIds[0].companyName }}</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else-if="item.objIds && item.objIds.length > 1">
                         <span>{{ item.objIds[0].name }} 绛�</span>
                         <span v-if="item.approveType == 0 && item.type == '0'">
-                          鎴栫</span
-                        >
+                          鎴栫</span>
                         <span v-if="item.approveType == 1 && item.type == '0'">
-                          浼氱</span
-                        >
+                          浼氱</span>
                       </div>
                       <div v-else>璇烽�夋嫨</div>
                       <i class="el-icon-arrow-right"></i>
@@ -64,19 +54,14 @@
                   <!-- 鎶勯�� -->
                   <template v-if="item.type == 1">
                     <div v-if="item.objIds && item.objIds.length === 1">
-                        <span
-                          >{{ item.objIds[0].name }}
-                          {{ item.objIds[0].companyName }}</span
-                        >
-                      </div>
-                      <div v-else-if="item.objIds && item.objIds.length > 1">
-                        <span>{{ item.objIds[0].name }} 绛�</span>
-                      </div>
-                      <div v-else>璇烽�夋嫨</div>
-                    <i
-                      v-if="item.memberType == '1'"
-                      class="el-icon-arrow-right"
-                    ></i>
+                      <span>{{ item.objIds[0].name }}
+                        {{ item.objIds[0].companyName }}</span>
+                    </div>
+                    <div v-else-if="item.objIds && item.objIds.length > 1">
+                      <span>{{ item.objIds[0].name }} 绛�</span>
+                    </div>
+                    <div v-else>璇烽�夋嫨</div>
+                    <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
                   </template>
                 </div>
               </div>
@@ -85,11 +70,7 @@
                   <div class="line"></div>
                   <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
                 </template>
-                <i
-                  v-if="apprList.length - 2 === index"
-                  @click="handleAddAppr()"
-                  class="el-icon-circle-plus add"
-                ></i>
+                <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
               </div>
             </div>
           </div>
@@ -99,127 +80,79 @@
             <div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
             <div class="df_ac mb10">
               <div>瀹℃壒鑺傜偣鍚嶇О</div>
-              <el-input
-                class="w200 ml10"
-                v-model="apprList[activeIndex].remark"
-              ></el-input>
+              <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
             </div>
             <!-- 鎶勯�佷汉 -->
             <template v-if="apprList[activeIndex].type == '1'">
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="mem, memIndex in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i @click="memDel(memIndex)" class="el-icon-close"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </template>
-            <el-radio-group
-              v-if="apprList[activeIndex].type == '0'"
-              v-model="apprList[activeIndex].memberType"
-            >
+            <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
               <!-- <el-radio :label="0">琚浜�</el-radio> -->
               <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
               <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
             </el-radio-group>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 1"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
               <div class="config_data_item_reviewed_label">
                 <span>鎸囧畾瀹℃牳浜�</span>
                 <span>涓嶈秴杩�20浜�</span>
               </div>
               <div class="config_data_item_reviewed_content">
-                <div
-                  v-for="(mem, memIndex) in apprList[activeIndex].objIds"
-                  :key="mem.id"
-                  class="config_data_item_reviewed_content_item"
-                >
+                <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
+                  class="config_data_item_reviewed_content_item">
                   <span>{{ mem.name }}</span>
                   <i class="el-icon-close" @click="memDel(memIndex)"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
             </div>
-            <div
-              class="config_data_item_reviewed"
-              v-if="apprList[activeIndex].memberType == 2"
-            >
+            <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
               <div class="config_data_item_reviewed_label">
                 <span>閮ㄩ棬涓荤</span>
               </div>
               <div class="config_data_item_reviewed_r">
                 <span>鐢宠浜虹殑</span>
-                <el-select
-                  v-model="apprList[activeIndex].objLevel"
-                  placeholder="璇烽�夋嫨"
-                  style="margin: 0 20px 0 10px"
-                >
+                <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
                   <el-option label="鐩存帴涓荤" :value="0" />
                   <el-option label="浜岀骇涓荤" :value="1" />
                   <el-option label="涓夌骇涓荤" :value="2" />
                   <el-option label="鍥涚骇涓荤" :value="4" />
                 </el-select>
-                <el-checkbox
-                  v-model="apprList[activeIndex].noleaderOpt"
-                  :true-label="1"
-                  :false-label="0"
-                  >鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox
-                >
+                <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
+                  :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
               </div>
             </div>
           </div>
-          <div
-            class="config_data_item"
-            v-if="
-              (apprList[activeIndex].memberType == 1 ||
-                apprList[activeIndex].memberType == 2) &&
-              apprList[activeIndex].type == '0'
-            "
-          >
+          <div class="config_data_item" v-if="
+            (apprList[activeIndex].memberType == 1 ||
+              apprList[activeIndex].memberType == 2) &&
+            apprList[activeIndex].type == '0'
+          ">
             <div class="config_data_item_label">
               瀹℃壒鏂瑰紡
               <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
             </div>
-            <el-radio-group
-              v-model="apprList[activeIndex].approveType"
-              style="display: flex; flex-direction: column"
-            >
-              <el-radio :label="0" style="margin-bottom: 20px"
-                >鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio
-              >
+            <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
+              <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
               <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
             </el-radio-group>
           </div>
           <div v-if="apprList[activeIndex].type == '0'" class="df_ac mb10">
             <div>鍏佽淇敼"椹鹃┒鍛�"</div>
-            <el-switch
-              class="ml10"
-              :active-value="1"
-              :inactive-value="0"
-              v-model="apprList[activeIndex].driverParam"
-            ></el-switch>
+            <el-switch class="ml10" :active-value="1" :inactive-value="0"
+              v-model="apprList[activeIndex].driverParam"></el-switch>
           </div>
           <div class="config_data_submit">
-            <el-button
-              @click="onSubmit"
-              :loading="subLoading"
-              style="background: #435ebe"
-              type="primary"
-              >淇濆瓨閰嶇疆椤�</el-button
-            >
-            <el-button
-              v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1"
-              type="danger"
-              plain
-              @click="handleDel"
-              >鍒犻櫎鑺傜偣</el-button
-            >
+            <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
+              type="primary">淇濆瓨閰嶇疆椤�</el-button>
+            <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
+              @click="handleDel">鍒犻櫎鑺傜偣</el-button>
           </div>
         </div>
       </div>
@@ -228,41 +161,27 @@
     <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px">
       <div class="staff_modal">
         <div class="left">
-          <div
-            style="
+          <div style="
               width: 100%;
               height: 50px;
               background: rgba(242, 242, 242, 1);
               line-height: 50px;
               text-align: center;
               font-size: 14px;
-            "
-          >
+            ">
             浼佷笟缁勭粐鏋舵瀯
           </div>
-          <div style="width: 100%; height: 100%; overflow-y: scroll">
-            <Tree
-              :list="companyTree"
-              :defaultProps="{
-                name: 'name',
-                status: 'fsStatus',
-                children: 'childList',
-                id: 'id',
-              }"
-              @callback="callback"
-            />
+          <div style="width: 100%; max-height: 560px; overflow-y: scroll">
+            <Tree :list="companyTree" :defaultProps="{
+              name: 'name',
+              status: 'fsStatus',
+              children: 'childList',
+              id: 'id',
+            }" @callback="callback" />
           </div>
         </div>
-        <el-transfer
-          filterable
-          :title="['鏈��', '宸查��']"
-          openAll
-          :props="{ label: 'name', key: 'keyTemp' }"
-          filter-placeholder="鎼滅储鍛樺伐"
-          v-model="searchForm.objIds"
-          :data="memberList"
-          class="transfer"
-        >
+        <el-transfer filterable :title="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
+          filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
         </el-transfer>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -286,7 +205,7 @@
     TableLayout,
     Tree
   },
-  data () {
+  data() {
     return {
       activeType: '3',
       subLoading: false,
@@ -303,12 +222,12 @@
       companyTree: []
     }
   },
-  created () {
+  created() {
     this.getfindCompanyTreePage()
     this.initDate()
   },
   methods: {
-    handleClick () {
+    handleClick() {
       this.apprList = []
       const arr = [
         { remark: '瀹℃壒浜�', active: false, type: 0, objIds: [] },
@@ -317,7 +236,7 @@
       this.apprList = [...arr]
       this.initDate()
     },
-    flowClick (i) {
+    flowClick(i) {
       this.activeIndex = i
       this.apprList.forEach((item, index) => {
         if (i === index) {
@@ -335,7 +254,7 @@
         }
       })
     },
-    initDate () {
+    initDate() {
       const { activeType } = this
       approveTemplByType(activeType).then(res => {
         if (res && res.paramList) {
@@ -349,7 +268,7 @@
                   companyName: i.companyName
                 }
               })
-            }else{
+            } else {
               item.objIds = []
             }
           })
@@ -361,7 +280,7 @@
         // console.log(res);
       })
     },
-    onSubmit () {
+    onSubmit() {
       const { apprList, activeType } = this
       const temp = JSON.parse(JSON.stringify(apprList))
       temp.forEach((item, index) => {
@@ -383,18 +302,18 @@
         this.subLoading = false
       })
     },
-    handleDel () {
+    handleDel() {
       const { activeIndex } = this
       this.apprList.splice(activeIndex, 1)
       this.activeIndex = 0
     },
-    handleAddAppr () {
-      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�',approveType: 0, active: false, type: 0, objIds: [] })
+    handleAddAppr() {
+      this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', approveType: 0, active: false, type: 0, objIds: [] })
       // this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
     },
 
     // 鑾峰彇缁勭粐鏍�
-    getfindCompanyTreePage () {
+    getfindCompanyTreePage() {
       fetchList()
         .then(res => {
           if (res && res.length > 0) {
@@ -406,7 +325,7 @@
           }
         })
     },
-    getMemberList () {
+    getMemberList() {
       memberListPost({
         model: {
           companyId: this.searchForm.companyId || '',
@@ -415,11 +334,11 @@
           erpOrgId: '',
           hasFace: '',
           hkStatus: '',
-          includeChild: false,
+          includeChild: true,
           type: 2
         },
         page: 1,
-        capacity: 30
+        capacity: 300
       }).then(res => {
         this.memberList = res.records || []
         this.memberList.forEach(item => {
@@ -428,13 +347,13 @@
         // console.log('defaultProps', res)
       })
     },
-    callback (row) {
+    callback(row) {
       console.log(row)
       this.$set(this.searchForm, 'companyId', row.id)
       this.$set(this.searchForm, 'erpOrgId', row.erpId)
       this.getMemberList()
     },
-    TransferSub () {
+    TransferSub() {
       const { activeIndex } = this
       if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
         if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
@@ -455,7 +374,7 @@
       this.isShowTransfer = false
       console.log(this.searchForm.objIds)
     },
-    memDel (memIndex) {
+    memDel(memIndex) {
       const { activeIndex } = this
       this.apprList.forEach((item, index) => {
         if (activeIndex === index) {
@@ -467,11 +386,11 @@
         }
       })
     },
-    selStaff () {
+    selStaff() {
       this.isShowTransfer = true
       this.getMemberList()
     },
-    seleItem (i) {
+    seleItem(i) {
       this.list.forEach((item, index) => {
         item.active = index === i
       })
@@ -489,6 +408,7 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
+
   .config_list {
     width: 543px;
     height: 100%;
@@ -498,18 +418,21 @@
     box-sizing: border-box;
     border: 1px solid #eeeeee;
     background: #f7f7f7;
+
     .config_list_head {
       width: 100%;
       height: 40px;
       display: flex;
       align-items: center;
       justify-content: space-between;
+
       span {
         font-size: 18px;
         font-weight: 500;
         color: #222222;
       }
     }
+
     .config_content {
       width: 100%;
       height: calc(100% - 40px);
@@ -519,28 +442,35 @@
       display: flex;
       align-items: center;
       flex-direction: column;
+
       &::-webkit-scrollbar {
         width: 0;
       }
+
       .active {
         border: 2px solid #4456ac !important;
       }
+
       .yellow {
         background: #e89e42 !important;
       }
+
       .blue {
         background: #5094f3 !important;
       }
+
       .arrows {
         display: flex;
         flex-direction: column;
         align-items: center;
         position: relative;
+
         .line {
           width: 1px;
           height: 60px;
           background-color: #ccc;
         }
+
         .add {
           font-size: 40px;
           color: #2080f7;
@@ -549,10 +479,12 @@
           z-index: 999;
           top: 10px;
         }
+
         img {
           width: 12px;
         }
       }
+
       .item {
         width: 200px;
         cursor: pointer;
@@ -563,12 +495,14 @@
         position: relative;
         display: flex;
         flex-direction: column;
+
         .head {
           height: 32px;
           line-height: 32px;
           padding: 2px 12px;
           color: #fff;
         }
+
         .content {
           flex: 1;
           background-color: #fff;
@@ -577,32 +511,39 @@
           padding: 0 12px;
           justify-content: space-between;
         }
+
         &:last-child {
           margin: 0 !important;
         }
       }
     }
   }
+
   .config_data {
     flex: 1;
     height: 100%;
     margin-left: 20px;
+
     .config_data_submit {
       margin-top: 50px;
     }
+
     .config_data_item {
       width: 100%;
       display: flex;
       flex-direction: column;
       margin-bottom: 30px;
+
       &:last-child {
         margin: 0 !important;
       }
+
       .config_data_item_label {
         font-size: 16px;
         font-weight: 500;
         color: #222222;
         margin-bottom: 20px;
+
         span {
           font-size: 12px;
           font-weight: 400;
@@ -610,14 +551,17 @@
           margin-left: 10px;
         }
       }
+
       .config_data_item_reviewed {
         width: 100%;
         margin-top: 20px;
+
         .config_data_item_reviewed_r {
           margin-top: 10px;
           width: 100%;
           display: flex;
           align-items: center;
+
           span {
             flex-shrink: 0;
             font-size: 14px;
@@ -625,15 +569,18 @@
             color: #666666;
           }
         }
+
         .config_data_item_reviewed_label {
           display: flex;
           align-items: center;
+
           span {
             &:nth-child(1) {
               font-size: 14px;
               font-weight: 400;
               color: #222222;
             }
+
             &:nth-child(2) {
               font-size: 12px;
               font-weight: 400;
@@ -646,6 +593,7 @@
     }
   }
 }
+
 .config_data_item_reviewed_content {
   width: 400px;
   margin-top: 10px;
@@ -657,6 +605,7 @@
   display: flex;
   align-items: flex-start;
   flex-wrap: wrap;
+
   .add {
     font-size: 12px;
     font-weight: 400;
@@ -664,6 +613,7 @@
     cursor: pointer;
     margin-top: 3px;
   }
+
   .config_data_item_reviewed_content_item {
     padding: 3px 5px;
     background: #f4f7fc;
@@ -671,11 +621,13 @@
     box-sizing: border-box;
     margin-right: 10px;
     margin-bottom: 10px;
+
     span {
       font-size: 12px;
       font-weight: 400;
       color: #333333;
     }
+
     i {
       color: #949ba2;
       margin-left: 10px;
@@ -683,22 +635,27 @@
     }
   }
 }
+
 .staff_modal {
   display: flex;
+
   .left {
     width: 300px;
     margin-right: 20px;
   }
+
   .transfer {
     height: 600px;
     width: 100%;
     display: flex;
     justify-content: center;
     align-items: center;
-    ::v-deep .el-transfer-panel{
+
+    ::v-deep .el-transfer-panel {
       flex: 1;
       height: 100%;
     }
+
     ::v-deep .el-transfer-panel__body {
       height: 500px;
     }
diff --git a/pda/api/index.js b/pda/api/index.js
index c7c9064..7ac7ff8 100644
--- a/pda/api/index.js
+++ b/pda/api/index.js
@@ -157,4 +157,12 @@
     method: 'get',
     data
   })
+}
+// 棰勭害 	璇︽儏
+export const driverApplyDetail = (data) => {
+  return http({
+    url: 'visitsAdmin/cloudService/web/driverPlatform/getDetail',
+    method: 'get',
+    data
+  })
 }
\ No newline at end of file
diff --git a/pda/manifest.json b/pda/manifest.json
index cb7800a..06d4bc0 100644
--- a/pda/manifest.json
+++ b/pda/manifest.json
@@ -1,96 +1,101 @@
-{
-	"name": "pda",
-	"appid": "__UNI__8789FB4",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	"h5": {
-		"router": {
-			"mode": "hash",
-			"base": "./"
-		},
-		// "base" : "/h5/"
-		"devServer": {
-			"port": 8090,
-			"historyApiFallback": true,
-			"disableHostCheck": true,
-			"proxy": {
-				"/gateway_interface": {
-					// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
-					"target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-					// "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-					"changeOrigin": true, // 鍏佽璺ㄥ煙 
-					"pathRewrite": {
-						"^/gateway_interface": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
-					}
-				}
-			},
-			"https": false
-		}
-	},
-	/* 5+App鐗规湁鐩稿叧 */
-	"app-plus": {
-		"usingComponents": true,
-		"nvueStyleCompiler": "uni-app",
-		"compilerVersion": 3,
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		/* 妯″潡閰嶇疆 */
-		"modules": {},
-		/* 搴旂敤鍙戝竷淇℃伅 */
-		"distribute": {
-			/* android鎵撳寘閰嶇疆 */
-			"android": {
-				"permissions": [
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				]
-			},
-			/* ios鎵撳寘閰嶇疆 */
-			"ios": {},
-			/* SDK閰嶇疆 */
-			"sdkConfigs": {}
-		}
-	},
-	/* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
-	"quickapp": {},
-	/* 灏忕▼搴忕壒鏈夌浉鍏� */
-	"mp-weixin": {
-		"appid": "",
-		"setting": {
-			"urlCheck": false
-		},
-		"usingComponents": true
-	},
-	"mp-alipay": {
-		"usingComponents": true
-	},
-	"mp-baidu": {
-		"usingComponents": true
-	},
-	"mp-toutiao": {
-		"usingComponents": true
-	},
-	"uniStatistics": {
-		"enable": false
-	},
-	"vueVersion": "2"
-}
\ No newline at end of file
+{
+    "name" : "鏈堝彴璋冨害",
+    "appid" : "__UNI__8789FB4",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    "h5" : {
+        "router" : {
+            "mode" : "hash",
+            "base" : "./"
+        },
+        // "base" : "/h5/"
+        "devServer" : {
+            "port" : 8090,
+            "historyApiFallback" : true,
+            "disableHostCheck" : true,
+            "proxy" : {
+                "/gateway_interface" : {
+                    // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
+                    "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+
+                    // "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    "changeOrigin" : true, // 鍏佽璺ㄥ煙 
+                    "pathRewrite" : {
+                        "^/gateway_interface" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+                    }
+                }
+            },
+            "https" : false
+        }
+    },
+    /* 5+App鐗规湁鐩稿叧 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 妯″潡閰嶇疆 */
+        "modules" : {},
+        /* 搴旂敤鍙戝竷淇℃伅 */
+        "distribute" : {
+            /* android鎵撳寘閰嶇疆 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios鎵撳寘閰嶇疆 */
+            "ios" : {
+                "dSYMs" : false
+            },
+            /* SDK閰嶇疆 */
+            "sdkConfigs" : {
+                "ad" : {}
+            }
+        }
+    },
+    /* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
+    "quickapp" : {},
+    /* 灏忕▼搴忕壒鏈夌浉鍏� */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}
diff --git a/pda/pages.json b/pda/pages.json
index 1ee5126..6d9ccbf 100644
--- a/pda/pages.json
+++ b/pda/pages.json
@@ -44,6 +44,13 @@
 				"navigationBarTitleText": "閰嶇疆鏄剧ず鏈堝彴",
 				"enablePullDownRefresh": false
 			}
+		},
+		{
+			"path": "pages/index/SubDetail",
+			"style": {
+				"navigationBarTitleText": "棰勭害璇︽儏",
+				"enablePullDownRefresh": false
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pda/pages/index/SubDetail.vue b/pda/pages/index/SubDetail.vue
new file mode 100644
index 0000000..c554aa8
--- /dev/null
+++ b/pda/pages/index/SubDetail.vue
@@ -0,0 +1,466 @@
+<template>
+  <view class="main_app">
+    <view class="status_wrap">
+      <view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
+      <view class="gray">{{info.carCodeFront}}</view>
+<!-- 			<view class="desc" :class="{
+			    gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
+			  }">{{ infoStatus }}</view> -->
+      <view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view>
+			<image v-if="info.status == 2" class="icon" src="@/static/ic_passed@2x.png" mode=""></image>
+			<image v-if="info.status == 3" class="icon" src="@/static/ic_refused@2x.png" mode=""></image>
+    </view>
+    <!--  -->
+    <view class="emyty"></view>
+    <view class="module_list">
+      <view class="item">
+        <view class="label">鍏ュ洯鍘熷洜</view>
+        <view class="value">{{info.inReason}}</view>
+      </view>
+      <view class="item">
+        <view class="label">鍚堝悓缂栧彿</view>
+        <view class="value">{{info.contractNum}}</view>
+      </view>
+			<view class="item">
+			  <view class="label">鍒板満鏃堕棿</view>
+			  <view v-if="info.arriveDate" class="value">{{info.arriveDate.slice(0,16)}}</view>
+			</view>
+			<view class="item">
+			  <view class="label">鍑嗚繍璇佺収鐗�</view>
+			  <view class="value">
+					<image
+						v-if="info.transportImg"
+					  class="avatar_wrap"
+					  :src="info.prefixUrl + info.transportImg"
+					></image>
+				</view>
+			</view>
+			<view class="item">
+			  <view class="label">鍏ュ簱绫诲瀷</view>
+			  <view class="value">{{info.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'}}</view>
+			</view>
+			<view class="item">
+			  <view class="label">鎬昏繍鏁伴噺</view>
+			  <view class="value">{{info.totalNum}}涓囨敮</view>
+			</view>
+      <view class="emyty"></view>
+      <view class="item">
+        <view class="label">鍙告満濮撳悕</view>
+        <view class="value">{{info.driverName}}
+        </view>
+      </view>
+      <view class="item">
+        <view class="label">鎵嬫満鍙�</view>
+        <view class="value">{{info.driverPhone}}</view>
+      </view>
+			<view class="item">
+			  <view class="label">杞︾墝鐓�</view>
+			  <view class="value">鍓� {{info.carCodeFront}}锛屽悗 {{info.carCodeBack}}</view>
+			</view>
+    </view>
+    <!-- 娴佺▼ -->
+    <view class="flow_wrap">
+      <view class="flow_title">娴佺▼</view>
+      <view class="list" v-if="
+          info.approveDateVO != null && info.approveDateVO.approveList != null
+        ">
+      	<view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
+      		<view class="separate"></view>
+      		<view class="avatar">
+      			<image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
+      			<image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
+      				src="@/static/staff/ic_shenpiren@2x.png" />
+						<image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
+      			<span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
+      			<image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
+      				mode="widthFix" />
+      			<image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
+      		</view>
+      		<view class="content">
+      			<view class="head">
+      				<view class="event">{{ item.title }}</view>
+      				<view class="time">{{ item.checkDate }}</view>
+      			</view>
+      			<view class="name_wrap">
+      				<text>{{ item.memberName
+                }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1'  }"
+      						v-if="item.statusInfo">({{ item.statusInfo }})</text></text>
+      			</view>
+      			<view v-if="item.checkInfo" class="remark">{{
+              item.checkInfo
+            }}</view>
+      			<!-- 鎶勯�佷汉 -->
+      			<view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
+      				<view class="child" v-for="child in item.approveList" :key="child.id">
+      					<image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
+      					<view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view>
+      					<view>{{ child.memberName }}</view>
+      				</view>
+      			</view>
+      		</view>
+      	</view>
+      </view>
+    </view>
+    <view class="emyty"></view>
+
+  </view>
+</template>
+
+<script>
+	import { driverApplyDetail } from '@/api'
+export default {
+  data() {
+    return {
+      showApprModal: false,
+			checkInfo: '',
+			infoStatus: '',
+			flag: '1',
+      info: {},
+			type: 0,
+			statusMap: {
+				0: '寰呭鎵�',
+				1: '瀹℃壒涓�',
+				2: '宸查�氳繃',
+				3: '宸叉嫆缁�',
+				4: '宸插彇娑�',
+			},
+    }
+  },
+	onLoad(option) {
+		// this.type = option.objType
+		// this.infoStatus = option.info
+		this.getDetail(option.id)
+	},
+  methods: {
+		getDetail(id) {
+			driverApplyDetail({id}).then(res => {
+				this.info = res.data
+				if(this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0 ){
+					this.info.approveDateVO.approveList.forEach(item => {
+						if(item.approveList && item.approveList.length == 1 && item.type !== 1){
+							item.title = item.approveList[0].title
+							item.faceImg = item.approveList[0].faceImg
+							item.memberName = item.approveList[0].memberName
+							item.statusInfo = item.approveList[0].statusInfo
+							item.approveList = []
+						}
+					})
+				}
+				console.log('this.info.approveDateVO', this.info.approveDateVO.approveList);
+			})
+		},
+  },
+}
+</script>
+<style>
+page {
+  background-color: #f7f7f7;
+}
+</style>
+<style lang="scss">
+.main_app {
+  background-color: #fff;
+  padding-bottom: 0;
+
+  .flow_wrap {
+  	padding: 30rpx 0;
+  
+  	.flow_title {
+  		font-weight: 600;
+  		font-size: 32rpx;
+  		color: #222222;
+  		margin-bottom: 24rpx;
+  	}
+  
+  	.list {
+  		.item {
+  			display: flex;
+  			margin-bottom: 48rpx;
+  			position: relative;
+  
+  			.separate {
+  				position: absolute;
+  				width: 4rpx;
+  				height: 100%;
+  				background-color: #eeeeee;
+  				left: 40rpx;
+  				transform: translate(-50%, 0);
+  				top: 80rpx;
+  			}
+  
+  			.avatar {
+  				width: 80rpx;
+  				height: 80rpx;
+  				position: relative;
+  				margin-right: 20rpx;
+  				display: flex;
+  				align-items: center;
+  				justify-content: center;
+  
+  				.img {
+  					width: 80rpx;
+  					height: 80rpx;
+  					border-radius: 50%;
+  				}
+  
+  				.img_name {
+  					font-size: 32rpx;
+  					color: #FFFFFF;
+  				}
+  
+  				.status {
+  					width: 28rpx;
+  					height: 28rpx;
+  					border-radius: 50%;
+  					position: absolute;
+  					right: 0;
+  					bottom: 0;
+  				}
+  			}
+  
+  			.content {
+  				flex: 1;
+  
+  				.head {
+  					display: flex;
+  					justify-content: space-between;
+  					margin-bottom: 4rpx;
+  
+  					.event {
+  						font-size: 30rpx;
+  					}
+  
+  					.time {
+  						font-size: 26rpx;
+  						color: #999999;
+  					}
+  				}
+  
+  				.name_wrap {
+  					font-size: 26rpx;
+  					color: #777777;
+  
+  					.status {
+  						color: $uni-color-primary;
+  					}
+  				}
+  
+  				.children {
+  					display: flex;
+  					flex-wrap: wrap;
+  					margin-top: 12rpx;
+  
+  					.child {
+  						display: flex;
+  						flex-direction: column;
+  						justify-content: center;
+  						align-items: center;
+  						margin-right: 12rpx;
+  						font-size: 26rpx;
+  						color: #777777;
+  
+  						.child_img {
+  							width: 48rpx;
+  							height: 48rpx;
+  							border-radius: 50%;
+  							margin-bottom: 2rpx;
+  						}
+  
+  						.child_name {
+  							margin-bottom: 2rpx;
+  							width: 48rpx;
+  							height: 48rpx;
+  							text-align: center;
+  							justify-content: center;
+  							padding-top: 4rpx;
+  							font-size: 28rpx;
+  							border-radius: 50%;
+  							color: #FFFFFF;
+  							background-color: $uni-color-primary;
+  						}
+  					}
+  				}
+  
+  				.remark {
+  					margin-top: 12rpx;
+  					background-color: #f7f7f7;
+  					padding: 14rpx 20rpx;
+  					border-radius: 8rpx;
+  					font-size: 26rpx;
+  					color: #666666;
+  					line-height: 36rpx;
+  				}
+  			}
+  
+  			.carbon {
+  				display: flex;
+  				width: 590rpx;
+  				overflow-x: auto;
+  				margin-top: 12rpx;
+  
+  				.carbon_item {
+  					text-align: center;
+  					flex-shrink: 0;
+  					width: 100rpx;
+  
+  					image {
+  						width: 60rpx;
+  						height: 60rpx;
+  						margin: 0 auto;
+  					}
+  
+  					view {
+  						font-size: 26rpx;
+  						color: #777777;
+  					}
+  				}
+  			}
+  
+  			&:nth-last-child(1) {
+  				.separate {
+  					height: 0;
+  				}
+  			}
+  		}
+  	}
+  }
+
+  .module_list {
+    .item {
+      padding: 30rpx 0;
+      border-bottom: 1rpx solid #e5e5e5;
+
+      .label {
+        font-size: 26rpx;
+        color: #666666;
+        margin-bottom: 20rpx;
+      }
+
+      .value {
+        font-size: 30rpx;
+        display: flex;
+        align-items: center;
+
+        .avatar_wrap {
+          margin-right: 20rpx;
+          width: 120rpx;
+          height: 120rpx;
+          border-radius: 8rpx;
+          border: 2rpx solid #e5e5e5;
+        }
+
+        .info {
+          flex: 1;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          font-size: 26rpx;
+          color: #666666;
+
+          .name {
+            font-size: 30rpx;
+            color: #333333;
+          }
+        }
+      }
+    }
+  }
+
+  .status_wrap {
+    position: relative;
+    padding: 30rpx 0;
+
+    .name {
+      font-weight: 600;
+      font-size: 32rpx;
+      margin-bottom: 20rpx;
+      color: #222222;
+    }
+		
+    .desc {
+      font-size: 26rpx;
+      color: #ed4545;
+			margin-bottom: 12rpx;
+    }
+		.gray {
+			color: #999999;
+			margin-bottom: 12rpx;
+		}
+
+    .status {
+      position: absolute;
+      right: -30rpx;
+      top: 0;
+      height: 60rpx;
+      line-height: 60rpx;
+      padding: 0 32rpx;
+      border-radius: 0rpx 0rpx 0rpx 30rpx;
+      background-color: #e9edff;
+      color: $uni-color-primary;
+    }
+		.icon{
+			width: 120rpx;
+			height: 120rpx;
+			border-radius: 50%;
+			position: absolute;
+			right: 0rpx;
+			top: 20rpx;
+			
+		}
+  }
+
+  .main_footer {
+    padding-bottom: 64rpx;
+    display: flex;
+    justify-content: space-between;
+
+    .btn {
+      width: 336rpx;
+      height: 88rpx;
+      line-height: 88rpx;
+      background: #ffffff;
+      border-radius: 44rpx;
+      border: 1rpx solid #999999;
+      font-size: 32rpx;
+      text-align: center;
+      margin: 16rpx 0;
+    }
+
+    .agree {
+      background: $uni-color-primary;
+      color: #fff;
+      border: 1rpx solid $uni-color-primary;
+    }
+  }
+
+  .appr_modal {
+    padding: 36rpx 30rpx 0;
+
+    .title {
+      font-weight: 600;
+      font-size: 32rpx;
+      color: #222222;
+      margin-bottom: 40rpx;
+      text-align: center;
+    }
+
+    textarea {
+      box-sizing: border-box;
+      width: 690rpx;
+      background-color: #f7f7f7;
+      font-size: 28rpx;
+      color: #333333;
+      padding: 24rpx;
+      border-radius: 8rpx;
+      margin-bottom: 30rpx;
+    }
+  }
+
+  .emyty {
+    width: 750rpx;
+    height: 20rpx;
+    background-color: #f7f7f7;
+    margin: 0 -30rpx;
+  }
+}
+</style>
diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index 478bfab..1452c7a 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -39,7 +39,8 @@
 				</view>
 				<view class="line" v-else>
 					<text class="label">鍚堝悓鍗曞彿</text>
-					<text class="value">{{ item.contractNum }}</text>
+					<text class="value">{{ item.contractNum }}</text>
+					<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
 				</view>
 				<view class="line">
 					<text class="label">椹鹃┒鍛�</text>
@@ -103,7 +104,8 @@
 							</view>
 							<view class="line" v-else>
 								<text class="label">鍚堝悓鍗曞彿</text>
-								<text class="value">{{ item.contractNum }}</text>
+								<text class="value">{{ item.contractNum }}</text>
+								<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
 							</view>
 							<view class="line">
 								<text class="label">椹鹃┒鍛�</text>
@@ -325,6 +327,11 @@
 					this.wmsInfo = res.data
 					this.showDetail = true
 				})
+			},
+			subDetail(item) {
+				uni.navigateTo({
+				  url: `/pages/index/SubDetail?id=${item.bookId}`
+				})
 			},
 			handleFinish(item) {
 				finishWork({
diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue
index f3e8a24..816e324 100644
--- a/pda/pages/index/queueup.vue
+++ b/pda/pages/index/queueup.vue
@@ -46,6 +46,7 @@
         <view class="line" v-else>
           <text class="label">鍚堝悓鍗曞彿</text>
           <text class="value">{{ item.contractNum }}</text>
+					<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
         </view>
         <view class="line">
           <text class="label">椹鹃┒鍛�</text>
@@ -163,6 +164,11 @@
       	this.showDetail = true
       })
     },
+		subDetail(item) {
+			uni.navigateTo({
+			  url: `/pages/index/SubDetail?id=${item.bookId}`
+			})
+		},
     getPlatformGroup() {
       getPlatformGroupList({
         queryData: 1,
diff --git a/pda/static/ic_passed@2x.png b/pda/static/ic_passed@2x.png
new file mode 100644
index 0000000..97d3aa1
--- /dev/null
+++ b/pda/static/ic_passed@2x.png
Binary files differ
diff --git a/pda/static/ic_refused@2x.png b/pda/static/ic_refused@2x.png
new file mode 100644
index 0000000..87fb1d0
--- /dev/null
+++ b/pda/static/ic_refused@2x.png
Binary files differ
diff --git a/pda/static/staff/ic_chaosong@2x.png b/pda/static/staff/ic_chaosong@2x.png
new file mode 100644
index 0000000..8743f53
--- /dev/null
+++ b/pda/static/staff/ic_chaosong@2x.png
Binary files differ
diff --git a/pda/static/staff/ic_shenpiren@2x.png b/pda/static/staff/ic_shenpiren@2x.png
new file mode 100644
index 0000000..6f2c7c9
--- /dev/null
+++ b/pda/static/staff/ic_shenpiren@2x.png
Binary files differ
diff --git a/pda/static/staff/liucheng_fail@2x.png b/pda/static/staff/liucheng_fail@2x.png
new file mode 100644
index 0000000..c686a8c
--- /dev/null
+++ b/pda/static/staff/liucheng_fail@2x.png
Binary files differ
diff --git a/pda/static/staff/liucheng_success@2x.png b/pda/static/staff/liucheng_success@2x.png
new file mode 100644
index 0000000..9fb9e77
--- /dev/null
+++ b/pda/static/staff/liucheng_success@2x.png
Binary files differ

--
Gitblit v1.9.3