aldehyde 0.2.236 → 0.2.237

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 (254) hide show
  1. package/lib/controls/action/index.d.ts +2 -0
  2. package/lib/controls/action/index.d.ts.map +1 -1
  3. package/lib/controls/chemstruc/graph.d.ts +2 -0
  4. package/lib/controls/chemstruc/graph.d.ts.map +1 -1
  5. package/lib/controls/collapse-card/index.d.ts +2 -0
  6. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  7. package/lib/controls/color-picker/index.d.ts +2 -0
  8. package/lib/controls/color-picker/index.d.ts.map +1 -1
  9. package/lib/controls/cquery/cquick-button.d.ts +2 -0
  10. package/lib/controls/cquery/cquick-button.d.ts.map +1 -1
  11. package/lib/controls/date-picker/index.d.ts.map +1 -1
  12. package/lib/controls/date-picker/index.js +9 -1
  13. package/lib/controls/date-picker/index.js.map +1 -1
  14. package/lib/controls/entity-select/entity-select.d.ts +2 -0
  15. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/lab-tree-select.d.ts +2 -0
  17. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  18. package/lib/controls/entity-select/popover-entity-select.d.ts +2 -0
  19. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  20. package/lib/controls/password-setter/index.d.ts +2 -0
  21. package/lib/controls/password-setter/index.d.ts.map +1 -1
  22. package/lib/controls/relation-existion/index.d.ts +2 -0
  23. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  24. package/lib/controls/rfield/index.d.ts +2 -0
  25. package/lib/controls/rfield/index.d.ts.map +1 -1
  26. package/lib/controls/select/index.d.ts +2 -0
  27. package/lib/controls/select/index.d.ts.map +1 -1
  28. package/lib/controls/signature/index.d.ts +2 -0
  29. package/lib/controls/signature/index.d.ts.map +1 -1
  30. package/lib/controls/text/ellipsis-text.d.ts +2 -0
  31. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  32. package/lib/controls/upload/index.d.ts +2 -0
  33. package/lib/controls/upload/index.d.ts.map +1 -1
  34. package/lib/controls/upload/mult-file-upload.d.ts +2 -0
  35. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  36. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts +2 -0
  37. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  38. package/lib/detail/button/bottom-submit-button-bar.d.ts +2 -0
  39. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  40. package/lib/detail/button/cquery-button-bar.d.ts +2 -0
  41. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  42. package/lib/detail/button/fix-right-submit-button-bar.d.ts +2 -0
  43. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  44. package/lib/detail/edit/fields-edit-card.d.ts +2 -0
  45. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  46. package/lib/detail/edit/modal-row-edit.d.ts +2 -0
  47. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  48. package/lib/detail/edit/row-edit-card.d.ts +2 -0
  49. package/lib/detail/edit/row-edit-card.d.ts.map +1 -1
  50. package/lib/detail/rightbar/index.d.ts +2 -0
  51. package/lib/detail/rightbar/index.d.ts.map +1 -1
  52. package/lib/detail/view/act-dtmpl-view.d.ts +2 -0
  53. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  54. package/lib/detail/view/act-dtmpl-view.js +1 -1
  55. package/lib/detail/view/act-dtmpl-view.js.map +1 -1
  56. package/lib/detail/view/field-view-group.d.ts +2 -0
  57. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  58. package/lib/detail/view/modal-dtmpl-view.d.ts +2 -0
  59. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  60. package/lib/detail/view/snapshot-timeline.d.ts +2 -0
  61. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  62. package/lib/detail/view/tab-act-dtmpl-view.d.ts +2 -0
  63. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -1
  64. package/lib/detail/view/tab-act-dtmpl-view.js +3 -3
  65. package/lib/detail/view/tab-act-dtmpl-view.js.map +1 -1
  66. package/lib/export/export-frame.d.ts +2 -0
  67. package/lib/export/export-frame.d.ts.map +1 -1
  68. package/lib/export/select-code-export-frame.d.ts +2 -0
  69. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  70. package/lib/form/dtmpl-form.d.ts +2 -0
  71. package/lib/form/dtmpl-form.d.ts.map +1 -1
  72. package/lib/form/field-group-form.d.ts +2 -0
  73. package/lib/form/field-group-form.d.ts.map +1 -1
  74. package/lib/form/form-Item-group.d.ts +2 -0
  75. package/lib/form/form-Item-group.d.ts.map +1 -1
  76. package/lib/form/form-Item-group.js +3 -2
  77. package/lib/form/form-Item-group.js.map +1 -1
  78. package/lib/hooks/use-match-route/index.d.ts +10 -0
  79. package/lib/hooks/use-match-route/index.d.ts.map +1 -0
  80. package/lib/hooks/use-match-route/index.js +41 -0
  81. package/lib/hooks/use-match-route/index.js.map +1 -0
  82. package/lib/hooks/use-tabs/index.d.ts +18 -0
  83. package/lib/hooks/use-tabs/index.d.ts.map +1 -0
  84. package/lib/hooks/use-tabs/index.js +112 -0
  85. package/lib/hooks/use-tabs/index.js.map +1 -0
  86. package/lib/import/excel-import.d.ts +2 -0
  87. package/lib/import/excel-import.d.ts.map +1 -1
  88. package/lib/layout/MainPage.js +1 -1
  89. package/lib/layout/MainPage.js.map +1 -1
  90. package/lib/layout/coverstyle.css +1 -1
  91. package/lib/layout/menu/block.d.ts +2 -0
  92. package/lib/layout/menu/block.d.ts.map +1 -1
  93. package/lib/layout/menu/l2menu-quick-bar.d.ts +2 -0
  94. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  95. package/lib/layout/menu/menu-2layers.d.ts +2 -0
  96. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  97. package/lib/layout/menu/reset-password.d.ts +2 -0
  98. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  99. package/lib/layout/menu/user-bar.d.ts +2 -0
  100. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  101. package/lib/layout/menu/userinfo-bar.d.ts +2 -0
  102. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  103. package/lib/layout/sidebar/index.js +4 -2
  104. package/lib/layout/sidebar/index.js.map +1 -1
  105. package/lib/layout2/components/userButton.d.ts.map +1 -1
  106. package/lib/layout2/components/userButton.js +9 -2
  107. package/lib/layout2/components/userButton.js.map +1 -1
  108. package/lib/layout2/header.d.ts.map +1 -1
  109. package/lib/layout2/header.js +4 -66
  110. package/lib/layout2/header.js.map +1 -1
  111. package/lib/layout2/main.d.ts +1 -1
  112. package/lib/layout2/main.d.ts.map +1 -1
  113. package/lib/layout2/main.js +3 -3
  114. package/lib/layout2/main.js.map +1 -1
  115. package/lib/layout2/page.d.ts.map +1 -1
  116. package/lib/layout2/page.js +20 -2
  117. package/lib/layout2/page.js.map +1 -1
  118. package/lib/layout2/sider.d.ts +1 -2
  119. package/lib/layout2/sider.d.ts.map +1 -1
  120. package/lib/layout2/sider.js +6 -125
  121. package/lib/layout2/sider.js.map +1 -1
  122. package/lib/layout2/tabs/tabs-context.d.ts +20 -0
  123. package/lib/layout2/tabs/tabs-context.d.ts.map +1 -0
  124. package/lib/layout2/tabs/tabs-context.js +9 -0
  125. package/lib/layout2/tabs/tabs-context.js.map +1 -0
  126. package/lib/layout2/tabs/tabs-layout.d.ts +4 -0
  127. package/lib/layout2/tabs/tabs-layout.d.ts.map +1 -0
  128. package/lib/layout2/tabs/tabs-layout.js +87 -0
  129. package/lib/layout2/tabs/tabs-layout.js.map +1 -0
  130. package/lib/locale/LocaleProvider.d.ts +2 -0
  131. package/lib/locale/LocaleProvider.d.ts.map +1 -1
  132. package/lib/locale/LocaleProvider.js +7 -1
  133. package/lib/locale/LocaleProvider.js.map +1 -1
  134. package/lib/locale/useLocale.d.ts +2 -0
  135. package/lib/locale/useLocale.d.ts.map +1 -1
  136. package/lib/locale/useLocale.js +8 -2
  137. package/lib/locale/useLocale.js.map +1 -1
  138. package/lib/login/login.d.ts +2 -0
  139. package/lib/login/login.d.ts.map +1 -1
  140. package/lib/login2/login-page.js +1 -1
  141. package/lib/login2/login-page.js.map +1 -1
  142. package/lib/module/dtmpl-edit-card.d.ts +2 -0
  143. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  144. package/lib/module/dtmpl-edit-page.d.ts +2 -0
  145. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  146. package/lib/module/dtmpl-view-card.d.ts.map +1 -1
  147. package/lib/module/dtmpl-view-card.js +0 -10
  148. package/lib/module/dtmpl-view-card.js.map +1 -1
  149. package/lib/module/ltmpl-modal.d.ts +2 -0
  150. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  151. package/lib/module/ltmpl-table.d.ts +4 -0
  152. package/lib/module/ltmpl-table.d.ts.map +1 -1
  153. package/lib/module/ltmpl-table.js +3 -2
  154. package/lib/module/ltmpl-table.js.map +1 -1
  155. package/lib/routable/ltmpl-route.d.ts +1 -0
  156. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  157. package/lib/routable/ltmpl-route.js +20 -9
  158. package/lib/routable/ltmpl-route.js.map +1 -1
  159. package/lib/routable/ttmpl-route.d.ts +1 -0
  160. package/lib/routable/ttmpl-route.d.ts.map +1 -1
  161. package/lib/routable/ttmpl-route.js +2 -2
  162. package/lib/routable/ttmpl-route.js.map +1 -1
  163. package/lib/routable/withroute.d.ts.map +1 -1
  164. package/lib/routable/withroute.js +8 -2
  165. package/lib/routable/withroute.js.map +1 -1
  166. package/lib/table/act-table.d.ts +7 -1
  167. package/lib/table/act-table.d.ts.map +1 -1
  168. package/lib/table/act-table.js +76 -32
  169. package/lib/table/act-table.js.map +1 -1
  170. package/lib/table/column/column-builder.d.ts +1 -0
  171. package/lib/table/column/column-builder.d.ts.map +1 -1
  172. package/lib/table/column/column-builder.js +2 -2
  173. package/lib/table/column/column-builder.js.map +1 -1
  174. package/lib/table/modal-select-table.d.ts +2 -0
  175. package/lib/table/modal-select-table.d.ts.map +1 -1
  176. package/lib/table/modal-select-table.js +1 -1
  177. package/lib/table/modal-select-table.js.map +1 -1
  178. package/lib/table/pagination.d.ts +2 -0
  179. package/lib/table/pagination.d.ts.map +1 -1
  180. package/lib/table/query-table.d.ts +4 -0
  181. package/lib/table/query-table.d.ts.map +1 -1
  182. package/lib/table/query-table.js +35 -4
  183. package/lib/table/query-table.js.map +1 -1
  184. package/lib/table/relation-table.d.ts +2 -0
  185. package/lib/table/relation-table.d.ts.map +1 -1
  186. package/lib/table/relation-table.js +1 -1
  187. package/lib/table/relation-table.js.map +1 -1
  188. package/lib/table/select-table.d.ts +2 -0
  189. package/lib/table/select-table.d.ts.map +1 -1
  190. package/lib/table/select-table.js +2 -1
  191. package/lib/table/select-table.js.map +1 -1
  192. package/lib/table/selected-rows-card.d.ts +3 -0
  193. package/lib/table/selected-rows-card.d.ts.map +1 -1
  194. package/lib/table/selected-rows-card.js +2 -1
  195. package/lib/table/selected-rows-card.js.map +1 -1
  196. package/lib/table/stat/restat.d.ts +2 -0
  197. package/lib/table/stat/restat.d.ts.map +1 -1
  198. package/lib/tmpl/hcservice-v3.d.ts +2 -0
  199. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  200. package/lib/tmpl/hcservice-v3.js +22 -0
  201. package/lib/tmpl/hcservice-v3.js.map +1 -1
  202. package/lib/tmpl/interface.d.ts +10 -1
  203. package/lib/tmpl/interface.d.ts.map +1 -1
  204. package/lib/tmpl/interface.js.map +1 -1
  205. package/lib/tree/act-tree.d.ts +6 -1
  206. package/lib/tree/act-tree.d.ts.map +1 -1
  207. package/lib/tree/act-tree.js +5 -5
  208. package/lib/tree/act-tree.js.map +1 -1
  209. package/lib/tree/tmpl-tree.d.ts +2 -0
  210. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  211. package/lib/units/index.d.ts +5 -1
  212. package/lib/units/index.d.ts.map +1 -1
  213. package/lib/units/index.js +25 -0
  214. package/lib/units/index.js.map +1 -1
  215. package/lib/welcome/quick-entrance.d.ts +2 -0
  216. package/lib/welcome/quick-entrance.d.ts.map +1 -1
  217. package/lib/welcome/workbench.d.ts +2 -0
  218. package/lib/welcome/workbench.d.ts.map +1 -1
  219. package/package.json +2 -1
  220. package/src/aldehyde/controls/date-picker/index.tsx +15 -1
  221. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +1 -1
  222. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +2 -5
  223. package/src/aldehyde/form/form-Item-group.tsx +4 -3
  224. package/src/aldehyde/hooks/use-match-route/index.tsx +63 -0
  225. package/src/aldehyde/hooks/use-tabs/index.tsx +130 -0
  226. package/src/aldehyde/layout/MainPage.tsx +1 -1
  227. package/src/aldehyde/layout/coverstyle.css +1 -1
  228. package/src/aldehyde/layout/sidebar/index.tsx +4 -4
  229. package/src/aldehyde/layout2/components/userButton.tsx +15 -2
  230. package/src/aldehyde/layout2/header.tsx +5 -69
  231. package/src/aldehyde/layout2/main.tsx +4 -3
  232. package/src/aldehyde/layout2/page.tsx +25 -3
  233. package/src/aldehyde/layout2/sider.tsx +5 -133
  234. package/src/aldehyde/layout2/tabs/tabs-context.tsx +30 -0
  235. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +152 -0
  236. package/src/aldehyde/locale/LocaleProvider.tsx +13 -2
  237. package/src/aldehyde/locale/useLocale.ts +10 -2
  238. package/src/aldehyde/login2/login-page.tsx +1 -1
  239. package/src/aldehyde/module/dtmpl-view-card.tsx +0 -11
  240. package/src/aldehyde/module/ltmpl-table.tsx +13 -27
  241. package/src/aldehyde/routable/ltmpl-route.tsx +37 -46
  242. package/src/aldehyde/routable/ttmpl-route.tsx +3 -2
  243. package/src/aldehyde/routable/withroute.tsx +12 -2
  244. package/src/aldehyde/table/act-table.tsx +96 -45
  245. package/src/aldehyde/table/column/column-builder.tsx +7 -6
  246. package/src/aldehyde/table/modal-select-table.tsx +3 -2
  247. package/src/aldehyde/table/query-table.tsx +44 -4
  248. package/src/aldehyde/table/relation-table.tsx +1 -2
  249. package/src/aldehyde/table/select-table.tsx +2 -1
  250. package/src/aldehyde/table/selected-rows-card.tsx +3 -0
  251. package/src/aldehyde/tmpl/hcservice-v3.tsx +20 -0
  252. package/src/aldehyde/tmpl/interface.tsx +17 -4
  253. package/src/aldehyde/tree/act-tree.tsx +7 -5
  254. package/src/aldehyde/units/index.tsx +40 -1
