@jiangood/open-admin 2.5.6 → 2.5.8

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.
@@ -125,7 +125,7 @@ export default (api) => {
125
125
  api.logger.info('formRegistryPath', importFrom);
126
126
  api.addEntryImports(() => ({
127
127
  source: importFrom,
128
- specifier: '{FormRegistryUtils}'
128
+ specifier: '{FormRegistry}'
129
129
  }));
130
130
 
131
131
  Utils.findFilesSync(api.paths.absSrcPath, /forms\/.*\.jsx$/).forEach(file => {
@@ -136,7 +136,7 @@ export default (api) => {
136
136
  specifier: name
137
137
  }));
138
138
 
139
- api.addEntryCodeAhead(() => `FormRegistryUtils.register("${name}", ${name});`);
139
+ api.addEntryCodeAhead(() => `FormRegistry.register("${name}", ${name});`);
140
140
  api.logger.info('新版本 formRegistry.register: ', name, file);
141
141
  });
142
142
  } catch (error) {
package/package.json CHANGED
@@ -36,5 +36,5 @@
36
36
  "dev": "umi dev",
37
37
  "build": "umi build"
38
38
  },
39
- "version": "2.5.6"
39
+ "version": "2.5.8"
40
40
  }
@@ -38,7 +38,7 @@
38
38
  "dev": "umi dev",
39
39
  "build": "umi build"
40
40
  },
41
- "version": "2.5.6"
41
+ "version": "2.5.8"
42
42
  },
43
43
  "pkgPath": "/home/runner/work/open-admin/open-admin/web/package.json",
44
44
  "plugins": {
@@ -115,7 +115,7 @@
115
115
  0
116
116
  ]
117
117
  },
118
- "register": 0
118
+ "register": 1
119
119
  },
120
120
  "enableBy": "register"
121
121
  },
@@ -142,10 +142,10 @@
142
142
  "time": {
143
143
  "hooks": {
144
144
  "modifyAppData": [
145
- 67
145
+ 72
146
146
  ]
147
147
  },
148
- "register": 22
148
+ "register": 20
149
149
  },
150
150
  "enableBy": "register"
151
151
  },
@@ -158,7 +158,7 @@
158
158
  "config": {},
159
159
  "time": {
160
160
  "hooks": {},
161
- "register": 0
161
+ "register": 1
162
162
  },
163
163
  "enableBy": "register"
164
164
  },
@@ -175,7 +175,7 @@
175
175
  0
176
176
  ],
177
177
  "onCheck": [
178
- 1
178
+ 0
179
179
  ]
180
180
  },
181
181
  "register": 1
@@ -1077,7 +1077,7 @@
1077
1077
  "config": {},
1078
1078
  "time": {
1079
1079
  "hooks": {},
1080
- "register": 1
1080
+ "register": 0
1081
1081
  },
1082
1082
  "enableBy": "config"
1083
1083
  },
@@ -1091,10 +1091,10 @@
1091
1091
  "time": {
1092
1092
  "hooks": {
1093
1093
  "onStart": [
1094
- 0
1094
+ 1
1095
1095
  ]
1096
1096
  },
1097
- "register": 0
1097
+ "register": 1
1098
1098
  },
1099
1099
  "enableBy": "register"
1100
1100
  },
@@ -1120,7 +1120,7 @@
1120
1120
  "config": {},
1121
1121
  "time": {
1122
1122
  "hooks": {},
1123
- "register": 94
1123
+ "register": 103
1124
1124
  },
1125
1125
  "enableBy": "register"
1126
1126
  },
@@ -1133,7 +1133,7 @@
1133
1133
  "config": {},
1134
1134
  "time": {
1135
1135
  "hooks": {},
1136
- "register": 27
1136
+ "register": 30
1137
1137
  },
1138
1138
  "enableBy": "config"
1139
1139
  },
@@ -1146,7 +1146,7 @@
1146
1146
  "config": {},
1147
1147
  "time": {
1148
1148
  "hooks": {},
1149
- "register": 9
1149
+ "register": 10
1150
1150
  },
1151
1151
  "enableBy": "config"
1152
1152
  },
