cloud-b2b 1.1.59 → 1.1.61

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 (314) hide show
  1. package/es/Area/Area.js +141 -0
  2. package/es/Card/Card.js +19 -0
  3. package/es/CodeInput/CodeInput.js +123 -0
  4. package/es/Control/Control.js +444 -0
  5. package/es/Control/event.js +43 -0
  6. package/es/Enhance/Dialogs.js +52 -0
  7. package/es/Enhance/Loading.js +131 -0
  8. package/{src → es}/Enhance/index.js +6 -8
  9. package/es/Header/Header.js +162 -0
  10. package/es/Header/Vertical.js +106 -0
  11. package/es/ImageView/ImageView.js +100 -0
  12. package/es/Indent/Indent.js +19 -0
  13. package/es/InpurCascader/InputCascader.js +117 -0
  14. package/es/InputEditor/InputEditor.js +173 -0
  15. package/es/InputSearch/InputSearch.js +266 -0
  16. package/es/InputSelect/InputSelect.js +160 -0
  17. package/es/InputTreeSelect/InputTreeSelect.js +121 -0
  18. package/es/InputWriting/InputWriting.js +85 -0
  19. package/es/Layout/Layout.js +201 -0
  20. package/es/LayoutLink/LayoutLink.js +73 -0
  21. package/es/Link/Link.js +85 -0
  22. package/es/Loading/Loading.js +13 -0
  23. package/es/Loading2/Loading2.js +9 -0
  24. package/es/ModalWithDrag/ModalWithDrag.js +29 -0
  25. package/{src → es}/ModalWithDrag/drag.js +116 -128
  26. package/es/NumberInput/NumberInput.js +200 -0
  27. package/es/Search/Search.js +497 -0
  28. package/es/Search2/Search.js +597 -0
  29. package/{src → es}/Search2/Search.less +0 -1
  30. package/es/Sidebar/Sidebar.js +144 -0
  31. package/es/Sidebar2/Sidebar.js +165 -0
  32. package/es/SuperForm/SuperForm.js +598 -0
  33. package/es/SuperForm2/SuperForm.js +687 -0
  34. package/es/SuperIcon/SuperIcon.js +27 -0
  35. package/es/SuperPagination/SuperPagination.js +109 -0
  36. package/es/SuperTab/SuperTab.js +107 -0
  37. package/es/SuperTab2/SuperTab2.js +145 -0
  38. package/es/SuperTable/DragSortRow.js +97 -0
  39. package/es/SuperTable/FilterDropDown.js +164 -0
  40. package/es/SuperTable/SuperTable.js +808 -0
  41. package/es/SuperTable/fixed.js +34 -0
  42. package/es/SuperTable2/SuperTable2.js +926 -0
  43. package/{src → es}/SuperTable2/SuperTable2.less +2 -1
  44. package/es/SuperTable2/SuperTableCell.js +234 -0
  45. package/es/SuperTable3/FilterDropDown.js +164 -0
  46. package/es/SuperTable3/SuperTable.js +665 -0
  47. package/es/SuperTable3/fixed.js +34 -0
  48. package/es/SuperToolbar/SuperToolbar.js +195 -0
  49. package/es/SuperUpload/SuperUpload.js +356 -0
  50. package/es/Title/Title.js +33 -0
  51. package/es/Viewer/ImageViews.js +258 -0
  52. package/es/Viewer/Viewer.js +122 -0
  53. package/es/WingBlank/WingBlank.js +16 -0
  54. package/es/helper.js +240 -0
  55. package/{src → es}/history.js +6 -6
  56. package/es/index.js +38 -0
  57. package/{src → es}/style.less +2 -1
  58. package/es/variables.js +6 -0
  59. package/lib/Area/Area.js +149 -0
  60. package/lib/Area/package.json +6 -0
  61. package/lib/Card/Card.js +27 -0
  62. package/lib/Card/package.json +6 -0
  63. package/lib/CodeInput/CodeInput.js +131 -0
  64. package/lib/CodeInput/package.json +6 -0
  65. package/lib/Control/Control.js +450 -0
  66. package/lib/Control/event.js +51 -0
  67. package/lib/Control/package.json +6 -0
  68. package/lib/Enhance/Dialogs.js +60 -0
  69. package/lib/Enhance/Loading.js +138 -0
  70. package/lib/Enhance/index.js +25 -0
  71. package/lib/Enhance/package.json +6 -0
  72. package/lib/Header/Header.js +169 -0
  73. package/lib/Header/Header.less +95 -0
  74. package/lib/Header/Vertical.js +114 -0
  75. package/lib/Header/Vertical.less +60 -0
  76. package/lib/Header/package.json +6 -0
  77. package/lib/ImageView/ImageView.js +108 -0
  78. package/lib/ImageView/ImageView.less +14 -0
  79. package/lib/ImageView/package.json +6 -0
  80. package/lib/Indent/Indent.js +27 -0
  81. package/lib/Indent/package.json +6 -0
  82. package/lib/InpurCascader/InputCascader.js +124 -0
  83. package/lib/InpurCascader/package.json +6 -0
  84. package/lib/InputEditor/InputEditor.js +181 -0
  85. package/lib/InputEditor/inputEditor.less +8 -0
  86. package/lib/InputEditor/package.json +6 -0
  87. package/lib/InputSearch/InputSearch.js +274 -0
  88. package/lib/InputSearch/package.json +6 -0
  89. package/lib/InputSelect/InputSelect.js +168 -0
  90. package/lib/InputSelect/package.json +6 -0
  91. package/lib/InputTreeSelect/InputTreeSelect.js +128 -0
  92. package/lib/InputTreeSelect/package.json +6 -0
  93. package/lib/InputWriting/InputWriting.js +93 -0
  94. package/lib/InputWriting/package.json +6 -0
  95. package/lib/Layout/Layout.js +209 -0
  96. package/lib/Layout/Layout.less +28 -0
  97. package/lib/Layout/package.json +6 -0
  98. package/lib/LayoutLink/LayoutLink.js +86 -0
  99. package/lib/LayoutLink/LayoutLink.less +53 -0
  100. package/lib/LayoutLink/package.json +6 -0
  101. package/lib/Link/Link.js +93 -0
  102. package/lib/Link/package.json +6 -0
  103. package/lib/Loading/Loading.js +21 -0
  104. package/lib/Loading/Loading.less +13 -0
  105. package/lib/Loading/package.json +6 -0
  106. package/lib/Loading2/Loading2.js +17 -0
  107. package/lib/Loading2/Loading2.less +19 -0
  108. package/lib/Loading2/package.json +6 -0
  109. package/lib/ModalWithDrag/ModalWithDrag.js +37 -0
  110. package/lib/ModalWithDrag/ModalWithDrag.less +6 -0
  111. package/lib/ModalWithDrag/drag.js +124 -0
  112. package/lib/ModalWithDrag/package.json +6 -0
  113. package/lib/NumberInput/NumberInput.js +208 -0
  114. package/lib/NumberInput/package.json +6 -0
  115. package/lib/Search/Search.js +510 -0
  116. package/lib/Search/Search.less +63 -0
  117. package/lib/Search/package.json +6 -0
  118. package/lib/Search2/Search.js +609 -0
  119. package/lib/Search2/Search.less +64 -0
  120. package/lib/Search2/package.json +6 -0
  121. package/lib/Sidebar/Sidebar.js +152 -0
  122. package/lib/Sidebar/Sidebar.less +78 -0
  123. package/lib/Sidebar/package.json +6 -0
  124. package/lib/Sidebar2/Sidebar.js +173 -0
  125. package/lib/Sidebar2/Sidebar.less +153 -0
  126. package/lib/Sidebar2/package.json +6 -0
  127. package/lib/SuperForm/SuperForm.js +610 -0
  128. package/lib/SuperForm/SuperForm.less +52 -0
  129. package/lib/SuperForm/package.json +6 -0
  130. package/lib/SuperForm2/SuperForm.js +699 -0
  131. package/lib/SuperForm2/SuperForm.less +52 -0
  132. package/lib/SuperForm2/package.json +6 -0
  133. package/lib/SuperIcon/SuperIcon.js +35 -0
  134. package/lib/SuperIcon/package.json +6 -0
  135. package/lib/SuperPagination/SuperPagination.js +117 -0
  136. package/lib/SuperPagination/package.json +6 -0
  137. package/lib/SuperTab/SuperTab.js +115 -0
  138. package/lib/SuperTab/SuperTab.less +43 -0
  139. package/lib/SuperTab/package.json +6 -0
  140. package/lib/SuperTab2/SuperTab2.js +153 -0
  141. package/lib/SuperTab2/SuperTab2.less +18 -0
  142. package/lib/SuperTab2/package.json +6 -0
  143. package/lib/SuperTable/DragSortRow.js +105 -0
  144. package/lib/SuperTable/DragSortRow.less +17 -0
  145. package/lib/SuperTable/FilterDropDown.js +172 -0
  146. package/lib/SuperTable/FilterDropDown.less +30 -0
  147. package/lib/SuperTable/SuperTable.js +816 -0
  148. package/lib/SuperTable/SuperTable.less +132 -0
  149. package/lib/SuperTable/fixed.js +42 -0
  150. package/lib/SuperTable/package.json +6 -0
  151. package/lib/SuperTable2/SuperTable2.js +939 -0
  152. package/lib/SuperTable2/SuperTable2.less +119 -0
  153. package/lib/SuperTable2/SuperTableCell.js +239 -0
  154. package/lib/SuperTable2/package.json +6 -0
  155. package/lib/SuperTable3/FilterDropDown.js +172 -0
  156. package/lib/SuperTable3/FilterDropDown.less +29 -0
  157. package/lib/SuperTable3/SuperTable.js +673 -0
  158. package/lib/SuperTable3/SuperTable.less +99 -0
  159. package/lib/SuperTable3/fixed.js +42 -0
  160. package/lib/SuperTable3/package.json +6 -0
  161. package/lib/SuperToolbar/SuperToolbar.js +203 -0
  162. package/lib/SuperToolbar/SuperToolbar.less +17 -0
  163. package/lib/SuperToolbar/package.json +6 -0
  164. package/lib/SuperUpload/SuperUpload.js +368 -0
  165. package/lib/SuperUpload/SuperUpload.less +28 -0
  166. package/lib/SuperUpload/package.json +6 -0
  167. package/lib/Title/Title.js +41 -0
  168. package/lib/Title/Title.less +35 -0
  169. package/lib/Title/package.json +6 -0
  170. package/lib/Viewer/ImageViews.js +266 -0
  171. package/lib/Viewer/Viewer.js +130 -0
  172. package/lib/Viewer/Viewer.less +67 -0
  173. package/lib/Viewer/imgView.less +59 -0
  174. package/lib/Viewer/package.json +7 -0
  175. package/lib/WingBlank/WingBlank.js +24 -0
  176. package/lib/WingBlank/WingBlank.less +12 -0
  177. package/lib/WingBlank/package.json +6 -0
  178. package/lib/adjust.less +89 -0
  179. package/lib/helper.js +246 -0
  180. package/lib/history.js +12 -0
  181. package/lib/index.js +278 -0
  182. package/lib/index.less +32 -0
  183. package/lib/style.less +31 -0
  184. package/lib/variables.js +14 -0
  185. package/lib/variables.less +73 -0
  186. package/package.json +22 -44
  187. package/src/Area/Area.js +0 -94
  188. package/src/Card/Card.js +0 -16
  189. package/src/CodeInput/CodeInput.js +0 -76
  190. package/src/Control/Control.js +0 -338
  191. package/src/Control/event.js +0 -45
  192. package/src/Enhance/Dialogs.js +0 -24
  193. package/src/Enhance/Loading.js +0 -83
  194. package/src/Header/Header.js +0 -149
  195. package/src/Header/Vertical.js +0 -74
  196. package/src/ImageView/ImageView.js +0 -62
  197. package/src/Indent/Indent.js +0 -12
  198. package/src/InpurCascader/InputCascader.js +0 -83
  199. package/src/InputEditor/InputEditor.js +0 -93
  200. package/src/InputSearch/InputSearch.js +0 -186
  201. package/src/InputSelect/InputSelect.js +0 -103
  202. package/src/InputTreeSelect/InputTreeSelect.js +0 -87
  203. package/src/InputWriting/InputWriting.js +0 -65
  204. package/src/Layout/Layout.js +0 -121
  205. package/src/LayoutLink/LayoutLink.js +0 -59
  206. package/src/Link/Link.js +0 -57
  207. package/src/Loading/Loading.js +0 -15
  208. package/src/Loading2/Loading2.js +0 -15
  209. package/src/ModalWithDrag/ModalWithDrag.js +0 -17
  210. package/src/NumberInput/NumberInput.js +0 -137
  211. package/src/Search/Search.js +0 -368
  212. package/src/Search2/Search.js +0 -436
  213. package/src/Sidebar/Sidebar.js +0 -111
  214. package/src/Sidebar2/Sidebar.js +0 -143
  215. package/src/SuperForm/SuperForm.js +0 -519
  216. package/src/SuperForm2/SuperForm.js +0 -588
  217. package/src/SuperIcon/SuperIcon.js +0 -14
  218. package/src/SuperPagination/SuperPagination.js +0 -65
  219. package/src/SuperTab/SuperTab.js +0 -84
  220. package/src/SuperTab2/SuperTab2.js +0 -94
  221. package/src/SuperTable/DragSortRow.js +0 -62
  222. package/src/SuperTable/FilterDropDown.js +0 -111
  223. package/src/SuperTable/SuperTable.js +0 -590
  224. package/src/SuperTable/fixed.js +0 -34
  225. package/src/SuperTable2/SuperTable2.js +0 -624
  226. package/src/SuperTable2/SuperTableCell.js +0 -175
  227. package/src/SuperTable3/FilterDropDown.js +0 -111
  228. package/src/SuperTable3/SuperTable.js +0 -498
  229. package/src/SuperTable3/fixed.js +0 -34
  230. package/src/SuperToolbar/SuperToolbar.js +0 -128
  231. package/src/SuperUpload/SuperUpload.js +0 -137
  232. package/src/Title/Title.js +0 -18
  233. package/src/Viewer/ImageViews.js +0 -220
  234. package/src/Viewer/Viewer.js +0 -97
  235. package/src/WingBlank/WingBlank.js +0 -14
  236. package/src/helper.js +0 -185
  237. package/src/index.js +0 -39
  238. package/src/variables.js +0 -5
  239. package/test/index.html +0 -10
  240. package/test/test.js +0 -16
  241. package/test/test.less +0 -12
  242. package/test/webpack.config.js +0 -71
  243. package/tools/babel.config.js +0 -14
  244. package/tools/build.js +0 -70
  245. package/tools/publish.js +0 -9
  246. package/tools/util.js +0 -53
  247. /package/{src → es}/Area/package.json +0 -0
  248. /package/{src → es}/Card/package.json +0 -0
  249. /package/{src → es}/CodeInput/package.json +0 -0
  250. /package/{src → es}/Control/package.json +0 -0
  251. /package/{src → es}/Enhance/package.json +0 -0
  252. /package/{src → es}/Header/Header.less +0 -0
  253. /package/{src → es}/Header/Vertical.less +0 -0
  254. /package/{src → es}/Header/package.json +0 -0
  255. /package/{src → es}/ImageView/ImageView.less +0 -0
  256. /package/{src → es}/ImageView/package.json +0 -0
  257. /package/{src → es}/Indent/package.json +0 -0
  258. /package/{src → es}/InpurCascader/package.json +0 -0
  259. /package/{src → es}/InputEditor/inputEditor.less +0 -0
  260. /package/{src → es}/InputEditor/package.json +0 -0
  261. /package/{src → es}/InputSearch/package.json +0 -0
  262. /package/{src → es}/InputSelect/package.json +0 -0
  263. /package/{src → es}/InputTreeSelect/package.json +0 -0
  264. /package/{src → es}/InputWriting/package.json +0 -0
  265. /package/{src → es}/Layout/Layout.less +0 -0
  266. /package/{src → es}/Layout/package.json +0 -0
  267. /package/{src → es}/LayoutLink/LayoutLink.less +0 -0
  268. /package/{src → es}/LayoutLink/package.json +0 -0
  269. /package/{src → es}/Link/package.json +0 -0
  270. /package/{src → es}/Loading/Loading.less +0 -0
  271. /package/{src → es}/Loading/package.json +0 -0
  272. /package/{src → es}/Loading2/Loading2.less +0 -0
  273. /package/{src → es}/Loading2/package.json +0 -0
  274. /package/{src → es}/ModalWithDrag/ModalWithDrag.less +0 -0
  275. /package/{src → es}/ModalWithDrag/package.json +0 -0
  276. /package/{src → es}/NumberInput/package.json +0 -0
  277. /package/{src → es}/Search/Search.less +0 -0
  278. /package/{src → es}/Search/package.json +0 -0
  279. /package/{src → es}/Search2/package.json +0 -0
  280. /package/{src → es}/Sidebar/Sidebar.less +0 -0
  281. /package/{src → es}/Sidebar/package.json +0 -0
  282. /package/{src → es}/Sidebar2/Sidebar.less +0 -0
  283. /package/{src → es}/Sidebar2/package.json +0 -0
  284. /package/{src → es}/SuperForm/SuperForm.less +0 -0
  285. /package/{src → es}/SuperForm/package.json +0 -0
  286. /package/{src → es}/SuperForm2/SuperForm.less +0 -0
  287. /package/{src → es}/SuperForm2/package.json +0 -0
  288. /package/{src → es}/SuperIcon/package.json +0 -0
  289. /package/{src → es}/SuperPagination/package.json +0 -0
  290. /package/{src → es}/SuperTab/SuperTab.less +0 -0
  291. /package/{src → es}/SuperTab/package.json +0 -0
  292. /package/{src → es}/SuperTab2/SuperTab2.less +0 -0
  293. /package/{src → es}/SuperTab2/package.json +0 -0
  294. /package/{src → es}/SuperTable/DragSortRow.less +0 -0
  295. /package/{src → es}/SuperTable/FilterDropDown.less +0 -0
  296. /package/{src → es}/SuperTable/SuperTable.less +0 -0
  297. /package/{src → es}/SuperTable/package.json +0 -0
  298. /package/{src → es}/SuperTable2/package.json +0 -0
  299. /package/{src → es}/SuperTable3/FilterDropDown.less +0 -0
  300. /package/{src → es}/SuperTable3/SuperTable.less +0 -0
  301. /package/{src → es}/SuperTable3/package.json +0 -0
  302. /package/{src → es}/SuperToolbar/SuperToolbar.less +0 -0
  303. /package/{src → es}/SuperToolbar/package.json +0 -0
  304. /package/{src → es}/SuperUpload/SuperUpload.less +0 -0
  305. /package/{src → es}/SuperUpload/package.json +0 -0
  306. /package/{src → es}/Title/Title.less +0 -0
  307. /package/{src → es}/Title/package.json +0 -0
  308. /package/{src → es}/Viewer/Viewer.less +0 -0
  309. /package/{src → es}/Viewer/imgView.less +0 -0
  310. /package/{src → es}/Viewer/package.json +0 -0
  311. /package/{src → es}/WingBlank/WingBlank.less +0 -0
  312. /package/{src → es}/WingBlank/package.json +0 -0
  313. /package/{src → es}/adjust.less +0 -0
  314. /package/{src → es}/variables.less +0 -0
