cloud-b2b 1.1.46 → 1.1.51

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 (304) 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/InputTreeSelect/package.json +6 -0
  20. package/src/InputWriting/InputWriting.js +65 -0
  21. package/src/Layout/Layout.js +121 -0
  22. package/src/LayoutLink/LayoutLink.js +59 -0
  23. package/src/Link/Link.js +57 -0
  24. package/src/Loading/Loading.js +15 -0
  25. package/src/Loading2/Loading2.js +15 -0
  26. package/src/ModalWithDrag/ModalWithDrag.js +17 -0
  27. package/{es → src}/ModalWithDrag/drag.js +128 -116
  28. package/src/NumberInput/NumberInput.js +137 -0
  29. package/src/Search/Search.js +368 -0
  30. package/src/Sidebar/Sidebar.js +111 -0
  31. package/src/Sidebar2/Sidebar.js +143 -0
  32. package/src/SuperForm/SuperForm.js +516 -0
  33. package/src/SuperForm2/SuperForm.js +588 -0
  34. package/src/SuperIcon/SuperIcon.js +14 -0
  35. package/src/SuperPagination/SuperPagination.js +65 -0
  36. package/src/SuperTab/SuperTab.js +84 -0
  37. package/src/SuperTab2/SuperTab2.js +94 -0
  38. package/src/SuperTable/DragSortRow.js +62 -0
  39. package/src/SuperTable/FilterDropDown.js +111 -0
  40. package/src/SuperTable/SuperTable.js +590 -0
  41. package/src/SuperTable/fixed.js +34 -0
  42. package/src/SuperTable2/SuperTable2.js +600 -0
  43. package/src/SuperTable2/SuperTableCell.js +144 -0
  44. package/src/SuperTable3/FilterDropDown.js +111 -0
  45. package/src/SuperTable3/SuperTable.js +498 -0
  46. package/src/SuperTable3/fixed.js +34 -0
  47. package/src/SuperToolbar/SuperToolbar.js +128 -0
  48. package/src/SuperUpload/SuperUpload.js +137 -0
  49. package/src/Title/Title.js +18 -0
  50. package/src/Viewer/ImageViews.js +220 -0
  51. package/src/Viewer/Viewer.js +97 -0
  52. package/src/WingBlank/WingBlank.js +14 -0
  53. package/src/helper.js +185 -0
  54. package/{es → src}/history.js +6 -6
  55. package/src/index.js +38 -0
  56. package/src/variables.js +5 -0
  57. package/test/index.html +10 -0
  58. package/test/test.js +16 -0
  59. package/test/test.less +12 -0
  60. package/test/webpack.config.js +71 -0
  61. package/tools/babel.config.js +14 -0
  62. package/tools/build.js +70 -0
  63. package/tools/publish.js +9 -0
  64. package/tools/util.js +53 -0
  65. package/es/Area/Area.js +0 -141
  66. package/es/Card/Card.js +0 -19
  67. package/es/CodeInput/CodeInput.js +0 -123
  68. package/es/Control/Control.js +0 -437
  69. package/es/Control/event.js +0 -43
  70. package/es/Enhance/Dialogs.js +0 -52
  71. package/es/Enhance/Loading.js +0 -131
  72. package/es/Header/Header.js +0 -162
  73. package/es/Header/Vertical.js +0 -106
  74. package/es/ImageView/ImageView.js +0 -100
  75. package/es/Indent/Indent.js +0 -19
  76. package/es/InpurCascader/InputCascader.js +0 -109
  77. package/es/InputEditor/InputEditor.js +0 -114
  78. package/es/InputSearch/InputSearch.js +0 -266
  79. package/es/InputSelect/InputSelect.js +0 -160
  80. package/es/InputWriting/InputWriting.js +0 -85
  81. package/es/Layout/Layout.js +0 -201
  82. package/es/LayoutLink/LayoutLink.js +0 -73
  83. package/es/Link/Link.js +0 -85
  84. package/es/Loading/Loading.js +0 -13
  85. package/es/Loading2/Loading2.js +0 -9
  86. package/es/ModalWithDrag/ModalWithDrag.js +0 -29
  87. package/es/NumberInput/NumberInput.js +0 -200
  88. package/es/Search/Search.js +0 -485
  89. package/es/Sidebar/Sidebar.js +0 -144
  90. package/es/Sidebar2/Sidebar.js +0 -165
  91. package/es/SuperForm/SuperForm.js +0 -583
  92. package/es/SuperForm2/SuperForm.js +0 -677
  93. package/es/SuperIcon/SuperIcon.js +0 -27
  94. package/es/SuperPagination/SuperPagination.js +0 -109
  95. package/es/SuperTab/SuperTab.js +0 -107
  96. package/es/SuperTab2/SuperTab2.js +0 -145
  97. package/es/SuperTable/DragSortRow.js +0 -97
  98. package/es/SuperTable/FilterDropDown.js +0 -164
  99. package/es/SuperTable/SuperTable.js +0 -808
  100. package/es/SuperTable/fixed.js +0 -34
  101. package/es/SuperTable2/SuperTable2.js +0 -894
  102. package/es/SuperTable2/SuperTableCell.js +0 -198
  103. package/es/SuperTable3/FilterDropDown.js +0 -164
  104. package/es/SuperTable3/SuperTable.js +0 -665
  105. package/es/SuperTable3/fixed.js +0 -34
  106. package/es/SuperToolbar/SuperToolbar.js +0 -195
  107. package/es/SuperUpload/SuperUpload.js +0 -357
  108. package/es/Title/Title.js +0 -33
  109. package/es/Viewer/ImageViews.js +0 -258
  110. package/es/Viewer/Viewer.js +0 -122
  111. package/es/WingBlank/WingBlank.js +0 -16
  112. package/es/helper.js +0 -147
  113. package/es/index.js +0 -37
  114. package/es/variables.js +0 -4
  115. package/lib/Area/Area.js +0 -150
  116. package/lib/Area/package.json +0 -6
  117. package/lib/Card/Card.js +0 -28
  118. package/lib/Card/package.json +0 -6
  119. package/lib/CodeInput/CodeInput.js +0 -132
  120. package/lib/CodeInput/package.json +0 -6
  121. package/lib/Control/Control.js +0 -446
  122. package/lib/Control/event.js +0 -52
  123. package/lib/Control/package.json +0 -6
  124. package/lib/Enhance/Dialogs.js +0 -61
  125. package/lib/Enhance/Loading.js +0 -139
  126. package/lib/Enhance/index.js +0 -26
  127. package/lib/Enhance/package.json +0 -6
  128. package/lib/Header/Header.js +0 -170
  129. package/lib/Header/Header.less +0 -95
  130. package/lib/Header/Vertical.js +0 -115
  131. package/lib/Header/Vertical.less +0 -60
  132. package/lib/Header/package.json +0 -6
  133. package/lib/ImageView/ImageView.js +0 -109
  134. package/lib/ImageView/ImageView.less +0 -14
  135. package/lib/ImageView/package.json +0 -6
  136. package/lib/Indent/Indent.js +0 -28
  137. package/lib/Indent/package.json +0 -6
  138. package/lib/InpurCascader/InputCascader.js +0 -117
  139. package/lib/InpurCascader/package.json +0 -6
  140. package/lib/InputEditor/InputEditor.js +0 -123
  141. package/lib/InputEditor/inputEditor.less +0 -8
  142. package/lib/InputEditor/package.json +0 -6
  143. package/lib/InputSearch/InputSearch.js +0 -275
  144. package/lib/InputSearch/package.json +0 -6
  145. package/lib/InputSelect/InputSelect.js +0 -169
  146. package/lib/InputSelect/package.json +0 -6
  147. package/lib/InputWriting/InputWriting.js +0 -94
  148. package/lib/InputWriting/package.json +0 -6
  149. package/lib/Layout/Layout.js +0 -210
  150. package/lib/Layout/Layout.less +0 -28
  151. package/lib/Layout/package.json +0 -6
  152. package/lib/LayoutLink/LayoutLink.js +0 -87
  153. package/lib/LayoutLink/LayoutLink.less +0 -53
  154. package/lib/LayoutLink/package.json +0 -6
  155. package/lib/Link/Link.js +0 -94
  156. package/lib/Link/package.json +0 -6
  157. package/lib/Loading/Loading.js +0 -22
  158. package/lib/Loading/Loading.less +0 -13
  159. package/lib/Loading/package.json +0 -6
  160. package/lib/Loading2/Loading2.js +0 -18
  161. package/lib/Loading2/Loading2.less +0 -19
  162. package/lib/Loading2/package.json +0 -6
  163. package/lib/ModalWithDrag/ModalWithDrag.js +0 -38
  164. package/lib/ModalWithDrag/ModalWithDrag.less +0 -6
  165. package/lib/ModalWithDrag/drag.js +0 -125
  166. package/lib/ModalWithDrag/package.json +0 -6
  167. package/lib/NumberInput/NumberInput.js +0 -209
  168. package/lib/NumberInput/package.json +0 -6
  169. package/lib/Search/Search.js +0 -499
  170. package/lib/Search/Search.less +0 -63
  171. package/lib/Search/package.json +0 -6
  172. package/lib/Sidebar/Sidebar.js +0 -153
  173. package/lib/Sidebar/Sidebar.less +0 -78
  174. package/lib/Sidebar/package.json +0 -6
  175. package/lib/Sidebar2/Sidebar.js +0 -174
  176. package/lib/Sidebar2/Sidebar.less +0 -153
  177. package/lib/Sidebar2/package.json +0 -6
  178. package/lib/SuperForm/SuperForm.js +0 -596
  179. package/lib/SuperForm/SuperForm.less +0 -52
  180. package/lib/SuperForm/package.json +0 -6
  181. package/lib/SuperForm2/SuperForm.js +0 -690
  182. package/lib/SuperForm2/SuperForm.less +0 -52
  183. package/lib/SuperForm2/package.json +0 -6
  184. package/lib/SuperIcon/SuperIcon.js +0 -36
  185. package/lib/SuperIcon/package.json +0 -6
  186. package/lib/SuperPagination/SuperPagination.js +0 -118
  187. package/lib/SuperPagination/package.json +0 -6
  188. package/lib/SuperTab/SuperTab.js +0 -116
  189. package/lib/SuperTab/SuperTab.less +0 -43
  190. package/lib/SuperTab/package.json +0 -6
  191. package/lib/SuperTab2/SuperTab2.js +0 -154
  192. package/lib/SuperTab2/SuperTab2.less +0 -18
  193. package/lib/SuperTab2/package.json +0 -6
  194. package/lib/SuperTable/DragSortRow.js +0 -106
  195. package/lib/SuperTable/DragSortRow.less +0 -17
  196. package/lib/SuperTable/FilterDropDown.js +0 -173
  197. package/lib/SuperTable/FilterDropDown.less +0 -30
  198. package/lib/SuperTable/SuperTable.js +0 -817
  199. package/lib/SuperTable/SuperTable.less +0 -132
  200. package/lib/SuperTable/fixed.js +0 -43
  201. package/lib/SuperTable/package.json +0 -6
  202. package/lib/SuperTable2/SuperTable2.js +0 -908
  203. package/lib/SuperTable2/SuperTable2.less +0 -118
  204. package/lib/SuperTable2/SuperTableCell.js +0 -204
  205. package/lib/SuperTable2/package.json +0 -6
  206. package/lib/SuperTable3/FilterDropDown.js +0 -173
  207. package/lib/SuperTable3/FilterDropDown.less +0 -29
  208. package/lib/SuperTable3/SuperTable.js +0 -674
  209. package/lib/SuperTable3/SuperTable.less +0 -99
  210. package/lib/SuperTable3/fixed.js +0 -43
  211. package/lib/SuperTable3/package.json +0 -6
  212. package/lib/SuperToolbar/SuperToolbar.js +0 -204
  213. package/lib/SuperToolbar/SuperToolbar.less +0 -17
  214. package/lib/SuperToolbar/package.json +0 -6
  215. package/lib/SuperUpload/SuperUpload.js +0 -370
  216. package/lib/SuperUpload/SuperUpload.less +0 -28
  217. package/lib/SuperUpload/package.json +0 -6
  218. package/lib/Title/Title.js +0 -42
  219. package/lib/Title/Title.less +0 -35
  220. package/lib/Title/package.json +0 -6
  221. package/lib/Viewer/ImageViews.js +0 -267
  222. package/lib/Viewer/Viewer.js +0 -131
  223. package/lib/Viewer/Viewer.less +0 -67
  224. package/lib/Viewer/imgView.less +0 -59
  225. package/lib/Viewer/package.json +0 -7
  226. package/lib/WingBlank/WingBlank.js +0 -25
  227. package/lib/WingBlank/WingBlank.less +0 -12
  228. package/lib/WingBlank/package.json +0 -6
  229. package/lib/adjust.less +0 -89
  230. package/lib/helper.js +0 -163
  231. package/lib/history.js +0 -13
  232. package/lib/index.js +0 -271
  233. package/lib/index.less +0 -31
  234. package/lib/style.less +0 -30
  235. package/lib/variables.js +0 -12
  236. package/lib/variables.less +0 -73
  237. /package/{es → src}/Area/package.json +0 -0
  238. /package/{es → src}/Card/package.json +0 -0
  239. /package/{es → src}/CodeInput/package.json +0 -0
  240. /package/{es → src}/Control/package.json +0 -0
  241. /package/{es → src}/Enhance/package.json +0 -0
  242. /package/{es → src}/Header/Header.less +0 -0
  243. /package/{es → src}/Header/Vertical.less +0 -0
  244. /package/{es → src}/Header/package.json +0 -0
  245. /package/{es → src}/ImageView/ImageView.less +0 -0
  246. /package/{es → src}/ImageView/package.json +0 -0
  247. /package/{es → src}/Indent/package.json +0 -0
  248. /package/{es → src}/InpurCascader/package.json +0 -0
  249. /package/{es → src}/InputEditor/inputEditor.less +0 -0
  250. /package/{es → src}/InputEditor/package.json +0 -0
  251. /package/{es → src}/InputSearch/package.json +0 -0
  252. /package/{es → src}/InputSelect/package.json +0 -0
  253. /package/{es → src}/InputWriting/package.json +0 -0
  254. /package/{es → src}/Layout/Layout.less +0 -0
  255. /package/{es → src}/Layout/package.json +0 -0
  256. /package/{es → src}/LayoutLink/LayoutLink.less +0 -0
  257. /package/{es → src}/LayoutLink/package.json +0 -0
  258. /package/{es → src}/Link/package.json +0 -0
  259. /package/{es → src}/Loading/Loading.less +0 -0
  260. /package/{es → src}/Loading/package.json +0 -0
  261. /package/{es → src}/Loading2/Loading2.less +0 -0
  262. /package/{es → src}/Loading2/package.json +0 -0
  263. /package/{es → src}/ModalWithDrag/ModalWithDrag.less +0 -0
  264. /package/{es → src}/ModalWithDrag/package.json +0 -0
  265. /package/{es → src}/NumberInput/package.json +0 -0
  266. /package/{es → src}/Search/Search.less +0 -0
  267. /package/{es → src}/Search/package.json +0 -0
  268. /package/{es → src}/Sidebar/Sidebar.less +0 -0
  269. /package/{es → src}/Sidebar/package.json +0 -0
  270. /package/{es → src}/Sidebar2/Sidebar.less +0 -0
  271. /package/{es → src}/Sidebar2/package.json +0 -0
  272. /package/{es → src}/SuperForm/SuperForm.less +0 -0
  273. /package/{es → src}/SuperForm/package.json +0 -0
  274. /package/{es → src}/SuperForm2/SuperForm.less +0 -0
  275. /package/{es → src}/SuperForm2/package.json +0 -0
  276. /package/{es → src}/SuperIcon/package.json +0 -0
  277. /package/{es → src}/SuperPagination/package.json +0 -0
  278. /package/{es → src}/SuperTab/SuperTab.less +0 -0
  279. /package/{es → src}/SuperTab/package.json +0 -0
  280. /package/{es → src}/SuperTab2/SuperTab2.less +0 -0
  281. /package/{es → src}/SuperTab2/package.json +0 -0
  282. /package/{es → src}/SuperTable/DragSortRow.less +0 -0
  283. /package/{es → src}/SuperTable/FilterDropDown.less +0 -0
  284. /package/{es → src}/SuperTable/SuperTable.less +0 -0
  285. /package/{es → src}/SuperTable/package.json +0 -0
  286. /package/{es → src}/SuperTable2/SuperTable2.less +0 -0
  287. /package/{es → src}/SuperTable2/package.json +0 -0
  288. /package/{es → src}/SuperTable3/FilterDropDown.less +0 -0
  289. /package/{es → src}/SuperTable3/SuperTable.less +0 -0
  290. /package/{es → src}/SuperTable3/package.json +0 -0
  291. /package/{es → src}/SuperToolbar/SuperToolbar.less +0 -0
  292. /package/{es → src}/SuperToolbar/package.json +0 -0
  293. /package/{es → src}/SuperUpload/SuperUpload.less +0 -0
  294. /package/{es → src}/SuperUpload/package.json +0 -0
  295. /package/{es → src}/Title/Title.less +0 -0
  296. /package/{es → src}/Title/package.json +0 -0
  297. /package/{es → src}/Viewer/Viewer.less +0 -0
  298. /package/{es → src}/Viewer/imgView.less +0 -0
  299. /package/{es → src}/Viewer/package.json +0 -0
  300. /package/{es → src}/WingBlank/WingBlank.less +0 -0
  301. /package/{es → src}/WingBlank/package.json +0 -0
  302. /package/{es → src}/adjust.less +0 -0
  303. /package/{es → src}/style.less +0 -0
  304. /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;