| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <script lang="ts" setup>
- import { useVbenDrawer } from '@vben/common-ui';
- import { useVbenForm } from '#/adapter/form';
- defineOptions({
- name: 'FormDrawerDemo',
- });
- const [Form, formApi] = useVbenForm({
- schema: [
- {
- component: 'Input',
- componentProps: {
- placeholder: '请输入',
- },
- fieldName: 'field1',
- label: '字段1',
- rules: 'required',
- },
- {
- component: 'Input',
- componentProps: {
- placeholder: '请输入',
- },
- fieldName: 'field2',
- label: '字段2',
- rules: 'required',
- },
- ],
- showDefaultActions: false,
- });
- const [Drawer, drawerApi] = useVbenDrawer({
- onCancel() {
- drawerApi.close();
- },
- onConfirm: async () => {
- await formApi.submitForm();
- drawerApi.close();
- },
- onOpenChange(isOpen: boolean) {
- if (isOpen) {
- const { values } = drawerApi.getData<Record<string, any>>();
- if (values) {
- formApi.setValues(values);
- }
- }
- },
- title: '内嵌表单示例',
- });
- </script>
- <template>
- <Drawer>
- <Form />
- </Drawer>
- </template>
|