From 4a968d937992330c0f4ddb2deeaf22ca54f82278 Mon Sep 17 00:00:00 2001 From: allen <495141992@qq.com> Date: Wed, 15 Apr 2026 16:39:56 +0800 Subject: [PATCH] fix: devtools warning --- .../collapsible/collapsible-params.vue | 9 ++++- .../src/components/collapsible/type.ts | 7 ++++ playground/src/adapter/component/index.ts | 8 +++- .../src/views/examples/form/collapsible.vue | 40 ++++++++++++------- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/collapsible-params.vue b/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/collapsible-params.vue index b82940179..8c0accac4 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/collapsible-params.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/collapsible-params.vue @@ -42,12 +42,17 @@ const { b } = useNamespace('collapsible-params'); const open = ref(props.defaultOpen); +// 最小可见为1 +const finalVisibleCount = computed(() => + Math.max(1, Math.floor(props.visibleCount)), +); + const visibleRows = computed(() => { - return props.params.slice(0, props.visibleCount); + return props.params.slice(0, finalVisibleCount.value); }); const collapsibleRows = computed(() => { - return props.params.slice(props.visibleCount); + return props.params.slice(finalVisibleCount.value); }); const bodyStyle = computed(() => { diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/type.ts b/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/type.ts index 051d2ed4a..f2fcffdf3 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/type.ts +++ b/packages/@core/ui-kit/shadcn-ui/src/components/collapsible/type.ts @@ -1,3 +1,10 @@ +export interface CollapsibleParamsProps { + defaultOpen?: boolean; + maxHeight?: number | string; + params: CollapsibleParamSchema[]; + visibleCount?: number; +} + export interface CollapsibleParamOption { [key: string]: any; max?: number; diff --git a/playground/src/adapter/component/index.ts b/playground/src/adapter/component/index.ts index 94129bd2d..318f780c6 100644 --- a/playground/src/adapter/component/index.ts +++ b/playground/src/adapter/component/index.ts @@ -42,6 +42,8 @@ import type { Sortable } from '@vben/hooks'; import type { TipTapProps } from '@vben/plugins/tiptap'; import type { Recordable } from '@vben/types'; +import type { CollapsibleParamsProps } from '@vben-core/shadcn-ui'; + import { computed, defineAsyncComponent, @@ -68,8 +70,9 @@ import { $t } from '@vben/locales'; import { VbenTiptap } from '@vben/plugins/tiptap'; import { isEmpty } from '@vben/utils'; -import { message, Modal, notification } from 'ant-design-vue'; +import { VbenCollapsibleParams } from '@vben-core/shadcn-ui'; +import { message, Modal, notification } from 'ant-design-vue'; type AdapterUploadProps = UploadProps & { aspectRatio?: string; crop?: boolean; @@ -606,6 +609,7 @@ export type ComponentType = | 'Cascader' | 'Checkbox' | 'CheckboxGroup' + | 'CollapsibleParams' | 'DatePicker' | 'DefaultButton' | 'Divider' @@ -640,6 +644,7 @@ export interface ComponentPropsMap { Cascader: CascaderProps; Checkbox: CheckboxProps; CheckboxGroup: CheckboxGroupProps; + CollapsibleParams: CollapsibleParamsProps; DatePicker: DatePickerProps; DefaultButton: ButtonProps; Divider: DividerProps; @@ -725,6 +730,7 @@ async function initComponentAdapter() { TimePicker, TreeSelect: withDefaultPlaceholder(TreeSelect, 'select'), Upload: withPreviewUpload(), + CollapsibleParams: VbenCollapsibleParams, }; // 将组件注册到全局共享状态中 diff --git a/playground/src/views/examples/form/collapsible.vue b/playground/src/views/examples/form/collapsible.vue index 84f668d7d..2686f472c 100644 --- a/playground/src/views/examples/form/collapsible.vue +++ b/playground/src/views/examples/form/collapsible.vue @@ -1,4 +1,6 @@