@@ -1,4 +1,4 @@
1
- import React, { ReactNode } from "react";
1
+ import React, {ReactDOM, ReactNode} from "react";
2
2
  import {
3
3
  Button, Card, Checkbox, Col, Divider, Popover, Row, Space, Drawer, Modal, Tooltip,
4
4
  message, Statistic, Layout,Table
@@ -11,7 +11,7 @@ import {
11
11
  import "./index.css";
12
12
  import {
13
13
  ActTableMode, ActTableViewModel, AggregateVO, ClassAddConfig, ColumnConfig,
14
- CustomButton, DoEditParam, DtmplData, JumpConfig, LtmplConfig, QueryKey,
14
+ CustomButton, CustomButtonConfig, DoEditParam, DtmplData, JumpConfig, LtmplConfig, QueryKey,
15
15
  SelectedRow, ShowViewParam, TmplBaseProps,
16
16
  } from "../tmpl/interface";
17
17
 
@@ -61,6 +61,7 @@ interface ActTableProps extends TmplBaseProps {
61
61
  initCollapse?: boolean;
62
62
  readOnly?: boolean;
63
63
  tableType?:"common"|"report";
64
+ operatable?:boolean;
64
65
  }
65
66
 
66
67
  interface ActTableStat {
@@ -84,6 +85,7 @@ interface ActTableStat {
84
85
  showRatmplSelector?: boolean;
85
86
  aggregateVO?: AggregateVO;
86
87
  restatParams?: object;
88
+
87
89
  }
88
90
  let serial_number = new Date().getTime();
89
91
  class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
@@ -121,6 +123,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
121
123
  collapsible: false,
122
124
  initCollapse: false,
123
125
  readOnly: false,
126
+ operatable:true,
124
127
  };
125
128
 
126
129
  loadData = async (
@@ -210,18 +213,34 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
210
213
  });
211
214
  };
