From 283cb693086791acca0c10ab428d155d9757f393 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 14 十月 2024 18:11:12 +0800
Subject: [PATCH] ll

---
 admin/src/components/business/operaVisitsWindow.vue               |    1 
 admin/src/views/task/driverDetail.vue                             |    2 
 admin/src/views/platform/set/group.vue                            |   23 +
 admin/src/views/platform/queueUp.vue                              |   23 +
 h5/pages/staff/task/visitorReport.vue                             |  297 +++++++++++++-----------
 admin/src/components/business/OperaMemberRoleWindow.vue           |  131 ++++------
 admin/src/views/business/approvalReport.vue                       |    4 
 admin/src/components/system/role/PermissionConfigWindow.vue       |   21 +
 admin/src/components/system/user/RoleConfigWindow.vue             |   21 +
 admin/src/components/business/OperaPlatformApproveTemplWindow.vue |    4 
 admin/src/components/common/UploadFaceImg.vue                     |   10 
 admin/src/views/platform/platformReason.vue                       |    3 
 admin/src/components/business/OperaMemberWindow.vue               |  135 ++++++-----
 admin/src/views/task/index.vue                                    |    2 
 admin/src/components/business/OperaDeviceRoleWindow.vue           |   26 +
 15 files changed, 413 insertions(+), 290 deletions(-)

diff --git a/admin/src/components/business/OperaDeviceRoleWindow.vue b/admin/src/components/business/OperaDeviceRoleWindow.vue
index 49b5a38..84844fb 100644
--- a/admin/src/components/business/OperaDeviceRoleWindow.vue
+++ b/admin/src/components/business/OperaDeviceRoleWindow.vue
@@ -32,6 +32,7 @@
                     :filter-method="filterMethod"
                     filter-placeholder="璇疯緭鍏ラ棬绂佺偣鎴栧尯鍩熷悕绉�"
                     v-model="form.doorIds"
+                    class="transfer"
                     :data="device">
                 </el-transfer>
             </el-form-item>
@@ -196,8 +197,25 @@
 }
 </script>
 
-<style>
-    .el-transfer-panel {
-        width: 350px !important;
-    }
+<style lang="scss" scoped>
+.transfer {
+  height: 600px;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+  ::v-deep .el-transfer-panel {
+    flex: 1;
+    height: 100%;
+  }
+
+  ::v-deep .el-transfer-panel__body {
+    height: 500px;
+  }
+
+  ::v-deep .el-transfer-panel__list.is-filterable {
+    height: 480px;
+  }
+}
 </style>
diff --git a/admin/src/components/business/OperaMemberRoleWindow.vue b/admin/src/components/business/OperaMemberRoleWindow.vue
index 9c4b0eb..89cacdb 100644
--- a/admin/src/components/business/OperaMemberRoleWindow.vue
+++ b/admin/src/components/business/OperaMemberRoleWindow.vue
@@ -1,51 +1,32 @@
 <template>
