底座bug修改
This commit is contained in:
parent
5718c78811
commit
a16751f258
@ -99,16 +99,25 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 分配角色的菜单权限对话框 -->
|
<!-- 分配角色的菜单权限对话框 -->
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="权限范围"
|
label="权限范围"
|
||||||
v-if="
|
v-if="
|
||||||
actionScopeType === 'menu' || dataScopeForm.dataScope === SystemDataScopeEnum.DEPT_CUSTOM
|
actionScopeType === 'menu' ||
|
||||||
|
dataScopeForm.dataScope === SystemDataScopeEnum.DEPT_CUSTOM
|
||||||
"
|
"
|
||||||
|
style="display: flex"
|
||||||
>
|
>
|
||||||
<el-card shadow="never">
|
<el-card class="card" shadow="never">
|
||||||
<template #header>
|
<template #header>
|
||||||
父子联动(选中父节点,自动选择子节点):
|
父子联动(选中父节点,自动选择子节点):
|
||||||
<el-switch v-model="checkStrictly" inline-prompt active-text="是" inactive-text="否" />
|
<el-switch
|
||||||
|
v-model="checkStrictly"
|
||||||
|
inline-prompt
|
||||||
|
active-text="是"
|
||||||
|
inactive-text="否"
|
||||||
|
/>
|
||||||
全选/全不选:
|
全选/全不选:
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="treeNodeAll"
|
v-model="treeNodeAll"
|
||||||
@ -129,7 +138,8 @@
|
|||||||
empty-text="加载中,请稍后"
|
empty-text="加载中,请稍后"
|
||||||
/>
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form-item>
|
</el-form-item> </el-col
|
||||||
|
></el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@ -312,3 +322,10 @@ onMounted(() => {
|
|||||||
init()
|
init()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.card {
|
||||||
|
width: 100%;
|
||||||
|
max-height: 400px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
>
|
>
|
||||||
<template #menuIds>
|
<template #menuIds>
|
||||||
<el-card class="w-120">
|
<el-card>
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
全选/全不选:
|
全选/全不选:
|
||||||
@ -91,6 +91,16 @@ const dialogTitle = ref('edit') // 弹出层标题
|
|||||||
const handleCheckedTreeNodeAll = () => {
|
const handleCheckedTreeNodeAll = () => {
|
||||||
treeRef.value!.setCheckedNodes(treeNodeAll.value ? menuOptions.value : [])
|
treeRef.value!.setCheckedNodes(treeNodeAll.value ? menuOptions.value : [])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validateCategory = (rule: any, value: any, callback: any) => {
|
||||||
|
if (!treeRef.value!.getCheckedKeys().length) {
|
||||||
|
callback(new Error('该项为必填项'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rules.menuIds = [{ required: true, validator: validateCategory, trigger: 'blur' }]
|
||||||
|
|
||||||
const getTree = async () => {
|
const getTree = async () => {
|
||||||
const res = await listSimpleMenusApi()
|
const res = await listSimpleMenusApi()
|
||||||
menuOptions.value = handleTree(res)
|
menuOptions.value = handleTree(res)
|
||||||
@ -166,3 +176,10 @@ onMounted(async () => {
|
|||||||
})
|
})
|
||||||
// getList()
|
// getList()
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.el-card {
|
||||||
|
width: 100%;
|
||||||
|
max-height: 400px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -33,7 +33,12 @@ const crudSchemas = reactive<VxeCrudSchema>({
|
|||||||
{
|
{
|
||||||
title: '菜单权限',
|
title: '菜单权限',
|
||||||
field: 'menuIds',
|
field: 'menuIds',
|
||||||
isTable: false
|
isTable: false,
|
||||||
|
form: {
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t('form.remark'),
|
title: t('form.remark'),
|
||||||
|
@ -159,7 +159,7 @@
|
|||||||
:data="detailData"
|
:data="detailData"
|
||||||
>
|
>
|
||||||
<template #deptId="{ row }">
|
<template #deptId="{ row }">
|
||||||
<span>{{ row.dept?.name }}</span>
|
<el-tag>{{ dataFormater(row.deptId) }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<template #postIds="{ row }">
|
<template #postIds="{ row }">
|
||||||
<template v-if="row.postIds !== ''">
|
<template v-if="row.postIds !== ''">
|
||||||
@ -332,6 +332,29 @@ const getPostOptions = async () => {
|
|||||||
const res = await listSimplePostsApi()
|
const res = await listSimplePostsApi()
|
||||||
postOptions.value.push(...res)
|
postOptions.value.push(...res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const dataFormater = (val) => {
|
||||||
|
return deptFormater(deptOptions.value, val)
|
||||||
|
}
|
||||||
|
//部门回显
|
||||||
|
const deptFormater = (ary, val: any) => {
|
||||||
|
var o = ''
|
||||||
|
if (ary && val) {
|
||||||
|
for (const v of ary) {
|
||||||
|
if (v.id == val) {
|
||||||
|
o = v.name
|
||||||
|
if (o) return o
|
||||||
|
} else if (v.children?.length) {
|
||||||
|
o = deptFormater(v.children, val)
|
||||||
|
if (o) return o
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return o
|
||||||
|
} else {
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 设置标题
|
// 设置标题
|
||||||
const setDialogTile = async (type: string) => {
|
const setDialogTile = async (type: string) => {
|
||||||
dialogTitle.value = t('action.' + type)
|
dialogTitle.value = t('action.' + type)
|
||||||
|
Loading…
Reference in New Issue
Block a user