From 64acc4d844f092bad9a5c046dbd3a02cf3245ce2 Mon Sep 17 00:00:00 2001 From: lxmdream Date: Wed, 20 Mar 2024 19:09:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E8=A1=A8=E6=A0=BC=E5=88=97?= =?UTF-8?q?=E8=A1=8C=E7=BC=96=E8=BE=91=E6=94=AF=E6=8C=81=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E7=9A=84=E5=B1=9E=E6=80=A7=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 +++ .../grid-field-edit-column.tsx | 1 + src/control/grid/grid/grid.tsx | 29 ++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 363153613..8647a7666 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ ## [Unreleased] +### Added + +- 表格列行编辑支持部件逻辑的属性注入 + ## [0.6.10] - 2024-03-19 ### Added diff --git a/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx b/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx index 95207ae65..784d4ca3c 100644 --- a/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx +++ b/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx @@ -111,6 +111,7 @@ export const GridFieldEditColumn = defineComponent({ onInfoTextChange: this.onInfoTextChange, title: this.tooltip, ...this.editorProps, + ...this.$attrs, })} ); diff --git a/src/control/grid/grid/grid.tsx b/src/control/grid/grid/grid.tsx index 108ef615e..37e56bdc7 100644 --- a/src/control/grid/grid/grid.tsx +++ b/src/control/grid/grid/grid.tsx @@ -13,7 +13,11 @@ import { VNodeArrayChildren, } from 'vue'; import { IDEGrid, IDEGridColumn, IDEGridGroupColumn } from '@ibiz/model-core'; -import { GridController, IControlProvider } from '@ibiz-template/runtime'; +import { + GridController, + IControlProvider, + ScriptFactory, +} from '@ibiz-template/runtime'; import { IGridProps, useAppGridBase, @@ -24,6 +28,25 @@ import './grid.scss'; import { useRowEditPopover } from '../row-edit-popover/use-row-edit-popover'; import { usePagination } from '../../../util'; +/** + * 绘制成员的attrs + * @author lxm + * @date 2024-03-19 03:48:00 + * @param {IDEFormDetail} model + * @return {*} {IParams} + */ +function renderAttrs(model: IDEGridColumn, params: IParams): IParams { + const attrs: IParams = {}; + model.controlAttributes?.forEach(item => { + if (item.attrName && item.attrValue) { + attrs[item.attrName!] = ScriptFactory.execSingleLine(item.attrValue!, { + ...params, + }); + } + }); + return attrs; +} + // 绘制除分组列之外的表格列 export function renderColumn( c: GridController, @@ -68,6 +91,10 @@ export function renderColumn( controller: columnC, row: rowState, key: elRow.tempsrfkey + columnName, + ...renderAttrs(model, { + ...c.getEventArgs(), + data: rowState.data, + }), }); } return null; -- Gitee From 763530507e55d27a721d8742173e50efac81b034 Mon Sep 17 00:00:00 2001 From: lxmdream Date: Wed, 20 Mar 2024 19:10:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Ddrbar=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E7=82=B9=E5=87=BB=E5=88=86=E9=A1=B5=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E5=90=8E=E9=80=80=E6=B2=A1=E6=9C=89=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ src/control/drbar/drbar.controller.ts | 5 ++++- src/control/drbar/drbar.tsx | 27 +++++---------------------- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8647a7666..2de2be6f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ - 表格列行编辑支持部件逻辑的属性注入 +### Fixed + +- 修复drbar首次点击分页之后后退没有回显 + ## [0.6.10] - 2024-03-19 ### Added diff --git a/src/control/drbar/drbar.controller.ts b/src/control/drbar/drbar.controller.ts index 34d880536..3676578bf 100644 --- a/src/control/drbar/drbar.controller.ts +++ b/src/control/drbar/drbar.controller.ts @@ -340,7 +340,10 @@ export class DRBarController * @param {string} key * @memberof DRBarController */ - handleSelectChange(key: string, isRoutePushed = false): void { + handleSelectChange( + key: string = this.state.defaultItem, + isRoutePushed = false, + ): void { if (this.state.selectedItem === key) { return; } diff --git a/src/control/drbar/drbar.tsx b/src/control/drbar/drbar.tsx index ea93dfa50..5f6180b2b 100644 --- a/src/control/drbar/drbar.tsx +++ b/src/control/drbar/drbar.tsx @@ -4,7 +4,7 @@ import { useControlController, useNamespace, } from '@ibiz-template/vue3-util'; -import { defineComponent, PropType, reactive, ref, VNode, watch } from 'vue'; +import { defineComponent, PropType, reactive, VNode, watch } from 'vue'; import { IDEDRBar } from '@ibiz/model-core'; import { useRoute, useRouter } from 'vue-router'; import { IControlProvider, IDRBarItemsState } from '@ibiz-template/runtime'; @@ -44,8 +44,6 @@ export const DRBarControl = defineComponent({ const route = useRoute(); - const defaultActive = ref(''); - let expViewRoutePath = ''; const opens: string[] = []; @@ -76,21 +74,7 @@ export const DRBarControl = defineComponent({ if (currentRoutePath === expViewRoutePath) { const routePath = route2routePath(route); const { srfnav } = routePath.pathNodes[depth! - 1]; - if ( - srfnav && - c.state.selectedItem && - c.state.selectedItem !== srfnav - ) { - c.handleSelectChange(srfnav); - defaultActive.value = srfnav; - } else if ( - srfnav === undefined && - c.state.defaultItem && - c.state.selectedItem !== c.state.defaultItem - ) { - c.handleSelectChange(c.state.defaultItem); - defaultActive.value = ''; - } + c.handleSelectChange(srfnav); } } } @@ -161,20 +145,19 @@ export const DRBarControl = defineComponent({ ns, handleSelect, renderMenuItems, - defaultActive, opens, }; }, render() { - const { isCreated, drBarItems, defaultItem } = this.c.state; + const { isCreated, drBarItems, selectedItem } = this.c.state; return ( - {isCreated && !!defaultItem && ( + {isCreated && ( -- Gitee