aldehyde 0.2.197 → 0.2.199

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 (569) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +2 -2
  3. package/lib/custom-page/def-custom-page.d.ts.map +1 -1
  4. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  5. package/lib/detail/dtmpl.css +57 -57
  6. package/lib/export/export-frame.css +2 -2
  7. package/lib/export/export-frame.d.ts.map +1 -1
  8. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  9. package/lib/form/dtmpl-form.css +3 -3
  10. package/lib/form/dtmpl-form.d.ts.map +1 -1
  11. package/lib/form/field-group-form.d.ts.map +1 -1
  12. package/lib/form/form-Item-group.d.ts.map +1 -1
  13. package/lib/form/index.css +12 -12
  14. package/lib/hooks/useVarCssColor.d.ts.map +1 -1
  15. package/lib/import/excel-import.d.ts.map +1 -1
  16. package/lib/import/index.css +53 -53
  17. package/lib/import/template.css +50 -50
  18. package/lib/layout/common.css +64 -64
  19. package/lib/layout/coverstyle.css +51 -51
  20. package/lib/layout2/LayoutContext.d.ts.map +1 -1
  21. package/lib/locale/LocaleButton.d.ts.map +1 -1
  22. package/lib/locale/LocaleProvider.d.ts.map +1 -1
  23. package/lib/locale/langMp.d.ts.map +1 -1
  24. package/lib/locale/translate.d.ts.map +1 -1
  25. package/lib/locale/useLocale.d.ts.map +1 -1
  26. package/lib/login/index.css +19 -19
  27. package/lib/login/login.d.ts.map +1 -1
  28. package/lib/login2/Login.d.ts.map +1 -1
  29. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  30. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  31. package/lib/module/dtmpl-editor.d.ts.map +1 -1
  32. package/lib/module/dtmpl-view-card.d.ts.map +1 -1
  33. package/lib/module/embed-dtmpl-edit-page.d.ts.map +1 -1
  34. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  35. package/lib/module/ltmpl-table.d.ts.map +1 -1
  36. package/lib/routable/dtmpl-route.d.ts.map +1 -1
  37. package/lib/routable/dtmpl-route.js +1 -1
  38. package/lib/routable/dtmpl-route.js.map +1 -1
  39. package/lib/routable/withroute.d.ts.map +1 -1
  40. package/lib/table/act-table.d.ts.map +1 -1
  41. package/lib/table/act-table.js +2 -1
  42. package/lib/table/act-table.js.map +1 -1
  43. package/lib/table/control-table-x-axis-wrapper.d.ts +2 -11
  44. package/lib/table/control-table-x-axis-wrapper.d.ts.map +1 -1
  45. package/lib/table/index.css +71 -71
  46. package/lib/table/l2-act-table.d.ts.map +1 -1
  47. package/lib/table/modal-select-table.d.ts.map +1 -1
  48. package/lib/table/pagination.css +14 -14
  49. package/lib/table/pagination.d.ts.map +1 -1
  50. package/lib/table/query-table.d.ts.map +1 -1
  51. package/lib/table/relation-table.d.ts.map +1 -1
  52. package/lib/table/select-table.d.ts.map +1 -1
  53. package/lib/table/selected-rows-card.d.ts.map +1 -1
  54. package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
  55. package/lib/tmpl/hc-data-source.d.ts.map +1 -1
  56. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  57. package/lib/tmpl/interface.d.ts +1 -0
  58. package/lib/tmpl/interface.d.ts.map +1 -1
  59. package/lib/tmpl/interface.js.map +1 -1
  60. package/lib/tmpl/tmpl-config-analysis.d.ts.map +1 -1
  61. package/lib/tree/act-tree.d.ts.map +1 -1
  62. package/lib/tree/block-menu-auth-tree.d.ts.map +1 -1
  63. package/lib/tree/index.css +20 -20
  64. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  65. package/lib/tree/tree-node.d.ts.map +1 -1
  66. package/lib/tree/tree-utils.d.ts.map +1 -1
  67. package/lib/utils/dsu.d.ts.map +1 -1
  68. package/lib/welcome/index.css +13 -13
  69. package/lib/welcome/quick-entrance.d.ts.map +1 -1
  70. package/lib/welcome/workbench.d.ts.map +1 -1
  71. package/package.json +206 -206
  72. package/src/aldehyde/controls/action/index.css +8 -8
  73. package/src/aldehyde/controls/action/index.tsx +396 -401
  74. package/src/aldehyde/controls/action/utils.tsx +307 -307
  75. package/src/aldehyde/controls/auto-complete/index.tsx +82 -82
  76. package/src/aldehyde/controls/cascader/index.tsx +112 -112
  77. package/src/aldehyde/controls/chemstruc/graph.tsx +184 -184
  78. package/src/aldehyde/controls/chemstruc/index.css +28 -28
  79. package/src/aldehyde/controls/code-editor/sql-code-editor.tsx +73 -73
  80. package/src/aldehyde/controls/collapse-card/index.css +8 -8
  81. package/src/aldehyde/controls/collapse-card/index.tsx +109 -109
  82. package/src/aldehyde/controls/color-picker/index.css +26 -26
  83. package/src/aldehyde/controls/color-picker/index.tsx +114 -114
  84. package/src/aldehyde/controls/counting-tag/index.tsx +53 -53
  85. package/src/aldehyde/controls/cquery/cquick-button.tsx +144 -144
  86. package/src/aldehyde/controls/date-picker/index.tsx +146 -146
  87. package/src/aldehyde/controls/entity-select/entity-select.tsx +724 -723
  88. package/src/aldehyde/controls/entity-select/index.css +6 -6
  89. package/src/aldehyde/controls/entity-select/lab-tree-select.tsx +154 -154
  90. package/src/aldehyde/controls/entity-select/popover-entity-select.tsx +190 -190
  91. package/src/aldehyde/controls/entry-control.tsx +359 -359
  92. package/src/aldehyde/controls/enum-badge/index.tsx +31 -31
  93. package/src/aldehyde/controls/enum-tag/index.tsx +35 -35
  94. package/src/aldehyde/controls/field-history/index.tsx +81 -81
  95. package/src/aldehyde/controls/file-export/select-code-export.tsx +40 -40
  96. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +75 -75
  97. package/src/aldehyde/controls/file-view/index.tsx +142 -142
  98. package/src/aldehyde/controls/file-view/newin-file-view.tsx +40 -40
  99. package/src/aldehyde/controls/html-editor/draft.tsx +161 -161
  100. package/src/aldehyde/controls/html-editor/tinymce.js +54 -54
  101. package/src/aldehyde/controls/input-number/index.tsx +148 -148
  102. package/src/aldehyde/controls/input-range/index.tsx +59 -59
  103. package/src/aldehyde/controls/password-setter/index.css +2 -2
  104. package/src/aldehyde/controls/password-setter/index.js +88 -88
  105. package/src/aldehyde/controls/progress/index.tsx +74 -74
  106. package/src/aldehyde/controls/relation-existion/index.css +4 -4
  107. package/src/aldehyde/controls/relation-existion/index.tsx +140 -140
  108. package/src/aldehyde/controls/rfield/index.css +4 -4
  109. package/src/aldehyde/controls/rfield/index.tsx +226 -226
  110. package/src/aldehyde/controls/select/index.tsx +211 -211
  111. package/src/aldehyde/controls/signature/index.tsx +226 -226
  112. package/src/aldehyde/controls/steps/index.tsx +59 -59
  113. package/src/aldehyde/controls/text/ellipsis-text.tsx +96 -96
  114. package/src/aldehyde/controls/upload/index.tsx +138 -138
  115. package/src/aldehyde/controls/view-control.tsx +284 -284
  116. package/src/aldehyde/custom-page/custom-page-router.tsx +75 -75
  117. package/src/aldehyde/custom-page/def-custom-page.tsx +17 -17
  118. package/src/aldehyde/custom-page/dtmpl-custom-edit-modal-page.tsx +87 -87
  119. package/src/aldehyde/detail/button/bottom-submit-button-bar.tsx +90 -90
  120. package/src/aldehyde/detail/button/cquery-button-bar.tsx +144 -144
  121. package/src/aldehyde/detail/button/edit-button.tsx +62 -62
  122. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +178 -178
  123. package/src/aldehyde/detail/button/index.css +42 -42
  124. package/src/aldehyde/detail/button/submit-button-bar.tsx +56 -56
  125. package/src/aldehyde/detail/button/view-button.tsx +61 -61
  126. package/src/aldehyde/detail/dtmpl.css +57 -57
  127. package/src/aldehyde/detail/edit/dtmpl-edit.tsx +267 -267
  128. package/src/aldehyde/detail/edit/fields-edit-card.tsx +143 -143
  129. package/src/aldehyde/detail/edit/modal-row-edit.tsx +94 -94
  130. package/src/aldehyde/detail/edit/post-result/index.tsx +85 -85
  131. package/src/aldehyde/detail/edit/row-edit-card.tsx +179 -179
  132. package/src/aldehyde/detail/edit/row-editor.tsx +72 -72
  133. package/src/aldehyde/detail/rightbar/index.css +34 -34
  134. package/src/aldehyde/detail/rightbar/index.tsx +92 -92
  135. package/src/aldehyde/detail/tooltipbar/index.tsx +32 -32
  136. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +286 -271
  137. package/src/aldehyde/detail/view/dtmpl-view.tsx +319 -319
  138. package/src/aldehyde/detail/view/field-view-group.tsx +83 -83
  139. package/src/aldehyde/detail/view/modal-dtmpl-view.tsx +72 -72
  140. package/src/aldehyde/detail/view/snapshot-timeline.tsx +164 -164
  141. package/src/aldehyde/export/export-frame.css +2 -2
  142. package/src/aldehyde/export/export-frame.tsx +299 -299
  143. package/src/aldehyde/export/select-code-export-frame.tsx +218 -218
  144. package/src/aldehyde/form/criteria-form.tsx +488 -488
  145. package/src/aldehyde/form/dtmpl-form.css +3 -3
  146. package/src/aldehyde/form/dtmpl-form.tsx +502 -502
  147. package/src/aldehyde/form/field-group-form.tsx +98 -98
  148. package/src/aldehyde/form/fields-form.tsx +44 -44
  149. package/src/aldehyde/form/form-Item-group.tsx +211 -211
  150. package/src/aldehyde/form/index.css +12 -12
  151. package/src/aldehyde/hooks/useVarCssColor.ts +6 -6
  152. package/src/aldehyde/icon/index.tsx +28 -28
  153. package/src/aldehyde/import/excel-import.tsx +450 -450
  154. package/src/aldehyde/import/index.css +53 -53
  155. package/src/aldehyde/import/template.css +50 -50
  156. package/src/aldehyde/index.tsx +176 -176
  157. package/src/aldehyde/layout/MainPage.tsx +334 -334
  158. package/src/aldehyde/layout/common.css +64 -64
  159. package/src/aldehyde/layout/coverstyle.css +51 -51
  160. package/src/aldehyde/layout/footer/index.css +5 -5
  161. package/src/aldehyde/layout/footer/index.js +17 -17
  162. package/src/aldehyde/layout/header/index.css +122 -122
  163. package/src/aldehyde/layout/header/index.tsx +145 -145
  164. package/src/aldehyde/layout/menu/block.css +7 -7
  165. package/src/aldehyde/layout/menu/block.tsx +174 -174
  166. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +161 -161
  167. package/src/aldehyde/layout/menu/l2menu-quick-bar.tsx +159 -159
  168. package/src/aldehyde/layout/menu/menu-2layers.tsx +117 -117
  169. package/src/aldehyde/layout/menu/menu-render.tsx +165 -165
  170. package/src/aldehyde/layout/menu/reset-password.tsx +255 -255
  171. package/src/aldehyde/layout/menu/user-bar.tsx +258 -258
  172. package/src/aldehyde/layout/menu/userinfo-bar.tsx +69 -69
  173. package/src/aldehyde/layout/sidebar/index.css +57 -57
  174. package/src/aldehyde/layout/sidebar/index.tsx +85 -85
  175. package/src/aldehyde/layout2/LayoutContext.tsx +95 -95
  176. package/src/aldehyde/layout2/components/userButton.tsx +171 -171
  177. package/src/aldehyde/layout2/css/header.css +38 -38
  178. package/src/aldehyde/layout2/header.tsx +371 -371
  179. package/src/aldehyde/layout2/main.tsx +27 -27
  180. package/src/aldehyde/layout2/page.tsx +189 -189
  181. package/src/aldehyde/layout2/sider.tsx +335 -335
  182. package/src/aldehyde/layout2/type/layout.type.ts +10 -10
  183. package/src/aldehyde/layout2/util/menu.util.tsx +122 -122
  184. package/src/aldehyde/locale/LocaleButton.tsx +47 -47
  185. package/src/aldehyde/locale/LocaleProvider.tsx +204 -204
  186. package/src/aldehyde/locale/langMp.ts +45 -45
  187. package/src/aldehyde/locale/translate.ts +80 -80
  188. package/src/aldehyde/locale/useLocale.ts +56 -56
  189. package/src/aldehyde/login/context-setter.tsx +130 -130
  190. package/src/aldehyde/login/index.css +19 -19
  191. package/src/aldehyde/login/login.tsx +252 -252
  192. package/src/aldehyde/login/router-login.tsx +107 -107
  193. package/src/aldehyde/login/vertify/index.css +143 -143
  194. package/src/aldehyde/login/vertify/index.tsx +360 -360
  195. package/src/aldehyde/login/vertify/tool.ts +13 -13
  196. package/src/aldehyde/login2/Login.tsx +203 -203
  197. package/src/aldehyde/login2/LoginPage.tsx +64 -64
  198. package/src/aldehyde/login2/index.tsx +4 -4
  199. package/src/aldehyde/module/block-menu-tree-drawer.tsx +116 -116
  200. package/src/aldehyde/module/criteria-page.tsx1 +175 -175
  201. package/src/aldehyde/module/dtmpl-edit-card.tsx +313 -313
  202. package/src/aldehyde/module/dtmpl-edit-drawer.tsx +23 -23
  203. package/src/aldehyde/module/dtmpl-edit-modal.tsx +25 -25
  204. package/src/aldehyde/module/dtmpl-edit-page.tsx +396 -396
  205. package/src/aldehyde/module/dtmpl-editor.tsx +162 -162
  206. package/src/aldehyde/module/dtmpl-view-card.tsx +73 -73
  207. package/src/aldehyde/module/dtmpl-view-drawer.tsx +64 -64
  208. package/src/aldehyde/module/dtmpl-view-modal.tsx +53 -53
  209. package/src/aldehyde/module/embed-dtmpl-edit-page.tsx +137 -137
  210. package/src/aldehyde/module/ltmpl-drawer.tsx +57 -57
  211. package/src/aldehyde/module/ltmpl-modal.tsx +62 -62
  212. package/src/aldehyde/module/ltmpl-table.tsx +375 -375
  213. package/src/aldehyde/routable/dtmpl-route.tsx +166 -165
  214. package/src/aldehyde/routable/import-route.tsx +34 -34
  215. package/src/aldehyde/routable/ltmpl-route.tsx +436 -436
  216. package/src/aldehyde/routable/ttmpl-route.tsx +95 -95
  217. package/src/aldehyde/routable/withroute.tsx +25 -25
  218. package/src/aldehyde/table/act-table.tsx +1737 -1732
  219. package/src/aldehyde/table/column/column-selector.tsx +130 -130
  220. package/src/aldehyde/table/column/index.css +13 -13
  221. package/src/aldehyde/table/control-table-x-axis-wrapper.tsx +80 -80
  222. package/src/aldehyde/table/index.css +71 -71
  223. package/src/aldehyde/table/l2-act-table.tsx +91 -91
  224. package/src/aldehyde/table/modal-select-table.tsx +278 -278
  225. package/src/aldehyde/table/pagination.css +14 -14
  226. package/src/aldehyde/table/pagination.tsx +76 -76
  227. package/src/aldehyde/table/query-table.tsx +1421 -1421
  228. package/src/aldehyde/table/relation-table.tsx +855 -855
  229. package/src/aldehyde/table/select-table.tsx +272 -272
  230. package/src/aldehyde/table/selected-rows-card.tsx +75 -75
  231. package/src/aldehyde/table/stat/restat.tsx +123 -123
  232. package/src/aldehyde/table/table-util.tsx +25 -25
  233. package/src/aldehyde/tmpl/control-type-supportor.tsx +111 -111
  234. package/src/aldehyde/tmpl/hc-data-source.tsx +514 -514
  235. package/src/aldehyde/tmpl/hcservice-v3.tsx +1226 -1226
  236. package/src/aldehyde/tmpl/interface.tsx +614 -612
  237. package/src/aldehyde/tmpl/model-struc-v3.tsx +107 -107
  238. package/src/aldehyde/tmpl/superagent.js +165 -165
  239. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +342 -342
  240. package/src/aldehyde/tree/act-tree.tsx +220 -220
  241. package/src/aldehyde/tree/block-menu-auth-tree.tsx +187 -187
  242. package/src/aldehyde/tree/index.css +20 -20
  243. package/src/aldehyde/tree/tmpl-tree.tsx +678 -678
  244. package/src/aldehyde/tree/tree-node.tsx +73 -73
  245. package/src/aldehyde/tree/tree-utils.tsx +170 -170
  246. package/src/aldehyde/units/EncryptUtils.js +37 -37
  247. package/src/aldehyde/units/image.d.ts +7 -7
  248. package/src/aldehyde/units/index.tsx +978 -978
  249. package/src/aldehyde/units/storage.js +2 -2
  250. package/src/aldehyde/utils/dsu.ts +27 -27
  251. package/src/aldehyde/welcome/HCWelcome.js +321 -321
  252. package/src/aldehyde/welcome/HCWelcome1.js +259 -259
  253. package/src/aldehyde/welcome/index.css +13 -13
  254. package/src/aldehyde/welcome/quick-entrance.tsx +98 -98
  255. package/src/aldehyde/welcome/workbench.tsx +100 -100
  256. package/lib/controls/action/index.css +0 -9
  257. package/lib/controls/action/index.d.ts +0 -67
  258. package/lib/controls/action/index.d.ts.map +0 -1
  259. package/lib/controls/action/index.js +0 -243
  260. package/lib/controls/action/index.js.map +0 -1
  261. package/lib/controls/action/utils.d.ts +0 -15
  262. package/lib/controls/action/utils.d.ts.map +0 -1
  263. package/lib/controls/action/utils.js +0 -262
  264. package/lib/controls/action/utils.js.map +0 -1
  265. package/lib/controls/auto-complete/index.d.ts +0 -7
  266. package/lib/controls/auto-complete/index.d.ts.map +0 -1
  267. package/lib/controls/auto-complete/index.js +0 -58
  268. package/lib/controls/auto-complete/index.js.map +0 -1
  269. package/lib/controls/cascader/index.d.ts +0 -23
  270. package/lib/controls/cascader/index.d.ts.map +0 -1
  271. package/lib/controls/cascader/index.js +0 -108
  272. package/lib/controls/cascader/index.js.map +0 -1
  273. package/lib/controls/chemstruc/graph.d.ts +0 -40
  274. package/lib/controls/chemstruc/graph.d.ts.map +0 -1
  275. package/lib/controls/chemstruc/graph.js +0 -133
  276. package/lib/controls/chemstruc/graph.js.map +0 -1
  277. package/lib/controls/chemstruc/index.css +0 -28
  278. package/lib/controls/code-editor/sql-code-editor.d.ts +0 -15
  279. package/lib/controls/code-editor/sql-code-editor.d.ts.map +0 -1
  280. package/lib/controls/code-editor/sql-code-editor.js +0 -53
  281. package/lib/controls/code-editor/sql-code-editor.js.map +0 -1
  282. package/lib/controls/collapse-card/index.css +0 -9
  283. package/lib/controls/collapse-card/index.d.ts +0 -33
  284. package/lib/controls/collapse-card/index.d.ts.map +0 -1
  285. package/lib/controls/collapse-card/index.js +0 -74
  286. package/lib/controls/collapse-card/index.js.map +0 -1
  287. package/lib/controls/color-picker/index.css +0 -27
  288. package/lib/controls/color-picker/index.d.ts +0 -30
  289. package/lib/controls/color-picker/index.d.ts.map +0 -1
  290. package/lib/controls/color-picker/index.js +0 -64
  291. package/lib/controls/color-picker/index.js.map +0 -1
  292. package/lib/controls/counting-tag/index.d.ts +0 -20
  293. package/lib/controls/counting-tag/index.d.ts.map +0 -1
  294. package/lib/controls/counting-tag/index.js +0 -37
  295. package/lib/controls/counting-tag/index.js.map +0 -1
  296. package/lib/controls/cquery/cquick-button.d.ts +0 -36
  297. package/lib/controls/cquery/cquick-button.d.ts.map +0 -1
  298. package/lib/controls/cquery/cquick-button.js +0 -75
  299. package/lib/controls/cquery/cquick-button.js.map +0 -1
  300. package/lib/controls/date-picker/index.d.ts +0 -7
  301. package/lib/controls/date-picker/index.d.ts.map +0 -1
  302. package/lib/controls/date-picker/index.js +0 -91
  303. package/lib/controls/date-picker/index.js.map +0 -1
  304. package/lib/controls/entity-select/entity-select.d.ts +0 -87
  305. package/lib/controls/entity-select/entity-select.d.ts.map +0 -1
  306. package/lib/controls/entity-select/entity-select.js +0 -475
  307. package/lib/controls/entity-select/entity-select.js.map +0 -1
  308. package/lib/controls/entity-select/index.css +0 -6
  309. package/lib/controls/entity-select/lab-tree-select.d.ts +0 -36
  310. package/lib/controls/entity-select/lab-tree-select.d.ts.map +0 -1
  311. package/lib/controls/entity-select/lab-tree-select.js +0 -127
  312. package/lib/controls/entity-select/lab-tree-select.js.map +0 -1
  313. package/lib/controls/entity-select/popover-entity-select.d.ts +0 -33
  314. package/lib/controls/entity-select/popover-entity-select.d.ts.map +0 -1
  315. package/lib/controls/entity-select/popover-entity-select.js +0 -114
  316. package/lib/controls/entity-select/popover-entity-select.js.map +0 -1
  317. package/lib/controls/enum-badge/index.d.ts +0 -7
  318. package/lib/controls/enum-badge/index.d.ts.map +0 -1
  319. package/lib/controls/enum-badge/index.js +0 -14
  320. package/lib/controls/enum-badge/index.js.map +0 -1
  321. package/lib/controls/enum-tag/index.d.ts +0 -7
  322. package/lib/controls/enum-tag/index.d.ts.map +0 -1
  323. package/lib/controls/enum-tag/index.js +0 -27
  324. package/lib/controls/enum-tag/index.js.map +0 -1
  325. package/lib/controls/field-history/index.d.ts +0 -8
  326. package/lib/controls/field-history/index.d.ts.map +0 -1
  327. package/lib/controls/field-history/index.js +0 -67
  328. package/lib/controls/field-history/index.js.map +0 -1
  329. package/lib/controls/file-export/select-code-export.d.ts +0 -13
  330. package/lib/controls/file-export/select-code-export.d.ts.map +0 -1
  331. package/lib/controls/file-export/select-code-export.js +0 -14
  332. package/lib/controls/file-export/select-code-export.js.map +0 -1
  333. package/lib/controls/file-view/drawer-file-view.d.ts +0 -23
  334. package/lib/controls/file-view/drawer-file-view.d.ts.map +0 -1
  335. package/lib/controls/file-view/drawer-file-view.js +0 -49
  336. package/lib/controls/file-view/drawer-file-view.js.map +0 -1
  337. package/lib/controls/file-view/index.d.ts +0 -30
  338. package/lib/controls/file-view/index.d.ts.map +0 -1
  339. package/lib/controls/file-view/index.js +0 -122
  340. package/lib/controls/file-view/index.js.map +0 -1
  341. package/lib/controls/file-view/newin-file-view.d.ts +0 -18
  342. package/lib/controls/file-view/newin-file-view.d.ts.map +0 -1
  343. package/lib/controls/file-view/newin-file-view.js +0 -28
  344. package/lib/controls/file-view/newin-file-view.js.map +0 -1
  345. package/lib/controls/html-editor/draft.d.ts +0 -22
  346. package/lib/controls/html-editor/draft.d.ts.map +0 -1
  347. package/lib/controls/html-editor/draft.js +0 -122
  348. package/lib/controls/html-editor/draft.js.map +0 -1
  349. package/lib/controls/html-editor/tinymce.d.ts +0 -13
  350. package/lib/controls/html-editor/tinymce.d.ts.map +0 -1
  351. package/lib/controls/html-editor/tinymce.js +0 -47
  352. package/lib/controls/html-editor/tinymce.js.map +0 -1
  353. package/lib/controls/input-number/index.d.ts +0 -7
  354. package/lib/controls/input-number/index.d.ts.map +0 -1
  355. package/lib/controls/input-number/index.js +0 -77
  356. package/lib/controls/input-number/index.js.map +0 -1
  357. package/lib/controls/input-range/index.d.ts +0 -7
  358. package/lib/controls/input-range/index.d.ts.map +0 -1
  359. package/lib/controls/input-range/index.js +0 -29
  360. package/lib/controls/input-range/index.js.map +0 -1
  361. package/lib/controls/password-setter/index.css +0 -3
  362. package/lib/controls/password-setter/index.d.ts +0 -17
  363. package/lib/controls/password-setter/index.d.ts.map +0 -1
  364. package/lib/controls/password-setter/index.js +0 -59
  365. package/lib/controls/password-setter/index.js.map +0 -1
  366. package/lib/controls/progress/index.d.ts +0 -7
  367. package/lib/controls/progress/index.d.ts.map +0 -1
  368. package/lib/controls/progress/index.js +0 -52
  369. package/lib/controls/progress/index.js.map +0 -1
  370. package/lib/controls/relation-existion/index.css +0 -4
  371. package/lib/controls/relation-existion/index.d.ts +0 -31
  372. package/lib/controls/relation-existion/index.d.ts.map +0 -1
  373. package/lib/controls/relation-existion/index.js +0 -87
  374. package/lib/controls/relation-existion/index.js.map +0 -1
  375. package/lib/controls/rfield/index.css +0 -4
  376. package/lib/controls/rfield/index.d.ts +0 -41
  377. package/lib/controls/rfield/index.d.ts.map +0 -1
  378. package/lib/controls/rfield/index.js +0 -149
  379. package/lib/controls/rfield/index.js.map +0 -1
  380. package/lib/controls/select/index.d.ts +0 -30
  381. package/lib/controls/select/index.d.ts.map +0 -1
  382. package/lib/controls/select/index.js +0 -145
  383. package/lib/controls/select/index.js.map +0 -1
  384. package/lib/controls/signature/index.d.ts +0 -42
  385. package/lib/controls/signature/index.d.ts.map +0 -1
  386. package/lib/controls/signature/index.js +0 -155
  387. package/lib/controls/signature/index.js.map +0 -1
  388. package/lib/controls/steps/index.d.ts +0 -8
  389. package/lib/controls/steps/index.d.ts.map +0 -1
  390. package/lib/controls/steps/index.js +0 -47
  391. package/lib/controls/steps/index.js.map +0 -1
  392. package/lib/controls/text/ellipsis-text.d.ts +0 -31
  393. package/lib/controls/text/ellipsis-text.d.ts.map +0 -1
  394. package/lib/controls/text/ellipsis-text.js +0 -48
  395. package/lib/controls/text/ellipsis-text.js.map +0 -1
  396. package/lib/controls/upload/index.d.ts +0 -26
  397. package/lib/controls/upload/index.d.ts.map +0 -1
  398. package/lib/controls/upload/index.js +0 -109
  399. package/lib/controls/upload/index.js.map +0 -1
  400. package/lib/detail/button/bottom-submit-button-bar.d.ts +0 -24
  401. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +0 -1
  402. package/lib/detail/button/bottom-submit-button-bar.js +0 -38
  403. package/lib/detail/button/bottom-submit-button-bar.js.map +0 -1
  404. package/lib/detail/button/cquery-button-bar.d.ts +0 -28
  405. package/lib/detail/button/cquery-button-bar.d.ts.map +0 -1
  406. package/lib/detail/button/cquery-button-bar.js +0 -79
  407. package/lib/detail/button/cquery-button-bar.js.map +0 -1
  408. package/lib/detail/button/edit-button.d.ts +0 -11
  409. package/lib/detail/button/edit-button.d.ts.map +0 -1
  410. package/lib/detail/button/edit-button.js +0 -29
  411. package/lib/detail/button/edit-button.js.map +0 -1
  412. package/lib/detail/button/fix-right-submit-button-bar.d.ts +0 -26
  413. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +0 -1
  414. package/lib/detail/button/fix-right-submit-button-bar.js +0 -93
  415. package/lib/detail/button/fix-right-submit-button-bar.js.map +0 -1
  416. package/lib/detail/button/index.css +0 -43
  417. package/lib/detail/button/submit-button-bar.d.ts +0 -22
  418. package/lib/detail/button/submit-button-bar.d.ts.map +0 -1
  419. package/lib/detail/button/submit-button-bar.js +0 -22
  420. package/lib/detail/button/submit-button-bar.js.map +0 -1
  421. package/lib/detail/button/view-button.d.ts +0 -11
  422. package/lib/detail/button/view-button.d.ts.map +0 -1
  423. package/lib/detail/button/view-button.js +0 -28
  424. package/lib/detail/button/view-button.js.map +0 -1
  425. package/lib/detail/edit/dtmpl-edit.d.ts +0 -48
  426. package/lib/detail/edit/dtmpl-edit.d.ts.map +0 -1
  427. package/lib/detail/edit/dtmpl-edit.js +0 -236
  428. package/lib/detail/edit/dtmpl-edit.js.map +0 -1
  429. package/lib/detail/edit/fields-edit-card.d.ts +0 -51
  430. package/lib/detail/edit/fields-edit-card.d.ts.map +0 -1
  431. package/lib/detail/edit/fields-edit-card.js +0 -63
  432. package/lib/detail/edit/fields-edit-card.js.map +0 -1
  433. package/lib/detail/edit/modal-row-edit.d.ts +0 -43
  434. package/lib/detail/edit/modal-row-edit.d.ts.map +0 -1
  435. package/lib/detail/edit/modal-row-edit.js +0 -60
  436. package/lib/detail/edit/modal-row-edit.js.map +0 -1
  437. package/lib/detail/edit/post-result/index.d.ts +0 -17
  438. package/lib/detail/edit/post-result/index.d.ts.map +0 -1
  439. package/lib/detail/edit/post-result/index.js +0 -33
  440. package/lib/detail/edit/post-result/index.js.map +0 -1
  441. package/lib/detail/edit/row-edit-card.d.ts +0 -54
  442. package/lib/detail/edit/row-edit-card.d.ts.map +0 -1
  443. package/lib/detail/edit/row-edit-card.js +0 -83
  444. package/lib/detail/edit/row-edit-card.js.map +0 -1
  445. package/lib/detail/edit/row-editor.d.ts +0 -33
  446. package/lib/detail/edit/row-editor.d.ts.map +0 -1
  447. package/lib/detail/edit/row-editor.js +0 -57
  448. package/lib/detail/edit/row-editor.js.map +0 -1
  449. package/lib/detail/rightbar/index.css +0 -35
  450. package/lib/detail/rightbar/index.d.ts +0 -31
  451. package/lib/detail/rightbar/index.d.ts.map +0 -1
  452. package/lib/detail/rightbar/index.js +0 -59
  453. package/lib/detail/rightbar/index.js.map +0 -1
  454. package/lib/detail/tooltipbar/index.d.ts +0 -19
  455. package/lib/detail/tooltipbar/index.d.ts.map +0 -1
  456. package/lib/detail/tooltipbar/index.js +0 -29
  457. package/lib/detail/tooltipbar/index.js.map +0 -1
  458. package/lib/detail/view/act-dtmpl-view.d.ts +0 -64
  459. package/lib/detail/view/act-dtmpl-view.d.ts.map +0 -1
  460. package/lib/detail/view/act-dtmpl-view.js +0 -152
  461. package/lib/detail/view/act-dtmpl-view.js.map +0 -1
  462. package/lib/detail/view/dtmpl-view.d.ts +0 -43
  463. package/lib/detail/view/dtmpl-view.d.ts.map +0 -1
  464. package/lib/detail/view/dtmpl-view.js +0 -164
  465. package/lib/detail/view/dtmpl-view.js.map +0 -1
  466. package/lib/detail/view/field-view-group.d.ts +0 -30
  467. package/lib/detail/view/field-view-group.d.ts.map +0 -1
  468. package/lib/detail/view/field-view-group.js +0 -45
  469. package/lib/detail/view/field-view-group.js.map +0 -1
  470. package/lib/detail/view/modal-dtmpl-view.d.ts +0 -40
  471. package/lib/detail/view/modal-dtmpl-view.d.ts.map +0 -1
  472. package/lib/detail/view/modal-dtmpl-view.js +0 -34
  473. package/lib/detail/view/modal-dtmpl-view.js.map +0 -1
  474. package/lib/detail/view/snapshot-timeline.d.ts +0 -44
  475. package/lib/detail/view/snapshot-timeline.d.ts.map +0 -1
  476. package/lib/detail/view/snapshot-timeline.js +0 -92
  477. package/lib/detail/view/snapshot-timeline.js.map +0 -1
  478. package/lib/index.d.ts +0 -51
  479. package/lib/index.d.ts.map +0 -1
  480. package/lib/index.js +0 -116
  481. package/lib/index.js.map +0 -1
  482. package/lib/layout/footer/index.css +0 -6
  483. package/lib/layout/footer/index.d.ts +0 -7
  484. package/lib/layout/footer/index.d.ts.map +0 -1
  485. package/lib/layout/footer/index.js +0 -12
  486. package/lib/layout/footer/index.js.map +0 -1
  487. package/lib/layout/header/index.css +0 -122
  488. package/lib/layout/header/index.d.ts +0 -10
  489. package/lib/layout/header/index.d.ts.map +0 -1
  490. package/lib/layout/header/index.js +0 -62
  491. package/lib/layout/header/index.js.map +0 -1
  492. package/lib/layout/menu/block.css +0 -7
  493. package/lib/layout/menu/block.d.ts +0 -33
  494. package/lib/layout/menu/block.d.ts.map +0 -1
  495. package/lib/layout/menu/block.js +0 -128
  496. package/lib/layout/menu/block.js.map +0 -1
  497. package/lib/layout/menu/l2menu-message-bar.d.ts +0 -28
  498. package/lib/layout/menu/l2menu-message-bar.d.ts.map +0 -1
  499. package/lib/layout/menu/l2menu-message-bar.js +0 -114
  500. package/lib/layout/menu/l2menu-message-bar.js.map +0 -1
  501. package/lib/layout/menu/l2menu-quick-bar.d.ts +0 -45
  502. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +0 -1
  503. package/lib/layout/menu/l2menu-quick-bar.js +0 -108
  504. package/lib/layout/menu/l2menu-quick-bar.js.map +0 -1
  505. package/lib/layout/menu/menu-2layers.d.ts +0 -26
  506. package/lib/layout/menu/menu-2layers.d.ts.map +0 -1
  507. package/lib/layout/menu/menu-2layers.js +0 -95
  508. package/lib/layout/menu/menu-2layers.js.map +0 -1
  509. package/lib/layout/menu/menu-render.d.ts +0 -14
  510. package/lib/layout/menu/menu-render.d.ts.map +0 -1
  511. package/lib/layout/menu/menu-render.js +0 -159
  512. package/lib/layout/menu/menu-render.js.map +0 -1
  513. package/lib/layout/menu/reset-password.d.ts +0 -38
  514. package/lib/layout/menu/reset-password.d.ts.map +0 -1
  515. package/lib/layout/menu/reset-password.js +0 -143
  516. package/lib/layout/menu/reset-password.js.map +0 -1
  517. package/lib/layout/menu/user-bar.d.ts +0 -50
  518. package/lib/layout/menu/user-bar.d.ts.map +0 -1
  519. package/lib/layout/menu/user-bar.js +0 -161
  520. package/lib/layout/menu/user-bar.js.map +0 -1
  521. package/lib/layout/menu/userinfo-bar.d.ts +0 -34
  522. package/lib/layout/menu/userinfo-bar.d.ts.map +0 -1
  523. package/lib/layout/menu/userinfo-bar.js +0 -49
  524. package/lib/layout/menu/userinfo-bar.js.map +0 -1
  525. package/lib/layout/sidebar/index.css +0 -57
  526. package/lib/layout/sidebar/index.d.ts +0 -12
  527. package/lib/layout/sidebar/index.d.ts.map +0 -1
  528. package/lib/layout/sidebar/index.js +0 -45
  529. package/lib/layout/sidebar/index.js.map +0 -1
  530. package/lib/layout/sidebar/logo.png +0 -0
  531. package/lib/layout2/components/userButton.d.ts +0 -5
  532. package/lib/layout2/components/userButton.d.ts.map +0 -1
  533. package/lib/layout2/components/userButton.js +0 -133
  534. package/lib/layout2/components/userButton.js.map +0 -1
  535. package/lib/layout2/css/header.css +0 -38
  536. package/lib/layout2/imgs/home.png +0 -0
  537. package/lib/layout2/type/layout.type.d.ts +0 -10
  538. package/lib/layout2/type/layout.type.d.ts.map +0 -1
  539. package/lib/layout2/type/layout.type.js +0 -2
  540. package/lib/layout2/type/layout.type.js.map +0 -1
  541. package/lib/layout2/util/menu.util.d.ts +0 -28
  542. package/lib/layout2/util/menu.util.d.ts.map +0 -1
  543. package/lib/layout2/util/menu.util.js +0 -85
  544. package/lib/layout2/util/menu.util.js.map +0 -1
  545. package/lib/login/vertify/index.css +0 -144
  546. package/lib/login/vertify/index.d.ts +0 -78
  547. package/lib/login/vertify/index.d.ts.map +0 -1
  548. package/lib/login/vertify/index.js +0 -210
  549. package/lib/login/vertify/index.js.map +0 -1
  550. package/lib/login/vertify/tool.d.ts +0 -5
  551. package/lib/login/vertify/tool.d.ts.map +0 -1
  552. package/lib/login/vertify/tool.js +0 -11
  553. package/lib/login/vertify/tool.js.map +0 -1
  554. package/lib/login2/img/login-bg.png +0 -0
  555. package/lib/table/column/column-selector.d.ts +0 -25
  556. package/lib/table/column/column-selector.d.ts.map +0 -1
  557. package/lib/table/column/column-selector.js +0 -62
  558. package/lib/table/column/column-selector.js.map +0 -1
  559. package/lib/table/column/index.css +0 -14
  560. package/lib/table/stat/restat.d.ts +0 -38
  561. package/lib/table/stat/restat.d.ts.map +0 -1
  562. package/lib/table/stat/restat.js +0 -62
  563. package/lib/table/stat/restat.js.map +0 -1
  564. package/lib/welcome/img/development.png +0 -0
  565. package/lib/welcome/img/pain-point.png +0 -0
  566. package/lib/welcome/img/target.png +0 -0
  567. package/lib/welcome/img/time-cost.png +0 -0
  568. package/lib/welcome/img/time-prograss.png +0 -0
  569. package/lib/welcome/img/welcome.png +0 -0
