@luck-design-biz/luckda 0.0.25-8 → 0.0.25-9

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.
Files changed (225) hide show
  1. package/es/components/ComplexItem/index.js +92 -0
  2. package/es/components/ComplexItem/service.js +21 -0
  3. package/es/components/LdAutoForm/index.js +11 -6
  4. package/es/components/LdFormList/index.js +2 -1
  5. package/es/components/LdGrid/index.js +8 -1
  6. package/es/components/LdGridForm/index.js +16 -7
  7. package/es/helper/FromItems.js +177 -94
  8. package/es/helper/form.js +41 -7
  9. package/es/helper/props_config.js +17 -0
  10. package/es/locales/zh-CN.js +3 -3
  11. package/es/lowcode/constants/api-url.js +110 -32
  12. package/es/lowcode/constants/index.js +2 -1
  13. package/es/lowcode/engine/meta/cardlist.props.json +13 -3
  14. package/es/lowcode/engine/meta/components-list.json +102 -0
  15. package/es/lowcode/engine/meta/dialog.props.default.json +1 -0
  16. package/es/lowcode/engine/meta/dialog.props.json +7 -0
  17. package/es/lowcode/engine/meta/fieldcolor.props.default.json +14 -0
  18. package/es/lowcode/engine/meta/fieldcolor.props.json +63 -0
  19. package/es/lowcode/engine/meta/fieldcomplex.props.default.json +13 -0
  20. package/es/lowcode/engine/meta/fieldcomplex.props.json +39 -0
  21. package/es/lowcode/engine/meta/fielddate.props.default.json +12 -0
  22. package/es/lowcode/engine/meta/fielddate.props.json +47 -0
  23. package/es/lowcode/engine/meta/fielddict.props.default.json +14 -0
  24. package/es/lowcode/engine/meta/fielddict.props.json +44 -0
  25. package/es/lowcode/engine/meta/fieldeditor.props.default.json +13 -0
  26. package/es/lowcode/engine/meta/fieldeditor.props.json +44 -0
  27. package/es/lowcode/engine/meta/fieldgroup.props.default.json +15 -0
  28. package/es/lowcode/engine/meta/fieldgroup.props.json +73 -0
  29. package/es/lowcode/engine/meta/fieldnumber.props.default.json +14 -0
  30. package/es/lowcode/engine/meta/fieldnumber.props.json +48 -0
  31. package/es/lowcode/engine/meta/fieldradio.props.default.json +12 -0
  32. package/es/lowcode/engine/meta/fieldradio.props.json +20 -0
  33. package/es/lowcode/engine/meta/fieldregion.props.default.json +12 -0
  34. package/es/lowcode/engine/meta/fieldregion.props.json +26 -0
  35. package/es/lowcode/engine/meta/fieldselect.props.default.json +14 -0
  36. package/es/lowcode/engine/meta/fieldselect.props.json +58 -0
  37. package/es/lowcode/engine/meta/fieldstring.props.default.json +16 -0
  38. package/es/lowcode/engine/meta/fieldstring.props.json +62 -0
  39. package/es/lowcode/engine/meta/fieldswitch.props.default.json +12 -0
  40. package/es/lowcode/engine/meta/fieldswitch.props.json +31 -0
  41. package/es/lowcode/engine/meta/fieldtextarea.props.default.json +13 -0
  42. package/es/lowcode/engine/meta/fieldtextarea.props.json +49 -0
  43. package/es/lowcode/engine/meta/fieldupload.props.default.json +15 -0
  44. package/es/lowcode/engine/meta/fieldupload.props.json +71 -0
  45. package/es/lowcode/engine/meta/fielduser.props.default.json +16 -0
  46. package/es/lowcode/engine/meta/fielduser.props.json +82 -0
  47. package/es/lowcode/engine/meta/fieldyear.props.default.json +12 -0
  48. package/es/lowcode/engine/meta/fieldyear.props.json +20 -0
  49. package/es/lowcode/engine/meta/form.props.json +3 -3
  50. package/es/lowcode/engine/meta/imex.props.default.json +1 -1
  51. package/es/lowcode/engine/meta/imex.props.json +1 -1
  52. package/es/lowcode/engine/meta/table.props.json +3 -3
  53. package/es/lowcode/engine/meta/tree.props.json +9 -2
  54. package/es/lowcode/engine/provider/ContextProvider/index.js +1 -0
  55. package/es/lowcode/engine/provider/RemoteSourceProvider.js +12 -18
  56. package/es/lowcode/engine/tools/helper.js +24 -2
  57. package/es/lowcode/painter/Design.js +4 -4
  58. package/es/lowcode/painter/DesignOperator.js +103 -66
  59. package/es/lowcode/painter/DesignToolbar.js +13 -15
  60. package/es/lowcode/painter/Outline.js +10 -6
  61. package/es/lowcode/painter/Panel.js +57 -19
  62. package/es/lowcode/painter/components/ActionBindModal.js +13 -8
  63. package/es/lowcode/painter/components/AdvancePanel.js +32 -21
  64. package/es/lowcode/painter/components/AttrsPanel.js +5 -3
  65. package/es/lowcode/painter/components/FieldSelector.js +26 -13
  66. package/es/lowcode/painter/components/code-editor/JSEditor.js +5 -9
  67. package/es/lowcode/painter/panel-section/BlocksEditor/index.js +4 -7
  68. package/es/lowcode/painter/panel-section/DataSetSelector.js +29 -9
  69. package/es/lowcode/painter/panel-section/FieldsSetting.js +24 -21
  70. package/es/lowcode/painter/panel-section/ImpExp.js +19 -21
  71. package/es/lowcode/painter/panel-section/ImpExpAlone.js +6 -7
  72. package/es/lowcode/painter/panel-section/TableTopFilter.js +23 -13
  73. package/es/lowcode/view/Page.js +4 -4
  74. package/es/lowcode/view/lc-components/CardList/meta.json +13 -3
  75. package/es/lowcode/view/lc-components/Dialog/index.js +3 -1
  76. package/es/lowcode/view/lc-components/Dialog/meta.json +7 -0
  77. package/es/lowcode/view/lc-components/FieldColor/meta.json +63 -0
  78. package/es/lowcode/view/lc-components/FieldComplex/meta.json +39 -0
  79. package/es/lowcode/view/lc-components/FieldDate/meta.json +45 -0
  80. package/es/lowcode/view/lc-components/FieldDict/meta.json +44 -0
  81. package/es/lowcode/view/lc-components/FieldEditor/meta.json +44 -0
  82. package/es/lowcode/view/lc-components/FieldGroup/meta.json +73 -0
  83. package/es/lowcode/view/lc-components/FieldNumber/meta.json +48 -0
  84. package/es/lowcode/view/lc-components/FieldRadio/meta.json +20 -0
  85. package/es/lowcode/view/lc-components/FieldRegion/meta.json +26 -0
  86. package/es/lowcode/view/lc-components/FieldSelect/meta.json +58 -0
  87. package/es/lowcode/view/lc-components/FieldString/meta.json +62 -0
  88. package/es/lowcode/view/lc-components/FieldSwitch/meta.json +31 -0
  89. package/es/lowcode/view/lc-components/FieldTextarea/meta.json +49 -0
  90. package/es/lowcode/view/lc-components/FieldUpload/meta.json +71 -0
  91. package/es/lowcode/view/lc-components/FieldUser/meta.json +82 -0
  92. package/es/lowcode/view/lc-components/FieldYear/meta.json +20 -0
  93. package/es/lowcode/view/lc-components/Form/index.js +90 -18
  94. package/es/lowcode/view/lc-components/Form/meta.json +3 -3
  95. package/es/lowcode/view/lc-components/ImEx/index.js +297 -88
  96. package/es/lowcode/view/lc-components/ImEx/meta.json +1 -1
  97. package/es/lowcode/view/lc-components/Table/components/TopFilter.js +78 -57
  98. package/es/lowcode/view/lc-components/Table/components/TopImex.js +345 -63
  99. package/es/lowcode/view/lc-components/Table/index.js +179 -18
  100. package/es/lowcode/view/lc-components/Table/meta.json +3 -3
  101. package/es/lowcode/view/lc-components/Tabs/FunctionDesign.js +1 -1
  102. package/es/lowcode/view/lc-components/Tabs/index.js +1 -1
  103. package/es/lowcode/view/lc-components/Tree/FunctionDesign.js +0 -2
  104. package/es/lowcode/view/lc-components/Tree/index.js +38 -13
  105. package/es/lowcode/view/lc-components/Tree/meta.json +9 -2
  106. package/es/upload/FilesWall/index.js +13 -13
  107. package/es/upload/FilesWall/index.less +74 -74
  108. package/es/upload/Form/gridForm.js +3 -2
  109. package/es/upload/FormItem/index.js +3 -2
  110. package/es/utils/form.js +16 -3
  111. package/es/utils/grid.js +8 -5
  112. package/lib/components/ComplexItem/index.js +100 -0
  113. package/lib/components/ComplexItem/service.js +28 -0
  114. package/lib/components/LdAutoForm/index.js +10 -5
  115. package/lib/components/LdFormList/index.js +2 -1
  116. package/lib/components/LdGrid/index.js +8 -1
  117. package/lib/components/LdGridForm/index.js +15 -6
  118. package/lib/helper/FromItems.js +175 -92
  119. package/lib/helper/form.js +39 -6
  120. package/lib/helper/props_config.js +23 -0
  121. package/lib/locales/zh-CN.js +3 -3
  122. package/lib/lowcode/constants/api-url.js +110 -33
  123. package/lib/lowcode/constants/index.js +3 -2
  124. package/lib/lowcode/engine/meta/cardlist.props.json +13 -3
  125. package/lib/lowcode/engine/meta/components-list.json +102 -0
  126. package/lib/lowcode/engine/meta/dialog.props.default.json +1 -0
  127. package/lib/lowcode/engine/meta/dialog.props.json +7 -0
  128. package/lib/lowcode/engine/meta/fieldcolor.props.default.json +14 -0
  129. package/lib/lowcode/engine/meta/fieldcolor.props.json +63 -0
  130. package/lib/lowcode/engine/meta/fieldcomplex.props.default.json +13 -0
  131. package/lib/lowcode/engine/meta/fieldcomplex.props.json +39 -0
  132. package/lib/lowcode/engine/meta/fielddate.props.default.json +12 -0
  133. package/lib/lowcode/engine/meta/fielddate.props.json +47 -0
  134. package/lib/lowcode/engine/meta/fielddict.props.default.json +14 -0
  135. package/lib/lowcode/engine/meta/fielddict.props.json +44 -0
  136. package/lib/lowcode/engine/meta/fieldeditor.props.default.json +13 -0
  137. package/lib/lowcode/engine/meta/fieldeditor.props.json +44 -0
  138. package/lib/lowcode/engine/meta/fieldgroup.props.default.json +15 -0
  139. package/lib/lowcode/engine/meta/fieldgroup.props.json +73 -0
  140. package/lib/lowcode/engine/meta/fieldnumber.props.default.json +14 -0
  141. package/lib/lowcode/engine/meta/fieldnumber.props.json +48 -0
  142. package/lib/lowcode/engine/meta/fieldradio.props.default.json +12 -0
  143. package/lib/lowcode/engine/meta/fieldradio.props.json +20 -0
  144. package/lib/lowcode/engine/meta/fieldregion.props.default.json +12 -0
  145. package/lib/lowcode/engine/meta/fieldregion.props.json +26 -0
  146. package/lib/lowcode/engine/meta/fieldselect.props.default.json +14 -0
  147. package/lib/lowcode/engine/meta/fieldselect.props.json +58 -0
  148. package/lib/lowcode/engine/meta/fieldstring.props.default.json +16 -0
  149. package/lib/lowcode/engine/meta/fieldstring.props.json +62 -0
  150. package/lib/lowcode/engine/meta/fieldswitch.props.default.json +12 -0
  151. package/lib/lowcode/engine/meta/fieldswitch.props.json +31 -0
  152. package/lib/lowcode/engine/meta/fieldtextarea.props.default.json +13 -0
  153. package/lib/lowcode/engine/meta/fieldtextarea.props.json +49 -0
  154. package/lib/lowcode/engine/meta/fieldupload.props.default.json +15 -0
  155. package/lib/lowcode/engine/meta/fieldupload.props.json +71 -0
  156. package/lib/lowcode/engine/meta/fielduser.props.default.json +16 -0
  157. package/lib/lowcode/engine/meta/fielduser.props.json +82 -0
  158. package/lib/lowcode/engine/meta/fieldyear.props.default.json +12 -0
  159. package/lib/lowcode/engine/meta/fieldyear.props.json +20 -0
  160. package/lib/lowcode/engine/meta/form.props.json +3 -3
  161. package/lib/lowcode/engine/meta/imex.props.default.json +1 -1
  162. package/lib/lowcode/engine/meta/imex.props.json +1 -1
  163. package/lib/lowcode/engine/meta/table.props.json +3 -3
  164. package/lib/lowcode/engine/meta/tree.props.json +9 -2
  165. package/lib/lowcode/engine/provider/ContextProvider/index.js +1 -0
  166. package/lib/lowcode/engine/provider/RemoteSourceProvider.js +12 -18
  167. package/lib/lowcode/engine/tools/helper.js +25 -1
  168. package/lib/lowcode/painter/Design.js +4 -4
  169. package/lib/lowcode/painter/DesignOperator.js +101 -64
  170. package/lib/lowcode/painter/DesignToolbar.js +12 -14
  171. package/lib/lowcode/painter/Outline.js +9 -5
  172. package/lib/lowcode/painter/Panel.js +56 -18
  173. package/lib/lowcode/painter/components/ActionBindModal.js +13 -8
  174. package/lib/lowcode/painter/components/AdvancePanel.js +31 -20
  175. package/lib/lowcode/painter/components/AttrsPanel.js +5 -3
  176. package/lib/lowcode/painter/components/FieldSelector.js +26 -13
  177. package/lib/lowcode/painter/components/code-editor/JSEditor.js +5 -9
  178. package/lib/lowcode/painter/panel-section/BlocksEditor/index.js +4 -7
  179. package/lib/lowcode/painter/panel-section/DataSetSelector.js +29 -9
  180. package/lib/lowcode/painter/panel-section/FieldsSetting.js +23 -20
  181. package/lib/lowcode/painter/panel-section/ImpExp.js +20 -21
  182. package/lib/lowcode/painter/panel-section/ImpExpAlone.js +6 -7
  183. package/lib/lowcode/painter/panel-section/TableTopFilter.js +22 -12
  184. package/lib/lowcode/view/Page.js +4 -4
  185. package/lib/lowcode/view/lc-components/CardList/meta.json +13 -3
  186. package/lib/lowcode/view/lc-components/Dialog/index.js +3 -1
  187. package/lib/lowcode/view/lc-components/Dialog/meta.json +7 -0
  188. package/lib/lowcode/view/lc-components/FieldColor/meta.json +63 -0
  189. package/lib/lowcode/view/lc-components/FieldComplex/meta.json +39 -0
  190. package/lib/lowcode/view/lc-components/FieldDate/meta.json +45 -0
  191. package/lib/lowcode/view/lc-components/FieldDict/meta.json +44 -0
  192. package/lib/lowcode/view/lc-components/FieldEditor/meta.json +44 -0
  193. package/lib/lowcode/view/lc-components/FieldGroup/meta.json +73 -0
  194. package/lib/lowcode/view/lc-components/FieldNumber/meta.json +48 -0
  195. package/lib/lowcode/view/lc-components/FieldRadio/meta.json +20 -0
  196. package/lib/lowcode/view/lc-components/FieldRegion/meta.json +26 -0
  197. package/lib/lowcode/view/lc-components/FieldSelect/meta.json +58 -0
  198. package/lib/lowcode/view/lc-components/FieldString/meta.json +62 -0
  199. package/lib/lowcode/view/lc-components/FieldSwitch/meta.json +31 -0
  200. package/lib/lowcode/view/lc-components/FieldTextarea/meta.json +49 -0
  201. package/lib/lowcode/view/lc-components/FieldUpload/meta.json +71 -0
  202. package/lib/lowcode/view/lc-components/FieldUser/meta.json +82 -0
  203. package/lib/lowcode/view/lc-components/FieldYear/meta.json +20 -0
  204. package/lib/lowcode/view/lc-components/Form/index.js +89 -17
  205. package/lib/lowcode/view/lc-components/Form/meta.json +3 -3
  206. package/lib/lowcode/view/lc-components/ImEx/index.js +295 -85
  207. package/lib/lowcode/view/lc-components/ImEx/meta.json +1 -1
  208. package/lib/lowcode/view/lc-components/Table/components/TopFilter.js +75 -55
  209. package/lib/lowcode/view/lc-components/Table/components/TopImex.js +343 -60
  210. package/lib/lowcode/view/lc-components/Table/index.js +178 -17
  211. package/lib/lowcode/view/lc-components/Table/meta.json +3 -3
  212. package/lib/lowcode/view/lc-components/Tabs/FunctionDesign.js +1 -1
  213. package/lib/lowcode/view/lc-components/Tabs/index.js +1 -1
  214. package/lib/lowcode/view/lc-components/Tree/FunctionDesign.js +0 -2
  215. package/lib/lowcode/view/lc-components/Tree/index.js +36 -11
  216. package/lib/lowcode/view/lc-components/Tree/meta.json +9 -2
  217. package/lib/upload/FilesWall/index.js +13 -13
  218. package/lib/upload/FilesWall/index.less +74 -74
  219. package/lib/upload/Form/gridForm.js +3 -2
  220. package/lib/upload/FormItem/index.js +3 -2
  221. package/lib/utils/form.js +16 -3
  222. package/lib/utils/grid.js +8 -5
  223. package/package.json +3 -3
  224. package/es/lowcode/engine/meta/local/local.zh-cn.js +0 -97
  225. package/lib/lowcode/engine/meta/local/local.zh-cn.js +0 -103
