From 1e6417f95b82e4c89dfe534880370127d82c8c79 Mon Sep 17 00:00:00 2001 From: ming4762 Date: Sat, 16 Aug 2025 22:41:08 +0800 Subject: [PATCH] feat: vBenForm add layout: inline (#6644) --- docs/src/components/common-ui/vben-form.md | 2 +- .../form-ui/src/components/form-actions.vue | 2 +- .../ui-kit/form-ui/src/form-render/form.vue | 10 ++-- packages/@core/ui-kit/form-ui/src/types.ts | 2 +- playground/src/views/examples/form/query.vue | 60 +++++++++++++++++++ 5 files changed, 69 insertions(+), 7 deletions(-) diff --git a/docs/src/components/common-ui/vben-form.md b/docs/src/components/common-ui/vben-form.md index 6d1dc4eb1..9485af969 100644 --- a/docs/src/components/common-ui/vben-form.md +++ b/docs/src/components/common-ui/vben-form.md @@ -304,7 +304,7 @@ useVbenForm 返回的第二个参数,是一个对象,包含了一些表单 | 属性名 | 描述 | 类型 | 默认值 | | --- | --- | --- | --- | -| layout | 表单项布局 | `'horizontal' \| 'vertical'` | `horizontal` | +| layout | 表单项布局 | `'horizontal' \| 'vertical'\| 'inline'` | `horizontal` | | showCollapseButton | 是否显示折叠按钮 | `boolean` | `false` | | wrapperClass | 表单的布局,基于tailwindcss | `any` | - | | actionWrapperClass | 表单操作区域class | `any` | - | diff --git a/packages/@core/ui-kit/form-ui/src/components/form-actions.vue b/packages/@core/ui-kit/form-ui/src/components/form-actions.vue index cc42a1612..42101c124 100644 --- a/packages/@core/ui-kit/form-ui/src/components/form-actions.vue +++ b/packages/@core/ui-kit/form-ui/src/components/form-actions.vue @@ -82,11 +82,11 @@ const actionWrapperClass = computed(() => { const cls = [ 'flex', - 'w-full', 'items-center', 'gap-3', props.compact ? 'pb-2' : 'pb-4', props.layout === 'vertical' ? 'self-end' : 'self-center', + props.layout === 'inline' ? '' : 'w-full', props.actionWrapperClass, ]; diff --git a/packages/@core/ui-kit/form-ui/src/form-render/form.vue b/packages/@core/ui-kit/form-ui/src/form-render/form.vue index 3fa616452..ff18972ad 100644 --- a/packages/@core/ui-kit/form-ui/src/form-render/form.vue +++ b/packages/@core/ui-kit/form-ui/src/form-render/form.vue @@ -42,11 +42,13 @@ const emits = defineEmits<{ }>(); const wrapperClass = computed(() => { - const cls = ['flex flex-col']; + const cls = ['flex']; if (props.layout === 'vertical') { - cls.push(props.compact ? 'gap-x-2' : 'gap-x-4'); + cls.push(props.compact ? 'gap-x-2' : 'gap-x-4', 'flex-col grid'); + } else if (props.layout === 'inline') { + cls.push('flex-wrap gap-2'); } else { - cls.push('gap-2'); + cls.push('gap-2 flex-col grid'); } return cn(...cls, props.wrapperClass); }); @@ -170,7 +172,7 @@ const computedSchema = computed(