From 3f87cf5f02501eb40e93f476d72b05aea17e7d10 Mon Sep 17 00:00:00 2001 From: ShineKOT <1917095344@qq.com> Date: Fri, 4 Jul 2025 09:44:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=8D=A1=E7=89=87=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=BF=AB=E9=80=9F=E5=B7=A5=E5=85=B7=E6=A0=8F=E5=92=8C?= =?UTF-8?q?=E6=89=B9=E6=93=8D=E4=BD=9C=E5=B7=A5=E5=85=B7=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ src/control/data-view/data-view.scss | 5 ++++ src/control/data-view/data-view.tsx | 39 +++++++++++++++++++++++++--- src/control/list/list.scss | 4 +++ src/control/list/list.tsx | 2 +- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9de93875..38fe10c42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ ## [Unreleased] +### Added +- 卡片新增快速工具栏和批操作工具栏 + ## [0.7.41-alpha.8] - 2025-07-03 ### Added diff --git a/src/control/data-view/data-view.scss b/src/control/data-view/data-view.scss index b00c41383..cea61c41c 100644 --- a/src/control/data-view/data-view.scss +++ b/src/control/data-view/data-view.scss @@ -100,6 +100,11 @@ $control-dataview-group-item-content: ( align-content: flex-start; overflow: auto; } + + @include e(batchtoolbar) { + padding: 0 getCssVar(spacing, base); + margin: getCssVar(spacing, tight) getCssVar(spacing, super, tight); + } } @include b(control-dataview-item) { diff --git a/src/control/data-view/data-view.tsx b/src/control/data-view/data-view.tsx index b5627e582..1ee12d6af 100644 --- a/src/control/data-view/data-view.tsx +++ b/src/control/data-view/data-view.tsx @@ -494,13 +494,43 @@ export const DataViewControl = defineComponent({ ); }; + // 绘制快速工具栏 + const renderQuickToolBar = (): VNode | undefined => { + const ctrlModel = c.model.controls?.find(item => { + return item.name === `${c.model.name!}_quicktoolbar`; + }); + if (!ctrlModel) return; + return ( + + ); + }; + + // 绘制批操作工具栏 + const renderBatchToolBar = (): VNode | undefined => { + const ctrlModel = c.model.controls?.find(item => { + return item.name === `${c.model.name!}_batchtoolbar`; + }); + if (!ctrlModel) return; + return ( +
+ +
+ ); + }; + const renderNoData = (): VNode | undefined => { // 未加载不显示无数据 const { isLoaded } = c.state; - if (!isLoaded) { - return; - } - const noDataSlots: IParams = {}; + if (!isLoaded) return; + const noDataSlots: IParams = { default: () => renderQuickToolBar() }; if (hasEmptyPanelRenderer(c)) { Object.assign(noDataSlots, { customRender: () => ( @@ -603,6 +633,7 @@ export const DataViewControl = defineComponent({ const renderContent = () => { return [ c.state.items.length > 0 ? renderHasData() : renderNoData(), + renderBatchToolBar(), renderNavIcon(), renderCollapseExpandIcon(), ]; diff --git a/src/control/list/list.scss b/src/control/list/list.scss index 90f77d2b1..86210e561 100644 --- a/src/control/list/list.scss +++ b/src/control/list/list.scss @@ -71,6 +71,10 @@ $control-list: ( @include b(control-list-content) { flex-grow: 1; } + + @include e(batchtoolbar) { + margin: getCssVar(spacing, tight) 0; + } } @include b(control-list-content) { diff --git a/src/control/list/list.tsx b/src/control/list/list.tsx index 158339150..9920f2f0e 100644 --- a/src/control/list/list.tsx +++ b/src/control/list/list.tsx @@ -473,7 +473,7 @@ export const ListControl = defineComponent({ }); if (!ctrlModel) return; return ( -
+
Date: Fri, 4 Jul 2025 14:53:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat=EF=BC=9B=E4=BC=98=E5=8C=96=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=92=8C=E7=9C=8B=E6=9D=BF=E9=A1=B9=E8=A1=8C=E4=B8=BA?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ src/control/data-view/data-view.scss | 8 ++++++++ src/control/kanban/kanban.scss | 12 ++++++++++++ src/control/kanban/lane-kanban/lane-kanban.scss | 12 ++++++++++++ src/control/kanban/lane-kanban/lane-kanban.tsx | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38fe10c42..a4a671fee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,13 @@ ## [Unreleased] ### Added + - 卡片新增快速工具栏和批操作工具栏 +### Changed + +- 优化卡片和看板项行为样式 + ## [0.7.41-alpha.8] - 2025-07-03 ### Added diff --git a/src/control/data-view/data-view.scss b/src/control/data-view/data-view.scss index cea61c41c..41c5d4a8a 100644 --- a/src/control/data-view/data-view.scss +++ b/src/control/data-view/data-view.scss @@ -160,6 +160,14 @@ $control-dataview-group-item-content: ( @include m(actions) { display: flex; justify-content: center; + .#{bem(action-toolbar, item)} { + margin: 0; + } + .#{bem(action-toolbar, item, label)} { + &.is-has-caption { + margin: 0; + } + } } } } diff --git a/src/control/kanban/kanban.scss b/src/control/kanban/kanban.scss index acedd62f3..7833e704a 100644 --- a/src/control/kanban/kanban.scss +++ b/src/control/kanban/kanban.scss @@ -216,6 +216,18 @@ $control-kanban: ( padding: getCssVar('spacing', 'tight'); margin-top: getCssVar('spacing', 'tight'); border-top: 1px solid getCssVar('color', 'border'); + @include m(actions) { + display: flex; + justify-content: center; + .#{bem(action-toolbar, item)} { + margin: 0; + } + .#{bem(action-toolbar, item, label)} { + &.is-has-caption { + margin: 0; + } + } + } } } diff --git a/src/control/kanban/lane-kanban/lane-kanban.scss b/src/control/kanban/lane-kanban/lane-kanban.scss index 78cfa6b59..441b4c600 100644 --- a/src/control/kanban/lane-kanban/lane-kanban.scss +++ b/src/control/kanban/lane-kanban/lane-kanban.scss @@ -250,6 +250,18 @@ margin-top: getCssVar('spacing', 'tight'); border-top: 1px solid getCssVar('color', 'border'); } + @include m(actions) { + display: flex; + justify-content: center; + .#{bem(action-toolbar, item)} { + margin: 0; + } + .#{bem(action-toolbar, item, label)} { + &.is-has-caption { + margin: 0; + } + } + } } @include e(batch) { diff --git a/src/control/kanban/lane-kanban/lane-kanban.tsx b/src/control/kanban/lane-kanban/lane-kanban.tsx index 88ed4efbc..6df5e5590 100644 --- a/src/control/kanban/lane-kanban/lane-kanban.tsx +++ b/src/control/kanban/lane-kanban/lane-kanban.tsx @@ -419,7 +419,7 @@ export const LaneKanban = defineComponent({ {actionModel.length ? (
Date: Fri, 4 Jul 2025 17:53:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=B1=BB=E7=BC=96=E8=BE=91=E5=99=A8=E5=80=BC?= =?UTF-8?q?=E6=97=A0=E5=80=BC=E6=97=B6=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ .../ibiz-picker-dropdown/ibiz-picker-dropdown.tsx | 6 ++---- .../data-picker/ibiz-picker-link/ibiz-picker-link.tsx | 4 ++-- src/editor/data-picker/ibiz-picker/ibiz-picker.tsx | 6 ++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4a671fee..22620a25a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,10 @@ - 优化卡片和看板项行为样式 +### Fixed + +- 修复数据选择类编辑器值无值时异常 + ## [0.7.41-alpha.8] - 2025-07-03 ### Added diff --git a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx index a21458b19..9d657f915 100644 --- a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx +++ b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx @@ -85,11 +85,9 @@ export const IBizPickerDropDown = defineComponent({ const { value } = props; if (c.model.valueType === 'OBJECT') { curValue.value = - value && c.objectNameField - ? (value as IData)[c.objectNameField] - : null; + value && c.objectNameField ? (value as IData)[c.objectNameField] : ''; } else { - curValue.value = value as string; + curValue.value = (value as string) || ''; } const valueItem = props.data[c.valueItem]; refValue.value = valueItem || curValue.value; diff --git a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx index e15c1b205..90474b327 100644 --- a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx +++ b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx @@ -76,9 +76,9 @@ export const IBizPickerLink = defineComponent({ curValue.value = newVal && c.objectNameField ? (newVal as IData)[c.objectNameField] - : null; + : ''; } else { - curValue.value = newVal as string; + curValue.value = (newVal as string) || ''; } }, { immediate: true }, diff --git a/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx b/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx index f635d1beb..90bb2f4a0 100644 --- a/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx +++ b/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx @@ -76,11 +76,9 @@ export const IBizPicker = defineComponent({ const { value } = props; if (c.model.valueType === 'OBJECT') { curValue.value = - value && c.objectNameField - ? (value as IData)[c.objectNameField] - : null; + value && c.objectNameField ? (value as IData)[c.objectNameField] : ''; } else { - curValue.value = value as string; + curValue.value = (value as string) || ''; } const valueItem = props.data[c.valueItem]; const index = items.value.findIndex((item: IData) => -- Gitee