| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { reactive, ref } from 'vue'
- import { icon } from '@/plugins'
- import { renderLang, renderIcon } from '@/utils'
- import { themeColor, setItem, getCharts } from './layoutHook'
- import { PackagesCategoryEnum, PackagesCategoryName } from '@/packages/index.d'
- // 图表
- import { usePackagesStore } from '@/store/modules/packagesStore/packagesStore'
- import { ChartLayoutStoreEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d'
- // 图标
- const { BarChartIcon } = icon.ionicons5
- const {
- TableSplitIcon,
- RoadmapIcon,
- SpellCheckIcon,
- GraphicalDataFlowIcon,
- } = icon.carbon
- // 图表
- const { getPackagesList } = usePackagesStore()
- const menuOptions = reactive<{
- [T: string]: any
- }>([])
- const packagesListObj = {
- [PackagesCategoryEnum.CHARTS]: {
- icon: renderIcon(RoadmapIcon),
- label: renderLang(PackagesCategoryName.CHARTS),
- },
- [PackagesCategoryEnum.INFORMATION]: {
- icon: renderIcon(SpellCheckIcon),
- label: renderLang(PackagesCategoryName.INFORMATION),
- },
- [PackagesCategoryEnum.TABLES]: {
- icon: renderIcon(TableSplitIcon),
- label: renderLang(PackagesCategoryName.TABLES),
- },
- [PackagesCategoryEnum.DECORATES]: {
- icon: renderIcon(GraphicalDataFlowIcon),
- label: renderLang(PackagesCategoryName.DECORATES),
- },
- }
- // 处理列表
- const handlePackagesList = () => {
- for (const val in getPackagesList) {
- menuOptions.push({
- key: val,
- // @ts-ignore
- icon: packagesListObj[val].icon,
- // @ts-ignore
- label: packagesListObj[val].label,
- // @ts-ignore
- list: getPackagesList[val],
- })
- }
- }
- handlePackagesList()
- // 记录选中值
- let beforeSelect: string = menuOptions[0]['key']
- const selectValue = ref<string>(menuOptions[0]['key'])
- // 选中的对象值
- const selectOptions = ref(menuOptions[0])
- // 点击 item
- const clickItemHandle = (key: string, item: any) => {
- selectOptions.value = item
- // 处理折叠
- if (beforeSelect === key) {
- setItem(ChartLayoutStoreEnum.CHARTS, !getCharts.value)
- } else {
- setItem(ChartLayoutStoreEnum.CHARTS, true)
- }
- beforeSelect = key
- }
- export {
- getCharts,
- BarChartIcon,
- themeColor,
- selectOptions,
- selectValue,
- clickItemHandle,
- menuOptions,
- }
|