@@ -1,96 +1,117 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
2
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
4
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
5
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
6
  import React, { useState } from 'react';
5
- import { useAsyncEffect } from 'ahooks';
6
- import { Segmented } from 'luck-design/antd';
7
+ import { useAsyncEffect, useMemoizedFn } from 'ahooks';
8
+ import { Radio } from 'luck-design/antd';
7
9
  import { isArray, isString } from 'lodash';
8
- function mockDict() {
9
- return new Promise(function (resolve) {
10
- setTimeout(function () {
11
- resolve([{
12
- value: '1',
13
- label: '启用'
14
- }, {
15
- value: '2',
16
- label: '未启用'
17
- }, {
18
- value: '0',
19
- label: '未知'
20
- }]);
21
- }, 600);
22
- });
23
- }
24
- function mockDApi() {
25
- return new Promise(function (resolve) {
26
- setTimeout(function () {
27
- resolve({
28
- options: [{
29
- value: '2023',
30
- label: '2023年'
31
- }, {
32
- value: '2024',
33
- label: '2024年'
34
- }, {
35
- value: '2024',
36
- label: '2025年'
37
- }],
38
- field: 'planYear'
39
- });
40
- }, 600);
41
- });
42
- }
10
+ import { formatMessage } from '@luck-design-biz/base/utils';
11
+ import { request } from '@luck-design-biz/base/utils';
12
+ import { fetchDataDic } from "../../../../constants/api-url";
43
13
  var TopFilter = function TopFilter(_ref) {
44
- var filter = _ref.filter;
14
+ var filter = _ref.filter,
15
+ instance = _ref.instance;
45
16
  var _useState = useState(isArray(filter) ? filter : []),
46
17
  _useState2 = _slicedToArray(_useState, 2),
47
18
  optons = _useState2[0],
48
19
  setOptions = _useState2[1];
20
+ var _useState3 = useState(void 0),
21
+ _useState4 = _slicedToArray(_useState3, 2),
22
+ apiField = _useState4[0],
23
+ setApiField = _useState4[1];
49
24
  useAsyncEffect( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
50
- var _yield$mockDApi, options, field;
25
+ var _yield$request, options, field, _yield$fetchDataDic, code, list, detail;
51
26
  return _regeneratorRuntime().wrap(function _callee$(_context) {
52
27
  while (1) switch (_context.prev = _context.next) {
53
28
  case 0:
54
29
  if (!isString(filter)) {
55
- _context.next = 9;
30
+ _context.next = 10;
56
31
  break;
57
32
  }
58
33
  _context.next = 3;
59
- return mockDApi();
34
+ return request(filter);
60
35
  case 3:
61
- _yield$mockDApi = _context.sent;
62
- options = _yield$mockDApi.options;
63
- field = _yield$mockDApi.field;
36
+ _yield$request = _context.sent;
37
+ options = _yield$request.options;
38
+ field = _yield$request.field;
64
39
  setOptions(options);
65
- _context.next = 19;
40
+ setApiField(field);
41
+ _context.next = 22;
66
42
  break;
67
- case 9:
43
+ case 10:
68
44
  if (!isArray(filter)) {
69
- _context.next = 13;
45
+ _context.next = 14;
70
46
  break;
71
47
  }
72
48
  setOptions(filter);
73
- _context.next = 19;
49
+ _context.next = 22;
74
50
  break;
75
- case 13:
51
+ case 14:
76
52
  if (!(filter.key && filter.field)) {
77
- _context.next = 19;
53
+ _context.next = 22;
78
54
  break;
79
55
  }
80
- _context.t0 = setOptions;
81
56
  _context.next = 17;
82
- return mockDict();
57
+ return fetchDataDic({
58
+ snamealias: filter.key
59
+ });
83
60
  case 17:
84
- _context.t1 = _context.sent;
85
- (0, _context.t0)(_context.t1);
86
- case 19:
61
+ _yield$fetchDataDic = _context.sent;
62
+ code = _yield$fetchDataDic.code;
63
+ list = _yield$fetchDataDic.list;
64
+ detail = _yield$fetchDataDic.detail;
65
+ if (code === 1) {
66
+ setOptions([{
67
+ value: 'all',
68
+ label: formatMessage({
69
+ id: "luckda.lowcode.view.lc-components.label.all",
70
+ label: '全部'
71
+ })
72
+ }].concat(_toConsumableArray(list.map(function (_id) {
73
+ return {
74
+ value: detail[_id].sfactvalue,
75
+ label: detail[_id].sname
76
+ };
77
+ }))));
78
+ }
79
+ case 22:
87
80
  case "end":
88
81
  return _context.stop();
89
82
  }
90
83
  }, _callee);
91
84
  })), [filter]);
