From cf9d04b97ef0b8abb63e587e0898e301765ed4b9 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 18 八月 2025 17:07:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/system/modules/UserModal.vue | 1144 +++++++++++++++++++++++++++++----------------------------
1 files changed, 584 insertions(+), 560 deletions(-)
diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue
index a497293..93f60a0 100644
--- a/src/views/system/modules/UserModal.vue
+++ b/src/views/system/modules/UserModal.vue
@@ -97,9 +97,10 @@
/>
</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" :wrapperCol="wrapperCol">-->
+<!-- <!– <j-select-position placeholder="璇烽�夋嫨宀椾綅" :multiple="false" v-model="model.post"/>–>-->
+<!-- <j-dict-select-tag placeholder="璇烽�夋嫨宀椾綅" dict-code="sys_position, name, code" v-model="model.post" />-->
+<!-- </a-form-model-item>-->
<a-form-model-item
label="瑙掕壊鍒嗛厤"
@@ -135,100 +136,120 @@
</a-form-model-item>
<!--杞﹂棿鍒嗛厤-->
+<!-- <a-form-model-item-->
+<!-- label="杞﹂棿鍒嗛厤"-->
+<!-- :labelCol="labelCol"-->
+<!-- :wrapperCol="wrapperCol"-->
+<!-- v-show="!productionDisabled"-->
+<!-- >-->
+<!-- <j-select-production-->
+<!-- v-model="model.selectedProduction"-->
+<!-- :multi="true"-->
+<!-- @back="backProductionInfo"-->
+<!-- :backProduction="true"-->
+<!-- :treeProductOpera="true"-->
+<!-- ></j-select-production>-->
+<!-- </a-form-model-item>-->
+
+ <!--涓績鍒嗛厤-->
<a-form-model-item
- label="杞﹂棿鍒嗛厤"
+ label="涓績鍒嗛厤"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- v-show="!productionDisabled"
+ v-show="!factoryDisabled"
>
- <j-select-production
- v-model="model.selectedProduction"
+ <j-select-factory
+ v-model="model.selectedFactorys"
:multi="true"
- @back="backProductionInfo"
- :backProduction="true"
- :treeProductOpera="true"
- ></j-select-production>
+ @back="backFactoryInfo"
+ :backFactory="true"
+ :treeFactoryOpera="true"
+ ></j-select-factory>
</a-form-model-item>
+<!-- <a-form-model-item-->
+<!-- label="閫夋嫨璁惧"-->
+<!-- :labelCol="labelCol"-->
+<!-- :wrapperCol="wrapperCol"-->
+<!-- v-show="!productionDisabled"-->
+<!-- >-->
+<!-- <a-tooltip title="閫夋嫨璁惧鍚庯紝鐢ㄦ埛灏卞彧鏈夎繖浜涜澶囩殑鏉冮檺锛佷笉閫夋嫨璁惧锛屽垯浼氭牴鎹溅闂村垎閰嶆帶鍒惰澶囩殑鏉冮檺锛�"-->
+<!-- placement="topRight">-->
+<!-- <a-input-search-->
+<!-- :readOnly="true"-->
+<!-- v-model="model.equipmentIds"-->
+<!-- @search="deviceSearch"-->
+<!-- enter-button-->
+<!-- placeholder="璇烽�夋嫨璁惧"-->
+<!-- :disabled="!model.selectedProduction"-->
+<!-- />-->
+<!-- </a-tooltip>-->
+<!-- </a-form-model-item>-->
+
+
<!--<a-form-model-item-->
- <!--label="閫夋嫨璁惧"-->
- <!--:labelCol="labelCol"-->
- <!--:wrapperCol="wrapperCol"-->
- <!--v-show="!productionDisabled"-->
+ <!--label="棣栭〉鏉冮檺"-->
+ <!--:labelCol="labelCol"-->
+ <!--:wrapperCol="wrapperCol"-->
<!-->-->
- <!--<a-input-search-->
- <!--:readOnly="true"-->
- <!--v-model="model.equipmentIds"-->
- <!--@search="deviceSearch"-->
- <!--enter-button-->
- <!--placeholder="璇烽�夋嫨璁惧"-->
- <!--:disabled="!model.selectedProduction"-->
- <!--/>-->
+ <!--<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"-->
- <!--:wrapperCol="wrapperCol"-->
+ <!--label="鐝粍鍒嗛厤"-->
+ <!--:labelCol="labelCol"-->
+ <!--:wrapperCol="wrapperCol"-->
+ <!--prop="teamId"-->
<!-->-->
- <!--<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"-->
- <!--: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>-->
+ <!--<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="涓績鍒嗛厤"-->
- <!--:labelCol="labelCol"-->
- <!--:wrapperCol="wrapperCol"-->
- <!--prop="areaId"-->
+ <!--label="涓績鍒嗛厤"-->
+ <!--:labelCol="labelCol"-->
+ <!--:wrapperCol="wrapperCol"-->
+ <!--prop="areaId"-->
<!-->-->
- <!--<!– <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-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>-->
+ <!--<!– <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-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="璐熻矗閮ㄩ棬"-->
- <!--:labelCol="labelCol"-->
- <!--:wrapperCol="wrapperCol"-->
- <!--v-if="departIdShow==true"-->
+ <!--label="璐熻矗閮ㄩ棬"-->
+ <!--:labelCol="labelCol"-->
+ <!--:wrapperCol="wrapperCol"-->
+ <!--v-if="departIdShow==true"-->
<!-->-->
- <!--<j-multi-select-tag-->
- <!--:disabled="disableSubmit"-->
- <!--v-model="model.departIds"-->
- <!--:options="nextDepartOptions"-->
- <!--placeholder="璇烽�夋嫨璐熻矗閮ㄩ棬"-->
- <!-->-->
- <!--</j-multi-select-tag>-->
+ <!--<j-multi-select-tag-->
+ <!--:disabled="disableSubmit"-->
+ <!--v-model="model.departIds"-->
+ <!--:options="nextDepartOptions"-->
+ <!--placeholder="璇烽�夋嫨璐熻矗閮ㄩ棬"-->
+ <!-->-->
+ <!--</j-multi-select-tag>-->
<!--</a-form-model-item>-->
<!--<a-form-model-item-->
@@ -343,503 +364,506 @@
</template>
<script>
- import moment from 'moment'
- import Vue from 'vue'
- 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 { duplicateCheck } from '@/api/api'
- import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction'
- import { mapActions } from 'vuex'
- import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
- import SelectDeviceModal from './SelectDeviceModal'
+import moment from 'moment'
+import Vue from 'vue'
+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 { duplicateCheck } from '@/api/api'
+import JSelectFactory from '../../../components/jeecgbiz/JSelectFactory'
+import { mapActions } from 'vuex'
+import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
+import SelectDeviceModal from './SelectDeviceModal'
- export default {
- name: 'UserModal',
- components: {
- SelectDeviceModal,
- JSelectProduction
- },
- data() {
- return {
- departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰
- productionDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰
- roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰
- modalWidth: 800,
- drawerWidth: 700,
- modaltoggleFlag: true,
- confirmDirty: false,
- userId: '', //淇濆瓨鐢ㄦ埛id
- disableSubmit: false,
- dateFormat: 'YYYY-MM-DD',
- validatorRules: {
- username: [{ required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!' },
- { validator: this.validateUsername }],
- password: [{
+export default {
+ name: 'UserModal',
+ components: {
+ SelectDeviceModal,
+ JSelectFactory
+ },
+ data() {
+ return {
+ departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰
+ factoryDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰
+ roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰
+ modalWidth: 800,
+ drawerWidth: 700,
+ modaltoggleFlag: true,
+ confirmDirty: false,
+ userId: '', //淇濆瓨鐢ㄦ埛id
+ disableSubmit: false,
+ dateFormat: 'YYYY-MM-DD',
+ validatorRules: {
+ workNo:[{ required: true, message: '璇疯緭鍏ュ伐鍙�!' }],
+ username: [{ required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!' },
+ { validator: this.validateUsername }],
+ password: [
+ {
required: true,
- pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
- message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!'
+ // pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
+ message: '璇疯緭鍏ョ櫥褰曞瘑鐮�!'
},
- { validator: this.validateToNextPassword, trigger: 'change' }],
- 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: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' }],
- teamId: [{ required: false, message: '璇风淮鎶ょ彮缁�' }]
- },
- departIdShow: false,
- title: '鎿嶄綔',
- visible: false,
- model: {},
- labelCol: {
- xs: { span: 24 },
- sm: { span: 5 }
- },
- wrapperCol: {
- xs: { span: 24 },
- sm: { span: 16 }
- },
- uploadLoading: false,
- confirmLoading: false,
- headers: {},
- 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',//鍚屾鐢ㄦ埛鍒板伐浣滄祦
- queryTenantList: '/sys/tenant/queryList'
- },
- tenantsOptions: [],
- rolesOptions: [],
- nextDepartOptions: [],
- nextProductionOptions: [],
- isDepartType: '',
- model: {
- selectedProduction: ''
- }
- }
- },
- watch: {
- visible: {
- handler(value) {
- if (value) this.initDictData('password_length')
- }
+ { validator: this.validateToNextPassword, trigger: 'change' }],
+ 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: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' }],
+ teamId: [{ required: false, message: '璇风淮鎶ょ彮缁�' }]
},
- '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 }
- this.initRoleList()
- this.initTenantList()
- this.queryTreeData()
- },
- computed: {
- uploadAction: function () {
- return this.url.fileUpload
- }
- },
- methods: {
- ...mapActions(['QueryDepartTree']),
- queryTreeData() {
- this.QueryDepartTree().then(res => {
- if (res.success) {
- this.isDepartType = res.result[0].value
- } else {
- // this.$message.warn(res.message)
- this.$notification.warning({
- message: '娑堟伅',
- description: res.message
- })
- }
- }).finally(() => {
- })
+ departIdShow: false,
+ title: '鎿嶄綔',
+ visible: false,
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 }
},
- add() {
- this.refresh()
- this.edit({
- activitiSync: '1',
- userType: 0,
- userIdentity: 1,
- selectedroles: '',
- selecteddeparts: '',
- selectedProduction: ''
- })
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 }
},
- edit(record) {
- let that = this
- that.visible = true
- //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害
- this.resetScreenSize()
- that.userId = record.id
- console.log('record', record)
- that.model = Object.assign({}, record)
- //韬唤涓轰笂绾ф樉绀鸿礋璐i儴闂紝鍚﹀垯涓嶆樉绀�
- if (this.model.userIdentity == 2) {
- this.departIdShow = true
- } else {
- this.departIdShow = false
- }
-
- if (record.hasOwnProperty('id')) {
- that.getUserRoles(record.id)
- that.getUserDeparts(record.id)
- }
+ uploadLoading: false,
+ confirmLoading: false,
+ headers: {},
+ url: {
+ fileUpload: window._CONFIG['domianURL'] + 'sys/common/upload',
+ userWithDepart: '/sys/user/userDepartList', // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url
+ //寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬭溅闂翠俊鎭渶瑕佺殑url
+ userFactoryList: '/sys/user/userFactorysList',
+ userId: '/sys/user/generateUserId', // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
+ syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//鍚屾鐢ㄦ埛鍒板伐浣滄祦
+ queryTenantList: '/sys/tenant/queryList'
},
- isDisabledAuth(code) {
- return disabledAuthFilter(code)
- },
- //绐楀彛鏈�澶у寲鍒囨崲
- toggleScreen() {
- if (this.modaltoggleFlag) {
- this.modalWidth = window.innerWidth
- } else {
- this.modalWidth = 800
- }
- this.modaltoggleFlag = !this.modaltoggleFlag
- },
- // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄
- resetScreenSize() {
- let screenWidth = document.body.clientWidth
- if (screenWidth < 500) {
- this.drawerWidth = screenWidth
- } else {
- this.drawerWidth = 700
- }
- },
- //鍒濆鍖栫鎴峰瓧鍏�
- initTenantList() {
- 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
- })
- }
- })
- },
- //鍒濆鍖栬鑹插瓧鍏�
- initRoleList() {
- queryall().then((res) => {
- if (res.success) {
- this.rolesOptions = res.result.map((item, index, arr) => {
- let c = { label: item.roleName, value: item.id }
- return c
- })
- }
- })
- },
- getUserRoles(userid) {
- queryUserRole({ userid: userid }).then((res) => {
- if (res.success) {
- this.$set(this.model, 'selectedroles', res.result.join(','))
- }
- })
- },
- getUserDeparts(userid) {
- let that = this
- //閮ㄩ棬鐨剈rl 鑾峰彇閮ㄩ棬鍒嗛厤
- getAction(that.url.userWithDepart, { userId: userid }).then((res) => {
- if (res.success) {
- let departOptions = []
- let selectDepartKeys = []
- for (let i = 0; i < res.result.length; i++) {
- selectDepartKeys.push(res.result[i].key)
- //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
- departOptions.push({
- value: res.result[i].key,
- label: res.result[i].title
- })
- }
-
- this.$set(this.model, 'selecteddeparts', selectDepartKeys.join(','))
- that.nextDepartOptions = departOptions
- }
- })
-
- // 鑾峰彇杞﹂棿鍒嗛厤
- getAction(that.url.userProductionList, { userId: userid }).then((res) => {
- if (res.success) {
- let ProductionOptions = []
- let selectProductKeys = []
- for (let i = 0; i < res.result.length; i++) {
- selectProductKeys.push(res.result[i].key)
- //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
- ProductionOptions.push({
- value: res.result[i].key,
- label: res.result[i].title
- })
- }
-
- this.$set(this.model, 'selectedProduction', selectProductKeys.join(','))
- that.nextProductionOptions = ProductionOptions
- }
- })
- //杞﹂棿鐨剈rl
- },
- backDepartInfo(info) {
- this.model.departIds = this.model.selecteddeparts
- this.nextDepartOptions = info.map((item, index, arr) => {
- let c = { label: item.text, value: item.value + '' }
- return c
- })
- },
- backProductionInfo(info) {
- this.model.productionIds = this.model.selectedProduction
- this.nextProductionOptions = info.map((item, index, arr) => {
- let c = { label: item.text, value: item.value + '' }
- return c
- })
- },
-
- refresh() {
- this.userId = ''
- this.nextDepartOptions = []
- this.nextProductionOptions = []
- this.departIdShow = false
- },
- close() {
- this.$emit('close')
- this.visible = false
- this.disableSubmit = false
- this.nextDepartOptions = []
- this.nextProductionOptions = []
- this.departIdShow = false
- this.$refs.form.resetFields()
- },
- moment,
- handleSubmit() {
- const that = this
- // 瑙﹀彂琛ㄥ崟楠岃瘉
- this.$refs.form.validate(valid => {
- if (valid) {
- that.confirmLoading = true
- //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖
- if (this.model.userIdentity !== 2) {
- this.model.departIds = ''
- }
- let obj
- if (!this.model.id) {
- this.model.id = this.userId
- obj = addUser(this.model)
- } else {
- obj = editUser(this.model)
- }
- obj.then((res) => {
- if (res.success) {
- that.$message.success(res.message)
- that.$emit('ok')
- } else {
- that.$message.warning(res.message)
- }
- }).finally(() => {
- that.confirmLoading = false
- that.close()
- })
- } else {
- return false
- }
- })
- },
- handleCancel() {
- this.close()
- },
- validateToNextPassword(rule, value, callback) {
- const confirmpassword = this.model.confirmpassword
- if (value && confirmpassword && value !== confirmpassword) {
- callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
- }
- if (value && this.confirmDirty) {
- this.$refs.form.validateField(['confirmpassword'])
- }
- callback()
- },
- compareToFirstPassword(rule, value, callback) {
- if (value && value !== this.model.password) {
- callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
- } else {
- callback()
- }
- },
- validatePhone(rule, value, callback) {
- if (!value) {
- callback()
- } else {
- if (new RegExp(/^1[3|4|5|7|8|9][0-9]\d{8}$/).test(value)) {
- var params = {
- tableName: 'sys_user',
- fieldName: 'phone',
- fieldVal: value,
- dataId: this.userId
- }
- duplicateCheck(params).then((res) => {
- if (res.success) {
- callback()
- } else {
- callback('鎵嬫満鍙峰凡瀛樺湪!')
- }
- })
- } else {
- callback('璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!')
- }
- }
- },
- validateEmail(rule, value, callback) {
- if (!value) {
- callback()
- } else {
- if (new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)) {
- var params = {
- tableName: 'sys_user',
- fieldName: 'email',
- fieldVal: value,
- dataId: this.userId
- }
- duplicateCheck(params).then((res) => {
- console.log(res)
- if (res.success) {
- callback()
- } else {
- callback('閭宸插瓨鍦�!')
- }
- })
- } else {
- callback('璇疯緭鍏ユ纭牸寮忕殑閭!')
- }
- }
- },
- validateUsername(rule, value, callback) {
- var params = {
- tableName: 'sys_user',
- fieldName: 'username',
- fieldVal: value,
- dataId: this.userId
- }
- duplicateCheck(params).then((res) => {
- if (res.success) {
- callback()
- } else {
- callback('鐢ㄦ埛鍚嶅凡瀛樺湪!')
- }
- })
- },
- validateWorkNo(rule, value, callback) {
- var params = {
- tableName: 'sys_user',
- fieldName: 'work_no',
- fieldVal: value,
- dataId: this.userId
- }
- duplicateCheck(params).then((res) => {
- if (res.success) {
- callback()
- } else {
- callback('宸ュ彿宸插瓨鍦�!')
- }
- })
- },
- handleConfirmBlur(e) {
- const value = e.target.value
- this.confirmDirty = this.confirmDirty || !!value
- },
- beforeUpload: function (file) {
- var fileType = file.type
- if (fileType.indexOf('image') < 0) {
- this.$message.warning('璇蜂笂浼犲浘鐗�')
- return false
- }
- //TODO 楠岃瘉鏂囦欢澶у皬
- },
- identityChange(e) {
- if (e.target.value === 1) {
- this.departIdShow = false
- } else {
- 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) + ',}$')
-
- this.validatorRules.password[0] = {
- required: true,
- pattern: regExp,
- 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(','))
+ tenantsOptions: [],
+ rolesOptions: [],
+ nextDepartOptions: [],
+ nextFactoryOptions: [],
+ isDepartType: '',
+ model: {
+ selectedFactorys: ''
}
}
+ },
+ watch: {
+ visible: {
+ handler(value) {
+ if (value) this.initDictData('password_length')
+ }
+ },
+ 'model.selectedFactorys': {
+ 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 }
+ this.initRoleList()
+ this.initTenantList()
+ this.queryTreeData()
+ },
+ computed: {
+ uploadAction: function() {
+ return this.url.fileUpload
+ }
+ },
+ methods: {
+ ...mapActions(['QueryDepartTree']),
+ queryTreeData() {
+ this.QueryDepartTree().then(res => {
+ if (res.success) {
+ this.isDepartType = res.result[0].value
+ } else {
+ // this.$message.warn(res.message)
+ this.$notification.warning({
+ message: '娑堟伅',
+ description: res.message
+ })
+ }
+ }).finally(() => {
+ })
+ },
+ add() {
+ this.refresh()
+ this.edit({
+ activitiSync: '1',
+ userType: 0,
+ userIdentity: 1,
+ selectedroles: '',
+ selecteddeparts: '',
+ selectedFactorys: ''
+ })
+ },
+ edit(record) {
+ let that = this
+ that.visible = true
+ //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害
+ this.resetScreenSize()
+ that.userId = record.id
+ console.log('record', record)
+ that.model = Object.assign({}, record)
+ //韬唤涓轰笂绾ф樉绀鸿礋璐i儴闂紝鍚﹀垯涓嶆樉绀�
+ if (this.model.userIdentity == 2) {
+ this.departIdShow = true
+ } else {
+ this.departIdShow = false
+ }
+
+ if (record.hasOwnProperty('id')) {
+ that.getUserRoles(record.id)
+ that.getUserDeparts(record.id)
+ that.getUserFactorys(record.id)
+ }
+ },
+ isDisabledAuth(code) {
+ return disabledAuthFilter(code)
+ },
+ //绐楀彛鏈�澶у寲鍒囨崲
+ toggleScreen() {
+ if (this.modaltoggleFlag) {
+ this.modalWidth = window.innerWidth
+ } else {
+ this.modalWidth = 800
+ }
+ this.modaltoggleFlag = !this.modaltoggleFlag
+ },
+ // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄
+ resetScreenSize() {
+ let screenWidth = document.body.clientWidth
+ if (screenWidth < 500) {
+ this.drawerWidth = screenWidth
+ } else {
+ this.drawerWidth = 700
+ }
+ },
+ //鍒濆鍖栫鎴峰瓧鍏�
+ initTenantList() {
+ 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
+ })
+ }
+ })
+ },
+ //鍒濆鍖栬鑹插瓧鍏�
+ initRoleList() {
+ queryall().then((res) => {
+ if (res.success) {
+ this.rolesOptions = res.result.map((item, index, arr) => {
+ let c = { label: item.roleName, value: item.id }
+ return c
+ })
+ }
+ })
+ },
+ getUserRoles(userid) {
+ queryUserRole({ userid: userid }).then((res) => {
+ if (res.success) {
+ this.$set(this.model, 'selectedroles', res.result.join(','))
+ }
+ })
+ },
+ getUserDeparts(userid) {
+ let that = this
+ //閮ㄩ棬鐨剈rl 鑾峰彇閮ㄩ棬鍒嗛厤
+ getAction(that.url.userWithDepart, { userId: userid }).then((res) => {
+ if (res.success) {
+ let departOptions = []
+ let selectDepartKeys = []
+ for (let i = 0; i < res.result.length; i++) {
+ selectDepartKeys.push(res.result[i].key)
+ //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
+ departOptions.push({
+ value: res.result[i].key,
+ label: res.result[i].title
+ })
+ }
+
+ this.$set(this.model, 'selecteddeparts', selectDepartKeys.join(','))
+ that.nextDepartOptions = departOptions
+ }
+ })
+ },
+ getUserFactorys(userid) {
+ let that = this
+ // 鑾峰彇杞﹂棿鍒嗛厤
+ getAction(that.url.userFactoryList, { userId: userid }).then((res) => {
+ if (res.success) {
+ let factoryOptions = []
+ let selectFactoryKeys = []
+ for (let i = 0; i < res.result.length; i++) {
+ selectFactoryKeys.push(res.result[i].key)
+ //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
+ factoryOptions.push({
+ value: res.result[i].key,
+ label: res.result[i].title
+ })
+ }
+
+ this.$set(this.model, 'selectedFactorys', selectFactoryKeys.join(','))
+ that.nextFactoryOptions = factoryOptions
+ }
+ })
+ },
+ backDepartInfo(info) {
+ this.model.departIds = this.model.selecteddeparts
+ this.nextDepartOptions = info.map((item, index, arr) => {
+ let c = { label: item.text, value: item.value + '' }
+ return c
+ })
+ },
+ backFactoryInfo(info) {
+ this.model.productionIds = this.model.selectedFactorys
+ this.nextFactoryOptions = info.map((item, index, arr) => {
+ let c = { label: item.text, value: item.value + '' }
+ return c
+ })
+ },
+
+ refresh() {
+ this.userId = ''
+ this.nextDepartOptions = []
+ this.nextFactoryOptions = []
+ this.departIdShow = false
+ },
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.disableSubmit = false
+ this.nextDepartOptions = []
+ this.nextFactoryOptions = []
+ this.departIdShow = false
+ this.$refs.form.resetFields()
+ },
+ moment,
+ handleSubmit() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ that.confirmLoading = true
+ //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖
+ if (this.model.userIdentity !== 2) {
+ this.model.departIds = ''
+ }
+ let obj
+ if (!this.model.id) {
+ this.model.id = this.userId
+ obj = addUser(this.model)
+ } else {
+ obj = editUser(this.model)
+ }
+ obj.then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok')
+ } else {
+ that.$message.warning(res.message)
+ }
+ }).finally(() => {
+ that.confirmLoading = false
+ that.close()
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ handleCancel() {
+ this.close()
+ },
+ validateToNextPassword(rule, value, callback) {
+ const confirmpassword = this.model.confirmpassword
+ if (value && confirmpassword && value !== confirmpassword) {
+ callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
+ }
+ if (value && this.confirmDirty) {
+ this.$refs.form.validateField(['confirmpassword'])
+ }
+ callback()
+ },
+ compareToFirstPassword(rule, value, callback) {
+ if (value && value !== this.model.password) {
+ callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒')
+ } else {
+ callback()
+ }
+ },
+ validatePhone(rule, value, callback) {
+ if (!value) {
+ callback()
+ } else {
+ if (new RegExp(/^1[3|4|5|7|8|9][0-9]\d{8}$/).test(value)) {
+ var params = {
+ tableName: 'sys_user',
+ fieldName: 'phone',
+ fieldVal: value,
+ dataId: this.userId
+ }
+ duplicateCheck(params).then((res) => {
+ if (res.success) {
+ callback()
+ } else {
+ callback('鎵嬫満鍙峰凡瀛樺湪!')
+ }
+ })
+ } else {
+ callback('璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!')
+ }
+ }
+ },
+ validateEmail(rule, value, callback) {
+ if (!value) {
+ callback()
+ } else {
+ if (new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)) {
+ var params = {
+ tableName: 'sys_user',
+ fieldName: 'email',
+ fieldVal: value,
+ dataId: this.userId
+ }
+ duplicateCheck(params).then((res) => {
+ console.log(res)
+ if (res.success) {
+ callback()
+ } else {
+ callback('閭宸插瓨鍦�!')
+ }
+ })
+ } else {
+ callback('璇疯緭鍏ユ纭牸寮忕殑閭!')
+ }
+ }
+ },
+ validateUsername(rule, value, callback) {
+ var params = {
+ tableName: 'sys_user',
+ fieldName: 'username',
+ fieldVal: value,
+ dataId: this.userId
+ }
+ duplicateCheck(params).then((res) => {
+ if (res.success) {
+ callback()
+ } else {
+ callback('鐢ㄦ埛鍚嶅凡瀛樺湪!')
+ }
+ })
+ },
+ validateWorkNo(rule, value, callback) {
+ var params = {
+ tableName: 'sys_user',
+ fieldName: 'work_no',
+ fieldVal: value,
+ dataId: this.userId
+ }
+ duplicateCheck(params).then((res) => {
+ if (res.success) {
+ callback()
+ } else {
+ callback('宸ュ彿宸插瓨鍦�!')
+ }
+ })
+ },
+ handleConfirmBlur(e) {
+ const value = e.target.value
+ this.confirmDirty = this.confirmDirty || !!value
+ },
+ beforeUpload: function(file) {
+ var fileType = file.type
+ if (fileType.indexOf('image') < 0) {
+ this.$message.warning('璇蜂笂浼犲浘鐗�')
+ return false
+ }
+ //TODO 楠岃瘉鏂囦欢澶у皬
+ },
+ identityChange(e) {
+ if (e.target.value === 1) {
+ this.departIdShow = false
+ } else {
+ 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) + ',}$')
+
+ this.validatorRules.password[0] = {
+ required: true,
+ pattern: regExp,
+ 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>
<style scoped>
- .avatar-uploader > .ant-upload {
- width: 104px;
- height: 104px;
- }
+.avatar-uploader > .ant-upload {
+ width: 104px;
+ height: 104px;
+}
- .ant-upload-select-picture-card i {
- font-size: 49px;
- color: #999;
- }
+.ant-upload-select-picture-card i {
+ font-size: 49px;
+ color: #999;
+}
- .ant-upload-select-picture-card .ant-upload-text {
- margin-top: 8px;
- color: #666;
- }
+.ant-upload-select-picture-card .ant-upload-text {
+ margin-top: 8px;
+ color: #666;
+}
- .ant-table-tbody .ant-table-row td {
- padding-top: 10px;
- padding-bottom: 10px;
- }
+.ant-table-tbody .ant-table-row td {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
- .drawer-bottom-button {
- position: absolute;
- bottom: -8px;
- width: 100%;
- border-top: 1px solid #e8e8e8;
- padding: 10px 16px;
- text-align: right;
- left: 0;
- background: #fff;
- border-radius: 0 0 2px 2px;
- }
+.drawer-bottom-button {
+ position: absolute;
+ bottom: -8px;
+ width: 100%;
+ border-top: 1px solid #e8e8e8;
+ padding: 10px 16px;
+ text-align: right;
+ left: 0;
+ background: #fff;
+ border-radius: 0 0 2px 2px;
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3