From 52190152691bc217844d4f87b700274c297b104e Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期四, 25 七月 2024 09:55:53 +0800
Subject: [PATCH] 设备管理修改

---
 src/views/system/modules/UserModal.vue |  475 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 278 insertions(+), 197 deletions(-)

diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue
index 5543680..eecaf7c 100644
--- a/src/views/system/modules/UserModal.vue
+++ b/src/views/system/modules/UserModal.vue
@@ -130,7 +130,8 @@
             @back="backDepartInfo"
             :backDepart="true"
             :treeOpera="true"
-          >></j-select-depart>
+          >>
+          </j-select-depart>
         </a-form-model-item>
 
         <!--杞﹂棿鍒嗛厤-->
@@ -148,6 +149,40 @@
             :treeProductOpera="true"
           ></j-select-production>
         </a-form-model-item>
+
+        <a-form-model-item
+          label="閫夋嫨璁惧"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!productionDisabled"
+        >
+          <a-input-search
+            :readOnly="true"
+            v-model="model.equipmentIds"
+            @search="deviceSearch"
+            enter-button
+            placeholder="璇烽�夋嫨璁惧"
+            :disabled="!model.selectedProduction"
+          />
+        </a-form-model-item>
+
+        <a-form-model-item
+          label="棣栭〉鏉冮檺"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+        >
+          <a-radio-group
+            v-model="model.userType"
+            :defaultValue="0"
+          >
+            <a-radio :value="4">鍏徃绾�</a-radio>
+            <a-radio :value="3">杞﹂棿绾�</a-radio>
+            <a-radio :value="2">宸ユ绾�</a-radio>
+            <a-radio :value="1">鎿嶄綔宸�</a-radio>
+            <a-radio :value="0">鏃�</a-radio>
+          </a-radio-group>
+        </a-form-model-item>
+
         <a-form-model-item
           label="鐝粍鍒嗛厤"
           :labelCol="labelCol"
@@ -167,12 +202,19 @@
           :wrapperCol="wrapperCol"
           prop="areaId"
         >
-          <j-dict-select-tag
+          <!-- <j-dict-select-tag
             v-model="model.areaId"
             :triggerChange="true"
             dictCode="mom_base_area,name,id,del_flag = 0"
             placeholder="璇风淮鎶や腑蹇�"
-          ></j-dict-select-tag>
+          ></j-dict-select-tag> -->
+          <j-multi-select-tag
+            :triggerChange="true"
+            v-model="model.areaId"
+            dictCode="mom_base_area,name,id,del_flag = 0 and type = 1"
+            placeholder="璇风淮鎶や腑蹇�"
+          >
+          </j-multi-select-tag>
         </a-form-model-item>
         <a-form-model-item
           label="璐熻矗閮ㄩ棬"
@@ -189,83 +231,82 @@
           </j-multi-select-tag>
         </a-form-model-item>
 
-        <a-form-model-item
-          label="澶村儚"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-        >
-          <j-image-upload
-            class="avatar-uploader"
-            text="涓婁紶"
-            v-model="model.avatar"
-          ></j-image-upload>
-        </a-form-model-item>
+        <!--<a-form-model-item-->
+        <!--label="澶村儚"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--&gt;-->
+        <!--<j-image-upload-->
+        <!--class="avatar-uploader"-->
+        <!--text="涓婁紶"-->
+        <!--v-model="model.avatar"-->
+        <!--&gt;</j-image-upload>-->
+        <!--</a-form-model-item>-->
 
-        <a-form-model-item
-          label="鐢熸棩"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-        >
-          <a-date-picker
-            style="width: 100%"
-            placeholder="璇烽�夋嫨鐢熸棩"
-            v-model="model.birthday"
-            :format="dateFormat"
-            :getCalendarContainer="node => node.parentNode"
-          />
-        </a-form-model-item>
+        <!--<a-form-model-item-->
+        <!--label="鐢熸棩"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--&gt;-->
+        <!--<a-date-picker-->
+        <!--style="width: 100%"-->
+        <!--placeholder="璇烽�夋嫨鐢熸棩"-->
+        <!--v-model="model.birthday"-->
+        <!--:format="dateFormat"-->
+        <!--:getCalendarContainer="node => node.parentNode"-->
+        <!--/>-->
+        <!--</a-form-model-item>-->
 
