@bit-sun/business-component 2.3.21 → 2.3.22

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 (270) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/docs/index.md +21 -21
  9. package/lib/assets/drag.svg +17 -17
  10. package/lib/assets/exportFail.svg +37 -37
  11. package/lib/assets/exportProcessing.svg +28 -28
  12. package/lib/assets/exportSuccess.svg +34 -34
  13. package/lib/assets/label_icon_bottom.svg +25 -25
  14. package/lib/assets/upExport.svg +22 -22
  15. package/package.json +78 -78
  16. package/src/assets/32.svg +27 -27
  17. package/src/assets/addIcon.svg +17 -17
  18. package/src/assets/allfunc.svg +27 -27
  19. package/src/assets/arrowRight.svg +24 -24
  20. package/src/assets/btn-delete.svg +29 -29
  21. package/src/assets/btn-edit.svg +19 -19
  22. package/src/assets/btn-more.svg +17 -17
  23. package/src/assets/btn-submit.svg +19 -19
  24. package/src/assets/caidan.svg +11 -11
  25. package/src/assets/close.svg +26 -26
  26. package/src/assets/drag.svg +17 -17
  27. package/src/assets/exportFail.svg +37 -37
  28. package/src/assets/exportProcessing.svg +28 -28
  29. package/src/assets/exportSuccess.svg +34 -34
  30. package/src/assets/fixed-left-active.svg +11 -11
  31. package/src/assets/fixed-left.svg +15 -15
  32. package/src/assets/fixed-right-active.svg +11 -11
  33. package/src/assets/fixed-right.svg +15 -15
  34. package/src/assets/guanbi.svg +15 -15
  35. package/src/assets/icon-quanping.svg +15 -15
  36. package/src/assets/icon-shezhi.svg +17 -17
  37. package/src/assets/label_icon_bottom.svg +25 -25
  38. package/src/assets/list-no-img.svg +21 -21
  39. package/src/assets/morentouxiang-32.svg +23 -23
  40. package/src/assets/scanning.svg +24 -24
  41. package/src/assets/upExport.svg +22 -22
  42. package/src/common/ENUM.ts +41 -41
  43. package/src/components/Business/AddSelectBusiness/index.md +162 -162
  44. package/src/components/Business/AddSelectBusiness/index.tsx +1060 -895
  45. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  46. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  47. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  48. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  49. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  50. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  51. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  57. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  58. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  59. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  60. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  61. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  62. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  63. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  64. package/src/components/Business/BsLayouts/index.less +79 -79
  65. package/src/components/Business/BsLayouts/index.tsx +1484 -1484
  66. package/src/components/Business/BsLayouts/service.ts +10 -10
  67. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  68. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +564 -564
  69. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  70. package/src/components/Business/BsSulaQueryTable/index.tsx +535 -535
  71. package/src/components/Business/BsSulaQueryTable/setting.tsx +852 -852
  72. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  73. package/src/components/Business/BsSulaQueryTable/utils.tsx +690 -690
  74. package/src/components/Business/CommodityEntry/index.md +70 -70
  75. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  76. package/src/components/Business/CommonAlert/index.tsx +23 -23
  77. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  78. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  79. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  80. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  81. package/src/components/Business/DetailPageWrapper/index.tsx +313 -313
  82. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  83. package/src/components/Business/HomePageWrapper/index.less +33 -33
  84. package/src/components/Business/HomePageWrapper/index.md +45 -45
  85. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  86. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  87. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  88. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  89. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  90. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  91. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  92. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  93. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  94. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  95. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  96. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  97. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  98. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  99. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  100. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  101. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  102. package/src/components/Business/JsonQueryTable/index.less +16 -16
  103. package/src/components/Business/JsonQueryTable/index.md +328 -328
  104. package/src/components/Business/JsonQueryTable/index.tsx +535 -535
  105. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  106. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  107. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  108. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  109. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  110. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  111. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  112. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  113. package/src/components/Business/JsonQueryTable/static.ts +390 -390
  114. package/src/components/Business/SearchSelect/BusinessUtils.ts +1762 -1762
  115. package/src/components/Business/SearchSelect/common.ts +75 -75
  116. package/src/components/Business/SearchSelect/index.md +1329 -1329
  117. package/src/components/Business/SearchSelect/index.tsx +55 -55
  118. package/src/components/Business/SearchSelect/utils.ts +100 -100
  119. package/src/components/Business/StateFlow/index.less +130 -130
  120. package/src/components/Business/StateFlow/index.md +60 -60
  121. package/src/components/Business/StateFlow/index.tsx +29 -29
  122. package/src/components/Business/TreeSearchSelect/index.md +156 -156
  123. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  124. package/src/components/Business/TreeSearchSelect/utils.ts +75 -75
  125. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  126. package/src/components/Business/columnSettingTable/index.less +247 -247
  127. package/src/components/Business/columnSettingTable/index.md +357 -357
  128. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  129. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  130. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  131. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  132. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  133. package/src/components/Business/moreTreeTable/index.less +99 -99
  134. package/src/components/Business/moreTreeTable/index.md +448 -448
  135. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  136. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  137. package/src/components/Functional/AddSelect/helps.ts +79 -14
  138. package/src/components/Functional/AddSelect/index.less +367 -367
  139. package/src/components/Functional/AddSelect/index.md +155 -155
  140. package/src/components/Functional/AddSelect/index.tsx +1170 -1282
  141. package/src/components/Functional/BillEntry/index.less +371 -371
  142. package/src/components/Functional/BillEntry/index.md +39 -39
  143. package/src/components/Functional/BillEntry/index.tsx +772 -772
  144. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  145. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  146. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  147. package/src/components/Functional/DataImport/index.less +63 -63
  148. package/src/components/Functional/DataImport/index.md +44 -44
  149. package/src/components/Functional/DataImport/index.tsx +695 -695
  150. package/src/components/Functional/DataValidation/index.less +63 -63
  151. package/src/components/Functional/DataValidation/index.md +39 -39
  152. package/src/components/Functional/DataValidation/index.tsx +687 -687
  153. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  154. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  155. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  156. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  157. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  158. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  159. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  160. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  161. package/src/components/Functional/SearchSelect/index.less +115 -115
  162. package/src/components/Functional/SearchSelect/index.md +141 -141
  163. package/src/components/Functional/SearchSelect/index.tsx +879 -879
  164. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  165. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  166. package/src/components/Functional/TreeSearchSelect/index.tsx +199 -199
  167. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  168. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  169. package/src/components/Solution/RuleComponent/index.js +2032 -2032
  170. package/src/components/Solution/RuleComponent/index.less +230 -230
  171. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  172. package/src/components/Solution/RuleComponent/ruleFiled.js +2107 -2107
  173. package/src/components/Solution/RuleComponent/services.ts +13 -13
  174. package/src/components/Solution/RuleComponent/util.js +139 -139
  175. package/src/index.ts +38 -38
  176. package/src/plugin/TableColumnSetting/index.less +247 -247
  177. package/src/plugin/TableColumnSetting/index.md +50 -50
  178. package/src/plugin/TableColumnSetting/index.tsx +724 -724
  179. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  180. package/src/styles/bsDefault.less +1912 -1912
  181. package/src/utils/CheckOneUser/index.md +39 -39
  182. package/src/utils/CheckOneUser/index.ts +51 -51
  183. package/src/utils/LocalstorageUtils.ts +95 -95
  184. package/src/utils/TableUtils.tsx +18 -18
  185. package/src/utils/checkUtils.ts +39 -39
  186. package/src/utils/enumConfig.ts +11 -11
  187. package/src/utils/getFormMode.js +12 -12
  188. package/src/utils/index.ts +4 -4
  189. package/src/utils/requestUtils.ts +34 -34
  190. package/src/utils/serialize.js +7 -7
  191. package/src/utils/utils.ts +212 -212
  192. package/tsconfig.json +29 -29
  193. package/typings.d.ts +4 -4
  194. package/dist/common/ENUM.d.ts +0 -40
  195. package/dist/components/Business/AddSelectBusiness/index.d.ts +0 -3
  196. package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +0 -4
  197. package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +0 -4
  198. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.d.ts +0 -4
  199. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.d.ts +0 -17
  200. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.d.ts +0 -30
  201. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.d.ts +0 -3
  202. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.d.ts +0 -2
  203. package/dist/components/Business/BsLayouts/Components/CustomerMenu/index.d.ts +0 -4
  204. package/dist/components/Business/BsLayouts/Components/GlobalHeader/index.d.ts +0 -4
  205. package/dist/components/Business/BsLayouts/Components/RightContent/LoginModal.d.ts +0 -2
  206. package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +0 -8
  207. package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +0 -8
  208. package/dist/components/Business/BsLayouts/index.d.ts +0 -18
  209. package/dist/components/Business/BsLayouts/service.d.ts +0 -1
  210. package/dist/components/Business/BsLayouts/utils.d.ts +0 -10
  211. package/dist/components/Business/BsSulaQueryTable/SearchItemSetting.d.ts +0 -60
  212. package/dist/components/Business/BsSulaQueryTable/index.d.ts +0 -2
  213. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +0 -60
  214. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +0 -98
  215. package/dist/components/Business/CommodityEntry/index.d.ts +0 -2
  216. package/dist/components/Business/CommonAlert/index.d.ts +0 -3
  217. package/dist/components/Business/CommonGuideWrapper/index.d.ts +0 -6
  218. package/dist/components/Business/DetailPageWrapper/index.d.ts +0 -9
  219. package/dist/components/Business/DetailPageWrapper/utils.d.ts +0 -8
  220. package/dist/components/Business/HomePageWrapper/index.d.ts +0 -3
  221. package/dist/components/Business/JsonQueryTable/components/FieldsModifyModal.d.ts +0 -2
  222. package/dist/components/Business/JsonQueryTable/components/FieldsSettingsTable.d.ts +0 -2
  223. package/dist/components/Business/JsonQueryTable/components/Formula.d.ts +0 -6
  224. package/dist/components/Business/JsonQueryTable/components/MaintainOptions.d.ts +0 -2
  225. package/dist/components/Business/JsonQueryTable/drawer/index.d.ts +0 -2
  226. package/dist/components/Business/JsonQueryTable/function.d.ts +0 -37
  227. package/dist/components/Business/JsonQueryTable/index.d.ts +0 -4
  228. package/dist/components/Business/JsonQueryTable/static.d.ts +0 -41
  229. package/dist/components/Business/SearchSelect/BusinessUtils.d.ts +0 -5
  230. package/dist/components/Business/SearchSelect/common.d.ts +0 -25
  231. package/dist/components/Business/SearchSelect/index.d.ts +0 -3
  232. package/dist/components/Business/SearchSelect/utils.d.ts +0 -5
  233. package/dist/components/Business/StateFlow/index.d.ts +0 -3
  234. package/dist/components/Business/TreeSearchSelect/index.d.ts +0 -3
  235. package/dist/components/Business/TreeSearchSelect/utils.d.ts +0 -4
  236. package/dist/components/Business/columnSettingTable/columnSetting.d.ts +0 -54
  237. package/dist/components/Business/columnSettingTable/index.d.ts +0 -16
  238. package/dist/components/Business/columnSettingTable/sulaSettingTable.d.ts +0 -17
  239. package/dist/components/Business/columnSettingTable/utils.d.ts +0 -8
  240. package/dist/components/Business/moreTreeTable/FixedScrollBar.d.ts +0 -3
  241. package/dist/components/Business/moreTreeTable/hooks/useSticky.d.ts +0 -8
  242. package/dist/components/Business/moreTreeTable/index.d.ts +0 -4
  243. package/dist/components/Business/moreTreeTable/utils.d.ts +0 -9
  244. package/dist/components/Functional/AddSelect/helps.d.ts +0 -1
  245. package/dist/components/Functional/AddSelect/index.d.ts +0 -3
  246. package/dist/components/Functional/BillEntry/index.d.ts +0 -4
  247. package/dist/components/Functional/BsAntdSula/BsCascader/index.d.ts +0 -18
  248. package/dist/components/Functional/BsAntdSula/index.d.ts +0 -1
  249. package/dist/components/Functional/DataImport/index.d.ts +0 -144
  250. package/dist/components/Functional/DataValidation/index.d.ts +0 -144
  251. package/dist/components/Functional/ExportFunctions/ExportIcon/index.d.ts +0 -12
  252. package/dist/components/Functional/QueryMutipleInput/index.d.ts +0 -5
  253. package/dist/components/Functional/SearchSelect/index.d.ts +0 -4
  254. package/dist/components/Functional/SearchSelect/utils.d.ts +0 -1
  255. package/dist/components/Functional/TreeSearchSelect/index.d.ts +0 -2
  256. package/dist/components/Solution/RuleComponent/Formula.d.ts +0 -8
  257. package/dist/components/Solution/RuleComponent/services.d.ts +0 -1
  258. package/dist/index.d.ts +0 -28
  259. package/dist/index.esm.js +0 -30692
  260. package/dist/index.js +0 -30739
  261. package/dist/plugin/TableColumnSetting/index.d.ts +0 -64
  262. package/dist/plugin/TableColumnSetting/utils.d.ts +0 -1
  263. package/dist/utils/CheckOneUser/index.d.ts +0 -2
  264. package/dist/utils/LocalstorageUtils.d.ts +0 -17
  265. package/dist/utils/TableUtils.d.ts +0 -11
  266. package/dist/utils/checkUtils.d.ts +0 -3
  267. package/dist/utils/enumConfig.d.ts +0 -12
  268. package/dist/utils/index.d.ts +0 -4
  269. package/dist/utils/requestUtils.d.ts +0 -1
  270. package/dist/utils/utils.d.ts +0 -23