-    <GlobalWindow
-        :title="title"
-        :visible.sync="visible"
-        width="70%"
-        :confirm-working="isWorking"
-        @confirm="confirm"
-    >
-      <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
-        1.闂ㄧ鏉冮檺閰嶇疆鎴愬姛鍚庯紝鎺堟潈浠诲姟鍗宠繘鍏ユ潈闄愪笅鍙戦槦鍒楋紝鍙墠寰�銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�;<br>
-        2.濡傛灉闇�瑕佹竻绌哄綋鍓嶉�変腑浜哄憳涓嬪彂鏉冮檺锛屼互涓嬨�愬凡閫夐棬绂佺偣鍒嗙粍銆戜负绌烘彁浜ゅ嵆鍙��
-      </p>
-      <p class="tip" v-if="form.names != null">姝e湪涓�<em>銆恵{ form.names.map(item => `${item}`).join('锛�') }}銆�</em> 閰嶇疆闂ㄧ鏉冮檺</p>
-        <el-form :model="form" ref="form" :rules="rules">
-            <el-form-item label="闂ㄧ鏈夋晥鏈燂細" prop="timeType">
-                <el-radio-group v-model="form.timeType">
-                    <el-radio :label="0">闀挎湡鏈夋晥</el-radio>
-                    <el-radio :label="1">鑷畾涔夋椂闂�</el-radio>
-                    <el-radio :label="2" v-if="companyType=== 0">鍩硅鏈夋晥鏈�</el-radio>
-                </el-radio-group>
-                <div v-if="form.timeType ==1" style="margin-top: 10px" >
-                  <el-date-picker
-                      @change="seleTime"
-                      v-model="time"
-                      type="datetimerange"
-                      format="yyyy-MM-dd HH:mm:ss"
-                      value-format="yyyy-MM-dd HH:mm:ss"
-                      range-separator="鑷�"
-                      start-placeholder="寮�濮嬫棩鏈�"
-                      end-placeholder="缁撴潫鏃ユ湡">
-                  </el-date-picker>
-                </div>
-            </el-form-item>
-            <el-form-item label="闂ㄧ鐐瑰垎缁勶細" prop="roleIds">
-                <el-transfer
-                    style="margin-top: 15px;font-size: 12px"
-                    :titles="['鏈�夐棬绂佺偣鍒嗙粍', '宸查�夐棬绂佺偣鍒嗙粍']"
-                    filterable
-                    :filter-method="filterMethod"
-                    filter-placeholder="璇疯緭鍏ラ棬绂佺偣鍒嗙粍鍚嶇О"
-                    v-model="form.roleIds"
-                    class="transfer"
-                    :data="roles">
-                </el-transfer>
-            </el-form-item>
+  <GlobalWindow :title="title" :visible.sync="visible" width="900px" :confirm-working="isWorking" @confirm="confirm">
+    <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+      1.闂ㄧ鏉冮檺閰嶇疆鎴愬姛鍚庯紝鎺堟潈浠诲姟鍗宠繘鍏ユ潈闄愪笅鍙戦槦鍒楋紝鍙墠寰�銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�;<br>
+      2.濡傛灉闇�瑕佹竻绌哄綋鍓嶉�変腑浜哄憳涓嬪彂鏉冮檺锛屼互涓嬨�愬凡閫夐棬绂佺偣鍒嗙粍銆戜负绌烘彁浜ゅ嵆鍙��
+    </p>
+    <p class="tip" v-if="form.names != null">姝e湪涓�<em>銆恵{ form.names.map(item => `${item}`).join('锛�') }}銆�</em> 閰嶇疆闂ㄧ鏉冮檺</p>
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="闂ㄧ鏈夋晥鏈燂細" prop="timeType">
+        <el-radio-group v-model="form.timeType">
+          <el-radio :label="0">闀挎湡鏈夋晥</el-radio>
+          <el-radio :label="1">鑷畾涔夋椂闂�</el-radio>
+          <el-radio :label="2" v-if="companyType === 0">鍩硅鏈夋晥鏈�</el-radio>
+        </el-radio-group>
+        <div v-if="form.timeType == 1" style="margin-top: 10px">
+          <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+          </el-date-picker>
+        </div>
+      </el-form-item>
+      <el-form-item label="闂ㄧ鐐瑰垎缁勶細" prop="roleIds">
+        <el-transfer style="margin-top: 15px;font-size: 12px" :titles="['鏈�夐棬绂佺偣鍒嗙粍', '宸查�夐棬绂佺偣鍒嗙粍']" filterable
+          :filter-method="filterMethod" filter-placeholder="璇疯緭鍏ラ棬绂佺偣鍒嗙粍鍚嶇О" v-model="form.roleIds" class="transfer"
+          :data="roles">
+        </el-transfer>
+      </el-form-item>
 
-        </el-form>
-    </GlobalWindow>
+    </el-form>
+  </GlobalWindow>
 </template>
 
 <script>
