From 556cd58f5fa5bd1276566462a7dd8d41ff4982bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=89=E6=9D=A5=E6=8A=80=E6=9C=AF?= <1490493387@qq.com> Date: Sat, 11 Dec 2021 22:00:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(menu.vue):=E6=B7=BB=E5=8A=A0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/menu.ts | 91 ++++++++++++++++++++++- src/store/modules/permission.ts | 4 +- src/styles/element-plus.scss | 9 ++- src/views/system/dict/components/Dict.vue | 1 + src/views/system/dict/index.vue | 35 +++++---- src/views/system/menu/components/Menu.vue | 18 +++++ src/views/system/menu/components/Perm.vue | 13 ++++ src/views/system/menu/index.vue | 48 ++++++++++++ 8 files changed, 197 insertions(+), 22 deletions(-) create mode 100644 src/views/system/menu/components/Menu.vue create mode 100644 src/views/system/menu/components/Perm.vue create mode 100644 src/views/system/menu/index.vue diff --git a/src/api/system/menu.ts b/src/api/system/menu.ts index 5a506dcc..b59dc84a 100644 --- a/src/api/system/menu.ts +++ b/src/api/system/menu.ts @@ -1,8 +1,95 @@ import request from '@/utils/request' -export function getRouteList() { +/** + * 获取路由列表 + */ +export function listRoutes() { return request({ url: '/youlai-admin/api/v2/menus/route', method: 'get' }) -} \ No newline at end of file +} + +/** + * 获取(表格)菜单列表 + * + * @param queryParams + */ +export function listTableMenus(queryParams: object) { + return request({ + url: '/youlai-admin/api/v1/menus/table', + method: 'get', + params: queryParams + }) +} + +/** + * 获取(下拉)菜单列表 + */ +export function listSelectMenus() { + return request({ + url: '/youlai-admin/api/v1/menus/select', + method: 'get' + }) +} + +/** + * 获取(树形下拉)菜单列表 + */ +export function listTreeSelectMenus() { + return request({ + url: '/youlai-admin/api/v1/menus/tree-select', + method: 'get' + }) +} + + +/** + * 获取菜单详情 + * @param id + */ +export function getMenuDetail(id: number) { + return request({ + url: '/youlai-admin/api/v1/menus/' + id, + method: 'get' + }) +} + +/** + * 添加菜单 + * + * @param data + */ +export function addMenu(data: object) { + return request({ + url: '/youlai-admin/api/v1/menus', + method: 'post', + data: data + }) +} + +/** + * 修改菜单 + * + * @param id + * @param data + */ +export function updateMenu(id: number, data: object) { + return request({ + url: '/youlai-admin/api/v1/menus/' + id, + method: 'put', + data: data + }) +} + +/** + * 批量删除菜单 + * + * @param ids 菜单ID,多个以英文逗号(,)分割 + */ +export function deleteMenu(ids: string) { + return request({ + url: '/youlai-admin/api/v1/menus/' + ids, + method: 'delete' + }) +} diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index e2cf3fd9..83a5a633 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -2,7 +2,7 @@ import {Module} from "vuex"; import {PermissionState, RootStateTypes} from "@store/interface"; import {RouteRecordRaw} from 'vue-router' import {constantRoutes} from '@/router' -import {getRouteList} from "@/api/system/menu"; +import {listRoutes} from "@/api/system/menu"; const modules = import.meta.glob("../../views/**/**.vue"); export const Layout = () => import( '@/layout/index.vue') @@ -64,7 +64,7 @@ const permissionModule: Module = { actions: { generateRoutes({commit}, roles: string[]) { return new Promise((resolve, reject) => { - getRouteList().then(response => { + listRoutes().then(response => { const asyncRoutes = response.data let accessedRoutes = filterAsyncRoutes(asyncRoutes, roles) commit('SET_ROUTES', accessedRoutes) diff --git a/src/styles/element-plus.scss b/src/styles/element-plus.scss index 1eadd51a..9cf34d02 100644 --- a/src/styles/element-plus.scss +++ b/src/styles/element-plus.scss @@ -48,7 +48,12 @@ box-sizing: content-box; } -// select row color +// 选中行背景色值 .el-table__body tr.current-row td { background-color: #e1f3d8b5 !important; -} \ No newline at end of file +} + +// card 的header统一高度 +.el-card__header{ + height: 61px!important; +} diff --git a/src/views/system/dict/components/Dict.vue b/src/views/system/dict/components/Dict.vue index 11463f87..18b9d886 100644 --- a/src/views/system/dict/components/Dict.vue +++ b/src/views/system/dict/components/Dict.vue @@ -158,6 +158,7 @@ const state = reactive({ }) function handleQuery() { + emit('dictClick',{}) state.loading = true listDictWithPage(state.queryParams).then(response => { const {data, total} = response as any diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue index c52c9cfd..9ff8b786 100644 --- a/src/views/system/dict/index.vue +++ b/src/views/system/dict/index.vue @@ -3,9 +3,10 @@ -
- 字典列表 -
+
@@ -13,12 +14,13 @@ -
- 字典 - {{ state.dictName }} - 数据项 - 未选择字典 -
+
@@ -28,6 +30,7 @@ - - diff --git a/src/views/system/menu/components/Menu.vue b/src/views/system/menu/components/Menu.vue new file mode 100644 index 00000000..7fc1aedc --- /dev/null +++ b/src/views/system/menu/components/Menu.vue @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/menu/components/Perm.vue b/src/views/system/menu/components/Perm.vue new file mode 100644 index 00000000..0c84abed --- /dev/null +++ b/src/views/system/menu/components/Perm.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue new file mode 100644 index 00000000..cb2a98e7 --- /dev/null +++ b/src/views/system/menu/index.vue @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file