You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.1 KiB
TypeScript

import type { MenuDataItem } from '../types'
const themeConfig = {
daybreak: '#1890ff',
dust: '#F5222D',
volcano: '#FA541C',
sunset: '#FAAD14',
cyan: '#13C2C2',
green: '#52C41A',
geekblue: '#2F54EB',
purple: '#722ED1'
}
/**
* Daybreak-> #1890ff
*
* @param val
*/
export function genStringToTheme(val?: string): string {
// @ts-ignore
return val && themeConfig[val] ? themeConfig[val] : val
}
export function clearMenuItem(menusData: MenuDataItem[]): MenuDataItem[] {
return menusData
.map(item => {
const children: MenuDataItem[] = item.children || []
const finalItem = { ...item }
if (!finalItem.name || finalItem.hideInMenu) {
return null
}
if (finalItem && finalItem?.children) {
if (
!finalItem.hideChildrenInMenu &&
children.some(child => child && child.name && !child.hideInMenu)
) {
return {
...item,
children: clearMenuItem(children)
}
}
// children 为空就直接删掉
delete finalItem.children
}
return finalItem
})
.filter(item => item) as MenuDataItem[]
}