12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { getMenuData } from '@/Project/services/platformMenu';
- import { queryCurrentV2 } from '@/Project/services/user';
- const filterWaterMenuData = (menuData) => {
- if (!menuData) {
- return [];
- }
- var arr = [];
- menuData.forEach((item) => {
- if (item.Type != 1) return;
- arr.push(item);
- if (item.children) {
- let newChildren = filterWaterMenuData(item.children);
- item.children = newChildren.length == 0 ? null : newChildren;
- }
- });
- return arr;
- };
- export default {
- namespace: 'menu',
- state: {},
- effects: {
- *getPlatformMenu({ callback, payload }, { put, call }) {
- const allMenu = yield call(getMenuData, payload);
- const response = yield call(queryCurrentV2);
- let permission = {};
- if (response && allMenu) {
- for (let i = 0; i < response?.data?.Permissions?.length; i++) {
- let item = response.data.Permissions[i];
- if (!item.Menus || typeof item.Menus != 'object') return;
- permission = {
- ...permission,
- ...item.Menus,
- };
- }
- let menu = allMenu.data?.list.find((item) => item.MenuType == 0) || {};
- menu.children = filterWaterMenuData(menu.children);
- callback?.(menu, permission);
- }
- },
- },
- reducers: {},
- };
|