-        <a-form-model-item
-          label="鎬у埆"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-        >
-          <a-select
-            v-model="model.sex"
-            placeholder="璇烽�夋嫨鎬у埆"
-            :getPopupContainer="(target) => target.parentNode"
-          >
-            <a-select-option :value="1">鐢�</a-select-option>
-            <a-select-option :value="2">濂�</a-select-option>
-          </a-select>
-        </a-form-model-item>
+        <!--<a-form-model-item-->
+        <!--label="鎬у埆"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--&gt;-->
+        <!--<a-select-->
+        <!--v-model="model.sex"-->
+        <!--placeholder="璇烽�夋嫨鎬у埆"-->
+        <!--:getPopupContainer="(target) => target.parentNode"-->
+        <!--&gt;-->
+        <!--<a-select-option :value="1">鐢�</a-select-option>-->
+        <!--<a-select-option :value="2">濂�</a-select-option>-->
+        <!--</a-select>-->
+        <!--</a-form-model-item>-->
 
-        <a-form-model-item
-          label="閭"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          prop="email"
-        >
-          <a-input
-            placeholder="璇疯緭鍏ラ偖绠�"
-            v-model="model.email"
-          />
-        </a-form-model-item>
+        <!--<a-form-model-item-->
+        <!--label="閭"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--prop="email"-->
+        <!--&gt;-->
+        <!--<a-input-->
+        <!--placeholder="璇疯緭鍏ラ偖绠�"-->
+        <!--v-model="model.email"-->
+        <!--/>-->
+        <!--</a-form-model-item>-->
 
-        <a-form-model-item
-          label="鎵嬫満鍙风爜"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          prop="phone"
-        >
-          <a-input
-            placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�"
-            v-model="model.phone"
-          />
-        </a-form-model-item>
+        <!--<a-form-model-item-->
+        <!--label="鎵嬫満鍙风爜"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--prop="phone"-->
+        <!--&gt;-->
+        <!--<a-input-->
+        <!--placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�"-->
+        <!--v-model="model.phone"-->
+        <!--/>-->
+        <!--</a-form-model-item>-->
 
-        <a-form-model-item
-          label="搴ф満"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          prop="telephone"
-        >
-          <a-input
-            placeholder="璇疯緭鍏ュ骇鏈�"
-            v-model="model.telephone"
-          />
-        </a-form-model-item>
-
+        <!--<a-form-model-item-->
+        <!--label="搴ф満"-->
+        <!--:labelCol="labelCol"-->
+        <!--:wrapperCol="wrapperCol"-->
+        <!--prop="telephone"-->
+        <!--&gt;-->
+        <!--<a-input-->
+        <!--placeholder="璇疯緭鍏ュ骇鏈�"-->
+        <!--v-model="model.telephone"-->
+        <!--/>-->
+        <!--</a-form-model-item>-->
         <!--<a-form-model-item label="宸ヤ綔娴佸紩鎿�" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
         <!--<j-dict-select-tag  v-model="model.activitiSync"  placeholder="璇烽�夋嫨鏄惁鍚屾宸ヤ綔娴佸紩鎿�" :type="'radio'" dictCode="activiti_sync"/>-->
         <!--</a-form-model-item>-->
@@ -289,26 +330,35 @@
         @click="handleSubmit"
         type="primary"
         :loading="confirmLoading"
-      >鎻愪氦</a-button>
+      >鎻愪氦
+      </a-button>
     </div>
+
+    <select-device-modal
+      ref="selectDeviceModal"
+      @selectFinished="selectOK"
+      :title="'閫夋嫨璁惧'"
+    />
   </a-drawer>
 </template>
 
 <script>
 import moment from 'moment'
 import Vue from 'vue'
-import { ACCESS_TOKEN } from "@/store/mutation-types"
+import { ACCESS_TOKEN } from '@/store/mutation-types'
 import { getAction } from '@/api/manage'
 import { addUser, editUser, queryUserRole, queryall } from '@/api/api'
-import { disabledAuthFilter } from "@/utils/authFilter"
+import { disabledAuthFilter } from '@/utils/authFilter'
 import { duplicateCheck } from '@/api/api'
 import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction'
 import { mapActions } from 'vuex'
 import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
