import React from 'react';
import { getToken } from '@component/utils';
import Icon from '@ant-design/icons';
import { ReactComponent as User } from 'icons/user.svg';
import { ReactComponent as Government } from 'icons/government.svg';
import { ReactComponent as Enterprise } from 'icons/enterprise.svg';
import { ReactComponent as Role } from 'icons/role.svg';
import { ReactComponent as ThirdPartyService } from 'icons/thirdPartyService.svg';
import { ReactComponent as ServiceFeeFileManagement } from 'icons/serviceFeeFileManagement.svg';
import { ReactComponent as Template } from 'icons/template.svg';
import { ReactComponent as ServicesApply } from 'icons/servicesApply.svg';
import { ReactComponent as ServicesPlan } from 'icons/servicesPlan.svg';
import { ReactComponent as ServicesWork } from 'icons/servicesWork.svg';
import { ReactComponent as ReturnVisitManage } from 'icons/returnVisitManage.svg';
import { ReactComponent as PreventionServiceProgress } from 'icons/preventionServiceProgress.svg';
import { ReactComponent as CatastropheWarning } from 'icons/catastropheWarning.svg';
import { ReactComponent as PublicityEducationList } from 'icons/publicityEducationList.svg';
import { ReactComponent as PendingWorkbench } from 'icons/pendingWorkbench.svg';
import { ReactComponent as PreventionServiceSearch } from 'icons/preventionServiceSearch.svg';
import { ReactComponent as dynamic } from 'icons/dynamic.svg';
import { ReactComponent as statisticalAnalysisReport } from 'icons/statisticalAnalysisReport.svg';
import { ReactComponent as didLog } from 'icons/didLog.svg';
import { ReactComponent as loginLog } from 'icons/loginLog.svg';
import { ReactComponent as serviceControl } from 'icons/serviceControl.svg';
import { ReactComponent as smokeIcon } from 'icons/smoke.svg';
// import { ReactComponent as UnderwritingInformationStatistics } from 'icons/underwritingInformationStatistics.svg';
// import { ReactComponent as ClaimSettlementInformationStatistics } from 'icons/claimSettlementInformationStatistics.svg';
import MENU from './menu';
import { isEmpty, map } from 'lodash';
import axios from 'axios';
const IconMap = {
dynamic: ,
statisticalAnalysisReport: (
),
preventionServiceSearch: (
),
pendingWorkbench: (
),
user: ,
// user: ,
government: ,
enterprise: ,
role: ,
thirdPartyService: (
),
serviceFeeFileManagement: (
),
template: ,
didLog: ,
loginLog: ,
smokeSystem: ,
serviceControl: ,
servicesApply: ,
servicesPlan: ,
servicesWork: ,
returnVisitManage: (
),
preventionServiceProgress: (
),
catastropheWarning: (
),
publicityEducationList: (
),
};
const loopMenuItem = (menus) =>
menus.map(({ icon, routes, ...item }) => ({
...item,
icon: icon && IconMap[icon],
routes: routes && loopMenuItem(routes),
}));
export async function getUserInfo() {
const userInfo = await axios
.get(process.env.REACT_APP_API_URL + '/getUserByToken', {
headers: {
token: getToken(),
},
})
.then((response) => {
const { data, status } = response;
if (Number(status) === 200) {
return data;
}
})
.then((result) => {
if (result.code === 0 && result.success) {
return result.data;
} else {
return null;
}
});
const menu = loopMenuItem(MENU);
const roleMenu = userInfo.roleMenu?.split(',');
return {
menu: isEmpty(roleMenu) ? [] : filterMenu(menu, roleMenu),
// menu:menu,
userInfo,
};
}
const filterMenu = (menuList, menuCode) => {
return menuList
.filter((item) => {
return menuCode.indexOf(item.id) > -1;
})
.map((item) => {
item = Object.assign({}, item);
if (item.routes) {
item.routes = filterMenu(item.routes, menuCode);
}
return item;
});
};