cloud-b2b 1.1.58 → 1.1.59

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 (308) hide show
  1. package/package.json +44 -22
  2. package/src/Area/Area.js +94 -0
  3. package/src/Card/Card.js +16 -0
  4. package/src/CodeInput/CodeInput.js +76 -0
  5. package/src/Control/Control.js +338 -0
  6. package/src/Control/event.js +45 -0
  7. package/src/Enhance/Dialogs.js +24 -0
  8. package/src/Enhance/Loading.js +83 -0
  9. package/{es → src}/Enhance/index.js +8 -6
  10. package/src/Header/Header.js +149 -0
  11. package/src/Header/Vertical.js +74 -0
  12. package/src/ImageView/ImageView.js +62 -0
  13. package/src/Indent/Indent.js +12 -0
  14. package/src/InpurCascader/InputCascader.js +83 -0
  15. package/src/InputEditor/InputEditor.js +93 -0
  16. package/src/InputSearch/InputSearch.js +186 -0
  17. package/src/InputSelect/InputSelect.js +103 -0
  18. package/src/InputTreeSelect/InputTreeSelect.js +87 -0
  19. package/src/InputWriting/InputWriting.js +65 -0
  20. package/src/Layout/Layout.js +121 -0
  21. package/src/LayoutLink/LayoutLink.js +59 -0
  22. package/src/Link/Link.js +57 -0
  23. package/src/Loading/Loading.js +15 -0
  24. package/src/Loading2/Loading2.js +15 -0
  25. package/src/ModalWithDrag/ModalWithDrag.js +17 -0
  26. package/{es → src}/ModalWithDrag/drag.js +128 -116
  27. package/src/NumberInput/NumberInput.js +137 -0
  28. package/src/Search/Search.js +368 -0
  29. package/src/Search2/Search.js +436 -0
  30. package/{lib/Search → src/Search2}/Search.less +65 -63
  31. package/{lib/Search → src/Search2}/package.json +6 -6
  32. package/src/Sidebar/Sidebar.js +111 -0
  33. package/src/Sidebar2/Sidebar.js +143 -0
  34. package/src/SuperForm/SuperForm.js +519 -0
  35. package/src/SuperForm2/SuperForm.js +588 -0
  36. package/src/SuperIcon/SuperIcon.js +14 -0
  37. package/src/SuperPagination/SuperPagination.js +65 -0
  38. package/src/SuperTab/SuperTab.js +84 -0
  39. package/src/SuperTab2/SuperTab2.js +94 -0
  40. package/src/SuperTable/DragSortRow.js +62 -0
  41. package/src/SuperTable/FilterDropDown.js +111 -0
  42. package/src/SuperTable/SuperTable.js +590 -0
  43. package/src/SuperTable/fixed.js +34 -0
  44. package/src/SuperTable2/SuperTable2.js +624 -0
  45. package/src/SuperTable2/SuperTableCell.js +175 -0
  46. package/src/SuperTable3/FilterDropDown.js +111 -0
  47. package/src/SuperTable3/SuperTable.js +498 -0
  48. package/src/SuperTable3/fixed.js +34 -0
  49. package/src/SuperToolbar/SuperToolbar.js +128 -0
  50. package/src/SuperUpload/SuperUpload.js +137 -0
  51. package/src/Title/Title.js +18 -0
  52. package/src/Viewer/ImageViews.js +220 -0
  53. package/src/Viewer/Viewer.js +97 -0
  54. package/src/WingBlank/WingBlank.js +14 -0
  55. package/src/helper.js +185 -0
  56. package/{es → src}/history.js +6 -6
  57. package/src/index.js +39 -0
  58. package/src/variables.js +5 -0
  59. package/test/index.html +10 -0
  60. package/test/test.js +16 -0
  61. package/test/test.less +12 -0
  62. package/test/webpack.config.js +71 -0
  63. package/tools/babel.config.js +14 -0
  64. package/tools/build.js +70 -0
  65. package/tools/publish.js +9 -0
  66. package/tools/util.js +53 -0
  67. package/es/Area/Area.js +0 -141
  68. package/es/Card/Card.js +0 -19
  69. package/es/CodeInput/CodeInput.js +0 -123
  70. package/es/Control/Control.js +0 -444
  71. package/es/Control/event.js +0 -43
  72. package/es/Enhance/Dialogs.js +0 -52
  73. package/es/Enhance/Loading.js +0 -131
  74. package/es/Header/Header.js +0 -162
  75. package/es/Header/Vertical.js +0 -106
  76. package/es/ImageView/ImageView.js +0 -100
  77. package/es/Indent/Indent.js +0 -19
  78. package/es/InpurCascader/InputCascader.js +0 -117
  79. package/es/InputEditor/InputEditor.js +0 -173
  80. package/es/InputSearch/InputSearch.js +0 -266
  81. package/es/InputSelect/InputSelect.js +0 -160
  82. package/es/InputTreeSelect/InputTreeSelect.js +0 -121
  83. package/es/InputWriting/InputWriting.js +0 -85
  84. package/es/Layout/Layout.js +0 -201
  85. package/es/LayoutLink/LayoutLink.js +0 -73
  86. package/es/Link/Link.js +0 -85
  87. package/es/Loading/Loading.js +0 -13
  88. package/es/Loading2/Loading2.js +0 -9
  89. package/es/ModalWithDrag/ModalWithDrag.js +0 -29
  90. package/es/NumberInput/NumberInput.js +0 -200
  91. package/es/Search/Search.js +0 -497
  92. package/es/Sidebar/Sidebar.js +0 -144
  93. package/es/Sidebar2/Sidebar.js +0 -165
  94. package/es/SuperForm/SuperForm.js +0 -598
  95. package/es/SuperForm2/SuperForm.js +0 -687
  96. package/es/SuperIcon/SuperIcon.js +0 -27
  97. package/es/SuperPagination/SuperPagination.js +0 -109
  98. package/es/SuperTab/SuperTab.js +0 -107
  99. package/es/SuperTab2/SuperTab2.js +0 -145
  100. package/es/SuperTable/DragSortRow.js +0 -97
  101. package/es/SuperTable/FilterDropDown.js +0 -164
  102. package/es/SuperTable/SuperTable.js +0 -808
  103. package/es/SuperTable/fixed.js +0 -34
  104. package/es/SuperTable2/SuperTable2.js +0 -926
  105. package/es/SuperTable2/SuperTableCell.js +0 -225
  106. package/es/SuperTable3/FilterDropDown.js +0 -164
  107. package/es/SuperTable3/SuperTable.js +0 -665
  108. package/es/SuperTable3/fixed.js +0 -34
  109. package/es/SuperToolbar/SuperToolbar.js +0 -195
  110. package/es/SuperUpload/SuperUpload.js +0 -356
  111. package/es/Title/Title.js +0 -33
  112. package/es/Viewer/ImageViews.js +0 -258
  113. package/es/Viewer/Viewer.js +0 -122
  114. package/es/WingBlank/WingBlank.js +0 -16
  115. package/es/helper.js +0 -240
  116. package/es/index.js +0 -37
  117. package/es/variables.js +0 -6
  118. package/lib/Area/Area.js +0 -149
  119. package/lib/Area/package.json +0 -6
  120. package/lib/Card/Card.js +0 -27
  121. package/lib/Card/package.json +0 -6
  122. package/lib/CodeInput/CodeInput.js +0 -131
  123. package/lib/CodeInput/package.json +0 -6
  124. package/lib/Control/Control.js +0 -450
  125. package/lib/Control/event.js +0 -51
  126. package/lib/Control/package.json +0 -6
  127. package/lib/Enhance/Dialogs.js +0 -60
  128. package/lib/Enhance/Loading.js +0 -138
  129. package/lib/Enhance/index.js +0 -25
  130. package/lib/Enhance/package.json +0 -6
  131. package/lib/Header/Header.js +0 -169
  132. package/lib/Header/Header.less +0 -95
  133. package/lib/Header/Vertical.js +0 -114
  134. package/lib/Header/Vertical.less +0 -60
  135. package/lib/Header/package.json +0 -6
  136. package/lib/ImageView/ImageView.js +0 -108
  137. package/lib/ImageView/ImageView.less +0 -14
  138. package/lib/ImageView/package.json +0 -6
  139. package/lib/Indent/Indent.js +0 -27
  140. package/lib/Indent/package.json +0 -6
  141. package/lib/InpurCascader/InputCascader.js +0 -124
  142. package/lib/InpurCascader/package.json +0 -6
  143. package/lib/InputEditor/InputEditor.js +0 -181
  144. package/lib/InputEditor/inputEditor.less +0 -8
  145. package/lib/InputEditor/package.json +0 -6
  146. package/lib/InputSearch/InputSearch.js +0 -274
  147. package/lib/InputSearch/package.json +0 -6
  148. package/lib/InputSelect/InputSelect.js +0 -168
  149. package/lib/InputSelect/package.json +0 -6
  150. package/lib/InputTreeSelect/InputTreeSelect.js +0 -128
  151. package/lib/InputTreeSelect/package.json +0 -6
  152. package/lib/InputWriting/InputWriting.js +0 -93
  153. package/lib/InputWriting/package.json +0 -6
  154. package/lib/Layout/Layout.js +0 -209
  155. package/lib/Layout/Layout.less +0 -28
  156. package/lib/Layout/package.json +0 -6
  157. package/lib/LayoutLink/LayoutLink.js +0 -86
  158. package/lib/LayoutLink/LayoutLink.less +0 -53
  159. package/lib/LayoutLink/package.json +0 -6
  160. package/lib/Link/Link.js +0 -93
  161. package/lib/Link/package.json +0 -6
  162. package/lib/Loading/Loading.js +0 -21
  163. package/lib/Loading/Loading.less +0 -13
  164. package/lib/Loading/package.json +0 -6
  165. package/lib/Loading2/Loading2.js +0 -17
  166. package/lib/Loading2/Loading2.less +0 -19
  167. package/lib/Loading2/package.json +0 -6
  168. package/lib/ModalWithDrag/ModalWithDrag.js +0 -37
  169. package/lib/ModalWithDrag/ModalWithDrag.less +0 -6
  170. package/lib/ModalWithDrag/drag.js +0 -124
  171. package/lib/ModalWithDrag/package.json +0 -6
  172. package/lib/NumberInput/NumberInput.js +0 -208
  173. package/lib/NumberInput/package.json +0 -6
  174. package/lib/Search/Search.js +0 -510
  175. package/lib/Sidebar/Sidebar.js +0 -152
  176. package/lib/Sidebar/Sidebar.less +0 -78
  177. package/lib/Sidebar/package.json +0 -6
  178. package/lib/Sidebar2/Sidebar.js +0 -173
  179. package/lib/Sidebar2/Sidebar.less +0 -153
  180. package/lib/Sidebar2/package.json +0 -6
  181. package/lib/SuperForm/SuperForm.js +0 -610
  182. package/lib/SuperForm/SuperForm.less +0 -52
  183. package/lib/SuperForm/package.json +0 -6
  184. package/lib/SuperForm2/SuperForm.js +0 -699
  185. package/lib/SuperForm2/SuperForm.less +0 -52
  186. package/lib/SuperForm2/package.json +0 -6
  187. package/lib/SuperIcon/SuperIcon.js +0 -35
  188. package/lib/SuperIcon/package.json +0 -6
  189. package/lib/SuperPagination/SuperPagination.js +0 -117
  190. package/lib/SuperPagination/package.json +0 -6
  191. package/lib/SuperTab/SuperTab.js +0 -115
  192. package/lib/SuperTab/SuperTab.less +0 -43
  193. package/lib/SuperTab/package.json +0 -6
  194. package/lib/SuperTab2/SuperTab2.js +0 -153
  195. package/lib/SuperTab2/SuperTab2.less +0 -18
  196. package/lib/SuperTab2/package.json +0 -6
  197. package/lib/SuperTable/DragSortRow.js +0 -105
  198. package/lib/SuperTable/DragSortRow.less +0 -17
  199. package/lib/SuperTable/FilterDropDown.js +0 -172
  200. package/lib/SuperTable/FilterDropDown.less +0 -30
  201. package/lib/SuperTable/SuperTable.js +0 -816
  202. package/lib/SuperTable/SuperTable.less +0 -132
  203. package/lib/SuperTable/fixed.js +0 -42
  204. package/lib/SuperTable/package.json +0 -6
  205. package/lib/SuperTable2/SuperTable2.js +0 -939
  206. package/lib/SuperTable2/SuperTable2.less +0 -118
  207. package/lib/SuperTable2/SuperTableCell.js +0 -230
  208. package/lib/SuperTable2/package.json +0 -6
  209. package/lib/SuperTable3/FilterDropDown.js +0 -172
  210. package/lib/SuperTable3/FilterDropDown.less +0 -29
  211. package/lib/SuperTable3/SuperTable.js +0 -673
  212. package/lib/SuperTable3/SuperTable.less +0 -99
  213. package/lib/SuperTable3/fixed.js +0 -42
  214. package/lib/SuperTable3/package.json +0 -6
  215. package/lib/SuperToolbar/SuperToolbar.js +0 -203
  216. package/lib/SuperToolbar/SuperToolbar.less +0 -17
  217. package/lib/SuperToolbar/package.json +0 -6
  218. package/lib/SuperUpload/SuperUpload.js +0 -368
  219. package/lib/SuperUpload/SuperUpload.less +0 -28
  220. package/lib/SuperUpload/package.json +0 -6
  221. package/lib/Title/Title.js +0 -41
  222. package/lib/Title/Title.less +0 -35
  223. package/lib/Title/package.json +0 -6
  224. package/lib/Viewer/ImageViews.js +0 -266
  225. package/lib/Viewer/Viewer.js +0 -130
  226. package/lib/Viewer/Viewer.less +0 -67
  227. package/lib/Viewer/imgView.less +0 -59
  228. package/lib/Viewer/package.json +0 -7
  229. package/lib/WingBlank/WingBlank.js +0 -24
  230. package/lib/WingBlank/WingBlank.less +0 -12
  231. package/lib/WingBlank/package.json +0 -6
  232. package/lib/adjust.less +0 -89
  233. package/lib/helper.js +0 -246
  234. package/lib/history.js +0 -12
  235. package/lib/index.js +0 -271
  236. package/lib/index.less +0 -31
  237. package/lib/style.less +0 -30
  238. package/lib/variables.js +0 -14
  239. package/lib/variables.less +0 -73
  240. /package/{es → src}/Area/package.json +0 -0
  241. /package/{es → src}/Card/package.json +0 -0
  242. /package/{es → src}/CodeInput/package.json +0 -0
  243. /package/{es → src}/Control/package.json +0 -0
  244. /package/{es → src}/Enhance/package.json +0 -0
  245. /package/{es → src}/Header/Header.less +0 -0
  246. /package/{es → src}/Header/Vertical.less +0 -0
  247. /package/{es → src}/Header/package.json +0 -0
  248. /package/{es → src}/ImageView/ImageView.less +0 -0
  249. /package/{es → src}/ImageView/package.json +0 -0
  250. /package/{es → src}/Indent/package.json +0 -0
  251. /package/{es → src}/InpurCascader/package.json +0 -0
  252. /package/{es → src}/InputEditor/inputEditor.less +0 -0
  253. /package/{es → src}/InputEditor/package.json +0 -0
  254. /package/{es → src}/InputSearch/package.json +0 -0
  255. /package/{es → src}/InputSelect/package.json +0 -0
  256. /package/{es → src}/InputTreeSelect/package.json +0 -0
  257. /package/{es → src}/InputWriting/package.json +0 -0
  258. /package/{es → src}/Layout/Layout.less +0 -0
  259. /package/{es → src}/Layout/package.json +0 -0
  260. /package/{es → src}/LayoutLink/LayoutLink.less +0 -0
  261. /package/{es → src}/LayoutLink/package.json +0 -0
  262. /package/{es → src}/Link/package.json +0 -0
  263. /package/{es → src}/Loading/Loading.less +0 -0
  264. /package/{es → src}/Loading/package.json +0 -0
  265. /package/{es → src}/Loading2/Loading2.less +0 -0
  266. /package/{es → src}/Loading2/package.json +0 -0
  267. /package/{es → src}/ModalWithDrag/ModalWithDrag.less +0 -0
  268. /package/{es → src}/ModalWithDrag/package.json +0 -0
  269. /package/{es → src}/NumberInput/package.json +0 -0
  270. /package/{es → src}/Search/Search.less +0 -0
  271. /package/{es → src}/Search/package.json +0 -0
  272. /package/{es → src}/Sidebar/Sidebar.less +0 -0
  273. /package/{es → src}/Sidebar/package.json +0 -0
  274. /package/{es → src}/Sidebar2/Sidebar.less +0 -0
  275. /package/{es → src}/Sidebar2/package.json +0 -0
  276. /package/{es → src}/SuperForm/SuperForm.less +0 -0
  277. /package/{es → src}/SuperForm/package.json +0 -0
  278. /package/{es → src}/SuperForm2/SuperForm.less +0 -0
  279. /package/{es → src}/SuperForm2/package.json +0 -0
  280. /package/{es → src}/SuperIcon/package.json +0 -0
  281. /package/{es → src}/SuperPagination/package.json +0 -0
  282. /package/{es → src}/SuperTab/SuperTab.less +0 -0
  283. /package/{es → src}/SuperTab/package.json +0 -0
  284. /package/{es → src}/SuperTab2/SuperTab2.less +0 -0
  285. /package/{es → src}/SuperTab2/package.json +0 -0
  286. /package/{es → src}/SuperTable/DragSortRow.less +0 -0
  287. /package/{es → src}/SuperTable/FilterDropDown.less +0 -0
  288. /package/{es → src}/SuperTable/SuperTable.less +0 -0
  289. /package/{es → src}/SuperTable/package.json +0 -0
  290. /package/{es → src}/SuperTable2/SuperTable2.less +0 -0
  291. /package/{es → src}/SuperTable2/package.json +0 -0
  292. /package/{es → src}/SuperTable3/FilterDropDown.less +0 -0
  293. /package/{es → src}/SuperTable3/SuperTable.less +0 -0
  294. /package/{es → src}/SuperTable3/package.json +0 -0
  295. /package/{es → src}/SuperToolbar/SuperToolbar.less +0 -0
  296. /package/{es → src}/SuperToolbar/package.json +0 -0
  297. /package/{es → src}/SuperUpload/SuperUpload.less +0 -0
  298. /package/{es → src}/SuperUpload/package.json +0 -0
  299. /package/{es → src}/Title/Title.less +0 -0
  300. /package/{es → src}/Title/package.json +0 -0
  301. /package/{es → src}/Viewer/Viewer.less +0 -0
  302. /package/{es → src}/Viewer/imgView.less +0 -0
  303. /package/{es → src}/Viewer/package.json +0 -0
  304. /package/{es → src}/WingBlank/WingBlank.less +0 -0
  305. /package/{es → src}/WingBlank/package.json +0 -0
  306. /package/{es → src}/adjust.less +0 -0
  307. /package/{es → src}/style.less +0 -0
  308. /package/{es → src}/variables.less +0 -0
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import {Spin} from 'antd';
3
+ import variables from '../variables';
4
+
5
+ function Loading() {
6
+ return (
7
+ <div className={variables('Loading2')}>
8
+ <div>
9
+ <Spin />
10
+ </div>
11
+ </div>
12
+ );
13
+ }
14
+
15
+ export default Loading;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import {Modal} from 'antd';
3
+ import drag from './drag';
4
+ import variables from '../variables';
5
+
6
+ const onLoad = (e) => {
7
+ const dragElement = e.parentNode.parentNode;
8
+ const targetElement = dragElement.parentNode.parentNode;
9
+ drag(dragElement, targetElement);
10
+ };
11
+
12
+ const ModalWithDrag = ({className, children, title, ...props}) => {
13
+ props.title = <div ref={(e) => e && onLoad(e)}>{title}</div>;
14
+ return <Modal className={`${className} ${variables('ModalWithDrag')}`} {...props}>{children}</Modal>;
15
+ };
16
+
17
+ export default ModalWithDrag;
@@ -1,116 +1,128 @@
1
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
2
- import _parseInt from "@babel/runtime-corejs3/core-js-stable/parse-int";
3
- // 依据CSS3的transform属性进行移动
4
- var dragByTransform = function dragByTransform(dragElement, targetElement) {
5
- var mouseMove = null;
6
- var mouseUp = null;
7
- var active = false;
8
- var offsetX = 0;
9
- var offsetY = 0;
10
- var x = 0;
11
- var y = 0;
12
- dragElement.style.cursor = 'move';
13
- dragElement.onmousedown = function (e) {
14
- mouseMove = document.onmousemove;
15
- mouseUp = document.onmouseup;
16
- x = e.clientX;
17
- y = e.clientY;
18
- active = true;
19
-
20
- // 如果下拉框拥有焦点,通过使其失去焦点来关闭掉下拉框
21
- if (document.activeElement && document.activeElement !== dragElement) {
22
- document.activeElement.blur();
23
- }
24
- document.onmousemove = function (e) {
25
- if (active) {
26
- var _context;
27
- var x2 = offsetX + e.clientX - x;
28
- var y2 = offsetY + e.clientY - y;
29
- targetElement.style.transform = _concatInstanceProperty(_context = "translate(".concat(x2, "px, ")).call(_context, y2, "px)");
30
- }
31
- mouseMove && mouseMove(e);
32
- };
33
- document.onmouseup = function (e) {
34
- if (active) {
35
- document.onmousemove = mouseMove;
36
- document.onmouseup = mouseUp;
37
- offsetX += e.clientX - x;
38
- offsetY += e.clientY - y;
39
- active = false;
40
- }
41
- mouseUp && mouseUp(e);
42
- };
43
- return false;
44
- };
45
- };
46
-
47
- // 获取相关CSS属性
48
- var getCss = function getCss(o, key) {
49
- return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o)[key];
50
- };
51
-
52
- // 依据position属性进行移动
53
- var dragByPosition = function dragByPosition(dragElement, targetElement) {
54
- var mouseMove = null;
55
- var mouseUp = null;
56
- var active = false;
57
- var left = 0;
58
- var top = 0;
59
- var x = 0;
60
- var y = 0;
61
- dragElement.style.cursor = 'move';
62
- dragElement.onmousedown = function (e) {
63
- mouseMove = document.onmousemove;
64
- mouseUp = document.onmouseup;
65
- x = e.clientX;
66
- y = e.clientY;
67
- active = true;
68
- if (getCss(targetElement, 'left') !== 'auto') {
69
- left = _parseInt(getCss(targetElement, "left"));
70
- }
71
- if (getCss(targetElement, 'top') !== 'auto') {
72
- top = _parseInt(getCss(targetElement, 'top'));
73
- }
74
-
75
- // 如果下拉框拥有焦点,通过使其失去焦点来关闭掉下拉框
76
- if (document.activeElement && document.activeElement !== dragElement) {
77
- document.activeElement.blur();
78
- }
79
- document.onmousemove = function (e) {
80
- if (active) {
81
- var top2 = top + e.clientY - y;
82
- targetElement.style.left = "".concat(left + e.clientX - x, "px");
83
- targetElement.style.top = "".concat(top2 > 0 ? top2 : 0, "px");
84
- }
85
- mouseMove && mouseMove(e);
86
- };
87
- document.onmouseup = function (e) {
88
- if (active) {
89
- document.onmousemove = mouseMove;
90
- document.onmouseup = mouseUp;
91
- active = false;
92
- }
93
- mouseUp && mouseUp(e);
94
- };
95
- return false;
96
- };
97
- };
98
- var drag = function drag(dragElement, targetElement) {
99
- if (!dragElement || !targetElement) {
100
- console.error('请传入有效的HTML元素对象');
101
- return;
102
- }
103
-
104
- // 已经绑定过,不需要再次绑定
105
- if (dragElement.onmousedown) {
106
- return;
107
- }
108
-
109
- // 如果目标元素是非定位元素采用transform属性进行移动
110
- if (getCss(targetElement, 'position') === 'static') {
111
- dragByTransform(dragElement, targetElement);
112
- } else {
113
- dragByPosition(dragElement, targetElement);
114
- }
115
- };
116
- export default drag;
1
+
2
+ // 依据CSS3的transform属性进行移动
3
+ const dragByTransform = (dragElement, targetElement) => {
4
+ let mouseMove = null;
5
+ let mouseUp = null;
6
+ let active = false;
7
+ let offsetX = 0;
8
+ let offsetY = 0;
9
+ let x = 0;
10
+ let y = 0;
11
+
12
+ dragElement.style.cursor = 'move';
13
+
14
+ dragElement.onmousedown = (e) => {
15
+ mouseMove = document.onmousemove;
16
+ mouseUp = document.onmouseup;
17
+ x = e.clientX;
18
+ y = e.clientY;
19
+ active = true;
20
+
21
+ // 如果下拉框拥有焦点,通过使其失去焦点来关闭掉下拉框
22
+ if (document.activeElement && document.activeElement !== dragElement) {
23
+ document.activeElement.blur();
24
+ }
25
+
26
+ document.onmousemove = (e) => {
27
+ if (active) {
28
+ const x2 = offsetX + e.clientX - x;
29
+ const y2 = offsetY + e.clientY - y;
30
+ targetElement.style.transform = `translate(${x2}px, ${y2}px)`;
31
+ }
32
+ mouseMove && mouseMove(e);
33
+ };
34
+
35
+ document.onmouseup = (e) => {
36
+ if (active) {
37
+ document.onmousemove = mouseMove;
38
+ document.onmouseup = mouseUp;
39
+ offsetX += e.clientX - x;
40
+ offsetY += e.clientY - y;
41
+ active = false;
42
+ }
43
+ mouseUp && mouseUp(e);
44
+ };
45
+
46
+ return false;
47
+ };
48
+ };
49
+
50
+ // 获取相关CSS属性
51
+ const getCss = (o, key) => {
52
+ return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o)[key];
53
+ };
54
+
55
+ // 依据position属性进行移动
56
+ const dragByPosition = (dragElement, targetElement) => {
57
+ let mouseMove = null;
58
+ let mouseUp = null;
59
+ let active = false;
60
+ let left = 0;
61
+ let top = 0;
62
+ let x = 0;
63
+ let y = 0;
64
+
65
+ dragElement.style.cursor = 'move';
66
+
67
+ dragElement.onmousedown = (e) => {
68
+ mouseMove = document.onmousemove;
69
+ mouseUp = document.onmouseup;
70
+ x = e.clientX;
71
+ y = e.clientY;
72
+ active = true;
73
+
74
+ if (getCss(targetElement, 'left') !== 'auto'){
75
+ left = parseInt(getCss(targetElement, "left"));
76
+ }
77
+
78
+ if (getCss(targetElement, 'top') !== 'auto'){
79
+ top = parseInt(getCss(targetElement, 'top'));
80
+ }
81
+
82
+ // 如果下拉框拥有焦点,通过使其失去焦点来关闭掉下拉框
83
+ if (document.activeElement && document.activeElement !== dragElement) {
84
+ document.activeElement.blur();
85
+ }
86
+
87
+ document.onmousemove = (e) => {
88
+ if (active) {
89
+ const top2 = top + e.clientY - y;
90
+ targetElement.style.left = `${left + e.clientX - x}px`;
91
+ targetElement.style.top = `${top2 > 0 ? top2 : 0}px`;
92
+ }
93
+ mouseMove && mouseMove(e);
94
+ };
95
+
96
+ document.onmouseup = (e) => {
97
+ if (active) {
98
+ document.onmousemove = mouseMove;
99
+ document.onmouseup = mouseUp;
100
+ active = false;
101
+ }
102
+ mouseUp && mouseUp(e);
103
+ };
104
+
105
+ return false;
106
+ };
107
+ };
108
+
109
+ const drag = (dragElement, targetElement) => {
110
+ if (!dragElement || !targetElement) {
111
+ console.error('请传入有效的HTML元素对象');
112
+ return;
113
+ }
114
+
115
+ // 已经绑定过,不需要再次绑定
116
+ if (dragElement.onmousedown) {
117
+ return;
118
+ }
119
+
120
+ // 如果目标元素是非定位元素采用transform属性进行移动
121
+ if (getCss(targetElement, 'position') === 'static') {
122
+ dragByTransform(dragElement, targetElement);
123
+ } else {
124
+ dragByPosition(dragElement, targetElement);
125
+ }
126
+ };
127
+
128
+ export default drag;
@@ -0,0 +1,137 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import {Input} from 'antd';
4
+ import {getObjectExclude} from '../helper';
5
+
6
+ const parseNumber = (value, {real, sign, zero, precision, fixed, big}) => {
7
+ const invalid = {invalid: true, value: ''};
8
+
9
+ if (value === '') {
10
+ return {value};
11
+ }
12
+
13
+ // 非数字
14
+ value = big ? value : Number(value);
15
+ if (isNaN(value)) {
16
+ return invalid;
17
+ }
18
+
19
+ // 不能为实数,却包含小数点
20
+ if (!real && String(value).includes('.')) {
21
+ return invalid;
22
+ }
23
+
24
+ // 不能为负数,却小于0
25
+ if (!sign && (value < 0)) {
26
+ return invalid;
27
+ }
28
+
29
+ // 不能为0,却为0
30
+ if (!zero && (value === 0)) {
31
+ return invalid;
32
+ }
33
+
34
+ if (real) {
35
+ precision = Number(precision);
36
+ if (precision) {
37
+ value = value.toFixed(precision);
38
+ value = value.toString(); // 将数值转换为字符串
39
+ value = value.replace(/(\.\d*?[1-9])0+$|\.0*$/, "$1"); // 去除小数点后无意义的零
40
+ if (!fixed) {
41
+ value = Number(value);
42
+ }
43
+ }
44
+ }
45
+
46
+ return {value};
47
+ };
48
+
49
+ /**
50
+ * real: true表示带小数点,默认为false
51
+ * sign: true表示带正负号,默认为false
52
+ * precision: real为true时,小数的精度;否则无效
53
+ * zero:true表示可以输入0,默认为false
54
+ * fixed: real为true时生效; true表示固定显示指定精度的小数,精度由precision确定,默认值为false
55
+ * big: big为ture时生效; true标识为大数值,与上面所有属性互斥
56
+ */
57
+ const PROPS = {
58
+ defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
59
+ real: PropTypes.bool,
60
+ sign: PropTypes.bool,
61
+ precision: PropTypes.any,
62
+ zero: PropTypes.bool,
63
+ fixed: PropTypes.bool,
64
+ big:PropTypes.bool,
65
+ inputRef: PropTypes.func,
66
+ onChange: PropTypes.func,
67
+ onBlur: PropTypes.func
68
+ };
69
+
70
+ const PROPS_KEYS = Object.keys(PROPS);
71
+
72
+ class NumberInput extends React.Component {
73
+ static propTypes = PROPS;
74
+ state = {typo: false, value: ''};
75
+
76
+ onChange = (event) => {
77
+ const value = event.target.value;
78
+ if (!this.hasSpecialChar(value)) {
79
+ this.setState({value, typo: true});
80
+ }
81
+ };
82
+
83
+ onBlur = (event) => {
84
+ const {onBlur, onChange, fixed} = this.props;
85
+ if (this.state.typo) {
86
+ const {invalid, value} = this.format(this.state.value, fixed);
87
+ this.setState({typo: false, value: ''});
88
+ if (!invalid) {
89
+ onChange && onChange(value);
90
+ }
91
+ onBlur && onBlur(event); //有输入才触发外部失去焦点事件,避免非必要请求
92
+ }
93
+ };
94
+
95
+ hasSpecialChar = (value) => {
96
+ if (value.includes('+')) {
97
+ return true;
98
+ } else if (!this.props.sign && value.includes('-')) {
99
+ return true;
100
+ } else {
101
+ return !this.props.real && value.includes('.');
102
+ }
103
+ };
104
+
105
+ format = (value, fixed) => {
106
+ const {real, sign, zero, precision,big} = this.props;
107
+ return parseNumber(value, {real, sign, zero, precision, fixed,big});
108
+ };
109
+
110
+ getShowValue = () => {
111
+ if (this.state.typo) {
112
+ // 处于输入状态从state中取值
113
+ return this.state.value;
114
+ } else {
115
+ // 处于非输入状态从props中取值
116
+ return this.format(this.props.defaultValue, this.props.fixed).value;
117
+ }
118
+ };
119
+
120
+ getProps = () => {
121
+ const props = getObjectExclude(this.props, PROPS_KEYS);
122
+ return {
123
+ ...props,
124
+ type: 'text',
125
+ ref: this.props.inputRef || null,
126
+ value: this.getShowValue(),
127
+ onChange: this.onChange,
128
+ onBlur: this.onBlur,
129
+ };
130
+ };
131
+
132
+ render() {
133
+ return <Input {...this.getProps()} />;
134
+ }
135
+ }
136
+
137
+ export default NumberInput;