@@ -1202,7 +1202,7 @@
1202
1202
  "config": {},
1203
1203
  "time": {
1204
1204
  "hooks": {},
1205
- "register": 31
1205
+ "register": 39
1206
1206
  }
1207
1207
  },
1208
1208
  "./node_modules/@umijs/preset-umi/dist/features/mpa/mpa": {
@@ -1239,7 +1239,7 @@
1239
1239
  "config": {},
1240
1240
  "time": {
1241
1241
  "hooks": {},
1242
- "register": 1
1242
+ "register": 0
1243
1243
  },
1244
1244
  "enableBy": "register"
1245
1245
  },
@@ -1252,7 +1252,7 @@
1252
1252
  "config": {},
1253
1253
  "time": {
1254
1254
  "hooks": {},
1255
- "register": 0
1255
+ "register": 1
1256
1256
  },
1257
1257
  "enableBy": "config"
1258
1258
  },
@@ -1269,7 +1269,7 @@
1269
1269
  0
1270
1270
  ]
1271
1271
  },
1272
- "register": 2
1272
+ "register": 1
1273
1273
  }
1274
1274
  },
1275
1275
  "./node_modules/@umijs/preset-umi/dist/features/polyfill/publicPathPolyfill": {
@@ -1281,7 +1281,7 @@
1281
1281
  "config": {},
1282
1282
  "time": {
1283
1283
  "hooks": {},
1284
- "register": 0
1284
+ "register": 1
1285
1285
  },
1286
1286
  "enableBy": "register"
1287
1287
  },
@@ -1384,7 +1384,7 @@
1384
1384
  "config": {},
1385
1385
  "time": {
1386
1386
  "hooks": {},
1387
- "register": 2
1387
+ "register": 1
1388
1388
  },
1389
1389
  "enableBy": "config"
1390
1390
  },
@@ -1410,7 +1410,7 @@
1410
1410
  "config": {},
1411
1411
  "time": {
1412
1412
  "hooks": {},
1413
- "register": 3
1413
+ "register": 4
1414
1414
  },
1415
1415
  "enableBy": "register"
1416
1416
  },
@@ -1423,7 +1423,7 @@
1423
1423
  "config": {},
1424
1424
  "time": {
1425
1425
  "hooks": {},
1426
- "register": 3
1426
+ "register": 4
1427
1427
  },
1428
1428
  "enableBy": "config"
1429
1429
  },
@@ -1449,7 +1449,7 @@
1449
1449
  "config": {},
1450
1450
  "time": {
1451
1451
  "hooks": {},
1452
- "register": 3
1452
+ "register": 4
1453
1453
  }
1454
1454
  },
1455
1455
  "./node_modules/@umijs/preset-umi/dist/features/monorepo/redirect": {
@@ -1461,7 +1461,7 @@
1461
1461
  "config": {},
1462
1462
  "time": {
1463
1463
  "hooks": {},
1464
- "register": 22
1464
+ "register": 26
1465
1465
  },
1466
1466
  "enableBy": "config"
1467
1467
  },
@@ -1553,7 +1553,7 @@
1553
1553
  "config": {},
1554
1554
  "time": {
1555
1555
  "hooks": {},
1556
- "register": 2
1556
+ "register": 3
1557
1557
  }
1558
1558
  },
1559
1559
  "./node_modules/@umijs/preset-umi/dist/features/mako/mako": {
@@ -1565,7 +1565,7 @@
1565
1565
  "config": {},
1566
1566
  "time": {
1567
1567
  "hooks": {},
1568
- "register": 1
1568
+ "register": 0
1569
1569
  },
1570
1570
  "enableBy": "config"
1571
1571
  },
@@ -1590,7 +1590,7 @@
1590
1590
  "config": {},
1591
1591
  "time": {
1592
1592
  "hooks": {},
1593
- "register": 3
1593
+ "register": 2
1594
1594
  }
1595
1595
  },
1596
1596
  "./node_modules/@umijs/preset-umi/dist/features/routePreloadOnLoad/routePreloadOnLoad": {
@@ -1602,7 +1602,7 @@
1602
1602
  "config": {},
1603
1603
  "time": {
1604
1604
  "hooks": {},
1605
- "register": 27
1605
+ "register": 32
1606
1606
  }
1607
1607
  },
