用户管理修改
This commit is contained in:
+4
-2
@@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
//初始化负责部门
|
||||
|
||||
@@ -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") {
|
||||
|
||||
Reference in New Issue
Block a user