This commit is contained in:
BianLzhaoMin 2025-09-01 10:40:59 +08:00
commit 108543cb82
2 changed files with 66 additions and 28 deletions

View File

@ -278,7 +278,9 @@ export default {
status: undefined
},
//
form: {},
form: {
roleLevelObj:null
},
defaultProps: {
children: 'children',
label: 'label'
@ -396,7 +398,8 @@ export default {
deptIds: [],
menuCheckStrictly: true,
deptCheckStrictly: true,
remark: undefined
remark: undefined,
roleLevelObj:null
}
this.resetForm('form')
},
@ -530,10 +533,11 @@ export default {
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
console.log(this.form.roleLevelObj);
this.form.roleLevel = this.form.roleLevelObj.value;
this.form.roleLevelName = this.form.roleLevelObj.label;
this.form.roleLevelTips = this.roleLevelTips;
delete this.form.roleLevelObj;
if (this.form.roleId != undefined) {
this.form.menuIds = this.getMenuAllCheckedKeys()
updateRole(this.form).then(response => {

View File

@ -15,7 +15,7 @@
item.label }}</el-radio>
</el-form-item>
<el-form-item label="角色" prop="role">
<el-select style="width: 80%;" value-key="value" v-model="form.role" @change="handleRoleChange" clearable placeholder="请选择角色">
<el-select style="width: 80%;" value-key="value" v-model="form.role" @change="handleRoleChange" placeholder="请选择角色">
<el-option class="select-style" v-for="item in roleArr" :key="item.value" :label="item.name" :value="item">
<template>
<span>{{ item.name }}</span>
@ -26,27 +26,27 @@
<span style="margin-left: 10px; color: #f56c6c;">{{ selectedLevel }}</span>
</el-form-item>
<!-- 分公司 -->
<el-form-item label="分公司" prop="bandObj" v-if="permissionType === '2'">
<el-select class="form-item" value-key="value" clearable v-model="form.bandObj" filterable placeholder="请选择分公司">
<el-form-item label="分公司" prop="bandObj2" v-if="permissionType === '2'">
<el-select class="form-item" value-key="value" v-model="form.bandObj2" filterable placeholder="请选择分公司">
<el-option class="form-item" v-for="item in compamyArr" :key="item.value" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<!-- 项目部 -->
<el-form-item label="项目部" prop="bandObj" v-if="permissionType === '3'">
<treeselect v-model="form.bandObj" value-format="object" :options="departArr" :disable-branch-nodes="true"
<el-form-item label="项目部" prop="bandObj3" v-if="permissionType === '3'">
<treeselect v-model="form.bandObj3" value-format="object" :options="departArr" :disable-branch-nodes="true"
placeholder="请选择项目部" value-key="id"/>
</el-form-item>
<!-- 分包商 -->
<el-form-item label="分包商" prop="bandObj" v-if="permissionType === '4'">
<el-select class="form-item" v-model="form.bandObj" value-key="value" clearable filterable placeholder="请选择分包商">
<el-form-item label="分包商" prop="bandObj4" v-if="permissionType === '4'">
<el-select class="form-item" v-model="form.bandObj4" value-key="value" filterable placeholder="请选择分包商">
<el-option class="form-item" v-for="item in subArr" :key="item.value" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<!-- 工程 -->
<el-form-item label="工程" prop="bandObj" v-if="permissionType === '5'">
<el-select class="form-item" v-model="form.bandObj" value-key="value" clearable filterable placeholder="请选择工程">
<el-form-item label="工程" prop="bandObj5" v-if="permissionType === '5'">
<el-select class="form-item" v-model="form.bandObj5" value-key="value" filterable placeholder="请选择工程">
<el-option class="form-item" v-for="item in proArr" :key="item.value" :label="item.name"
:value="item"></el-option>
</el-select>
@ -94,6 +94,10 @@ export default {
status: '0',
role: null,
bandObj: null,
bandObj2: null,
bandObj3: null,
bandObj4: null,
bandObj5: null,
},
rules: {
userName: [
@ -108,10 +112,19 @@ export default {
{ required: true, message: '姓名不能为空', trigger: 'blur' }
],
role: [
{ required: true, message: '角色不能为空', trigger: 'blur' }
{ required: true, message: '角色不能为空', trigger: 'change' }
],
bandObj: [
{ required: true, message: '不能为空', trigger: 'blur' }
bandObj2: [
{ required: true, message: '分公司不能为空', trigger: 'change' }
],
bandObj3: [
{ required: true, message: '项目部不能为空', trigger: 'change' }
],
bandObj4: [
{ required: true, message: '分包商不能为空', trigger: 'change' }
],
bandObj5: [
{ required: true, message: '工程不能为空', trigger: 'change' }
]
},
};
@ -135,9 +148,12 @@ export default {
const selectedRole = this.roleArr.find(item => item.value === selectedValue.value);
this.selectedLevel = selectedRole ? selectedRole.level : "";
this.permissionType = selectedRole ? selectedRole.levelType : "";
delete this.form.bandObj;
if(selectedValue.levelType === '1'){
this.form.bandObj = {name:'公司',value:'0'};
}else{
for (let index = 2; index <= 5; index++) {
this.$set(this.form, 'bandObj' + index, null);
}
}
},
findItemById(tree, id) {
@ -226,27 +242,27 @@ export default {
nickName: obj.nickName,
sex: obj.sex,
status: obj.status,
bandObj: null,
bandObj2: null,
bandObj3: null,
bandObj4: null,
bandObj5: null,
}
const permissionType = obj.permissionType;
this.selectedLevel = obj.roleLevel;
const selectedRole = this.roleArr.find(item => item.value === obj.roleId);
this.form.role = selectedRole;
let selectObj = null;
if (permissionType === '2') {
selectObj = this.compamyArr.find(item => item.value === obj.bandId);
this.form.bandObj2 = this.compamyArr.find(item => item.value === obj.bandId);
} else if (permissionType === '3') {
selectObj = this.findItemById(this.departArr, obj.bandId)
this.form.bandObj3 = this.findItemById(this.departArr, obj.bandId)
} else if (permissionType === '4') {
selectObj = this.subArr.find(item => item.value === obj.bandId);
this.form.bandObj4 = this.subArr.find(item => item.value === obj.bandId);
} else if (permissionType === '5') {
selectObj = this.proArr.find(item => item.value === obj.bandId);
this.form.bandObj5 = this.proArr.find(item => item.value === obj.bandId);
}else{
selectObj = {name:'公司',value:'0'}
this.form.bandObj = {name:'公司',value:'0'}
}
if(selectObj){
this.form.bandObj = selectObj;
}
this.permissionType = permissionType;
}).catch(error => {
@ -297,13 +313,31 @@ export default {
target: this.$el.querySelector('.el-dialog') || document.body
})
let params = _.cloneDeep(this.form);
params.bandId = params.bandObj.id || params.bandObj.value;
params.permissionRange = params.bandObj.name || params.bandObj.label;
if(this.permissionType === '1'){
params.bandId = params.bandObj.id || params.bandObj.value;
params.permissionRange = params.bandObj.name || params.bandObj.label;
}else if(this.permissionType === '2'){
params.bandId = params.bandObj2.id || params.bandObj2.value;
params.permissionRange = params.bandObj2.name || params.bandObj2.label;
}else if(this.permissionType === '3'){
params.bandId = params.bandObj3.id || params.bandObj3.value;
params.permissionRange = params.bandObj3.name || params.bandObj3.label;
}else if(this.permissionType === '4'){
params.bandId = params.bandObj4.id || params.bandObj4.value;
params.permissionRange = params.bandObj4.name || params.bandObj4.label;
}else if(this.permissionType === '5'){
params.bandId = params.bandObj5.id || params.bandObj5.value;
params.permissionRange = params.bandObj5.name || params.bandObj5.label;
}
params.roleId = params.role.value || '';
params.roleName = params.role.name || '';
params.roleLevel = this.selectedLevel || '';
params.permissionType = this.permissionType || '';
delete params.bandObj;
delete params.bandObj2;
delete params.bandObj3;
delete params.bandObj4;
delete params.bandObj5;
delete params.role;
if (this.isAdd === 'add') {
addUser(params).then(res => {