@@ -1,186 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import {AutoComplete, Input, Icon} from 'antd';
4
- import {getObjectExclude} from '../helper';
5
-
6
- const SelectOption = AutoComplete.Option;
7
-
8
- // 如果写在局部,每次渲染时生成的suffix引用值不同,会使antd的Input认为suffix动态变化了,从而导致Input报出警告 (antd的BUG)
9
- const suffix = <Icon type='search' style={{color: 'black', opacity: 0.25, marginRight: -4}} />;
10
-
11
- const OPTION_STYLE = {float: 'right', marginLeft: '1rem', color: '#aaa', whiteSpace: 'pre-wrap'};
12
- const OPTION_STYLE2 = {display:'block', color: '#aaa', whiteSpace: 'pre-wrap'};
13
-
14
- /**
15
- * filter: 为true表示下拉列表会依据输入的值进行前端过滤,默认为true; 如果不想过滤,则设为false
16
- * remark: 为true表示options的option中含有remark字段,并需要用remark值进行过滤下拉,默认为false
17
- * searchWhenClick: 每次点击时,触发onSearch事件,默认为false
18
- * noSearchWhenTypo: 当输入时,不触发onSearch事件,默认为false
19
- */
20
- const PROPS = {
21
- filter: PropTypes.bool,
22
- remark: PropTypes.bool,
23
- searchWhenClick: PropTypes.bool,
24
- noSearchWhenTypo: PropTypes.bool,
25
- options: PropTypes.array,
26
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]),
27
- inputRef: PropTypes.func,
28
- onChange: PropTypes.func,
29
- onBlur: PropTypes.func,
30
- onSelect: PropTypes.func,
31
- onSearch: PropTypes.func
32
- };
33
-
34
- const PROPS_KEYS = Object.keys(PROPS);
35
-
36
- class InputSearch extends React.Component {
37
- static propTypes = PROPS;
38
-
39
- constructor(props) {
40
- super(props);
41
- this.state = {value: props.value};
42
- }
43
-
44
- componentWillReceiveProps(props) {
45
- if (props.value !== this.props.value) {
46
- this.setState({value: props.value});
47
- }
48
- }
49
-
50
- onSearch = (value) => {
51
- this.setState({value});
52
- const {onSearch, noSearchWhenTypo} = this.props;
53
- !noSearchWhenTypo && onSearch && onSearch(value);
54
- };
55
-
56
- onBlur = () => {
57
- const {autoAdd=false, options=[], onChange, onBlur} = this.props;
58
- if (this.props.value !== this.state.value) {
59
- const index = options.findIndex(option => option.title === this.state.value);
60
- let value = '';
61
- if (index === -1) {
62
- if (autoAdd && this.state.value) {
63
- if (typeof this.state.value === 'string') {
64
- value = {value: -1, title: this.state.value};
65
- } else if (typeof this.state.value === 'object' && this.state.value.title && this.state.value.value) {
66
- value = this.state.value;
67
- }
68
- }
69
- } else {
70
- value = options[index];
71
- }
72
- this.setState({value});
73
- onChange && onChange(value);
74
- onBlur && onBlur(value);
75
- } else {
76
- onBlur && onBlur(this.props.value);
77
- }
78
- };
79
-
80
- onSelect = (value) => {
81
- const {onChange, options = []} = this.props;
82
- const index = options.findIndex(option => String(option.value) === value);
83
- if (index > -1) {
84
- this.setState({value: options[index]});
85
- onChange && onChange(options[index]);
86
- }
87
- };
88
-
89
- onClick = (e) => {
90
- const {options=[], onSearch, searchWhenClick, value} = this.props;
91
- if (onSearch && (!options.length || (!value && searchWhenClick))) {
92
- onSearch(e.target.value);
93
- }
94
- };
95
-
96
- makeValueValid = (value) => {
97
- return [NaN, undefined, null].includes(value) ? '' : value;
98
- };
99
-
100
- getValue = () => {
101
- const {value} = this.state;
102
- return String(this.makeValueValid(typeof value === 'object' ? value.value : value));
103
- };
104
-
105
- isMatch = (inputValue, option) => {
106
- return option.props.children && option.props.children.indexOf(inputValue) !== -1;
107
- };
108
-
109
- isMatchRemark = (inputValue, option) => {
110
- const {text='', remark=''} = option.props;
111
- return (text.indexOf(inputValue) > -1) || (remark.indexOf(inputValue) > -1);
112
- };
113
-
114
- isValidValue = (value) => {
115
- // value必须为对象,且有属性value的值不等''或undefined
116
- return value && !['', undefined].includes(value.value);
117
- };
118
-
119
- getOptions = () => {
120
- const value = this.state.value;
121
- const options = this.props.options;
122
- if (options && options.length) {
123
- if (this.isValidValue(value) && !options.find(option => option.value === value.value)) {
124
- return [value];
125
- } else {
126
- return options;
127
- }
128
- } else if (this.isValidValue(value)) {
129
- return [value];
130
- } else {
131
- return [];
132
- }
133
- };
134
-
135
- getDataSource = () => {
136
- return this.getOptions().map(option => {
137
- return {value: String(option.value), text: option.title};
138
- });
139
- };
140
-
141
- getDataSourceRemark = () => {
142
- return this.getOptions().map((option, index) => {
143
- return (
144
- <SelectOption key={index} value={String(option.value)} text={option.title} remark={option.remark || ''}>
145
- <span>{option.title}</span>
146
- <span style={OPTION_STYLE}>{option.remark || ''}</span>
147
- <span style={OPTION_STYLE2}>{option.description || ''}</span>
148
- </SelectOption>
149
- );
150
- });
151
- };
152
-
153
- getProps = () => {
154
- const {inputRef, filter=true} = this.props;
155
- const props = Object.assign(getObjectExclude(this.props, PROPS_KEYS), {
156
- value: this.getValue(),
157
- allowClear: true,
158
- ref: inputRef,
159
- onChange: this.onSearch,
160
- filterOption: (e, option) => option,
161
- onSelect: this.onSelect,
162
- onBlur: this.onBlur,
163
- });
164
- if (this.props.remark) {
165
- props.dataSource = this.getDataSourceRemark();
166
- props.filterOption = filter ? this.isMatchRemark : false;
167
- props.optionLabelProp = 'text';
168
- } else {
169
- props.dataSource = this.getDataSource();
170
- props.filterOption = filter ? this.isMatch : false;
171
- }
172
- return props;
173
- };
174
-
175
- render() {
176
- return (
177
- <div onClick={this.onClick}>
178
- <AutoComplete {...this.getProps()}>
179
- <Input suffix={suffix} />
180
- </AutoComplete>
181
- </div>
182
- );
183
- }
184
- }
185
-
186
- export default InputSearch;
@@ -1,103 +0,0 @@
1
- import React from 'react';
2
- import { Select } from 'antd';
3
-
4
- const SelectOption = Select.Option;
5
-
6
- const OPTION_STYLE = {float: 'right', marginLeft: '1rem',marginRight:'1rem', color: '#aaa', whiteSpace: 'pre-wrap'};
7
-
8
-
9
- class InputSelect extends React.Component {
10
-
11
- onClick = (e) => {
12
- const {options=[], onSearch, value=[], searchWhenClick=false} = this.props;
13
- // if (onSearch && (options.length <= value.length)) {
14
- if (onSearch && searchWhenClick) {
15
- onSearch(e.target.value);
16
- }
17
- };
18
-
19
- onSearch = (value) => {
20
- const {onSearch} = this.props;
21
- onSearch && onSearch(value);
22
- };
23
-
24
- isMatch = (inputValue, option) => {
25
- return option.props.children.indexOf(inputValue) !== -1;
26
- };
27
-
28
- isMatchRemark = (inputValue, option) => {
29
- const {text, remark} = option.props;
30
- return (text.indexOf(inputValue) > -1) || (remark.indexOf(inputValue) > -1);
31
- };
32
-
33
-
34
- toRemarkOption = (option, index) => {
35
- return (
36
- <SelectOption key={index} value={String(option.value)} text={option.title} remark={option.remark || ''} disabled={option.disabled || false}>
37
- <span>{option.title}</span>
38
- <span style={OPTION_STYLE}>{option.remark || ''}</span>
39
- </SelectOption>
40
- );
41
- };
42
-
43
- toOption = (option, index) => {
44
- return(
45
- <SelectOption key={index} value={String(option.value)} disabled={option.disabled || false}>{option.title}</SelectOption>)
46
- };
47
-
48
- onChange = (options, keyValue) => {
49
- const {onChange} = this.props;
50
- const objValue = keyValue.length > 0 ? (keyValue.map(item => {
51
- return {
52
- ...options.filter(o => o.value === item.key)[0],
53
- value:item.key,
54
- title:item.label,
55
- }
56
- })) : [];
57
- onChange && onChange(objValue);
58
- };
59
-
60
-
61
- getValue = () => {
62
- const {value} = this.props;
63
- if (typeof value === 'object' && Array.isArray(value) ) {
64
- return value.map(item => {
65
- return {
66
- ...item,
67
- key:item.value,
68
- label:item.title,
69
- }
70
- })
71
- } else {
72
- return [];
73
- }
74
- };
75
-
76
- render() {
77
- const {options=[] , size, value=[],allowClear=true} = this.props;
78
- const values = value.map(o => o.value);
79
- const allOptions = options.filter(o => !values.includes(o.value)).concat(value);
80
- const props = {
81
- value:this.getValue(),
82
- style: this.props.style || {},
83
- mode:'multiple',
84
- optionLabelProp: this.props.remark ? 'text' :'children',
85
- dropdownMatchSelectWidth:false,
86
- filterOption: this.props.remark ? this.isMatchRemark : this.isMatch,
87
- onSearch:this.onSearch,
88
- onChange:this.onChange.bind(this, allOptions),
89
- labelInValue:true,
90
- allowClear,
91
- size
92
- };
93
- return (
94
- <div onClick={this.onClick}>
95
- <Select {...props}>
96
- {this.props.remark ? allOptions.map(this.toRemarkOption) : allOptions.map(this.toOption)}
97
- </Select>
98
- </div>
99
- );
100
- }
101
- }
102
-
103
- export default InputSelect;
@@ -1,87 +0,0 @@
1
- //级联选择input
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import { TreeSelect } from 'antd';
5
- import { getObjectExclude } from '../helper';
6
-
7
- const optionsType = {
8
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
9
- key:PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
10
- disabled: PropTypes.bool,
11
- children: PropTypes.array,
12
- title: PropTypes.string,
13
- isLeaf: PropTypes.bool //false 就会触发 loadData 方法,从而在loadData方法中请求下一级数据,
14
- }
15
-
16
-
17
- const PROPS = {
18
- options: PropTypes.arrayOf(PropTypes.shape(optionsType)).isRequired,
19
- value: PropTypes.array.isRequired,
20
- placeholder: PropTypes.string,
21
- onChange: PropTypes.func,
22
- loadData: PropTypes.func, //动态加载 ps:loadData 与 showSearch 无法一起使用
23
- showSearch: PropTypes.bool,
24
- onTreeExpand:PropTypes.func,
25
- treeDefaultExpandAll:PropTypes.bool,
26
- treeDataSimpleMode:PropTypes.bool,
27
- multiple:PropTypes.bool,
28
- }
29
-
30
- const PROPS_KEYS = Object.keys(PROPS);
31
- class InputTreeSelect extends React.Component {
32
- static propTypes = PROPS;
33
-
34
- constructor(props) {
35
- super(props);
36
- }
37
-
38
- onChange = (value) => {
39
- const { onChange } = this.props;
40
- onChange && onChange(value)
41
- };
42
-
43
- loadData = selectedOptions => {
44
- const { onSearch } = this.props;
45
- onSearch && onSearch(selectedOptions[0])
46
- };
47
-
48
- getOptions = (options) => {
49
- return options.map(option => {
50
- let obj = { ...option, label: option.title};
51
- if(option.children && option.children.length > 0){
52
- obj.children = this.getOptions(option.children)
53
- }
54
- return obj;
55
- })
56
- }
57
-
58
- getProps = () => {
59
- const { options = [], placeholder, size,value,loadData,treeDefaultExpandAll=false
60
- ,showSearch=false,treeDataSimpleMode=false,multiple=false} = this.props;
61
- const props = Object.assign(getObjectExclude({}, PROPS_KEYS), {
62
- onChange: this.onChange,
63
- value: value,
64
- treeData:options,
65
- treeDataSimpleMode,
66
- placeholder: placeholder,
67
- treeDefaultExpandAll,
68
- multiple,
69
- size
70
- })
71
- //动态加载 ps:loadData 与 showSearch 无法一起使用
72
- if(loadData){
73
- props.loadData = this.loadData
74
- }else if(showSearch){
75
- props.showSearch = showSearch;
76
- }
77
- return props;
78
- };
79
-
80
- render() {
81
- return (
82
- <TreeSelect {...this.getProps()} />
83
- )
84
- }
85
- }
86
-
87
- export default InputTreeSelect;
@@ -1,65 +0,0 @@
1
- import React from 'react';
2
- import { Select } from 'antd';
3
-
4
- const { Option } = Select;
5
-
6
- class InputWriting extends React.Component {
7
-
8
- state = {
9
- options: [],
10
- value: [],
11
- fetching: false,
12
- };
13
-
14
-
15
- onClick = (e) => {
16
- const {options=[], onSearch,value} = this.props;
17
- if (onSearch && (!options.length )) {
18
- onSearch(e.target.value);
19
- }
20
- };
21
-
22
- onSearch = (value) => {
23
- const {onSearch} = this.props;
24
- onSearch && onSearch(value);
25
- };
26
-
27
- isMatch = (inputValue, option) => {
28
- return option.props.children.indexOf(inputValue) !== -1;
29
- };
30
-
31
- toOption = (option, index) => {
32
- return(
33
- <SelectOption key={index} value={String(option.value)}>{option.title}</SelectOption>)
34
- };
35
-
36
- onChange = (keyValue) => {
37
- const {onChange,value} = this.props;
38
- onChange && onChange(keyValue);
39
- };
40
-
41
-
42
-
43
-
44
- render() {
45
- const {value} = this.props;
46
- const props = {
47
- value,
48
- size:'small',
49
- mode:'tags',
50
- allowClear:true,
51
- onSelect:this.onSelect,
52
- filterOption: this.isMatch,
53
- dropdownMatchSelectWidth:false,
54
- onChange:this.onChange,
55
- };
56
- return (
57
- <div onClick={this.onClick}>
58
- <Select {...props}>
59
- </Select>
60
- </div>
61
- );
62
- }
63
- }
64
-
65
- export default InputWriting;
@@ -1,121 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import Header from '../Header';
4
- import Sidebar from '../Sidebar2';
5
- import Loading from '../Loading';
6
- import {Button} from 'antd';
7
- import {jump} from '../Link';
8
- import variables from '../variables';
9
-
10
- const HeaderV = Header.Vertical;
11
-
12
- const getCurrentSideKey = (sidebars={}, href) => {
13
- if (!href) return '';
14
- for (let key of Object.keys(sidebars)) {
15
- if (sidebars[key].some(item => item.href === href || (item.children && item.children.some(o => o.href === href)))) {
16
- return key
17
- }
18
- }
19
- };
20
-
21
- class Layout extends React.Component {
22
- static propTypes = {
23
- children: PropTypes.node.isRequired,
24
- nav1: PropTypes.string,
25
- nav2: PropTypes.string,
26
- sidebars: PropTypes.object,
27
- openKeys: PropTypes.object,
28
- onOpenChange: PropTypes.func,
29
- };
30
-
31
- constructor(props) {
32
- super(props);
33
- this.state = {
34
- mode: 'expand',
35
- url: {}
36
- };
37
- }
38
-
39
- componentWillReceiveProps(props) {
40
- if (!props.loading) {
41
- this.setState({url: Object.assign({}, this.state.url, {[getCurrentSideKey(props.sidebars, `/${props.nav1}/${props.nav2}`)]: `/${props.nav1}/${props.nav2}`})});
42
- }
43
- }
44
-
45
- onOpenChange = (sideKey, openKeys) => {
46
- const {onOpenChange} = this.props;
47
- if (onOpenChange) {
48
- onOpenChange(sideKey, openKeys);
49
- }
50
- };
51
-
52
- getSidebarProps = (sideKey) => {
53
- const {sidebars, nav2, openKeys={}, navigation} = this.props;
54
- const sides = sidebars[sideKey] || [];
55
- return {
56
- mode: this.state.mode,
57
- title: navigation.filter(o => o.key === sideKey)[0].title,
58
- activeKey: nav2,
59
- items: sides,
60
- openKeys: openKeys[sideKey] || [],
61
- onOpenChange: this.onOpenChange.bind(this, sideKey),
62
- onModeChange: mode => this.setState({mode})
63
- };
64
- };
65
-
66
- toSidebar = (sideKey, hasHeaderV=false) => {
67
- if (!sideKey) {
68
- return null;
69
- } else {
70
- return (
71
- <aside style={{marginLeft: hasHeaderV ? 40 : 0}}>
72
- <Sidebar {...this.getSidebarProps(sideKey)} />
73
- </aside>
74
- );
75
- }
76
- };
77
-
78
- toHeader = () => {
79
- const {loading, sidebars, nav1, nav2, homeUrl, settingUrl, messageUrl, messageCount, userName, userIcon, loginUrl, onMenuClick, onLogout} = this.props;
80
- const selectKey = loading ? '' : getCurrentSideKey(sidebars, `/${nav1}/${nav2}`);
81
- const selectUrl = loading ? '' : `/${nav1}/${nav2}`;
82
- return <Header {...{homeUrl, settingUrl, messageUrl, loginUrl, userName, userIcon, messageCount, selectKey, selectUrl, onMenuClick,onLogout}} />;
83
- };
84
-
85
- headerVProps = (selectKey) => {
86
- const keys = ['setting', 'message'];
87
- return {
88
- selectKey,
89
- url: this.state.url,
90
- items: this.props.navigation.filter(item => !keys.includes(item.key)),
91
- };
92
- };
93
-
94
- render() {
95
- const {loading, sidebars, nav1='', nav2='', children, noPrivilege=false, navigation} = this.props;
96
- const hasV = navigation.filter(item => !['setting', 'message'].includes(item.key)).length > 1;
97
- const sideKey = loading || !nav2 ? '' : getCurrentSideKey(sidebars, `/${nav1}/${nav2}`);
98
- return noPrivilege ? (<div style={{textAlign: 'center'}}>
99
- <div style={{lineHeight: '100px'}}>
100
- 您暂无权限,请确认您账号角色是否正确,或联系管理员分配权限
101
- </div>
102
- <Button type='primary' onClick={() => jump('/')}>返回首页</Button>
103
- </div>) : (
104
- <div className={variables('Layout')}>
105
- {this.toHeader(sideKey)}
106
- {
107
- loading ? <Loading /> :
108
- <div>
109
- {hasV ? <HeaderV {...this.headerVProps(sideKey)} /> : null}
110
- {this.toSidebar(sideKey, hasV)}
111
- <section>{children}</section>
112
- </div>
113
- }
114
- </div>
115
- )
116
- };
117
- }
118
-
119
- export default Layout;
120
-
121
-
@@ -1,59 +0,0 @@
1
- import React, {useState} from 'react';
2
- import WingBlank from '../WingBlank';
3
- import Card from '../Card';
4
- import {Form, Input, Button, Empty} from 'antd';
5
- import variables from '../variables';
6
-
7
- const FormItem = Form.Item;
8
-
9
- function Search({placeholder, onSearch}) {
10
- let [value, setValue] = useState('');
11
- let [status, setStatus] = useState('');
12
- const onClick = () => {
13
- if (!value) {
14
- setStatus('error');
15
- } else {
16
- onSearch(value);
17
- }
18
- };
19
- const onChange = (e) => {
20
- setStatus('');
21
- setValue(e.target.value);
22
- };
23
- return (
24
- <Card className={variables('LayoutLink').search}>
25
- <div>
26
- <FormItem validateStatus={status}>
27
- <Input placeholder={placeholder} value={value} onChange={onChange}/>
28
- </FormItem>
29
- <Button onClick={onClick}>开始查询</Button>
30
- </div>
31
- </Card>
32
- )
33
- }
34
-
35
- function Title({title}) {
36
- return (
37
- <div className={variables('LayoutLink').title}>
38
- <div>{title}</div>
39
- <div />
40
- </div>
41
- )
42
- }
43
-
44
- function LayoutLink({children, img, title, placeholder, onSearch}) {
45
- return (
46
- <div className={variables('LayoutLink')}>
47
- <div><img src={img} alt='banner' /></div>
48
- <WingBlank>
49
- <Search {...{placeholder, onSearch}}/>
50
- <Title title={title}/>
51
- <Card>{children ? children : <Empty style={{padding: '30px'}}/>}</Card>
52
- </WingBlank>
53
- </div>
54
- );
55
- }
56
-
57
- export default LayoutLink;
58
-
59
-
package/src/Link/Link.js DELETED
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import history from '../history';
4
-
5
- function isLeftClickEvent(event) {
6
- return event.button === 0;
7
- }
8
-
9
- function isModifiedEvent(event) {
10
- return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
11
- }
12
-
13
- function jump(url) {
14
- if (history.location.pathname != url) {
15
- history.push(url);
16
- } else {
17
- history.replace(url);
18
- }
19
- }
20
-
21
- class Link extends React.Component {
22
- static propTypes = {
23
- to: PropTypes.string,
24
- disabled: PropTypes.bool,
25
- children: PropTypes.node,
26
- onClick: PropTypes.func,
27
- };
28
-
29
- handleClick = (event) => {
30
- if (this.props.onClick) {
31
- this.props.onClick(event);
32
- }
33
-
34
- if (isModifiedEvent(event) || !isLeftClickEvent(event)) {
35
- return;
36
- }
37
-
38
- if (event.defaultPrevented === true) {
39
- return;
40
- }
41
-
42
- event.preventDefault();
43
- jump(this.props.to);
44
- };
45
-
46
- render() {
47
- const { to, children, disabled, ...props } = this.props;
48
- if (disabled) {
49
- return <a {...props}>{children}</a>;
50
- } else {
51
- return <a href={to} {...props} onClick={this.handleClick}>{children}</a>;
52
- }
53
- }
54
- }
55
-
56
- export default Link;
57
- export {jump};
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import {Spin} from 'antd';
3
- import variables from '../variables';
4
-
5
- function Loading({retry, onRetry}) {
6
- return (
7
- <div className={variables('Loading')}>
8
- <div>
9
- {!retry ? <Spin /> : <span>加载失败,点击<a onClick={onRetry}>重试</a></span>}
10
- </div>
11
- </div>
12
- );
13
- }
14
-
15
- export default Loading;