212
215
 
213
- doCustomButton = (customButton: CustomButton, records: DtmplData[]) => {
214
- let page = ProgramConfig.getCustomPage(customButton.id);
215
- if (!page) {
216
- message.error("Not Found Custom Page");
217
- } else {
218
- //if(customButton.){
219
- this.setState({
220
- showCustomCard: true,
221
- customButton,
222
- customButtonData: records,
223
- });
224
- // }
216
+ doCustomButton =async (customButton: CustomButton, records: DtmplData[]) => {
217
+ if(!this.buttonClickable()){
218
+ return;
219
+ }
220
+ const {serverKey, sourceId} = this.props;
221
+ let doType=customButton.doType;
222
+ let config:CustomButtonConfig = ProgramConfig.getCustomButtonConfig(customButton.id);
223
+ if("request_refresh" == doType){
224
+ if(config && config.doAction){
225
+ await config.doAction(customButton,records);
226
+ }else if(config && config.getRequestUrl){
227
+ let url=await config.getRequestUrl(customButton,records);
228
+ await HcserviceV3.doPostRequest(serverKey,url);
229
+ }else if(customButton.path){
230
+ await HcserviceV3.doPostRequest(serverKey,customButton.path);
231
+ }else{
232
+ message.error("Button Config Error");
233
+ return;
234
+ }
235
+ this.doSearchDirect(null);
236
+ }else if("show_window"==doType){
237
+ this.setState({
238
+ showCustomCard: true,
239
+ customButton,
240
+ customButtonData: records,
241
+ });
242
+ }else {
243
+ message.error("Unsuport Button dotype " + doType);
225
244
  }
226
245
  };
227
246
 
@@ -257,8 +276,26 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
257
276
  if (windowPosition && windowPosition != customButton.windowPosition) {
258
277
  return "";
259
278
  }
279
+
260
280
  let customProps = { customButton: customButton, data: customButtonData };
261
- let page = ProgramConfig.getCustomPage(customButton.id);
281
+
282
+ let config:CustomButtonConfig= ProgramConfig.getCustomButtonConfig(customButton.id);
283
+ let page;
284
+ if(config && config.getCurrentPage){
285
+ page=config.getCurrentPage(customButton,customButtonData);
286
+ }
287
+ if(!page){
288
+ page = ProgramConfig.getCustomPage(customButton.id);
289
+ }
290
+
291
+ if(!page){
292
+ message.error("Not found CustomButton Page");
293
+ this.setState({
294
+ customButton:undefined
295
+ })
296
+ return;
297
+ }
298
+
262
299
  let customElement = React.createElement(page, customProps);
263
300
  if (
264
301
  customButton.windowPosition == "under-table" ||
@@ -333,6 +370,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
333
370
  ...ltmplConfig.columns,
334
371
  ];
335
372
  }
373
+
336
374
  this.loadData(defaultDisabledColIds, [], sortedColConfigs);
337
375
  }
