cloud-b2b 1.1.57 → 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 -138
  68. package/es/Card/Card.js +0 -19
  69. package/es/CodeInput/CodeInput.js +0 -120
  70. package/es/Control/Control.js +0 -444
  71. package/es/Control/event.js +0 -43
  72. package/es/Enhance/Dialogs.js +0 -49
  73. package/es/Enhance/Loading.js +0 -128
  74. package/es/Header/Header.js +0 -159
  75. package/es/Header/Vertical.js +0 -103
  76. package/es/ImageView/ImageView.js +0 -97
  77. package/es/Indent/Indent.js +0 -19
  78. package/es/InpurCascader/InputCascader.js +0 -114
  79. package/es/InputEditor/InputEditor.js +0 -171
  80. package/es/InputSearch/InputSearch.js +0 -263
  81. package/es/InputSelect/InputSelect.js +0 -157
  82. package/es/InputTreeSelect/InputTreeSelect.js +0 -118
  83. package/es/InputWriting/InputWriting.js +0 -82
  84. package/es/Layout/Layout.js +0 -198
  85. package/es/LayoutLink/LayoutLink.js +0 -73
  86. package/es/Link/Link.js +0 -82
  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 -197
  91. package/es/Search/Search.js +0 -494
  92. package/es/Sidebar/Sidebar.js +0 -141
  93. package/es/Sidebar2/Sidebar.js +0 -162
  94. package/es/SuperForm/SuperForm.js +0 -593
  95. package/es/SuperForm2/SuperForm.js +0 -682
  96. package/es/SuperIcon/SuperIcon.js +0 -27
  97. package/es/SuperPagination/SuperPagination.js +0 -106
  98. package/es/SuperTab/SuperTab.js +0 -104
  99. package/es/SuperTab2/SuperTab2.js +0 -142
  100. package/es/SuperTable/DragSortRow.js +0 -94
  101. package/es/SuperTable/FilterDropDown.js +0 -161
  102. package/es/SuperTable/SuperTable.js +0 -805
  103. package/es/SuperTable/fixed.js +0 -34
  104. package/es/SuperTable2/SuperTable2.js +0 -923
  105. package/es/SuperTable2/SuperTableCell.js +0 -215
  106. package/es/SuperTable3/FilterDropDown.js +0 -161
  107. package/es/SuperTable3/SuperTable.js +0 -662
  108. package/es/SuperTable3/fixed.js +0 -34
  109. package/es/SuperToolbar/SuperToolbar.js +0 -192
  110. package/es/SuperUpload/SuperUpload.js +0 -356
  111. package/es/Title/Title.js +0 -33
  112. package/es/Viewer/ImageViews.js +0 -255
  113. package/es/Viewer/Viewer.js +0 -119
  114. package/es/WingBlank/WingBlank.js +0 -16
  115. package/es/helper.js +0 -241
  116. package/es/index.js +0 -37
  117. package/es/variables.js +0 -6
  118. package/lib/Area/Area.js +0 -146
  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 -128
  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 -57
  128. package/lib/Enhance/Loading.js +0 -135
  129. package/lib/Enhance/index.js +0 -25
  130. package/lib/Enhance/package.json +0 -6
  131. package/lib/Header/Header.js +0 -166
  132. package/lib/Header/Header.less +0 -95
  133. package/lib/Header/Vertical.js +0 -111
  134. package/lib/Header/Vertical.less +0 -60
  135. package/lib/Header/package.json +0 -6
  136. package/lib/ImageView/ImageView.js +0 -105
  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 -121
  142. package/lib/InpurCascader/package.json +0 -6
  143. package/lib/InputEditor/InputEditor.js +0 -179
  144. package/lib/InputEditor/inputEditor.less +0 -8
  145. package/lib/InputEditor/package.json +0 -6
  146. package/lib/InputSearch/InputSearch.js +0 -271
  147. package/lib/InputSearch/package.json +0 -6
  148. package/lib/InputSelect/InputSelect.js +0 -165
  149. package/lib/InputSelect/package.json +0 -6
  150. package/lib/InputTreeSelect/InputTreeSelect.js +0 -125
  151. package/lib/InputTreeSelect/package.json +0 -6
  152. package/lib/InputWriting/InputWriting.js +0 -90
  153. package/lib/InputWriting/package.json +0 -6
  154. package/lib/Layout/Layout.js +0 -206
  155. package/lib/Layout/Layout.less +0 -28
  156. package/lib/Layout/package.json +0 -6
  157. package/lib/LayoutLink/LayoutLink.js +0 -85
  158. package/lib/LayoutLink/LayoutLink.less +0 -53
  159. package/lib/LayoutLink/package.json +0 -6
  160. package/lib/Link/Link.js +0 -90
  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 -205
  173. package/lib/NumberInput/package.json +0 -6
  174. package/lib/Search/Search.js +0 -506
  175. package/lib/Sidebar/Sidebar.js +0 -149
  176. package/lib/Sidebar/Sidebar.less +0 -78
  177. package/lib/Sidebar/package.json +0 -6
  178. package/lib/Sidebar2/Sidebar.js +0 -170
  179. package/lib/Sidebar2/Sidebar.less +0 -153
  180. package/lib/Sidebar2/package.json +0 -6
  181. package/lib/SuperForm/SuperForm.js +0 -604
  182. package/lib/SuperForm/SuperForm.less +0 -52
  183. package/lib/SuperForm/package.json +0 -6
  184. package/lib/SuperForm2/SuperForm.js +0 -693
  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 -114
  190. package/lib/SuperPagination/package.json +0 -6
  191. package/lib/SuperTab/SuperTab.js +0 -112
  192. package/lib/SuperTab/SuperTab.less +0 -43
  193. package/lib/SuperTab/package.json +0 -6
  194. package/lib/SuperTab2/SuperTab2.js +0 -150
  195. package/lib/SuperTab2/SuperTab2.less +0 -18
  196. package/lib/SuperTab2/package.json +0 -6
  197. package/lib/SuperTable/DragSortRow.js +0 -102
  198. package/lib/SuperTable/DragSortRow.less +0 -17
  199. package/lib/SuperTable/FilterDropDown.js +0 -169
  200. package/lib/SuperTable/FilterDropDown.less +0 -30
  201. package/lib/SuperTable/SuperTable.js +0 -813
  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 -935
  206. package/lib/SuperTable2/SuperTable2.less +0 -118
  207. package/lib/SuperTable2/SuperTableCell.js +0 -220
  208. package/lib/SuperTable2/package.json +0 -6
  209. package/lib/SuperTable3/FilterDropDown.js +0 -169
  210. package/lib/SuperTable3/FilterDropDown.less +0 -29
  211. package/lib/SuperTable3/SuperTable.js +0 -670
  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 -200
  216. package/lib/SuperToolbar/SuperToolbar.less +0 -17
  217. package/lib/SuperToolbar/package.json +0 -6
  218. package/lib/SuperUpload/SuperUpload.js +0 -367
  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 -263
  225. package/lib/Viewer/Viewer.js +0 -127
  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 -247
  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;