+import SelectDeviceModal from './SelectDeviceModal'
 
 export default {
-  name: "UserModal",
+  name: 'UserModal',
   components: {
+    SelectDeviceModal,
     JSelectProduction
   },
   data() {
@@ -320,48 +370,51 @@
       drawerWidth: 700,
       modaltoggleFlag: true,
       confirmDirty: false,
-      userId: "", //淇濆瓨鐢ㄦ埛id
+      userId: '', //淇濆瓨鐢ㄦ埛id
       disableSubmit: false,
-      dateFormat: "YYYY-MM-DD",
+      dateFormat: 'YYYY-MM-DD',
       validatorRules: {
         username: [{ required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!' },
-        { validator: this.validateUsername, }],
-        password: [{ required: true, pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!' },
+        { validator: this.validateUsername }],
+        password: [{
+          required: true,
+          pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
+          message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!'
+        },
         { validator: this.validateToNextPassword, trigger: 'change' }],
-        confirmpassword: [{ required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!', },
-        { validator: this.compareToFirstPassword, }],
+        confirmpassword: [{ required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!' },
+        { validator: this.compareToFirstPassword }],
         realname: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕绉�!' }],
         phone: [{ required: false, message: '璇疯緭鍏ユ墜鏈哄彿!' }, { validator: this.validatePhone }],
         email: [{ validator: this.validateEmail }],
         roles: {},
         workNo: [{ required: true, message: '璇疯緭鍏ュ伐鍙�' },
         { validator: this.validateWorkNo }],
-        telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' },],
+        telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' }],
         teamId: [{ required: false, message: '璇风淮鎶ょ彮缁�' }]
-
       },
       departIdShow: false,
-      title: "鎿嶄綔",
+      title: '鎿嶄綔',
       visible: false,
       model: {},
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 5 },
+        sm: { span: 5 }
       },
       wrapperCol: {
         xs: { span: 24 },
-        sm: { span: 16 },
+        sm: { span: 16 }
       },
       uploadLoading: false,
       confirmLoading: false,
       headers: {},
       url: {
-        fileUpload: window._CONFIG['domianURL'] + "sys/common/upload",
-        userWithDepart: "/sys/user/userDepartList", // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url
+        fileUpload: window._CONFIG['domianURL'] + 'sys/common/upload',
+        userWithDepart: '/sys/user/userDepartList', // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url
         //寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬭溅闂翠俊鎭渶瑕佺殑url
         userProductionList: '/sys/user/userProductionList',
-        userId: "/sys/user/generateUserId", // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
-        syncUserByUserName: "/act/process/extActProcess/doSyncUserByUserName",//鍚屾鐢ㄦ埛鍒板伐浣滄祦
+        userId: '/sys/user/generateUserId', // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
+        syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//鍚屾鐢ㄦ埛鍒板伐浣滄祦
         queryTenantList: '/sys/tenant/queryList'
       },
       tenantsOptions: [],
@@ -369,7 +422,9 @@
       nextDepartOptions: [],
       nextProductionOptions: [],
       isDepartType: '',
-
+      model: {
+        selectedProduction: ''
+      }
     }
   },
   watch: {
@@ -377,18 +432,29 @@
       handler(value) {
         if (value) this.initDictData('password_length')
       }
+    },
+    'model.selectedProduction': {
+      handler(newVal, oldVal) {
+        if (newVal && this.$refs.selectDeviceModal) {
+          // 濡傛灉杞﹂棿閫夋嫨鍓嶅悗涓嶄竴鑷村垯閲嶇疆閫夋嫨璁惧
+          if ((oldVal && newVal !== oldVal)) this.model.equipmentIds = ''
+          this.$refs.selectDeviceModal.queryTreeData(newVal)
+        }
+        // 濡傛灉娓呯┖杞﹂棿鍊煎垯閲嶇疆閫夋嫨璁惧
+        if (newVal === '') this.model.equipmentIds = ''
+      }
     }
   },
   created() {
-    const token = Vue.ls.get(ACCESS_TOKEN);
-    this.headers = { "X-Access-Token": token }
+    const token = Vue.ls.get(ACCESS_TOKEN)
+    this.headers = { 'X-Access-Token': token }
     this.initRoleList()
     this.initTenantList()
     this.queryTreeData()
   },
   computed: {
     uploadAction: function () {
-      return this.url.fileUpload;
+      return this.url.fileUpload
     }
   },
   methods: {
@@ -402,56 +468,61 @@
           this.$notification.warning({
             message: '娑堟伅',
             description: res.message
-          });
+          })
         }
       }).finally(() => {
       })
     },
     add() {
-      this.refresh();
-      this.edit({ activitiSync: '1', userIdentity: 1 });
+      this.refresh()
+      this.edit({
+        activitiSync: '1',
+        userType: 0,
+        userIdentity: 1,
+        selectedroles: '',
+        selecteddeparts: '',
+        selectedProduction: ''
+      })
     },
     edit(record) {
-      let that = this;
-      that.visible = true;
+      let that = this
+      that.visible = true
       //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害
-      this.resetScreenSize();
-      that.userId = record.id;
-
-      that.model = Object.assign({}, { selectedroles: '', selecteddeparts: '' }, record);
-      that.model = Object.assign({}, { selectedroles: '', selectedProduction: '' }, record);
+      this.resetScreenSize()
+      that.userId = record.id
+      console.log('record', record)
+      that.model = Object.assign({}, record)
       //韬唤涓轰笂绾ф樉绀鸿礋璐i儴闂紝鍚﹀垯涓嶆樉绀�
       if (this.model.userIdentity == 2) {
-        this.departIdShow = true;
+        this.departIdShow = true
       } else {
-        this.departIdShow = false;
+        this.departIdShow = false
       }
 
-      if (record.hasOwnProperty("id")) {
-        that.getUserRoles(record.id);
-        that.getUserDeparts(record.id);
+      if (record.hasOwnProperty('id')) {
+        that.getUserRoles(record.id)
+        that.getUserDeparts(record.id)
       }
-      console.log('that.model', that.model)
     },
     isDisabledAuth(code) {
-      return disabledAuthFilter(code);
+      return disabledAuthFilter(code)
     },
     //绐楀彛鏈�澶у寲鍒囨崲
     toggleScreen() {
       if (this.modaltoggleFlag) {
-        this.modalWidth = window.innerWidth;
+        this.modalWidth = window.innerWidth
       } else {
-        this.modalWidth = 800;
+        this.modalWidth = 800
       }
-      this.modaltoggleFlag = !this.modaltoggleFlag;
+      this.modaltoggleFlag = !this.modaltoggleFlag
     },
     // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄
     resetScreenSize() {
-      let screenWidth = document.body.clientWidth;
+      let screenWidth = document.body.clientWidth
       if (screenWidth < 500) {
-        this.drawerWidth = screenWidth;
+        this.drawerWidth = screenWidth
       } else {
-        this.drawerWidth = 700;
+        this.drawerWidth = 700
       }
     },
     //鍒濆鍖栫鎴峰瓧鍏�
@@ -459,10 +530,9 @@
       getAction(this.url.queryTenantList).then(res => {
         if (res.success) {
           this.tenantsOptions = res.result.map((item, index, arr) => {
-            let c = { label: item.name, value: item.id + "" }
-            return c;
+            let c = { label: item.name, value: item.id + '' }
+            return c
           })
-          console.log('this.tenantsOptions: ', this.tenantsOptions)
         }
       })
     },
