From b8c161f464e2064b8b06e3dc1c2990b86aeb2a86 Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Mon, 4 Aug 2025 20:32:17 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E5=9C=B0=E5=9D=80=E6=A1=86?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=A1=AB=E6=A8=A1=E5=BC=8F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=A1=B9=E5=A1=AB=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data-picker/ibiz-mpicker/ibiz-mpicker.tsx | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx index d222b76c5..8a08fe99d 100644 --- a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx +++ b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx @@ -153,25 +153,41 @@ export const IBizMPicker = defineComponent({ }; // 处理视图关闭,往外抛值 - const handleOpenViewClose = (result: IData[]) => { + const handleOpenViewClose = async (result: IData[]) => { // 抛出值集合 const selects: IData[] = []; if (result && Array.isArray(result)) { - result.forEach((select: IData) => { + const calcPromises = result.map(async select => { + const item = select; + // 选择树视图特殊处理 + if (select.srfnodeid) { + Object.assign(item, select._deData); + } + const dataItems = await c.calcFillDataItems(item); + const res = {}; + dataItems.forEach(dataItem => { + Object.assign(res, { [dataItem.id]: dataItem.value }); + }); + return res; + }); + const dataItemsList = await Promise.all(calcPromises); + result.forEach((select: IData, _index: number) => { Object.assign(select, { [c.keyName]: select[c.keyName] ? select[c.keyName] : select.srfkey, [c.textName]: select[c.textName] ? select[c.textName] : select.srfmajortext, }); + const data = dataItemsList[_index]; if (c.model.valueType === 'OBJECTS') { - selects.push(c.handleObjectParams(select)); + selects.push({ ...c.handleObjectParams(select), ...data }); } else if (c.objectIdField) { selects.push(select[c.keyName]); } else { selects.push({ [c.keyName]: select[c.keyName], [c.textName]: select[c.textName], + ...data, }); } const index = items.value.findIndex(item => @@ -214,7 +230,7 @@ export const IBizMPicker = defineComponent({ }; // 下拉选中回调 - const onSelect = (selects: string[]) => { + const onSelect = async (selects: string[]) => { setEditable(false); if (selects.includes('empty')) { resetCurValue(); @@ -222,7 +238,7 @@ export const IBizMPicker = defineComponent({ } const val: Array = []; let value: string | Array | null = null; - selects.forEach((select: string) => { + const selections = selects.map((select: string) => { let index = items.value.findIndex(item => Object.is(item[c.keyName], select), ); @@ -237,14 +253,28 @@ export const IBizMPicker = defineComponent({ item = selectItems.value[index]; } } + return item; + }); + const calcPromises = selections.map(async select => { + const dataItems = await c.calcFillDataItems(select); + const res = {}; + dataItems.forEach(dataItem => { + Object.assign(res, { [dataItem.id]: dataItem.value }); + }); + return res; + }); + const dataItemsList = await Promise.all(calcPromises); + selections.forEach((item: IData, index: number) => { + const data = dataItemsList[index]; if (c.model.valueType === 'OBJECTS') { - val.push(c.handleObjectParams(item)); + val.push({ ...c.handleObjectParams(item), ...data }); } else if (c.objectIdField) { val.push(item[c.keyName]); } else { val.push({ [c.keyName]: item[c.keyName], [c.textName]: item[c.textName], + ...data, }); } }); -- Gitee From 900e9845191eb3fc0fea27483e63b35c79b76e78 Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Mon, 4 Aug 2025 20:45:02 +0800 Subject: [PATCH 2/5] =?UTF-8?q?style:=20drtab=E5=88=86=E9=A1=B5=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/control/drtab/drtab.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/control/drtab/drtab.tsx b/src/control/drtab/drtab.tsx index 67cd241f6..2d95b4b36 100644 --- a/src/control/drtab/drtab.tsx +++ b/src/control/drtab/drtab.tsx @@ -355,6 +355,7 @@ export const DRTabControl = defineComponent({ ) : ( {this.visibleItems.map((tab: IDRTabPagesState) => { -- Gitee From ceee2be13c0e2d5001726eadc7fff4182710f1ec Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Mon, 4 Aug 2025 20:45:21 +0800 Subject: [PATCH 3/5] =?UTF-8?q?style:=20drtab=E8=AE=A1=E6=95=B0=E5=99=A8?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/control/drtab/drtab.scss | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/control/drtab/drtab.scss b/src/control/drtab/drtab.scss index 6f809b4fb..989e6aff5 100644 --- a/src/control/drtab/drtab.scss +++ b/src/control/drtab/drtab.scss @@ -60,6 +60,10 @@ $control-drtab: ( .el-tabs__nav-next { line-height: var(--el-tabs-header-height); } + + .#{bem(badge)} { + text-align: center; + } } @include b(control-drtab-label) { @@ -153,33 +157,33 @@ $control-drtab: ( @include b(control-drtab-dropdown-list) { .#{bem(badge)} { - width: getCssVar(width, icon-medium); - height: getCssVar(width, icon-medium); display: flex; align-items: center; justify-content: center; + width: getCssVar(width, icon-medium); + height: getCssVar(width, icon-medium); font-size: getCssVar(font-size, small); } @include e(trigger) { display: flex; - cursor: pointer; align-items: center; font-size: getCssVar(font-size, header-5); + cursor: pointer; .caption { position: relative; padding: getCssVar(spacing, tight); .#{bem(badge)} { + position: absolute; top: 0; right: -6px; - position: absolute; } } } @include e(popper) { - max-width: 220px; min-width: 150px; + max-width: 220px; @include m(content) { max-height: 26vh; @@ -195,23 +199,24 @@ $control-drtab: ( } .#{bem(badge)} { - width: getCssVar(width, icon-medium); - height: getCssVar(width, icon-medium); display: flex; align-items: center; justify-content: center; - font-size: getCssVar(font-size, small); + width: getCssVar(width, icon-medium); + height: getCssVar(width, icon-medium); margin-right: getCssVar(spacing, tight); + font-size: getCssVar(font-size, small); } ion-icon { - color: getCssVar(color, primary); font-size: getCssVar(width, icon-medium); + color: getCssVar(color, primary); } @include when(active) { background-color: getCssVar(color, fill-0) !important; } } + &.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list { background-color: transparent; -- Gitee From f59ed75ba8b1ee7326057b5a8de3827f0eb6abbc Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Tue, 5 Aug 2025 19:15:31 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Ddrtab=E4=B8=8A?= =?UTF-8?q?=E6=96=B9=E4=B8=8B=E6=8B=89=E4=B8=94=E9=9A=90=E8=97=8F=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E6=97=B6=E7=A9=BA=E7=99=BD=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view-engine/tab-exp-view.engine.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/view-engine/tab-exp-view.engine.ts b/src/view-engine/tab-exp-view.engine.ts index 0eb9e31fc..014c8309f 100644 --- a/src/view-engine/tab-exp-view.engine.ts +++ b/src/view-engine/tab-exp-view.engine.ts @@ -233,7 +233,8 @@ export class TabExpViewEngine extends ViewEngineBase { // 只有上方显示分页的时候,且有分页导航面板时显示头部 if ( tabLayout === undefined || - (tabLayout === 'TOP' && getControl(this.view.model, 'tabexppanel')) + (['TOP', 'TOP_DROPDOWNLIST'].includes(tabLayout) && + getControl(this.view.model, 'tabexppanel')) ) { showHeader = true; } -- Gitee From 1dd289ced5962e271043288766f5fc88efa6623f Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Tue, 5 Aug 2025 19:16:26 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Ddrtab=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E7=BC=96=E8=BE=91=E9=A1=B9=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/control/drtab/drtab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/drtab/drtab.tsx b/src/control/drtab/drtab.tsx index 2d95b4b36..c3196963b 100644 --- a/src/control/drtab/drtab.tsx +++ b/src/control/drtab/drtab.tsx @@ -51,7 +51,7 @@ export const DRTabControl = defineComponent({ /** * @description 隐藏编辑项 */ - hideEditItem: { type: Boolean }, + hideEditItem: { type: Boolean, default: undefined }, }, setup() { const c: DRTabController = useControlController( -- Gitee