import { Component, DefineComponent, defineComponent, markRaw, ref, SetupContext, onMounted, } from 'vue' import styles from './$NameSpacePath$.module.scss' import Tab from '@/components/Tab/Tab' import { useProvideModels } from '@/libs/Provider/app' import { usePermission } from '@/libs/Permission/Permission' import { permissionCodes } from '../enum' import { ModuleType, TabItem } from '../type/Type' import { getEntityNames } from '@/hooks/hook' import TabPane from '@/components/Tab/TabPane' const Models: ModuleType = import.meta.glob('./config/*.json', { eager: true, }) const entityNames = getEntityNames(Models) const nameToLabelMap = [{ name: '$EntityName$', label: '$PageMenuName$' }] export default defineComponent({ name: '$NameSpacePath$', setup(props, ctx: SetupContext) { useProvideModels() usePermission(props, permissionCodes) const rf = ref<{ [key: string]: any }>({}) const tabData = ref([]) const onTabChange = (v: string) => { rf.value?.[v]?.reloadList() } const initTableData = async () => { for (const i in entityNames) { const name = entityNames[i] const module = await import(`./Pages/${name}/${name}.tsx`) const $EntityName$ = markRaw(module.default) const foundLabel = nameToLabelMap.find((item) => item.name === name)?.label || name tabData.value.push({ label: foundLabel, name, component: $EntityName$, }) } } initTableData() return () => { return (
{tabData.value.map((widgetInfo) => { const Widget: any = widgetInfo.component return ( (rf.value['$EntityName$'] = r)} > ) })}
) } }, })