1608
1608
  "./node_modules/@umijs/preset-umi/dist/features/forget/forget": {
@@ -1627,7 +1627,7 @@
1627
1627
  "config": {},
1628
1628
  "time": {
1629
1629
  "hooks": {},
1630
- "register": 1
1630
+ "register": 2
1631
1631
  },
1632
1632
  "enableBy": "register"
1633
1633
  },
@@ -1653,7 +1653,7 @@
1653
1653
  "config": {},
1654
1654
  "time": {
1655
1655
  "hooks": {},
1656
- "register": 41
1656
+ "register": 46
1657
1657
  },
1658
1658
  "enableBy": "register"
1659
1659
  },
@@ -1666,7 +1666,7 @@
1666
1666
  "config": {},
1667
1667
  "time": {
1668
1668
  "hooks": {},
1669
- "register": 17
1669
+ "register": 16
1670
1670
  }
1671
1671
  },
1672
1672
  "./node_modules/@umijs/preset-umi/dist/commands/help": {
@@ -1678,7 +1678,7 @@
1678
1678
  "config": {},
1679
1679
  "time": {
1680
1680
  "hooks": {},
1681
- "register": 0
1681
+ "register": 1
1682
1682
  },
1683
1683
  "enableBy": "register"
1684
1684
  },
@@ -1691,7 +1691,7 @@
1691
1691
  "config": {},
1692
1692
  "time": {
1693
1693
  "hooks": {},
1694
- "register": 1
1694
+ "register": 0
1695
1695
  },
1696
1696
  "enableBy": "register"
1697
1697
  },
@@ -1769,7 +1769,7 @@
1769
1769
  "config": {},
1770
1770
  "time": {
1771
1771
  "hooks": {},
1772
- "register": 0
1772
+ "register": 1
1773
1773
  },
1774
1774
  "enableBy": "register"
1775
1775
  },
@@ -1782,7 +1782,7 @@
1782
1782
  "config": {},
1783
1783
  "time": {
1784
1784
  "hooks": {},
1785
- "register": 1
1785
+ "register": 0
1786
1786
  },
1787
1787
  "enableBy": "register"
1788
1788
  },
@@ -1808,7 +1808,7 @@
1808
1808
  "config": {},
1809
1809
  "time": {
1810
1810
  "hooks": {},
1811
- "register": 1
1811
+ "register": 0
1812
1812
  },
1813
1813
  "enableBy": "register"
1814
1814
  },
@@ -1860,7 +1860,7 @@
1860
1860
  "config": {},
1861
1861
  "time": {
1862
1862
  "hooks": {},
1863
- "register": 0
1863
+ "register": 1
1864
1864
  },
1865
1865
  "enableBy": "register"
1866
1866
  },
@@ -1873,7 +1873,7 @@
1873
1873
  "config": {},
1874
1874
  "time": {
1875
1875
  "hooks": {},
1876
- "register": 1
1876
+ "register": 0
1877
1877
  },
1878
1878
  "enableBy": "register"
1879
1879
  },
@@ -1938,7 +1938,7 @@
1938
1938
  "config": {},
1939
1939
  "time": {
1940
1940
  "hooks": {},
1941
- "register": 2
1941
+ "register": 1
1942
1942
  },
1943
1943
  "enableBy": "register"
1944
1944
  },
@@ -1951,7 +1951,7 @@
1951
1951
  "config": {},
1952
1952
  "time": {
1953
1953
  "hooks": {},
1954
- "register": 0
1954
+ "register": 1
1955
1955
  },
1956
1956
  "enableBy": "register"
1957
1957
  },
@@ -1968,7 +1968,7 @@
1968
1968
  0
1969
1969
  ]
1970
1970
  },
1971
- "register": 6
1971
+ "register": 5
1972
1972
  },
1973
1973
  "enableBy": "register"
1974
1974
  }
@@ -2165,7 +2165,7 @@
2165
2165
  "parentId": "@@/global-layout",
2166
2166
  "file": "about.jsx",