@@ -56,7 +37,7 @@
   name: 'OperaDeviceRoleWindow',
   extends: BaseOpera,
   components: { GlobalWindow },
-  data () {
+  data() {
     var validateTime = (rule, value, callback) => {
       if (this.form.timeType == null) {
         callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
@@ -84,7 +65,7 @@
       },
       roles: [],
       rules: {
-      // 楠岃瘉瑙勫垯
+        // 楠岃瘉瑙勫垯
         timeType: [
           { required: true, validator: validateTime, message: '璇烽�変腑闂ㄧ鏈夋晥鏈�' }
         ],
@@ -97,18 +78,18 @@
       }
     }
   },
-  created () {
+  created() {
     this.config({
       api: '/business/member',
       'field.id': 'id'
     })
   },
   methods: {
-    filterMethod (query, item) {
+    filterMethod(query, item) {
       if (!query) return item
       return item.label.indexOf(query) > -1
     },
-    seleTime (e) {
+    seleTime(e) {
       if (e && e.length >= 2) {
         this.form.startTime = e[0]
         this.form.endTime = e[1]
@@ -117,7 +98,7 @@
         this.form.endTime = null
       }
     },
-    confirm () {
+    confirm() {
       this.$refs.form.validate((valid) => {
         if (!valid) {
           return
@@ -127,13 +108,13 @@
             .then(() => {
               this.confirmDo()
             })
-            .catch(() => {})
+            .catch(() => { })
         } else {
           this.confirmDo()
         }
       })
     },
-    confirmDo () {
+    confirmDo() {
       // 璋冪敤鏂板缓鎺ュ彛
       this.isWorking = true
       this.api.batchRoleAuth({
@@ -156,7 +137,7 @@
         })
     },
     // 鑾峰彇璁惧
-    getLists () {
+    getLists() {
       getDeviceRoleList({ type: 2 })
         .then(res => {
           this.roles = res.map(item => {
@@ -168,7 +149,7 @@
           })
         })
     },
-    open (title, ids, names, companyType) {
+    open(title, ids, names, companyType) {
       this.roles = []
       this.getLists()
       this.title = title
@@ -190,6 +171,7 @@
 
 <style scoped lang="scss">
 @import "@/assets/style/variables.scss";
+
 // 瑙掕壊閰嶇疆
 .global-window {
   .tip {
@@ -199,10 +181,12 @@
       font-weight: bold;
     }
   }
+
   .tip-warn {
     margin: 4px 0 12px 0;
     font-size: 12px;
     color: #999;
+
     i {
       color: orange;
       margin-right: 4px;
@@ -212,22 +196,25 @@
     }
   }
 }
-.transfer {
-    height: 600px;
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    ::v-deep .el-transfer-panel{
-      flex: 1;
-      height: 100%;
-    }
-    ::v-deep .el-transfer-panel__body {
-      height: 500px;
-    }
 
-    ::v-deep .el-transfer-panel__list.is-filterable {
-      height: 480px;
-    }
+.transfer {
+  height: 600px;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+  ::v-deep .el-transfer-panel {
+    flex: 1;
+    height: 100%;
   }
+
+  ::v-deep .el-transfer-panel__body {
+    height: 500px;
+  }
+
+  ::v-deep .el-transfer-panel__list.is-filterable {
+    height: 480px;
+  }
+}
 </style>
diff --git a/admin/src/components/business/OperaMemberWindow.vue b/admin/src/components/business/OperaMemberWindow.vue
index df26e7c..b356deb 100644
--- a/admin/src/components/business/OperaMemberWindow.vue
+++ b/admin/src/components/business/OperaMemberWindow.vue
@@ -1,56 +1,45 @@
 <template>
-    <GlobalWindow
-        :title="title"
-        width="60%"
-        :visible.sync="visible"
-        :confirm-working="isWorking"
-        @confirm="confirm"
-    >
-        <el-form :model="form" ref="form" :rules="rules">
-            <el-form-item label="濮撳悕" prop="name">
-                <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�" v-trim/>
-            </el-form-item>
-            <el-form-item label="鎵�灞炵粍缁�" prop="companyId">
-              <el-cascader
-                  v-model="form.company"
-                  :options="department"
-                  @change="handleChangeCompany"
-                  :show-all-levels="false"
-                  clearable
-                  filterable
-                  :props="departprops"
-              ></el-cascader>
-              <div style="font-size: 12px;color: #F56C6C"  >
-                娉細浠呮敮鎸侀�夋嫨 銆恵{companyType ===0?'鐩稿叧鏂圭粍缁�':'鍐呴儴缁勭粐'}}銆�
-              </div>
-            </el-form-item>
-            <el-form-item label="鎵嬫満鍙�" prop="phone">
-                <el-input v-model="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim/>
-              <div style="color: #F56C6C;font-size: 12px">娉細鍛樺伐鎵嬫満鍙峰皢浣滀负骞冲彴鐧诲綍璐﹀彿锛屽垵濮嬪瘑鐮佷负绯荤粺榛樿瀵嗙爜閰嶇疆椤�</div>
-            </el-form-item>
-            <el-form-item label="韬唤璇佸彿" prop="idcardNo" v-if="form.id ==null">
-                <el-input v-model="form.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" v-trim/>
-            </el-form-item>
-            <el-form-item label="淇敼韬唤璇佸彿" prop="idcardNoNew" v-if="form.id !=null">
-                <el-input v-model="form.idcardNoNew" placeholder="鍙慨鏀硅韩浠借瘉鍙�" v-trim/>
-              <div style="font-size: 12px" v-if="form.id !=null">
-                娉細褰撳墠韬唤璇佸彿涓�<span style="color: #F56C6C">銆恵{form.idcardDecode}}銆�</span>锛屽闇�淇敼锛岃鍦ㄨ緭鍏ユ爮濉啓鏂扮殑韬唤璇佸彿!
-              </div>
-            </el-form-item>
-            <el-form-item label="宸ュ彿" prop="code">
-                <el-input v-model="form.code" placeholder="璇疯緭鍏ュ憳宸ュ伐鍙�" v-trim/>
-            </el-form-item>
-          <el-form-item label="浜鸿劯鐓х墖" prop="faceImgFull" >
-            <UploadFaceImg
-                :file="{ 'imgurlfull': form.faceImgFull, 'imgurl': form.faceImg }"
-                :uploadData="uploadData"
-                @uploadSuccess="uploadAvatarSuccess"
-                @uploadEnd="isUploading = false"
-                @uploadBegin="isUploading = true"
-            />
-          </el-form-item>
-</el-form>
-</GlobalWindow>
+  <GlobalWindow :title="title" width="60%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+    <el-form :model="form" ref="form" :rules="rules">
+      <el-form-item label="濮撳悕" prop="name">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�" v-trim />
+      </el-form-item>
+      <el-form-item label="鎵�灞炵粍缁�" prop="companyId">
+        <el-cascader v-model="form.company" :options="department" @change="handleChangeCompany" :show-all-levels="false"
+          clearable filterable :props="departprops"></el-cascader>
+        <div style="font-size: 12px;color: #F56C6C">
+          娉細浠呮敮鎸侀�夋嫨 銆恵{ companyType === 0 ? '鐩稿叧鏂圭粍缁�' : '鍐呴儴缁勭粐' }}銆�
+        </div>
+      </el-form-item>
+      <el-form-item label="鎵嬫満鍙�" prop="phone">
+        <el-input v-model="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim />
+        <div style="color: #F56C6C;font-size: 12px">娉細鍛樺伐鎵嬫満鍙峰皢浣滀负骞冲彴鐧诲綍璐﹀彿锛屽垵濮嬪瘑鐮佷负绯荤粺榛樿瀵嗙爜閰嶇疆椤�</div>
+      </el-form-item>
+      <el-form-item label="韬唤璇佸彿" v-if="form.id == null">
+        <el-input v-model="form.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" v-trim />
+      </el-form-item>
+      <el-form-item label="淇敼韬唤璇佸彿" v-if="form.id != null">
+        <el-input v-model="form.idcardNoNew" placeholder="鍙慨鏀硅韩浠借瘉鍙�" v-trim />
+        <div style="font-size: 12px" v-if="form.id != null">
+          娉細褰撳墠韬唤璇佸彿涓�<span style="color: #F56C6C">銆恵{ form.idcardDecode }}銆�</span>锛屽闇�淇敼锛岃鍦ㄨ緭鍏ユ爮濉啓鏂扮殑韬唤璇佸彿!
+        </div>
+      </el-form-item>
+      <el-form-item label="宸ュ彿" prop="code">
+        <el-input v-model="form.code" placeholder="璇疯緭鍏ュ憳宸ュ伐鍙�" v-trim />
+      </el-form-item>
+      <el-form-item label="浜鸿劯鐓х墖" prop="faceImgFull">
+        <div class="upload_wrap">
+          <UploadFaceImg :file="{ 'imgurlfull': form.faceImgFull, 'imgurl': form.faceImg }" :uploadData="uploadData"
+            @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" @uploadBegin="isUploading = true" />
+          <div class="content">
+            <div>1銆佽閫夋嫨娴呰壊鎴栦腑鎬ц儗鏅紝浣跨敤鍧囧寑鍏夌嚎鎷嶇収銆�</div>
+            <div>2銆佽淇濇寔闈㈤儴姝e闀滃ご锛屽嬁閬尅闈㈤儴锛屼繚鎸佷腑绔嬭〃鎯呫��</div>
+            <div>3銆佽閬垮厤鍚庢湡淇浘锛岀‘淇濅汉鑴歌疆寤撴竻鏅般�佸畬鏁达紝灏藉彲鑳藉噺灏戦潪鑴搁儴鍐呭鍗犳瘮銆�</div>
+          </div>
+        </div>
+      </el-form-item>
+    </el-form>
+  </GlobalWindow>
 </template>
 
 <script>
@@ -58,12 +47,12 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import UploadAvatarImage from '@/components/common/UploadAvatarImage'
 import UploadFaceImg from '@/components/common/UploadFaceImg'
-import {checkMobile, validIdCardNo, validIdCardNoNew} from '@/utils/form'
+import { checkMobile, validIdCardNo, validIdCardNoNew } from '@/utils/form'
 export default {
   name: 'OperaCompanyWindow',
   extends: BaseOpera,
-  components: { GlobalWindow, UploadAvatarImage,UploadFaceImg },
-  data () {
+  components: { GlobalWindow, UploadAvatarImage, UploadFaceImg },
+  data() {
     return {
       uploadData: {
         folder: 'member'
@@ -73,7 +62,7 @@
         value: 'id',
         checkStrictly: true
       },
-      companyType:0,
+      companyType: 0,
       department: [],
       // 琛ㄥ崟鏁版嵁
       form: {
@@ -102,14 +91,14 @@
       }
     }
   },
-  created () {
+  created() {
     this.config({
       api: '/business/member.js',
       'field.id': 'id'
     })
   },
   methods: {
-    handleChangeCompany (value) {
+    handleChangeCompany(value) {
       if (this.form.company && this.form.company.length > 1) {
         this.form.companyId = this.form.company[this.form.company.length - 1]
       }
@@ -119,7 +108,7 @@
      * @title 绐楀彛鏍囬
      * @target 缂栬緫鐨勫璞�
      */
-    open (title, target, depart,companyType) {
+    open(title, target, depart, companyType) {
       this.title = title
       this.department = depart
       this.visible = true
@@ -140,7 +129,7 @@
           this.form[key] = target[key]
           this.form.idcardNo = ''
         }
-        this.form.company =[]
+        this.form.company = []
         if (target.companyId && target.companyPath) {
           var array = target.companyPath.split('/')
           array.forEach(item => {
@@ -152,10 +141,34 @@
       })
     },
     // 涓婁紶鍥剧墖
-    uploadAvatarSuccess (file) {
+    uploadAvatarSuccess(file) {
       this.form.faceImg = file.imgurl
       this.form.faceImgFull = file.imgurlfull
     }
   }
 }
 </script>
+<style lang="scss" scoped>
+.upload_wrap{
+  display: flex;
+  align-items: center;
+  .avatar-uploader{
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  ::v-deep .avatar{
+    max-width: 90px;
+    max-height: 90px;
+  }
+  .content{
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    font-size: 12px;
+    color: #999999;
+    margin-left: 12px;
+    line-height: 24px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
index 5f559b7..3aa3d5c 100644
--- a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
+++ b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
@@ -82,10 +82,10 @@
               <!-- 鎶勯�佷汉 -->
               <template v-if="apprList[activeIndex].type == '1'">
                 <div class="config_data_item_reviewed_content">
-                  <div v-for="mem 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 class="el-icon-close"></i>
+                    <i @click="memDel(memIndex)" class="el-icon-close"></i>
                   </div>
                   <span class="add" @click="selStaff">+娣诲姞</span>
                 </div>
diff --git a/admin/src/components/business/operaVisitsWindow.vue b/admin/src/components/business/operaVisitsWindow.vue
index 05fcc48..7eff5ec 100644
--- a/admin/src/components/business/operaVisitsWindow.vue
+++ b/admin/src/components/business/operaVisitsWindow.vue
@@ -288,7 +288,6 @@
 .upload_wrap{
   display: flex;
   align-items: center;
-  justify-content: center;
   .avatar-uploader{
     display: flex;
     align-items: center;
diff --git a/admin/src/components/common/UploadFaceImg.vue b/admin/src/components/common/UploadFaceImg.vue
index 4bc0b0d..926bb2d 100644
--- a/admin/src/components/common/UploadFaceImg.vue
+++ b/admin/src/components/common/UploadFaceImg.vue
@@ -24,8 +24,9 @@
       <ImageCropper ref="iconShot" v-if="updateImg" :imgSrc="img" >
       </ImageCropper>
       <span slot="footer" class="dialog-footer">
-            <el-button @click="updateImg = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="uploadIcon">纭� 瀹�</el-button>
+            <el-button v-if="loading">鍙� 娑�</el-button>
+            <el-button v-else @click="updateImg = false">鍙� 娑�</el-button>
+            <el-button :loading="loading" type="primary" @click="uploadIcon">纭� 瀹�</el-button>
           </span>
     </el-dialog>
   </div>
@@ -50,6 +51,7 @@
   },
   data () {
     return {
+      loading: false,
       fileInfo:{},
       img: null,
       updateImg: false,
@@ -75,7 +77,9 @@
                 { type: this.fileInfo.type } // 璁剧疆File绫诲瀷鐨勬枃浠剁被鍨�
             )
         )
+        this.loading = true
         upload(formData).then(res => {
+          this.loading = false
           console.log(res)
           this.file.imgurl = res.imgaddr
           this.file.imgurlfull = res.url
@@ -84,6 +88,8 @@
           this.updateImg = false
           this.$emit('uploadSuccess', { imgurl: res.imgaddr, imgurlfull: res.url, name: res.originname })
           this.$emit('uploadEnd')
+        }, () => {
+          this.loading = false
         })
       })
     },
diff --git a/admin/src/components/system/role/PermissionConfigWindow.vue b/admin/src/components/system/role/PermissionConfigWindow.vue
index 17476a0..63f4835 100644
--- a/admin/src/components/system/role/PermissionConfigWindow.vue
+++ b/admin/src/components/system/role/PermissionConfigWindow.vue
@@ -12,6 +12,7 @@
       ref="permissionTransfer"
       v-model="selectedIds"
       filterable
+      class="transfer"
       :filter-method="filterPermissions"
       :titles="['鏈巿鏉冩潈闄�', '宸叉巿鏉冩潈闄�']"
       :props="{
@@ -121,4 +122,24 @@
     }
   }
 }
+.transfer {
+  height: 600px;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+  ::v-deep .el-transfer-panel {
+    flex: 1;
+    height: 100%;
+  }
+
+  ::v-deep .el-transfer-panel__body {
+    height: 500px;
+  }
+
+  ::v-deep .el-transfer-panel__list.is-filterable {
+    height: 480px;
+  }
+}
 </style>
diff --git a/admin/src/components/system/user/RoleConfigWindow.vue b/admin/src/components/system/user/RoleConfigWindow.vue
index 35fb877..fa1461f 100644
--- a/admin/src/components/system/user/RoleConfigWindow.vue
+++ b/admin/src/components/system/user/RoleConfigWindow.vue
@@ -11,6 +11,7 @@
     <div class="df_center">
       <el-transfer
       v-model="selectedIds"
+      class="transfer"
       :titles="['鏈巿鏉冭鑹�', '宸叉巿鏉冭鑹�']"
       :props="{
         key: 'id',
@@ -126,4 +127,24 @@
     }
   }
 }
+.transfer {
+  height: 600px;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+  ::v-deep .el-transfer-panel {
+    flex: 1;
+    height: 100%;
+  }
+
+  ::v-deep .el-transfer-panel__body {
+    height: 500px;
+  }
+
+  ::v-deep .el-transfer-panel__list.is-filterable {
+    height: 480px;
+  }
+}
 </style>
diff --git a/admin/src/views/business/approvalReport.vue b/admin/src/views/business/approvalReport.vue
index 2b17706..8760ccc 100644
--- a/admin/src/views/business/approvalReport.vue
+++ b/admin/src/views/business/approvalReport.vue
@@ -107,12 +107,12 @@
             <template v-if="apprList[activeIndex].type == '1'">
               <div class="config_data_item_reviewed_content">
                 <div
-                  v-for="mem in apprList[activeIndex].objIds"
+                  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"></i>
+                  <i @click="memDel(memIndex)" class="el-icon-close"></i>
                 </div>
                 <span class="add" @click="selStaff">+娣诲姞</span>
               </div>
diff --git a/admin/src/views/platform/platformReason.vue b/admin/src/views/platform/platformReason.vue
index ff23a60..580b420 100644
--- a/admin/src/views/platform/platformReason.vue
+++ b/admin/src/views/platform/platformReason.vue
@@ -38,7 +38,8 @@
         <el-table-column prop="reason" label="鍏ュ洯鍘熷洜" fixed min-width="100px"></el-table-column>
         <el-table-column prop="groupName" label="瀵瑰簲浣滀笟鏈堝彴缁�" fixed min-width="150px"></el-table-column>
         <el-table-column prop="limitNum" label="浣滀笟閲�(涓囧彧/澶�)" min-width="120px"></el-table-column>
-        <el-table-column prop="reason" label="璇存槑" fixed min-width="100px"></el-table-column>
+        <el-table-column prop="sortnum" label="鎺掑簭鐮�" fixed min-width="80px"></el-table-column>
+        <el-table-column prop="remark" label="璇存槑" fixed min-width="100px"></el-table-column>
         <el-table-column label="绂�/鍚敤" min-width="120px" >
           <template slot-scope="{row}">
             <el-switch
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 173ad1f..4fb7695 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -21,7 +21,7 @@
         <span></span>
       </div>
     </div>
-    <el-table v-if="activeGroup.type == 2" class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
+    <el-table class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
       <el-table-column type="index" label="搴忓彿" width="80" />
       <el-table-column label="杞︾墝鍙�" width="130">
         <template slot-scope="{ row }">
@@ -33,8 +33,21 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="contractNum" label="鍚堝悓鍗曞彿" min-width="120" />
-      <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110" />
+      <el-table-column prop="carrierName" label="杩愯緭鍏徃" min-width="120">
+        <template v-slot="scope">
+          <span>{{ scope.row.carrierName || '-' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractNum" label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="120">
+        <template v-slot="scope">
+          <span>{{ scope.row.billCode || scope.row.carrierName || '-' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="totalNum" label="鎬昏繍杈撻噺(涓囨敮)" min-width="110">
+        <template v-slot="scope">
+          <span>{{ scope.row.totalNum || '-' }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="椹鹃┒鍛�" min-width="130">
         <template slot-scope="{ row }">
           <span class="mr10">{{ row.driverName }}</span>
@@ -50,7 +63,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <el-table v-else class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
+    <!-- <el-table v-else class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
       <el-table-column type="index" label="搴忓彿" width="80" />
       <el-table-column label="杞︾墝鍙�" width="130">
         <template slot-scope="{ row }">
@@ -78,7 +91,7 @@
           <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
         </template>
       </el-table-column>
-    </el-table>
+    </el-table> -->
     <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination" />
 
     <!--  -->
diff --git a/admin/src/views/platform/set/group.vue b/admin/src/views/platform/set/group.vue
index 27c9270..cd46a7d 100644
--- a/admin/src/views/platform/set/group.vue
+++ b/admin/src/views/platform/set/group.vue
@@ -72,6 +72,7 @@
             :titles="['寰呮坊鍔犳湀鍙�', '宸叉坊鍔犳湀鍙�']"
             v-model="param.sel"
             :data="data"
+            class="transfer"
 
           >
           </el-transfer>
@@ -144,5 +145,25 @@
 }
 </script>
 
-<style>
+<style lang="scss" scoped>
+.transfer {
+  height: 600px;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+  ::v-deep .el-transfer-panel {
+    flex: 1;
+    height: 100%;
+  }
+
+  ::v-deep .el-transfer-panel__body {
+    height: 500px;
+  }
+
+  ::v-deep .el-transfer-panel__list.is-filterable {
+    height: 480px;
+  }
+}
 </style>
diff --git a/admin/src/views/task/driverDetail.vue b/admin/src/views/task/driverDetail.vue
index 82ff153..54037d9 100644
--- a/admin/src/views/task/driverDetail.vue
+++ b/admin/src/views/task/driverDetail.vue
@@ -14,7 +14,7 @@
           <div class="right" :class="{ scs: info.status == '2' || info.status == '5', msg: info.status == '3' || info.status == '6' }">{{ statusMap[info.status] }}</div>
         </div>
         <div class="info">
-          <div class="title">鍏姟杞︾敵璇蜂俊鎭�</div>
+          <div class="title">鐗╂祦杞﹂绾︿俊鎭�</div>
           <div class="list">
             <div class="item">
               <div class="label">鐢宠浜�</div>
diff --git a/admin/src/views/task/index.vue b/admin/src/views/task/index.vue
index 686c2a4..b0051f5 100644
--- a/admin/src/views/task/index.vue
+++ b/admin/src/views/task/index.vue
@@ -250,7 +250,7 @@
     getList (page) {
       this.getHeadData()
       const { filters, pagination } = this
-      if (filters.selTime && filters.selTime.length > 0) {
+      if (filters.selTime && filters.selTime.length > 0 && filters.queryType != 0) {
         filters.startDate = filters.selTime[0]
         filters.endDate = filters.selTime[1]
       } else {
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 1308a5f..15e713a 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -222,143 +222,166 @@
   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;
-
-          .img {
-            width: 80rpx;
-            height: 80rpx;
-            border-radius: 50%;
-          }
-
-          .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%;
-              }
-            }
-          }
-
-          .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;
-          }
-        }
-      }
-    }
+  	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 {

--
Gitblit v1.9.3