338
376
 
@@ -346,19 +384,19 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
346
384
  } = prevProps;
347
385
 
348
386
  let { hiddenColIds, sortedColConfigs } = this.state;
349
-
387
+ let currentQueryParams= ProgramConfig.transQueryParamsToStr(criteriaData, false, [
388
+ "pageSize",
389
+ "pageNo",
390
+ ]);
391
+ let preCurrentQueryParams=ProgramConfig.transQueryParamsToStr(preCriteriaData, false, [
392
+ "pageSize",
393
+ "pageNo",
394
+ ]);
350
395
  if (
351
396
  (sourceId && preSourceId != sourceId) ||
352
397
  (ltmplConfig &&
353
398
  (!preLtmplConfig || ltmplConfig.id != preLtmplConfig.id)) ||
354
- ProgramConfig.transQueryParamsToStr(criteriaData, false, [
355
- "pageSize",
356
- "pageNo",
357
- ]) !=
358
- ProgramConfig.transQueryParamsToStr(preCriteriaData, false, [
359
- "pageSize",
360
- "pageNo",
361
- ])
399
+ (currentQueryParams != preCurrentQueryParams && (!criteriaData['menuId'] || preCriteriaData.menuId==criteriaData['menuId']))
362
400
  ) {
363
401
  //5秒后允许再次请求数据
364
402
  //refresh=false;
@@ -407,7 +445,6 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
407
445
  };
