@fe-free/core 6.0.3 → 6.0.5
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/CHANGELOG.md +16 -0
- package/package.json +3 -3
- package/src/crud_of_pure/crud_of_pure.stories.tsx +55 -0
- package/src/crud_of_pure/index.tsx +13 -3
- package/src/crud_of_pure/style.scss +6 -0
- package/src/value_type_map/date.tsx +3 -2
- package/src/value_type_map/index.tsx +7 -7
- package/src/value_type_map/json.tsx +1 -1
- package/src/value_type_map/json_modal.tsx +1 -1
- package/src/value_type_map/markdown_modal.tsx +2 -2
- package/src/value_type_map/switch.tsx +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @fe-free/core
|
|
2
2
|
|
|
3
|
+
## 6.0.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- feat: crud ui
|
|
8
|
+
- @fe-free/icons@6.0.5
|
|
9
|
+
- @fe-free/tool@6.0.5
|
|
10
|
+
|
|
11
|
+
## 6.0.4
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- feat: some
|
|
16
|
+
- @fe-free/icons@6.0.4
|
|
17
|
+
- @fe-free/tool@6.0.4
|
|
18
|
+
|
|
3
19
|
## 6.0.3
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fe-free/core",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"author": "",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"i18next-icu": "^2.4.1",
|
|
53
53
|
"react": "^19.2.0",
|
|
54
54
|
"react-i18next": "^16.4.0",
|
|
55
|
-
"@fe-free/
|
|
56
|
-
"@fe-free/
|
|
55
|
+
"@fe-free/tool": "6.0.5",
|
|
56
|
+
"@fe-free/icons": "6.0.5"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"i18n-extract": "rm -rf ./src/locales/zh-CN && npx i18next-cli extract"
|
|
@@ -262,6 +262,61 @@ export const SpecialToolbar: Story = {
|
|
|
262
262
|
},
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
+
export const SpecialToolbarEmpty: Story = {
|
|
266
|
+
render: () => {
|
|
267
|
+
const columns = [
|
|
268
|
+
{
|
|
269
|
+
title: 'id',
|
|
270
|
+
dataIndex: 'id',
|
|
271
|
+
search: true,
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
title: '名字(省略)',
|
|
275
|
+
dataIndex: 'name',
|
|
276
|
+
search: true,
|
|
277
|
+
ellipsis: true,
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
title: 'city',
|
|
281
|
+
dataIndex: 'city',
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
title: 'area',
|
|
285
|
+
dataIndex: 'area',
|
|
286
|
+
},
|
|
287
|
+
];
|
|
288
|
+
|
|
289
|
+
return (
|
|
290
|
+
<CRUDOfPure
|
|
291
|
+
specialToolbar="empty"
|
|
292
|
+
actions={['delete']}
|
|
293
|
+
tableProps={{
|
|
294
|
+
rowKey: 'id',
|
|
295
|
+
columns,
|
|
296
|
+
request: fakeRequest,
|
|
297
|
+
pagination: false,
|
|
298
|
+
}}
|
|
299
|
+
requestDeleteByRecord={fakeDeleteByRecord}
|
|
300
|
+
deleteProps={{
|
|
301
|
+
nameIndex: 'id',
|
|
302
|
+
}}
|
|
303
|
+
detailForm={() => (
|
|
304
|
+
<>
|
|
305
|
+
<ProFormText
|
|
306
|
+
name="name"
|
|
307
|
+
label="名字"
|
|
308
|
+
required
|
|
309
|
+
rules={[{ required: true }]}
|
|
310
|
+
extra="extra extra extra extra"
|
|
311
|
+
/>
|
|
312
|
+
</>
|
|
313
|
+
)}
|
|
314
|
+
requestCreateByValues={fakeCreate}
|
|
315
|
+
/>
|
|
316
|
+
);
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
|
|
265
320
|
export const SpecialToolbarWithToolBarRender: Story = {
|
|
266
321
|
render: () => {
|
|
267
322
|
const columns = [
|
|
@@ -10,11 +10,20 @@ interface CRUDOfPureProps<
|
|
|
10
10
|
DataSource extends Record<string, any> = any,
|
|
11
11
|
Key extends string | number = string,
|
|
12
12
|
> extends CRUDProps<DataSource, Key> {
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* 特殊位置的 toolbar,margin 为 -48px,使得 search 和 toolbar 一起。
|
|
15
|
+
* empty 表示toolbar 为空的情况,margin 为 -16px。
|
|
16
|
+
* */
|
|
17
|
+
specialToolbar?: boolean | 'empty';
|
|
15
18
|
}
|
|
16
19
|
|
|
17
|
-
function useSpecialToolbar({
|
|
20
|
+
function useSpecialToolbar({
|
|
21
|
+
specialToolbar,
|
|
22
|
+
id,
|
|
23
|
+
}: {
|
|
24
|
+
specialToolbar?: boolean | 'empty';
|
|
25
|
+
id: string;
|
|
26
|
+
}) {
|
|
18
27
|
useEffect(() => {
|
|
19
28
|
if (!specialToolbar) return;
|
|
20
29
|
|
|
@@ -107,6 +116,7 @@ function CRUDOfPure<
|
|
|
107
116
|
{
|
|
108
117
|
'fec-crud-of-pure-no-search': noSearch,
|
|
109
118
|
'fec-crud-of-pure-special-toolbar': props.specialToolbar,
|
|
119
|
+
'fec-crud-of-pure-special-toolbar-empty': props.specialToolbar === 'empty',
|
|
110
120
|
},
|
|
111
121
|
props.className,
|
|
112
122
|
)}
|
|
@@ -15,9 +15,10 @@ const renderMap = {
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
const
|
|
18
|
+
const formItemRenderMap = {
|
|
19
19
|
dateRange: (_, props) => {
|
|
20
20
|
// @ts-ignore onBlur 类型错误
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
22
|
const { onBlur, fieldProps, ...rest } = props;
|
|
22
23
|
|
|
23
24
|
return (
|
|
@@ -38,6 +39,6 @@ const renderFormItemMap = {
|
|
|
38
39
|
},
|
|
39
40
|
};
|
|
40
41
|
|
|
41
|
-
const dateRender = { renderMap,
|
|
42
|
+
const dateRender = { renderMap, formItemRenderMap };
|
|
42
43
|
|
|
43
44
|
export { dateRender };
|
|
@@ -26,31 +26,31 @@ enum CustomValueTypeEnum {
|
|
|
26
26
|
const customValueTypeMap: Record<string, ProRenderFieldPropsType> = {
|
|
27
27
|
[CustomValueTypeEnum.CustomDateTimeAndDateRange]: {
|
|
28
28
|
render: dateRender.renderMap.dateTime,
|
|
29
|
-
formItemRender: dateRender.
|
|
29
|
+
formItemRender: dateRender.formItemRenderMap.dateRange,
|
|
30
30
|
},
|
|
31
31
|
[CustomValueTypeEnum.CustomDateAndDateRange]: {
|
|
32
32
|
render: dateRender.renderMap.date,
|
|
33
|
-
formItemRender: dateRender.
|
|
33
|
+
formItemRender: dateRender.formItemRenderMap.dateRange,
|
|
34
34
|
},
|
|
35
35
|
[CustomValueTypeEnum.CustomJSON]: {
|
|
36
36
|
render: jsonRender.render,
|
|
37
|
-
formItemRender: jsonRender.
|
|
37
|
+
formItemRender: jsonRender.formItemRender,
|
|
38
38
|
},
|
|
39
39
|
[CustomValueTypeEnum.CustomJSONModal]: {
|
|
40
40
|
render: jsonModalRender.render,
|
|
41
|
-
formItemRender: jsonModalRender.
|
|
41
|
+
formItemRender: jsonModalRender.formItemRender,
|
|
42
42
|
},
|
|
43
43
|
[CustomValueTypeEnum.CustomMarkdownModal]: {
|
|
44
44
|
render: markdownModalRender.render,
|
|
45
|
-
formItemRender: markdownModalRender.
|
|
45
|
+
formItemRender: markdownModalRender.formItemRender,
|
|
46
46
|
},
|
|
47
47
|
[CustomValueTypeEnum.CustomSwitchNumber]: {
|
|
48
48
|
render: switchNumberRender.render,
|
|
49
|
-
formItemRender: switchNumberRender.
|
|
49
|
+
formItemRender: switchNumberRender.formItemRender,
|
|
50
50
|
},
|
|
51
51
|
[CustomValueTypeEnum.CustomSwitchOptions]: {
|
|
52
52
|
render: switchOptionsRender.render,
|
|
53
|
-
formItemRender: switchOptionsRender.
|
|
53
|
+
formItemRender: switchOptionsRender.formItemRender,
|
|
54
54
|
},
|
|
55
55
|
[CustomValueTypeEnum.CustomSerialNumber]: {
|
|
56
56
|
render: () => <></>,
|
|
@@ -13,7 +13,7 @@ function Render(text) {
|
|
|
13
13
|
<>
|
|
14
14
|
<div onClick={() => setShow(true)} className="flex cursor-pointer items-center">
|
|
15
15
|
<div className="flex-1 truncate">{text}</div>
|
|
16
|
-
<span className="min-w-0
|
|
16
|
+
<span className="text-primary min-w-0">查看</span>
|
|
17
17
|
</div>
|
|
18
18
|
{show && (
|
|
19
19
|
<Modal
|
|
@@ -39,7 +39,7 @@ function Render(text) {
|
|
|
39
39
|
|
|
40
40
|
const markdownModalRender = {
|
|
41
41
|
render: Render,
|
|
42
|
-
|
|
42
|
+
formItemRender: () => <></>,
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
export { markdownModalRender };
|
|
@@ -11,7 +11,7 @@ const switchNumberRender = {
|
|
|
11
11
|
|
|
12
12
|
return <SwitchNumber value={text} />;
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
formItemRender: (_, props) => {
|
|
15
15
|
return <ProFormSwitchNumber {...props} />;
|
|
16
16
|
},
|
|
17
17
|
};
|
|
@@ -23,7 +23,7 @@ const switchOptionsRender = {
|
|
|
23
23
|
|
|
24
24
|
return <SwitchOptions value={text} {...props.fieldProps} />;
|
|
25
25
|
},
|
|
26
|
-
|
|
26
|
+
formItemRender: (_, props) => {
|
|
27
27
|
return <ProFormSwitchOptions {...props} />;
|
|
28
28
|
},
|
|
29
29
|
};
|