用户管理修改

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
+4 -2
View File
@@ -6,6 +6,7 @@ import {UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types"
const addRole = (params)=>postAction("/sys/role/add",params);
const editRole = (params)=>postAction("/sys/role/edit",params);
const checkRoleCode = (params)=>getAction("/sys/role/checkRoleCode",params);
const queryallRoles = (params)=> getAction('sys/role/treeList',params)
const queryall = (params)=>getAction("/sys/role/queryall",params);
//用户管理
@@ -21,7 +22,7 @@ const checkOnlyUser = (params)=>getAction("/sys/user/checkOnlyUser",params);
//改变密码
const changePassword = (params)=>postAction("/sys/user/changePassword",params);
// 重置密码
const resetUserPassword = (params) => postAction('',params)
const resetUserPassword = (params) => postAction('/sys/user/resetPassword',params)
//权限管理
const addPermission= (params)=>postAction("/sys/permission/add",params);
@@ -163,7 +164,8 @@ export {
getUserNoticeInfo,
getDictItemsFromCache,
resetUserPassword,
getContactsByCompany
getContactsByCompany,
queryallRoles
}
+3 -2
View File
@@ -173,7 +173,7 @@ export default {
},
handleAddUserRole() {
if (this.currentRoleId == "") {
this.$message.error("请选择一个角色!");
this.$message.warn("请选择一个角色!");
} else {
this.$refs.selectUserModal.visible = true;
}
@@ -205,5 +205,6 @@ export default {
}
};
</script>
<style scoped>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
+20 -23
View File
@@ -59,6 +59,7 @@
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<a-button @click="handleExportXls('用户列表')" type="primary" icon="export">导出</a-button>
<a-button @click="batchDel" type="danger" icon="delete">批量删除</a-button>
</div>
@@ -74,12 +75,13 @@
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
class="j-table-force-nowrap"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record)" v-has="'user:edit'">编辑</a>
<a @click="resetPassword(record.id)" >重置密码</a>
<a @click="resetPassword(record.id)">重置密码</a>
<a @click="handleDelete(record.id)" v-has="'sys:user:del'">删除</a>
</span>
<template slot="text" slot-scope="text">
@@ -99,6 +101,7 @@
<script>
import UserModal from "./modules/UserModal";
import {getAction, getFileAccessHttpUrl} from "@/api/manage";
import "@/assets/less/TableExpand.less";
import { JeroListMixin } from "@/mixins/JeroListMixin";
import JInput from "@/components/jero/JInput";
import JEllipsis from "@comp/jero/JEllipsis";
@@ -141,19 +144,19 @@ export default {
dataIndex: "realname",
scopedSlots: { customRender: "text" },
},
{
title: "性别",
align: "center",
width: 80,
dataIndex: "sex_dictText",
scopedSlots: { customRender: "text" },
},
// {
// title: "性别",
// align: "center",
// width: 80,
// dataIndex: "sex_dictText",
// scopedSlots: { customRender: "text" },
// },
{
title: "角色类型",
align: "center",
width: 100,
dataIndex: "",
// scopedSlots: { customRender: "text" },
dataIndex: "roleName",
scopedSlots: { customRender: "text" },
},
{
title: "手机号码",
@@ -166,7 +169,7 @@ export default {
title: "组织机构",
align: "center",
width: 180,
dataIndex: "orgCodeTxt",
dataIndex: "departIds_dictText",
scopedSlots: { customRender: "text" },
},
// {
@@ -181,13 +184,6 @@ export default {
// width: 180,
// dataIndex: 'departIds_dictText'
// },
{
title: "状态",
align: "center",
width: 80,
dataIndex: "status_dictText",
scopedSlots: { customRender: "text" },
},
{
title: "操作",
dataIndex: "action",
@@ -212,11 +208,12 @@ export default {
{ type: "input", value: "username", text: "用户账号" }
],
url: {
list: "/sys/user/page",
list: "/sys/user/pageRoleAndDepart",
delete: "/sys/user/delete",
deleteBatch: "/sys/user/deleteBatch",
exportXlsUrl: "/sys/user/exportXls",
importExcelUrl: "sys/user/importExcel"
importExcelUrl: "sys/user/importExcel",
downTemplateUrl:'sys/user/exportTemplate'
}
};
},
@@ -257,8 +254,8 @@ export default {
* 角色下拉数据
* */
initAllRole() {
getAction('/sys/role/treeListPage').then(res => {
this.treeRoleData = res.result.records
getAction('/sys/role/treeList').then(res => {
this.treeRoleData = res.result
})
},
/*
@@ -277,6 +274,6 @@ export default {
};
</script>
<style scoped>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
+3 -3
View File
@@ -159,7 +159,7 @@
},
hasSelectDept() {
if (this.currentDeptId == '') {
this.$message.error("请选择一个部门!")
this.$message.warn("请选择一个部门!")
return false;
}
return true;
@@ -172,7 +172,7 @@
},
handleAdd: function () {
if (this.currentDeptId == '') {
this.$message.error("请选择一个部门!")
this.$message.warn("请选择一个部门!")
} else {
this.$refs.modalForm.departDisabled = true;
this.$refs.modalForm.add(this.currentDeptId);
@@ -188,4 +188,4 @@
<style scoped>
</style>
</style>
+3 -3
View File
@@ -270,14 +270,14 @@ export default {
},
hasSelectDept() {
if (this.currentDeptId == '') {
this.$message.error("请选择一个部门!")
this.$message.warn("请选择一个部门!")
return false;
}
return true;
},
handleAddUserDepart() {
if (this.currentDeptId == '') {
this.$message.error("请选择一个部门!")
this.$message.warn("请选择一个部门!")
} else {
this.$refs.selectUserModal.add()
}
@@ -290,7 +290,7 @@ export default {
},
handleAdd: function () {
if (this.currentDeptId == '') {
this.$message.error("请选择一个部门!")
this.$message.warn("请选择一个部门!")
} else {
this.$refs.modalForm.departDisabled = true;
//初始化负责部门
+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") {