用户管理修改

This commit is contained in:
fengachen
2021-08-30 14:19:14 +08:00
parent 67b6b27261
commit ffd41c4761
6 changed files with 139 additions and 114 deletions
+106 -81
View File
@@ -34,7 +34,7 @@
</a-form-item>
<a-form-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" @blur="handleConfirmBlur" :maxLength="50" placeholder="请重新输入登录密码" :disabled="disableSubmit"
<a-input type="password" @blur="handleConfirmBlur" :maxLength="50" placeholder="请输入确认密码" :disabled="disableSubmit"
@change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item>
</template>
@@ -51,20 +51,20 @@
<!--<j-select-position placeholder="请选择职务" :multiple="false" v-decorator="['post', {}]"/>-->
<!--</a-form-item>-->
<a-form-item label="角色分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!roleDisabled">
<a-select
mode="multiple"
:disabled="departDisabled || disableSubmit"
style="width: 100%"
placeholder="请选择用户角色"
optionFilterProp="children"
v-model="selectedRole"
:getPopupContainer="(target) => target.parentNode">
<a-select-option v-for="(role,roleindex) in roleList" :key="roleindex.toString()" :value="role.id">
{{ role.roleName }}
</a-select-option>
</a-select>
</a-form-item>
<!-- <a-form-item label="角色分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!roleDisabled">-->
<!-- <a-select-->
<!-- mode="multiple"-->
<!-- :disabled="departDisabled || disableSubmit"-->
<!-- style="width: 100%"-->
<!-- placeholder="请选择用户角色"-->
<!-- optionFilterProp="children"-->
<!-- v-model="selectedRole"-->
<!-- :getPopupContainer="(target) => target.parentNode">-->
<!-- <a-select-option v-for="(role,roleindex) in roleList" :key="roleindex.toString()" :value="role.id">-->
<!-- {{ role.roleName }}-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- </a-form-item>-->
<!-- update--begin--autor:wangshuai-----date:20200108------for新增身份和负责部门------ -->
<!-- <a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
@@ -75,57 +75,59 @@
<!-- <a-radio value="2">上级</a-radio>-->
<!-- </a-radio-group>-->
<!-- </a-form-item>-->
<a-form-item label="组织机构" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
mode="multiple"
style="width: 100%"
placeholder="请选择组织机构"
v-model="departIds"
optionFilterProp="children"
:getPopupContainer="(target) => target.parentNode"
:dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
:disabled="disableSubmit"
>
<a-select-option v-for="item in resultDepartOptions" :key="item.key" :value="item.key"
>{{ item.title }}
</a-select-option
>
</a-select>
</a-form-item>
<a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" v-has="'user:sex'">
<a-select v-decorator="[ 'sex', {}]" placeholder="请选择性别" :disabled="disableSubmit" :getPopupContainer="(target) => target.parentNode">
<a-select-option :value="1"></a-select-option>
<a-select-option :value="2"></a-select-option>
</a-select>
</a-form-item>
<!-- <a-form-item-->
<!-- label="角色类型"-->
<!-- :labelCol="labelCol"-->
<!-- :wrapperCol="wrapperCol">-->
<!-- <a-tree-select-->
<!-- style="width:100%"-->
<!-- :dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }"-->
<!-- :treeData="treeRoleData"-->
<!-- v-decorator="[ 'roleParentId', validatorRules.roleParentId]"-->
<!-- placeholder="请选择角色类型"-->
<!-- <a-form-item label="组织机构" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <a-select-->
<!-- mode="multiple"-->
<!-- style="width: 100%"-->
<!-- placeholder="请选择组织机构"-->
<!-- v-model="departIds"-->
<!-- optionFilterProp="children"-->
<!-- :getPopupContainer="(target) => target.parentNode"-->
<!-- :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"-->
<!-- :disabled="disableSubmit"-->
<!-- >-->
<!-- <a-select-option v-for="item in resultDepartOptions" :key="item.key" :value="item.key"-->
<!-- >{{ item.title }}-->
<!-- </a-select-option-->
<!-- >-->
<!-- </a-tree-select>-->
<!-- </a-form-item>-->
<!-- </a-select>-->
<!-- </a-form-item>-->
<!-- <a-form-item-->
<!-- label="组织机构"-->
<!-- :labelCol="labelCol"-->
<!-- :wrapperCol="wrapperCol">-->
<!-- <a-tree-select-->
<!-- style="width:100%"-->
<!-- :dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflo-y': 'auto' }"-->
<!-- :treeData="treeDepartData"-->
<!-- v-decorator="[ 'departId', validatorRules.name]"-->
<!-- placeholder="请选择组织机构">-->
<!-- </a-tree-select>-->
<!-- </a-form-item>-->
<!-- <a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" v-has="'user:sex'">-->
<!-- <a-select v-decorator="[ 'sex', {}]" placeholder="请选择性别" :disabled="disableSubmit" :getPopupContainer="(target) => target.parentNode">-->
<!-- <a-select-option :value="1"></a-select-option>-->
<!-- <a-select-option :value="2"></a-select-option>-->
<!-- </a-select>-->
<!-- </a-form-item>-->
<a-form-item
label="角色类型"
:labelCol="labelCol"
:wrapperCol="wrapperCol">
<a-tree-select
multiple
style="width:100%"
:dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }"
:treeData="treeRoleData"
v-decorator="[ 'selectedroles', validatorRules.selectedroles]"
placeholder="请选择角色类型"
>
</a-tree-select>
</a-form-item>
<a-form-item
label="组织机构"
:labelCol="labelCol"
:wrapperCol="wrapperCol">
<a-tree-select
multiple
style="width:100%"
:dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflo-y': 'auto' }"
:treeData="treeDepartData"
v-decorator="[ 'selecteddeparts', validatorRules.selecteddeparts]"
placeholder="请选择组织机构">
</a-tree-select>
</a-form-item>
<a-form-item label="邮箱" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -165,7 +167,7 @@ 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, queryDepartTreeList} from '@/api/api'
import {addUser, editUser, queryUserRole, queryall,queryallRoles, queryDepartTreeList} from '@/api/api'
import {disabledAuthFilter} from "@/utils/authFilter"
import {duplicateCheck} from '@/api/api'
import { isEmail, passwordReg} from "@/utils/validate";
@@ -188,8 +190,6 @@ export default {
treeDepartData:[],
// 角色类型下拉数据
treeRoleData:[],
selectedDepartKeys: [], //保存用户选择部门id
checkedDepartKeys: [],
checkedDepartNames: [], // 保存部门的名称 =>title
@@ -217,7 +217,7 @@ export default {
},
confirmpassword: {
rules: [{
required: true, message: '请重新输入登录密码!',
required: true, message: '请输入确认密码!',
}, {
validator: this.compareToFirstPassword,
}],
@@ -232,7 +232,8 @@ export default {
},],
validateTrigger: 'blur'
},
roles: {},
selectedroles:{rules: [{required: true, message:"请选择角色类型"}], validateTrigger: ['blur','change']},
selecteddeparts:{rules: [{required: true, message:"请选择组织机构"}], validateTrigger: ['blur','change']}
// sex:{initialValue:((!this.model.sex)?"": (this.model.sex+""))}
},
departIdShow: false,
@@ -311,13 +312,15 @@ export default {
});
},
loadUserRoles(userid) {
queryUserRole({userid: userid}).then((res) => {
if (res.success) {
this.selectedRole = res.result;
} else {
console.log(res.message);
}
});
return new Promise(resolve => {
queryUserRole({userid: userid}).then((res) => {
if (res.success) {
resolve(res.result)
} else {
console.log(res.message);
}
});
})
},
refresh() {
this.selectedDepartKeys = [];
@@ -336,9 +339,12 @@ export default {
this.edit({activitiSync: '1'});
},
edit(record) {
this.resetScreenSize(); // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度
// 加载组织机构数据
this.loadDepartTreeData()
// 加载角色数据
this.loadRolesTreeData()
// 获取公钥
this.getPublicKey()
let that = this;
@@ -346,7 +352,9 @@ export default {
that.checkedDepartNameString = "";
that.form.resetFields();
if (record.hasOwnProperty("id")) {
that.loadUserRoles(record.id);
that.loadUserRoles(record.id).then(res => {
that.form.setFieldsValue({selectedroles:res})
});
setTimeout(() => {
this.fileList = record.avatar;
}, 5)
@@ -354,8 +362,11 @@ export default {
that.userId = record.id;
that.visible = true;
that.model = Object.assign({}, record);
if(record.departIds !== '' && record.id){
that.model.selecteddeparts = record.departIds.split(',')
}
that.$nextTick(() => {
that.form.setFieldsValue(pick(this.model, 'username', 'sex', 'realname', 'email', 'phone', 'post'))
that.form.setFieldsValue(pick(this.model, 'username', 'realname', 'email', 'phone', 'post','selecteddeparts'))
});
//身份为上级显示负责部门,否则不显示
if (this.model.userIdentity == "2") {
@@ -392,7 +403,21 @@ export default {
}
})
},
//
// 角色下拉数据
loadRolesTreeData() {
const that = this
queryallRoles().then((res) => {
if(res.success){
that.treeRoleData = [];
let treeList = res.result
for(let a=0;a<treeList.length;a++){
let temp = treeList[a];
temp.isLeaf = temp.leaf;
that.treeRoleData.push(temp);
}
}
})
},
getPublicKey() {
// 获取公钥
getRSAPublicKey().then(res => {
@@ -473,8 +498,8 @@ export default {
//update-begin-author:taoyan date:2020710 for:多租户配置
formData.relTenantIds = this.currentTenant.length > 0 ? this.currentTenant.join(',') : ''
//update-end-author:taoyan date:2020710 for:多租户配置
formData.selectedroles = this.selectedRole.length > 0 ? this.selectedRole.join(",") : '';
formData.selecteddeparts = this.userDepartModel.departIdList.length > 0 ? this.userDepartModel.departIdList.join(",") : '';
formData.selectedroles = values.selectedroles.length > 0 ? values.selectedroles.join(",") : '';
formData.selecteddeparts = values.selecteddeparts.length > 0 ? values.selecteddeparts.join(",") : '';
formData.userIdentity = this.identity;
//如果是上级择传入departIds,否则为空
if (this.identity === "2") {