From 197a03dfd452cee6e5b1aeae7b3b1d72f750e07a Mon Sep 17 00:00:00 2001 From: mark <37261842+wz930206@users.noreply.github.com> Date: Tue, 26 Dec 2023 11:11:01 +0800 Subject: [PATCH] Update splitter.tsx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bugfix:#1770,d-splitter 分割器,pane组件通过for循环实现,不显示bar --- packages/devui-vue/devui/splitter/src/splitter.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/devui-vue/devui/splitter/src/splitter.tsx b/packages/devui-vue/devui/splitter/src/splitter.tsx index ded70c3e43..0b521b9a31 100644 --- a/packages/devui-vue/devui/splitter/src/splitter.tsx +++ b/packages/devui-vue/devui/splitter/src/splitter.tsx @@ -1,4 +1,4 @@ -import { defineComponent, reactive, ref, provide } from 'vue'; +import { defineComponent, reactive, ref, provide, type VNode } from 'vue'; import DSplitterBar from './components/splitter-bar'; import { SplitterStore, type SplitterPane } from './splitter-store'; import { splitterProps, SplitterProps, SplitterState } from './splitter-types'; @@ -21,7 +21,15 @@ export default defineComponent({ const ns = useNamespace('splitter'); state.panes = ctx.slots.DSplitterPane?.() || []; - + if (state.panes.length > 0) { + state.panes.forEach((item: VNode, index: number) => { + // 解决for循环 pane + if (item.children && item.children.length) { + state.panes.splice(index, 1); + state.panes = [...(item.children as VNode[]), ...state.panes]; + } + }); + } store.setPanes({ panes: state.panes as unknown as SplitterPane[] }); provide('orientation', props.orientation); provide('splitterStore', store);