Browse Source

🎟 构建平台业务模块

master
wangxiang 3 years ago
parent
commit
16f94c81ce
  1. 2
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java
  2. 25
      kicc-ui/src/api/system/menu.ts
  3. 2
      kicc-ui/src/router/helper/routeHelper.ts
  4. 2
      kicc-ui/src/store/modules/permission.ts
  5. 2
      kicc-ui/src/views/system/menu/MenuModal.vue
  6. 6
      kicc-ui/src/views/system/menu/index.vue

2
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java

@ -43,6 +43,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
List<MenuVo> menuVoList = menus.stream().map(menu -> { List<MenuVo> menuVoList = menus.stream().map(menu -> {
MenuVo menuVo = new MenuVo(); MenuVo menuVo = new MenuVo();
menuVo.setName(menu.getName()); menuVo.setName(menu.getName());
menuVo.setComponent(menu.getComponent());
// 检测是否是根节点,0:代表根节点 // 检测是否是根节点,0:代表根节点
if (MenuEnum.MENU_0.getValue().equals(menu.getParentId()) && !ReUtil.isMatch(RegexConstants.MATCHER_URL, menu.getPath())) { if (MenuEnum.MENU_0.getValue().equals(menu.getParentId()) && !ReUtil.isMatch(RegexConstants.MATCHER_URL, menu.getPath())) {
menuVo.setPath("/" + menu.getPath()); menuVo.setPath("/" + menu.getPath());
@ -55,7 +56,6 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
.setIcon(menu.getIcon()) .setIcon(menu.getIcon())
.setHideMenu(MenuEnum.MENU_1.getValue().equals(menu.getHideMenu())) .setHideMenu(MenuEnum.MENU_1.getValue().equals(menu.getHideMenu()))
.setKeepAlive(menu.getKeepAlive().equals(MenuEnum.MENU_1.getValue()))); .setKeepAlive(menu.getKeepAlive().equals(MenuEnum.MENU_1.getValue())));
List<Menu> childrenMenus = menu.getChildren(); List<Menu> childrenMenus = menu.getChildren();
if (childrenMenus != null && childrenMenus.size() > 0 && MenuEnum.MENU_M.getValue().equals(menu.getType())) { if (childrenMenus != null && childrenMenus.size() > 0 && MenuEnum.MENU_M.getValue().equals(menu.getType())) {
menuVo.setChildren(buildMenuRoute(childrenMenus)); menuVo.setChildren(buildMenuRoute(childrenMenus));

25
kicc-ui/src/api/system/menu.ts

@ -2,21 +2,24 @@ import { MenuVO, Menu } from './model/menuModel';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
enum Api { enum Api {
List = 'system_proxy/system/menu/list', list = 'system_proxy/system/menu/list',
add = 'system_proxy/system/menu/save', add = 'system_proxy/system/menu/save',
update = 'system_proxy/system/menu/update', get = 'system_proxy/system/menu',
edit = 'system_proxy/system/menu/update',
del = 'system_proxy/system/menu/remove' del = 'system_proxy/system/menu/remove'
} }
// 菜单树 // 查询菜单列表
export const menuList = (params?: MenuVO) => defHttp.get({ url: Api.List, params }); export const listMenu = (params?: MenuVO) => defHttp.get({ url: Api.list, params });
//新增 // 新增菜单
export const menuAdd = (params?: Menu) => defHttp.post({ url: Api.add, params }); export const addMenu = (params: Menu) => defHttp.post({ url: Api.add, data: params });
// 修改 // 修改菜单
export const menuUpdate = (params: Menu) => defHttp.put({ url: Api.update, params }); export const editMenu = (params: Menu ) => defHttp.put({ url: Api.edit, data: params });
// 删除 // 查询菜单详细
export const menuDel = (params: { id: String }) => export const getMenu = (params: { id: String }) => defHttp.get({ url: `${Api.get}/${params.id}` });
defHttp.delete({ url: Api.del + `/${params.id}` });
// 删除菜单
export const delMenu = (params: { id: String }) => defHttp.delete({ url: `${Api.del}/${params.id}` });

2
kicc-ui/src/router/helper/routeHelper.ts

@ -23,7 +23,7 @@ function findImportComponent(dynamicViewsModules: Record<string, () => Promise<R
const keys = Object.keys(dynamicViewsModules); const keys = Object.keys(dynamicViewsModules);
// 检测同一个目录下是否存在多个名字相同的组件 // 检测同一个目录下是否存在多个名字相同的组件
const matchKeys = keys.filter((key) => { const matchKeys = keys.filter((key) => {
let k = key.replace('../../views', ''); let k = key.replace('../../views/', '');
const lastIndex = k.lastIndexOf('.'); const lastIndex = k.lastIndexOf('.');
k = k.substring(0, lastIndex); k = k.substring(0, lastIndex);
return k === component; return k === component;

2
kicc-ui/src/store/modules/permission.ts

@ -75,7 +75,6 @@ export const usePermissionStore = defineStore({
/** 根据设置的首页path,修正routes中的affix标记(固定首页) */ /** 根据设置的首页path,修正routes中的affix标记(固定首页) */
const patchHomeAffix = (routes: AppRouteRecordRaw[]) => { const patchHomeAffix = (routes: AppRouteRecordRaw[]) => {
debugger
if (!routes || routes.length === 0) return; if (!routes || routes.length === 0) return;
let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME; let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME;
function patcher(routes: AppRouteRecordRaw[], parentPath = '') { function patcher(routes: AppRouteRecordRaw[], parentPath = '') {
@ -119,7 +118,6 @@ export const usePermissionStore = defineStore({
// 过滤忽略路由配置项,只构建菜单不构建路由 // 过滤忽略路由配置项,只构建菜单不构建路由
routeList = filter(routeList, routeRemoveIgnoreFilter); routeList = filter(routeList, routeRemoveIgnoreFilter);
patchHomeAffix(routeList); patchHomeAffix(routeList);
console.log(routeList);
} catch (error) { console.error(error); } } catch (error) { console.error(error); }
return routeList; return routeList;
} }

2
kicc-ui/src/views/system/menu/MenuModal.vue

@ -15,7 +15,7 @@
import { BasicForm, useForm } from '/@/components/Form/index'; import { BasicForm, useForm } from '/@/components/Form/index';
import { formSchema } from './menu.data'; import { formSchema } from './menu.data';
import { BasicModal, useModalInner } from '/@/components/Modal'; import { BasicModal, useModalInner } from '/@/components/Modal';
import { menuList, menuAdd, menuUpdate } from '/@/api/system/menu'; import { listMenu, addMenu, editMenu } from '/@/api/system/menu';
// emit // emit
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);

6
kicc-ui/src/views/system/menu/index.vue

@ -31,7 +31,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { nextTick, ref } from 'vue'; import { nextTick, ref } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { menuDel, menuList } from '/@/api/system/menu'; import { getMenu, listMenu, delMenu } from '/@/api/system/menu';
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import MenuModal from './MenuModal.vue'; import MenuModal from './MenuModal.vue';
import { columns, searchFormSchema } from './menu.data'; import { columns, searchFormSchema } from './menu.data';
@ -41,7 +41,7 @@
const [registerDrawer, { openModal }] = useModal(); const [registerDrawer, { openModal }] = useModal();
const [registerTable, { reload, expandAll,collapseAll }] = useTable({ const [registerTable, { reload, expandAll,collapseAll }] = useTable({
title: '菜单列表', title: '菜单列表',
api: menuList, api: listMenu,
columns, columns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
@ -56,7 +56,7 @@
showIndexColumn: false, showIndexColumn: false,
canResize: false, canResize: false,
actionColumn: { actionColumn: {
width: 80, width: 180,
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
slots: { customRender: 'action' }, slots: { customRender: 'action' },

Loading…
Cancel
Save