diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 2cb508c..21625d6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -65,7 +65,7 @@ module.exports = { "vue/no-mutating-props": "error", // 不允许改变组件 prop "vue/custom-event-name-casing": "error", // 为自定义事件名称强制使用特定大小写 "vue/html-closing-bracket-newline": "error", // 在标签的右括号之前要求或禁止换行 - "vue/attribute-hyphenation": "error", // 对模板中的自定义组件强制执行属性命名样式:my-prop="prop" + "vue/attribute-hyphenation": "off", // 对模板中的自定义组件强制执行kebab-case命名:my-prop="prop" "vue/attributes-order": "off", // vue api使用顺序,强制执行属性顺序 "vue/no-v-html": "off", // 禁止使用 v-html "vue/require-default-prop": "off", // 此规则要求为每个 prop 为必填时,必须提供默认值 diff --git a/src/api/modules/system/index.ts b/src/api/modules/system/index.ts index 1e5a42e..95e37f0 100644 --- a/src/api/modules/system/index.ts +++ b/src/api/modules/system/index.ts @@ -47,3 +47,12 @@ export const getMenuListAPI = () => { method: "get" }); }; + +// 根据角色获取权限数据 +export const getUserPermissionAPI = (params: { role: string }) => { + return axios({ + url: "/mock/menu/getUserPermission", + method: "get", + params + }); +}; diff --git a/src/mock/_data/system_data.ts b/src/mock/_data/system_data.ts index c931560..691f31c 100644 --- a/src/mock/_data/system_data.ts +++ b/src/mock/_data/system_data.ts @@ -122,7 +122,7 @@ export const roleData = [ { id: 1, name: "超级管理员", - key: "admin", + code: "admin", sort: 1, status: 1, admin: true, @@ -135,7 +135,7 @@ export const roleData = [ { id: 2, name: "普通员工", - key: "common", + code: "common", sort: 2, status: 1, admin: false, diff --git a/src/mock/system/menu.ts b/src/mock/system/menu.ts index 16f46f6..7063e23 100644 --- a/src/mock/system/menu.ts +++ b/src/mock/system/menu.ts @@ -19,7 +19,12 @@ import { systemMenu, permissionData } from "../_data/system_menu"; * 5、缓存一维路由 */ -// post请求body,get请求query +/** + * post请求body,get请求query + * /mock/menu/getMenu 获取菜单数据 + * /mock/menu/getMenuList 获取菜单列表数据-菜单管理 + * /mock/menu/getUserPermission 根据角色获取权限数据 + */ export default [ { url: "/mock/menu/getMenu", @@ -51,5 +56,18 @@ export default [ // 3. 返回路由树 return resultSuccess(treeSort(buildTreeOptimized(originMenu))); } + }, + { + url: "/mock/menu/getUserPermission", + method: "get", + timeout: 300, + response: ({ query }: any) => { + let { role } = query; + // 将扁平路由和权限菜单合并 + const originMenu: any = [...deepClone(systemMenu), ...deepClone(permissionData)]; + // 根据角色过滤id + let idList = originMenu.filter((item: any) => item.meta.roles.includes(role)).map((item: any) => item.id); + return resultSuccess(idList); + } } ] as MockMethod[]; diff --git a/src/mock/system/system.ts b/src/mock/system/system.ts index c1d30ae..34264ad 100644 --- a/src/mock/system/system.ts +++ b/src/mock/system/system.ts @@ -2,7 +2,13 @@ import type { MockMethod } from "vite-plugin-mock"; import { resultSuccess } from "../_utils"; import { dictData, divisionData, roleData, accountData } from "../_data/system_data"; -// post请求body,get请求query +/** + * post请求body,get请求query + * /mock/system/getDict 获取字典数据 + * /mock/system/getDivision 获取部门数据 + * /mock/system/getRole 获取角色数据 + * /mock/system/getAccount 获取账号数据 + */ export default [ { url: "/mock/system/getDict", diff --git a/src/views/system/menu/menu.vue b/src/views/system/menu/menu.vue index 4e33832..3aaf2c2 100644 --- a/src/views/system/menu/menu.vue +++ b/src/views/system/menu/menu.vue @@ -267,7 +267,7 @@ - + 新增 - + 删除 @@ -48,7 +48,7 @@ - + + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + + 展开全部 + + + + + + + 全选节点 + + + + + + + + 父子关联 + + + + + + +
+
- +