2167
2167
  "absPath": "/about",
2168
- "__content": "import React from \"react\";\nimport {HttpUtils, Page} from \"../framework\";\n\nexport default class extends React.Component {\n\n state = {\n buildInfo: null,\n }\n\n componentDidMount() {\n HttpUtils.get('/admin/lib-info').then(data => {\n this.setState({buildInfo: data})\n }).catch(e => {\n console.error('[About] 加载版本信息失败:', e);\n })\n }\n\n render() {\n const {buildInfo} = this.state;\n\n return (\n <Page title=\"关于\" description=\"了解系统版本与相关信息\">\n <h1>关于</h1>\n {buildInfo && (\n <div style={{marginTop: '3em', color: 'rgba(0,0,0,0.45)', fontSize: 12}}>\n 依赖库版本 v{buildInfo.version} / {buildInfo.buildTime}\n </div>\n )}\n </Page>\n );\n }\n}\n",
2168
+ "__content": "import React from \"react\";\nimport {Page} from \"../framework\";\n\nexport default class extends React.Component {\n\n render() {\n return <Page title=\"关于\" description=\"了解系统版本与相关信息\">\n <h1>关于</h1>\n </Page>\n }\n}\n",
2169
2169
  "__isJSFile": true,
2170
2170
  "__absFile": "/home/runner/work/open-admin/open-admin/web/src/pages/about.jsx"
2171
2171
  },
@@ -9,7 +9,7 @@ import { createPluginManager } from './core/plugin';
9
9
  import { createHistory } from './core/history';
10
10
  import Loading from '/home/runner/work/open-admin/open-admin/web/src/loading.jsx';
11
11
  import { ApplyPluginsType } from 'umi';
12
- import {FormRegistryUtils} from '/home/runner/work/open-admin/open-admin/web/src/framework';
12
+ import {FormRegistry} from '/home/runner/work/open-admin/open-admin/web/src/framework';
13
13
 
14
14
  const publicPath = "./";
15
15
  const runtimePublicPath = false;
