123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <script setup lang="ts">
- import { PropType, reactive, watch } from 'vue'
- import { required } from '@/utils/formRules'
- import { CodegenTableVO } from '@/api/infra/codegen/types'
- import { Form } from '@/components/Form'
- import { useForm } from '@/hooks/web/useForm'
- import { FormSchema } from '@/types/form'
- const props = defineProps({
- basicInfo: {
- type: Object as PropType<Nullable<CodegenTableVO>>,
- default: () => null
- }
- })
- const rules = reactive({
- tableName: [required],
- tableComment: [required],
- className: [required],
- author: [required]
- })
- const schema = reactive<FormSchema[]>([
- {
- label: '表名称',
- field: 'tableName',
- component: 'Input',
- colProps: {
- span: 12
- }
- },
- {
- label: '表描述',
- field: 'tableComment',
- component: 'Input',
- colProps: {
- span: 12
- }
- },
- {
- label: '实体类名称',
- field: 'className',
- component: 'Input',
- colProps: {
- span: 12
- }
- },
- {
- label: '作者',
- field: 'author',
- component: 'Input',
- colProps: {
- span: 12
- }
- },
- {
- label: '备注',
- field: 'remark',
- component: 'Input',
- componentProps: {
- type: 'textarea',
- rows: 4
- },
- colProps: {
- span: 12
- }
- }
- ])
- const { register, methods, elFormRef } = useForm({
- schema
- })
- watch(
- () => props.basicInfo,
- (basicInfo) => {
- if (!basicInfo) return
- const { setValues } = methods
- setValues(basicInfo)
- },
- {
- deep: true,
- immediate: true
- }
- )
- defineExpose({
- elFormRef,
- getFormData: methods.getFormData
- })
- </script>
- <template>
- <Form :rules="rules" @register="register" />
- </template>
|