@@ -472,29 +542,27 @@
         if (res.success) {
           this.rolesOptions = res.result.map((item, index, arr) => {
             let c = { label: item.roleName, value: item.id }
-            return c;
+            return c
           })
-          console.log('this.rolesOptions: ', this.rolesOptions)
         }
-      });
+      })
     },
     getUserRoles(userid) {
       queryUserRole({ userid: userid }).then((res) => {
         if (res.success) {
-          this.model.selectedroles = res.result.join(",");
-          console.log('that.model.selectedroles=', this.model.selectedroles)
+          this.$set(this.model, 'selectedroles', res.result.join(','))
         }
-      });
+      })
     },
     getUserDeparts(userid) {
-      let that = this;
-      //閮ㄩ棬鐨剈rl
+      let that = this
+      //閮ㄩ棬鐨剈rl 鑾峰彇閮ㄩ棬鍒嗛厤
       getAction(that.url.userWithDepart, { userId: userid }).then((res) => {
         if (res.success) {
-          let departOptions = [];
+          let departOptions = []
           let selectDepartKeys = []
           for (let i = 0; i < res.result.length; i++) {
-            selectDepartKeys.push(res.result[i].key);
+            selectDepartKeys.push(res.result[i].key)
             //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
             departOptions.push({
               value: res.result[i].key,
@@ -502,20 +570,18 @@
             })
           }
 
-          that.model.selecteddeparts = selectDepartKeys.join(",")
-          that.model.selectedProduction = selectDepartKeys.join(",")
-
-          that.nextDepartOptions = departOptions;
-          console.log('that.nextDepartOptions=', that.nextDepartOptions)
+          this.$set(this.model, 'selecteddeparts', selectDepartKeys.join(','))
+          that.nextDepartOptions = departOptions
         }
       })
 
+      // 鑾峰彇杞﹂棿鍒嗛厤
       getAction(that.url.userProductionList, { userId: userid }).then((res) => {
         if (res.success) {
-          let ProductionOptions = [];
+          let ProductionOptions = []
           let selectProductKeys = []
           for (let i = 0; i < res.result.length; i++) {
-            selectProductKeys.push(res.result[i].key);
+            selectProductKeys.push(res.result[i].key)
             //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
             ProductionOptions.push({
               value: res.result[i].key,
@@ -523,75 +589,73 @@
             })
           }
 
-          that.model.selectedProduction = selectProductKeys.join(",")
-
-          that.nextProductionOptions = ProductionOptions;
-          console.log('that.nextProductionOptions=', that.nextProductionOptions)
+          this.$set(this.model, 'selectedProduction', selectProductKeys.join(','))
+          that.nextProductionOptions = ProductionOptions
         }
       })
       //杞﹂棿鐨剈rl
     },
     backDepartInfo(info) {
-      this.model.departIds = this.model.selecteddeparts;
+      this.model.departIds = this.model.selecteddeparts
       this.nextDepartOptions = info.map((item, index, arr) => {
-        let c = { label: item.text, value: item.value + "" }
-        return c;
+        let c = { label: item.text, value: item.value + '' }
+        return c
       })
     },
     backProductionInfo(info) {
-      this.model.productionIds = this.model.selectedProduction;
+      this.model.productionIds = this.model.selectedProduction
       this.nextProductionOptions = info.map((item, index, arr) => {
-        let c = { label: item.text, value: item.value + "" }
-        return c;
+        let c = { label: item.text, value: item.value + '' }
+        return c
       })
     },
 
     refresh() {
-      this.userId = ""
-      this.nextDepartOptions = [];
-      this.nextProductionOptions = [];
-      this.departIdShow = false;
+      this.userId = ''
+      this.nextDepartOptions = []
+      this.nextProductionOptions = []
+      this.departIdShow = false
     },
     close() {
-      this.$emit('close');
-      this.visible = false;
-      this.disableSubmit = false;
-      this.nextDepartOptions = [];
+      this.$emit('close')
+      this.visible = false
+      this.disableSubmit = false
+      this.nextDepartOptions = []
       this.nextProductionOptions = []
-      this.departIdShow = false;
-      this.$refs.form.resetFields();
+      this.departIdShow = false
+      this.$refs.form.resetFields()
     },
     moment,
     handleSubmit() {
-      const that = this;
+      const that = this
       // 瑙﹀彂琛ㄥ崟楠岃瘉
       this.$refs.form.validate(valid => {
         if (valid) {
-          that.confirmLoading = true;
+          that.confirmLoading = true
           //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖
           if (this.model.userIdentity !== 2) {
-            this.model.departIds = "";
+            this.model.departIds = ''
           }
-          let obj;
+          let obj
           if (!this.model.id) {
-            this.model.id = this.userId;
-            obj = addUser(this.model);
+            this.model.id = this.userId
+            obj = addUser(this.model)
           } else {
-            obj = editUser(this.model);
+            obj = editUser(this.model)
           }
           obj.then((res) => {
             if (res.success) {
-              that.$message.success(res.message);
-              that.$emit('ok');
+              that.$message.success(res.message)
+              that.$emit('ok')
             } else {
-              that.$message.warning(res.message);
+              that.$message.warning(res.message)
             }
           }).finally(() => {
-            that.confirmLoading = false;
-            that.close();
+            that.confirmLoading = false
+            that.close()
           })
         } else {
-          return false;
+          return false
         }
       })
     },
