From adeb4d53b1f93ee1402c2e124ae69c2cd637e817 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 04 七月 2025 19:49:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/modules/UserModal.vue |  261 +++++++++++++++++++++++++++-------------------------
 1 files changed, 136 insertions(+), 125 deletions(-)

diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue
index dc6a2a4..375d389 100644
--- a/src/views/system/modules/UserModal.vue
+++ b/src/views/system/modules/UserModal.vue
@@ -41,6 +41,7 @@
             placeholder="璇疯緭鍏ョ敤鎴疯处鍙�"
             v-model="model.username"
             :readOnly="!!model.id"
+            autocomplete="off"
           />
         </a-form-model-item>
 
@@ -55,6 +56,7 @@
               type="password"
               placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�"
               v-model="model.password"
+              autocomplete="off"
             />
           </a-form-model-item>
 
@@ -97,10 +99,6 @@
           />
         </a-form-model-item>
 
-        <!--<a-form-model-item label="鑱屽姟" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
-        <!--<j-select-position placeholder="璇烽�夋嫨鑱屽姟" :multiple="false" v-model="model.post"/>-->
-        <!--</a-form-model-item>-->
-
         <a-form-model-item
           label="瑙掕壊鍒嗛厤"
           :labelCol="labelCol"
@@ -114,6 +112,23 @@
             placeholder="璇烽�夋嫨瑙掕壊"
           >
           </j-multi-select-tag>
+        </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>
 
         <!--閮ㄩ棬鍒嗛厤-->
@@ -134,9 +149,9 @@
           </j-select-depart>
         </a-form-model-item>
 
-        <!--杞﹂棿鍒嗛厤-->
+        <!--MDC杞﹂棿鍒嗛厤-->
         <a-form-model-item
-          label="杞﹂棿鍒嗛厤"
+          label="MDC杞﹂棿鍒嗛厤"
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
           v-show="!productionDisabled"
@@ -151,50 +166,67 @@
         </a-form-model-item>
 
         <a-form-model-item
-          label="閫夋嫨璁惧"
+          label="MDC璁惧鍒嗛厤"
           :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="1">
-            <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-group>
+          <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"
-          prop="teamId"
-        >
-          <j-dict-select-tag
-            v-model="model.teamId"
-            :triggerChange="true"
-            dictCode="mom_base_team,name,id,del_flag = 0"
-            placeholder="璇风淮鎶ょ彮缁�"
-          ></j-dict-select-tag>
-        </a-form-model-item>
-        <a-form-model-item
-          label="涓績鍒嗛厤"
+          label="EAM涓績鍒嗛厤"
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
           prop="areaId"
         >
-          <j-dict-select-tag
-            v-model="model.areaId"
+          <j-multi-select-tag
             :triggerChange="true"
-            dictCode="mom_base_area,name,id,del_flag = 0"
+            v-model="model.eamFactoryIds"
+            dictCode="mom_base_area,name,id,del_flag = 0 and type = 1"
             placeholder="璇风淮鎶や腑蹇�"
-          ></j-dict-select-tag>
+          >
+          </j-multi-select-tag>
         </a-form-model-item>
+
+        <a-form-model-item
+          label="EAM璁惧鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!productionDisabled"
+        >
+          <a-input-search
+            :readOnly="true"
+            v-model="model.eamEquipmentIds"
+            @search="deviceSearch"
+            enter-button
+            placeholder="璇烽�夋嫨璁惧"
+            :disabled="!model.selectedProduction"
+          />
+        </a-form-model-item>
+
+        <a-form-model-item
+          label="缁翠慨閮ㄩ棬/鐝粍鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!repairDepartDisabled"
+        >
+          <j-select-repair-depart
+            v-model="model.selectedRepairDeparts"
+            :multi="true"
+            @back="backRepairDepartInfo"
+            :backRepairDepart="true"
+            :treeRepairDepartOpera="true"
+          ></j-select-repair-depart>
+        </a-form-model-item>
+
         <a-form-model-item
           label="璐熻矗閮ㄩ棬"
           :labelCol="labelCol"
@@ -209,87 +241,6 @@
           >
           </j-multi-select-tag>
         </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"-->
-        <!--&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"-->
-        <!--&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"-->
-        <!--&gt;-->
-        <!--<a-input-->
-        <!--placeholder="璇疯緭鍏ラ偖绠�"-->
-        <!--v-model="model.email"-->
-        <!--/>-->
-        <!--</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"-->
-        <!--&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>-->
-
       </a-form-model>
     </a-spin>
 
@@ -313,7 +264,11 @@
       </a-button>
     </div>
 
-    <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'閫夋嫨璁惧'"/>
+    <select-device-modal
+      ref="selectDeviceModal"
+      @selectFinished="selectOK"
+      :title="'閫夋嫨璁惧'"
+    />
   </a-drawer>
 </template>
 
@@ -326,6 +281,7 @@
   import { disabledAuthFilter } from '@/utils/authFilter'
   import { duplicateCheck } from '@/api/api'
   import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction'
+  import JSelectRepairDepart from '../../../components/jeecgbiz/JSelectRepairDepart'
   import { mapActions } from 'vuex'
   import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
   import SelectDeviceModal from './SelectDeviceModal'
