<!--
|
* @Description: 高级表单页请表信息组件,需要支持setup async
|
* @Author: Ben Lin
|
* @version:
|
* @Date: 2024-06-23 17:21:29
|
* @LastEditors: Ben Lin
|
* @LastEditTime: 2024-06-23 18:08:08
|
-->
|
<template>
|
<a-card
|
:title="item.title"
|
:bordered="false"
|
v-for="(item, index) in _baseCards"
|
:key="item.name"
|
>
|
<BasicForm @register="useFormData[item.name][0]" />
|
</a-card>
|
</template>
|
<script lang="ts" setup>
|
import { Ref, inject, nextTick, onMounted, ref, watch } from 'vue';
|
import { BasicForm, useForm } from '/@/components/Form/index';
|
import { Card } from 'ant-design-vue';
|
import { getEntity } from '/@/api/tigerapi/system';
|
import { isNullOrEmpty } from '/@/utils/is';
|
|
const ACard = Card;
|
const objParams = inject('objParams') as Ref<any>;
|
const useFormData = inject('useFormData') as Ref<{}>;
|
const baseCards = inject('baseCards') as Ref<any>;
|
const custImport = ref<any[]>(
|
await import(`../entityts/${objParams['Name']}.ts`),
|
);
|
const [
|
{
|
GetBaseForm,
|
GetBaseCards,
|
},
|
] = custImport.value['default']();
|
const formSchemas = ref({
|
BaseForm: GetBaseForm(),
|
}); //弹出框或高级页面多表单结构
|
useFormData.value = {
|
BaseForm: useForm({
|
labelWidth: 120,
|
schemas: formSchemas.value['BaseForm'],
|
actionColOptions: {
|
span: 24,
|
},
|
showActionButtonGroup: false,
|
}),
|
};
|
const _baseCards = ref(GetBaseCards());
|
baseCards.value = _baseCards.value;
|
|
onMounted(() => {
|
useFormData.value[_baseCards.value[0]['name']][1].resetFields();
|
getEntity({
|
sqlcmd: ` ID = '${objParams['ID']}'`,
|
entityName: _baseCards.value[0]['entityName'],
|
}).then((res) => {
|
if (!isNullOrEmpty(res.Data.Items)) {
|
useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(res.Data.Items[0]);
|
}
|
});
|
});
|
</script>
|