<template> <div class="m-4"> <div class="mb-4"> <a-button @click="setProps({ labelWidth: 150 })" class="mr-2">更改labelWidth</a-button> <a-button @click="setProps({ labelWidth: 120 })" class="mr-2">还原labelWidth</a-button> <a-button @click="setProps({ size: 'large' })" class="mr-2">更改Size</a-button> <a-button @click="setProps({ size: 'default' })" class="mr-2">还原Size</a-button> <a-button @click="setProps({ disabled: true })" class="mr-2">禁用表单</a-button> <a-button @click="setProps({ disabled: false })" class="mr-2">解除禁用</a-button> <a-button @click="setProps({ compact: true })" class="mr-2">紧凑表单</a-button> <a-button @click="setProps({ compact: false })" class="mr-2">还原正常间距</a-button> <a-button @click="setProps({ actionColOptions: { span: 8 } })" class="mr-2"> 操作按钮位置 </a-button> </div> <div class="mb-4"> <a-button @click="setProps({ showActionButtonGroup: false })" class="mr-2"> 隐藏操作按钮 </a-button> <a-button @click="setProps({ showActionButtonGroup: true })" class="mr-2"> 显示操作按钮 </a-button> <a-button @click="setProps({ showResetButton: false })" class="mr-2"> 隐藏重置按钮 </a-button> <a-button @click="setProps({ showResetButton: true })" class="mr-2"> 显示重置按钮 </a-button> <a-button @click="setProps({ showSubmitButton: false })" class="mr-2"> 隐藏查询按钮 </a-button> <a-button @click="setProps({ showSubmitButton: true })" class="mr-2"> 显示查询按钮 </a-button> <a-button @click=" setProps({ resetButtonOptions: { disabled: true, text: '重置New', }, }) " class="mr-2" > 修改重置按钮 </a-button> <a-button @click=" setProps({ submitButtonOptions: { disabled: true, loading: true, }, }) " class="mr-2" > 修改查询按钮 </a-button> </div> <CollapseContainer title="useForm示例"> <BasicForm @register="register" @submit="handleSubmit" /> </CollapseContainer> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; import { CollapseContainer } from '/@/components/Container/index'; import { useMessage } from '/@/hooks/web/useMessage'; const schemas: FormSchema[] = [ { field: 'field1', component: 'Input', label: '字段1', colProps: { span: 8, }, componentProps: { placeholder: '自定义placeholder', onChange: (e: any) => { console.log(e); }, }, }, { field: 'field2', component: 'Input', label: '字段2', colProps: { span: 8, }, }, { field: 'field3', component: 'DatePicker', label: '字段3', colProps: { span: 8, }, }, { field: 'field4', component: 'Select', label: '字段4', colProps: { span: 8, }, componentProps: { options: [ { label: '选项1', value: '1', key: '1', }, { label: '选项2', value: '2', key: '2', }, ], }, }, { field: 'field5', component: 'CheckboxGroup', label: '字段5', colProps: { span: 8, }, componentProps: { options: [ { label: '选项1', value: '1', }, { label: '选项2', value: '2', }, ], }, }, { field: 'field7', component: 'RadioGroup', label: '字段7', colProps: { span: 8, }, componentProps: { options: [ { label: '选项1', value: '1', }, { label: '选项2', value: '2', }, ], }, }, ]; export default defineComponent({ components: { BasicForm, CollapseContainer }, setup() { const { createMessage } = useMessage(); const [register, { setProps }] = useForm({ labelWidth: 120, schemas, actionColOptions: { span: 24, }, }); return { register, schemas, handleSubmit: (values: any) => { createMessage.success('click search,values:' + JSON.stringify(values)); }, setProps, }; }, }); </script>