From f839f87c663cfbca49f4d9fb58d199d7f16665d9 Mon Sep 17 00:00:00 2001 From: hisoka0728 <1399952343@qq.com> Date: Tue, 25 Jun 2024 20:58:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E6=A0=8F=E9=85=8D=E7=BD=AE=E9=9A=90=E8=97=8F=E6=9C=AA=E7=94=9F?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/control/toolbar/toolbar.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/control/toolbar/toolbar.tsx b/src/control/toolbar/toolbar.tsx index 2524e536d..70dac78ad 100644 --- a/src/control/toolbar/toolbar.tsx +++ b/src/control/toolbar/toolbar.tsx @@ -108,6 +108,13 @@ export const ToolbarControl = defineComponent({ if (!pvisible) { return null; } + // 子项所有项都隐藏,父项也应该隐藏 + const pvisiblehiddenItem = detoolbarItems.every( + (item3: IData) => item3.hiddenItem === true, + ); + if (pvisiblehiddenItem) { + return null; + } // 当前项禁用或子项所有项都禁用,父项也应该禁用 const pdisabled = curDisabled || @@ -367,6 +374,9 @@ export const ToolbarControl = defineComponent({ state.extraButtons.before?.length > 0 && this.renderExtraButtons(state.extraButtons.before), this.modelData.detoolbarItems?.map((item, index) => { + if ((item as IData).hiddenItem) { + return null; + } const toolbarItemNode = this.renderToolbarItem(item); // 绘制指定位置后的额外按钮 if (state.extraButtons[index]?.length) { -- Gitee From 7282cfdf529a34b56556f0542538556c29673d57 Mon Sep 17 00:00:00 2001 From: hisoka0728 <1399952343@qq.com> Date: Tue, 25 Jun 2024 20:59:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E6=9C=AA=E6=AD=A3=E5=B8=B8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=AE=8C=E6=88=90=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/panel-component/nav-tabs/nav-tabs.tsx | 29 +++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/panel-component/nav-tabs/nav-tabs.tsx b/src/panel-component/nav-tabs/nav-tabs.tsx index 927d577ee..90f252a34 100644 --- a/src/panel-component/nav-tabs/nav-tabs.tsx +++ b/src/panel-component/nav-tabs/nav-tabs.tsx @@ -1,4 +1,4 @@ -import { defineComponent, PropType, VNode, watch } from 'vue'; +import { defineComponent, nextTick, PropType, ref, VNode, watch } from 'vue'; import { useNamespace } from '@ibiz-template/vue3-util'; import './nav-tabs.scss'; import { TabsPaneContext } from 'element-plus'; @@ -73,7 +73,31 @@ export const NavTabs = defineComponent({ }, ); - return { ns, actions, changePage, onTabRemove, handleCommand }; + const tabRef = ref(); + + watch( + () => c.state.tabItems, + (newVal, oldVal) => { + if (oldVal && newVal) { + nextTick(() => { + const dom = tabRef.value.$el.querySelector('.el-tabs__nav-next'); + if (dom) { + dom.click(); + } + }); + } + }, + { deep: true }, + ); + + return { + ns, + actions, + changePage, + onTabRemove, + handleCommand, + tabRef, + }; }, render() { const { state } = this.controller; @@ -86,6 +110,7 @@ export const NavTabs = defineComponent({ closable onTabClick={this.changePage} onTabRemove={this.onTabRemove} + ref='tabRef' > {state.tabItems.map(msg => { let label = msg.caption; -- Gitee