@@ -334,13 +290,15 @@
     name: 'UserModal',
     components: {
       SelectDeviceModal,
-      JSelectProduction
+      JSelectProduction,
+      JSelectRepairDepart
     },
     data() {
       return {
         departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰
         productionDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰
         roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰
+        repairDepartDisabled: false, //鏄惁鏄垜鐨勭淮淇儴闂ㄧ彮缁勮皟鐢ㄨ椤甸潰
         modalWidth: 800,
         drawerWidth: 700,
         modaltoggleFlag: true,
@@ -390,15 +348,19 @@
           userProductionList: '/sys/user/userProductionList',
           userId: '/sys/user/generateUserId', // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
           syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//鍚屾鐢ㄦ埛鍒板伐浣滄祦
-          queryTenantList: '/sys/tenant/queryList'
+          queryTenantList: '/sys/tenant/queryList',
+          userRepairDepartList: '/sys/user/userRepairDepartList',
+          repairDepartTreeList: '/eam/eamBaseRepairDepart/queryTreeList'
         },
         tenantsOptions: [],
         rolesOptions: [],
         nextDepartOptions: [],
         nextProductionOptions: [],
+        nextRepairDepartOptions: [],
         isDepartType: '',
         model: {
-          selectedProduction: ''
+          selectedProduction: '',
+          selectedRepairDeparts: ''
         }
       }
     },
@@ -426,6 +388,7 @@
       this.initRoleList()
       this.initTenantList()
       this.queryTreeData()
+      this.getRepairDepartTreeDataByApi()
     },
     computed: {
       uploadAction: function() {
@@ -448,15 +411,30 @@
         }).finally(() => {
         })
       },
+      // 鑾峰彇缁翠慨鐝粍鏍�
+      getRepairDepartTreeDataByApi() {
+        getAction(this.url.repairDepartTreeList)
+          .then(res => {
+            if (res.success) {
+              this.repairDepartTreeData = res.result
+            } else {
+              this.$notification.warning({
+                message: '娑堟伅',
+                description: res.message
+              })
+            }
+          })
+      },
       add() {
         this.refresh()
         this.edit({
           activitiSync: '1',
-          userType: 1,
+          userType: 0,
           userIdentity: 1,
           selectedroles: '',
           selecteddeparts: '',
-          selectedProduction: ''
+          selectedProduction: '',
+          selectedRepairDeparts: ''
         })
       },
       edit(record) {
@@ -477,6 +455,8 @@
         if (record.hasOwnProperty('id')) {
           that.getUserRoles(record.id)
           that.getUserDeparts(record.id)
+          that.getUserProductions(record.id)
+          that.getUserRepairDeparts(record.id)
         }
       },
       isDisabledAuth(code) {
@@ -549,7 +529,9 @@
             that.nextDepartOptions = departOptions
           }
         })
-
+      },
+      getUserProductions(userid) {
+        let that = this
         // 鑾峰彇杞﹂棿鍒嗛厤
         getAction(that.url.userProductionList, { userId: userid }).then((res) => {
           if (res.success) {
@@ -568,7 +550,27 @@
             that.nextProductionOptions = ProductionOptions
           }
         })
-        //杞﹂棿鐨剈rl
+      },
+      getUserRepairDeparts(userid) {
+        let that = this
+        // 鑾峰彇缁翠慨閮ㄩ棬/鐝粍鍒嗛厤
+        getAction(that.url.userRepairDepartList, { userId: userid }).then((res) => {
+          if (res.success) {
+            let repairDepartOptions = []
+            let selectedRepairDepartKeys = []
+            for (let i = 0; i < res.result.length; i++) {
+              selectedRepairDepartKeys.push(res.result[i].key)
+              //鏂板璐熻矗缁翠慨閮ㄩ棬/鐝粍閫夋嫨涓嬫媺妗�
+              repairDepartOptions.push({
+                value: res.result[i].key,
+                label: res.result[i].title
+              })
+            }
+
+            this.$set(this.model, 'selectedRepairDeparts', selectedRepairDepartKeys.join(','))
+            that.nextRepairDepartOptions = repairDepartOptions
+          }
+        })
       },
       backDepartInfo(info) {
         this.model.departIds = this.model.selecteddeparts
@@ -584,11 +586,19 @@
           return c
         })
       },
+      backRepairDepartInfo(info) {
+        this.model.repairDepartIds = this.model.selectedRepairDeparts
+        this.nextRepairDepartOptions = info.map((item, index, arr) => {
+          let c = { label: item.text, value: item.value + '' }
+          return c
+        })
+      },
 
       refresh() {
         this.userId = ''
         this.nextDepartOptions = []
         this.nextProductionOptions = []
+        this.nextRepairDepartOptions = []
         this.departIdShow = false
       },
       close() {
@@ -597,6 +607,7 @@
         this.disableSubmit = false
         this.nextDepartOptions = []
         this.nextProductionOptions = []
+        this.nextRepairDepartOptions = []
         this.departIdShow = false
         this.$refs.form.resetFields()
       },

--
Gitblit v1.9.3