@jswork/antd-components 1.0.206 → 1.0.208
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/main.cjs.js +1 -1
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.d.mts +11 -5
- package/dist/main.d.ts +11 -5
- package/dist/main.esm.js +1 -1
- package/dist/main.esm.js.map +1 -1
- package/dist/style.css.map +1 -1
- package/package.json +1 -1
- package/src/lib/alert.tsx +6 -0
- package/src/lib/table-links.tsx +6 -4
- package/src/lib/table.tsx +26 -21
package/dist/style.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["src/style.scss"],"names":[],"mappings":"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","file":"src/style.scss","sourcesContent":["@charset \"UTF-8\";\n.ant-upload.ant-upload-dragger,\n.ant-upload.ant-upload-drag {\n border: 5px dashed rgba(0, 0, 0, 0.16);\n border-radius: 5px;\n}\n.ant-upload.ant-upload-dragger:hover,\n.ant-upload.ant-upload-drag:hover {\n border: 5px dashed rgba(64, 169, 255, 0.8196078431);\n}\n\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content {\n display: block;\n}\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content .ant-checkbox-wrapper {\n display: flex;\n}\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content .ant-checkbox-wrapper > span:last-child {\n flex: 1;\n}\n\n.ac-input-tags {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n border: 1px solid #eee;\n outline: 1px solid transparent;\n transition: all 0.3s ease-in-out;\n padding: 4px;\n border-radius: 4px;\n gap: 3px;\n}\n.ac-input-tags[data-disabled=true] {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.ac-input-tags:not([data-disabled=true]) {\n border-color: #4096ff;\n outline-color:
|
|
1
|
+
{"version":3,"sources":["src/style.scss"],"names":[],"mappings":"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","file":"src/style.scss","sourcesContent":["@charset \"UTF-8\";\n.ant-upload.ant-upload-dragger,\n.ant-upload.ant-upload-drag {\n border: 5px dashed rgba(0, 0, 0, 0.16);\n border-radius: 5px;\n}\n.ant-upload.ant-upload-dragger:hover,\n.ant-upload.ant-upload-drag:hover {\n border: 5px dashed rgba(64, 169, 255, 0.8196078431);\n}\n\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content {\n display: block;\n}\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content .ant-checkbox-wrapper {\n display: flex;\n}\n.ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-title-content .ant-checkbox-wrapper > span:last-child {\n flex: 1;\n}\n\n.ac-input-tags {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n border: 1px solid #eee;\n outline: 1px solid transparent;\n transition: all 0.3s ease-in-out;\n padding: 4px;\n border-radius: 4px;\n gap: 3px;\n}\n.ac-input-tags[data-disabled=true] {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.ac-input-tags:not([data-disabled=true]) {\n border-color: #4096ff;\n outline-color: rgb(115, 178.0366492147, 255);\n}\n.ac-input-tags__tag {\n display: inline-flex;\n padding: 2px 4px;\n border-radius: 6px;\n}\n.ac-input-tags__input {\n appearance: none;\n border: none;\n background: none;\n outline: none;\n width: 100px;\n height: 26px;\n}\n\n.react-codeflask {\n width: 100%;\n outline: 1px solid #ccc;\n position: relative;\n --codeflask-loading-size: 40px;\n}\n.react-codeflask [hidden] {\n display: none;\n z-index: -1;\n}\n.react-codeflask__spin {\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(2px);\n position: absolute;\n z-index: 1000;\n width: 100%;\n height: 100%;\n}\n.react-codeflask__spin > img {\n left: 50%;\n top: 50%;\n position: absolute;\n transform: translate(-50%, -50%);\n width: var(--codeflask-loading-size);\n height: var(--codeflask-loading-size);\n}\n.react-codeflask[disabled] > .is-editor {\n opacity: 0.6;\n pointer-events: none;\n}\n.react-codeflask > .language-name {\n position: absolute;\n right: 40px;\n top: 0;\n z-index: 10;\n padding: 0.1rem 0.3rem 0.15rem;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n background: #627eee;\n color: #eee;\n font-family: \"JetBrains Mono\", Monaco, monospace, sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\";\n font-size: 0.7rem;\n}\n.react-codeflask .is-formatter {\n border: none;\n position: absolute;\n z-index: 10;\n right: 2px;\n top: 0;\n padding: 3px 10px;\n background: rgba(255, 255, 255, 0.6);\n box-shadow: 0 1px 6px 0 rgba(32, 33, 36, 0.28);\n transition: 0.3s;\n border-radius: 4px;\n}\n.react-codeflask .is-formatter:active {\n background: #ddd;\n}\n\n.ac-checkable-tag {\n user-select: none;\n background: #ededed;\n}\n.ac-checkable-tag[disabled] {\n pointer-events: none;\n opacity: 0.7;\n}\n.ac-checkable-tag.ant-tag-checkable-checked {\n background: #1677ff;\n}\n.ac-checkable-tag > [role=img] {\n margin-left: 2px;\n}\n\n.ac-checkable-tag-list {\n --ac-checkable-tag-list-active-bg: #1677ff;\n --ac-checkable-tag-list-inactive-bg: #ededed;\n}\n.ac-checkable-tag-list .ac-is-aside {\n border-radius: 3px;\n}\n.ac-checkable-tag-list .ac-is-item {\n padding: 1px 7px;\n background: var(--ac-checkable-tag-list-inactive-bg);\n}\n.ac-checkable-tag-list .ac-is-item.ant-tag-checkable-checked {\n background: var(--ac-checkable-tag-list-active-bg);\n}\n\n.ac-editable-tag-group {\n display: inline-block;\n}\n.ac-editable-tag-group .ant-tag {\n margin-bottom: 5px;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n}\n.ac-editable-tag-group .ant-btn {\n position: relative;\n padding-left: 15px;\n}\n.ac-editable-tag-group__input {\n flex: 1;\n}\n.ac-editable-tag-group__input input {\n border-color: transparent;\n background: none;\n text-align: center;\n}\n.ac-editable-tag-group__create {\n font-size: 12px;\n line-height: 22px;\n}\n.ac-editable-tag-group__plus {\n width: 10px;\n height: 10px;\n opacity: 0.3;\n cursor: pointer;\n position: relative;\n display: inline-block;\n}\n.ac-editable-tag-group__plus:hover {\n opacity: 1;\n}\n.ac-editable-tag-group__plus:before, .ac-editable-tag-group__plus:after {\n position: absolute;\n left: 0;\n content: \"\";\n height: 10px;\n width: 1px;\n background-color: #333;\n}\n.ac-editable-tag-group__plus:before {\n transform: rotate(90deg);\n}\n.ac-editable-tag-group__plus:after {\n transform: rotate(180deg);\n}\n.ac-editable-tag-group__close {\n position: relative;\n margin-left: 3px;\n width: 10px;\n height: 10px;\n opacity: 0.3;\n cursor: pointer;\n}\n.ac-editable-tag-group__close:hover {\n opacity: 1;\n}\n.ac-editable-tag-group__close:before, .ac-editable-tag-group__close:after {\n position: absolute;\n left: 0;\n content: \"\";\n height: 10px;\n width: 1px;\n background-color: #333;\n}\n.ac-editable-tag-group__close:before {\n transform: rotate(45deg);\n}\n.ac-editable-tag-group__close:after {\n transform: rotate(-45deg);\n}\n\n.ac-upload-picture-card {\n /**\n 定义 css 变量,可以改变 image-item 的大小\n */\n}\n.ac-upload-picture-card .ant-upload-list.ant-upload-list-picture-card .ant-upload-list-item-container,\n.ac-upload-picture-card .ant-upload.ant-upload-select {\n --ac-upload-images-size: 102px;\n border-width: 3px !important;\n width: var(--ac-upload-images-size) !important;\n height: var(--ac-upload-images-size) !important;\n}\n.ac-upload-picture-card .ant-upload-list-item-container {\n user-select: none;\n}\n.ac-upload-picture-card .ant-upload-list-item-container:hover .ant-upload-list-item {\n border-width: 2px !important;\n border-style: dashed !important;\n border-color: orange !important;\n}\n.ac-upload-picture-card__modal {\n width: 800px;\n text-align: center;\n}\n.ac-upload-picture-card__modal .is-img {\n width: 100%;\n height: 100%;\n}\n\n.ac-checkable-dropdown__btn {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n}\n.ac-checkable-dropdown__btn .is-label {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ac-upload-picture {\n --ac-upload-picture-height: 120px;\n}\n\n.ac-input-token__token {\n user-select: none;\n cursor: pointer;\n}"]}
|
package/package.json
CHANGED
package/src/lib/alert.tsx
CHANGED
|
@@ -5,6 +5,7 @@ declare global {
|
|
|
5
5
|
interface NxStatic {
|
|
6
6
|
err: (inMessage: string) => any;
|
|
7
7
|
msg: (inMessage: string) => any;
|
|
8
|
+
info: (inMessage: string) => any;
|
|
8
9
|
alert: (inMessage: string, inTitle?: String) => any;
|
|
9
10
|
confirm: (inMessage: string, inTitle?: String) => any;
|
|
10
11
|
prompt: (inMessage: string, inOptions?: InputProps) => any;
|
|
@@ -15,6 +16,10 @@ export const msg = (inMessage: string) => {
|
|
|
15
16
|
return message.success(inMessage);
|
|
16
17
|
};
|
|
17
18
|
|
|
19
|
+
export const info = (inMessage: string) => {
|
|
20
|
+
return message.info(inMessage);
|
|
21
|
+
};
|
|
22
|
+
|
|
18
23
|
export const err = (inMessage: string) => {
|
|
19
24
|
return message.error(inMessage);
|
|
20
25
|
};
|
|
@@ -59,6 +64,7 @@ export const prompt = (inMessage: string, inOptions?: InputProps) => {
|
|
|
59
64
|
};
|
|
60
65
|
|
|
61
66
|
nx.msg = msg;
|
|
67
|
+
nx.info = info;
|
|
62
68
|
nx.err = err;
|
|
63
69
|
nx.alert = alert;
|
|
64
70
|
nx.confirm = confirm;
|
package/src/lib/table-links.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: aric 1290657123@qq.com
|
|
3
3
|
* @Date: 2025-10-03 07:11:26
|
|
4
4
|
* @LastEditors: aric 1290657123@qq.com
|
|
5
|
-
* @LastEditTime: 2025-10-31
|
|
5
|
+
* @LastEditTime: 2025-10-31 15:09:46
|
|
6
6
|
*/
|
|
7
7
|
import nx from '@jswork/next';
|
|
8
8
|
import { Space } from 'antd';
|
|
@@ -32,7 +32,8 @@ export type AcTableLinksProps = {
|
|
|
32
32
|
name: string;
|
|
33
33
|
model?: any;
|
|
34
34
|
lang?: string;
|
|
35
|
-
|
|
35
|
+
extraBefore?: React.ReactNode;
|
|
36
|
+
extraAfter?: React.ReactNode;
|
|
36
37
|
as?: React.ComponentType<any>;
|
|
37
38
|
asProps?: any;
|
|
38
39
|
actions?: string[];
|
|
@@ -50,7 +51,7 @@ const defaultProps = {
|
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
export const AcTableLinks: FC<AcTableLinksProps> = (props) => {
|
|
53
|
-
const { name, as, lang, actions, model, asProps,
|
|
54
|
+
const { name, as, lang, actions, model, asProps, extraBefore, extraAfter } = { ...defaultProps, ...props };
|
|
54
55
|
const t = (key: string) => locales[lang][key];
|
|
55
56
|
const AsComponent = as || Space;
|
|
56
57
|
const handleEdit = () => nx.$event?.emit?.(`${name}:edit`, model);
|
|
@@ -69,8 +70,9 @@ export const AcTableLinks: FC<AcTableLinksProps> = (props) => {
|
|
|
69
70
|
};
|
|
70
71
|
return (
|
|
71
72
|
<AsComponent {...asProps}>
|
|
73
|
+
{extraBefore}
|
|
72
74
|
{actions.map((action) => items[action])}
|
|
73
|
-
{
|
|
75
|
+
{extraAfter}
|
|
74
76
|
</AsComponent>
|
|
75
77
|
);
|
|
76
78
|
};
|
package/src/lib/table.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @Author: aric 1290657123@qq.com
|
|
3
3
|
* @Date: 2025-10-03 07:11:26
|
|
4
|
-
* @LastEditors: aric
|
|
5
|
-
* @LastEditTime: 2025-
|
|
4
|
+
* @LastEditors: aric 1290657123@qq.com
|
|
5
|
+
* @LastEditTime: 2025-11-01 10:44:40
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
* 路由风格: /{module}/{name} eg: /admin/staff-roles
|
|
@@ -10,15 +10,16 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { EventMittNamespace } from '@jswork/event-mitt';
|
|
12
12
|
import { ReactHarmonyEvents } from '@jswork/harmony-events';
|
|
13
|
+
import nx from '@jswork/next';
|
|
14
|
+
import '@jswork/next-compact-object';
|
|
15
|
+
import '@jswork/next-create-fetcher';
|
|
13
16
|
import UrlSyncFlat from '@jswork/url-sync-flat';
|
|
14
17
|
import { Table, TableProps } from 'antd';
|
|
18
|
+
import { ColumnsType } from 'antd/es/table';
|
|
15
19
|
import cx from 'classnames';
|
|
20
|
+
import deepEqual from 'fast-deep-equal';
|
|
16
21
|
import React from 'react';
|
|
17
|
-
import nx from '@jswork/next';
|
|
18
|
-
import '@jswork/next-create-fetcher';
|
|
19
|
-
import '@jswork/next-compact-object';
|
|
20
22
|
import { tableAction } from './table-links';
|
|
21
|
-
import deepEqual from 'fast-deep-equal';
|
|
22
23
|
|
|
23
24
|
type NavigateFunction = import('react-router-dom').NavigateFunction;
|
|
24
25
|
|
|
@@ -62,7 +63,10 @@ export type AcTableProps = TableProps & {
|
|
|
62
63
|
* `paramsEdit` will merge with `paramsAdd` when redirect to edit page.
|
|
63
64
|
*/
|
|
64
65
|
paramsEdit?: Record<string, any>;
|
|
65
|
-
|
|
66
|
+
/**
|
|
67
|
+
* The extra params when reset the page.
|
|
68
|
+
*/
|
|
69
|
+
paramsReset?: Record<string, any>;
|
|
66
70
|
/**
|
|
67
71
|
* Custom get standard data.
|
|
68
72
|
* @param params { current: number; pageSize: number }
|
|
@@ -110,7 +114,7 @@ export type AcTableProps = TableProps & {
|
|
|
110
114
|
/**
|
|
111
115
|
* Column fields for table action.
|
|
112
116
|
*/
|
|
113
|
-
columnsAction?:
|
|
117
|
+
columnsAction?: ColumnsType<any>;
|
|
114
118
|
/**
|
|
115
119
|
* The table action params.
|
|
116
120
|
*/
|
|
@@ -128,7 +132,7 @@ type AcTableState = {
|
|
|
128
132
|
current: any;
|
|
129
133
|
pageSize: any;
|
|
130
134
|
total: any;
|
|
131
|
-
}
|
|
135
|
+
};
|
|
132
136
|
|
|
133
137
|
export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
134
138
|
static displayName = CLASS_NAME;
|
|
@@ -228,11 +232,13 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
228
232
|
// 优先级:overrideParams > propsParams > currentUrlParams
|
|
229
233
|
// 注意:这里不包含 page 和 size,它们将作为独立参数处理
|
|
230
234
|
const filterParams = nx.compactObject(
|
|
231
|
-
overrideParams === null
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
overrideParams === null
|
|
236
|
+
? propsParams
|
|
237
|
+
: {
|
|
238
|
+
...currentUrlParams, // 从 URL 读取的现有参数
|
|
239
|
+
...propsParams, // 组件 props 中定义的固定参数
|
|
240
|
+
...overrideParams, // 动态传入的覆盖参数(例如搜索关键字)
|
|
241
|
+
}
|
|
236
242
|
);
|
|
237
243
|
|
|
238
244
|
// 3. 确保 page 和 size 是明确的,并从 filterParams 中移除它们,
|
|
@@ -241,7 +247,6 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
241
247
|
const finalSize = size;
|
|
242
248
|
const { page: _, size: __, ...fetcherFilterParams } = filterParams as Record<string, any>;
|
|
243
249
|
|
|
244
|
-
|
|
245
250
|
// 4. 更新组件状态:加载中、当前页和每页大小
|
|
246
251
|
this.setState({
|
|
247
252
|
isLoading: true,
|
|
@@ -252,8 +257,8 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
252
257
|
// 5. 同步 URL 参数:合并所有过滤参数,并明确设置 page 和 size
|
|
253
258
|
this.sync.schedule({
|
|
254
259
|
...filterParams, // 所有过滤参数
|
|
255
|
-
page: finalPage,
|
|
256
|
-
size: finalSize,
|
|
260
|
+
page: finalPage, // 明确的当前页
|
|
261
|
+
size: finalSize, // 明确的每页大小
|
|
257
262
|
});
|
|
258
263
|
|
|
259
264
|
try {
|
|
@@ -306,7 +311,7 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
306
311
|
* Reset to default state, and fetch data.
|
|
307
312
|
*/
|
|
308
313
|
public reset = async () => {
|
|
309
|
-
const { defaultCurrent, defaultPageSize } = this.props;
|
|
314
|
+
const { defaultCurrent, defaultPageSize, paramsReset } = this.props;
|
|
310
315
|
this.setState(
|
|
311
316
|
{
|
|
312
317
|
current: defaultCurrent,
|
|
@@ -315,8 +320,8 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
315
320
|
dataSource: [],
|
|
316
321
|
},
|
|
317
322
|
() => {
|
|
318
|
-
void this.fetchData(defaultCurrent!, defaultPageSize!,
|
|
319
|
-
}
|
|
323
|
+
void this.fetchData(defaultCurrent!, defaultPageSize!, paramsReset);
|
|
324
|
+
}
|
|
320
325
|
);
|
|
321
326
|
};
|
|
322
327
|
|
|
@@ -391,6 +396,7 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
391
396
|
params,
|
|
392
397
|
paramsAdd,
|
|
393
398
|
paramsEdit,
|
|
399
|
+
paramsReset,
|
|
394
400
|
fetcher,
|
|
395
401
|
dataPath,
|
|
396
402
|
totalPath,
|
|
@@ -426,4 +432,3 @@ export class AcTable extends React.Component<AcTableProps, AcTableState> {
|
|
|
426
432
|
);
|
|
427
433
|
}
|
|
428
434
|
}
|
|
429
|
-
|