diff --git a/src/api/module.js b/src/api/module.js index 94cb2d4..67c117f 100644 --- a/src/api/module.js +++ b/src/api/module.js @@ -1,5 +1,5 @@ import request from '@/utils/request'; - +import qs from 'qs'; export function index (params) { return request({ url: "/api/backend/module", @@ -24,3 +24,100 @@ export function destroy (data) { }) } +export function menu (params) { + return request({ + method: 'get', + url: '/api/backend/module/menu', + params + }) +} + +export function menuSave (data) { + return request({ + method: 'post', + url: '/api/backend/module/menu/save', + data + }) +} + +export function menuDestroy (data) { + return request({ + method: 'post', + url: '/api/backend/module/menu/delete', + data + }) +} + +export function role (params) { + return request({ + method: 'get', + url: '/api/backend/module/role', + params + }) +} + +export function roleSave (data) { + return request({ + method: 'post', + url: '/api/backend/module/role/save', + data + }) +} + +export function roleDestroy (data) { + return request({ + method: 'post', + url: '/api/backend/module/role/delete', + data + }) +} +export function getPermissions (params) { + return request({ + method: 'get', + url: '/api/backend/module/role/get-permissions', + params + }) +} + +export function setPermissions (data) { + return request({ + method: 'post', + url: '/api/backend/module/role/set-permissions', + data + }) +} + +export function grant(params) { + return request({ + method: 'get', + url: '/api/backend/module/grant', + params + }) +} + +export function setRoles (data) { + return request({ + method: 'post', + url: '/api/backend/module/grant/set-roles', + data: (() => { + const serializerStr = qs.stringify(data,{ arrayFormat: 'brackets' })?.split('&') || [] + const formData = new FormData(); + serializerStr.forEach(item => { + let [key,value] = window.decodeURIComponent(item)?.split('=') + formData.append(key,value) + }) + return formData; + })(), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} + +export function getRoles(params) { + return request({ + method: 'get', + url: '/api/backend/module/grant/get-roles', + params, + }) +} diff --git a/src/main.js b/src/main.js index 1b791ac..de8db20 100644 --- a/src/main.js +++ b/src/main.js @@ -57,6 +57,7 @@ const { setupApp, preloadApp } = Wujie; setupApp({ name: "modules", sync: true, + degrade: true, alive: true, url: "http://localhost:9530/admin/#/", exec: true, diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 2983b04..6063313 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -38,7 +38,7 @@ export function filterAsyncRoutes(routes) { folder: route.folder, isModule: !/^\/./.test(route.path), //TODO:修改地址 - moduleUri: /^\/./.test(route.path) ? '' : `http://localhost:9529/${route.path}`, + moduleUri: /^\/./.test(route.path) ? '' : `http://localhost:9528/${route.path}`, moduleName: /^\/./.test(route.path) ? '' : route.path, } } diff --git a/src/views/system/components/ModuleAuth.vue b/src/views/system/components/ModuleAuth.vue new file mode 100644 index 0000000..1ab594a --- /dev/null +++ b/src/views/system/components/ModuleAuth.vue @@ -0,0 +1,444 @@ + + + + + diff --git a/src/views/system/components/ModuleAuthAddMenu.vue b/src/views/system/components/ModuleAuthAddMenu.vue new file mode 100644 index 0000000..d3b4944 --- /dev/null +++ b/src/views/system/components/ModuleAuthAddMenu.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/views/system/components/ModuleAuthAddRole.vue b/src/views/system/components/ModuleAuthAddRole.vue new file mode 100644 index 0000000..cd92099 --- /dev/null +++ b/src/views/system/components/ModuleAuthAddRole.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/views/system/components/ModuleAuthBindPermissions.vue b/src/views/system/components/ModuleAuthBindPermissions.vue new file mode 100644 index 0000000..24edac3 --- /dev/null +++ b/src/views/system/components/ModuleAuthBindPermissions.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/system/components/ModuleAuthBindRole.vue b/src/views/system/components/ModuleAuthBindRole.vue new file mode 100644 index 0000000..98d5b4e --- /dev/null +++ b/src/views/system/components/ModuleAuthBindRole.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/system/menu.vue b/src/views/system/menu.vue index fc3efd1..4a501a6 100644 --- a/src/views/system/menu.vue +++ b/src/views/system/menu.vue @@ -15,7 +15,7 @@ :row-config="{ useKey: 'id', isHover: true }" :column-config="{ resizable: true }" :edit-rules="validRules" - :edit-config="{ trigger: 'manual', mode: 'row', showStatus: true, autoClear: false }" + :edit-config="{ trigger: 'manual', mode: 'row', showStatus: true, autoClear: false, expandALl: true }" :tree-config="{ rowField: 'id', parentField: 'pid' }" :data="tableData"> diff --git a/src/views/system/module.vue b/src/views/system/module.vue index e253fcd..24d2705 100644 --- a/src/views/system/module.vue +++ b/src/views/system/module.vue @@ -30,6 +30,7 @@ 取消 @@ -41,19 +42,23 @@ +