408
446
 
409
447
  onHide = (code: string) => {
410
-
411
448
  const { hiddenRowCodes } = this.state;
412
449
  let hiddenCodes = [...hiddenRowCodes, code];
413
450
  this.setState({
@@ -954,6 +991,25 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
954
991
  }
955
992
  }
956
993
 
994
+ doSearchDirect = (data: object) => {
995
+
996
+ let { doSearch } = this.props;
997
+ if (doSearch ) {
998
+ doSearch({ ...data, serial_number });
999
+ }
1000
+ }
1001
+
1002
+
1003
+ buttonClickable = () => {
1004
+ let new_serial_number = new Date().getTime();
1005
+ if (new_serial_number - serial_number > 1500) {
1006
+ serial_number = new_serial_number;
1007
+ return true;
1008
+ }else{
1009
+ return false;
1010
+ }
1011
+ }
1012
+
957
1013
  renderCriteriaForm = () => {
958
1014
  let { loading, selectedRows, selectedDatas } = this.state;
959
1015
  let { ltmplConfig, criteriaData, serverKey } = this.props;
@@ -1004,14 +1060,13 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1004
1060
  aggregateVO,
1005
1061
  } = this.state;
1006
1062
  let {
1007
- sourceId, ltmplConfig, funcMode,
1063
+ sourceId, ltmplConfig, funcMode,operatable,
1008
1064
  title, collapsible, pageSize,
1009
1065
  pageNo, onChangePage, serverKey, criteriaData,
1010
1066
  showView, doEdit, doRAction, customEditable, readOnly,tableType
1011
1067
  } = this.props;
1012
1068
  const { translate } = this.context;
1013
1069
 
1014
-
1015
1070
  if (!ltmplConfig || !sourceId) {
1016
1071
  return (
1017
1072
  <>
@@ -1021,18 +1076,12 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1021
1076
  );
1022
1077
  }
1023
1078
 
1024
-
1025
-
1026
1079
  let tableColumns = ColumnBuilder.buildTableColumns(
1027
- {ltmplConfig,
1028
- hiddenColIds,
1029
- hiddenRowCodes,
1030
- sortedColConfigs,showView,
1080
+ {ltmplConfig,operatable,
1081
+ hiddenColIds, hiddenRowCodes, sortedColConfigs,showView,
1031
1082
  doEdit,
1032
- doRAction,
1033
- customEditable,
1034
- serverKey,
1035
- readOnly,
1083
+ doRAction, customEditable,
1084
+ serverKey, readOnly,
1036
1085
  sourceId, translate,unHiden:this.unHiden,
1037
1086
  onHide:this.onHide, doCustomButton:this.doCustomButton, doRowJump:this.doRowJump,
1038
1087
  blockMenuTreeDrawerOpen:this.blockMenuTreeDrawerOpen,
@@ -1107,13 +1156,13 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1107
1156
  : typeof title == "string"
1108
1157
  ? translate("${" + title + "}")
1109
1158
  : title}</p>
1110
- <Space size={"large"} style={{marginLeft:50}}>
1111
- {aggregateVO && aggregateVO.aggregates?
1112
- aggregateVO.aggregates.map(av=>{
1113
- return <Statistic title={av.fieldTitle} value={av.value} />
1114
- }):null
1115
- }
1116
- </Space>
1159
+ {/*<Space size={"large"} style={{marginLeft:50}}>*/}
1160
+ {/*{aggregateVO && aggregateVO.aggregates?*/}
1161
+ {/* aggregateVO.aggregates.map(av=>{*/}
1162
+ {/* return <Statistic title={av.fieldTitle} value={av.value} />*/}
1163
+ {/* }):null*/}
1164
+ {/*}*/}
1165
+ {/*</Space>*/}
1117
1166
  <p className="fr" style={{marginBottom:"4px"}}>{this.renderHeaderButtons()}</p>
1118
1167
  </h3>
1119
1168
  </span>
@@ -1133,7 +1182,9 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1133
1182
  </Sider>
1134
1183
  <Layout style={{ backgroundColor: "#fff" }}>
1135
1184
  <Content style={{ overflow: "initial" }}>
1185
+
1136
1186
  {displayCriteriaCard ? this.renderCriteriaForm() : null}
1187
+
1137
1188
  { loading ? (
1138
1189
  <Table loading={loading}></Table>
1139
1190
  ) : (tableType =="report"?<ReportTable
@@ -1214,7 +1265,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
1214
1265
 
1215
1266
  render() {
1216
1267
  let {
1217
- queryKey, loading, blockMenuTreeDrawerOpen, recordCode, showRatmplSelector,
1268
+ queryKey, loading, blockMenuTreeDrawerOpen, recordCode, showRatmplSelector
1218
1269
  } = this.state;
1219
1270
  let {
1220
1271
  sourceId, ltmplConfig, title, collapsible, initCollapse,
@@ -34,14 +34,15 @@ interface ColumnBuilderProps extends ActionRenderProps{
34
34
  hiddenRowCodes?: string[],
35
35
  sortedColConfigs?: ColumnConfig[],
36
36
  unHiden?:()=>any,
37
- onHide?:(code: string)=>any,
37
+ onHide?:(code: string)=>any,
38
+ operatable?:boolean,
38
39
  }
39
40
 
40
41
  interface ReportColumnBuilderProps {
41
- columnConfigs: ColumnConfig[],
42
+ columnConfigs: ColumnConfig[],
42
43
  hiddenColIds?: string[],
43
- translate:(...strs: string[]) => string;
44
- leftFixedCols: number,
44
+ translate:(...strs: string[]) => string;
45
+ leftFixedCols: number,
45
46
  hiddenRowCodes?: string[],
46
47
  unHiden?:()=>any,
47
48
  onHide?:(code: string)=>any,
@@ -57,7 +58,7 @@ export default {
57
58
  hiddenRowCodes,
58
59
  sortedColConfigs, unHiden,
59
60
  onHide,translate,
60
- sortColumns,serverKey
61
+ sortColumns,serverKey,
61
62
  } = props;
62
63
 
63
64
 
@@ -104,7 +105,7 @@ export default {
104
105
  this.setSortProps(column,item,translate);
105
106
  } else if (item.id == "20000") {
106
107
  this.setHiddenRecordOpt(column,hiddenRowCodes,unHiden,onHide,translate);
107
- } else if (item.title === "操作") {
108
+ } else if (item.title === "操作" && props.operatable) {
108
109
  column["操作"] = "1";
109
110
  column["fixed"] = "right";
110
111
  column["align"] = "left";
@@ -254,7 +254,7 @@ class ModelSelectTable extends React.PureComponent<ModelSelectTableProps, ModelS
254
254
  return (
255
255
  <Modal
256
256
  open={open}
257
- title={<SelectedRowsCard value={selectedRows} onChange={this.changeRowSelection}></SelectedRowsCard>}
257
+ title={<SelectedRowsCard value={selectedRows} onChange={this.changeRowSelection} ></SelectedRowsCard>}
258
258
  width={1150}
259
259
  destroyOnClose={true}
260
260
  centered
@@ -265,7 +265,8 @@ class ModelSelectTable extends React.PureComponent<ModelSelectTableProps, ModelS
265
265
  <div className="actTable">
266
266
  <CriteriaForm serverKey={serverKey} selectedRows={selectedRows} ltmplConfig={selectConfig} data={criteriaData}
267
267
  doSearch={this.doSearch} loading={loading} />
268
- <QueryTable serverKey={serverKey} pageInfo={{pageNo:pageNo?pageNo:1,pageSize:pageSize?pageSize:selectConfig.defaultPageSize}} onChangePage={this.onChangePage} maxSelectedRows={maxSelectedRows} selectedRows={selectedRows}
268
+ <QueryTable serverKey={serverKey} pageInfo={{pageNo:pageNo?pageNo:1,pageSize:pageSize?pageSize:selectConfig.defaultPageSize}} onChangePage={this.onChangePage}
269
+ maxSelectedRows={maxSelectedRows?maxSelectedRows:selectConfig.maxSelectedRows} selectedRows={selectedRows}
269
270
  primaryColumn={selectConfig.primaryColumn}
270
271
  columns={columns}
271
272
  queryKey={queryKey}
@@ -15,7 +15,7 @@ import { LocaleContext } from "../locale/LocaleProvider";
15
15
  import { init, merge, statistic } from "../utils/dsu";
16
16
  import VerticalList from "../list/vertical-list";
17
17
  import SummaryBuilder from "./column/summary-builder";
18
- import {Card, Descriptions, Space, Statistic, Table} from "antd";
18
+ import {Card, Descriptions, message, Space, Statistic, Table} from "antd";
19
19
 
20
20
  const SortableItem = SortableElement((props) => (
21
21
  <tr className="sortable-item-hover" {...props} />
@@ -35,6 +35,7 @@ interface QueryTableStat {
35
35
  loading?: boolean;
36
36
  touchEnd?: boolean;
37
37
  aggregateVO?: AggregateVO;
38
+ beforeSelectedRows?:number;
38
39
  }
39
40
 
40
41
  class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
@@ -62,6 +63,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
62
63
  loading: true,
63
64
  touchEnd: undefined,
64
65
  aggregateVO: undefined,
66
+ beforeSelectedRows:undefined,
65
67
  };
66
68
 
67
69
  static contextType = LocaleContext;
@@ -82,6 +84,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
82
84
  const { queryKey: preQueryKey, pageInfo: prePageInfo } = prevProps;
83
85
  const { queryKey, pageInfo } = this.props;
84
86
  // const { aggregateVO } = this.state;
87
+ //debugger
85
88
  if (queryKey) {
86
89
  if (preQueryKey?.key != queryKey.key) {
87
90
  await this.loadData(queryKey.key, pageInfo, true);
@@ -186,6 +189,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
186
189
  pageInfo,
187
190
  });
188
191
  this.setState({
192
+ beforeSelectedRows:queryData.beforeSelectedRows,
189
193
  dataSource,
190
194
  virtualEndPageNo: pageInfo.virtualEndPageNo,
191
195
  queryDataCache: queryCache,
@@ -236,7 +240,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
236
240
  maxSelectedRows,
237
241
  primaryColumn,
238
242
  } = this.props;
239
- let { dataSource } = this.state;
243
+ let { dataSource,beforeSelectedRows } = this.state;
240
244
  let selectedRowKeys = [];
241
245
 
242
246
  for (let row of selectedRows) {
@@ -248,14 +252,50 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
248
252
  allRowKeys.push(d.code);
249
253
  }
250
254
  }
251
- if (maxSelectedRows == -1) {
255
+
256
+ let tmplMax=maxSelectedRows?maxSelectedRows:0;
257
+ if(beforeSelectedRows>0){
258
+ tmplMax=tmplMax-beforeSelectedRows;
259
+ }
260
+ const { translate } = this.context;
261
+
262
+ if (tmplMax <= -1) {
263
+ return null;
264
+ }
265
+
266
+ if (beforeSelectedRows>0 && tmplMax<=0) {
267
+ message.warning(translate("${已选超}") );
252
268
  return null;
253
269
  }
270
+
254
271
  const rowSelection: TableRowSelection<any> = {
272
+
255
273
  fixed: true,
256
274
  type: maxSelectedRows == 1 ? "radio" : "checkbox",
257
275
  selectedRowKeys,
258
276
  onChange: (selectedRowKeys, selectedRows) => {
277
+
278
+ if(tmplMax > 0 && selectedRowKeys.length > tmplMax){
279
+
280
+ message.error(translate("${最多只能选择}") + " : "+ tmplMax);
281
+ // message.error({
282
+ // //type: 'error',
283
+ // content: translate("${最多只能选择}") + " : "+ tmplMax,
284
+ // style: {
285
+ // zIndex: 12000,
286
+ // },
287
+ // duration:5
288
+ // });
289
+
290
+ // messageApi.open({
291
+ // type: 'error',
292
+ // content: translate("${最多只能选择}") + " : "+ tmplMax,
293
+ // style: {
294
+ // zIndex: 2000,
295
+ // },
296
+ // });
297
+ return;
298
+ }
259
299
  let selectedRows_: SelectedRow[] = [];
260
300
  let selectedDatas: DtmplData[] = [];
261
301
  let titleColId = primaryColumn?.id;
@@ -448,7 +488,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
448
488
  }
449
489
  }
450
490
  const mergeMp = statistic();
451
- console.log("统计结果", mergeMp);
491
+ //console.log("统计结果", mergeMp);
452
492
 
453
493
  // 给 col 添加 mergeRowInCol
454
494
  current_cols.forEach(
@@ -755,9 +755,8 @@ class RelationTable extends React.PureComponent<
755
755
  tip={fieldGroupConfig.tip}
756
756
  id={parentId + fieldGroupConfig.id}
757
757
  className={`hoverable`}
758
- headStyle={{ background: "#f2f4f5" }}
758
+ styles={{header:{ background: "#f2f4f5" },body:{ padding: "6px" }}}
759
759
  loading={loading}
760
- bodyStyle={{ padding: "6px" }}
761
760
  //暂时注释掉,后续要支持配置。
762
761
  //extra={<Input.Search onSearch={this.searchValue} allowClear placeholder=""/>}
763
762
  >
@@ -246,6 +246,7 @@ class SelectTable extends React.PureComponent<SelectTableProps, SelectTableStat>
246
246
  (actions && actions.length > 0) || (jumps && jumps.length > 0) || (fileExports && fileExports.length>0)) {
247
247
  displayCriteriaCard = true;
248
248
  }
249
+ // debugger
249
250
  return (
250
251
  // <Card
251
252
  // // title={<SelectedRowsCard value={selectedRows} onChange={this.changeRowSelection}></SelectedRowsCard>}
@@ -258,7 +259,7 @@ class SelectTable extends React.PureComponent<SelectTableProps, SelectTableStat>
258
259
  <CriteriaForm serverKey={serverKey} selectedRows={selectedRows} selectedDatas={selectedDatas} ltmplConfig={selectConfig}
259
260
  data={criteriaData}
260
261
  doSearch={this.doSearch} loading={loading}/>
261
- <QueryTable serverKey={serverKey} maxSelectedRows={maxSelectedRows} selectedRows={selectedRows}
262
+ <QueryTable serverKey={serverKey} maxSelectedRows={maxSelectedRows?maxSelectedRows:selectConfig.maxSelectedRows} selectedRows={selectedRows}
262
263
  primaryColumn={selectConfig.primaryColumn}
263
264
  columns={columns}
264
265
  pageInfo={{pageNo,
@@ -7,6 +7,7 @@ import { LocaleContext } from "../locale/LocaleProvider";
7
7
  interface SelectedRowsCardProps {
8
8
  value: SelectedRow[];
9
9
  onChange?: (value: SelectedRow[]) => void;
10
+ message?: string;
10
11
  }
11
12
 
12
13
  interface SelectedRowsCardStat {}
@@ -66,6 +67,8 @@ class SelectedRowsCard extends React.PureComponent<
66
67
  <h3>
67
68
  {translate("${查询点选}:")}
68
69
  {this.renderTag()}
70
+ {this.props.message}
71
+ {}
69
72
  </h3>
70
73
  </div>
71
74
  );
@@ -685,6 +685,26 @@ export default class HcserviceV3 {
685
685
  return res;
686
686
  }
687
687
 
688
+ static async doPostRequest(serverKey: string, url:string,params?:object) {
689
+ let res = await Super.super({
690
+ url,
691
+ serverKey,
692
+ method: "POST",
693
+ data: { ...params },
694
+ });
695
+ return res;
696
+ }
697
+
698
+ static async doGetRequest(serverKey: string, url:string,params?:object) {
699
+ let res = await Super.super({
700
+ url,
701
+ serverKey,
702
+ method: "GET",
703
+ query: { ...params },
704
+ });
705
+ return res;
706
+ }
707
+
688
708
 
689
709
  static async postActions(
690
710
  serverKey: string,
@@ -1,6 +1,6 @@
1
1
  import { MenuProps } from "antd/lib/menu";
2
2
  import { FormInstance } from "antd";
3
- import React, { HTMLAttributeAnchorTarget, RefObject } from "react";
3
+ import React, {HTMLAttributeAnchorTarget, ReactDOM, RefObject} from "react";
4
4
  import { ButtonShape, ButtonType } from "antd/lib/button";
5
5
 
6
6
  export type ViewOrEdit = "view" | "edit";
@@ -16,8 +16,18 @@ export type StatColType = "fact" | "dimension";
16
16
  export type ActTableViewModel = "table" | "verticalList" | "horizontalList";
17
17
 
18
18
  export type ControlHolderType = "table" | "descriptions";
19
+
19
20
  export type PageType = "modal" | "drawer" |"card"| "routing" |"blank";
20
21
 
22
+ export type CustomButtonType = "request_refresh" | "show_window" |"do_event";
23
+
24
+ export interface CustomButtonConfig{
25
+ getRequestUrl?:(customButton: CustomButton, records?: DtmplData[])=>string;
26
+ doAction?:(customButton: CustomButton, records: DtmplData[])=>void;
27
+ getCurrentPage?:(customButton: CustomButton, records: DtmplData[])=>any;
28
+ }
29
+
30
+
21
31
  export interface ReportTableProps {
22
32
  tableProps?: {
23
33
  size?: "small" | "middle" | "large";
@@ -39,7 +49,6 @@ export interface ReportTableProps {
39
49
  }
40
50
  export interface QueryTableProps extends ReportTableProps{
41
51
  viewModels?: ActTableViewModel[];
42
- // defaultPageSize?: number;
43
52
  pageInfo: {
44
53
  pageNo: number;
45
54
  pageSize: number;
@@ -57,7 +66,7 @@ export interface QueryTableProps extends ReportTableProps{
57
66
  groupIColumns?: { id: string; title: string; sourceId: string }[]; // 组间合计key
58
67
  doSearch?: (params: object) => void;
59
68
  sortColumnData?: string[];
60
- queryTotal?:()=> any; //暂时无用
69
+ queryTotal?:()=> any;//暂时无用
61
70
  }
62
71
 
63
72
  export interface AggregateVO {
@@ -131,7 +140,7 @@ export interface CustomButton extends ButtonConfig {
131
140
  path:string;
132
141
  params:string;
133
142
  requestMethod:string;
134
- doType:string;
143
+ doType:CustomButtonType;
135
144
  windowPosition:'under-table'|'above-table'|'modal-window'|'left-drawer'|'right-drawer';
136
145
  windowHeight:string;
137
146
  windowWidth:string;
@@ -418,6 +427,8 @@ export interface SelectConfig extends TmplBase {
418
427
  scrollY?:number;
419
428
  directShowTotal?: boolean;
420
429
  leftFixedCols?: number;
430
+ minSelectRows?: number;
431
+ maxSelectRows?: number;
421
432
  onCriteriaValuesChange?: (
422
433
  changedValues,
423
434
  allValues: DtmplData,
@@ -567,6 +578,7 @@ export interface QueryData {
567
578
  touchEnd: boolean;
568
579
  key: string;
569
580
  pageInfo: PageInfo;
581
+ beforeSelectedRows:number;
570
582
  }
571
583
 
572
584
  export interface ReportData {
@@ -612,6 +624,7 @@ export interface RouterCompProps {
612
624
  navigate?: any;
613
625
  params: any;
614
626
  searchParams: any;
627
+ // routeMode?:'multiple'|'single';
615
628
  }
616
629
 
617
630
  export interface TmplBaseProps {
@@ -12,6 +12,7 @@ const { Text, Title } = Typography;
12
12
 
13
13
  interface ActTreeProps {
14
14
  ttmplConfig: TtmplConfig;
15
+ top:number,
15
16
  }
16
17
 
17
18
  interface ActTreeState {
@@ -29,7 +30,7 @@ export default class ActTree extends React.PureComponent<
29
30
  ActTreeProps,
30
31
  ActTreeState
31
32
  > {
32
- static defaultProps = {};
33
+ static defaultProps = {top:66};
33
34
  state = {
34
35
  ttmplNodeConfig: undefined,
35
36
  recordCode: undefined,
@@ -137,8 +138,9 @@ export default class ActTree extends React.PureComponent<
137
138
  };
138
139
 
139
140
  render() {
140
- const {} = this.props;
141
- const { translate } = this.context;
141
+ const {top} = this.props;
142
+ const { translate,siderCollapsed } = this.context;
143
+
142
144
 
143
145
  const {
144
146
  ttmplNodeConfig,
@@ -162,9 +164,9 @@ export default class ActTree extends React.PureComponent<
162
164
  height: "90vh",
163
165
  position: "fixed",
164
166
  left: 0,
165
- top: 66,
167
+ top: top,
166
168
  bottom: 0,
167
- marginLeft: 210,
169
+ marginLeft: siderCollapsed?10:210,
168
170
  }}
169
171
  >
170
172
  <TmplTree