This commit is contained in:
@@ -127,16 +127,10 @@
|
||||
<template #default="{ node, data }">
|
||||
<span style="display: flex; align-items: center; gap: 8px">
|
||||
<span>{{ node.label }}</span>
|
||||
<ElTag
|
||||
:type="data.perm_type === 1 ? 'info' : 'success'"
|
||||
size="small"
|
||||
>
|
||||
<ElTag :type="data.perm_type === 1 ? 'info' : 'success'" size="small">
|
||||
{{ data.perm_type === 1 ? '菜单' : '按钮' }}
|
||||
</ElTag>
|
||||
<ElTag
|
||||
:type="data.status === 1 ? 'success' : 'info'"
|
||||
size="small"
|
||||
>
|
||||
<ElTag :type="data.status === 1 ? 'success' : 'info'" size="small">
|
||||
{{ data.status === 1 ? '启用' : '禁用' }}
|
||||
</ElTag>
|
||||
</span>
|
||||
@@ -183,16 +177,10 @@
|
||||
<span class="tree-node-content">
|
||||
<span class="tree-node-label">
|
||||
<span>{{ node.label }}</span>
|
||||
<ElTag
|
||||
:type="data.perm_type === 1 ? 'info' : 'success'"
|
||||
size="small"
|
||||
>
|
||||
<ElTag :type="data.perm_type === 1 ? 'info' : 'success'" size="small">
|
||||
{{ data.perm_type === 1 ? '菜单' : '按钮' }}
|
||||
</ElTag>
|
||||
<ElTag
|
||||
:type="data.status === 1 ? 'success' : 'info'"
|
||||
size="small"
|
||||
>
|
||||
<ElTag :type="data.status === 1 ? 'success' : 'info'" size="small">
|
||||
{{ data.status === 1 ? '启用' : '禁用' }}
|
||||
</ElTag>
|
||||
</span>
|
||||
@@ -231,7 +219,9 @@
|
||||
ElTree,
|
||||
ElSwitch,
|
||||
ElButton,
|
||||
ElInput
|
||||
ElInput,
|
||||
ElSelect,
|
||||
ElOption
|
||||
} from 'element-plus'
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import type { PlatformRole, PermissionTreeNode } from '@/types/api'
|
||||
@@ -268,7 +258,9 @@
|
||||
|
||||
// 搜索表单初始值
|
||||
const initialSearchState = {
|
||||
role_name: ''
|
||||
role_name: '',
|
||||
role_type: undefined as number | undefined,
|
||||
status: undefined as number | undefined
|
||||
}
|
||||
|
||||
// 搜索表单
|
||||
@@ -284,6 +276,32 @@
|
||||
clearable: true,
|
||||
placeholder: '请输入角色名称'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '角色类型',
|
||||
prop: 'role_type',
|
||||
type: 'select',
|
||||
config: {
|
||||
clearable: true,
|
||||
placeholder: '请选择角色类型'
|
||||
},
|
||||
options: () => [
|
||||
{ label: '平台角色', value: 1 },
|
||||
{ label: '客户角色', value: 2 }
|
||||
]
|
||||
},
|
||||
{
|
||||
label: '状态',
|
||||
prop: 'status',
|
||||
type: 'select',
|
||||
config: {
|
||||
clearable: true,
|
||||
placeholder: '请选择状态'
|
||||
},
|
||||
options: () => [
|
||||
{ label: '启用', value: 1 },
|
||||
{ label: '禁用', value: 0 }
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -373,13 +391,13 @@
|
||||
{
|
||||
prop: 'CreatedAt',
|
||||
label: '创建时间',
|
||||
minWidth: 180,
|
||||
width: 180,
|
||||
formatter: (row: any) => formatDateTime(row.CreatedAt)
|
||||
},
|
||||
{
|
||||
prop: 'operation',
|
||||
label: '操作',
|
||||
width: 200,
|
||||
width: 240,
|
||||
fixed: 'right',
|
||||
formatter: (row: any) => {
|
||||
const buttons = []
|
||||
@@ -388,7 +406,7 @@
|
||||
if (hasAuth('role:permission')) {
|
||||
buttons.push(
|
||||
h(ArtButtonTable, {
|
||||
icon: '',
|
||||
text: '分配权限',
|
||||
onClick: () => showPermissionDialog(row)
|
||||
})
|
||||
)
|
||||
@@ -398,7 +416,7 @@
|
||||
if (hasAuth('role:edit')) {
|
||||
buttons.push(
|
||||
h(ArtButtonTable, {
|
||||
type: 'edit',
|
||||
text: '编辑',
|
||||
onClick: () => showDialog('edit', row)
|
||||
})
|
||||
)
|
||||
@@ -408,7 +426,7 @@
|
||||
if (hasAuth('role:delete')) {
|
||||
buttons.push(
|
||||
h(ArtButtonTable, {
|
||||
type: 'delete',
|
||||
text: '删除',
|
||||
onClick: () => deleteRole(row)
|
||||
})
|
||||
)
|
||||
@@ -613,14 +631,14 @@
|
||||
// 保存右侧树的展开节点
|
||||
const expandedKeys = rightTreeRef.value?.store?.nodesMap
|
||||
? Object.keys(rightTreeRef.value.store.nodesMap)
|
||||
.filter(key => rightTreeRef.value.store.nodesMap[key].expanded)
|
||||
.map(key => Number(key))
|
||||
.filter((key) => rightTreeRef.value.store.nodesMap[key].expanded)
|
||||
.map((key) => Number(key))
|
||||
: []
|
||||
|
||||
await RoleService.removePermission(currentRoleId.value, permId)
|
||||
|
||||
// 更新已选权限列表
|
||||
selectedPermissions.value = selectedPermissions.value.filter(id => id !== permId)
|
||||
selectedPermissions.value = selectedPermissions.value.filter((id) => id !== permId)
|
||||
|
||||
// 重新构建左右两侧树
|
||||
const fullTreeData = buildTreeData(originalPermissionTree.value)
|
||||
@@ -641,7 +659,7 @@
|
||||
// 等待DOM更新后恢复展开状态
|
||||
await nextTick()
|
||||
if (rightTreeRef.value && expandedKeys.length > 0) {
|
||||
expandedKeys.forEach(key => {
|
||||
expandedKeys.forEach((key) => {
|
||||
const node = rightTreeRef.value.store.nodesMap[key]
|
||||
if (node && !node.isLeaf) {
|
||||
node.expanded = true
|
||||
@@ -705,7 +723,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 获取角色列表
|
||||
const getTableData = async () => {
|
||||
loading.value = true
|
||||
@@ -713,7 +730,9 @@
|
||||
const params = {
|
||||
page: pagination.page,
|
||||
pageSize: pagination.pageSize,
|
||||
role_name: searchForm.role_name || undefined
|
||||
role_name: searchForm.role_name || undefined,
|
||||
role_type: searchForm.role_type,
|
||||
status: searchForm.status
|
||||
}
|
||||
const res = await RoleService.getRoles(params)
|
||||
if (res.code === 0) {
|
||||
|
||||
Reference in New Issue
Block a user