68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.clearMenuItem = clearMenuItem;
|
|
exports.genStringToTheme = genStringToTheme;
|
|
exports.getOpenKeysFromMenuData = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
var getOpenKeysFromMenuData = exports.getOpenKeysFromMenuData = function getOpenKeysFromMenuData(menuData) {
|
|
return (menuData || []).reduce(function (pre, item) {
|
|
if (item.key) {
|
|
pre.push(item.key);
|
|
}
|
|
if (item.children || item.routes) {
|
|
var newArray = pre.concat(getOpenKeysFromMenuData(item.children || item.routes) || []);
|
|
return newArray;
|
|
}
|
|
return pre;
|
|
}, []);
|
|
};
|
|
var themeConfig = {
|
|
techBlue: '#1677FF',
|
|
daybreak: '#1890ff',
|
|
dust: '#F5222D',
|
|
volcano: '#FA541C',
|
|
sunset: '#FAAD14',
|
|
cyan: '#13C2C2',
|
|
green: '#52C41A',
|
|
geekblue: '#2F54EB',
|
|
purple: '#722ED1'
|
|
};
|
|
/**
|
|
* Daybreak-> #1890ff
|
|
*
|
|
* @param val
|
|
*/
|
|
function genStringToTheme(val) {
|
|
return val && themeConfig[val] ? themeConfig[val] : val || '';
|
|
}
|
|
function clearMenuItem(menusData) {
|
|
return menusData.map(function (item) {
|
|
var children = item.children || [];
|
|
var finalItem = (0, _objectSpread2.default)({}, item);
|
|
if (!finalItem.children && finalItem.routes) {
|
|
finalItem.children = finalItem.routes;
|
|
}
|
|
if (!finalItem.name || finalItem.hideInMenu) {
|
|
return null;
|
|
}
|
|
if (finalItem && finalItem !== null && finalItem !== void 0 && finalItem.children) {
|
|
if (!finalItem.hideChildrenInMenu && children.some(function (child) {
|
|
return child && child.name && !child.hideInMenu;
|
|
})) {
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
children: clearMenuItem(children)
|
|
});
|
|
}
|
|
// children 为空就直接删掉
|
|
delete finalItem.children;
|
|
}
|
|
delete finalItem.routes;
|
|
return finalItem;
|
|
}).filter(function (item) {
|
|
return item;
|
|
});
|
|
} |