调整管理员支持多部门多角色

This commit is contained in:
xinjie 2022-11-29 19:05:29 +08:00
parent 06bc994b42
commit ef350201ca
2 changed files with 28 additions and 16 deletions

View File

@ -28,13 +28,14 @@
<el-form-item label="名称" prop="nickname"> <el-form-item label="名称" prop="nickname">
<el-input v-model="formData.nickname" placeholder="请输入名称" clearable /> <el-input v-model="formData.nickname" placeholder="请输入名称" clearable />
</el-form-item> </el-form-item>
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="归属部门" prop="deptIds">
<el-tree-select <el-tree-select
class="flex-1" class="flex-1"
v-model="formData.deptId" v-model="formData.deptIds"
:data="optionsData.dept" :data="optionsData.dept"
clearable clearable
node-key="id" node-key="id"
multiple
:props="{ :props="{
value: 'id', value: 'id',
label: 'name', label: 'name',
@ -47,11 +48,12 @@
placeholder="请选择上级部门" placeholder="请选择上级部门"
/> />
</el-form-item> </el-form-item>
<el-form-item label="岗位" prop="deptId"> <el-form-item label="岗位" prop="postIds">
<el-select <el-select
class="flex-1" class="flex-1"
clearable clearable
v-model="formData.postId" multiple
v-model="formData.postIds"
placeholder="请选择岗位" placeholder="请选择岗位"
> >
<el-option <el-option
@ -63,10 +65,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="角色" prop="role"> <el-form-item label="角色" prop="roleIds">
<el-select <el-select
v-model="formData.role" v-model="formData.roleIds"
:disabled="isRoot" :disabled="isRoot"
multiple
class="flex-1" class="flex-1"
clearable clearable
placeholder="请选择角色" placeholder="请选择角色"
@ -135,12 +138,12 @@ const popupTitle = computed(() => {
}) })
const formData = reactive({ const formData = reactive({
id: '', id: 0,
username: '', username: '',
nickname: '', nickname: '',
deptId: '', deptIds: [],
postId: '', postIds: [],
role: '', roleIds: [],
avatar: '', avatar: '',
password: '', password: '',
passwordConfirm: '', passwordConfirm: '',
@ -149,7 +152,7 @@ const formData = reactive({
}) })
const isRoot = computed(() => { const isRoot = computed(() => {
return formData.role == '0' return formData.id == 1
}) })
const passwordConfirmValidator = (rule: object, value: string, callback: any) => { const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
@ -174,8 +177,9 @@ const formRules = reactive({
trigger: ['blur'] trigger: ['blur']
} }
], ],
role: [ roleIds: [
{ {
type: 'array',
required: true, required: true,
message: '请选择角色', message: '请选择角色',
trigger: ['blur'] trigger: ['blur']
@ -239,8 +243,6 @@ const setFormData = async (row: any) => {
//@ts-ignore //@ts-ignore
formData[key] = data[key] formData[key] = data[key]
} }
Number(formData.deptId) == 0 && (formData.deptId = '')
Number(formData.postId) == 0 && (formData.postId = '')
} }
formRules.password = [] formRules.password = []
formRules.passwordConfirm = [ formRules.passwordConfirm = [

View File

@ -52,8 +52,18 @@
</el-table-column> </el-table-column>
<el-table-column label="账号" prop="username" min-width="100" /> <el-table-column label="账号" prop="username" min-width="100" />
<el-table-column label="名称" prop="nickname" min-width="100" /> <el-table-column label="名称" prop="nickname" min-width="100" />
<el-table-column label="角色" prop="role" min-width="100" /> <el-table-column
<el-table-column label="部门" prop="dept" min-width="100" /> label="角色"
prop="role"
show-tooltip-when-overflow
min-width="100"
/>
<el-table-column
label="部门"
prop="dept"
show-tooltip-when-overflow
min-width="100"
/>
<el-table-column label="创建时间" prop="createTime" min-width="180" /> <el-table-column label="创建时间" prop="createTime" min-width="180" />
<el-table-column label="最近登录时间" prop="lastLoginTime" min-width="180" /> <el-table-column label="最近登录时间" prop="lastLoginTime" min-width="180" />
<el-table-column label="最近登录IP" prop="lastLoginIp" min-width="120" /> <el-table-column label="最近登录IP" prop="lastLoginIp" min-width="120" />