| | |
| | | <PageWrapper title="UseForm操作示例"> |
| | | <a-button class="mb-4" type="primary" @click="showDrawer"> 更改设置 </a-button> |
| | | |
| | | <Drawer v-model:visible="visible" title="更改设置" placement="right"> |
| | | <Drawer v-model:open="open" title="更改设置" placement="right"> |
| | | <BasicForm ref="settingFormRef" @register="registerSetting" @submit="handleSubmitSetting"> |
| | | <template #other> |
| | | <Space> |
| | |
| | | </PageWrapper> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { defineComponent, ref } from 'vue'; |
| | | <script lang="ts" setup> |
| | | import { ref } from 'vue'; |
| | | import { Drawer, Space } from 'ant-design-vue'; |
| | | import { BasicForm, FormSchema, useForm, type FormProps } from '/@/components/Form'; |
| | | import { CollapseContainer } from '/@/components/Container'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | import { areaRecord } from '/@/api/demo/cascader'; |
| | | import { BasicForm, type FormSchema, useForm, type FormProps } from '@/components/Form'; |
| | | import { CollapseContainer } from '@/components/Container'; |
| | | import { PageWrapper } from '@/components/Page'; |
| | | import { areaRecord } from '@/api/demo/cascader'; |
| | | |
| | | const sizeList = [ |
| | | { value: 'large', label: 'large' }, |
| | |
| | | component: 'DatePicker', |
| | | label: '字段3', |
| | | colProps: { span: 8 }, |
| | | componentProps: { |
| | | getPopupContainer: () => { |
| | | return document.querySelector('.ant-form')!; |
| | | }, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'fieldTime', |
| | | component: 'RangePicker', |
| | | label: '时间字段', |
| | | colProps: { span: 8 }, |
| | | componentProps: { |
| | | getPopupContainer: () => { |
| | | return document.querySelector('.ant-form')!; |
| | | }, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'field4', |
| | |
| | | componentProps: { |
| | | api: areaRecord, |
| | | apiParamKey: 'parentCode', |
| | | dataField: 'data', |
| | | labelField: 'name', |
| | | valueField: 'code', |
| | | initFetchParams: { |
| | |
| | | componentProps: { |
| | | api: areaRecord, |
| | | apiParamKey: 'parentCode', |
| | | dataField: 'data', |
| | | labelField: 'name', |
| | | valueField: 'code', |
| | | initFetchParams: { |
| | |
| | | colProps: { span: 24 }, |
| | | componentProps: ({ formActionType }) => { |
| | | return { |
| | | onChange: async (val: boolean) => { |
| | | onChange: (val) => { |
| | | formActionType.updateSchema([ |
| | | { field: 'showResetButton', componentProps: { disabled: !val } }, |
| | | { |
| | |
| | | }, |
| | | ]; |
| | | |
| | | export default defineComponent({ |
| | | components: { |
| | | BasicForm, |
| | | CollapseContainer, |
| | | PageWrapper, |
| | | Drawer, |
| | | Space, |
| | | }, |
| | | setup() { |
| | | const visible = ref<boolean>(false); |
| | | const open = ref<boolean>(false); |
| | | const settingFormRef = ref(); |
| | | const [registerSetting] = useForm({ |
| | | size: 'small', |
| | |
| | | await setFieldsValue({ field9: [] }); |
| | | await settingFormRef.value?.resetFields(); |
| | | }; |
| | | const handleSubmitSetting = async (values: Recordable) => { |
| | | const handleSubmitSetting = async (values) => { |
| | | console.log(values); |
| | | await setProps(values); |
| | | visible.value = false; |
| | | open.value = false; |
| | | }; |
| | | const [register, { setProps, setFieldsValue, updateSchema }] = useForm({ |
| | | labelWidth: 120, |
| | |
| | | }, |
| | | }); |
| | | await setFieldsValue({ field9 }); |
| | | visible.value = false; |
| | | open.value = false; |
| | | } |
| | | const showDrawer = () => { |
| | | visible.value = true; |
| | | open.value = true; |
| | | }; |
| | | const onSettings = () => { |
| | | settingFormRef.value?.submit(); |
| | | }; |
| | | const withClose = (formProps: Partial<FormProps>) => { |
| | | setProps(formProps); |
| | | visible.value = false; |
| | | open.value = false; |
| | | }; |
| | | |
| | | return { |
| | | register, |
| | | schemas, |
| | | handleSubmit: (values: Recordable) => { |
| | | function handleSubmit(values) { |
| | | console.log(values); |
| | | }, |
| | | setProps, |
| | | handleLoad, |
| | | visible, |
| | | showDrawer, |
| | | settingFormRef, |
| | | withClose, |
| | | onSettings, |
| | | resetSettings, |
| | | registerSetting, |
| | | handleSubmitSetting, |
| | | }; |
| | | }, |
| | | }); |
| | | } |
| | | </script> |