@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 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",
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/icons": "6.0.3",
56
- "@fe-free/tool": "6.0.3"
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
- /** 特殊位置的 toolbar,向上 margin,是的 search 和 toolbar 一起。仅适用于 search 很少的情况。 */
14
- specialToolbar?: boolean;
13
+ /**
14
+ * 特殊位置的 toolbar,margin 为 -48px,使得 search 和 toolbar 一起。
15
+ * empty 表示toolbar 为空的情况,margin 为 -16px。
16
+ * */
17
+ specialToolbar?: boolean | 'empty';
15
18
  }
16
19
 
17
- function useSpecialToolbar({ specialToolbar, id }: { specialToolbar?: boolean; id: string }) {
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
  )}
@@ -77,5 +77,11 @@
77
77
  pointer-events: auto;
78
78
  }
79
79
  }
80
+
81
+ &.fec-crud-of-pure-special-toolbar-empty {
82
+ .ant-pro-card:not(.ant-pro-table-search) {
83
+ margin-top: -16px;
84
+ }
85
+ }
80
86
  }
81
87
  }
@@ -15,9 +15,10 @@ const renderMap = {
15
15
  },
16
16
  };
17
17
 
18
- const renderFormItemMap = {
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, renderFormItemMap };
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.renderFormItemMap.dateRange,
29
+ formItemRender: dateRender.formItemRenderMap.dateRange,
30
30
  },
31
31
  [CustomValueTypeEnum.CustomDateAndDateRange]: {
32
32
  render: dateRender.renderMap.date,
33
- formItemRender: dateRender.renderFormItemMap.dateRange,
33
+ formItemRender: dateRender.formItemRenderMap.dateRange,
34
34
  },
35
35
  [CustomValueTypeEnum.CustomJSON]: {
36
36
  render: jsonRender.render,
37
- formItemRender: jsonRender.renderFormItem,
37
+ formItemRender: jsonRender.formItemRender,
38
38
  },
39
39
  [CustomValueTypeEnum.CustomJSONModal]: {
40
40
  render: jsonModalRender.render,
41
- formItemRender: jsonModalRender.renderFormItem,
41
+ formItemRender: jsonModalRender.formItemRender,
42
42
  },
43
43
  [CustomValueTypeEnum.CustomMarkdownModal]: {
44
44
  render: markdownModalRender.render,
45
- formItemRender: markdownModalRender.renderFormItem,
45
+ formItemRender: markdownModalRender.formItemRender,
46
46
  },
47
47
  [CustomValueTypeEnum.CustomSwitchNumber]: {
48
48
  render: switchNumberRender.render,
49
- formItemRender: switchNumberRender.renderFormItem,
49
+ formItemRender: switchNumberRender.formItemRender,
50
50
  },
51
51
  [CustomValueTypeEnum.CustomSwitchOptions]: {
52
52
  render: switchOptionsRender.render,
53
- formItemRender: switchOptionsRender.renderFormItem,
53
+ formItemRender: switchOptionsRender.formItemRender,
54
54
  },
55
55
  [CustomValueTypeEnum.CustomSerialNumber]: {
56
56
  render: () => <></>,
@@ -38,7 +38,7 @@ function render(text) {
38
38
 
39
39
  const jsonRender = {
40
40
  render,
41
- renderFormItem: () => <></>,
41
+ formItemRender: () => <></>,
42
42
  };
43
43
 
44
44
  export { jsonRender };
@@ -54,7 +54,7 @@ function Render(text, props: ProFormItemProps<JSONModalProps>) {
54
54
 
55
55
  const jsonModalRender = {
56
56
  render: Render,
57
- renderFormItem: () => <></>,
57
+ formItemRender: () => <></>,
58
58
  };
59
59
 
60
60
  export { jsonModalRender };
@@ -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 text-primary">查看</span>
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
- renderFormItem: () => <></>,
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
- renderFormItem: (_, props) => {
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
- renderFormItem: (_, props) => {
26
+ formItemRender: (_, props) => {
27
27
  return <ProFormSwitchOptions {...props} />;
28
28
  },
29
29
  };