@@ -599,18 +663,18 @@
       this.close()
     },
     validateToNextPassword(rule, value, callback) {
-      const confirmpassword = this.model.confirmpassword;
+      const confirmpassword = this.model.confirmpassword
       if (value && confirmpassword && value !== confirmpassword) {
-        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
+        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
       }
       if (value && this.confirmDirty) {
-        this.$refs.form.validateField(['confirmpassword']);
+        this.$refs.form.validateField(['confirmpassword'])
       }
-      callback();
+      callback()
     },
     compareToFirstPassword(rule, value, callback) {
       if (value && value !== this.model.password) {
-        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
+        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
       } else {
         callback()
       }
@@ -625,16 +689,16 @@
             fieldName: 'phone',
             fieldVal: value,
             dataId: this.userId
-          };
+          }
           duplicateCheck(params).then((res) => {
             if (res.success) {
               callback()
             } else {
-              callback("鎵嬫満鍙峰凡瀛樺湪!")
+              callback('鎵嬫満鍙峰凡瀛樺湪!')
             }
           })
         } else {
-          callback("璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!");
+          callback('璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!')
         }
       }
     },
@@ -648,17 +712,17 @@
             fieldName: 'email',
             fieldVal: value,
             dataId: this.userId
-          };
+          }
           duplicateCheck(params).then((res) => {
             console.log(res)
             if (res.success) {
               callback()
             } else {
-              callback("閭宸插瓨鍦�!")
+              callback('閭宸插瓨鍦�!')
             }
           })
         } else {
-          callback("璇疯緭鍏ユ纭牸寮忕殑閭!")
+          callback('璇疯緭鍏ユ纭牸寮忕殑閭!')
         }
       }
     },
