/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-29 17:42:08
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-01 14:52:43
* @FilePath: \general\general-ai-manage\src\utils\FixMenuItemIcon.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/**
* @FixMenuItemIcon 菜单图标手动导入
*
*
*/
import {
AreaChartOutlined,
BellOutlined,
BlockOutlined,
BugOutlined,
CalendarOutlined,
CarOutlined,
ContactsOutlined,
DatabaseOutlined,
DesktopOutlined,
DollarCircleOutlined,
DotChartOutlined,
ExperimentOutlined,
GatewayOutlined,
HomeOutlined,
PictureOutlined,
SettingOutlined,
ShopOutlined,
TableOutlined,
TeamOutlined,
ThunderboltOutlined,
UserOutlined,
UserSwitchOutlined,
WarningOutlined,
} from '@ant-design/icons';
import { MenuDataItem } from '@ant-design/pro-layout';
import { ReactComponent as TestIcon } from '../../public/icons/testIcon.svg';
const iconMap: any = {
CarOutlined: ,
UserOutlined: ,
TableOutlined: ,
DollarCircleOutlined: ,
ShopOutlined: ,
UserSwitchOutlined: ,
HomeOutlined: ,
SettingOutlined: ,
TeamOutlined: ,
DotChartOutlined: ,
BlockOutlined: ,
DesktopOutlined: ,
DatabaseOutlined: ,
WarningOutlined: ,
CalendarOutlined: ,
ExperimentOutlined: ,
ThunderboltOutlined: ,
BugOutlined: ,
AreaChartOutlined: ,
ContactsOutlined: ,
GatewayOutlined: ,
BellOutlined: ,
PictureOutlined: ,
TestIcon: ,
};
// FIX从接口获取菜单时icon为string类型
const fixMenuItemIcon = (menus: MenuDataItem[]): MenuDataItem[] => {
menus.forEach((item) => {
const { icon, children } = item;
if (typeof icon === 'string') {
console.log(22, icon);
if (icon in iconMap) {
item.icon = iconMap[icon];
} else {
item.icon = '';
}
// let fixIconName = icon.slice(0, 1).toLocaleUpperCase() + icon.slice(1) + iconType;
// // @ts-ignore
// item.icon = React.createElement(allIcons[fixIconName] || allIcons[icon]);
}
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
children && children.length > 0 ? (item.children = fixMenuItemIcon(children)) : null;
});
return menus;
};
export default fixMenuItemIcon;