menu.js 1.12 KB
import { HomeOutlined } from '@ant-design/icons';
const mapsIcons = {
  HomeOutlined: <HomeOutlined />,
};
export function getDataMenus(menus) {
  //过滤非菜单类型START
  function getMenu(menus) {
    menus = menus.filter(_ => {
      if (_.subList.length > 0) {
        _.children = getMenu(_.subList);
        _.name = _.name;
        _.path = _.children.length ? _.children[0].url : _.url;
        _.locale = `menu${_.url.replace(/\//g, '.')}`;
        _.icon = mapsIcons[_.icon];
      }
      return _.type === 'MENU';
    });
    return menus;
  }
  menus = getMenu(menus);
  //END
  return menus;
}

/**
 * 获得处理后的菜单
 */
export const getPermissionList = (data = []) => {
  let dataMenu = []; // 菜单集合
  let dataExpandedKeys = []; // 需要展开数的集合
  function filterPermission(data) {
    data.map(item => {
      item.key = item.resourceCode;
      dataExpandedKeys.push(item.resourceCode);
      dataMenu.push(item);
      if (item.children && item.children.length) {
        filterPermission(item.children);
      }
    });
  }
  filterPermission(data);
  return { dataMenu, dataExpandedKeys };
};