From 60e922f4319319b69159e742522ea7b38f7fc5df Mon Sep 17 00:00:00 2001 From: xxm Date: Mon, 7 Nov 2022 16:55:03 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/Login.vue | 4 +- src/views/modules/system/menu/Menu.api.ts | 20 +- src/views/modules/system/menu/MenuList.vue | 12 +- .../modules/system/menu/ResourceEdit.vue | 36 ++- .../modules/system/menu/ResourceList.vue | 7 +- src/views/modules/system/role/Role.api.ts | 49 +++++ src/views/modules/system/role/RoleList.vue | 26 ++- .../modules/system/role/RoleMenuModal.vue | 205 ++++++++++++++++++ .../modules/system/role/RolePathModal.vue | 88 ++++++++ types/web.d.ts | 2 +- 10 files changed, 420 insertions(+), 29 deletions(-) create mode 100644 src/views/modules/system/role/RoleMenuModal.vue create mode 100644 src/views/modules/system/role/RolePathModal.vue diff --git a/src/views/login/Login.vue b/src/views/login/Login.vue index e06bd90c..d5cf1ade 100644 --- a/src/views/login/Login.vue +++ b/src/views/login/Login.vue @@ -18,7 +18,9 @@
开箱即用的中后台管理系统
-
输入您的个人详细信息开始使用!
+
基于Vite+Vue3打造,支持支付收单、工作流(Flowable)、三方对接等模块 +
diff --git a/src/views/modules/system/menu/Menu.api.ts b/src/views/modules/system/menu/Menu.api.ts index 00e4bdc2..998f3d30 100644 --- a/src/views/modules/system/menu/Menu.api.ts +++ b/src/views/modules/system/menu/Menu.api.ts @@ -78,6 +78,17 @@ export const existsByPermCodeNotId = (permCode, id) => { }) } +/** + * 菜单列表 + * @param clientCode + */ +export function allMenuTree(clientCode) { + return defHttp.get>({ + url: '/perm/menu/allTree', + params: { clientCode }, + }) +} + /** * 权限_菜单 */ @@ -85,7 +96,7 @@ export interface Menu extends BaseEntity { // 终端code clientCode?: string // 父id - parentId: number | null + parentId: number | null | string // 菜单名称 title: string // 路由名称 @@ -120,6 +131,13 @@ export interface Menu extends BaseEntity { remark?: string } +/** + * 菜单树 + */ +export interface MenuTree extends Menu { + children: [] +} + /** * 权限_资源(码) */ diff --git a/src/views/modules/system/menu/MenuList.vue b/src/views/modules/system/menu/MenuList.vue index 3f26f4c1..52b2cd70 100644 --- a/src/views/modules/system/menu/MenuList.vue +++ b/src/views/modules/system/menu/MenuList.vue @@ -5,7 +5,7 @@ - + {{ o.name }} @@ -25,7 +25,7 @@
- + - +
@@ -127,7 +127,7 @@ onMounted(() => { vxeBind() initClients() - init() + queryPage() }) function vxeBind() { @@ -139,7 +139,7 @@ clients = data } - async function init() { + async function queryPage() { loading = true menuTree(clientCode).then((res) => { remoteTableData = res.data @@ -175,7 +175,7 @@ onOk: () => { del(record.id).then(() => { notification.success({ message: '删除成功' }) - init() + queryPage() }) }, }) diff --git a/src/views/modules/system/menu/ResourceEdit.vue b/src/views/modules/system/menu/ResourceEdit.vue index 07cd3f39..3b219fde 100644 --- a/src/views/modules/system/menu/ResourceEdit.vue +++ b/src/views/modules/system/menu/ResourceEdit.vue @@ -1,10 +1,18 @@ @@ -72,12 +74,16 @@ import { $ref } from 'vue/macros' import { QueryField, STRING } from '/@/components/Bootx/Query/Query' import Icon from '/@/components/Icon/src/Icon.vue' + import RoleMenuModal from "./RoleMenuModal.vue"; + import RolePathModal from "./RolePathModal.vue"; // 使用hooks const { handleTableChange, pageQueryResHandel, resetQueryParams, pagination, pages, model, loading } = useTablePage(queryPage) const { createMessage } = useMessage() - const roleEdit = ref() + const roleEdit = $ref() + const roleMenuModal = $ref() + const rolePathModal = $ref() // 查询条件 const fields = [ { field: 'code', type: STRING, name: '角色编号', placeholder: '请输入角色编码' }, @@ -106,20 +112,24 @@ } // 新增 function add() { - roleEdit.value.init(null, FormEditType.Add) + roleEdit.init(null, FormEditType.Add) } // 查看 function edit(record) { - roleEdit.value.init(record.id, FormEditType.Edit) + roleEdit.init(record.id, FormEditType.Edit) } // 查看 function show(record) { - roleEdit.value.init(record.id, FormEditType.Show) + roleEdit.init(record.id, FormEditType.Show) } // 菜单授权处理 - function handleRoleMenu(record) {} + function handleRoleMenu(record) { + roleMenuModal.init(record.id) + } // 请求授权处理 - function handleRolePath(record) {} + function handleRolePath(record) { + rolePathModal.init(record.id) + } // 删除 function remove(record) { del(record.id).then(() => { diff --git a/src/views/modules/system/role/RoleMenuModal.vue b/src/views/modules/system/role/RoleMenuModal.vue new file mode 100644 index 00000000..9b5bd309 --- /dev/null +++ b/src/views/modules/system/role/RoleMenuModal.vue @@ -0,0 +1,205 @@ + + + + diff --git a/src/views/modules/system/role/RolePathModal.vue b/src/views/modules/system/role/RolePathModal.vue new file mode 100644 index 00000000..52b3968c --- /dev/null +++ b/src/views/modules/system/role/RolePathModal.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/types/web.d.ts b/types/web.d.ts index e08c23a9..f2e2171d 100644 --- a/types/web.d.ts +++ b/types/web.d.ts @@ -35,5 +35,5 @@ export interface TablePageModel { * 基础实体对象 */ export interface BaseEntity { - id?: number | null | undefined + id?: number | string | null | undefined }