From 5ff864146a9304b3d646af888f5c76055687801d Mon Sep 17 00:00:00 2001
From: lijisanxiong <1518062161@qq.com>
Date: Wed, 11 Dec 2024 21:16:41 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=20=E6=96=B0=E5=A2=9E=E5=B7=A5=E5=85=B7?=
=?UTF-8?q?=E6=A0=8F=E8=A1=8C=E4=B8=BA=E9=A1=B9=E6=94=AF=E6=8C=81=E8=AE=A1?=
=?UTF-8?q?=E6=95=B0=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 4 ++++
src/control/toolbar/toolbar.scss | 3 +++
src/control/toolbar/toolbar.tsx | 37 +++++++++++++++++++++++++-------
3 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ed90e3a4..1b2758a1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@
## [Unreleased]
+### Added
+
+- 新增工具栏行为项支持计数器
+
### Fixed
- 修复第三方内嵌登录时请求授权链接跳转异常的问题
diff --git a/src/control/toolbar/toolbar.scss b/src/control/toolbar/toolbar.scss
index 9ab4f2f3..9355ca6c 100644
--- a/src/control/toolbar/toolbar.scss
+++ b/src/control/toolbar/toolbar.scss
@@ -50,6 +50,9 @@ $control-toolbar-actions: (
margin: getCssVar(control-toolbar, text-margin);
}
}
+ .#{bem(toolbar-item-counter)} {
+ margin-left: getCssVar('spacing', 'super-tight');
+ }
}
@include b(control-toolbar) {
diff --git a/src/control/toolbar/toolbar.tsx b/src/control/toolbar/toolbar.tsx
index 557f5d0f..b80b1b08 100644
--- a/src/control/toolbar/toolbar.tsx
+++ b/src/control/toolbar/toolbar.tsx
@@ -24,7 +24,13 @@ import { IBizExportExcel } from './export-excel/export-excel';
import { IBizShortCutButton } from './short-cut-button/short-cut-button';
import './toolbar.scss';
-const btnContent = (item: IDEToolbarItem): (string | VNode)[] => {
+const btnContent = (
+ item: IDEToolbarItem,
+ c: ToolbarController,
+): (string | VNode)[] => {
+ const counterNum = item.counterId
+ ? c.state.counterData[item.counterId]
+ : undefined;
const image = item.sysImage;
const result = [];
const ns = useNamespace('toolbar-item');
@@ -38,6 +44,16 @@ const btnContent = (item: IDEToolbarItem): (string | VNode)[] => {
if (item.showCaption && item.caption) {
result.push({item.caption});
}
+ if (counterNum) {
+ result.push(
+ ,
+ );
+ }
+
return result;
};
@@ -88,6 +104,11 @@ export const ToolbarControl = defineComponent({
await handleClick(tempItem as IDEToolbarItem, event, params);
};
+ // 绘制按钮内容
+ const renderBtnContent = (item: IDEToolbarItem) => {
+ return btnContent(item, c);
+ };
+
const renderExtraButtons = (extraButtons: IExtraButton[]): VNode[] => {
return extraButtons.map(button => {
return (
@@ -97,7 +118,7 @@ export const ToolbarControl = defineComponent({
size={btnSize.value}
onClick={(e: MouseEvent): Promise => handleClick(button, e)}
>
- {btnContent(button)}
+ {renderBtnContent(button)}
);
@@ -197,7 +218,7 @@ export const ToolbarControl = defineComponent({
]}
mode='menu'
item={item2}
- btnContent={btnContent}
+ btnContent={renderBtnContent}
size={btnSize.value}
controller={c}
onExportExcel={(e: MouseEvent, data: IData): void => {
@@ -226,7 +247,7 @@ export const ToolbarControl = defineComponent({
- {btnContent(item2)}
+ {renderBtnContent(item2)}
);
@@ -240,7 +261,7 @@ export const ToolbarControl = defineComponent({
title: () => {
return (
- {btnContent(item)}
+ {renderBtnContent(item)}
);
},
@@ -263,7 +284,7 @@ export const ToolbarControl = defineComponent({
handleActionClick(detail, e)
}
>
- {btnContent(detail)}
+ {renderBtnContent(detail)}
,
];
}
@@ -455,7 +476,7 @@ export const ToolbarControl = defineComponent({
calcCssName(item),
]}
item={item}
- btnContent={btnContent}
+ btnContent={renderBtnContent}
size={btnSize.value}
controller={c}
onExportExcel={(e: MouseEvent, data: IData): void => {
@@ -501,7 +522,7 @@ export const ToolbarControl = defineComponent({
disabled={c.state.buttonsState[itemId].disabled}
onClick={(e: MouseEvent): Promise => handleClick(item, e)}
>
- {btnContent(item)}
+ {renderBtnContent(item)}
);
--
Gitee