92
- return /*#__PURE__*/React.createElement(Segmented, {
93
- options: optons
85
+ var handleValueChange = useMemoizedFn(function (e) {
86
+ var val = e.target.value;
87
+ var _key = apiField || filter.field;
88
+ if (val === 'all') {
89
+ instance.current.onLdQuery(_defineProperty({}, _key, {
90
+ operate: 'remove'
91
+ }));
92
+ } else {
93
+ var _opt = optons.find(function (_ref3) {
94
+ var value = _ref3.value;
95
+ return val === value;
96
+ });
97
+ instance.current.onLdQuery(_defineProperty({}, _key, {
98
+ key: _key,
99
+ value: val,
100
+ label: _opt.label
101
+ }));
102
+ }
94
103
  });
104
+ return /*#__PURE__*/React.createElement(Radio.Group, {
105
+ defaultValue: "all",
106
+ buttonStyle: "solid",
107
+ onChange: handleValueChange
108
+ }, optons.map(function (_ref4) {
109
+ var value = _ref4.value,
110
+ label = _ref4.label;
111
+ return /*#__PURE__*/React.createElement(Radio.Button, {
112
+ key: value,
113
+ value: value
114
+ }, label);
115
+ }));
95
116
  };
96
117
  export default TopFilter;
@@ -1,52 +1,276 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
1
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["options"],
6
- _excluded2 = ["options", "apiUrl", "tableRef"];
7
- import React from 'react';
8
- import PropTypes from 'prop-types';
9
- import { Button, Upload, notification, Icon, Progress } from 'luck-design/antd';
10
- import { exportExcel, readExportExcelState } from "../../../../constants/api-url";
11
- import { isString } from 'lodash';
12
- import { useMemoizedFn, useCreation, useUnmount, useRequest } from 'ahooks';
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import React, { useState, useEffect } from 'react';
6
+ import { Button, notification, Icon, Progress, message } from 'luck-design/antd';
7
+ import api from "@/services/ApiConfig";
8
+ import { BasicForm, BasicFormItem, PopWindow } from 'luck-design';
9
+ import { exportExcel, uploadTemplate, getFindexcelstate, noAuthGetTemplateUrl } from "../../../../constants/api-url";
10
+ import styled from 'styled-components';
11
+ import { isString, split, last, lowerCase, includes } from 'lodash';
12
+ import { useRequest } from 'ahooks';
13
13
  import styles from "../../ImEx/index.less";
14
- export var TopUpload = function TopUpload(_ref) {
14
+ var DownloadLink = styled.div.withConfig({
15
+ displayName: "DownloadLink",
16
+ componentId: "luckda-6530__sc-1eag873-0"
17
+ })(["display:flex;align-items:center;justify-content:center;margin-top:-36px;"]);
18
+ var UploadDoneWrap = styled.div.withConfig({
19
+ displayName: "UploadDoneWrap",
20
+ componentId: "luckda-6530__sc-1eag873-1"
21
+ })(["display:flex;align-items:center;justify-content:center;flex-direction:column;padding:16px;"]);
22
+
23
+ // options: {import: 'templateId' | 'behaviorKey', importType: false | true, moduleCode}
24
+ export var ImportUploadPop = function ImportUploadPop(_ref) {
15
25
  var options = _ref.options,
16
- props = _objectWithoutProperties(_ref, _excluded);
17
- var UploadConfig = {
18
- name: 'file',
19
- action: 'https://660d2bd96ddfa2943b33731c.mockapi.io/api/upload',
20
- headers: {
21
- authorization: 'authorization-text'
22
- }
26
+ visible = _ref.visible,
27
+ setVisible = _ref.setVisible;
28
+ var _useState = useState('undone'),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ actionStep = _useState2[0],
31
+ setActionStep = _useState2[1];
32
+ var _useState3 = useState({}),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ uploadResult = _useState4[0],
35
+ setUploadResult = _useState4[1];
36
+ var _useState5 = useState(''),
37
+ _useState6 = _slicedToArray(_useState5, 2),
38
+ templateUrl = _useState6[0],
39
+ setTemplateUrl = _useState6[1];
40
+
41
+ // 导入
42
+ var _useRequest = useRequest(uploadTemplate, {
43
+ manual: true
44
+ }),
45
+ runAsyncImport = _useRequest.runAsync;
46
+ var fecthFindExcelState = function fecthFindExcelState(_ref2, callback) {
47
+ var strategy = _ref2.strategy,
48
+ batchNo = _ref2.batchNo,
49
+ moduleCode = _ref2.moduleCode,
50
+ behaviorKey = _ref2.behaviorKey,
51
+ templateId = _ref2.templateId;
52
+ var _fetchExcelStatePrefix = "/".concat(strategy, "/").concat(batchNo);
53
+ var _fetchExcelStateParams = {
54
+ moduleCode: moduleCode,
55
+ behaviorKey: behaviorKey,
56
+ templateId: templateId,
57
+ reportType: "import"
58
+ };
59
+ getFindexcelstate(_fetchExcelStatePrefix, _fetchExcelStateParams).then(function (response) {
60
+ if (response.code === 1) {
61
+ var data = response.data;
62
+ callback(data);
63
+ if (data.state !== -1 && data.successCount < data.totalCount) {
64
+ setTimeout(function () {
65
+ fecthFindExcelState({
66
+ strategy: strategy,
67
+ batchNo: batchNo,
68
+ moduleCode: moduleCode,
69
+ behaviorKey: behaviorKey,
70
+ templateId: templateId
71
+ }, callback);
72
+ }, 500);
73
+ } else {
74
+ setActionStep('finish');
75
+ }
76
+ } else {
77
+ callback();
78
+ setActionStep('finish');
79
+ }
80
+ }).catch(function () {
81
+ setActionStep('finish');
82
+ callback();
83
+ });
23
84
  };
24
- return /*#__PURE__*/React.createElement(Upload, UploadConfig, /*#__PURE__*/React.createElement(Button, {
25
- type: "primary"
26
- }, "\u5BFC\u5165"));
85
+ useEffect(function () {
86
+ if (visible) {
87
+ setActionStep('undone');
88
+ setUploadResult({});
89
+ setTemplateUrl('');
90
+ if (!options.importType) {
91
+ noAuthGetTemplateUrl(options.import).then(function (response) {
92
+ if (response.code === 1) {
93
+ setTemplateUrl(response.data);
94
+ }
95
+ });
96
+ }
97
+ }
98
+ }, [visible]);
99
+ var handleImport = /*#__PURE__*/function () {
100
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(err, values) {
101
+ var _importExcelParams, strategy, importParameter, _importExcelPrefix, importExcelResponse;
102
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
103
+ while (1) switch (_context.prev = _context.next) {
104
+ case 0:
105
+ if (err) {
106
+ _context.next = 14;
107
+ break;
108
+ }
109
+ _importExcelParams = new FormData();
110
+ values.files.forEach(function (file) {
111
+ _importExcelParams.append('file', file.originFileObj);
112
+ });
113
+ strategy = options.importType ? 'behavior' : 'report_server';
114
+ importParameter = options.importType ? {
115
+ moduleCode: options.moduleCode,
116
+ behaviorKey: options.import,
117
+ gatewayUrl: "".concat(window.location.origin).concat(api.API_HOST)
118
+ } : {
119
+ templateId: options.import,
120
+ gatewayUrl: "".concat(window.location.origin).concat(api.API_HOST)
121
+ };
122
+ _importExcelParams.append('importParameter', JSON.stringify(importParameter));
123
+ _importExcelPrefix = "/".concat(strategy);
124
+ _context.next = 9;
125
+ return runAsyncImport(_importExcelPrefix, _importExcelParams);
126
+ case 9:
127
+ importExcelResponse = _context.sent;
128
+ setActionStep('uploading');
129
+ fecthFindExcelState(_objectSpread({
130
+ strategy: strategy,
131
+ batchNo: importExcelResponse.data
132
+ }, importParameter), function (result) {
133
+ setUploadResult(result || {});
134
+ });
135
+ _context.next = 15;
136
+ break;
137
+ case 14:
138
+ message.info('请选择Excel文件!');
139
+ case 15:
140
+ case "end":
141
+ return _context.stop();
142
+ }
143
+ }, _callee);
144
+ }));
145
+ return function handleImport(_x, _x2) {
146
+ return _ref3.apply(this, arguments);
147
+ };
148
+ }();
149
+ return /*#__PURE__*/React.createElement(PopWindow, {
150
+ title: "上传excel文件",
151
+ mode: "modal",
152
+ size: "mini",
153
+ visible: visible,
154
+ destroyOnClose: true,
155
+ footer: actionStep === 'undone' ? function () {
156
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
157
+ } : null,
158
+ onClose: function onClose() {
159
+ if (actionStep !== 'uploading') {
160
+ setVisible(false);
161
+ }
162
+ }
163
+ }, actionStep === 'undone' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BasicForm, {
164
+ onSubmit: handleImport,
165
+ layout: "drawer",
166
+ buttonRender: function buttonRender() {
167
+ return /*#__PURE__*/React.createElement(Button, {
168
+ type: "primary",
169
+ htmlType: "submit"
170
+ }, "\u5BFC\u5165");
171
+ }
172
+ }, /*#__PURE__*/React.createElement(BasicFormItem, {
173
+ type: "upload",
174
+ name: "files",
175
+ label: "\u4E0A\u4F20",
176
+ config: {
177
+ required: true,
178
+ message: '请上传Excel文件',
179
+ directory: false,
180
+ num: 1,
181
+ multiple: false,
182
+ autoUpload: false,
183
+ listType: 'text',
184
+ accept: '.xls,.xlsx,.xlt,.xlsm',
185
+ name: 'fileObj',
186
+ beforeUpload: function beforeUpload(file) {
187
+ var suffix = lowerCase(last(split(file.name, '.')));
188
+ if (!includes(['xls', 'xlsx', 'xlt', 'xlsm'], suffix)) {
189
+ message.info('禁止上传的文件类型');
190
+ return false;
191
+ }
192
+ }
193
+ }
194
+ })), templateUrl && /*#__PURE__*/React.createElement(DownloadLink, null, /*#__PURE__*/React.createElement("a", {
195
+ href: "".concat(templateUrl),
196
+ download: true
197
+ }, /*#__PURE__*/React.createElement(Button, {
198
+ type: "link"
199
+ }, /*#__PURE__*/React.createElement(Icon, {
200
+ type: "download"
201
+ }), " \u4E0B\u8F7D\u6A21\u7248")))) : /*#__PURE__*/React.createElement(UploadDoneWrap, null, /*#__PURE__*/React.createElement("p", null, "\u5DF2\u5BFC\u5165\uFF1A", uploadResult.totalCount || 0, "\u6761\uFF0C\u6210\u529F\uFF1A", uploadResult.successCount || 0, "\u6761\uFF0C\u5931\u8D25\uFF1A", uploadResult.failureCount, "\u6761"), uploadResult.failureCount > 0 ? /*#__PURE__*/React.createElement("a", {
202
+ href: uploadResult.errorFileUrl,
203
+ download: true
204
+ }, "\u4E0B\u8F7D\u51FA\u9519\u8868\u683C\u4FE1\u606F") : ''));
27
205
  };