@@ -1,723 +1,724 @@
1
- import * as React from "react";
2
- import { Button, Col, Divider, message, Row, Select, Spin, Tag } from "antd";
3
- import {
4
- EControlProps,
5
- LtmplConfig,
6
- PageInfo,
7
- QueryData,
8
- QueryKey,
9
- } from "../../tmpl/interface";
10
- import {
11
- AlignLeftOutlined,
12
- EditOutlined,
13
- PlusOutlined,
14
- RedoOutlined,
15
- SearchOutlined,
16
- TableOutlined,
17
- } from "@ant-design/icons";
18
- import debounce from "lodash/debounce";
19
- import "./index.css";
20
- import HcserviceV3 from "../../tmpl/hcservice-v3";
21
- import HCDataSource from "../../tmpl/hc-data-source";
22
- import DtmplViewDrawer from "../../module/dtmpl-view-drawer";
23
- import DtmplEditPage from "../../module/dtmpl-edit-page";
24
- import { CustomTagProps } from "rc-select/lib/BaseSelect";
25
- import DtmplCustomEditModalPage from "../../custom-page/dtmpl-custom-edit-modal-page";
26
- import { LtmplModal } from "../../index";
27
- import { LocaleContext } from "../../locale/LocaleProvider";
28
- import Rfield from "../rfield";
29
-
30
- interface InnerEntitySelectProps extends EControlProps {
31
- maxSelected?: number;
32
- onEntityClick?: (code: string) => void;
33
- baseCriteria: object;
34
- valueOnly?:boolean;
35
- }
36
-
37
- interface InnerEntitySelectState {
38
- titleId?: string;
39
- optionCacheKey?: string;
40
- pageNo?: number;
41
- loading?: boolean;
42
- optionsCache?: object;
43
- codeLabel?: object;
44
- ltmplConfig?: LtmplConfig;
45
- showView?: boolean;
46
- drawCode?: string;
47
- showEdit?: boolean;
48
- showTable?: boolean;
49
- preMainCode?: string;
50
- }
51
-
52
- type OptionCache = {
53
- queryKey?: QueryKey;
54
- pageInfo?: PageInfo;
55
- touchEnd?: boolean;
56
- options?: any;
57
- searchValue?: string;
58
- optionCacheKey?: string;
59
- };
60
-
61
- type LoadDataSource = {
62
- options: any[];
63
- touchEnd: boolean;
64
- };
65
-
66
- export default class EntitySelect extends React.PureComponent<
67
- InnerEntitySelectProps,
68
- InnerEntitySelectState
69
- > {
70
- static defaultProps = {
71
- maxSelected: 100,
72
- valueOnly:false,
73
- };
74
-
75
- state = {
76
- titleId: undefined,
77
- optionCacheKey: undefined,
78
- pageNo: 1,
79
- loading: false,
80
- optionsCache: {},
81
- codeLabel: {},
82
- ltmplConfig: undefined,
83
- showView: false,
84
- showEdit: false,
85
- showTable: false,
86
- drawCode: undefined,
87
- preMainCode: undefined,
88
- };
89
- static contextType = LocaleContext;
90
- context: React.ContextType<typeof LocaleContext>;
91
-
92
- dropdownRender = (menu) => {
93
- const { fieldConfig } = this.props;
94
- const { actions } = fieldConfig;
95
- // console.log("menu",menu);
96
- return (
97
- <>
98
- {menu}
99
- {
100
- <>
101
- <Divider style={{ margin: "8px 0" }} />
102
- <Row justify="end">
103
- {actions && actions.indexOf("table") >= 0 ? (
104
- <Col>
105
- <Button
106
- type="text"
107
- icon={<TableOutlined style={{ color: "#0958d9" }} />}
108
- onClick={() => this.showTable()}
109
- ></Button>
110
- </Col>
111
- ) : null}
112
- {actions && actions.indexOf("add") >= 0 ? (
113
- <Col>
114
- <Button
115
- type="text"
116
- icon={<PlusOutlined style={{ color: "#0958d9" }} />}
117
- onClick={() => this.editItem()}
118
- ></Button>
119
- </Col>
120
- ) : null}
121
- <Col>
122
- <Button
123
- type="text"
124
- icon={<RedoOutlined style={{ color: "#0958d9" }} />}
125
- onClick={() => this.initCache()}
126
- ></Button>
127
- </Col>
128
- </Row>
129
- </>
130
- }
131
- </>
132
- );
133
- };
134
-
135
- editItem = async (code?) => {
136
- let ltmplConfig = await this.loadLtmplConfig();
137
- this.setState({
138
- showEdit: true,
139
- showTable: false,
140
- showView: false,
141
- drawCode: code,
142
- ltmplConfig,
143
- });
144
- };
145
-
146
- showTable = async () => {
147
- this.setState({
148
- showEdit: false,
149
- showTable: true,
150
- showView: false,
151
- drawCode: undefined,
152
- });
153
- };
154
-
155
- loadLtmplConfig = async () => {
156
- const { fieldConfig, serverKey } = this.props;
157
- const { ltmplConfig } = this.state;
158
- let ltmplConfig_ = ltmplConfig;
159
- if (!ltmplConfig_) {
160
- ltmplConfig_ = (
161
- await HCDataSource.requestLtmplConfig(
162
- fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
163
- fieldConfig.sourceId ? fieldConfig.sourceId : fieldConfig.id
164
- )
165
- ).ltmplConfig;
166
- }
167
- this.setState({
168
- ltmplConfig: ltmplConfig_,
169
- });
170
- return ltmplConfig_;
171
- };
172
-
173
- showItem = async (code) => {
174
- let ltmplConfig = await this.loadLtmplConfig();
175
-
176
- this.setState({
177
- showEdit: false,
178
- showTable: false,
179
- showView: true,
180
- drawCode: code,
181
- ltmplConfig,
182
- });
183
- };
184
-
185
- componentDidUpdate(prevProps) {
186
- const { baseCriteria:p_baseCriteria, mainCode, fieldConfig } = this.props;
187
- let {
188
- baseCriteria: p_preBaseCriteria,
189
- mainCode: preMainCode,
190
- fieldConfig: preFieldConfig,
191
- } = prevProps;
192
-
193
- let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
194
- let preBaseCriteria=p_preBaseCriteria?p_preBaseCriteria:preFieldConfig.baseCriteria;
195
- if (
196
- (baseCriteria &&
197
- JSON.stringify(baseCriteria) != JSON.stringify(preBaseCriteria)) ||
198
- (mainCode && mainCode != preMainCode) ||
199
- (fieldConfig && preFieldConfig && fieldConfig.id != preFieldConfig.id)
200
- ) {
201
- this.initCache();
202
- }
203
- }
204
-
205
- initCache = () => {
206
- this.setState({
207
- optionsCache: {},
208
- codeLabel: {},
209
- });
210
- };
211
-
212
- // componentWillUnmount(): void {
213
- // this.setState=(state,callback)=>{
214
- // return
215
- // }
216
- // }
217
-
218
- toOption = (code: string, title: string, onEntityClick) => {
219
- const { fieldConfig,valueOnly } = this.props;
220
- const { actions } = fieldConfig;
221
- const { codeLabel } = this.state;
222
- codeLabel[valueOnly?title:code] = title;
223
- let option = {
224
- value: valueOnly?title:code,
225
- label: (
226
- <>
227
- {title}
228
- {actions && actions.indexOf("detail") >= 0 ? (
229
- <Button
230
- size={"small"}
231
- type={"text"}
232
- onClick={(event) => {
233
- event.stopPropagation();
234
- this.showItem(code);
235
- }}
236
- >
237
- <AlignLeftOutlined style={{ color: "#0958d9" }} />
238
- </Button>
239
- ) : null}
240
-
241
- {actions && actions.indexOf("edit") >= 0 ? (
242
- <Button
243
- size={"small"}
244
- type={"text"}
245
- onClick={(event) => {
246
- event.stopPropagation();
247
- this.editItem(code);
248
- }}
249
- >
250
- <EditOutlined style={{ color: "#0958d9" }} />
251
- </Button>
252
- ) : null}
253
- </>
254
- ),
255
- };
256
- return option;
257
- };
258
-
259
- doClose = () => {
260
- this.setState({
261
- drawCode: undefined,
262
- showEdit: false,
263
- showView: false,
264
- showTable: false,
265
- });
266
- };
267
-
268
- drawSubmited = () => {
269
- this.initCache();
270
- this.doClose();
271
- };
272
-
273
- closeTable = () => {
274
- this.drawSubmited();
275
- };
276
-
277
- toValueArray = (value) => {
278
- let result = [];
279
- let valueArray = this.toArray(value);
280
- for (let v of valueArray) {
281
- if (v) {
282
- if(this.props.valueOnly){
283
- result.push(v);
284
- }else{
285
- let vs = v.split("@R@");
286
- if (vs[1] != "null") {
287
- result.push(vs[0]);
288
- }
289
- }
290
- }
291
- }
292
- return result;
293
- };
294
-
295
- toArray = (value) => {
296
- let valueArray: string[] = [];
297
- if (value instanceof Array) {
298
- valueArray = value;
299
- } else {
300
- if (value) {
301
- valueArray = value.split("@,@");
302
- } else {
303
- valueArray = [];
304
- }
305
- }
306
-
307
- return valueArray;
308
- };
309
-
310
- toOptions = (value, onEntityClick) => {
311
- const { fieldConfig ,valueOnly} = this.props;
312
- let options: object[] = [];
313
-
314
- let valueArray: string[] = this.toArray(value);
315
- for (let v of valueArray) {
316
- if (v) {
317
- if(valueOnly){
318
- options.push(this.toOption(v, v, onEntityClick));
319
- }else{
320
- let vs = v.split("@R@");
321
- if (vs[1] != "null") {
322
- options.push(this.toOption(vs[0], vs[1], onEntityClick));
323
- }
324
- }
325
- }
326
- }
327
-
328
- //添加补充项
329
- if (fieldConfig.suppleOptions) {
330
- fieldConfig.suppleOptions.forEach((o) => {
331
- let had = false;
332
- options.forEach((s) => {
333
- if (s["value"] == o.code) {
334
- had = true;
335
- return;
336
- }
337
- });
338
- if (!had) {
339
- options.push(this.toOption(o.code, o.title, undefined));
340
- }
341
- });
342
- }
343
- return options;
344
- };
345
-
346
- fetchNextPage = async () => {
347
- const { optionCacheKey, titleId, optionsCache } = this.state;
348
- let optionCache = optionsCache[optionCacheKey];
349
- let pageInfo = optionCache.pageInfo;
350
- if (!optionCache.touchEnd) {
351
- pageInfo.pageNo = pageInfo.pageNo + 1;
352
- let dataSource = await this.loadData(
353
- optionCache.queryKey.key,
354
- { ...pageInfo },
355
- titleId
356
- );
357
- if (dataSource) {
358
- optionCache.options = [...optionCache.options, ...dataSource.options];
359
- optionCache.touchEnd = dataSource.touchEnd;
360
- }
361
- this.setState({
362
- pageNo: pageInfo.pageNo,
363
- });
364
- }
365
- };
366
-
367
- fetchOptions = async (searchText) => {
368
- const { fieldConfig, mainCode, baseCriteria:p_baseCriteria, serverKey } = this.props;
369
- const { optionsCache, ltmplConfig, preMainCode } = this.state;
370
- let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
371
- const currentMainCode = mainCode ? mainCode : fieldConfig.mainCode;
372
- if (preMainCode != currentMainCode) {
373
- this.setState({ preMainCode: currentMainCode.toString() });
374
- //清空,
375
- this.initCache();
376
- }
377
-
378
- let optionCacheKey = "withoutValue";
379
- //先从缓存里拿
380
- if (searchText) {
381
- optionCacheKey = searchText;
382
- }
383
- let titleId = this.state.titleId;
384
- let optionCache = optionsCache[optionCacheKey];
385
- if (!optionCache) {
386
- this.setState({
387
- loading: true,
388
- });
389
- let ltmplConfig_ = ltmplConfig;
390
- if (!ltmplConfig_) {
391
- ltmplConfig_ = await this.loadLtmplConfig();
392
- }
393
- if (!ltmplConfig_) {
394
- message.error("请配置正确查询页面",5);
395
- return;
396
- }
397
- let pageInfo = {
398
- pageNo: 1,
399
- pageSize: 6,
400
- virtualEndPageNo: undefined,
401
- };
402
- titleId = ltmplConfig_.primaryColumn.id;
403
- //得到第一个过滤条件
404
- let firstCriteria = ltmplConfig_.primaryCriteria;
405
- let formItemName = "undefinedCriteria";
406
- if (firstCriteria) {
407
- formItemName = "c_" + firstCriteria.id;
408
- }
409
- const { defaultPageSize } = ltmplConfig_;
410
- if (defaultPageSize) {
411
- pageInfo.pageSize = defaultPageSize;
412
- }
413
-
414
- /** 构建 dataSource **/
415
- //构建过滤条件
416
- let criteriaData = {};
417
- if (baseCriteria) {
418
- criteriaData = { ...baseCriteria };
419
- }
420
-
421
- criteriaData[formItemName] = searchText;
422
- let queryKey: QueryKey = await HcserviceV3.requestLtmplQueryKey(
423
- fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
424
- fieldConfig.sourceId,
425
- {
426
- ...criteriaData,
427
- ...pageInfo,
428
- mainCode: currentMainCode,
429
- }
430
- );
431
- let sourceData = await this.loadData(queryKey.key, pageInfo, titleId);
432
-
433
- optionCache = {
434
- options: sourceData.options,
435
- pageInfo,
436
- queryKey,
437
- searchValue: searchText,
438
- touchEnd: sourceData.touchEnd,
439
- };
440
- optionsCache[optionCacheKey] = optionCache;
441
- this.setState({
442
- optionCacheKey,
443
- titleId,
444
- optionsCache: { ...optionsCache },
445
- loading: false,
446
- });
447
- } else {
448
- if (
449
- this.state.optionCacheKey == optionCacheKey &&
450
- optionCacheKey == "withoutValue"
451
- ) {
452
- this.setState({
453
- loading: false,
454
- optionCacheKey,
455
- });
456
- } else {
457
- debounce(() => {
458
- this.setState({
459
- loading: false,
460
- optionCacheKey,
461
- });
462
- }, 500)();
463
- }
464
- }
465
- };
466
-
467
- onChange = (values: any[]) => {
468
- const { codeLabel } = this.state;
469
- const { maxSelected,valueOnly } = this.props;
470
- let newValues: Array<string> = [...values];
471
- if (values && values.length > maxSelected) {
472
- newValues.shift();
473
- }
474
- let formValues: Array<string> = [];
475
-
476
- newValues.forEach((c) => {
477
- if(valueOnly){
478
- if (c.indexOf("@R@") > 0) {
479
- formValues.push(c.split("@R@")[1]);
480
- } else {
481
- formValues.push(codeLabel[c]);
482
- }
483
- }else{
484
- if (c.indexOf("@R@") > 0) {
485
- formValues.push(c);
486
- } else {
487
- formValues.push(c + "@R@" + codeLabel[c]);
488
- }
489
- }
490
-
491
- });
492
- this.props.onChange(formValues.join("@,@"));
493
- };
494
-
495
- tagRender = (props: CustomTagProps) => {
496
- const { label, closable, onClose } = props;
497
- const onPreventMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {
498
- event.preventDefault();
499
- event.stopPropagation();
500
- };
501
- return (
502
- <Tag
503
- onMouseDown={onPreventMouseDown}
504
- closable={closable}
505
- onClose={onClose}
506
- style={{ marginRight: 3 }}
507
- >
508
- {label}
509
- </Tag>
510
- );
511
- };
512
-
513
- loadData = async (
514
- queryKey: string,
515
- pageInfo: PageInfo,
516
- titleId: string
517
- ): Promise<LoadDataSource> => {
518
- const { onEntityClick, baseCriteria:p_baseCriteria, serverKey, fieldConfig } = this.props;
519
- let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
520
- let queryData: QueryData = await HcserviceV3.requestQueryData(
521
- fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
522
- queryKey,
523
- pageInfo
524
- );
525
- let options: object[] = [];
526
- pageInfo = queryData.pageInfo;
527
- if(queryData.entities){
528
- queryData.entities.forEach((item, index) => {
529
- let title = item.fieldMap[titleId];
530
- //放入全局对象缓存
531
- //这个缓存后续还需要完善,因为太多了,容易爆掉
532
- HCDataSource.cache(item);
533
- if (title) {
534
- let ts = title.split("@R@");
535
- let t = ts && ts.length > 0 ? ts[ts.length - 1] : title;
536
- if (t != "null") {
537
- let idCode=undefined;
538
- if(fieldConfig.optionCodeColId){
539
- idCode=item.fieldMap[fieldConfig.optionCodeColId];
540
- if(idCode){
541
- let idCodes=idCode.split("@R@");
542
- idCode = idCodes && idCodes.length > 0 ? idCodes[0] : idCode;
543
- }
544
- } else {
545
- idCode= item.code;
546
- }
547
- let option = this.toOption(idCode, t, onEntityClick);
548
- options.push(option);
549
- }
550
- }
551
- });
552
- }
553
-
554
- return { options, touchEnd: queryData.touchEnd };
555
- };
556
-
557
- debounceFetcher = () => {
558
- const loadOptions = (val) => {
559
- this.fetchOptions(val);
560
- };
561
- return debounce(loadOptions, 800);
562
- };
563
-
564
- debounceFetchNextPage = () => {
565
- // this.setState({
566
- // loading: true,
567
- // })
568
- debounce(this.fetchNextPage, 200)();
569
- // this.setState({
570
- // loading: false,
571
- // })
572
- };
573
-
574
- render() {
575
- const {
576
- id,
577
- value,
578
- fieldConfig,
579
- onChange,
580
- disabled,
581
- style,
582
- maxSelected,
583
- onEntityClick,
584
- mainCode,
585
- serverKey: pServerKey,
586
- } = this.props;
587
- const { actions } = fieldConfig;
588
- const {
589
- optionCacheKey,
590
- loading,
591
- optionsCache,
592
- drawCode,
593
- showEdit,
594
- showView,
595
- showTable,
596
- ltmplConfig,
597
- } = this.state;
598
- const { translate } = this.context;
599
-
600
- let serverKey = fieldConfig.serverKey ? fieldConfig.serverKey : pServerKey;
601
-
602
- let initOptions = this.toOptions(value, onEntityClick);
603
- let exists;
604
- let properOptions = [...initOptions];
605
- let listHeight = 256;
606
- if (optionCacheKey && optionsCache[optionCacheKey]) {
607
- let optionCache = optionsCache[optionCacheKey];
608
- if (optionCache["pageInfo"] && optionCache.pageInfo.pageSize < 8) {
609
- listHeight = 32 * optionCache["pageInfo"].pageSize - 10;
610
- }
611
- for (let option of optionCache.options) {
612
- exists = false;
613
- for (let init of initOptions) {
614
- if (init["value"] == option["value"]) {
615
- exists = true;
616
- //用查询的覆盖之前的
617
- init["label"] = option["label"];
618
- }
619
- }
620
- if (!exists) {
621
- properOptions.push(option);
622
- }
623
- }
624
- }
625
- if(disabled && value){
626
- return <Rfield {...this.props} />
627
- }
628
-
629
- return (
630
- <>
631
- <Select
632
- disabled={disabled}
633
- id={id}
634
- listHeight={listHeight}
635
- style={{ ...style }}
636
- onChange={this.onChange}
637
- value={this.toValueArray(value)}
638
- mode={"multiple"}
639
- // maxCount={maxSelected}
640
- placeholder={translate("${请选择}${" + fieldConfig.title + "}")}
641
- notFoundContent={
642
- loading ? <Spin size={"small"}></Spin> : translate("${无数据}")
643
- }
644
- allowClear={true}
645
- showArrow={true}
646
- suffixIcon={<SearchOutlined />}
647
- filterOption={false}
648
- dropdownRender={this.dropdownRender}
649
- tagRender={
650
- actions &&
651
- (actions.indexOf("detail") >= 0 || actions.indexOf("edit") >= 0)
652
- ? this.tagRender
653
- : undefined
654
- }
655
- onSearch={this.debounceFetcher()}
656
- onClick={
657
- disabled
658
- ? null
659
- : () => {
660
- debounce(this.fetchOptions, 100)(undefined);
661
- }
662
- }
663
- options={loading ? [] : properOptions}
664
- onPopupScroll={(e) => {
665
- const { target } = e;
666
- if (
667
- target["scrollTop"] + target["offsetHeight"] + 1 >=
668
- target["scrollHeight"]
669
- ) {
670
- this.debounceFetchNextPage();
671
- }
672
- }}
673
- ></Select>
674
- {showView && drawCode ? (
675
- <DtmplViewDrawer
676
- serverKey={serverKey}
677
- placement={"left"}
678
- onClose={this.doClose}
679
- open={showView}
680
- sourceId={fieldConfig.sourceId}
681
- code={drawCode}
682
- ></DtmplViewDrawer>
683
- ) : null}
684
- {showEdit && ltmplConfig ? (
685
- ltmplConfig.customEditPagePath ? (
686
- <DtmplCustomEditModalPage
687
- open={showEdit}
688
- onOk={() => {
689
- this.drawSubmited();
690
- }}
691
- customPath={ltmplConfig.customEditPagePath}
692
- sourceId={fieldConfig.sourceId}
693
- mainCode={mainCode}
694
- code={drawCode}
695
- />
696
- ) : (
697
- <DtmplEditPage
698
- defaultDtmplData={fieldConfig.defaultDtmplData}
699
- serverKey={serverKey}
700
- pageType={"modal"}
701
- open={showEdit}
702
- onCancel={this.doClose}
703
- mainCode={mainCode}
704
- sourceId={fieldConfig.sourceId}
705
- code={drawCode}
706
- onOk={this.drawSubmited}
707
- />
708
- )
709
- ) : null}
710
- {showTable ? (
711
- <LtmplModal
712
- serverKey={serverKey}
713
- open={showTable}
714
- height={"76vh"}
715
- onCancel={this.closeTable}
716
- sourceId={fieldConfig.sourceId}
717
- mainCode={mainCode}
718
- />
719
- ) : null}
720
- </>
721
- );
722
- }
723
- }
1
+ import * as React from "react";
2
+ import { Button, Col, Divider, message, Row, Select, Spin, Tag } from "antd";
3
+ import {
4
+ EControlProps,
5
+ LtmplConfig,
6
+ PageInfo,
7
+ QueryData,
8
+ QueryKey,
9
+ } from "../../tmpl/interface";
10
+ import {
11
+ AlignLeftOutlined,
12
+ EditOutlined,
13
+ PlusOutlined,
14
+ RedoOutlined,
15
+ SearchOutlined,
16
+ TableOutlined,
17
+ } from "@ant-design/icons";
18
+ import debounce from "lodash/debounce";
19
+ import "./index.css";
20
+ import HcserviceV3 from "../../tmpl/hcservice-v3";
21
+ import HCDataSource from "../../tmpl/hc-data-source";
22
+ import DtmplViewDrawer from "../../module/dtmpl-view-drawer";
23
+ import DtmplEditPage from "../../module/dtmpl-edit-page";
24
+ import { CustomTagProps } from "rc-select/lib/BaseSelect";
25
+ import DtmplCustomEditModalPage from "../../custom-page/dtmpl-custom-edit-modal-page";
26
+ import { LtmplModal } from "../../index";
27
+ import { LocaleContext } from "../../locale/LocaleProvider";
28
+ import Rfield from "../rfield";
29
+
30
+ interface InnerEntitySelectProps extends EControlProps {
31
+ maxSelected?: number;
32
+ onEntityClick?: (code: string) => void;
33
+ baseCriteria: object;
34
+ valueOnly?:boolean;
35
+ }
36
+
37
+ interface InnerEntitySelectState {
38
+ titleId?: string;
39
+ optionCacheKey?: string;
40
+ pageNo?: number;
41
+ loading?: boolean;
42
+ optionsCache?: object;
43
+ codeLabel?: object;
44
+ ltmplConfig?: LtmplConfig;
45
+ showView?: boolean;
46
+ drawCode?: string;
47
+ showEdit?: boolean;
48
+ showTable?: boolean;
49
+ preMainCode?: string;
50
+ }
51
+
52
+ type OptionCache = {
53
+ queryKey?: QueryKey;
54
+ pageInfo?: PageInfo;
55
+ touchEnd?: boolean;
56
+ options?: any;
57
+ searchValue?: string;
58
+ optionCacheKey?: string;
59
+ };
60
+
61
+ type LoadDataSource = {
62
+ options: any[];
63
+ touchEnd: boolean;
64
+ };
65
+
66
+ export default class EntitySelect extends React.PureComponent<
67
+ InnerEntitySelectProps,
68
+ InnerEntitySelectState
69
+ > {
70
+ static defaultProps = {
71
+ maxSelected: 100,
72
+ valueOnly:false,
73
+ };
74
+
75
+ state = {
76
+ titleId: undefined,
77
+ optionCacheKey: undefined,
78
+ pageNo: 1,
79
+ loading: false,
80
+ optionsCache: {},
81
+ codeLabel: {},
82
+ ltmplConfig: undefined,
83
+ showView: false,
84
+ showEdit: false,
85
+ showTable: false,
86
+ drawCode: undefined,
87
+ preMainCode: undefined,
88
+ };
89
+ static contextType = LocaleContext;
90
+ context: React.ContextType<typeof LocaleContext>;
91
+
92
+ dropdownRender = (menu) => {
93
+ const { fieldConfig } = this.props;
94
+ const { actions } = fieldConfig;
95
+ // console.log("menu",menu);
96
+ return (
97
+ <>
98
+ {menu}
99
+ {
100
+ <>
101
+ <Divider style={{ margin: "8px 0" }} />
102
+ <Row justify="end">
103
+ {actions && actions.indexOf("table") >= 0 ? (
104
+ <Col>
105
+ <Button
106
+ type="text"
107
+ icon={<TableOutlined style={{ color: "#0958d9" }} />}
108
+ onClick={() => this.showTable()}
109
+ ></Button>
110
+ </Col>
111
+ ) : null}
112
+ {actions && actions.indexOf("add") >= 0 ? (
113
+ <Col>
114
+ <Button
115
+ type="text"
116
+ icon={<PlusOutlined style={{ color: "#0958d9" }} />}
117
+ onClick={() => this.editItem()}
118
+ ></Button>
119
+ </Col>
120
+ ) : null}
121
+ <Col>
122
+ <Button
123
+ type="text"
124
+ icon={<RedoOutlined style={{ color: "#0958d9" }} />}
125
+ onClick={() => this.initCache()}
126
+ ></Button>
127
+ </Col>
128
+ </Row>
129
+ </>
130
+ }
131
+ </>
132
+ );
133
+ };
134
+
135
+ editItem = async (code?) => {
136
+ let ltmplConfig = await this.loadLtmplConfig();
137
+ this.setState({
138
+ showEdit: true,
139
+ showTable: false,
140
+ showView: false,
141
+ drawCode: code,
142
+ ltmplConfig,
143
+ });
144
+ };
145
+
146
+ showTable = async () => {
147
+ this.setState({
148
+ showEdit: false,
149
+ showTable: true,
150
+ showView: false,
151
+ drawCode: undefined,
152
+ });
153
+ };
154
+
155
+ loadLtmplConfig = async () => {
156
+ const { fieldConfig, serverKey } = this.props;
157
+ const { ltmplConfig } = this.state;
158
+ let ltmplConfig_ = ltmplConfig;
159
+ if (!ltmplConfig_) {
160
+ ltmplConfig_ = (
161
+ await HCDataSource.requestLtmplConfig(
162
+ fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
163
+ fieldConfig.sourceId ? fieldConfig.sourceId : fieldConfig.id
164
+ )
165
+ ).ltmplConfig;
166
+ }
167
+ this.setState({
168
+ ltmplConfig: ltmplConfig_,
169
+ });
170
+ return ltmplConfig_;
171
+ };
172
+
173
+ showItem = async (code) => {
174
+ let ltmplConfig = await this.loadLtmplConfig();
175
+
176
+ this.setState({
177
+ showEdit: false,
178
+ showTable: false,
179
+ showView: true,
180
+ drawCode: code,
181
+ ltmplConfig,
182
+ });
183
+ };
184
+
185
+ componentDidUpdate(prevProps) {
186
+ const { baseCriteria:p_baseCriteria, mainCode, fieldConfig } = this.props;
187
+ let {
188
+ baseCriteria: p_preBaseCriteria,
189
+ mainCode: preMainCode,
190
+ fieldConfig: preFieldConfig,
191
+ } = prevProps;
192
+
193
+ let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
194
+ let preBaseCriteria=p_preBaseCriteria?p_preBaseCriteria:preFieldConfig.baseCriteria;
195
+ if (
196
+ (baseCriteria &&
197
+ JSON.stringify(baseCriteria) != JSON.stringify(preBaseCriteria)) ||
198
+ (mainCode && mainCode != preMainCode) ||
199
+ (fieldConfig && preFieldConfig && fieldConfig.id != preFieldConfig.id)
200
+ ) {
201
+ this.initCache();
202
+ }
203
+ }
204
+
205
+ initCache = () => {
206
+ this.setState({
207
+ optionsCache: {},
208
+ codeLabel: {},
209
+ });
210
+ };
211
+
212
+ // componentWillUnmount(): void {
213
+ // this.setState=(state,callback)=>{
214
+ // return
215
+ // }
216
+ // }
217
+
218
+ toOption = (code: string, title: string, onEntityClick) => {
219
+ const { fieldConfig,valueOnly } = this.props;
220
+ const { actions } = fieldConfig;
221
+ const { codeLabel } = this.state;
222
+ codeLabel[valueOnly?title:code] = title;
223
+ let option = {
224
+ value: valueOnly?title:code,
225
+ label: (
226
+ <>
227
+ {title}
228
+ {actions && actions.indexOf("detail") >= 0 ? (
229
+ <Button
230
+ size={"small"}
231
+ type={"text"}
232
+ onClick={(event) => {
233
+ event.stopPropagation();
234
+ this.showItem(code);
235
+ }}
236
+ >
237
+ <AlignLeftOutlined style={{ color: "#0958d9" }} />
238
+ </Button>
239
+ ) : null}
240
+
241
+ {actions && actions.indexOf("edit") >= 0 ? (
242
+ <Button
243
+ size={"small"}
244
+ type={"text"}
245
+ onClick={(event) => {
246
+ event.stopPropagation();
247
+ this.editItem(code);
248
+ }}
249
+ >
250
+ <EditOutlined style={{ color: "#0958d9" }} />
251
+ </Button>
252
+ ) : null}
253
+ </>
254
+ ),
255
+ };
256
+ return option;
257
+ };
258
+
259
+ doClose = () => {
260
+ this.setState({
261
+ drawCode: undefined,
262
+ showEdit: false,
263
+ showView: false,
264
+ showTable: false,
265
+ });
266
+ };
267
+
268
+ drawSubmited = () => {
269
+ this.initCache();
270
+ this.doClose();
271
+ };
272
+
273
+ closeTable = () => {
274
+ this.drawSubmited();
275
+ };
276
+
277
+ toValueArray = (value) => {
278
+ let result = [];
279
+ let valueArray = this.toArray(value);
280
+ for (let v of valueArray) {
281
+ if (v) {
282
+ if(this.props.valueOnly){
283
+ result.push(v);
284
+ }else{
285
+ let vs = v.split("@R@");
286
+ if (vs[1] != "null") {
287
+ result.push(vs[0]);
288
+ }
289
+ }
290
+ }
291
+ }
292
+ return result;
293
+ };
294
+
295
+ toArray = (value) => {
296
+ let valueArray: string[] = [];
297
+ if (value instanceof Array) {
298
+ valueArray = value;
299
+ } else {
300
+ if (value) {
301
+ valueArray = value.split("@,@");
302
+ } else {
303
+ valueArray = [];
304
+ }
305
+ }
306
+
307
+ return valueArray;
308
+ };
309
+
310
+ toOptions = (value, onEntityClick) => {
311
+ const { fieldConfig ,valueOnly} = this.props;
312
+ let options: object[] = [];
313
+
314
+ let valueArray: string[] = this.toArray(value);
315
+ for (let v of valueArray) {
316
+ if (v) {
317
+ if(valueOnly){
318
+ options.push(this.toOption(v, v, onEntityClick));
319
+ }else{
320
+ let vs = v.split("@R@");
321
+ if (vs[1] != "null") {
322
+ options.push(this.toOption(vs[0], vs[1], onEntityClick));
323
+ }
324
+ }
325
+ }
326
+ }
327
+
328
+ //添加补充项
329
+ if (fieldConfig.suppleOptions) {
330
+ fieldConfig.suppleOptions.forEach((o) => {
331
+ let had = false;
332
+ options.forEach((s) => {
333
+ if (s["value"] == o.code) {
334
+ had = true;
335
+ return;
336
+ }
337
+ });
338
+ if (!had) {
339
+ options.push(this.toOption(o.code, o.title, undefined));
340
+ }
341
+ });
342
+ }
343
+ return options;
344
+ };
345
+
346
+ fetchNextPage = async () => {
347
+ const { optionCacheKey, titleId, optionsCache } = this.state;
348
+ let optionCache = optionsCache[optionCacheKey];
349
+ let pageInfo = optionCache.pageInfo;
350
+ if (!optionCache.touchEnd) {
351
+ pageInfo.pageNo = pageInfo.pageNo + 1;
352
+ let dataSource = await this.loadData(
353
+ optionCache.queryKey.key,
354
+ { ...pageInfo },
355
+ titleId
356
+ );
357
+ if (dataSource) {
358
+ optionCache.options = [...optionCache.options, ...dataSource.options];
359
+ optionCache.touchEnd = dataSource.touchEnd;
360
+ }
361
+ this.setState({
362
+ pageNo: pageInfo.pageNo,
363
+ });
364
+ }
365
+ };
366
+
367
+ fetchOptions = async (searchText) => {
368
+ const { fieldConfig, mainCode, baseCriteria:p_baseCriteria, serverKey } = this.props;
369
+ const { optionsCache, ltmplConfig, preMainCode } = this.state;
370
+ let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
371
+ const currentMainCode = mainCode ? mainCode : fieldConfig.mainCode;
372
+ if (preMainCode != currentMainCode) {
373
+ this.setState({ preMainCode: currentMainCode.toString() });
374
+ //清空,
375
+ this.initCache();
376
+ }
377
+
378
+ let optionCacheKey = "withoutValue";
379
+ //先从缓存里拿
380
+ if (searchText) {
381
+ optionCacheKey = searchText;
382
+ }
383
+ let titleId = this.state.titleId;
384
+ let optionCache = optionsCache[optionCacheKey];
385
+ if (!optionCache) {
386
+ this.setState({
387
+ loading: true,
388
+ });
389
+ let ltmplConfig_ = ltmplConfig;
390
+ if (!ltmplConfig_) {
391
+ ltmplConfig_ = await this.loadLtmplConfig();
392
+ }
393
+ if (!ltmplConfig_) {
394
+ message.error("请配置正确查询页面",5);
395
+ return;
396
+ }
397
+ let pageInfo = {
398
+ pageNo: 1,
399
+ pageSize: 6,
400
+ virtualEndPageNo: undefined,
401
+ };
402
+ titleId = ltmplConfig_.primaryColumn.id;
403
+ //得到第一个过滤条件
404
+ let firstCriteria = ltmplConfig_.primaryCriteria;
405
+ let formItemName = "undefinedCriteria";
406
+ if (firstCriteria) {
407
+ formItemName = "c_" + firstCriteria.id;
408
+ }
409
+ const { defaultPageSize } = ltmplConfig_;
410
+ if (defaultPageSize) {
411
+ pageInfo.pageSize = defaultPageSize;
412
+ }
413
+
414
+ /** 构建 dataSource **/
415
+ //构建过滤条件
416
+ let criteriaData = {};
417
+ if (baseCriteria) {
418
+ criteriaData = { ...baseCriteria };
419
+ }
420
+
421
+ criteriaData[formItemName] = searchText;
422
+ let queryKey: QueryKey = await HcserviceV3.requestLtmplQueryKey(
423
+ fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
424
+ fieldConfig.sourceId,
425
+ {
426
+ ...criteriaData,
427
+ ...pageInfo,
428
+ mainCode: currentMainCode,
429
+ }
430
+ );
431
+ let sourceData = await this.loadData(queryKey.key, pageInfo, titleId);
432
+
433
+ optionCache = {
434
+ options: sourceData.options,
435
+ pageInfo,
436
+ queryKey,
437
+ searchValue: searchText,
438
+ touchEnd: sourceData.touchEnd,
439
+ };
440
+ optionsCache[optionCacheKey] = optionCache;
441
+ this.setState({
442
+ optionCacheKey,
443
+ titleId,
444
+ optionsCache: { ...optionsCache },
445
+ loading: false,
446
+ });
447
+ } else {
448
+ if (
449
+ this.state.optionCacheKey == optionCacheKey &&
450
+ optionCacheKey == "withoutValue"
451
+ ) {
452
+ this.setState({
453
+ loading: false,
454
+ optionCacheKey,
455
+ });
456
+ } else {
457
+ debounce(() => {
458
+ this.setState({
459
+ loading: false,
460
+ optionCacheKey,
461
+ });
462
+ }, 500)();
463
+ }
464
+ }
465
+ };
466
+
467
+ onChange = (values: any[]) => {
468
+ const { codeLabel } = this.state;
469
+ const { maxSelected,valueOnly } = this.props;
470
+ let newValues: Array<string> = [...values];
471
+ if (values && values.length > maxSelected) {
472
+ newValues.shift();
473
+ }
474
+ let formValues: Array<string> = [];
475
+
476
+ newValues.forEach((c) => {
477
+ if(valueOnly){
478
+ if (c.indexOf("@R@") > 0) {
479
+ formValues.push(c.split("@R@")[1]);
480
+ } else {
481
+ formValues.push(codeLabel[c]);
482
+ }
483
+ }else{
484
+ if (c.indexOf("@R@") > 0) {
485
+ formValues.push(c);
486
+ } else {
487
+ formValues.push(c + "@R@" + codeLabel[c]);
488
+ }
489
+ }
490
+
491
+ });
492
+ this.props.onChange(formValues.join("@,@"));
493
+ };
494
+
495
+ tagRender = (props: CustomTagProps) => {
496
+ const { label, closable, onClose } = props;
497
+ const onPreventMouseDown = (event: React.MouseEvent<HTMLSpanElement>) => {
498
+ event.preventDefault();
499
+ event.stopPropagation();
500
+ };
501
+ return (
502
+ <Tag
503
+ onMouseDown={onPreventMouseDown}
504
+ closable={closable}
505
+ onClose={onClose}
506
+ style={{ marginRight: 3 }}
507
+ >
508
+ {label}
509
+ </Tag>
510
+ );
511
+ };
512
+
513
+ loadData = async (
514
+ queryKey: string,
515
+ pageInfo: PageInfo,
516
+ titleId: string
517
+ ): Promise<LoadDataSource> => {
518
+ const { onEntityClick, baseCriteria:p_baseCriteria, serverKey, fieldConfig } = this.props;
519
+ let baseCriteria=p_baseCriteria?p_baseCriteria:fieldConfig.baseCriteria;
520
+ let queryData: QueryData = await HcserviceV3.requestQueryData(
521
+ fieldConfig.serverKey ? fieldConfig.serverKey : serverKey,
522
+ queryKey,
523
+ pageInfo
524
+ );
525
+ let options: object[] = [];
526
+ pageInfo = queryData.pageInfo;
527
+ if(queryData.entities){
528
+ queryData.entities.forEach((item, index) => {
529
+ let title = item.fieldMap[titleId];
530
+ //放入全局对象缓存
531
+ //这个缓存后续还需要完善,因为太多了,容易爆掉
532
+ HCDataSource.cache(item);
533
+ if (title) {
534
+ let ts = title.split("@R@");
535
+ let t = ts && ts.length > 0 ? ts[ts.length - 1] : title;
536
+ if (t != "null") {
537
+ let idCode=undefined;
538
+ if(fieldConfig.optionCodeColId){
539
+ idCode=item.fieldMap[fieldConfig.optionCodeColId];
540
+ if(idCode){
541
+ let idCodes=idCode.split("@R@");
542
+ idCode = idCodes && idCodes.length > 0 ? idCodes[0] : idCode;
543
+ }
544
+ } else {
545
+ idCode= item.code;
546
+ }
547
+ let option = this.toOption(idCode, t, onEntityClick);
548
+ options.push(option);
549
+ }
550
+ }
551
+ });
552
+ }
553
+
554
+ return { options, touchEnd: queryData.touchEnd };
555
+ };
556
+
557
+ debounceFetcher = () => {
558
+ const loadOptions = (val) => {
559
+ this.fetchOptions(val);
560
+ };
561
+ return debounce(loadOptions, 800);
562
+ };
563
+
564
+ debounceFetchNextPage = () => {
565
+ // this.setState({
566
+ // loading: true,
567
+ // })
568
+ debounce(this.fetchNextPage, 200)();
569
+ // this.setState({
570
+ // loading: false,
571
+ // })
572
+ };
573
+
574
+ render() {
575
+ const {
576
+ id,
577
+ value,
578
+ fieldConfig,
579
+ onChange,
580
+ disabled,
581
+ style,
582
+ maxSelected,
583
+ onEntityClick,
584
+ mainCode,
585
+ serverKey: pServerKey,
586
+ } = this.props;
587
+ const { actions } = fieldConfig;
588
+ const {
589
+ optionCacheKey,
590
+ loading,
591
+ optionsCache,
592
+ drawCode,
593
+ showEdit,
594
+ showView,
595
+ showTable,
596
+ ltmplConfig,
597
+ } = this.state;
598
+ const { translate } = this.context;
599
+
600
+ let serverKey = fieldConfig.serverKey ? fieldConfig.serverKey : pServerKey;
601
+
602
+ let initOptions = this.toOptions(value, onEntityClick);
603
+ let exists;
604
+ let properOptions = [...initOptions];
605
+ let listHeight = 256;
606
+ if (optionCacheKey && optionsCache[optionCacheKey]) {
607
+ let optionCache = optionsCache[optionCacheKey];
608
+ if (optionCache["pageInfo"] && optionCache.pageInfo.pageSize < 8) {
609
+ listHeight = 32 * optionCache["pageInfo"].pageSize - 10;
610
+ }
611
+ for (let option of optionCache.options) {
612
+ exists = false;
613
+ for (let init of initOptions) {
614
+ if (init["value"] == option["value"]) {
615
+ exists = true;
616
+ //用查询的覆盖之前的
617
+ init["label"] = option["label"];
618
+ }
619
+ }
620
+ if (!exists) {
621
+ properOptions.push(option);
622
+ }
623
+ }
624
+ }
625
+ if(disabled && value){
626
+ return <Rfield {...this.props} />
627
+ }
628
+
629
+ return (
630
+ <>
631
+ <Select
632
+ disabled={disabled}
633
+ defaultActiveFirstOption={false}
634
+ id={id}
635
+ listHeight={listHeight}
636
+ style={{ ...style }}
637
+ onChange={this.onChange}
638
+ value={this.toValueArray(value)}
639
+ mode={"multiple"}
640
+ // maxCount={maxSelected}
641
+ placeholder={translate("${请选择}${" + fieldConfig.title + "}")}
642
+ notFoundContent={
643
+ loading ? <Spin size={"small"}></Spin> : translate("${无数据}")
644
+ }
645
+ allowClear={true}
646
+ showArrow={true}
647
+ suffixIcon={<SearchOutlined />}
648
+ filterOption={false}
649
+ dropdownRender={this.dropdownRender}
650
+ tagRender={
651
+ actions &&
652
+ (actions.indexOf("detail") >= 0 || actions.indexOf("edit") >= 0)
653
+ ? this.tagRender
654
+ : undefined
655
+ }
656
+ onSearch={this.debounceFetcher()}
657
+ onClick={
658
+ disabled
659
+ ? null
660
+ : () => {
661
+ debounce(this.fetchOptions, 100)(undefined);
662
+ }
663
+ }
664
+ options={loading ? [] : properOptions}
665
+ onPopupScroll={(e) => {
666
+ const { target } = e;
667
+ if (
668
+ target["scrollTop"] + target["offsetHeight"] + 1 >=
669
+ target["scrollHeight"]
670
+ ) {
671
+ this.debounceFetchNextPage();
672
+ }
673
+ }}
674
+ ></Select>
675
+ {showView && drawCode ? (
676
+ <DtmplViewDrawer
677
+ serverKey={serverKey}
678
+ placement={"left"}
679
+ onClose={this.doClose}
680
+ open={showView}
681
+ sourceId={fieldConfig.sourceId}
682
+ code={drawCode}
683
+ ></DtmplViewDrawer>
684
+ ) : null}
685
+ {showEdit && ltmplConfig ? (
686
+ ltmplConfig.customEditPagePath ? (
687
+ <DtmplCustomEditModalPage
688
+ open={showEdit}
689
+ onOk={() => {
690
+ this.drawSubmited();
691
+ }}
692
+ customPath={ltmplConfig.customEditPagePath}
693
+ sourceId={fieldConfig.sourceId}
694
+ mainCode={mainCode}
695
+ code={drawCode}
696
+ />
697
+ ) : (
698
+ <DtmplEditPage
699
+ defaultDtmplData={fieldConfig.defaultDtmplData}
700
+ serverKey={serverKey}
701
+ pageType={"modal"}
702
+ open={showEdit}
703
+ onCancel={this.doClose}
704
+ mainCode={mainCode}
705
+ sourceId={fieldConfig.sourceId}
706
+ code={drawCode}
707
+ onOk={this.drawSubmited}
708
+ />
709
+ )
710
+ ) : null}
711
+ {showTable ? (
712
+ <LtmplModal
713
+ serverKey={serverKey}
714
+ open={showTable}
715
+ height={"76vh"}
716
+ onCancel={this.closeTable}
717
+ sourceId={fieldConfig.sourceId}
718
+ mainCode={mainCode}
719
+ />
720
+ ) : null}
721
+ </>
722
+ );
723
+ }
724
+ }