cloud-b2b 1.1.59 → 1.1.60

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/es/Sidebar/Sidebar.js +144 -0
  30. package/es/Sidebar2/Sidebar.js +165 -0
  31. package/es/SuperForm/SuperForm.js +598 -0
  32. package/es/SuperForm2/SuperForm.js +687 -0
  33. package/es/SuperIcon/SuperIcon.js +27 -0
  34. package/es/SuperPagination/SuperPagination.js +109 -0
  35. package/es/SuperTab/SuperTab.js +107 -0
  36. package/es/SuperTab2/SuperTab2.js +145 -0
  37. package/es/SuperTable/DragSortRow.js +97 -0
  38. package/es/SuperTable/FilterDropDown.js +164 -0
  39. package/es/SuperTable/SuperTable.js +808 -0
  40. package/es/SuperTable/fixed.js +34 -0
  41. package/es/SuperTable2/SuperTable2.js +926 -0
  42. package/es/SuperTable2/SuperTableCell.js +234 -0
  43. package/es/SuperTable3/FilterDropDown.js +164 -0
  44. package/es/SuperTable3/SuperTable.js +665 -0
  45. package/es/SuperTable3/fixed.js +34 -0
  46. package/es/SuperToolbar/SuperToolbar.js +195 -0
  47. package/es/SuperUpload/SuperUpload.js +356 -0
  48. package/es/Title/Title.js +33 -0
  49. package/es/Viewer/ImageViews.js +258 -0
  50. package/es/Viewer/Viewer.js +122 -0
  51. package/es/WingBlank/WingBlank.js +16 -0
  52. package/es/helper.js +240 -0
  53. package/{src → es}/history.js +6 -6
  54. package/es/index.js +38 -0
  55. package/es/variables.js +6 -0
  56. package/lib/Area/Area.js +149 -0
  57. package/lib/Area/package.json +6 -0
  58. package/lib/Card/Card.js +27 -0
  59. package/lib/Card/package.json +6 -0
  60. package/lib/CodeInput/CodeInput.js +131 -0
  61. package/lib/CodeInput/package.json +6 -0
  62. package/lib/Control/Control.js +450 -0
  63. package/lib/Control/event.js +51 -0
  64. package/lib/Control/package.json +6 -0
  65. package/lib/Enhance/Dialogs.js +60 -0
  66. package/lib/Enhance/Loading.js +138 -0
  67. package/lib/Enhance/index.js +25 -0
  68. package/lib/Enhance/package.json +6 -0
  69. package/lib/Header/Header.js +169 -0
  70. package/lib/Header/Header.less +95 -0
  71. package/lib/Header/Vertical.js +114 -0
  72. package/lib/Header/Vertical.less +60 -0
  73. package/lib/Header/package.json +6 -0
  74. package/lib/ImageView/ImageView.js +108 -0
  75. package/lib/ImageView/ImageView.less +14 -0
  76. package/lib/ImageView/package.json +6 -0
  77. package/lib/Indent/Indent.js +27 -0
  78. package/lib/Indent/package.json +6 -0
  79. package/lib/InpurCascader/InputCascader.js +124 -0
  80. package/lib/InpurCascader/package.json +6 -0
  81. package/lib/InputEditor/InputEditor.js +181 -0
  82. package/lib/InputEditor/inputEditor.less +8 -0
  83. package/lib/InputEditor/package.json +6 -0
  84. package/lib/InputSearch/InputSearch.js +274 -0
  85. package/lib/InputSearch/package.json +6 -0
  86. package/lib/InputSelect/InputSelect.js +168 -0
  87. package/lib/InputSelect/package.json +6 -0
  88. package/lib/InputTreeSelect/InputTreeSelect.js +128 -0
  89. package/lib/InputTreeSelect/package.json +6 -0
  90. package/lib/InputWriting/InputWriting.js +93 -0
  91. package/lib/InputWriting/package.json +6 -0
  92. package/lib/Layout/Layout.js +209 -0
  93. package/lib/Layout/Layout.less +28 -0
  94. package/lib/Layout/package.json +6 -0
  95. package/lib/LayoutLink/LayoutLink.js +86 -0
  96. package/lib/LayoutLink/LayoutLink.less +53 -0
  97. package/lib/LayoutLink/package.json +6 -0
  98. package/lib/Link/Link.js +93 -0
  99. package/lib/Link/package.json +6 -0
  100. package/lib/Loading/Loading.js +21 -0
  101. package/lib/Loading/Loading.less +13 -0
  102. package/lib/Loading/package.json +6 -0
  103. package/lib/Loading2/Loading2.js +17 -0
  104. package/lib/Loading2/Loading2.less +19 -0
  105. package/lib/Loading2/package.json +6 -0
  106. package/lib/ModalWithDrag/ModalWithDrag.js +37 -0
  107. package/lib/ModalWithDrag/ModalWithDrag.less +6 -0
  108. package/lib/ModalWithDrag/drag.js +124 -0
  109. package/lib/ModalWithDrag/package.json +6 -0
  110. package/lib/NumberInput/NumberInput.js +208 -0
  111. package/lib/NumberInput/package.json +6 -0
  112. package/lib/Search/Search.js +510 -0
  113. package/lib/Search/Search.less +63 -0
  114. package/lib/Search/package.json +6 -0
  115. package/lib/Search2/Search.js +609 -0
  116. package/lib/Search2/Search.less +65 -0
  117. package/lib/Search2/package.json +6 -0
  118. package/lib/Sidebar/Sidebar.js +152 -0
  119. package/lib/Sidebar/Sidebar.less +78 -0
  120. package/lib/Sidebar/package.json +6 -0
  121. package/lib/Sidebar2/Sidebar.js +173 -0
  122. package/lib/Sidebar2/Sidebar.less +153 -0
  123. package/lib/Sidebar2/package.json +6 -0
  124. package/lib/SuperForm/SuperForm.js +610 -0
  125. package/lib/SuperForm/SuperForm.less +52 -0
  126. package/lib/SuperForm/package.json +6 -0
  127. package/lib/SuperForm2/SuperForm.js +699 -0
  128. package/lib/SuperForm2/SuperForm.less +52 -0
  129. package/lib/SuperForm2/package.json +6 -0
  130. package/lib/SuperIcon/SuperIcon.js +35 -0
  131. package/lib/SuperIcon/package.json +6 -0
  132. package/lib/SuperPagination/SuperPagination.js +117 -0
  133. package/lib/SuperPagination/package.json +6 -0
  134. package/lib/SuperTab/SuperTab.js +115 -0
  135. package/lib/SuperTab/SuperTab.less +43 -0
  136. package/lib/SuperTab/package.json +6 -0
  137. package/lib/SuperTab2/SuperTab2.js +153 -0
  138. package/lib/SuperTab2/SuperTab2.less +18 -0
  139. package/lib/SuperTab2/package.json +6 -0
  140. package/lib/SuperTable/DragSortRow.js +105 -0
  141. package/lib/SuperTable/DragSortRow.less +17 -0
  142. package/lib/SuperTable/FilterDropDown.js +172 -0
  143. package/lib/SuperTable/FilterDropDown.less +30 -0
  144. package/lib/SuperTable/SuperTable.js +816 -0
  145. package/lib/SuperTable/SuperTable.less +132 -0
  146. package/lib/SuperTable/fixed.js +42 -0
  147. package/lib/SuperTable/package.json +6 -0
  148. package/lib/SuperTable2/SuperTable2.js +939 -0
  149. package/lib/SuperTable2/SuperTable2.less +118 -0
  150. package/lib/SuperTable2/SuperTableCell.js +239 -0
  151. package/lib/SuperTable2/package.json +6 -0
  152. package/lib/SuperTable3/FilterDropDown.js +172 -0
  153. package/lib/SuperTable3/FilterDropDown.less +29 -0
  154. package/lib/SuperTable3/SuperTable.js +673 -0
  155. package/lib/SuperTable3/SuperTable.less +99 -0
  156. package/lib/SuperTable3/fixed.js +42 -0
  157. package/lib/SuperTable3/package.json +6 -0
  158. package/lib/SuperToolbar/SuperToolbar.js +203 -0
  159. package/lib/SuperToolbar/SuperToolbar.less +17 -0
  160. package/lib/SuperToolbar/package.json +6 -0
  161. package/lib/SuperUpload/SuperUpload.js +368 -0
  162. package/lib/SuperUpload/SuperUpload.less +28 -0
  163. package/lib/SuperUpload/package.json +6 -0
  164. package/lib/Title/Title.js +41 -0
  165. package/lib/Title/Title.less +35 -0
  166. package/lib/Title/package.json +6 -0
  167. package/lib/Viewer/ImageViews.js +266 -0
  168. package/lib/Viewer/Viewer.js +130 -0
  169. package/lib/Viewer/Viewer.less +67 -0
  170. package/lib/Viewer/imgView.less +59 -0
  171. package/lib/Viewer/package.json +7 -0
  172. package/lib/WingBlank/WingBlank.js +24 -0
  173. package/lib/WingBlank/WingBlank.less +12 -0
  174. package/lib/WingBlank/package.json +6 -0
  175. package/lib/adjust.less +89 -0
  176. package/lib/helper.js +246 -0
  177. package/lib/history.js +12 -0
  178. package/lib/index.js +278 -0
  179. package/lib/index.less +32 -0
  180. package/lib/style.less +30 -0
  181. package/lib/variables.js +14 -0
  182. package/lib/variables.less +73 -0
  183. package/package.json +22 -44
  184. package/src/Area/Area.js +0 -94
  185. package/src/Card/Card.js +0 -16
  186. package/src/CodeInput/CodeInput.js +0 -76
  187. package/src/Control/Control.js +0 -338
  188. package/src/Control/event.js +0 -45
  189. package/src/Enhance/Dialogs.js +0 -24
  190. package/src/Enhance/Loading.js +0 -83
  191. package/src/Header/Header.js +0 -149
  192. package/src/Header/Vertical.js +0 -74
  193. package/src/ImageView/ImageView.js +0 -62
  194. package/src/Indent/Indent.js +0 -12
  195. package/src/InpurCascader/InputCascader.js +0 -83
  196. package/src/InputEditor/InputEditor.js +0 -93
  197. package/src/InputSearch/InputSearch.js +0 -186
  198. package/src/InputSelect/InputSelect.js +0 -103
  199. package/src/InputTreeSelect/InputTreeSelect.js +0 -87
  200. package/src/InputWriting/InputWriting.js +0 -65
  201. package/src/Layout/Layout.js +0 -121
  202. package/src/LayoutLink/LayoutLink.js +0 -59
  203. package/src/Link/Link.js +0 -57
  204. package/src/Loading/Loading.js +0 -15
  205. package/src/Loading2/Loading2.js +0 -15
  206. package/src/ModalWithDrag/ModalWithDrag.js +0 -17
  207. package/src/NumberInput/NumberInput.js +0 -137
  208. package/src/Search/Search.js +0 -368
  209. package/src/Search2/Search.js +0 -436
  210. package/src/Sidebar/Sidebar.js +0 -111
  211. package/src/Sidebar2/Sidebar.js +0 -143
  212. package/src/SuperForm/SuperForm.js +0 -519
  213. package/src/SuperForm2/SuperForm.js +0 -588
  214. package/src/SuperIcon/SuperIcon.js +0 -14
  215. package/src/SuperPagination/SuperPagination.js +0 -65
  216. package/src/SuperTab/SuperTab.js +0 -84
  217. package/src/SuperTab2/SuperTab2.js +0 -94
  218. package/src/SuperTable/DragSortRow.js +0 -62
  219. package/src/SuperTable/FilterDropDown.js +0 -111
  220. package/src/SuperTable/SuperTable.js +0 -590
  221. package/src/SuperTable/fixed.js +0 -34
  222. package/src/SuperTable2/SuperTable2.js +0 -624
  223. package/src/SuperTable2/SuperTableCell.js +0 -175
  224. package/src/SuperTable3/FilterDropDown.js +0 -111
  225. package/src/SuperTable3/SuperTable.js +0 -498
  226. package/src/SuperTable3/fixed.js +0 -34
  227. package/src/SuperToolbar/SuperToolbar.js +0 -128
  228. package/src/SuperUpload/SuperUpload.js +0 -137
  229. package/src/Title/Title.js +0 -18
  230. package/src/Viewer/ImageViews.js +0 -220
  231. package/src/Viewer/Viewer.js +0 -97
  232. package/src/WingBlank/WingBlank.js +0 -14
  233. package/src/helper.js +0 -185
  234. package/src/index.js +0 -39
  235. package/src/variables.js +0 -5
  236. package/test/index.html +0 -10
  237. package/test/test.js +0 -16
  238. package/test/test.less +0 -12
  239. package/test/webpack.config.js +0 -71
  240. package/tools/babel.config.js +0 -14
  241. package/tools/build.js +0 -70
  242. package/tools/publish.js +0 -9
  243. package/tools/util.js +0 -53
  244. /package/{src → es}/Area/package.json +0 -0
  245. /package/{src → es}/Card/package.json +0 -0
  246. /package/{src → es}/CodeInput/package.json +0 -0
  247. /package/{src → es}/Control/package.json +0 -0
  248. /package/{src → es}/Enhance/package.json +0 -0
  249. /package/{src → es}/Header/Header.less +0 -0
  250. /package/{src → es}/Header/Vertical.less +0 -0
  251. /package/{src → es}/Header/package.json +0 -0
  252. /package/{src → es}/ImageView/ImageView.less +0 -0
  253. /package/{src → es}/ImageView/package.json +0 -0
  254. /package/{src → es}/Indent/package.json +0 -0
  255. /package/{src → es}/InpurCascader/package.json +0 -0
  256. /package/{src → es}/InputEditor/inputEditor.less +0 -0
  257. /package/{src → es}/InputEditor/package.json +0 -0
  258. /package/{src → es}/InputSearch/package.json +0 -0
  259. /package/{src → es}/InputSelect/package.json +0 -0
  260. /package/{src → es}/InputTreeSelect/package.json +0 -0
  261. /package/{src → es}/InputWriting/package.json +0 -0
  262. /package/{src → es}/Layout/Layout.less +0 -0
  263. /package/{src → es}/Layout/package.json +0 -0
  264. /package/{src → es}/LayoutLink/LayoutLink.less +0 -0
  265. /package/{src → es}/LayoutLink/package.json +0 -0
  266. /package/{src → es}/Link/package.json +0 -0
  267. /package/{src → es}/Loading/Loading.less +0 -0
  268. /package/{src → es}/Loading/package.json +0 -0
  269. /package/{src → es}/Loading2/Loading2.less +0 -0
  270. /package/{src → es}/Loading2/package.json +0 -0
  271. /package/{src → es}/ModalWithDrag/ModalWithDrag.less +0 -0
  272. /package/{src → es}/ModalWithDrag/package.json +0 -0
  273. /package/{src → es}/NumberInput/package.json +0 -0
  274. /package/{src → es}/Search/Search.less +0 -0
  275. /package/{src → es}/Search/package.json +0 -0
  276. /package/{src → es}/Search2/Search.less +0 -0
  277. /package/{src → es}/Search2/package.json +0 -0
  278. /package/{src → es}/Sidebar/Sidebar.less +0 -0
  279. /package/{src → es}/Sidebar/package.json +0 -0
  280. /package/{src → es}/Sidebar2/Sidebar.less +0 -0
  281. /package/{src → es}/Sidebar2/package.json +0 -0
  282. /package/{src → es}/SuperForm/SuperForm.less +0 -0
  283. /package/{src → es}/SuperForm/package.json +0 -0
  284. /package/{src → es}/SuperForm2/SuperForm.less +0 -0
  285. /package/{src → es}/SuperForm2/package.json +0 -0
  286. /package/{src → es}/SuperIcon/package.json +0 -0
  287. /package/{src → es}/SuperPagination/package.json +0 -0
  288. /package/{src → es}/SuperTab/SuperTab.less +0 -0
  289. /package/{src → es}/SuperTab/package.json +0 -0
  290. /package/{src → es}/SuperTab2/SuperTab2.less +0 -0
  291. /package/{src → es}/SuperTab2/package.json +0 -0
  292. /package/{src → es}/SuperTable/DragSortRow.less +0 -0
  293. /package/{src → es}/SuperTable/FilterDropDown.less +0 -0
  294. /package/{src → es}/SuperTable/SuperTable.less +0 -0
  295. /package/{src → es}/SuperTable/package.json +0 -0
  296. /package/{src → es}/SuperTable2/SuperTable2.less +0 -0
  297. /package/{src → es}/SuperTable2/package.json +0 -0
  298. /package/{src → es}/SuperTable3/FilterDropDown.less +0 -0
  299. /package/{src → es}/SuperTable3/SuperTable.less +0 -0
  300. /package/{src → es}/SuperTable3/package.json +0 -0
  301. /package/{src → es}/SuperToolbar/SuperToolbar.less +0 -0
  302. /package/{src → es}/SuperToolbar/package.json +0 -0
  303. /package/{src → es}/SuperUpload/SuperUpload.less +0 -0
  304. /package/{src → es}/SuperUpload/package.json +0 -0
  305. /package/{src → es}/Title/Title.less +0 -0
  306. /package/{src → es}/Title/package.json +0 -0
  307. /package/{src → es}/Viewer/Viewer.less +0 -0
  308. /package/{src → es}/Viewer/imgView.less +0 -0
  309. /package/{src → es}/Viewer/package.json +0 -0
  310. /package/{src → es}/WingBlank/WingBlank.less +0 -0
  311. /package/{src → es}/WingBlank/package.json +0 -0
  312. /package/{src → es}/adjust.less +0 -0
  313. /package/{src → es}/style.less +0 -0
  314. /package/{src → es}/variables.less +0 -0
