From 24fe57ad731baee1646395dc2ce429c9920a08ea Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Thu, 4 Sep 2025 11:28:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=EF=BC=9A=E6=95=B0=E6=8D=AE=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E6=A0=8F=E3=80=81=E6=95=B0=E6=8D=AE=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E7=AD=89=E9=83=A8=E4=BB=B6=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=A1=E6=95=B0=E5=99=A8=E6=97=B6?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E9=83=A8=E4=BB=B6=E7=8A=B6=E6=80=81=E5=B1=9E?= =?UTF-8?q?=E6=80=A7isCounterDisabled=EF=BC=88=E6=98=AF=E5=90=A6=E7=A6=81?= =?UTF-8?q?=E7=94=A8=E8=AE=A1=E6=95=B0=E5=99=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/control/drbar/drbar.controller.ts | 1 + src/control/drtab/drtab.controller.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/control/drbar/drbar.controller.ts b/src/control/drbar/drbar.controller.ts index 140b69a1f..627368979 100644 --- a/src/control/drbar/drbar.controller.ts +++ b/src/control/drbar/drbar.controller.ts @@ -604,6 +604,7 @@ export class DRBarController * @return {*} {Promise} */ protected async initCounter(): Promise { + if (this.state.isCounterDisabled) return; const { appCounterRefs } = this.model; const appCounterRef = appCounterRefs?.[0]; if (appCounterRef) { diff --git a/src/control/drtab/drtab.controller.ts b/src/control/drtab/drtab.controller.ts index 741ab99d0..9fa93adaf 100644 --- a/src/control/drtab/drtab.controller.ts +++ b/src/control/drtab/drtab.controller.ts @@ -585,6 +585,7 @@ export class DRTabController * @return {*} {Promise} */ protected async initCounter(): Promise { + if (this.state.isCounterDisabled) return; // todo 接口更新后换 const { appCounterRefs } = this.model as IData; const appCounterRef = appCounterRefs?.[0]; -- Gitee From 59c0fa4ffb838209adabb7bdb0979904c386ad90 Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Thu, 4 Sep 2025 11:30:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat=EF=BC=9A=E5=B0=86=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E8=AE=A1=E6=95=B0=E5=99=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=BF=81=E7=A7=BB=E8=87=B3=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form-tab-panel/form-tab-panel.tsx | 58 +------------------ 1 file changed, 3 insertions(+), 55 deletions(-) diff --git a/src/control/form/form-detail/form-tab-panel/form-tab-panel.tsx b/src/control/form/form-detail/form-tab-panel/form-tab-panel.tsx index 7026b5e9d..c27ec1dfa 100644 --- a/src/control/form/form-detail/form-tab-panel/form-tab-panel.tsx +++ b/src/control/form/form-detail/form-tab-panel/form-tab-panel.tsx @@ -1,19 +1,10 @@ -import { - defineComponent, - onMounted, - onUnmounted, - PropType, - reactive, - ref, - VNode, -} from 'vue'; +import { defineComponent, PropType, VNode } from 'vue'; import { useController, useNamespace } from '@ibiz-template/vue3-util'; import './form-tab-panel.scss'; import { IDEFormTabPanel } from '@ibiz/model-core'; import { FormTabPanelController, FormTabPageController, - AppCounter, } from '@ibiz-template/runtime'; export const FormTabPanel = defineComponent({ @@ -28,19 +19,10 @@ export const FormTabPanel = defineComponent({ required: true, }, }, - setup(props, { slots }) { + setup(props) { const ns = useNamespace('form-tab-panel'); useController(props.controller); - // 计数器 - let counter: AppCounter | null = null; - - // 计数器数据 - const counterData = reactive({}); - - // 计数器ID - const counterRefId = ref(''); - const onTabClick = (tabIns: IData, event: MouseEvent) => { props.controller.onTabChange(tabIns.props.name); @@ -53,43 +35,9 @@ export const FormTabPanel = defineComponent({ } }; - const fn = (data: IData) => { - counterData.value = data; - }; - - onMounted(() => { - // 计数器相关 - const defaultSlots: VNode[] = slots.default?.() || []; - for (let i = 0; i < defaultSlots.length; i++) { - const slot: VNode = defaultSlots[i]; - const pagePropsC = slot.props?.controller as - | FormTabPageController - | undefined; - if ( - pagePropsC && - pagePropsC.model && - pagePropsC.model.appCounterRefId - ) { - counterRefId.value = pagePropsC.model.appCounterRefId; - break; - } - } - if (counterRefId.value) { - counter = props.controller.getCounter(counterRefId.value); - if (counter) { - counter.onChange(fn); - } - } - }); - - onUnmounted(() => { - counter?.offChange(fn); - }); - return { ns, onTabClick, - counterData, }; }, render() { @@ -136,7 +84,7 @@ export const FormTabPanel = defineComponent({ default: (): VNode => slot, label: (): JSX.Element => { const value = c.model.counterId - ? this.counterData.value[c.model.counterId] + ? this.controller.state.counterData[c.model.counterId] : undefined; return c.model.counterId ? ( Date: Thu, 4 Sep 2025 11:30:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 859dbc774..9ed80f4cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ - 新增应用菜单样式: 扩展视图1,二级菜单以后的菜单均以分组菜单呈现 - 新增表单全局参数validateMode与表单部件参数validatemode,为notification时表单项错误信息以通知方式显示 +### Changed + +- 数据关系栏、数据关系分页等部件,在初始化计数器时识别部件状态属性isCounterDisabled(是否禁用计数器) +- 将表单分页计数器逻辑统一迁移至控制器处理 + ## [0.7.41-alpha.23] - 2025-08-29 ### Changed -- Gitee