@@ -21,17 +21,25 @@ export const ContextMenu: React.FC<ContextMenuProps> = ({ x, y, items, onClick,
21
21
  const ref = useRef<HTMLDivElement>(null);
22
22
 
23
23
  useEffect(() => {
24
- const handler = (e: MouseEvent) => {
24
+ const handleMouseDown = (e: MouseEvent) => {
25
25
  if (ref.current && !ref.current.contains(e.target as Node)) {
26
26
  onClose();
27
27
  }
28
28
  };
29
+ const handleScroll = () => onClose();
30
+ const handleKeyDown = (e: KeyboardEvent) => {
31
+ if (e.key === 'Escape') onClose();
32
+ };
29
33
  const timer = setTimeout(() => {
30
- document.addEventListener('mousedown', handler);
34
+ document.addEventListener('mousedown', handleMouseDown);
35
+ document.addEventListener('scroll', handleScroll, true);
36
+ document.addEventListener('keydown', handleKeyDown);
31
37
  }, 0);
32
38
  return () => {
33
39
  clearTimeout(timer);
34
- document.removeEventListener('mousedown', handler);
40
+ document.removeEventListener('mousedown', handleMouseDown);
41
+ document.removeEventListener('scroll', handleScroll, true);
42
+ document.removeEventListener('keydown', handleKeyDown);
35
43
  };
36
44
  }, [onClose]);
37
45
 
@@ -25,10 +25,9 @@ export class FieldBoolean extends React.Component {
25
25
 
26
26
  switch (type) {
27
27
  case 'radio':
28
- return <Radio.Group value={v} onChange={onChange}>
28
+ return <Radio.Group value={v} onChange={e => onChange && onChange(e.target.value)}>
29
29
  <Radio value={true}>是</Radio>
30
30
  <Radio value={false}>否</Radio>
31
- <Radio value={undefined}>不确定</Radio>
32
31
  </Radio.Group>;
33
32
  case 'checkbox':
34
33
  return <Checkbox
@@ -43,7 +42,7 @@ export class FieldBoolean extends React.Component {
43
42
  {value: false, label: '否'},
44
43
  ]}
45
44
  value={v}
46
- onChange={onChange}
45
+ onChange={value => onChange && onChange(value)}
47
46
  style={{width: '100%'}}
48
47
  allowClear={true}
49
48
  placeholder={'请选择'}
@@ -51,7 +50,7 @@ export class FieldBoolean extends React.Component {
51
50
  case 'switch':
52
51
  return <Switch
53
52
  checked={v}
54
- onChange={onChange}
53
+ onChange={checked => onChange && onChange(checked)}
55
54
  />;
56
55
  default:
57
56
  return null;
@@ -77,27 +77,6 @@ export class FieldDate extends React.Component {
77
77
 
78
78
  }
79
79
 
80
- static getDefaultValue(type) {
81
- const year = dayjs().format("YYYY");
82
- const month = dayjs().format("YYYY-MM");
83
- const quarter = dayjs().format("YYYY-QQ");
84
-
85
- switch (type) {
86
- case 'YYYY':
87
- case 'YEAR':
88
- return year;
89
- case 'YYYY-MM':
90
- case 'YEAR_MONTH':
91
- return month;
92
- case 'YYYY-QQ':
93
- case 'YEAR_QUARTER':
94
- return quarter;
95
- default:
96
- return null;
97
- }
98
-
99
- }
100
-
101
80
  strToDate(value, fmt) {
102
81
  if (value != null && value !== '') {
103
82
  const type = typeof value;
@@ -15,7 +15,7 @@ export class FieldEditor extends React.Component {
15
15
 
16
16
  return (
17
17
  <TinyMceEditor
18
- initialValue={value}
18
+ value={value}
19
19
  tinymceScriptSrc={jsUrl}
20
20
  init={{
21
21
  min_height: 300,
@@ -40,9 +40,9 @@ export class FieldEditor extends React.Component {
40
40
  });
41
41
  },
42
42
  }}
43
- onChange={e => {
43
+ onEditorChange={content => {
44
44
  if (onChange) {
45
- onChange(e.target.getContent());
45
+ onChange(content);
46
46
  }
47
47
  }}
48
48
  />
@@ -56,7 +56,7 @@ export class FieldTable extends React.Component {
56
56
  };
57
57
 
58
58
  onCellChange = (index, dataIndex, e) => {
59
- let {dataSource} = this.state;
59
+ const {dataSource} = this.state;
60
60
  const row = dataSource[index];
61
61
 
62
62
  let v = e;
@@ -64,10 +64,9 @@ export class FieldTable extends React.Component {
64
64
  v = e.target.value;
65
65
  }
66
66
 
67
- row[dataIndex] = v;
68
-
69
- dataSource = [...dataSource];
70
- this.setState({dataSource}, this.notifyParent);
67
+ const next = [...dataSource];
68
+ next[index] = {...row, [dataIndex]: v};
69
+ this.setState({dataSource: next}, this.notifyParent);
71
70
  };
72
71
 
73
72
  add = () => {
@@ -28,6 +28,13 @@ export class FieldUploadFile extends React.Component {
28
28
  this.state.fileList = this.convertInputToComponentValue(this.state.value);
29
29
  }
30
30
 
31
+ componentDidUpdate(prevProps) {
32
+ const next = {};
33
+ if (this.props.maxCount !== prevProps.maxCount) next.maxCount = this.props.maxCount;
34
+ if (this.props.cropImage !== prevProps.cropImage) next.cropImage = this.props.cropImage;
35
+ if (Object.keys(next).length > 0) this.setState(next);
36
+ }
37
+
31
38
  convertInputToComponentValue(value) {
32
39
  const list = [];
33
40
  if (value && value.length > 0) {
@@ -20,11 +20,12 @@ export class TreeUtils {
20
20
  return undefined;
21
21
  }
22
22
 
23
- static _getChild(treeNode, buffer) {
23
+ /** @private */
24
+ static getChildRecursive(treeNode, buffer) {
24
25
  if (treeNode.children != null && treeNode.children.length > 0) {
25
26
  treeNode.children.forEach((c) => {
26
27
  buffer.push(c);
27
- TreeUtils._getChild(c, buffer);
28
+ TreeUtils.getChildRecursive(c, buffer);
28
29
  });
29
30
  }
30
31
  return buffer;
@@ -35,7 +36,7 @@ export class TreeUtils {
35
36
  if (treeNodeList != null) {
36
37
  treeNodeList.forEach((t) => {
37
38
  buffer.push(t);
38
- TreeUtils._getChild(t, buffer);
39
+ TreeUtils.getChildRecursive(t, buffer);
39
40
  });
40
41
  }
41
42
  return buffer;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import {Carousel, Empty} from 'antd';
3
+ import {UrlUtils} from '../../utils';
3
4
 
4
5
 
5
6
  export class ViewFile extends React.Component {
@@ -14,7 +15,7 @@ export class ViewFile extends React.Component {
14
15
 
15
16
  const arr = fileId.split(',');
16
17
 
17
- const urlList = arr.map(id => 'admin/sysFile/preview/' + id);
18
+ const urlList = arr.map(id => UrlUtils.contextPath('/admin/sysFile/preview/' + id));
18
19
  const height = this.props.height;
19
20
 
20
21
  if(urlList.length === 1){
@@ -1,10 +1,8 @@
1
1
  import {Avatar, Dropdown} from "antd";
2
2
  import React from "react";
3
3
  import {history} from "umi";
4
- import {DeviceUtils, HttpUtils, MessageUtils, PageUtils, GlobalData} from "../../framework";
4
+ import {DeviceUtils, HttpUtils, MessageUtils, PageUtils, GlobalData} from "../../framework";
5
5
 
6
-
7
- const ID = 'header-right';
8
6
  export class HeaderRight extends React.Component {
9
7
 
10
8
  state = {
@@ -12,7 +10,6 @@ export class HeaderRight extends React.Component {
12
10
  };
13
11
 
14
12
  componentDidMount() {
15
- document.dispatchEvent(new CustomEvent('componentDidMount', {detail: ID}))
16
13
  if (DeviceUtils.isMobileDevice()) {
17
14
  this.setState({isMobileDevice: true})
18
15
  }
@@ -61,7 +61,8 @@ function isPublicPage(pathname, search) {
61
61
  }
62
62
 
63
63
  export function Layouts() {
64
- const {pathname, search} = useLocation();
64
+ const location = useLocation();
65
+ const {pathname, search} = location;
65
66
  const [siteInfoLoaded, setSiteInfoLoaded] = useState(false);
66
67
  const [loginChecked, setLoginChecked] = useState(false);
67
68
 
@@ -96,7 +97,7 @@ export function Layouts() {
96
97
  console.error('[Layout] 初始化应用失败');
97
98
  PageUtils.redirectToLogin();
98
99
  });
99
- }, [pathname]);
100
+ }, [location]);
100
101
 
101
102
  if (isPublic) return <ErrorBoundary minimal><AppWrapper><Outlet/></AppWrapper></ErrorBoundary>;
102
103
 
@@ -1,32 +1,11 @@
1
1
  import React from "react";
2
- import {HttpUtils, Page} from "../framework";
2
+ import {Page} from "../framework";
3
3
 
4
4
  export default class extends React.Component {
5
5
 
6
- state = {
7
- buildInfo: null,
8
- }
9
-
10
- componentDidMount() {
11
- HttpUtils.get('/admin/lib-info').then(data => {
12
- this.setState({buildInfo: data})
13
- }).catch(e => {
14
- console.error('[About] 加载版本信息失败:', e);
15
- })
16
- }
17
-
18
6
  render() {
19
- const {buildInfo} = this.state;
20
-
21
- return (
22
- <Page title="关于" description="了解系统版本与相关信息">
23
- <h1>关于</h1>
24
- {buildInfo && (
25
- <div style={{marginTop: '3em', color: 'rgba(0,0,0,0.45)', fontSize: 12}}>
26
- 依赖库版本 v{buildInfo.version} / {buildInfo.buildTime}
27
- </div>
28
- )}
29
- </Page>
30
- );
7
+ return <Page title="关于" description="了解系统版本与相关信息">
8
+ <h1>关于</h1>
9
+ </Page>
31
10
  }
32
11
  }