给租户管理增加角色切换的功能

This commit is contained in:
jishenghua
2024-12-23 00:34:03 +08:00
parent 6f294fad62
commit bd1d96b58d
12 changed files with 106 additions and 29 deletions

View File

@@ -12,6 +12,7 @@ const addRole = (params)=>postAction("/role/add",params);
const editRole = (params)=>putAction("/role/update",params);
const checkRole = (params)=>getAction("/role/checkIsNameExist",params);
const roleAllList = (params)=>getAction("/role/allList",params);
const getTenantRoleList = (params)=>getAction("/role/tenantRoleList",params);
//用户管理
const registerUser = (params)=>postAction("/user/registerUser",params);
const addUser = (params)=>postAction("/user/addUser",params);
@@ -124,6 +125,7 @@ export {
editRole,
checkRole,
roleAllList,
getTenantRoleList,
registerUser,
addUser,
editUser,

View File

@@ -138,6 +138,7 @@
{ title: '租户类型',dataIndex: 'type',width:60,align:"center",
scopedSlots: { customRender: 'customRenderType' }
},
{ title: '租户角色', dataIndex: 'roleName', width: 80, align: "center"},
{ title: '租户状态',dataIndex: 'enabled',width:60,align:"center",
scopedSlots: { customRender: 'customRenderEnabled' }
},

View File

@@ -30,6 +30,13 @@
<a-select-option value="1">付费租户</a-select-option>
</a-select>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="租户角色" v-if="model.id">
<a-select style="width:100%" placeholder="请选择租户角色" v-decorator.trim="[ 'roleId' ]">
<a-select-option v-for="(item,index) in tenantRoleList" :key="index" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="到期时间">
<j-date style="width:100%" placeholder="请选择到期时间" v-decorator.trim="[ 'expireTime' ]" :show-time="true"/>
</a-form-item>
@@ -44,7 +51,7 @@
<script>
import pick from 'lodash.pick'
import {mixinDevice} from '@/utils/mixin'
import {addTenant,editTenant,checkTenant } from '@/api/api'
import {addTenant,editTenant,checkTenant, getTenantRoleList } from '@/api/api'
import JDate from '@/components/jeecg/JDate'
import md5 from 'md5'
export default {
@@ -58,6 +65,7 @@
title:"操作",
visible: false,
model: {},
tenantRoleList: [], //租户角色列表
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
@@ -91,8 +99,16 @@
this.model.expireTime = this.model.expireTimeStr
this.visible = true;
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model,'loginName', 'userNumLimit', 'type', 'expireTime', 'remark'))
});
this.form.setFieldsValue(pick(this.model,'loginName', 'userNumLimit', 'type', 'roleId', 'expireTime', 'remark'))
})
this.getTenantRoleList()
},
getTenantRoleList() {
getTenantRoleList().then((res)=>{
if(res) {
this.tenantRoleList = res
}
})
},
close () {
this.$emit('close');

View File

@@ -30,12 +30,12 @@
<a-input placeholder="请输入用户姓名" v-decorator.trim="[ 'username', validatorRules.username]" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="角色">
<a-select v-if="model.roleName!='租户'" placeholder="选择角色" v-decorator="[ 'roleId', validatorRules.roleId]" :dropdownMatchSelectWidth="false">
<a-select v-if="model.id!==model.tenantId" placeholder="选择角色" v-decorator="[ 'roleId', validatorRules.roleId]" :dropdownMatchSelectWidth="false">
<a-select-option v-for="(item,index) in roleList" :key="index" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
<a-col v-if="model.roleName=='租户'"><a-row>租户</a-row></a-col>
<a-col v-if="model.id===model.tenantId"><a-row>{{ tenantRoleName }}</a-row></a-col>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="机构">
<a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" allow-clear
@@ -95,6 +95,7 @@
orgaTree: [],
roleList: [],
userId:"", //保存用户id
tenantRoleName: '', //租户的角色名称
isReadOnly: false,
disableSubmit:false,
dateFormat:"YYYY-MM-DD",
@@ -148,6 +149,7 @@
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model,'loginName','username','roleId','orgaId','position','leaderFlag',
'phonenum','email','userBlngOrgaDsplSeq','description'))
this.tenantRoleName = this.model.roleName
autoJumpNextInput('userModal')
});
},