@zat-design/sisyphus-react 4.0.13 → 4.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.css +1 -1
- package/dist/less.esm.css +1 -1
- package/es/ProEditLabel/index.js +81 -31
- package/es/ProEditLabel/propsType.d.ts +4 -4
- package/es/ProForm/components/combination/Group/utils/index.d.ts +17 -17
- package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +42 -9
- package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +9 -8
- package/es/ProLayout/components/TabsManager/components/TabItem.js +9 -1
- package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +52 -7
- package/es/ProLayout/components/TabsManager/index.js +52 -16
- package/es/ProLayout/components/TabsManager/propTypes.d.ts +2 -0
- package/es/ProLayout/components/TabsManager/style/index.less +115 -3
- package/es/ProLayout/index.js +30 -16
- package/es/ProLayout/propTypes.d.ts +3 -3
- package/es/ProLayout/utils/index.js +85 -21
- package/es/ProTable/style/index.less +19 -3
- package/es/ProWaterMark/propsType.d.ts +3 -61
- package/es/locale/en_US.d.ts +1 -0
- package/es/locale/en_US.js +2 -1
- package/es/locale/zh_CN.d.ts +1 -0
- package/es/locale/zh_CN.js +2 -1
- package/lib/ProEditLabel/index.js +81 -31
- package/lib/ProEditLabel/propsType.d.ts +4 -4
- package/lib/ProForm/components/combination/Group/utils/index.d.ts +17 -17
- package/lib/ProLayout/components/Layout/Menu/FoldMenu/index.js +42 -9
- package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +9 -8
- package/lib/ProLayout/components/TabsManager/components/TabItem.js +9 -1
- package/lib/ProLayout/components/TabsManager/hooks/useTabsState.js +54 -7
- package/lib/ProLayout/components/TabsManager/index.js +52 -16
- package/lib/ProLayout/components/TabsManager/propTypes.d.ts +2 -0
- package/lib/ProLayout/components/TabsManager/style/index.less +115 -3
- package/lib/ProLayout/index.js +30 -16
- package/lib/ProLayout/propTypes.d.ts +3 -3
- package/lib/ProLayout/utils/index.js +85 -21
- package/lib/ProTable/style/index.less +19 -3
- package/lib/ProWaterMark/propsType.d.ts +3 -61
- package/lib/locale/en_US.d.ts +1 -0
- package/lib/locale/en_US.js +2 -1
- package/lib/locale/zh_CN.d.ts +1 -0
- package/lib/locale/zh_CN.js +2 -1
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import '../../../../style/variables.less'; // 引入变量
|
|
2
|
+
|
|
1
3
|
.pro-layout-tabs {
|
|
2
4
|
--pro-layout-tabs-primary: var(--ant-primary-color, #1677ff);
|
|
3
5
|
--pro-layout-tabs-active-bg: var(--ant-color-success, #00b578);
|
|
@@ -8,18 +10,22 @@
|
|
|
8
10
|
height: 100%;
|
|
9
11
|
|
|
10
12
|
&-header {
|
|
11
|
-
display: flex;
|
|
12
13
|
align-items: center;
|
|
13
14
|
min-height: 48px;
|
|
14
15
|
padding: 12px 0;
|
|
15
16
|
border-bottom: none;
|
|
17
|
+
position: sticky;
|
|
18
|
+
top: 48px;
|
|
19
|
+
z-index: 1;
|
|
20
|
+
background: #f3f5f8;
|
|
21
|
+
.@{ant-prefix}-tabs-nav-list{
|
|
22
|
+
overflow: initial;
|
|
23
|
+
}
|
|
16
24
|
|
|
17
25
|
.pro-layout-tab-list {
|
|
18
26
|
display: flex;
|
|
19
27
|
flex: 1;
|
|
20
28
|
gap: 12px;
|
|
21
|
-
overflow-x: auto;
|
|
22
|
-
overflow-y: hidden;
|
|
23
29
|
|
|
24
30
|
&::-webkit-scrollbar {
|
|
25
31
|
height: 3px;
|
|
@@ -46,12 +52,109 @@
|
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
&-content {
|
|
55
|
+
flex: 1;
|
|
56
|
+
overflow-y: auto;
|
|
57
|
+
min-height: 0; // 重要:允许 flex 子元素缩小到内容以下
|
|
58
|
+
|
|
49
59
|
.tab-pane {
|
|
50
60
|
&.hidden {
|
|
51
61
|
display: none;
|
|
52
62
|
}
|
|
53
63
|
}
|
|
54
64
|
}
|
|
65
|
+
|
|
66
|
+
// antd Tabs 样式覆盖
|
|
67
|
+
.pro-layout-tabs-antd {
|
|
68
|
+
width: 100%;
|
|
69
|
+
height: 100%;
|
|
70
|
+
|
|
71
|
+
// 隐藏 Tabs 的内容区域,因为我们使用 renderContent() 渲染
|
|
72
|
+
.@{ant-prefix}-tabs-content-holder {
|
|
73
|
+
display: none !important;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// 覆盖 nav 样式,使其匹配 pro-layout-tabs-header
|
|
77
|
+
.@{ant-prefix}-tabs-nav {
|
|
78
|
+
margin: 0;
|
|
79
|
+
padding: 0;
|
|
80
|
+
border-bottom: none;
|
|
81
|
+
|
|
82
|
+
&::before {
|
|
83
|
+
display: none; // 隐藏底部边框
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// 覆盖 nav-list 样式,使其匹配 pro-layout-tab-list
|
|
88
|
+
.@{ant-prefix}-tabs-nav-list {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex: 1;
|
|
91
|
+
gap: 12px;
|
|
92
|
+
|
|
93
|
+
&::-webkit-scrollbar {
|
|
94
|
+
height: 3px;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&::-webkit-scrollbar-track {
|
|
98
|
+
background: transparent;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&::-webkit-scrollbar-thumb {
|
|
102
|
+
background: #d9d9d9;
|
|
103
|
+
border-radius: 3px;
|
|
104
|
+
|
|
105
|
+
&:hover {
|
|
106
|
+
background: #bfbfbf;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// 覆盖 tab 样式,使其匹配 pro-layout-tab-item
|
|
112
|
+
.@{ant-prefix}-tabs-tab {
|
|
113
|
+
position: relative;
|
|
114
|
+
display: flex;
|
|
115
|
+
flex-shrink: 0;
|
|
116
|
+
align-items: center;
|
|
117
|
+
min-height: 36px;
|
|
118
|
+
padding: 0 !important;
|
|
119
|
+
margin: 0 !important;
|
|
120
|
+
background: transparent !important;
|
|
121
|
+
border: none !important;
|
|
122
|
+
border-radius: 0 !important;
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
transition: none; // 由内部 TabItemComponent 处理过渡
|
|
125
|
+
|
|
126
|
+
&:hover {
|
|
127
|
+
background: transparent !important;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// 隐藏 antd 默认的关闭按钮(我们使用自定义的)
|
|
131
|
+
.@{ant-prefix}-tabs-tab-remove {
|
|
132
|
+
display: none !important;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// TabItemComponent 的样式应该在这里应用
|
|
136
|
+
.pro-layout-tab-item {
|
|
137
|
+
width: 100%;
|
|
138
|
+
height: 100%;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// 激活状态样式(由 TabItemComponent 内部处理)
|
|
143
|
+
.@{ant-prefix}-tabs-tab-active {
|
|
144
|
+
background: transparent !important;
|
|
145
|
+
border: none !important;
|
|
146
|
+
|
|
147
|
+
&::before {
|
|
148
|
+
display: none;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 隐藏 ink-bar(下划线)
|
|
153
|
+
.@{ant-prefix}-tabs-ink-bar {
|
|
154
|
+
display: none !important;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
}
|
|
55
158
|
}
|
|
56
159
|
|
|
57
160
|
.pro-layout-tab-item {
|
|
@@ -165,6 +268,15 @@
|
|
|
165
268
|
--pro-layout-tabs-text-color: rgba(255, 255, 255, 0.85);
|
|
166
269
|
}
|
|
167
270
|
|
|
271
|
+
.pro-layout-tabs-dropdown-menu{
|
|
272
|
+
.@{ant-prefix}-tabs-dropdown-menu-item-remove{
|
|
273
|
+
display: none !important;
|
|
274
|
+
}
|
|
275
|
+
.pro-layout-tab-content{
|
|
276
|
+
width: 100%;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
168
280
|
// 响应式适配
|
|
169
281
|
@media (max-width: 768px) {
|
|
170
282
|
.pro-layout-tab-item {
|
package/es/ProLayout/index.js
CHANGED
|
@@ -142,23 +142,37 @@ var ProLayout = props => {
|
|
|
142
142
|
});
|
|
143
143
|
};
|
|
144
144
|
var handleMenuClick = useCallback(params => {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
145
|
+
var _tabsManagerRef$curre, _tabsManagerRef$curre2, _tabsManagerRef$curre3, _tabsManagerRef$curre4, _params$item, _params$item2, _params$item3;
|
|
146
|
+
// 非 tabs 模式,直接调用原始回调并允许激活
|
|
147
|
+
if (!isTabsLayout) {
|
|
148
|
+
onMenuClick === null || onMenuClick === void 0 || onMenuClick(params);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// tabs 模式:调用 TabsManager 的 handleMenuClick 来添加标签页
|
|
153
|
+
(_tabsManagerRef$curre = tabsManagerRef.current) === null || _tabsManagerRef$curre === void 0 || (_tabsManagerRef$curre2 = _tabsManagerRef$curre.handleMenuClick) === null || _tabsManagerRef$curre2 === void 0 || _tabsManagerRef$curre2.call(_tabsManagerRef$curre, params);
|
|
154
|
+
|
|
155
|
+
// 非叶子节点,直接允许激活
|
|
156
|
+
if (!params.item || !isLeafMenuItem(params.item)) {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// 叶子节点:检查是否可以添加标签页(检查 max 限制)
|
|
161
|
+
var canAdd = (_tabsManagerRef$curre3 = tabsManagerRef.current) === null || _tabsManagerRef$curre3 === void 0 || (_tabsManagerRef$curre4 = _tabsManagerRef$curre3.canAddTab) === null || _tabsManagerRef$curre4 === void 0 ? void 0 : _tabsManagerRef$curre4.call(_tabsManagerRef$curre3, params.item);
|
|
162
|
+
if (!canAdd) {
|
|
163
|
+
// 超过限制,返回 false 阻止菜单激活
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 可以添加标签页,设置选中路径(激活菜单)
|
|
168
|
+
var targetPath = ((_params$item = params.item) === null || _params$item === void 0 ? void 0 : _params$item.url) || ((_params$item2 = params.item) === null || _params$item2 === void 0 ? void 0 : _params$item2.redirectUrl) || ((_params$item3 = params.item) === null || _params$item3 === void 0 ? void 0 : _params$item3.router);
|
|
169
|
+
if (targetPath && targetPath !== selectedPath) {
|
|
170
|
+
setState({
|
|
171
|
+
selectedPath: targetPath
|
|
172
|
+
});
|
|
159
173
|
}
|
|
160
|
-
|
|
161
|
-
}, [isTabsLayout, onMenuClick, selectedPath
|
|
174
|
+
return true;
|
|
175
|
+
}, [isTabsLayout, onMenuClick, selectedPath]);
|
|
162
176
|
|
|
163
177
|
/**
|
|
164
178
|
* 关闭提示框
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ProWaterMarkType } from '../ProWaterMark/propsType';
|
|
3
3
|
export interface MenusType {
|
|
4
4
|
/**
|
|
5
5
|
* @description 菜单ID
|
|
@@ -174,7 +174,7 @@ interface ProLayoutBaseProps {
|
|
|
174
174
|
* @description 水印配置
|
|
175
175
|
* @default {}
|
|
176
176
|
*/
|
|
177
|
-
waterMarkProps?:
|
|
177
|
+
waterMarkProps?: ProWaterMarkType;
|
|
178
178
|
/**
|
|
179
179
|
* @description 折叠回调事件
|
|
180
180
|
* @default -
|
|
@@ -188,7 +188,7 @@ interface ProLayoutBaseProps {
|
|
|
188
188
|
item: MenusType | null;
|
|
189
189
|
key: string;
|
|
190
190
|
keyPath: string[];
|
|
191
|
-
}) => void;
|
|
191
|
+
}) => void | boolean;
|
|
192
192
|
/**
|
|
193
193
|
* @description 规定在何处打开被链接文档
|
|
194
194
|
* @default "_self"
|
|
@@ -9,6 +9,40 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
9
9
|
/* eslint-disable prefer-destructuring */
|
|
10
10
|
/* eslint-disable no-mixed-operators */
|
|
11
11
|
import { isPlainObject } from 'lodash';
|
|
12
|
+
/**
|
|
13
|
+
* 检查并更新最佳模糊匹配
|
|
14
|
+
* @param pathName 目标路径
|
|
15
|
+
* @param itemUrl 菜单项URL
|
|
16
|
+
* @param itemRedirectUrl 菜单项重定向URL
|
|
17
|
+
* @param keyIdPath 菜单项ID路径
|
|
18
|
+
* @param bestMatch 当前最佳匹配
|
|
19
|
+
* @returns 更新后的最佳匹配
|
|
20
|
+
*/
|
|
21
|
+
var updateBestMatch = (pathName, itemUrl, itemRedirectUrl, keyIdPath, bestMatch) => {
|
|
22
|
+
// 检查 itemUrl 是否匹配
|
|
23
|
+
if (itemUrl && pathName.includes(itemUrl)) {
|
|
24
|
+
var urlLength = itemUrl.length;
|
|
25
|
+
if (!bestMatch || urlLength > bestMatch.urlLength) {
|
|
26
|
+
return {
|
|
27
|
+
keyIdPath,
|
|
28
|
+
urlLength
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// 检查 itemRedirectUrl 是否匹配
|
|
34
|
+
if (itemRedirectUrl && pathName.includes(itemRedirectUrl)) {
|
|
35
|
+
var _urlLength = itemRedirectUrl.length;
|
|
36
|
+
if (!bestMatch || _urlLength > bestMatch.urlLength) {
|
|
37
|
+
return {
|
|
38
|
+
keyIdPath,
|
|
39
|
+
urlLength: _urlLength
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return bestMatch;
|
|
44
|
+
};
|
|
45
|
+
|
|
12
46
|
/**
|
|
13
47
|
* 通过URL获取对应keyIdPath
|
|
14
48
|
* @param menus 菜单数据
|
|
@@ -16,30 +50,42 @@ import { isPlainObject } from 'lodash';
|
|
|
16
50
|
* @return result
|
|
17
51
|
*/
|
|
18
52
|
export var getIdsByPathName = (menus, activeMenu) => {
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
_pathName = activeMenu;
|
|
22
|
-
}
|
|
53
|
+
var _bestMatch;
|
|
54
|
+
var _pathName = activeMenu || window.location.pathname;
|
|
23
55
|
var result;
|
|
56
|
+
var bestMatch = null;
|
|
24
57
|
var menuDeep = menuDeepItem => {
|
|
25
58
|
for (var i = 0; i <= menuDeepItem.length - 1; i++) {
|
|
59
|
+
var _item$url, _item$redirectUrl;
|
|
26
60
|
var item = menuDeepItem[i];
|
|
27
|
-
|
|
61
|
+
var itemUrl = (item === null || item === void 0 || (_item$url = item.url) === null || _item$url === void 0 ? void 0 : _item$url.split('?')[0]) || '';
|
|
62
|
+
var itemRedirectUrl = (item === null || item === void 0 || (_item$redirectUrl = item.redirectUrl) === null || _item$redirectUrl === void 0 ? void 0 : _item$redirectUrl.split('?')[0]) || '';
|
|
63
|
+
|
|
64
|
+
// 精确匹配:完全相等时直接返回
|
|
28
65
|
if ((item === null || item === void 0 ? void 0 : item.url) === _pathName || item.redirectUrl === _pathName) {
|
|
29
66
|
result = item.keyIdPath;
|
|
30
|
-
|
|
67
|
+
return;
|
|
31
68
|
}
|
|
32
|
-
|
|
69
|
+
|
|
70
|
+
// 如果有子菜单,递归查找
|
|
71
|
+
var hasChildren = Array.isArray(item.children) && item.children.length;
|
|
72
|
+
if (hasChildren) {
|
|
33
73
|
menuDeep(item.children);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
74
|
+
// 如果递归后找到了精确匹配,直接返回
|
|
75
|
+
if (result) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
38
79
|
}
|
|
80
|
+
|
|
81
|
+
// 叶子节点:使用最长匹配策略选择最精确的匹配
|
|
82
|
+
bestMatch = updateBestMatch(_pathName, itemUrl, itemRedirectUrl, item.keyIdPath, bestMatch);
|
|
39
83
|
}
|
|
40
84
|
};
|
|
41
85
|
menuDeep(menus);
|
|
42
|
-
|
|
86
|
+
|
|
87
|
+
// 如果没有精确匹配,使用最佳模糊匹配
|
|
88
|
+
return result || ((_bestMatch = bestMatch) === null || _bestMatch === void 0 ? void 0 : _bestMatch.keyIdPath) || [];
|
|
43
89
|
};
|
|
44
90
|
|
|
45
91
|
/**
|
|
@@ -144,33 +190,51 @@ export function getUrlParams(name) {
|
|
|
144
190
|
* @param routerMatch 匹配模式id & url
|
|
145
191
|
*/
|
|
146
192
|
export var getPathNameKey = _ref => {
|
|
193
|
+
var _bestMatch2;
|
|
147
194
|
var menus = _ref.menus,
|
|
148
195
|
pathName = _ref.pathName;
|
|
149
196
|
var result;
|
|
197
|
+
var bestMatch = null;
|
|
150
198
|
var menuDeep = menuDeepItem => {
|
|
151
199
|
if (!Array.isArray(menuDeepItem) || !menuDeepItem.length) {
|
|
152
|
-
return
|
|
200
|
+
return;
|
|
153
201
|
}
|
|
154
202
|
for (var i = 0; i <= menuDeepItem.length - 1; i++) {
|
|
203
|
+
var _item$url2, _item$redirectUrl2;
|
|
155
204
|
var item = menuDeepItem[i];
|
|
205
|
+
|
|
206
|
+
// 跳过无效的菜单项
|
|
156
207
|
if (!Array.isArray(item.keyUrlPath) || !item.keyUrlPath.length) {
|
|
157
|
-
|
|
208
|
+
continue;
|
|
158
209
|
}
|
|
210
|
+
var itemUrl = (item === null || item === void 0 || (_item$url2 = item.url) === null || _item$url2 === void 0 ? void 0 : _item$url2.split('?')[0]) || '';
|
|
211
|
+
var itemRedirectUrl = (item === null || item === void 0 || (_item$redirectUrl2 = item.redirectUrl) === null || _item$redirectUrl2 === void 0 ? void 0 : _item$redirectUrl2.split('?')[0]) || '';
|
|
212
|
+
|
|
213
|
+
// 精确匹配:完全相等时直接返回
|
|
159
214
|
if ((item === null || item === void 0 ? void 0 : item.url) === pathName || (item === null || item === void 0 ? void 0 : item.redirectUrl) === pathName) {
|
|
160
215
|
result = item.keyIdPath;
|
|
161
|
-
|
|
216
|
+
return;
|
|
162
217
|
}
|
|
163
|
-
|
|
218
|
+
|
|
219
|
+
// 如果有子菜单,递归查找
|
|
220
|
+
var hasChildren = Array.isArray(item.children) && item.children.length;
|
|
221
|
+
if (hasChildren) {
|
|
164
222
|
menuDeep(item.children);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
223
|
+
// 如果递归后找到了精确匹配,直接返回
|
|
224
|
+
if (result) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
continue;
|
|
169
228
|
}
|
|
229
|
+
|
|
230
|
+
// 叶子节点:使用最长匹配策略选择最精确的匹配
|
|
231
|
+
bestMatch = updateBestMatch(pathName, itemUrl, itemRedirectUrl, item.keyIdPath, bestMatch);
|
|
170
232
|
}
|
|
171
233
|
};
|
|
172
234
|
menuDeep(menus);
|
|
173
|
-
|
|
235
|
+
|
|
236
|
+
// 如果没有精确匹配,使用最佳模糊匹配
|
|
237
|
+
return result || ((_bestMatch2 = bestMatch) === null || _bestMatch2 === void 0 ? void 0 : _bestMatch2.keyIdPath);
|
|
174
238
|
};
|
|
175
239
|
|
|
176
240
|
/**
|
|
@@ -50,10 +50,14 @@
|
|
|
50
50
|
white-space: normal;
|
|
51
51
|
}
|
|
52
52
|
&.@{ant-prefix}-table-row-expand-icon-cell {
|
|
53
|
+
display: flex;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
align-items: center;
|
|
53
56
|
>button.@{ant-prefix}-table-row-expand-icon{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
position: relative;
|
|
58
|
+
left: auto;
|
|
59
|
+
top: auto;
|
|
60
|
+
transform: none;
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
}
|
|
@@ -488,6 +492,7 @@
|
|
|
488
492
|
align-items: center;
|
|
489
493
|
|
|
490
494
|
.icon-tip {
|
|
495
|
+
margin-left: 8px;
|
|
491
496
|
div {
|
|
492
497
|
width: 14px;
|
|
493
498
|
height: 14px;
|
|
@@ -609,6 +614,17 @@
|
|
|
609
614
|
border: none;
|
|
610
615
|
}
|
|
611
616
|
}
|
|
617
|
+
|
|
618
|
+
// 嵌套子表格缩进样式(针对展开行中的 ProTable)
|
|
619
|
+
.@{ant-prefix}-table-tbody {
|
|
620
|
+
> tr.@{ant-prefix}-table-expanded-row {
|
|
621
|
+
> td {
|
|
622
|
+
> .pro-table {
|
|
623
|
+
margin-inline: calc(var(--ant-control-interactive-size) + 2 * var(--ant-padding) - var(--ant-table-cell-padding-inline)) calc(-1 * var(--ant-table-cell-padding-inline));
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}
|
|
612
628
|
}
|
|
613
629
|
|
|
614
630
|
.@{ant-prefix}-dropdown-placement-bottomLeft {
|
|
@@ -1,64 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* @description 水印内容
|
|
5
|
-
* @default -
|
|
6
|
-
*/
|
|
2
|
+
import type { WatermarkProps } from 'antd';
|
|
3
|
+
export interface ProWaterMarkType extends WatermarkProps {
|
|
7
4
|
children?: ReactNode;
|
|
8
|
-
|
|
9
|
-
* @description 水印文本, 为数组时表示多行水印
|
|
10
|
-
* @default -
|
|
11
|
-
*/
|
|
12
|
-
content: string | string[];
|
|
13
|
-
/**
|
|
14
|
-
* @description 水印层级
|
|
15
|
-
* @default 9999
|
|
16
|
-
*/
|
|
17
|
-
zIndex?: number;
|
|
18
|
-
/**
|
|
19
|
-
* @description 图片源,建议导出 2 倍或 3 倍图,优先使用图片渲染水印
|
|
20
|
-
* @default -
|
|
21
|
-
*/
|
|
22
|
-
image?: string;
|
|
23
|
-
/**
|
|
24
|
-
* @description 单个水印宽度
|
|
25
|
-
* @default 120
|
|
26
|
-
*/
|
|
27
|
-
width?: number;
|
|
28
|
-
/**
|
|
29
|
-
* @description 单个水印高度
|
|
30
|
-
* @default 64
|
|
31
|
-
*/
|
|
32
|
-
height?: number;
|
|
33
|
-
/**
|
|
34
|
-
* @description 旋转的角度
|
|
35
|
-
* @default -22
|
|
36
|
-
*/
|
|
37
|
-
rotate?: number;
|
|
38
|
-
/**
|
|
39
|
-
* @description 设置字体大小
|
|
40
|
-
* @default 16
|
|
41
|
-
*/
|
|
42
|
-
fontSize?: number;
|
|
43
|
-
/**
|
|
44
|
-
* @description 设置字体粗细
|
|
45
|
-
* @default normal
|
|
46
|
-
*/
|
|
47
|
-
fontWeight?: number | string;
|
|
48
|
-
/**
|
|
49
|
-
* @description 规定字体样式
|
|
50
|
-
* @default 'normal'
|
|
51
|
-
*/
|
|
52
|
-
fontStyle?: 'normal' | 'italic';
|
|
53
|
-
/**
|
|
54
|
-
* @description 设置字体颜色
|
|
55
|
-
* @default #000
|
|
56
|
-
*/
|
|
57
|
-
fontColor?: string;
|
|
58
|
-
/**
|
|
59
|
-
* @description 设置水印文字的字体
|
|
60
|
-
* @default sans-serif
|
|
61
|
-
*/
|
|
62
|
-
fontFamily?: string;
|
|
5
|
+
[key: string]: any;
|
|
63
6
|
}
|
|
64
|
-
export type ProWaterMarkProps = ProWaterMarkType;
|
package/es/locale/en_US.d.ts
CHANGED
package/es/locale/en_US.js
CHANGED
package/es/locale/zh_CN.d.ts
CHANGED