| | |
| | | * @version: |
| | | * @Date: 2024-05-30 13:28:20 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-20 05:21:44 |
| | | * @LastEditTime: 2024-08-06 19:57:41 |
| | | --> |
| | | <template> |
| | | <div> |
| | |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { Ref, defineAsyncComponent, h, onMounted, provide, ref, unref } from 'vue'; |
| | | import { Ref, h, onMounted, provide, ref, unref, watch } from 'vue'; |
| | | import mainTable from './mainTable.vue'; |
| | | import { DeleteEntity, GetEnum, getEntity, getListByPage } from '/@/api/tigerapi/system'; |
| | | import { GetEnum, getEntity, getListByPage } from '/@/api/tigerapi/system'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import { Tag, Tooltip } from 'ant-design-vue'; |
| | | import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import { getRoleButtons } from '/@/api/sys/menu'; |
| | | import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel'; |
| | | import { isFunction } from 'xe-utils'; |
| | | |
| | | const { getLocale } = useLocale(); |
| | | const { t } = useI18n(); |
| | |
| | | const go = useGo(); |
| | | const objParams = ref(JSON.parse(decodeURI(route.params?.id as string))); |
| | | const entityName = ref(objParams.value.ID); |
| | | const _columns = ref([]); |
| | | const _searchFormSchema = ref([]); |
| | | const _crudFormSchema = ref([]); |
| | | const _columns = ref<any[]>([]); |
| | | const _searchFormSchema = ref<any[]>([]); |
| | | const _crudFormSchema = ref<any[]>([]); |
| | | const useModalData = ref({}); //表单中插槽渲染按钮打开模态框useModal方法 |
| | | const useFormData = ref({}); |
| | | const cType = ref(''); |
| | | const dtlSlots = ref([] as any[]); |
| | | const selectVals = ref({}); |
| | | const isExistSql = ref(''); |
| | | const custImport = ref<any>(null); |
| | | const custImport = ref<any[]>([]); |
| | | const isMounted = ref(false); |
| | | const buttons = ref([]); |
| | | const AuthOption = ref({ |
| | |
| | | provide<Ref<string>>('isExistSql', isExistSql); |
| | | provide<Ref<{}>>('AuthOption', AuthOption); |
| | | provide<Ref<any>>('keyFieldValues', keyFieldValues); |
| | | |
| | | onMounted(async () => { |
| | | /* 用json获取列 */ |
| | | // _searchFormSchema.value = await fetchJson( |
| | |
| | | // } |
| | | // } |
| | | // _columns.value = objs; |
| | | |
| | | isMounted.value = false; |
| | | const EntityCustFunction = ref([ |
| | | { |
| | | ActionItem(params: Recordable<any>, data, ...args) {}, |
| | | } as EntityCustFunctionType, |
| | | ]); |
| | | /* 动态import实体名.ts的自定义方法 */ |
| | | try { |
| | | custImport.value = await import(`../entityts/${objParams.value.ID}.ts`); |
| | | } catch (e) {} |
| | | const [{ InitCrudFormSchema }] = isNullOrUnDef(custImport.value['default']) |
| | | ? EntityCustFunction.value |
| | | : custImport.value['default'](); |
| | | isMounted.value = true; |
| | | |
| | | //获取表单中插槽渲染的按钮点击弹出模态窗口的实例 |
| | |
| | | onChangeConfig(searchForms[i]); |
| | | } |
| | | _searchFormSchema.value = searchForms; |
| | | var _cruds = JSON.parse(data.Data.Items[0].FORM_JSON); |
| | | var _cruds: any[] = []; |
| | | /* 如果有初始化增删改页面结构的方法,则进入 */ |
| | | if (InitCrudFormSchema && isFunction(InitCrudFormSchema)) { |
| | | _cruds = InitCrudFormSchema(objParams.value.ID); |
| | | } else { |
| | | /* 没有初始化增删改页面结构的方法时进入 */ |
| | | _cruds = JSON.parse(data.Data.Items[0].FORM_JSON); |
| | | } |
| | | for (const i in _cruds) { |
| | | if ( |
| | | !isNullOrEmpty(_cruds[i].componentProps) && |
| | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | </script> |