@@ -1,436 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import ReactDOM from 'react-dom';
4
- import withStyles from 'isomorphic-style-loader/withStyles';
5
- import {Button, Form, Row, Col, Icon} from 'antd';
6
- import Control, {getTitle, makeString} from '../Control';
7
- // import helper from '../../common/common';
8
- // import s from './Search.less';
9
- import {getPathValue} from "../helper";
10
- // import showAddDialog from './AddDialog';
11
- // import showDeleteDialog from './DeleteDialog';
12
- import variables from "../variables";
13
-
14
- const FormItem = Form.Item;
15
- const defaultSize = 'small';
16
- const defaultColNum = 6;
17
- const insertTimeKeyMap = {
18
- from:["insertTimeTo","insertTimeFrom"],
19
- start:["insertTimeStart","insertTimeEnd"]
20
- }
21
- const TYPE = [
22
- 'text',
23
- 'search',
24
- 'searchText',
25
- 'select',
26
- 'number',
27
- 'date',
28
- 'readonly',
29
- 'selectSearch',
30
- 'cascader' //级联选择下拉
31
- ];
32
-
33
- /**
34
- * search: 搜索按钮的标题
35
- * more:更多按钮的标题
36
- * reset:重置按钮的标题
37
- * sort:排序按钮的标题
38
- */
39
- const ConfigType = {
40
- search: PropTypes.string.isRequired,
41
- reset: PropTypes.string,
42
- sort: PropTypes.string,
43
- more: PropTypes.string
44
- };
45
-
46
- /**
47
- * key: 唯一标识一个表单元素
48
- * title:表单元素旁边的标题
49
- * type:表单元素的类型
50
- * props:传递给表单元素的额外属性
51
- */
52
- const FilterType = {
53
- key: PropTypes.string.isRequired,
54
- title: PropTypes.string.isRequired,
55
- type: PropTypes.oneOf(TYPE).isRequired,
56
- options: PropTypes.array,
57
- props: PropTypes.object
58
- };
59
-
60
- /**
61
- * data:传递给filters的默认值,为key:value的形式,此处的key为FilterType中的key
62
- * isSort:是否需要排序按钮,默认false,当设置为true时,onClick函数需要实现key为sort的响应函数
63
- * options: 作用同FilterType.options类似,但优先级高于它
64
- * onClick:按钮点击事件,原型为func(key)
65
- * onChange:表单控件内容改变时触发,原型为func(key, value)
66
- * onSearch:search控件发出的事件,原型为func(key, value)
67
- * displayRow:折叠时需要展示的行数,整数,默认为2
68
- */
69
- class Search2 extends React.Component {
70
- static propTypes = {
71
- config: PropTypes.shape(ConfigType).isRequired,
72
- filters: PropTypes.arrayOf(PropTypes.shape(FilterType)).isRequired,
73
- data: PropTypes.object,
74
- options: PropTypes.object,
75
- getContainer: PropTypes.func,
76
- onClick: PropTypes.func,
77
- onChange: PropTypes.func,
78
- onSearch: PropTypes.func,
79
- onHeightChange: PropTypes.func,
80
- displayRow: PropTypes.number,
81
- };
82
-
83
- state = {more: false};
84
-
85
- getPathFun = async (key) => {
86
- const pathArr = global.location.pathname.split('/');
87
- const {sidebars,navigation} = global.store.getState().layout;
88
- const title = Object.keys(sidebars).reduce((t,i) => {
89
- sidebars[i].map(item => {
90
- if (item.children){
91
- const filterArr = item.children.filter(c => c.href === global.location.pathname);
92
- if (filterArr.length !== 0){
93
- t = navigation.filter(n => n.key === i)[0].title.concat(`-${item.title}-${filterArr[0].title}`);
94
- }
95
- }else{
96
- if (item.href === global.location.pathname){
97
- t = navigation.filter(n => n.key === i)[0].title.concat(`-${item.title}`);
98
- }
99
- }
100
- return item;
101
- })
102
- return t;
103
- },'');
104
- const body = {
105
- action: `${pathArr[pathArr.length - 1]}_${key}`,
106
- actionName: `${title}-搜索`,
107
- menuName: title
108
- }
109
- const url = '/api/standard/log';
110
- // await helper.fetchJson(url, helper.postOption(body))
111
- };
112
-
113
- onClick = (key) => {
114
- const {onClick} = this.props;
115
- if (key === 'search'){
116
- // this.getPathFun(key);
117
- }
118
- onClick && onClick(key);
119
- };
120
-
121
- onMore = () => {
122
- const {onHeightChange} = this.props;
123
- this.setState({more: !this.state.more});
124
- onHeightChange && onHeightChange(this.calHeight(!this.state.more));
125
- };
126
-
127
- onChange = (dictionary, key, value) => {
128
- const {onChange} = this.props;
129
- if (value && key === 'queryGroup' && dictionary && global.dictionary && global.dictionary[dictionary]
130
- && !global.dictionary[dictionary].map(item => item.value).includes(value)) {
131
- const realValue = JSON.parse(value);
132
- this.onClick('reset');
133
- Object.keys(realValue).map(objectKey => {
134
- onChange && objectKey !== 'queryId' && onChange(objectKey, realValue[objectKey]);
135
- });
136
- }
137
- onChange && onChange(key, value);
138
- };
139
-
140
- onPressEnter = () => {
141
- ReactDOM.findDOMNode(this.refs.search).click();
142
- };
143
-
144
- toButton = (key, props={}) => {
145
- const {config} = this.props;
146
- const onClick = this.onClick.bind(this, key);
147
- return <Button size={defaultSize} onClick={onClick} {...props}>{config[key]}</Button>;
148
- };
149
-
150
- toMore = () => {
151
- return (
152
- <a role='more' onClick={this.onMore}>
153
- {this.props.config.more}
154
- <Icon type='down' data-status={!this.state.more ? 'down' : 'up'} />
155
- </a>
156
- );
157
- };
158
-
159
- toButtons = () => {
160
- const {config} = this.props;
161
- return (
162
- <div role='buttons'>
163
- {this.toButton('search', {ref: 'search', type: 'primary'})}
164
- {config.reset ? this.toButton('reset') : null}
165
- {this.isSort() ? this.toButton('sort') : null}
166
- {this.isMore() ? this.toMore() : null}
167
- </div>
168
- );
169
- };
170
-
171
- isSort = () => {
172
- const {config, colNum=defaultColNum, filters, isSort=false} = this.props;
173
- return isSort && config.sort && (filters.length > colNum);
174
- };
175
-
176
- isMore = () => {
177
- const {config, colNum=defaultColNum, filters, displayRow=filters.length > 4 ? 2 : 1} = this.props;
178
- return config.more && (filters.filter(item => !item.hide).length > colNum * displayRow);
179
- };
180
-
181
- getOptions = (filter) => {
182
- const options = this.props.options;
183
- if (options && Array.isArray(options[filter.key])) {
184
- return options[filter.key];
185
- } else {
186
- return filter.options || filter.typeRelated || [];
187
- }
188
- };
189
-
190
- getContainer = () => {
191
- return this.props.getContainer;
192
- };
193
-
194
- getControlProps = (control) => {
195
- const {data={}} = this.props;
196
- return {
197
- ...(control.props || {}),
198
- size: defaultSize,
199
- type: control.type,
200
- value: makeString(data[control.key]),
201
- onChange: this.onChange.bind(this, control.dictionary, control.key)
202
- };
203
- };
204
- validDate = ({key, type}) => (date) => {
205
- const {data={}} = this.props;
206
- if (!date || !data[key]) {
207
- return false;
208
- } else {
209
- if (type === '>') {
210
- return date.format('YYYY-MM-DD HH:mm:ss') <= data[key].valueOf();
211
- } else if (type === '<') {
212
- return date.format('YYYY-MM-DD HH:mm:ss') >= data[key].valueOf();
213
- } else {
214
- return false;
215
- }
216
- }
217
- };
218
-
219
- toText = (props) => {
220
- props.onPressEnter = this.onPressEnter;
221
- return <Control {...props} />;
222
- };
223
-
224
- toNumber = (props) => {
225
- props.defaultValue = props.value;
226
- delete props.value;
227
- return <Control {...props} />;
228
- };
229
-
230
- getQueryGroupOptions = ({dictionary, configCode='unknown'}) => {
231
- let realOptions = [];
232
- if (dictionary && global.dictionary) {
233
- const dicOptions = global.dictionary[dictionary] || [];
234
- realOptions = realOptions.concat(dicOptions);
235
- }
236
- const state = global.store.getState();
237
- const path = ['layout', 'tableColsSetting', configCode];
238
- const {queryList = []} = getPathValue(state, path) || {};
239
- return realOptions.concat(queryList.map(item => ({title: item.name, value: JSON.stringify(item.query)})));
240
- };
241
-
242
- toSelect = (props, filter) => {
243
- const container = this.getContainer();
244
- container && (props.getPopupContainer = container);
245
- props.options = filter.key === 'queryGroup' ? this.getQueryGroupOptions(filter) : this.getOptions(filter);
246
- props.dropdownMatchSelectWidth = false;
247
- return <Control {...props} />;
248
- };
249
-
250
- createSearchEvent = (filter) => {
251
- if (this.props.onSearch) {
252
- return value => this.props.onSearch(filter.key, value, filter);
253
- } else {
254
- return null;
255
- }
256
- };
257
-
258
- toSearch = (props, filter) => {
259
- const container = this.getContainer();
260
- container && (props.getPopupContainer = container);
261
- props.options = this.getOptions(filter);
262
- props.onSearch = this.createSearchEvent(filter);
263
- props.dropdownMatchSelectWidth = false;
264
- return <Control {...props} />;
265
- };
266
-
267
- selectSearch = (props, filter) => {
268
- const container = this.getContainer();
269
- container && (props.getPopupContainer = container);
270
- props.options = this.getOptions(filter);
271
- props.onSearch = this.createSearchEvent(filter);
272
- props.dropdownMatchSelectWidth = false;
273
- return <Control {...props} />;
274
- };
275
-
276
-
277
- toDate = (props,{rule}) => {
278
- const container = this.getContainer();
279
- container && (props.getCalendarContainer = container);
280
- rule && (props.disabledDate = this.validDate(rule));
281
- props.style = {width: '100%'};
282
- return <Control {...props} />;
283
- };
284
-
285
- toReadonly = (props, filter) => {
286
- props.value = getTitle(props.value, this.getOptions(filter));
287
- return <Control {...props} />;
288
- };
289
-
290
- toCascader = (props,filter) => {
291
- const container = this.getContainer();
292
- container && (props.getPopupContainer = container);
293
- props.options = this.getOptions(filter);
294
- props.onSearch = this.createSearchEvent(filter);
295
- props.placeholder = filter.placeholder || '';
296
- return <Control {...props} />;
297
- };
298
-
299
- toControl = (control) => {
300
- const props = this.getControlProps(control);
301
- switch (control.type) {
302
- case 'text':
303
- return this.toText(props, control);
304
- case 'number':
305
- return this.toNumber(props, control);
306
- case 'select':
307
- return this.toSelect(props, control);
308
- case 'selectSearch':
309
- return this.selectSearch(props, control);
310
- case 'search':
311
- case 'searchText':
312
- return this.toSearch(props, control);
313
- case 'date':
314
- return this.toDate(props, control);
315
- case 'readonly':
316
- return this.toReadonly(props, control);
317
- case 'cascader':
318
- return this.toCascader(props,control)
319
- default:
320
- return 'type error';
321
- }
322
- };
323
-
324
- async onAddQueryGroup(configCode, searchData, dictionary) {
325
- const filter = Object.keys(searchData).reduce((state, key) => {
326
- if (searchData[key] && key !== 'queryGroup') {
327
- state[key] = searchData[key];
328
- }
329
- return state;
330
- }, {});
331
- // if (Object.keys(filter).length < 1) return helper.showError(`查询条件不能为空`);
332
- let dicOptionNameArr = [];
333
- if (dictionary && global.dictionary) {
334
- const dicOptions = global.dictionary[dictionary] || [];
335
- dicOptionNameArr = dicOptions.map(item => item.title);
336
- }
337
- // if (true === await showAddDialog(configCode, filter, dicOptionNameArr)) {
338
- // this.onChange(undefined, 'queryGroup', '');
339
- // }
340
- };
341
-
342
- async onDelQueryGroup(configCode, searchData, dictionary) {
343
- const {queryGroup} = searchData;
344
- // if (!queryGroup) return helper.showError(`请先选择要删除的查询组合`);
345
- if (dictionary && global.dictionary) {
346
- const dicOptions = global.dictionary[dictionary] || [];
347
- // if (dicOptions.map(item => item.value).includes(queryGroup)) return helper.showError(`系统固定查询组合不允许删除`);
348
- }
349
- const {queryId} = JSON.parse(queryGroup);
350
- // if(true === await showDeleteDialog(configCode, queryId)) {
351
- // this.onClick('reset');
352
- // }
353
- };
354
-
355
- toLabel = ({title, key, dictionary, configCode='unknown'}) => {
356
- if (key === 'queryGroup') { //查询组合
357
- return (
358
- <span>
359
- {title}
360
- <Icon role='icon' type='plus-circle-o' onClick={this.onAddQueryGroup.bind(this, configCode, this.props.data, dictionary)}/>
361
- <Icon role='icon' type="minus-circle-o" onClick={this.onDelQueryGroup.bind(this, configCode, this.props.data, dictionary)}/>
362
- </span>
363
- );
364
- } else {
365
- return title;
366
- }
367
- };
368
-
369
- toCol = (span, control, more) => {
370
- const factor = control.span || 1;
371
- return (
372
- <Col span={span * factor} key={control.key} onFocus={more ? ()=>{this.setState({more: true})} : undefined}>
373
- <FormItem label={this.toLabel(control)} required={control.required}>
374
- {this.toControl(control)}
375
- </FormItem>
376
- </Col>
377
- );
378
- };
379
-
380
- toCols = () => {
381
- const {insertTimeKey='from',colNum=defaultColNum, filters, displayRow=filters.length > defaultColNum ? 2 :1} = this.props;
382
- let span = 24 / Math.min(colNum, filters.filter(item => !item.hide).length);
383
- let newFilters = filters.filter(item => !item.hide);
384
- const insertKeys = insertTimeKeyMap[insertTimeKey];
385
- const insertTimeCols = newFilters.filter(x=>insertKeys.includes(x.key));
386
- const otherCols = newFilters.filter(x=>!insertKeys.includes(x.key));
387
- if (insertTimeCols.length>0){
388
- if (otherCols.length>=defaultColNum){
389
- otherCols.splice(6,0,...insertTimeCols);
390
- newFilters = otherCols;
391
- }else{
392
- newFilters = otherCols.concat(insertTimeCols);
393
- }
394
- }
395
- if (span == 4.8){ //特殊处理filters为5的时候,span不能为小数
396
- return newFilters.map((control, index) => this.toCol(index==0?4:5, control, index >= colNum * displayRow));
397
- }else{
398
- return newFilters.map((control, index) => this.toCol(span, control, index >= colNum * displayRow));
399
- }
400
- };
401
-
402
- calWidth = () => {
403
- const {colNum=defaultColNum, filters} = this.props;
404
- const length = filters.filter(item => !item.hide).length;
405
- if (length < colNum) {
406
- return `${length * 13.6}%`;
407
- } else {
408
- return `${defaultColNum * 13.6}%`;
409
- }
410
- };
411
-
412
- calHeight = (more) => {
413
- const {colNum=defaultColNum, filters, displayRow=filters.length > defaultColNum ? 2 :1} = this.props;
414
- if (more) {
415
- const row = Math.ceil(filters.filter(item => !item.hide).length / colNum);
416
- return row * 36 + (row - 1) * 10;
417
- } else {
418
- return displayRow * 36 + (displayRow - 1) * 10;
419
- }
420
- };
421
-
422
- render() {
423
- return (
424
- <div className={variables('Search2')} style={{height: this.calHeight(this.state.more)}}>
425
- <Form layout='vertical' style={{width: this.calWidth()}}>
426
- <Row gutter={20}>
427
- {this.toCols()}
428
- </Row>
429
- </Form>
430
- {this.toButtons()}
431
- </div>
432
- );
433
- }
434
- }
435
-
436
- export default Search2;
@@ -1,111 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import Link from '../Link';
4
- import SuperIcon from '../SuperIcon';
5
- import {Menu} from 'antd';
6
- import variables from '../variables';
7
-
8
- const SubMenu = Menu.SubMenu;
9
- const MenuItem = Menu.Item;
10
-
11
- /** 侧边栏二级条目的类型
12
- * key: 唯一标识一个条目
13
- * title:条目的标题
14
- * href: 为跳转页面的url
15
- */
16
- const ChildType = {
17
- key: PropTypes.string.isRequired,
18
- title: PropTypes.string.isRequired,
19
- href: PropTypes.string.isRequired
20
- };
21
-
22
- /** 侧边栏一级条目的类型
23
- * key: 唯一标识一个条目
24
- * title:条目的标题
25
- * icon:条目左边图标url,大小为20*20px
26
- * isFolder:为true表明有下级菜单,此时href被忽略,children存放下级菜单的信息
27
- * href: isFolder为false时,为跳转页面的url,否则被忽略
28
- * children:isFolder为true时,存放下级菜单的信息,否则被忽略
29
- */
30
- const ItemType = {
31
- key: PropTypes.string.isRequired,
32
- title: PropTypes.string.isRequired,
33
- icon: PropTypes.string,
34
- isFolder: PropTypes.bool,
35
- href: PropTypes.string,
36
- children: PropTypes.arrayOf(PropTypes.shape(ChildType))
37
- };
38
-
39
- /**
40
- * activeKey:指定被选中的一级条目的key,不能是二级条目的key
41
- * items:存放所有侧边栏条目的信息
42
- * style: 样式
43
- */
44
- class Sidebar extends React.Component {
45
- static propTypes = {
46
- activeKey: PropTypes.string.isRequired,
47
- items: PropTypes.arrayOf(PropTypes.shape(ItemType)).isRequired,
48
- style: PropTypes.object
49
- };
50
-
51
- onOpenChange = (openKeys) => {
52
- const {onOpenChange} = this.props;
53
- if (onOpenChange) {
54
- onOpenChange(openKeys);
55
- }
56
- };
57
-
58
- toIcon = (type) => {
59
- if (type) {
60
- return <SuperIcon type={type} style={{fontSize: 16, verticalAlign: -2}} />
61
- } else {
62
- return null;
63
- }
64
- };
65
-
66
- toItem = ({key, title, isFolder, children, href, icon, unreadTotal}) => {
67
- if (isFolder) {
68
- const t = <div>{this.toIcon(icon)}{title}</div>;
69
- return (
70
- <SubMenu key={key} title={t}>
71
- {this.toItems(children)}
72
- </SubMenu>
73
- );
74
- } else {
75
- return (
76
- <MenuItem key={key}>
77
- <Link to={href} title={title} className={variables('Sidebar').unreadTotalLink}>
78
- {this.toIcon(icon)}
79
- {title}
80
- {unreadTotal && unreadTotal>0 && <span className={variables('Sidebar').unreadTotalLink.unreadTotal}>{unreadTotal}</span>}
81
- </Link>
82
- </MenuItem>
83
- );
84
- }
85
- };
86
-
87
- toItems = (items) => {
88
- return items.map(this.toItem);
89
- };
90
-
91
- getProps = () => {
92
- const {style, activeKey, openKeys=[]} = this.props;
93
- return {
94
- style, openKeys,
95
- selectedKeys: [activeKey],
96
- mode: 'inline',
97
- onOpenChange: this.onOpenChange,
98
- className: variables('Sidebar')
99
- }
100
- };
101
-
102
- render() {
103
- return (
104
- <Menu {...this.getProps()}>
105
- {this.toItems(this.props.items)}
106
- </Menu>
107
- );
108
- }
109
- }
110
-
111
- export default Sidebar;
@@ -1,143 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import Link from '../Link';
4
- import {Icon} from 'antd';
5
- import variables from '../variables';
6
-
7
- const ITEM_HEIGHT = 40;
8
-
9
- /** 侧边栏二级条目的类型
10
- * key: 唯一标识一个条目
11
- * title:条目的标题
12
- * href: 为跳转页面的url
13
- */
14
- const ChildType = {
15
- key: PropTypes.string.isRequired,
16
- title: PropTypes.string.isRequired,
17
- href: PropTypes.string.isRequired
18
- };
19
-
20
- /** 侧边栏一级条目的类型
21
- * key: 唯一标识一个条目
22
- * title:条目的标题
23
- * isFolder:为true表明有下级菜单,此时href被忽略,children存放下级菜单的信息
24
- * href: isFolder为false时,为跳转页面的url,否则被忽略
25
- * children:isFolder为true时,存放下级菜单的信息,否则被忽略
26
- */
27
- const ItemType = {
28
- key: PropTypes.string.isRequired,
29
- title: PropTypes.string.isRequired,
30
- isFolder: PropTypes.bool,
31
- href: PropTypes.string,
32
- children: PropTypes.arrayOf(PropTypes.shape(ChildType))
33
- };
34
-
35
- /**
36
- * title: 侧边栏的标题
37
- * mode: 显示模式,默认为expand(展开)
38
- * activeKey:指定被选中的一级条目的key,不能是二级条目的key
39
- * items:存放所有侧边栏条目的信息
40
- * openKeys: 展开条目的key
41
- * style: 样式
42
- * onOpenChange: 展开条目信息改变时触发,原型为func(openKeys)
43
- * onModeChange: 模式改变时触发,原型为func(mode)
44
- */
45
- class Sidebar extends React.Component {
46
- static propTypes = {
47
- title: PropTypes.string,
48
- mode: PropTypes.oneOf(['collapse', 'expand']),
49
- activeKey: PropTypes.string,
50
- items: PropTypes.arrayOf(PropTypes.shape(ItemType)),
51
- openKeys: PropTypes.array,
52
- style: PropTypes.object,
53
- onOpenChange: PropTypes.func,
54
- onModeChange: PropTypes.func
55
- };
56
-
57
- onModeChange = () => {
58
- const mode = this.props.mode || 'expand';
59
- this.props.onModeChange(mode === 'expand' ? 'collapse' : 'expand');
60
- };
61
-
62
- isSelect = (item) => {
63
- return this.props.activeKey === item.key;
64
- };
65
-
66
- isOpen = (item) => {
67
- return this.props.openKeys.includes(item.key);
68
- };
69
-
70
- getHeight = (item) => {
71
- if (item.isFolder && this.isOpen(item)) {
72
- return (item.children.length + 1) * ITEM_HEIGHT;
73
- } else {
74
- return ITEM_HEIGHT;
75
- }
76
- };
77
-
78
- linkProps = (item) => {
79
- if (item.isFolder) {
80
- return {
81
- title: item.title,
82
- onClick: () => {
83
- if (this.isOpen(item)) {
84
- this.props.onOpenChange(this.props.openKeys.filter(key => item.key !== key));
85
- } else {
86
- this.props.onOpenChange([...this.props.openKeys, item.key]);
87
- }
88
- }
89
- }
90
- } else {
91
- return {
92
- title: item.title,
93
- to: item.href,
94
- 'data-select': this.isSelect(item)
95
- };
96
- }
97
- };
98
-
99
- renderChild = (item, index) => {
100
- return (
101
- <li key={index}>
102
- <Link {...this.linkProps(item)} data-role='child-item'>
103
- <span>{item.title}</span>
104
- {item.unreadTotal && item.unreadTotal>0 && <span className={variables('Sidebar2').unreadTotal}>{item.unreadTotal}</span>}
105
- </Link>
106
- </li>
107
- );
108
- };
109
-
110
- renderItem = (item, index) => {
111
- return (
112
- <li key={index} style={{height: this.getHeight(item)}}>
113
- <Link {...this.linkProps(item)} data-role='parent-item'>
114
- <span>{item.isFolder ? <Icon type='caret-right' data-open={this.isOpen(item)} /> : null}</span>
115
- <span>{item.title}</span>
116
- </Link>
117
- {item.isFolder && this.isOpen(item) ? <ul>{item.children.map(this.renderChild)}</ul> : null}
118
- </li>
119
- );
120
- };
121
-
122
- render() {
123
- return (
124
- <div className={variables('Sidebar2')} data-mode={this.props.mode || 'expand'}>
125
- <div>
126
- <span> </span>
127
- <span>{this.props.title}</span>
128
- </div>
129
- <ul>{this.props.items.map(this.renderItem)}</ul>
130
- {!this.props.onModeChange ? null : (
131
- <div data-role='shousuo' onClick={this.onModeChange}>
132
- <div>
133
- <i />
134
- <div><Icon type={this.props.mode === 'expand' ? 'left' : 'right'} /></div>
135
- </div>
136
- </div>
137
- )}
138
- </div>
139
- );
140
- }
141
- }
142
-
143
- export default Sidebar;