@@ -668,12 +732,12 @@
         fieldName: 'username',
         fieldVal: value,
         dataId: this.userId
-      };
+      }
       duplicateCheck(params).then((res) => {
         if (res.success) {
           callback()
         } else {
-          callback("鐢ㄦ埛鍚嶅凡瀛樺湪!")
+          callback('鐢ㄦ埛鍚嶅凡瀛樺湪!')
         }
       })
     },
@@ -683,49 +747,65 @@
         fieldName: 'work_no',
         fieldVal: value,
         dataId: this.userId
-      };
+      }
       duplicateCheck(params).then((res) => {
         if (res.success) {
           callback()
         } else {
-          callback("宸ュ彿宸插瓨鍦�!")
+          callback('宸ュ彿宸插瓨鍦�!')
         }
       })
     },
     handleConfirmBlur(e) {
-      const value = e.target.value;
+      const value = e.target.value
       this.confirmDirty = this.confirmDirty || !!value
     },
     beforeUpload: function (file) {
-      var fileType = file.type;
+      var fileType = file.type
       if (fileType.indexOf('image') < 0) {
-        this.$message.warning('璇蜂笂浼犲浘鐗�');
-        return false;
+        this.$message.warning('璇蜂笂浼犲浘鐗�')
+        return false
       }
       //TODO 楠岃瘉鏂囦欢澶у皬
     },
     identityChange(e) {
       if (e.target.value === 1) {
-        this.departIdShow = false;
+        this.departIdShow = false
       } else {
-        this.departIdShow = true;
+        this.departIdShow = true
       }
     },
     initDictData(dictCode) {
       //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁�
       ajaxGetDictItems(dictCode, null).then((res) => {
         if (res.success) {
-          const regExp = new RegExp("^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:\";'<>?,./]).{" + Number(res.result[0].value) + ",}$");
+          const regExp = new RegExp('^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:";\'<>?,./]).{' + Number(res.result[0].value) + ',}$')
 
           this.validatorRules.password[0] = {
             required: true,
             pattern: regExp,
-            message: `瀵嗙爜鐢�${res.result[0].value}浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!`,
+            message: `瀵嗙爜鐢�${res.result[0].value}浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!`
           }
 
         }
       })
     },
+
+    deviceSearch() {
+      this.$refs.selectDeviceModal.visible = true
+      this.$refs.selectDeviceModal.selectedRowKeys = []
+      this.$refs.selectDeviceModal.selectedRows = []
+      this.$refs.selectDeviceModal.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : []
+    },
+
+    /**
+     * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂
+     * @param data 宸查�夋嫨鐨勮澶囨暟缁�
+     */
+    selectOK(data) {
+      console.log('data=', data)
+      this.$set(this.model, 'equipmentIds', data.join(','))
+    }
   }
 }
 </script>
@@ -735,6 +815,7 @@
   width: 104px;
   height: 104px;
 }
+
 .ant-upload-select-picture-card i {
   font-size: 49px;
   color: #999;

--
Gitblit v1.9.3