123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- <template>
- <PageWrapper title="Ref操作示例">
- <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="使用ref调用表单内部函数示例">
- <BasicForm
- :schemas="schemas"
- ref="formElRef"
- :labelWidth="100"
- @submit="handleSubmit"
- :actionColOptions="{ span: 24 }"
- />
- </CollapseContainer>
- </PageWrapper>
- </template>
- <script lang="ts">
- import { defineComponent, ref } from 'vue';
- import { BasicForm, FormSchema, FormActionType, FormProps } from '/@/components/Form/index';
- import { CollapseContainer } from '/@/components/Container/index';
- import { useMessage } from '/@/hooks/web/useMessage';
- import { PageWrapper } from '/@/components/Page';
- import { type Nullable } from '@vben/types';
- 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, PageWrapper },
- setup() {
- const formElRef = ref<Nullable<FormActionType>>(null);
- const { createMessage } = useMessage();
- return {
- formElRef,
- schemas,
- handleSubmit: (values: any) => {
- createMessage.success('click search,values:' + JSON.stringify(values));
- },
- setProps(props: FormProps) {
- const formEl = formElRef.value;
- if (!formEl) return;
- formEl.setProps(props);
- },
- };
- },
- });
- </script>
|