@@ -1,385 +1,385 @@
1
- // @ts-nocheck
2
- import { Tree, Button, Modal, Form, Row, Col, message, Input, Menu, Dropdown, Space } from 'antd';
3
- import React from 'react';
4
- import type { FormInstance } from 'antd/es/form';
5
- import {
6
- EllipsisOutlined,
7
- FolderOutlined,
8
- } from '@ant-design/icons';
9
- import './index.less';
10
-
11
- const { TreeNode } = Tree;
12
-
13
- class rightTree extends React.Component<any> {
14
- formRef = React.createRef<FormInstance>();
15
- constructor(props: any) {
16
- super(props)
17
- }
18
- state = {
19
- // treeData: [],
20
- expandedKeys: ['0-0', '0-0-0', '0-0-0-0'],
21
- checkedKeys: [],
22
- modalInfo: {
23
- modalVisible: false,
24
- type: 'create',
25
- title: '',
26
- callBack: null,
27
- },
28
- };
29
-
30
- onDragEnter = info => {
31
- // console.log(info);
32
- };
33
-
34
- onDrop = info => {
35
- const dropKey = info.node.path;
36
- const dragKey = info.dragNode.path;
37
- const dropPos = info.node.pos.split('-');
38
- const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
39
-
40
- let dragObj;
41
- let finalDropItem;
42
- const loop = (data, path, callback) => {
43
- for (let i = 0; i < data.length; i++) {
44
- if (data[i].path === path) {
45
- return callback(data[i], i, data);
46
- }
47
- if (data[i].children) {
48
- loop(data[i].children, path, callback);
49
- }
50
- }
51
- };
52
- const data = JSON.parse(JSON.stringify(this.props.customerMenuData));
53
-
54
- loop(data, dragKey, (item, index, arr) => {
55
- arr.splice(index, 1);
56
- dragObj = item;
57
- });
58
-
59
- if (!info.dropToGap) {
60
- // Drop on the content
61
- loop(data, dropKey, item => {
62
- item.children = item.children || [];
63
- item.children.unshift(dragObj);
64
- finalDropItem = {
65
- ...item
66
- };
67
- });
68
- } else if (
69
- (info.node.props.children || []).length > 0 && // Has children
70
- info.node.props.expanded && // Is expanded
71
- dropPosition === 1 // On the bottom gap
72
- ) {
73
- loop(data, dropKey, item => {
74
- item.children = item.children || [];
75
- item.children.unshift(dragObj);
76
- finalDropItem = {
77
- ...item
78
- };
79
- });
80
- } else {
81
- let ar;
82
- let i;
83
- loop(data, dropKey, (item, index, arr) => {
84
- ar = arr;
85
- i = index;
86
- });
87
- if (dropPosition === -1) {
88
- ar.splice(i, 0, dragObj);
89
- } else {
90
- ar.splice(i + 1, 0, dragObj);
91
- }
92
- }
93
- if (finalDropItem && finalDropItem.component) {
94
- message.warning('页面菜单不可存放其他其他菜单。');
95
- return;
96
- }
97
- this.props.setCustomerMenuData([...data]);
98
- };
99
-
100
- handleSubmit = () => {
101
-
102
- const {
103
- modalInfo: { callBack },
104
- } = this.state;
105
- this.formRef?.current?.validateFields()
106
- .then(values => {
107
- callBack && callBack(values.name);
108
- });
109
-
110
- }
111
-
112
- handleModalClose = () => {
113
- this.setState({
114
- modalInfo: {
115
- modalVisible: false
116
- }
117
- })
118
- }
119
-
120
- handleEditTreeNode = (e, item) => {
121
- const { modalInfo } = this.state;
122
- const { customerMenuData } = this.props;
123
- this.setState({
124
- modalInfo: {
125
- ...modalInfo,
126
- modalVisible: true,
127
- title: '编辑名称',
128
- callBack: (newName: string) => {
129
- let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
130
- const editTreeDataName = (oldTreeData: Array<any>) => {
131
- oldTreeData.forEach(treeItem => {
132
- if (treeItem.path === item.path) {
133
- treeItem.name = newName;
134
- }
135
- if (treeItem.children) {
136
- editTreeDataName(treeItem.children);
137
- }
138
- })
139
- }
140
- editTreeDataName(oldTreeData);
141
- this.props.setCustomerMenuData([...oldTreeData]);
142
- this.setState({
143
- modalInfo: {
144
- modalVisible: false
145
- }
146
- })
147
- }
148
- }
149
- })
150
- }
151
-
152
-
153
- deleteNode = (oldTreeData: any[], path: string) => {
154
- oldTreeData.forEach((node, index) => {
155
- if (node.path === path) {
156
- oldTreeData.splice(index, 1);
157
- }
158
- if (node.children) {
159
- this.deleteNode(node.children, path)
160
- }
161
- })
162
- }
163
-
164
- handleDeleteTreeNode = (e, item) => {
165
- const { customerMenuData } = this.props;
166
- let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
167
- this.deleteNode(oldTreeData, item.path);
168
- this.props.setCustomerMenuData([...oldTreeData]);
169
- }
170
-
171
-
172
- handleBatchDelete = () => {
173
- const { checkedKeys } = this.state;
174
- const { customerMenuData } = this.props;
175
- let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
176
- checkedKeys.forEach(key => {
177
- this.deleteNode(oldTreeData, key);
178
- })
179
- this.props.setCustomerMenuData([...oldTreeData]);
180
- }
181
-
182
- handleAddTreeNode = (e, item) => {
183
- const { modalInfo } = this.state;
184
- const { customerMenuData } = this.props;
185
- this.setState({
186
- modalInfo: {
187
- ...modalInfo,
188
- modalVisible: true,
189
- title: '新增子目录',
190
- callBack: (newName: string) => {
191
- let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
192
- const addChildFolder = (oldTreeData: Array<any>) => {
193
- oldTreeData.forEach(treeItem => {
194
- if (treeItem.path === item.path) {
195
- treeItem.children ?
196
- treeItem.children.push({
197
- path: Math.random() + 'folder',
198
- name: newName,
199
- }) :
200
- treeItem.children = [{
201
- path: Math.random() + 'folder',
202
- name: newName,
203
- }]
204
- }
205
- if (treeItem.children) {
206
- addChildFolder(treeItem.children);
207
- }
208
- })
209
- }
210
- addChildFolder(oldTreeData);
211
- this.props.setCustomerMenuData([...oldTreeData]);
212
- this.setState({
213
- modalInfo: {
214
- modalVisible: false
215
- }
216
- })
217
- }
218
- }
219
- })
220
- }
221
-
222
- onCheck = (checkedKeysValue: React.Key[]) => {
223
- this.setState({
224
- checkedKeys: checkedKeysValue
225
- })
226
- };
227
-
228
- getChildMenu = (item: any) => {
229
-
230
- let items = [
231
- {
232
- label: <Button type='link' onClick={(e) => { this.handleAddTreeNode(e, item) }} >新建文件夹</Button>,
233
- key: '0',
234
- },
235
- {
236
- label: <Button type='link' onClick={(e) => { this.handleEditTreeNode(e, item) }} >重命名</Button>,
237
- key: '1',
238
- },
239
- {
240
- label: <Button type='link' onClick={(e) => { this.handleDeleteTreeNode(e, item) }} >删除</Button>,
241
- key: '2',
242
- },
243
- ];
244
- if (item && item.component) {
245
- items.shift();
246
- }
247
- return (
248
- <Menu
249
- items={items}
250
- />
251
- );
252
- }
253
- render() {
254
- const { modalInfo, checkedKeys } = this.state;
255
- const loop = data =>
256
- data.map(item => {
257
- if (item.children && item.children.length) {
258
- return (
259
- <TreeNode
260
- path={item.path}
261
- icon={<FolderOutlined />}
262
- name={<>
263
- <span>{item.name}</span>
264
- <span className={'tree_node_title'}>
265
- <Dropdown overlay={this.getChildMenu(item)} trigger={['click']}>
266
- <a onClick={e => { e.preventDefault(); e.stopPropagation();}}>
267
- <Space>
268
- <EllipsisOutlined />
269
- </Space>
270
- </a>
271
- </Dropdown>
272
- </span>
273
- </>}
274
- >
275
- {loop(item.children)}
276
- </TreeNode>
277
- );
278
- }
279
- return <TreeNode
280
- path={item.path}
281
- name={<>
282
- <span>{item.name}</span>
283
- <span className={'tree_node_title'}>
284
- <Dropdown overlay={this.getChildMenu(item)} trigger={['click']}>
285
- <a onClick={e => { e.preventDefault(); e.stopPropagation();}}>
286
- <Space>
287
- <EllipsisOutlined />
288
- </Space>
289
- </a>
290
- </Dropdown>
291
- </span>
292
- </>}
293
- />;
294
- });
295
-
296
- return (
297
- <div>
298
- <div className={'tree_title'}>
299
- <div>已设置自定义菜单(可拖动排序)</div>
300
- <div style={{ overflow: 'hidden' }}>
301
- <Button
302
- disabled={checkedKeys.length ? false : true}
303
- onClick={this.handleBatchDelete}
304
- style={{ float: 'right', marginLeft: '10px' }}
305
- >删除</Button>
306
- <Button
307
- type='primary'
308
- ghost
309
- style={{ float: 'right' }}
310
- onClick={() => {
311
- this.setState({
312
- modalInfo: {
313
- modalVisible: true,
314
- type: 'create',
315
- title: '新增一级目录',
316
- callBack: (name: string) => {
317
- const { modalInfo } = this.state;
318
- const { customerMenuData } = this.props;
319
- let newMenu = {
320
- path: Math.random() + 'folder',
321
- name: name,
322
- };
323
- this.props.setCustomerMenuData([...customerMenuData, newMenu]);
324
- this.setState({
325
- modalInfo: {
326
- ...modalInfo,
327
- modalVisible: false
328
- }
329
- })
330
- }
331
- }
332
- })
333
- }}
334
- >
335
- 新建
336
- </Button>
337
- </div>
338
- </div>
339
- <div className={`${'tree_content'} ${'right_tree_content'}`}>
340
- <Tree
341
- className="draggable-tree"
342
- showIcon
343
- showLine={true}
344
- defaultExpandedKeys={this.state.expandedKeys}
345
- draggable
346
- blockNode
347
- onDragEnter={this.onDragEnter}
348
- checkable
349
- onCheck={this.onCheck}
350
- checkedKeys={checkedKeys}
351
- fieldNames={{
352
- title: 'name',
353
- key: 'path',
354
- children: 'children'
355
- }}
356
- onDrop={this.onDrop}
357
- >
358
- {loop(this.props.customerMenuData)}
359
- </Tree>
360
- </div>
361
- <Modal
362
- width={600}
363
- bodyStyle={{ paddingTop: '32px', backgroundColor: '#F7F7F7' }}
364
- destroyOnClose
365
- title={modalInfo.title || ''}
366
- visible={modalInfo.modalVisible}
367
- onOk={this.handleSubmit}
368
- onCancel={this.handleModalClose}
369
- >
370
- <Form ref={this.formRef}>
371
- <Row>
372
- <Col span={24}>
373
- <Form.Item name='name' label="名称">
374
- <Input style={{ width: '200px' }} />
375
- </Form.Item>
376
- </Col>
377
- </Row>
378
- </Form>
379
- </Modal>
380
- </div>
381
- );
382
- }
383
- }
384
-
1
+ // @ts-nocheck
2
+ import { Tree, Button, Modal, Form, Row, Col, message, Input, Menu, Dropdown, Space } from 'antd';
3
+ import React from 'react';
4
+ import type { FormInstance } from 'antd/es/form';
5
+ import {
6
+ EllipsisOutlined,
7
+ FolderOutlined,
8
+ } from '@ant-design/icons';
9
+ import './index.less';
10
+
11
+ const { TreeNode } = Tree;
12
+
13
+ class rightTree extends React.Component<any> {
14
+ formRef = React.createRef<FormInstance>();
15
+ constructor(props: any) {
16
+ super(props)
17
+ }
18
+ state = {
19
+ // treeData: [],
20
+ expandedKeys: ['0-0', '0-0-0', '0-0-0-0'],
21
+ checkedKeys: [],
22
+ modalInfo: {
23
+ modalVisible: false,
24
+ type: 'create',
25
+ title: '',
26
+ callBack: null,
27
+ },
28
+ };
29
+
30
+ onDragEnter = info => {
31
+ // console.log(info);
32
+ };
33
+
34
+ onDrop = info => {
35
+ const dropKey = info.node.path;
36
+ const dragKey = info.dragNode.path;
37
+ const dropPos = info.node.pos.split('-');
38
+ const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
39
+
40
+ let dragObj;
41
+ let finalDropItem;
42
+ const loop = (data, path, callback) => {
43
+ for (let i = 0; i < data.length; i++) {
44
+ if (data[i].path === path) {
45
+ return callback(data[i], i, data);
46
+ }
47
+ if (data[i].children) {
48
+ loop(data[i].children, path, callback);
49
+ }
50
+ }
51
+ };
52
+ const data = JSON.parse(JSON.stringify(this.props.customerMenuData));
53
+
54
+ loop(data, dragKey, (item, index, arr) => {
55
+ arr.splice(index, 1);
56
+ dragObj = item;
57
+ });
58
+
59
+ if (!info.dropToGap) {
60
+ // Drop on the content
61
+ loop(data, dropKey, item => {
62
+ item.children = item.children || [];
63
+ item.children.unshift(dragObj);
64
+ finalDropItem = {
65
+ ...item
66
+ };
67
+ });
68
+ } else if (
69
+ (info.node.props.children || []).length > 0 && // Has children
70
+ info.node.props.expanded && // Is expanded
71
+ dropPosition === 1 // On the bottom gap
72
+ ) {
73
+ loop(data, dropKey, item => {
74
+ item.children = item.children || [];
75
+ item.children.unshift(dragObj);
76
+ finalDropItem = {
77
+ ...item
78
+ };
79
+ });
80
+ } else {
81
+ let ar;
82
+ let i;
83
+ loop(data, dropKey, (item, index, arr) => {
84
+ ar = arr;
85
+ i = index;
86
+ });
87
+ if (dropPosition === -1) {
88
+ ar.splice(i, 0, dragObj);
89
+ } else {
90
+ ar.splice(i + 1, 0, dragObj);
91
+ }
92
+ }
93
+ if (finalDropItem && finalDropItem.component) {
94
+ message.warning('页面菜单不可存放其他其他菜单。');
95
+ return;
96
+ }
97
+ this.props.setCustomerMenuData([...data]);
98
+ };
99
+
100
+ handleSubmit = () => {
101
+
102
+ const {
103
+ modalInfo: { callBack },
104
+ } = this.state;
105
+ this.formRef?.current?.validateFields()
106
+ .then(values => {
107
+ callBack && callBack(values.name);
108
+ });
109
+
110
+ }
111
+
112
+ handleModalClose = () => {
113
+ this.setState({
114
+ modalInfo: {
115
+ modalVisible: false
116
+ }
117
+ })
118
+ }
119
+
120
+ handleEditTreeNode = (e, item) => {
121
+ const { modalInfo } = this.state;
122
+ const { customerMenuData } = this.props;
123
+ this.setState({
124
+ modalInfo: {
125
+ ...modalInfo,
126
+ modalVisible: true,
127
+ title: '编辑名称',
128
+ callBack: (newName: string) => {
129
+ let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
130
+ const editTreeDataName = (oldTreeData: Array<any>) => {
131
+ oldTreeData.forEach(treeItem => {
132
+ if (treeItem.path === item.path) {
133
+ treeItem.name = newName;
134
+ }
135
+ if (treeItem.children) {
136
+ editTreeDataName(treeItem.children);
137
+ }
138
+ })
139
+ }
140
+ editTreeDataName(oldTreeData);
141
+ this.props.setCustomerMenuData([...oldTreeData]);
142
+ this.setState({
143
+ modalInfo: {
144
+ modalVisible: false
145
+ }
146
+ })
147
+ }
148
+ }
149
+ })
150
+ }
151
+
152
+
153
+ deleteNode = (oldTreeData: any[], path: string) => {
154
+ oldTreeData.forEach((node, index) => {
155
+ if (node.path === path) {
156
+ oldTreeData.splice(index, 1);
157
+ }
158
+ if (node.children) {
159
+ this.deleteNode(node.children, path)
160
+ }
161
+ })
162
+ }
163
+
164
+ handleDeleteTreeNode = (e, item) => {
165
+ const { customerMenuData } = this.props;
166
+ let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
167
+ this.deleteNode(oldTreeData, item.path);
168
+ this.props.setCustomerMenuData([...oldTreeData]);
169
+ }
170
+
171
+
172
+ handleBatchDelete = () => {
173
+ const { checkedKeys } = this.state;
174
+ const { customerMenuData } = this.props;
175
+ let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
176
+ checkedKeys.forEach(key => {
177
+ this.deleteNode(oldTreeData, key);
178
+ })
179
+ this.props.setCustomerMenuData([...oldTreeData]);
180
+ }
181
+
182
+ handleAddTreeNode = (e, item) => {
183
+ const { modalInfo } = this.state;
184
+ const { customerMenuData } = this.props;
185
+ this.setState({
186
+ modalInfo: {
187
+ ...modalInfo,
188
+ modalVisible: true,
189
+ title: '新增子目录',
190
+ callBack: (newName: string) => {
191
+ let oldTreeData = JSON.parse(JSON.stringify(customerMenuData));
192
+ const addChildFolder = (oldTreeData: Array<any>) => {
193
+ oldTreeData.forEach(treeItem => {
194
+ if (treeItem.path === item.path) {
195
+ treeItem.children ?
196
+ treeItem.children.push({
197
+ path: Math.random() + 'folder',
198
+ name: newName,
199
+ }) :
200
+ treeItem.children = [{
201
+ path: Math.random() + 'folder',
202
+ name: newName,
203
+ }]
204
+ }
205
+ if (treeItem.children) {
206
+ addChildFolder(treeItem.children);
207
+ }
208
+ })
209
+ }
210
+ addChildFolder(oldTreeData);
211
+ this.props.setCustomerMenuData([...oldTreeData]);
212
+ this.setState({
213
+ modalInfo: {
214
+ modalVisible: false
215
+ }
216
+ })
217
+ }
218
+ }
219
+ })
220
+ }
221
+
222
+ onCheck = (checkedKeysValue: React.Key[]) => {
223
+ this.setState({
224
+ checkedKeys: checkedKeysValue
225
+ })
226
+ };
227
+
228
+ getChildMenu = (item: any) => {
229
+
230
+ let items = [
231
+ {
232
+ label: <Button type='link' onClick={(e) => { this.handleAddTreeNode(e, item) }} >新建文件夹</Button>,
233
+ key: '0',
234
+ },
235
+ {
236
+ label: <Button type='link' onClick={(e) => { this.handleEditTreeNode(e, item) }} >重命名</Button>,
237
+ key: '1',
238
+ },
239
+ {
240
+ label: <Button type='link' onClick={(e) => { this.handleDeleteTreeNode(e, item) }} >删除</Button>,
241
+ key: '2',
242
+ },
243
+ ];
244
+ if (item && item.component) {
245
+ items.shift();
246
+ }
247
+ return (
248
+ <Menu
249
+ items={items}
250
+ />
251
+ );
252
+ }
253
+ render() {
254
+ const { modalInfo, checkedKeys } = this.state;
255
+ const loop = data =>
256
+ data.map(item => {
257
+ if (item.children && item.children.length) {
258
+ return (
259
+ <TreeNode
260
+ path={item.path}
261
+ icon={<FolderOutlined />}
262
+ name={<>
263
+ <span>{item.name}</span>
264
+ <span className={'tree_node_title'}>
265
+ <Dropdown overlay={this.getChildMenu(item)} trigger={['click']}>
266
+ <a onClick={e => { e.preventDefault(); e.stopPropagation();}}>
267
+ <Space>
268
+ <EllipsisOutlined />
269
+ </Space>
270
+ </a>
271
+ </Dropdown>
272
+ </span>
273
+ </>}
274
+ >
275
+ {loop(item.children)}
276
+ </TreeNode>
277
+ );
278
+ }
279
+ return <TreeNode
280
+ path={item.path}
281
+ name={<>
282
+ <span>{item.name}</span>
283
+ <span className={'tree_node_title'}>
284
+ <Dropdown overlay={this.getChildMenu(item)} trigger={['click']}>
285
+ <a onClick={e => { e.preventDefault(); e.stopPropagation();}}>
286
+ <Space>
287
+ <EllipsisOutlined />
288
+ </Space>
289
+ </a>
290
+ </Dropdown>
291
+ </span>
292
+ </>}
293
+ />;
294
+ });
295
+
296
+ return (
297
+ <div>
298
+ <div className={'tree_title'}>
299
+ <div>已设置自定义菜单(可拖动排序)</div>
300
+ <div style={{ overflow: 'hidden' }}>
301
+ <Button
302
+ disabled={checkedKeys.length ? false : true}
303
+ onClick={this.handleBatchDelete}
304
+ style={{ float: 'right', marginLeft: '10px' }}
305
+ >删除</Button>
306
+ <Button
307
+ type='primary'
308
+ ghost
309
+ style={{ float: 'right' }}
310
+ onClick={() => {
311
+ this.setState({
312
+ modalInfo: {
313
+ modalVisible: true,
314
+ type: 'create',
315
+ title: '新增一级目录',
316
+ callBack: (name: string) => {
317
+ const { modalInfo } = this.state;
318
+ const { customerMenuData } = this.props;
319
+ let newMenu = {
320
+ path: Math.random() + 'folder',
321
+ name: name,
322
+ };
323
+ this.props.setCustomerMenuData([...customerMenuData, newMenu]);
324
+ this.setState({
325
+ modalInfo: {
326
+ ...modalInfo,
327
+ modalVisible: false
328
+ }
329
+ })
330
+ }
331
+ }
332
+ })
333
+ }}
334
+ >
335
+ 新建
336
+ </Button>
337
+ </div>
338
+ </div>
339
+ <div className={`${'tree_content'} ${'right_tree_content'}`}>
340
+ <Tree
341
+ className="draggable-tree"
342
+ showIcon
343
+ showLine={true}
344
+ defaultExpandedKeys={this.state.expandedKeys}
345
+ draggable
346
+ blockNode
347
+ onDragEnter={this.onDragEnter}
348
+ checkable
349
+ onCheck={this.onCheck}
350
+ checkedKeys={checkedKeys}
351
+ fieldNames={{
352
+ title: 'name',
353
+ key: 'path',
354
+ children: 'children'
355
+ }}
356
+ onDrop={this.onDrop}
357
+ >
358
+ {loop(this.props.customerMenuData)}
359
+ </Tree>
360
+ </div>
361
+ <Modal
362
+ width={600}
363
+ bodyStyle={{ paddingTop: '32px', backgroundColor: '#F7F7F7' }}
364
+ destroyOnClose
365
+ title={modalInfo.title || ''}
366
+ visible={modalInfo.modalVisible}
367
+ onOk={this.handleSubmit}
368
+ onCancel={this.handleModalClose}
369
+ >
370
+ <Form ref={this.formRef}>
371
+ <Row>
372
+ <Col span={24}>
373
+ <Form.Item name='name' label="名称">
374
+ <Input style={{ width: '200px' }} />
375
+ </Form.Item>
376
+ </Col>
377
+ </Row>
378
+ </Form>
379
+ </Modal>
380
+ </div>
381
+ );
382
+ }
383
+ }
384
+
385
385
  export default rightTree;