修改工单
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m26s

This commit is contained in:
sexygoat
2026-02-25 16:14:38 +08:00
parent ca3184857e
commit dccad819cf
20 changed files with 2163 additions and 1229 deletions

View File

@@ -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: '&#xe72b;',
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) {