28
- export var TopExport = function TopExport(_ref2) {
29
- var options = _ref2.options,
30
- apiUrl = _ref2.apiUrl,
31
- tableRef = _ref2.tableRef,
32
- props = _objectWithoutProperties(_ref2, _excluded2);
33
- var _useRequest = useRequest(exportExcel, {
206
+
207
+ // options: {import: 'templateId' | 'behaviorKey', importType: false | true}
208
+ export var TopUpload = function TopUpload(_ref4) {
209
+ var options = _ref4.options,
210
+ moduleCode = _ref4.moduleCode;
211
+ var _useState7 = useState(false),
212
+ _useState8 = _slicedToArray(_useState7, 2),
213
+ visible = _useState8[0],
214
+ setVisible = _useState8[1];
215
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
216
+ type: "primary",
217
+ onClick: function onClick() {
218
+ if (!options.import) {
219
+ return message.info("\u672A\u914D\u7F6E".concat(options.importType ? '行为' : '模版', "\uFF01"));
220
+ }
221
+ setVisible(true);
222
+ }
223
+ }, "\u5BFC\u5165"), visible && /*#__PURE__*/React.createElement(ImportUploadPop, {
224
+ visible: visible,
225
+ setVisible: setVisible,
226
+ options: _objectSpread(_objectSpread({}, options), {}, {
227
+ moduleCode: moduleCode
228
+ })
229
+ }));
230
+ };
231
+
232
+ // options: {export: true | 'behaviorKey'}
233
+ export var TopExport = function TopExport(_ref5) {
234
+ var options = _ref5.options,
235
+ moduleCode = _ref5.moduleCode,
236
+ apiUrl = _ref5.apiUrl,
237
+ tableRef = _ref5.tableRef;
238
+ var _useRequest2 = useRequest(exportExcel, {
34
239
  manual: true
35
240
  }),
36
- loading = _useRequest.loading,
37
- runAsync = _useRequest.runAsync,
38
- data = _useRequest.data;
39
- var fecthExcelState = function fecthExcelState(payload, procress, resolve, reject) {
40
- // 查询进度
41
- readExportExcelState(payload).then(function (ret) {
42
- var cpage = ret.cpage,
43
- total = ret.total,
44
- downloadUrl = ret.downloadUrl;
45
- if (cpage >= total) {
46
- resolve("".concat(window.location.origin, "/api").concat(downloadUrl));
241
+ runAsync = _useRequest2.runAsync;
242
+ var fecthExcelState = function fecthExcelState(_ref6, procress, resolve, reject) {
243
+ var strategy = _ref6.strategy,
244
+ batchNo = _ref6.batchNo,
245
+ moduleCode = _ref6.moduleCode,
246
+ behaviorKey = _ref6.behaviorKey;
247
+ var _fetchExcelStatePrefix = "/".concat(strategy, "/").concat(batchNo);
248
+ var _fetchExcelStateParams = {
249
+ moduleCode: moduleCode,
250
+ behaviorKey: behaviorKey,
251
+ reportType: "export"
252
+ };
253
+ getFindexcelstate(_fetchExcelStatePrefix, _fetchExcelStateParams).then(function (response) {
254
+ if (response.code === 1) {
255
+ var _response$data = response.data,
256
+ successCount = _response$data.successCount,
257
+ totalCount = _response$data.totalCount,
258
+ downloadUrl = _response$data.downloadUrl;
259
+ if (successCount >= totalCount) {
260
+ resolve(downloadUrl);
261
+ } else {
262
+ procress((successCount / totalCount * 100).toFixed(1));
263
+ setTimeout(function () {
264
+ fecthExcelState({
265
+ strategy: strategy,
266
+ batchNo: batchNo,
267
+ moduleCode: moduleCode,
268
+ behaviorKey: behaviorKey
269
+ }, procress, resolve, reject);
270
+ }, 500);
271
+ }
47
272
  } else {
48
- procress(cpage / total * 100);
49
- fecthExcelState(payload, procress, resolve, reject);
273
+ reject();
50
274
  }
51
275
  }).catch(function () {
52
276
  reject();
@@ -54,32 +278,95 @@ export var TopExport = function TopExport(_ref2) {
54
278
  };
55
279
  var handleExportAll = function handleExportAll(procress) {
56
280
  return new Promise( /*#__PURE__*/function () {
57
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {
58
- var joiner, payload;
59
- return _regeneratorRuntime().wrap(function _callee$(_context) {
60
- while (1) switch (_context.prev = _context.next) {
281
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject) {
282
+ var isBehavior, strategy, behaviorKey, _exportExcelParams, _exportExcelPrefix, exportExcelResponse, _tableRef$gridApi, joiner, labels, fieldInfo, defaultExcelParams, _exportExcelParams2, _exportExcelPrefix2, _exportExcelResponse;
283
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
284
+ while (1) switch (_context2.prev = _context2.next) {
61
285
  case 0:
286
+ isBehavior = isString(options.export);
287
+ strategy = isBehavior ? 'behavior' : 'report_server';
288
+ if (!isBehavior) {
289
+ _context2.next = 14;
290
+ break;
291
+ }
292
+ if (options.export) {
293
+ _context2.next = 5;
294
+ break;
295
+ }
296
+ return _context2.abrupt("return", message.info("\u672A\u914D\u7F6E\u884C\u4E3A\uFF01"));
297
+ case 5:
298
+ behaviorKey = options.export;
299
+ _exportExcelParams = {
300
+ moduleCode: moduleCode,
301
+ behaviorKey: behaviorKey,
302
+ reportType: "export"
303
+ };
304
+ _exportExcelPrefix = "/".concat(strategy);
305
+ _context2.next = 10;
306
+ return runAsync(_exportExcelPrefix, _exportExcelParams);
307
+ case 10:
308
+ exportExcelResponse = _context2.sent;
309
+ if (exportExcelResponse.code === 1) {
310
+ fecthExcelState({
311
+ strategy: strategy,
312
+ batchNo: exportExcelResponse.data,
313
+ moduleCode: moduleCode,
314
+ behaviorKey: behaviorKey
315
+ }, procress, resolve, reject);
316
+ } else {
317
+ reject();
318
+ }
319
+ _context2.next = 25;
320
+ break;
321
+ case 14:
322
+ // ! 默认导出
62
323
  joiner = apiUrl.indexOf('?') !== -1 ? '&' : '?';
63
- _context.next = 3;
64
- return runAsync({
65
- apiUrl: "".concat(apiUrl).concat(joiner, "token=").concat(window.cookie.get(window.appConfig.authSaveKey)),
66
- code: options.export
324
+ labels = [];
325
+ fieldInfo = [];
326
+ tableRef === null || tableRef === void 0 || (_tableRef$gridApi = tableRef.gridApi) === null || _tableRef$gridApi === void 0 || _tableRef$gridApi.columnApi.getAllDisplayedColumns().forEach(function (column) {
327
+ if (column.colId !== 'luck-expand' && column.colId !== 'luck-select' && column.colId !== 'luck-index' && column.colId !== 'luck-actions' && !column.colDef.draggable) {
328
+ labels.push(column.colDef.headerName);
329
+ fieldInfo.push({
330
+ width: column.actualWidth,
331
+ fieldNm: column.colId
332
+ });
333
+ }
67
334
  });
68
- case 3:
69
- payload = _context.sent;
70
- if (payload && typeof payload === 'string') {
71
- fecthExcelState(payload, procress, resolve, reject);
335
+ defaultExcelParams = {
336
+ bgColor: "#69b1ff",
337
+ dataUrl: "".concat(window.location.origin, "/api").concat(apiUrl).concat(joiner, "token=").concat(window.cookie.get(window.appConfig.authSaveKey)),
338
+ excelName: "download.xls",
339
+ fieldInfo: fieldInfo,
340
+ islock: false,
341
+ labels: labels === null || labels === void 0 ? void 0 : labels.join(),
342
+ reqBody: null
343
+ };
344
+ _exportExcelParams2 = _objectSpread({
345
+ moduleCode: moduleCode,
346
+ reportType: "export"
347
+ }, defaultExcelParams);
348
+ _exportExcelPrefix2 = "/".concat(strategy);
349
+ _context2.next = 23;
350
+ return runAsync(_exportExcelPrefix2, _exportExcelParams2);
351
+ case 23:
352
+ _exportExcelResponse = _context2.sent;
353
+ if (_exportExcelResponse.code === 1) {
354
+ fecthExcelState({
355
+ strategy: strategy,
356
+ batchNo: _exportExcelResponse.data,
357
+ moduleCode: moduleCode
358
+ }, procress, resolve, reject);
72
359
  } else {
73
360
  reject();
74
361
  }
75
- case 5:
362
+ case 25:
76
363
  case "end":
77
- return _context.stop();
364
+ return _context2.stop();
78
365
  }
79
- }, _callee);
366
+ }, _callee2);
80
367
  }));
81
- return function (_x, _x2) {
82
- return _ref3.apply(this, arguments);
368
+ return function (_x3, _x4) {
369
+ return _ref7.apply(this, arguments);
83
370
  };
84
371
  }());
85
372
  };
@@ -127,12 +414,7 @@ export var TopExport = function TopExport(_ref2) {
127
414
  return /*#__PURE__*/React.createElement(Button, {
128
415
  type: "primary",
129
416
  onClick: function onClick() {
130
- if (!isString(options.export)) {
131
- // 默认右击导出行为
132
- tableRef.doExportAll(tableRef.props.onExportAll);
133
- } else {
134
- doExportAll(handleExportAll);
135
- }
417
+ doExportAll(handleExportAll);
136
418
  }
137
419
  }, "\u5BFC\u51FA");
138
420
  };