@cloudbase/weda-ui 3.4.2 → 3.4.4

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 (537) hide show
  1. package/dist/configs/components/auth.json +2 -1
  2. package/dist/configs/components/button.js +240 -0
  3. package/dist/configs/components/calendar.json +4 -2
  4. package/dist/configs/components/carousel.json +2 -1
  5. package/dist/configs/components/chart/bar.json +7 -2
  6. package/dist/configs/components/chart/line.js +872 -0
  7. package/dist/configs/components/chart/pie.json +7 -2
  8. package/dist/configs/components/chart/statisticsCard.json +3 -2
  9. package/dist/configs/components/container.js +64 -0
  10. package/dist/configs/components/dataView.js +507 -0
  11. package/dist/configs/components/drawer.json +2 -1
  12. package/dist/configs/components/flow/flow.json +26 -0
  13. package/dist/configs/components/flow/flowbasic.json +122 -0
  14. package/dist/configs/components/flow/flowchart.json +22 -0
  15. package/dist/configs/components/flow/flowcontrol.json +66 -0
  16. package/dist/configs/components/flow/flowlayout.json +31 -0
  17. package/dist/configs/components/flow/flowprocess.json +122 -0
  18. package/dist/configs/components/form/checkbox.json +2 -1
  19. package/dist/configs/components/form/departTreeSelect.json +2 -1
  20. package/dist/configs/components/form/form.json +2 -1
  21. package/dist/configs/components/form/input.json +2 -1
  22. package/dist/configs/components/form/location.json +4 -2
  23. package/dist/configs/components/form/radio.json +2 -1
  24. package/dist/configs/components/form/richText.json +2 -1
  25. package/dist/configs/components/form/select.json +6 -1
  26. package/dist/configs/components/form/switch.json +2 -1
  27. package/dist/configs/components/form/textarea.json +2 -1
  28. package/dist/configs/components/form/tips.json +2 -1
  29. package/dist/configs/components/form/uploader.json +2 -1
  30. package/dist/configs/components/form/uploaderFile.json +2 -1
  31. package/dist/configs/components/form/userTreeSelect.json +57 -1
  32. package/dist/configs/components/formdetail.json +16 -4
  33. package/dist/configs/components/graphicCard.json +2 -1
  34. package/dist/configs/components/grid/col.js +125 -0
  35. package/dist/configs/components/grid/grid.js +131 -0
  36. package/dist/configs/components/grid/row.js +143 -0
  37. package/dist/configs/components/image.js +205 -0
  38. package/dist/configs/components/link.js +78 -0
  39. package/dist/configs/components/listView.js +988 -0
  40. package/dist/configs/components/lottery.json +6 -2
  41. package/dist/configs/components/modal.js +72 -0
  42. package/dist/configs/components/navLayout.json +3 -2
  43. package/dist/configs/components/navigationBar.json +12 -3
  44. package/dist/configs/components/pagelayout.json +31 -0
  45. package/dist/configs/components/repeater-item.json +17 -0
  46. package/dist/configs/components/repeater.js +125 -0
  47. package/dist/configs/components/richtextview.json +4 -3
  48. package/dist/configs/components/scrollVeiw.json +5 -3
  49. package/dist/configs/components/slot.json +2 -1
  50. package/dist/configs/components/swiper.json +3 -2
  51. package/dist/configs/components/table.json +777 -0
  52. package/dist/configs/components/tabs.js +120 -0
  53. package/dist/configs/components/text.js +120 -0
  54. package/dist/configs/components/wd-bubble.js +204 -0
  55. package/dist/configs/components/wd-button.js +417 -0
  56. package/dist/configs/components/wd-divider.js +89 -0
  57. package/dist/configs/components/wd-icon.js +126 -0
  58. package/dist/configs/components/wd-image.js +164 -0
  59. package/dist/configs/components/wd-link.js +234 -0
  60. package/dist/configs/components/wd-table.js +59 -0
  61. package/dist/configs/components/wd-text.js +142 -0
  62. package/dist/configs/components/wedaVideo.json +7 -2
  63. package/dist/configs/components/wxOpenApi/phone.js +126 -0
  64. package/dist/configs/components/wxOpenApi/phoneCode.js +117 -0
  65. package/dist/configs/components/wxOpenApi/share.js +164 -0
  66. package/dist/configs/components/wxOpenApi/userInfo.js +168 -0
  67. package/dist/configs/index.js +63 -14
  68. package/dist/configs/type-utils/index.js +92 -0
  69. package/dist/docs/common/componentList.js +144 -0
  70. package/dist/docs/common/components/classes-view.js +34 -0
  71. package/dist/docs/common/components/event-view.js +46 -0
  72. package/dist/docs/common/components/json-schema-view.js +18 -0
  73. package/dist/docs/common/components/methods-view.js +32 -0
  74. package/dist/docs/common/components/properties-view.js +45 -0
  75. package/dist/docs/common/format.js +60 -35
  76. package/dist/docs/common/helper.js +1 -0
  77. package/dist/docs/common/tableView.js +61 -50
  78. package/dist/enum/index.js +521 -0
  79. package/dist/index.js +1 -1
  80. package/dist/style/index.scss +1 -0
  81. package/dist/web/actions/showMessage/index.css +0 -3
  82. package/dist/web/actions/showMessage/index.js +1 -1
  83. package/dist/web/actions/showModal/index.css +0 -3
  84. package/dist/web/components/button/index.css +2 -5
  85. package/dist/web/components/button/index.js +4 -4
  86. package/dist/web/components/calendar/index.css +29 -32
  87. package/dist/web/components/calendar/index.js +37 -35
  88. package/dist/web/components/carousel/index.css +11 -14
  89. package/dist/web/components/carousel/index.js +13 -6
  90. package/dist/web/components/chart/common/core/eChartBar.js +10 -2
  91. package/dist/web/components/chart/common/core/eChartLine.js +16 -8
  92. package/dist/web/components/chart/common/core/eChartPie.js +2 -1
  93. package/dist/web/components/chart/statisticsCard/index.css +12 -15
  94. package/dist/web/components/chart/statisticsCard/index.js +6 -1
  95. package/dist/web/components/dataView/index.js +3 -3
  96. package/dist/web/components/emptyContent/index.css +26 -0
  97. package/dist/web/components/emptyContent/index.js +46 -0
  98. package/dist/web/components/flow/components/FlowModuleText/Content.js +6 -0
  99. package/dist/web/components/flow/components/FlowModuleText/Title.js +16 -0
  100. package/dist/web/components/flow/components/FlowModuleText/index.css +4 -0
  101. package/dist/web/components/flow/components/FlowModuleText/index.js +7 -0
  102. package/dist/web/components/flow/components/FlowModuleText/utils.js +34 -0
  103. package/dist/web/components/flow/components/FlowStatusText/index.js +37 -0
  104. package/dist/web/components/flow/components/FlowUserSelect/index.css +116 -0
  105. package/dist/web/components/flow/components/FlowUserSelect/index.js +115 -0
  106. package/dist/web/components/flow/components/HighLightComment/index.js +31 -0
  107. package/dist/web/components/flow/components/HighlightTextarea/index.css +42 -0
  108. package/dist/web/components/flow/components/HighlightTextarea/index.js +131 -0
  109. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +74 -0
  110. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +8 -0
  111. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +86 -0
  112. package/dist/web/components/flow/components/UserSelectModel/index.js +18 -0
  113. package/dist/web/components/flow/components/WedaUserTransfer/index.css +3 -0
  114. package/dist/web/components/flow/components/WedaUserTransfer/index.js +162 -0
  115. package/dist/web/components/flow/components/index.js +7 -0
  116. package/dist/web/components/flow/constants/index.js +65 -0
  117. package/dist/web/components/flow/frame/getCommonFlowData.js +80 -0
  118. package/dist/web/components/flow/frame/hooks/index.js +2 -0
  119. package/dist/web/components/flow/frame/hooks/useCommonFlowRequest.js +148 -0
  120. package/dist/web/components/flow/frame/hooks/useElementMediaQuery.js +15 -0
  121. package/dist/web/components/flow/frame/index.js +75 -0
  122. package/dist/web/components/flow/frame/types.js +271 -0
  123. package/dist/web/components/flow/frame/utils.js +90 -0
  124. package/dist/web/components/flow/modules/basic/Basic.css +16 -0
  125. package/dist/web/components/flow/modules/basic/Basic.js +48 -0
  126. package/dist/web/components/flow/modules/basic/BasicMobile.css +29 -0
  127. package/dist/web/components/flow/modules/basic/BasicMobile.js +41 -0
  128. package/dist/web/components/flow/modules/basic/index.js +13 -0
  129. package/dist/web/components/flow/modules/basic/utils.js +20 -0
  130. package/dist/web/components/flow/modules/chart/Chart.js +302 -0
  131. package/dist/web/components/flow/modules/chart/constants.js +28 -0
  132. package/dist/web/components/flow/modules/chart/index.css +87 -0
  133. package/dist/web/components/flow/modules/chart/index.js +5 -0
  134. package/dist/web/components/flow/modules/chart/isString.js +5 -0
  135. package/dist/web/components/flow/modules/combination/index.js +21 -0
  136. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +144 -0
  137. package/dist/web/components/flow/modules/control/ApprovalDrawer.js +178 -0
  138. package/dist/web/components/flow/modules/control/ApprovalPopup.css +115 -0
  139. package/dist/web/components/flow/modules/control/ApprovalPopup.js +241 -0
  140. package/dist/web/components/flow/modules/control/Control.css +29 -0
  141. package/dist/web/components/flow/modules/control/Control.js +93 -0
  142. package/dist/web/components/flow/modules/control/ControlMobile.css +69 -0
  143. package/dist/web/components/flow/modules/control/ControlMobile.js +133 -0
  144. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +3 -0
  145. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +31 -0
  146. package/dist/web/components/flow/modules/control/constants/index.js +35 -0
  147. package/dist/web/components/flow/modules/control/index.js +15 -0
  148. package/dist/web/components/flow/modules/control/provider/index.js +17 -0
  149. package/dist/web/components/flow/modules/control/provider/useControlModel.js +256 -0
  150. package/dist/web/components/flow/modules/control/provider/useMobileModel.js +86 -0
  151. package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +82 -0
  152. package/dist/web/components/flow/modules/control/utils/ControlModelUtils.js +57 -0
  153. package/dist/web/components/flow/modules/control/utils/index.js +2 -0
  154. package/dist/web/components/flow/modules/layout/index.css +6 -0
  155. package/dist/web/components/flow/modules/layout/index.js +22 -0
  156. package/dist/web/components/flow/modules/process/Process.js +73 -0
  157. package/dist/web/components/flow/modules/process/ProcessMobile.js +81 -0
  158. package/dist/web/components/flow/modules/process/index.css +194 -0
  159. package/dist/web/components/flow/modules/process/index.js +14 -0
  160. package/dist/web/components/flow/modules/process/utils/index.js +32 -0
  161. package/dist/web/components/flow/services/flow.js +111 -0
  162. package/dist/web/components/flow/services/ideData/chart.js +88 -0
  163. package/dist/web/components/flow/services/ideData/index.js +5 -0
  164. package/dist/web/components/flow/services/ideData/instance.js +23 -0
  165. package/dist/web/components/flow/services/ideData/pageDetail.js +41 -0
  166. package/dist/web/components/flow/services/ideData/process.js +27 -0
  167. package/dist/web/components/flow/services/index.js +2 -0
  168. package/dist/web/components/flow/services/user.js +23 -0
  169. package/dist/web/components/flow/services/utils.js +28 -0
  170. package/dist/web/components/form/enumSelect/NormalSelect.js +1 -1
  171. package/dist/web/components/form/form/index.css +2 -5
  172. package/dist/web/components/form/form/index.js +52 -7
  173. package/dist/web/components/form/formcell/index.css +29 -17
  174. package/dist/web/components/form/input/index.css +10 -8
  175. package/dist/web/components/form/input/index.js +12 -1
  176. package/dist/web/components/form/location/common/mapChoose.css +88 -91
  177. package/dist/web/components/form/location/common/selectModal.css +10 -13
  178. package/dist/web/components/form/location/components/LocationH5/index.css +17 -20
  179. package/dist/web/components/form/location/components/LocationH5/location.h5.js +2 -3
  180. package/dist/web/components/form/location/components/LocationH5/location.module.css +0 -3
  181. package/dist/web/components/form/location/components/LocationPC/index.css +10 -13
  182. package/dist/web/components/form/location/components/LocationPC/location.PC.js +2 -3
  183. package/dist/web/components/form/location/index.css +0 -3
  184. package/dist/web/components/form/radio/index.css +0 -3
  185. package/dist/web/components/form/select/allTimePicker/calendar.css +15 -18
  186. package/dist/web/components/form/select/allTimePicker/dataUtils.js +10 -0
  187. package/dist/web/components/form/select/allTimePicker/index.css +53 -27
  188. package/dist/web/components/form/select/allTimePicker/index.js +36 -27
  189. package/dist/web/components/form/select/dropdown-select/h5.js +141 -0
  190. package/dist/web/components/form/select/dropdown-select/index.css +159 -0
  191. package/dist/web/components/form/select/dropdown-select/index.js +206 -0
  192. package/dist/web/components/form/select/dropdown-select/pc.js +113 -0
  193. package/dist/web/components/form/select/dropdown-select/ui.js +45 -40
  194. package/dist/web/components/form/select/h5.js +16 -6
  195. package/dist/web/components/form/select/index.css +17 -6
  196. package/dist/web/components/form/select/index.js +7 -9
  197. package/dist/web/components/form/select/request.js +106 -0
  198. package/dist/web/components/form/select/status/allEmpty.js +5 -0
  199. package/dist/web/components/form/select/status/empty.js +18 -0
  200. package/dist/web/components/form/select/status/index.css +63 -0
  201. package/dist/web/components/form/select/status/index.js +7 -0
  202. package/dist/web/components/form/select/status/loading.js +20 -0
  203. package/dist/web/components/form/select/status/propsType.js +1 -0
  204. package/dist/web/components/form/select/status/retry.js +20 -0
  205. package/dist/web/components/form/switch/index.js +1 -1
  206. package/dist/web/components/form/switch/switch.module.css +0 -3
  207. package/dist/web/components/form/textarea/index.css +1 -4
  208. package/dist/web/components/form/textarea/index.js +1 -1
  209. package/dist/web/components/form/tips/index.css +11 -2
  210. package/dist/web/components/form/uploader/index.css +14 -17
  211. package/dist/web/components/form/uploader/uploader.h5.js +4 -4
  212. package/dist/web/components/form/uploader/uploader.pc.js +1 -1
  213. package/dist/web/components/form/uploaderFile/index.css +61 -64
  214. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +1 -1
  215. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +1 -1
  216. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +276 -0
  217. package/dist/web/components/form/userOrgSelect/common/types.js +1 -0
  218. package/dist/web/components/form/userOrgSelect/common/utils.js +103 -0
  219. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +15 -0
  220. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +63 -0
  221. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +96 -0
  222. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +69 -0
  223. package/dist/web/components/form/userOrgSelect/component/error-tips.js +11 -0
  224. package/dist/web/components/form/userOrgSelect/component/index.css +323 -0
  225. package/dist/web/components/form/userOrgSelect/component/input-tags.js +21 -0
  226. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +25 -0
  227. package/dist/web/components/form/userOrgSelect/component/modal-search.js +11 -0
  228. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +201 -0
  229. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +19 -0
  230. package/dist/web/components/form/userOrgSelect/component/org-tree.js +33 -0
  231. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +44 -0
  232. package/dist/web/components/form/userOrgSelect/component/selected-list.js +15 -0
  233. package/dist/web/components/form/userOrgSelect/component/user-org-list.js +55 -0
  234. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +151 -0
  235. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +107 -0
  236. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +50 -0
  237. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +11 -0
  238. package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.js +99 -0
  239. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.js +10 -0
  240. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +75 -0
  241. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +65 -0
  242. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +1160 -0
  243. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +54 -87
  244. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +88 -0
  245. package/dist/web/components/form/userOrgSelect/hooks/use-views-data.js +48 -0
  246. package/dist/web/components/formdetail/index.css +34 -31
  247. package/dist/web/components/formdetail/index.js +12 -3
  248. package/dist/web/components/graphicCard/index.css +15 -18
  249. package/dist/web/components/grid/_utils.css +67 -0
  250. package/dist/web/components/grid/col.js +33 -0
  251. package/dist/web/components/grid/grid.css +1185 -0
  252. package/dist/web/components/grid/grid.js +19 -0
  253. package/dist/web/components/grid/row.js +14 -0
  254. package/dist/web/components/image/image.js +9 -1
  255. package/dist/web/components/image/index.css +2 -5
  256. package/dist/web/components/image/index.js +1 -1
  257. package/dist/web/components/index.js +33 -2
  258. package/dist/web/components/link/index.css +0 -3
  259. package/dist/web/components/listView/index.css +26 -20
  260. package/dist/web/components/listView/index.js +234 -81
  261. package/dist/web/components/lottery/index.css +72 -75
  262. package/dist/web/components/modal/h5.css +19 -21
  263. package/dist/web/components/modal/modal.h5.js +12 -11
  264. package/dist/web/components/modal/modal.pc.js +1 -1
  265. package/dist/web/components/navLayout/index.css +14 -139
  266. package/dist/web/components/navigationBar/common.js +5 -4
  267. package/dist/web/components/navigationBar/h5Menu.js +12 -10
  268. package/dist/web/components/navigationBar/horizontalMenu.js +42 -35
  269. package/dist/web/components/navigationBar/index.css +131 -86
  270. package/dist/web/components/navigationBar/index.js +6 -4
  271. package/dist/web/components/navigationBar/verticalMenu.js +13 -9
  272. package/dist/web/components/pageLayout/PageContent/index.css +25 -0
  273. package/dist/web/components/pageLayout/PageContent/index.js +81 -0
  274. package/dist/web/components/pageLayout/index.css +4 -0
  275. package/dist/web/components/pageLayout/index.js +22 -0
  276. package/dist/web/components/phoneCode/index.js +1 -0
  277. package/dist/web/components/repeater/index.js +17 -0
  278. package/dist/web/components/repeater-item/index.js +9 -0
  279. package/dist/web/components/richText/index.css +8 -7
  280. package/dist/web/components/richText/index.js +6 -4
  281. package/dist/web/components/richText/richtext.module.css +2 -5
  282. package/dist/web/components/richTextView/index.css +7 -10
  283. package/dist/web/components/swiper/index.css +10 -13
  284. package/dist/web/components/swiper/index.js +19 -5
  285. package/dist/web/components/table/BaseTable.js +1240 -0
  286. package/dist/web/components/table/ExportFileModalByApi/index.css +9 -0
  287. package/dist/web/components/table/ExportFileModalByApi/index.js +150 -0
  288. package/dist/web/components/table/FieldRender.js +629 -0
  289. package/dist/web/components/table/FilterFields.js +518 -0
  290. package/dist/web/components/table/Form/Enum.js +56 -0
  291. package/dist/web/components/table/Form/Location.css +11 -0
  292. package/dist/web/components/table/Form/Location.js +126 -0
  293. package/dist/web/components/table/ImportFileModal/csvTemplate.json +606 -0
  294. package/dist/web/components/table/ImportFileModal/index.js +310 -0
  295. package/dist/web/components/table/ImportFileModal/submitFormatter.js +32 -0
  296. package/dist/web/components/table/ImportFileModal/validate.js +127 -0
  297. package/dist/web/components/table/ImportFileModalByApi/index.css +130 -0
  298. package/dist/web/components/table/ImportFileModalByApi/index.js +321 -0
  299. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +115 -0
  300. package/dist/web/components/table/InOrOutRecordModeal.js +139 -0
  301. package/dist/web/components/table/QuoteModal.js +16 -0
  302. package/dist/web/components/table/SelectableBlock/index.css +0 -0
  303. package/dist/web/components/table/SelectableBlock/index.js +81 -0
  304. package/dist/web/components/table/UserDepartment/ViewCell.js +11 -0
  305. package/dist/web/components/table/UserDepartment/utils.js +80 -0
  306. package/dist/web/components/table/UserDepartment/viewCell.css +11 -0
  307. package/dist/web/components/table/baseTable.css +579 -0
  308. package/dist/web/components/table/hooks/useImportingStatus.js +69 -0
  309. package/dist/web/components/table/hooks/useInOutFieldsRecords.js +23 -0
  310. package/dist/web/components/table/index.css +336 -0
  311. package/dist/web/components/table/index.js +111 -0
  312. package/dist/web/components/tabs/index.css +19 -18
  313. package/dist/web/components/tabs/tabs.h5.js +8 -17
  314. package/dist/web/components/tabs/tabs.pc.js +1 -1
  315. package/dist/web/components/text/index.css +7 -9
  316. package/dist/web/components/text/index.js +2 -2
  317. package/dist/web/components/uploaderFileView/index.css +0 -3
  318. package/dist/web/components/uploaderFileView/index.js +6 -5
  319. package/dist/web/components/uploaderView/index.css +5 -8
  320. package/dist/web/components/wd-bubble/index.js +3 -0
  321. package/dist/web/components/wd-bubble/wd-bubble.js +17 -0
  322. package/dist/web/components/wd-button/convert-legacy-props.js +14 -0
  323. package/dist/web/components/wd-button/index.js +3 -0
  324. package/dist/web/components/wd-button/wd-button.js +89 -0
  325. package/dist/web/components/wd-config-provider/index.js +1 -0
  326. package/dist/web/components/wd-config-provider/wd-config-context.js +5 -0
  327. package/dist/web/components/wd-config-provider/wd-config-provider.js +12 -0
  328. package/dist/web/components/wd-divider/index.js +3 -0
  329. package/dist/web/components/wd-divider/wd-divider.js +29 -0
  330. package/dist/web/components/wd-icon/convert-legacy-props.js +14 -0
  331. package/dist/web/components/wd-icon/index.js +3 -0
  332. package/dist/web/components/wd-icon/wd-icon.js +63 -0
  333. package/dist/web/components/wd-image/image.js +171 -0
  334. package/dist/web/components/wd-image/index.js +82 -0
  335. package/dist/web/components/wd-link/index.js +3 -0
  336. package/dist/web/components/wd-link/wd-link.js +105 -0
  337. package/dist/web/components/wd-table/index.js +3 -0
  338. package/dist/web/components/wd-table/wd-table.js +24 -0
  339. package/dist/web/components/wd-text/convert-legacy-props.js +14 -0
  340. package/dist/web/components/wd-text/index.js +3 -0
  341. package/dist/web/components/wd-text/wd-text.js +91 -0
  342. package/dist/web/components/wedaVideo/index.css +2 -5
  343. package/dist/web/components/wedaVideo/index.js +9 -7
  344. package/dist/web/index.js +1 -0
  345. package/dist/web/utils/config-context/index.js +1 -0
  346. package/dist/web/utils/config-context/use-config.js +9 -0
  347. package/dist/web/utils/constant.js +95 -1
  348. package/dist/web/utils/datasource.js +369 -0
  349. package/dist/web/utils/date.js +137 -0
  350. package/dist/web/utils/file.js +190 -0
  351. package/dist/web/utils/getPageQuery.js +16 -0
  352. package/dist/web/utils/hooks/CreatePortal.js +6 -0
  353. package/dist/web/utils/hooks/EnumHoc.js +81 -0
  354. package/dist/web/utils/hooks/context.js +28 -0
  355. package/dist/web/utils/hooks/globalConnect.js +26 -0
  356. package/dist/web/utils/{use-cloud-id-temp-url.js → hooks/use-cloud-id-temp-url.js} +2 -2
  357. package/dist/web/utils/{useSetState.js → hooks/useSetState.js} +0 -0
  358. package/dist/web/utils/{useSyncValue.js → hooks/useSyncValue.js} +0 -0
  359. package/dist/web/utils/platform.js +137 -28
  360. package/dist/web/utils/pollingInterface.js +61 -0
  361. package/dist/web/utils/tcb.js +46 -8
  362. package/dist/web/utils/tool.js +109 -0
  363. package/dist/web/utils/widget-api/index.js +18 -0
  364. package/dist/web/weda-ui.css +128 -4
  365. package/package.json +59 -29
  366. package/dist/configs/components/button.json +0 -239
  367. package/dist/configs/components/chart/line.json +0 -881
  368. package/dist/configs/components/container.json +0 -64
  369. package/dist/configs/components/dataView.json +0 -290
  370. package/dist/configs/components/image.json +0 -190
  371. package/dist/configs/components/link.json +0 -82
  372. package/dist/configs/components/listView.json +0 -483
  373. package/dist/configs/components/modal.json +0 -73
  374. package/dist/configs/components/tabs.json +0 -122
  375. package/dist/configs/components/text.json +0 -112
  376. package/dist/configs/components/wxOpenApi/phone.json +0 -127
  377. package/dist/configs/components/wxOpenApi/phoneCode.json +0 -109
  378. package/dist/configs/components/wxOpenApi/share.json +0 -161
  379. package/dist/configs/components/wxOpenApi/userInfo.json +0 -168
  380. package/dist/configs/index.d.ts +0 -105
  381. package/dist/docs/common/format.d.ts +0 -13
  382. package/dist/docs/common/tableView.d.ts +0 -30
  383. package/dist/index.d.ts +0 -2
  384. package/dist/setupTests.d.ts +0 -2
  385. package/dist/web/actions/index.d.ts +0 -3
  386. package/dist/web/actions/showMessage/index.d.ts +0 -17
  387. package/dist/web/actions/showModal/index.d.ts +0 -4
  388. package/dist/web/actions/showToast/index.d.ts +0 -1
  389. package/dist/web/components/button/index.d.ts +0 -33
  390. package/dist/web/components/calendar/index.d.ts +0 -19
  391. package/dist/web/components/calendar/util.d.ts +0 -13
  392. package/dist/web/components/carousel/index.d.ts +0 -41
  393. package/dist/web/components/chart/bar/index.d.ts +0 -3
  394. package/dist/web/components/chart/bar/index.old.d.ts +0 -40
  395. package/dist/web/components/chart/common/Chart.d.ts +0 -9
  396. package/dist/web/components/chart/common/chart-custom-connector.d.ts +0 -6
  397. package/dist/web/components/chart/common/chart-error.d.ts +0 -2
  398. package/dist/web/components/chart/common/config/bar.d.ts +0 -48
  399. package/dist/web/components/chart/common/config/global.d.ts +0 -13
  400. package/dist/web/components/chart/common/config/line.d.ts +0 -46
  401. package/dist/web/components/chart/common/config/pie.d.ts +0 -29
  402. package/dist/web/components/chart/common/core/eChartBar.d.ts +0 -66
  403. package/dist/web/components/chart/common/core/eChartBase.d.ts +0 -127
  404. package/dist/web/components/chart/common/core/eChartLine.d.ts +0 -60
  405. package/dist/web/components/chart/common/core/eChartPie.d.ts +0 -48
  406. package/dist/web/components/chart/common/core/type.d.ts +0 -35
  407. package/dist/web/components/chart/common/data-transform.d.ts +0 -8
  408. package/dist/web/components/chart/common/echarts.d.ts +0 -5
  409. package/dist/web/components/chart/common/useChart.d.ts +0 -8
  410. package/dist/web/components/chart/line/index.d.ts +0 -3
  411. package/dist/web/components/chart/line/index.old.d.ts +0 -38
  412. package/dist/web/components/chart/pie/index.d.ts +0 -3
  413. package/dist/web/components/chart/pie/index.old.d.ts +0 -27
  414. package/dist/web/components/chart/statisticsCard/index.d.ts +0 -85
  415. package/dist/web/components/chart/statisticsCard/interface.d.ts +0 -13
  416. package/dist/web/components/common/error-boundary.d.ts +0 -5
  417. package/dist/web/components/common/portal.d.ts +0 -7
  418. package/dist/web/components/common/use-loop-render-detect.d.ts +0 -11
  419. package/dist/web/components/container/index.d.ts +0 -6
  420. package/dist/web/components/dataView/index.d.ts +0 -6
  421. package/dist/web/components/dataView/interface.d.ts +0 -5
  422. package/dist/web/components/drawer/index.d.ts +0 -13
  423. package/dist/web/components/form/checkbox/index.d.ts +0 -13
  424. package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +0 -78
  425. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +0 -83
  426. package/dist/web/components/form/enumSelect/SelectContainer.d.ts +0 -16
  427. package/dist/web/components/form/enumSelect/index.d.ts +0 -82
  428. package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +0 -34
  429. package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +0 -39
  430. package/dist/web/components/form/form/index.d.ts +0 -32
  431. package/dist/web/components/form/formcell/index.d.ts +0 -8
  432. package/dist/web/components/form/input/index.d.ts +0 -14
  433. package/dist/web/components/form/location/common/mapChoose.d.ts +0 -15
  434. package/dist/web/components/form/location/common/mapView.d.ts +0 -19
  435. package/dist/web/components/form/location/common/propsConfig.d.ts +0 -59
  436. package/dist/web/components/form/location/common/selectModal.d.ts +0 -21
  437. package/dist/web/components/form/location/common/useLocationInfo.d.ts +0 -36
  438. package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +0 -8
  439. package/dist/web/components/form/location/components/LocationPC/Header.d.ts +0 -12
  440. package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +0 -8
  441. package/dist/web/components/form/location/constants.d.ts +0 -2
  442. package/dist/web/components/form/location/index.d.ts +0 -1
  443. package/dist/web/components/form/radio/index.d.ts +0 -11
  444. package/dist/web/components/form/renderDecorator.d.ts +0 -6
  445. package/dist/web/components/form/select/allTimePicker/calendar.d.ts +0 -13
  446. package/dist/web/components/form/select/allTimePicker/dataUtils.d.ts +0 -24
  447. package/dist/web/components/form/select/allTimePicker/index.d.ts +0 -14
  448. package/dist/web/components/form/select/dropdown-select/ui.d.ts +0 -15
  449. package/dist/web/components/form/select/h5.d.ts +0 -16
  450. package/dist/web/components/form/select/index.d.ts +0 -66
  451. package/dist/web/components/form/select/region/index.d.ts +0 -6
  452. package/dist/web/components/form/select/time.d.ts +0 -9
  453. package/dist/web/components/form/select/use-options.d.ts +0 -26
  454. package/dist/web/components/form/select/use-options.js +0 -103
  455. package/dist/web/components/form/select/year.d.ts +0 -7
  456. package/dist/web/components/form/switch/index.d.ts +0 -6
  457. package/dist/web/components/form/textarea/index.d.ts +0 -12
  458. package/dist/web/components/form/tips/index.d.ts +0 -8
  459. package/dist/web/components/form/uploader/index.d.ts +0 -3
  460. package/dist/web/components/form/uploader/uploader.h5.d.ts +0 -20
  461. package/dist/web/components/form/uploader/uploader.pc.d.ts +0 -30
  462. package/dist/web/components/form/uploaderFile/index.d.ts +0 -4
  463. package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +0 -23
  464. package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +0 -35
  465. package/dist/web/components/form/userOrgSelect/comTool.d.ts +0 -8
  466. package/dist/web/components/form/userOrgSelect/comTool.js +0 -102
  467. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +0 -19
  468. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +0 -4
  469. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +0 -155
  470. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +0 -2
  471. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.js +0 -17
  472. package/dist/web/components/form/userOrgSelect/getUserService.d.ts +0 -11
  473. package/dist/web/components/form/userOrgSelect/getUserService.js +0 -160
  474. package/dist/web/components/form/userOrgSelect/index.d.ts +0 -2
  475. package/dist/web/components/form/userOrgSelect/index.js +0 -17
  476. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +0 -824
  477. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +0 -27
  478. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +0 -278
  479. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +0 -9
  480. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.js +0 -273
  481. package/dist/web/components/form/userOrgSelect/utils.d.ts +0 -37
  482. package/dist/web/components/form/userOrgSelect/utils.js +0 -95
  483. package/dist/web/components/formdetail/index.d.ts +0 -31
  484. package/dist/web/components/graphicCard/index.d.ts +0 -47
  485. package/dist/web/components/image/image.d.ts +0 -9
  486. package/dist/web/components/image/index.d.ts +0 -13
  487. package/dist/web/components/index.d.ts +0 -50
  488. package/dist/web/components/link/index.d.ts +0 -24
  489. package/dist/web/components/listView/index.d.ts +0 -7
  490. package/dist/web/components/listView/interface.d.ts +0 -127
  491. package/dist/web/components/lottery/index.d.ts +0 -22
  492. package/dist/web/components/lottery/lotteryUtil.d.ts +0 -23
  493. package/dist/web/components/modal/index.d.ts +0 -17
  494. package/dist/web/components/modal/modal.h5.d.ts +0 -4
  495. package/dist/web/components/modal/modal.pc.d.ts +0 -3
  496. package/dist/web/components/navLayout/index.d.ts +0 -65
  497. package/dist/web/components/navigationBar/common.d.ts +0 -15
  498. package/dist/web/components/navigationBar/h5Menu.d.ts +0 -14
  499. package/dist/web/components/navigationBar/horizontalMenu.d.ts +0 -12
  500. package/dist/web/components/navigationBar/index.d.ts +0 -13
  501. package/dist/web/components/navigationBar/verticalMenu.d.ts +0 -13
  502. package/dist/web/components/phone/index.d.ts +0 -18
  503. package/dist/web/components/phoneCode/index.d.ts +0 -18
  504. package/dist/web/components/picker/datePicker.d.ts +0 -10
  505. package/dist/web/components/picker/picker.d.ts +0 -6
  506. package/dist/web/components/picker/timePicker.d.ts +0 -7
  507. package/dist/web/components/richText/const.d.ts +0 -1
  508. package/dist/web/components/richText/index.d.ts +0 -50
  509. package/dist/web/components/richTextView/index.d.ts +0 -7
  510. package/dist/web/components/scrollView/index.d.ts +0 -25
  511. package/dist/web/components/share/index.d.ts +0 -34
  512. package/dist/web/components/slot/index.d.ts +0 -6
  513. package/dist/web/components/swiper/index.d.ts +0 -24
  514. package/dist/web/components/tabs/index.d.ts +0 -13
  515. package/dist/web/components/tabs/tabs.h5.d.ts +0 -4
  516. package/dist/web/components/tabs/tabs.pc.d.ts +0 -3
  517. package/dist/web/components/text/index.d.ts +0 -15
  518. package/dist/web/components/uploaderFileView/index.d.ts +0 -10
  519. package/dist/web/components/uploaderView/index.d.ts +0 -17
  520. package/dist/web/components/userInfo/index.d.ts +0 -26
  521. package/dist/web/components/wedaVideo/index.d.ts +0 -17
  522. package/dist/web/index.d.ts +0 -8
  523. package/dist/web/utils/classnames.d.ts +0 -2
  524. package/dist/web/utils/console.d.ts +0 -3
  525. package/dist/web/utils/constant.d.ts +0 -23
  526. package/dist/web/utils/debounce.d.ts +0 -2
  527. package/dist/web/utils/getLocalCounter.d.ts +0 -1
  528. package/dist/web/utils/isObjectEqual.d.ts +0 -2
  529. package/dist/web/utils/loading-fallback.d.ts +0 -2
  530. package/dist/web/utils/lodash.d.ts +0 -1
  531. package/dist/web/utils/platform.d.ts +0 -28
  532. package/dist/web/utils/tcb.d.ts +0 -33
  533. package/dist/web/utils/tmap.d.ts +0 -3
  534. package/dist/web/utils/use-cloud-id-temp-url.d.ts +0 -1
  535. package/dist/web/utils/useSetState.d.ts +0 -1
  536. package/dist/web/utils/useSyncValue.d.ts +0 -4
  537. package/dist/web/utils/weui.d.ts +0 -1
@@ -0,0 +1,1240 @@
1
+ import React, { useMemo, useEffect, useRef, useImperativeHandle, useState, } from 'react';
2
+ import { Icon, Table, Button, Justify, Modal, message, TagSearchBox, useClassNames, Card, Row, Col, Checkbox, LoadingTip, Dropdown, List, Radio, Collapse, Form, } from 'tea-component';
3
+ import InfiniteScroll from 'react-infinite-scroll-component';
4
+ import { getColumns, isProcessHoldOrLocked, formatDataToXlsx, getSearchAttributes, filterCustomColumns, filterCustomFields, getFixedColumnSets, slotRender, } from './FieldRender';
5
+ import { FilterFieldsPanel } from './FilterFields';
6
+ import { SelectableBlock } from './SelectableBlock';
7
+ import { REL_DICT, CELL_CUSTOM_OPTION } from '../../utils/constant';
8
+ import { ImportFileModalByApi } from './ImportFileModalByApi';
9
+ import { ExportFileModalByApi } from './ExportFileModalByApi';
10
+ import { InOrOutRecordModeal } from './InOrOutRecordModeal';
11
+ import isObjectEqual from '../../utils/isObjectEqual';
12
+ import { useEnumContext } from '../../utils/hooks/context';
13
+ import { useSetState } from '../../utils/hooks/useSetState';
14
+ import { alertErrorMessage, isInIde, navigateToModelPage, usePlatform, } from '../../utils/platform';
15
+ import { callWedaApi, appCloudGetWedaUserId, getIsExitApi, } from '../../utils/tcb';
16
+ import { exportData } from '../../utils/file';
17
+ import { DataSource, getDataSourceByName, getPrimaryField, getDataSourceFieldsWithAuth, } from '../../utils/datasource';
18
+ import { getUuid, getFieldsTypeName } from '../../utils/tool';
19
+ import EmptyContent from '../emptyContent';
20
+ import './baseTable.css';
21
+ // eslint-disable-next-line prettier/prettier
22
+ const { sortable, radioable, selectable, pageable, autotip, injectable } = Table.addons;
23
+ /**
24
+ * 基础表格
25
+ */
26
+ export const BaseTable = (props) => {
27
+ const { selectedView = [], // 视图列表 列表
28
+ dbName, // 数据源 Name
29
+ fields: showFields = [], // 字段 schema 列表
30
+ tableAction = true, // 是否有操作按钮
31
+ tableSearch = true, // 是否有搜索栏
32
+ actionColumn = true, // 是否有操作列
33
+ enableCellCustomOption, // 是否显示插槽操作列(默认为undefined, 在编辑器中会通过boolean类型来判断显隐)
34
+ enableGlobalButton, // 是否显示插槽全局按钮(默认为undefined, 在编辑器中会通过boolean类型来判断显隐)
35
+ multipleSelect = true, // 是否多选
36
+ onSelectConfirm, // 表底是否有确认按钮,以及确认事件
37
+ onSelectCancel, // 表底是否有取消按钮,以及取消事件
38
+ defaultSearchValue, // 默认搜索条件,比如关联关系时默认 _id 搜索条件
39
+ defaultsSlectedKeys = [], // 默认选中的行
40
+ compId, // 组件ID
41
+ buttons, // 选区按钮集合
42
+ settings, // 操作列集合「试用于非插槽实现的操作列」
43
+ selectableBlockEvents, // 选区按钮事件对象
44
+ filterType = 'searchbox', // 搜索方式
45
+ filterFields, // 筛选字段
46
+ connectorParams: rawConnectorParams = {}, // API查询入参
47
+ isModel = true, // 数据源类型
48
+ connectorMethod, // API方法
49
+ isOrderBy, rowColor, // 背景色,可以是字符串或方法的引用
50
+ columnSets, // 动态列设置, array, 为 undefined 时表示不存在列管理,使用默认列值
51
+ slots, // 动态插槽, object
52
+ events, // 事件
53
+ outerRef, where: rawWhere, // 筛选条件
54
+ orderBy: defaultOrderBy, // 排序字段
55
+ orderType: defaultOrderType, // 排序方式
56
+ fixedFront, // 冻结首列至本列
57
+ fixedEnd, // 冻结本列至尾列
58
+ emptyText, // 空状态提示
59
+ } = props;
60
+ const connectorParams = rawConnectorParams && JSON.parse(JSON.stringify(rawConnectorParams));
61
+ const where = rawWhere && JSON.parse(JSON.stringify(rawWhere));
62
+ const connectorParamsRef = React.useRef({});
63
+ const selectedViewRef = React.useRef([]);
64
+ const whereRef = React.useRef(undefined);
65
+ const isViewTable = selectedView === null || selectedView === void 0 ? void 0 : selectedView.length; // 判断是新增还是存量用户
66
+ const isH5 = usePlatform() === 'h5'; // 响应式判定
67
+ const datasource = useMemo(() => new DataSource(dbName), [dbName]); // datasource 方法-模型
68
+ const { Margin } = useClassNames();
69
+ const chooseList = useRef([]);
70
+ const searchThrottleWait = useRef(0);
71
+ const [isInOrOutRecordModealVisible, setIsInOrOutRecordModealVisible] = useState(null);
72
+ const [isImportFileModalByApiVisible, setIsImportFileModalByApiVisible] = useState(false);
73
+ const [isExportFileModalByApiVisible, setIsExportFileModalByApiVisible] = useState(false);
74
+ const [getRecordParams, setGetRecordParams] = useState({
75
+ orderBy: undefined,
76
+ orderType: undefined,
77
+ where: {},
78
+ });
79
+ const fetchRef = useRef({ version: '' });
80
+ const { enumOptions } = useEnumContext();
81
+ // 搜索和分页参数
82
+ const [{ pageIndex = 1, pageSize, sort, selectedKeys, isLoading, searchValues, filterCollapse, cardList = [],
83
+ // 视图选择相关
84
+ selectedViewId = '', viewList = [], fields = isViewTable ? [] : showFields,
85
+ // 数据源名称
86
+ datasourceTitle, records, total, }, setState,] = useSetState({
87
+ sort: [],
88
+ pageIndex: 1,
89
+ pageSize: 10,
90
+ selectedKeys: defaultsSlectedKeys,
91
+ isLoading: true,
92
+ searchValues: undefined,
93
+ filterCollapse: true,
94
+ cardList: [],
95
+ pageableInfo: undefined,
96
+ records: [],
97
+ total: 0,
98
+ });
99
+ React.useMemo(() => {
100
+ if (!isModel) {
101
+ setState({
102
+ pageSize: (connectorParams === null || connectorParams === void 0 ? void 0 : connectorParams.pageSize) || 10,
103
+ pageIndex: (connectorParams === null || connectorParams === void 0 ? void 0 : connectorParams.pageNo) || 1,
104
+ });
105
+ }
106
+ }, [connectorParams === null || connectorParams === void 0 ? void 0 : connectorParams.pageSize, connectorParams === null || connectorParams === void 0 ? void 0 : connectorParams.pageNo, isModel]);
107
+ // 数据筛选条件
108
+ const whereList = () => {
109
+ try {
110
+ const resultList = [];
111
+ const groupLogic = {};
112
+ let firstGroupLogicTyp = 'and';
113
+ let groupLogicList = [];
114
+ if (Array.isArray(where) && (where === null || where === void 0 ? void 0 : where.length)) {
115
+ groupLogicList = where.map((item1, index1) => {
116
+ const item1Result = {};
117
+ const item1ResultList = [];
118
+ let secondGroupLogicTyp = 'and';
119
+ if (index1 === 1) {
120
+ // 每组之间统一取且/或,只有一组 groupLogic 默认值为 null
121
+ firstGroupLogicTyp = item1 === null || item1 === void 0 ? void 0 : item1.groupLogic;
122
+ }
123
+ if (Array.isArray(item1 === null || item1 === void 0 ? void 0 : item1.logicData)) {
124
+ item1.logicData.forEach((item2, index2) => {
125
+ const item2Result = {};
126
+ const rule = {};
127
+ if (index2 === 1) {
128
+ // 每组之间统一取且/或,只有一组 groupLogic 默认值为 null
129
+ secondGroupLogicTyp = item2 === null || item2 === void 0 ? void 0 : item2.logic;
130
+ }
131
+ let [rel, val] = [
132
+ REL_DICT[item2 === null || item2 === void 0 ? void 0 : item2.rel] || (item2 === null || item2 === void 0 ? void 0 : item2.rel),
133
+ item2 === null || item2 === void 0 ? void 0 : item2.value,
134
+ ];
135
+ // 去掉空字符串、undefined(接口不支持)、对象类型(接口不支持)
136
+ if (val === '' ||
137
+ val === undefined ||
138
+ Object.prototype.toString.call(val) === '[object Object]') {
139
+ console.error(`${item2 === null || item2 === void 0 ? void 0 : item2.key}筛选值为:${val},不符合查询条件,请检查绑定变量值是否正确`);
140
+ return;
141
+ }
142
+ if ('_begin_with' === rel) {
143
+ rel = 'regex';
144
+ val = `^${val}`;
145
+ }
146
+ if ('_exclude' === rel) {
147
+ rel = 'nsearch';
148
+ }
149
+ rule['$' + rel] = val;
150
+ item2Result[item2 === null || item2 === void 0 ? void 0 : item2.key] = rule;
151
+ item1ResultList.push(item2Result);
152
+ });
153
+ }
154
+ item1Result['$' + secondGroupLogicTyp] = item1ResultList;
155
+ return item1Result;
156
+ });
157
+ groupLogic['$' + firstGroupLogicTyp] = groupLogicList;
158
+ resultList.push(groupLogic);
159
+ return resultList;
160
+ }
161
+ return [];
162
+ }
163
+ catch (error) {
164
+ console.error('getWhereList error', error);
165
+ return [];
166
+ }
167
+ };
168
+ // 获取数据源名称
169
+ useEffect(() => {
170
+ async function getDataSourceName() {
171
+ const ds = await getDataSourceByName(dbName, isModel);
172
+ setState({
173
+ datasourceTitle: (ds === null || ds === void 0 ? void 0 : ds.title) || dbName,
174
+ });
175
+ }
176
+ getDataSourceName();
177
+ }, [dbName]);
178
+ // 查询子数据库数据
179
+ useEffect(() => {
180
+ if (!filterFields) {
181
+ return;
182
+ }
183
+ const FORMAT_FATHER_SON = 'father-son';
184
+ const FORMAT_RELATED = 'related';
185
+ const fatherSon = getDataBase(FORMAT_FATHER_SON);
186
+ const related = getDataBase(FORMAT_RELATED);
187
+ chooseList.current = [
188
+ {
189
+ format: FORMAT_FATHER_SON,
190
+ list: fatherSon,
191
+ },
192
+ {
193
+ format: FORMAT_RELATED,
194
+ list: related,
195
+ },
196
+ ];
197
+ }, []);
198
+ const getDataBase = (format) => {
199
+ const filter = filterFields.filter((item) => (item === null || item === void 0 ? void 0 : item.format) === format);
200
+ const data = filter === null || filter === void 0 ? void 0 : filter.map((item) => {
201
+ var _a, _b, _c;
202
+ const childDbName = (_a = item['x-parent']) === null || _a === void 0 ? void 0 : _a.parentDataSourceName;
203
+ const primaryColumn = (_c = (_b = item.parentDatasource) === null || _b === void 0 ? void 0 : _b.schema) === null || _c === void 0 ? void 0 : _c['x-primary-column'];
204
+ const childItem = {
205
+ childDbName,
206
+ primaryColumn,
207
+ };
208
+ return childItem;
209
+ });
210
+ return data;
211
+ };
212
+ const getViews = async (isControlAuth = true) => {
213
+ try {
214
+ const queryParams = {
215
+ action: 'DescribeRuntimeDataViewList',
216
+ data: { DatasourceName: dbName, GetColumnAuth: true },
217
+ };
218
+ const viewPropertiesQueryParams = {
219
+ action: 'DescribeRuntimeDataViewPropertiesList',
220
+ data: { DatasourceName: dbName },
221
+ };
222
+ const { ResourceCheckInfos } = await callWedaApi(queryParams);
223
+ const { Count, Rows } = await callWedaApi(viewPropertiesQueryParams);
224
+ if (Count) {
225
+ const selectedViewList = selectedView
226
+ .map((view) => Rows === null || Rows === void 0 ? void 0 : Rows.filter((item) => item.ViewId === view)[0])
227
+ .filter((item) => !!item);
228
+ const views = selectedViewList.map((item) => {
229
+ var _a, _b, _c, _d, _e;
230
+ item.text = item.ViewName;
231
+ item.value = item.ViewId;
232
+ item.fields = (_a = item === null || item === void 0 ? void 0 : item.Properties) === null || _a === void 0 ? void 0 : _a.map((itemProperties) => {
233
+ itemProperties = JSON.parse(itemProperties);
234
+ if (itemProperties && itemProperties['x-viewType']) {
235
+ // 关联模型字段
236
+ itemProperties.parentRelationRecordsName = itemProperties === null || itemProperties === void 0 ? void 0 : itemProperties.name;
237
+ itemProperties.name = `${itemProperties['x-parentRelationKey']}.${itemProperties['name']}`;
238
+ itemProperties.title = `${itemProperties['title']}(${itemProperties['x-dataSourceTitle']})`;
239
+ }
240
+ return itemProperties;
241
+ });
242
+ // 筛选条件
243
+ if (item.SearchConfig) {
244
+ item.SearchConfig = (_b = JSON.parse(item.SearchConfig)
245
+ .condition) === null || _b === void 0 ? void 0 : _b.filter((item) => item.IsQuery).map((item) => {
246
+ var _a, _b;
247
+ // 当规则为包含/不包含当前用户时,设计态无法获取当前用户uid需要 运行态主动获取
248
+ if (item.Rel === 'eq-current-user' ||
249
+ item.Rel === 'ne-current-user') {
250
+ item.Val =
251
+ (appCloudGetWedaUserId === null || appCloudGetWedaUserId === void 0 ? void 0 : appCloudGetWedaUserId()) ||
252
+ ((_b = (_a = window === null || window === void 0 ? void 0 : window._WedaHostConfig) === null || _a === void 0 ? void 0 : _a.wedaUser) === null || _b === void 0 ? void 0 : _b.userId);
253
+ }
254
+ return {
255
+ Key: item.Key,
256
+ Rel: item.Rel,
257
+ Val: item.Val,
258
+ };
259
+ });
260
+ }
261
+ // 数据查询支持复杂条件改造新增 ConditionConfig 查询字段
262
+ if (item.ConditionConfig) {
263
+ item.ConditionConfig = {
264
+ ...JSON.parse((item === null || item === void 0 ? void 0 : item.ConditionConfig) || '{}'),
265
+ };
266
+ }
267
+ // 排序
268
+ const sortItem = (_c = item.fields) === null || _c === void 0 ? void 0 : _c.filter((item) => item['x-sortable'])[0];
269
+ if (sortItem) {
270
+ item.sortItem = {
271
+ orderBy: sortItem.name,
272
+ orderType: sortItem['x-defaultSort'],
273
+ };
274
+ }
275
+ // 根据x-layoutShow显示隐藏
276
+ item.fields = (_d = item.fields) === null || _d === void 0 ? void 0 : _d.filter((item) => item['x-layoutShow'] === true).sort((a, b) => a['x-index'] - b['x-index']);
277
+ if (isControlAuth) {
278
+ // 设置字段权限,关联模型字段权限,接口没返回暂不进行校验:['x-viewType']
279
+ item.fields = (_e = getDataSourceFieldsWithAuth(item.fields, ResourceCheckInfos)) === null || _e === void 0 ? void 0 : _e.filter((value) => value.readWriteAuth === 'rw' || value.readWriteAuth === 'r');
280
+ }
281
+ return item;
282
+ });
283
+ setState({
284
+ viewList: views,
285
+ fields: views[0].fields,
286
+ selectedViewId: views[0].ViewId,
287
+ });
288
+ }
289
+ }
290
+ catch (err) {
291
+ console.error('err getViews', err);
292
+ }
293
+ };
294
+ // 兼容私有环境,新接口不存在的情况,产品策略完善后移除
295
+ const getViewsCompatibleProvite = async () => {
296
+ try {
297
+ const queryParams = {
298
+ action: 'DescribeRuntimeDataViewList',
299
+ data: { DatasourceName: dbName, GetColumnAuth: true },
300
+ };
301
+ const { Count, Rows } = await callWedaApi(queryParams);
302
+ if (Count) {
303
+ const selectedViewList = selectedView
304
+ .map((view) => Rows.filter((item) => item.ViewId === view)[0])
305
+ .filter((item) => !!item);
306
+ const views = selectedViewList.map((item) => {
307
+ var _a, _b, _c, _d;
308
+ item.text = item.ViewName;
309
+ item.value = item.ViewId;
310
+ // 主模型字段
311
+ const schemaProperties = JSON.parse(item.Schema).properties;
312
+ item.fields = (_a = Object.keys(schemaProperties)) === null || _a === void 0 ? void 0 : _a.map((key) => ({
313
+ name: key,
314
+ ...schemaProperties[key],
315
+ }));
316
+ // 筛选条件
317
+ if (item.SearchConfig) {
318
+ item.SearchConfig = (_b = JSON.parse(item.SearchConfig)
319
+ .condition) === null || _b === void 0 ? void 0 : _b.filter((item) => item.IsQuery).map((item) => {
320
+ var _a, _b;
321
+ // 当规则为包含/不包含当前用户时,设计态无法获取当前用户uid需要 运行态主动获取
322
+ if (item.Rel === 'eq-current-user' ||
323
+ item.Rel === 'ne-current-user') {
324
+ item.Val =
325
+ (appCloudGetWedaUserId === null || appCloudGetWedaUserId === void 0 ? void 0 : appCloudGetWedaUserId()) ||
326
+ ((_b = (_a = window === null || window === void 0 ? void 0 : window._WedaHostConfig) === null || _a === void 0 ? void 0 : _a.wedaUser) === null || _b === void 0 ? void 0 : _b.userId);
327
+ }
328
+ return {
329
+ Key: item.Key,
330
+ Rel: item.Rel,
331
+ Val: item.Val,
332
+ };
333
+ });
334
+ }
335
+ // 数据查询支持复杂条件改造新增 ConditionConfig 查询字段
336
+ if (item.ConditionConfig) {
337
+ item.ConditionConfig = {
338
+ ...JSON.parse((item === null || item === void 0 ? void 0 : item.ConditionConfig) || '{}'),
339
+ };
340
+ }
341
+ // 排序
342
+ const sortItem = (_c = item.fields) === null || _c === void 0 ? void 0 : _c.filter((item) => item === null || item === void 0 ? void 0 : item['x-sortable'])[0];
343
+ if (sortItem) {
344
+ item.sortItem = {
345
+ orderBy: sortItem.name,
346
+ orderType: sortItem['x-defaultSort'],
347
+ };
348
+ }
349
+ // 根据x-layoutShow显示隐藏
350
+ item.fields = (_d = item.fields) === null || _d === void 0 ? void 0 : _d.filter((item) => item['x-layoutShow'] === true).sort((a, b) => a['x-index'] - b['x-index']);
351
+ return item;
352
+ });
353
+ setState({
354
+ viewList: views,
355
+ fields: views[0].fields,
356
+ selectedViewId: views[0].ViewId,
357
+ });
358
+ }
359
+ }
360
+ catch (err) {
361
+ console.error('err getViews', err);
362
+ }
363
+ };
364
+ // 获取视图列表
365
+ useEffect(() => {
366
+ const getViewsList = async () => {
367
+ if (!isModel)
368
+ return;
369
+ if (!isObjectEqual(selectedViewRef.current, selectedView)) {
370
+ if (selectedView.length === 0) {
371
+ setState({ fields: showFields });
372
+ }
373
+ else {
374
+ // 兼容私有环境,新接口不存在的情况,产品策略完善后移除
375
+ if (window === null || window === void 0 ? void 0 : window._isPrivate) {
376
+ const describeRuntimeDataViewPropertiesListStatus = await getIsExitApi({
377
+ action: 'DescribeRuntimeDataViewPropertiesList',
378
+ data: { DatasourceName: dbName },
379
+ });
380
+ // 私有环境DescribeRuntimeDataViewPropertiesList接口存在,可以展示关联模型字,同时兼容权限不存在
381
+ describeRuntimeDataViewPropertiesListStatus
382
+ ? getViews()
383
+ : getViewsCompatibleProvite();
384
+ }
385
+ else {
386
+ getViews();
387
+ }
388
+ }
389
+ selectedViewRef.current = selectedView;
390
+ }
391
+ };
392
+ getViewsList();
393
+ }, [dbName, selectedView, isModel]);
394
+ // 视图变化再次请求
395
+ useEffect(() => {
396
+ if (!selectedViewId)
397
+ return;
398
+ const selectedView = viewList.filter((item) => item.ViewId === selectedViewId)[0];
399
+ if (!selectedView) {
400
+ setState({ isLoading: false });
401
+ return;
402
+ }
403
+ setState({ fields: selectedView.fields });
404
+ fetchData({ pageNo: pageIndex, pageSize });
405
+ }, [selectedViewId]);
406
+ useEffect(() => {
407
+ // 小屏时默认收起
408
+ setState({ filterCollapse: !isH5 });
409
+ fetchData({ pageNo: pageIndex, pageSize });
410
+ }, [isH5]);
411
+ // 筛选条件变化时候请求
412
+ useEffect(() => {
413
+ if (!isObjectEqual(whereRef.current, where)) {
414
+ fetchData({ pageNo: pageIndex, pageSize });
415
+ whereRef.current = where;
416
+ }
417
+ }, [where]);
418
+ useEffect(() => {
419
+ if (connectorParams &&
420
+ !isObjectEqual(connectorParamsRef.current, connectorParams)) {
421
+ fetchData({ pageNo: pageIndex, pageSize });
422
+ connectorParamsRef.current = connectorParams;
423
+ }
424
+ }, [connectorParams]);
425
+ // 移动端和自定义APIs场景不支持导入功能,监听变化存到表格上下文中
426
+ useEffect(() => {
427
+ handleContext({ state: { isH5, isModel } });
428
+ }, [isH5, isModel]);
429
+ useEffect(() => {
430
+ fetchData();
431
+ }, [sort, defaultOrderBy, defaultOrderType, isViewTable]);
432
+ // 查询子系数据库
433
+ const getChooseList = async (params) => {
434
+ var _a, _b, _c, _d, _e;
435
+ const child = (_b = (_a = chooseList.current) === null || _a === void 0 ? void 0 : _a.find((child) => child.format === params.format)) === null || _b === void 0 ? void 0 : _b.list.find((item) => item.childDbName === params.childDbName);
436
+ if (!child)
437
+ return;
438
+ // 删除标识,请求参数没该数据
439
+ delete params.format;
440
+ delete params.childDbName;
441
+ const { childDbName, primaryColumn } = child;
442
+ if (Array.isArray(params.where)) {
443
+ params.where = params.where.map((item) => {
444
+ return { ...item, key: primaryColumn };
445
+ });
446
+ searchThrottleWait.current = 1000;
447
+ }
448
+ else {
449
+ searchThrottleWait.current = 0;
450
+ }
451
+ const data = await datasource.getRecordList(params, childDbName);
452
+ const relData = (_d = (_c = data === null || data === void 0 ? void 0 : data.records) === null || _c === void 0 ? void 0 : _c.filter((item) => primaryColumn in item)) === null || _d === void 0 ? void 0 : _d.map((childItem) => ({
453
+ value: childItem._id,
454
+ text: childItem[primaryColumn].length === 0
455
+ ? childItem._id
456
+ : childItem[primaryColumn],
457
+ }));
458
+ return {
459
+ data: relData,
460
+ size: ((_e = data === null || data === void 0 ? void 0 : data.records) === null || _e === void 0 ? void 0 : _e.length) || 0,
461
+ };
462
+ };
463
+ // 搜索和分页事件
464
+ const fetchData = async (params = {}) => {
465
+ var _a, _b, _c, _d, _e;
466
+ try {
467
+ const fetchVersion = (fetchRef.current.version = getUuid());
468
+ // h5模式下,查询收起filter,清空选中状态
469
+ if (isH5) {
470
+ setState({ filterCollapse: false, selectedKeys: [] });
471
+ }
472
+ // H5端加载等待状态
473
+ setState({ isLoading: true });
474
+ const { searchValues, pageNo = 1, empty = true, pageSize = 10 } = params;
475
+ // 分页
476
+ let queryParams = { pageSize, pageNo };
477
+ let viewed, data;
478
+ let SearchConfig = [];
479
+ let ConditionConfig = {};
480
+ // 区分是否模型逻辑
481
+ if (isModel) {
482
+ if (isViewTable) {
483
+ viewed = viewList === null || viewList === void 0 ? void 0 : viewList.filter((item) => item.ViewId === selectedViewId)[0];
484
+ // 视图筛选条件
485
+ SearchConfig = viewed === null || viewed === void 0 ? void 0 : viewed.SearchConfig;
486
+ ConditionConfig = viewed === null || viewed === void 0 ? void 0 : viewed.ConditionConfig;
487
+ }
488
+ // 首次加载,属性区配置了视图,但数据源接口还未获取到全部视图配置
489
+ if (isViewTable && !viewed)
490
+ return;
491
+ // 搜索
492
+ const wList = whereList();
493
+ if (searchValues !== undefined ||
494
+ defaultSearchValue !== undefined ||
495
+ SearchConfig !== undefined ||
496
+ ConditionConfig !== undefined ||
497
+ wList !== undefined) {
498
+ queryParams.where = [
499
+ ...(searchValues || []),
500
+ ...(defaultSearchValue || []),
501
+ ...(SearchConfig || []),
502
+ ...(wList || []),
503
+ ConditionConfig,
504
+ ];
505
+ }
506
+ // 如果设计态存在排序条件
507
+ if (viewed === null || viewed === void 0 ? void 0 : viewed.sortItem) {
508
+ queryParams.orderBy = (_a = viewed === null || viewed === void 0 ? void 0 : viewed.sortItem) === null || _a === void 0 ? void 0 : _a.orderBy;
509
+ queryParams.orderType = (_b = viewed === null || viewed === void 0 ? void 0 : viewed.sortItem) === null || _b === void 0 ? void 0 : _b.orderType;
510
+ }
511
+ // 存在排序属性配置
512
+ if (!isViewTable && defaultOrderBy && defaultOrderType) {
513
+ queryParams.orderBy = defaultOrderBy;
514
+ queryParams.orderType = defaultOrderType;
515
+ }
516
+ // 运行态主动排序进行覆盖
517
+ if ((sort === null || sort === void 0 ? void 0 : sort.length) && sort[0].order) {
518
+ queryParams.orderBy = sort[0].by;
519
+ queryParams.orderType = sort[0].order;
520
+ }
521
+ setGetRecordParams(queryParams);
522
+ data = await datasource.getRecordList(queryParams);
523
+ }
524
+ else {
525
+ // 搜索
526
+ if (defaultSearchValue !== undefined) {
527
+ queryParams.where = [...(defaultSearchValue || [])];
528
+ }
529
+ // API排序
530
+ if (isOrderBy && (sort === null || sort === void 0 ? void 0 : sort.length) && sort[0].order) {
531
+ queryParams.orderBy = sort[0].by;
532
+ queryParams.orderType = sort[0].order;
533
+ }
534
+ queryParams = Object.assign({}, connectorParams, queryParams);
535
+ setGetRecordParams(queryParams);
536
+ data = await datasource.getConnect(connectorMethod, queryParams);
537
+ }
538
+ if (fetchVersion !== fetchRef.current.version)
539
+ return;
540
+ data.records =
541
+ ((_c = data === null || data === void 0 ? void 0 : data.records) === null || _c === void 0 ? void 0 : _c.map((item) => {
542
+ const temp = getPrimaryField(item);
543
+ return { ...temp };
544
+ })) || [];
545
+ // 关联模型字段
546
+ const relationViewsFields = (_d = viewed === null || viewed === void 0 ? void 0 : viewed.fields) === null || _d === void 0 ? void 0 : _d.filter((item) => item['x-viewType']);
547
+ if ((relationViewsFields === null || relationViewsFields === void 0 ? void 0 : relationViewsFields.length) > 0) {
548
+ data.records = data.records.map((item) => {
549
+ relationViewsFields.forEach((_viewFields) => {
550
+ var _a, _b;
551
+ const parentRelationRecord = (_b = (_a = item[_viewFields['x-parentRelationKey']]) === null || _a === void 0 ? void 0 : _a.v1) === null || _b === void 0 ? void 0 : _b.record;
552
+ item[_viewFields.name] = parentRelationRecord
553
+ ? parentRelationRecord[_viewFields === null || _viewFields === void 0 ? void 0 : _viewFields.parentRelationRecordsName]
554
+ : '';
555
+ });
556
+ return item;
557
+ });
558
+ }
559
+ data = { total: 0, records: [], ...data };
560
+ // 小屏列表更新
561
+ if (data.total && ((_e = data.records) === null || _e === void 0 ? void 0 : _e.length) > 0) {
562
+ // empty :是否清空列表
563
+ if (empty) {
564
+ setState(() => ({ cardList: data.records }));
565
+ }
566
+ else {
567
+ setState((pre) => ({ cardList: [...pre.cardList, ...data.records] }));
568
+ }
569
+ }
570
+ else {
571
+ setState({ cardList: [] });
572
+ }
573
+ handleContext({
574
+ state: { pageNo, pageSize, total: data.total },
575
+ records: data.records,
576
+ });
577
+ events === null || events === void 0 ? void 0 : events.querySuccess({ data: Object.assign({}, data, queryParams) });
578
+ setState({
579
+ isLoading: false,
580
+ searchValues,
581
+ pageIndex: pageNo,
582
+ pageSize,
583
+ records: data.records,
584
+ total: data.total,
585
+ });
586
+ }
587
+ catch (e) {
588
+ alertErrorMessage({ message: `加载数据错误 ${e.message}` });
589
+ setState({ isLoading: false });
590
+ }
591
+ };
592
+ // 删除数据事件
593
+ const deleteRecord = async (keys) => {
594
+ try {
595
+ if (!isModel) {
596
+ return alertErrorMessage({
597
+ message: '当前表格组件绑定了APIs,暂不支持进行数据删除',
598
+ });
599
+ }
600
+ if (!(keys === null || keys === void 0 ? void 0 : keys.length) && !(selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.length)) {
601
+ alertErrorMessage({ message: '请选择需要删除的记录' });
602
+ return;
603
+ }
604
+ const msg = !(keys === null || keys === void 0 ? void 0 : keys.length) && (selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.length)
605
+ ? '确认删除选定的条目?'
606
+ : '确认删除此条目?';
607
+ const modal = Modal.show({
608
+ className: 'modal-table-delete',
609
+ caption: '操作确认',
610
+ onClose: () => modal.destroy(),
611
+ children: (React.createElement(React.Fragment, null,
612
+ React.createElement("div", null, msg),
613
+ React.createElement(Modal.Footer, null,
614
+ React.createElement(Button, { type: "primary", onClick: async () => {
615
+ try {
616
+ modal.destroy();
617
+ message.loading({
618
+ content: '删除数据中',
619
+ });
620
+ await datasource.batchDeleteRecord(keys || selectedKeys);
621
+ // 清除选中的 key
622
+ setState({
623
+ selectedKeys: [],
624
+ });
625
+ // 重新加载数据
626
+ fetchData(pageSize);
627
+ message.success({ content: '删除数据成功' });
628
+ }
629
+ catch (error) {
630
+ console.error('删除', error);
631
+ alertErrorMessage({
632
+ message: `删除数据失败: ${error.message}`,
633
+ });
634
+ }
635
+ } }, "\u786E\u8BA4")))),
636
+ });
637
+ }
638
+ catch (e) {
639
+ alertErrorMessage({ message: `删除数据失败: ${e.message}` });
640
+ }
641
+ };
642
+ useImperativeHandle(outerRef, () => ({
643
+ methods: {
644
+ deleteOne: (params) => {
645
+ const keys = [];
646
+ const { id } = params;
647
+ if (id) {
648
+ keys.push(id);
649
+ }
650
+ deleteRecord(keys);
651
+ },
652
+ // 删除选中数据
653
+ deleteSelected: () => deleteRecord(),
654
+ // 导入
655
+ import: () => importHandleByApi(),
656
+ // 导出
657
+ export: () => exportHandle(),
658
+ // 后端导出
659
+ exportOptionalMode: () => exportHandleByApi(),
660
+ refresh: () => fetchData({ searchValues, pageSize, pageNo: 1 }),
661
+ // 刷新表格(查看当前页数据)
662
+ refreshKeepPage: () => fetchData({ searchValues, pageSize, pageNo: pageIndex }),
663
+ },
664
+ }));
665
+ // 表格选中事件
666
+ const handleRowsSelect = (keys) => {
667
+ if (events === null || events === void 0 ? void 0 : events.rowsSelect) {
668
+ const selectedData = records.filter((_) => keys.find((key) => _._id === key));
669
+ events.rowsSelect(selectedData);
670
+ handleContext({ keys });
671
+ }
672
+ };
673
+ // 表格更改上下文数据
674
+ const handleContext = ({ state = {}, keys: _keys, records: _records } = {}) => {
675
+ // 表格上下文
676
+ if (typeof (events === null || events === void 0 ? void 0 : events.onDataChange) === 'function') {
677
+ _keys = [].concat(_keys || selectedKeys);
678
+ _records = [].concat(_records || records);
679
+ const selectedRecords = _records.filter((_) => _keys.find((key) => _._id === key));
680
+ events.onDataChange({
681
+ data: _records,
682
+ state: {
683
+ total,
684
+ pageNo: pageIndex,
685
+ pageSize,
686
+ selectedRecords,
687
+ isModel,
688
+ isH5,
689
+ ...state,
690
+ },
691
+ });
692
+ }
693
+ };
694
+ // table 插件
695
+ const tableAddons = [
696
+ // 排序
697
+ isOrderBy
698
+ ? sortable({
699
+ value: sort,
700
+ columns: fields
701
+ .filter((field) => field.type !== 'array' &&
702
+ field.type !== 'object' &&
703
+ !(field === null || field === void 0 ? void 0 : field.name.includes('@')))
704
+ .map((_) => _.name),
705
+ onChange: (value, context) => {
706
+ setState({
707
+ sort: [context.sort],
708
+ });
709
+ },
710
+ })
711
+ : sortable({
712
+ value: sort,
713
+ columns: [],
714
+ }),
715
+ // 分页
716
+ pageable({
717
+ pageIndex: pageIndex || 1,
718
+ pageSize: pageSize || 10,
719
+ recordCount: total,
720
+ onPagingChange: (query) => {
721
+ fetchData({
722
+ ...query,
723
+ pageNo: query.pageIndex,
724
+ pageSize: query.pageSize,
725
+ searchValues,
726
+ });
727
+ },
728
+ }),
729
+ // 行选择
730
+ multipleSelect
731
+ ? selectable({
732
+ value: selectedKeys,
733
+ onChange: (keys) => {
734
+ setState({ selectedKeys: keys });
735
+ handleRowsSelect(keys);
736
+ },
737
+ render: (element, { disabled }) => disabled ? React.createElement(Icon, { type: "loading" }) : element,
738
+ targetColumnKey: fixedFront ? 'weda_select' : undefined,
739
+ })
740
+ : radioable({
741
+ value: selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys[0],
742
+ onChange: (key) => setState({
743
+ selectedKeys: [key],
744
+ }),
745
+ rowSelect: true,
746
+ render: (element, { disabled }) => disabled ? React.createElement(Icon, { type: "loading" }) : element,
747
+ targetColumnKey: fixedFront ? 'weda_select' : undefined,
748
+ }),
749
+ // 加载、错误信息提示
750
+ autotip({
751
+ isLoading,
752
+ emptyText: emptyText && (React.createElement(EmptyContent, { emptyText: emptyText, component: "table" })),
753
+ // isError: Boolean(tableError),
754
+ // isFound: Boolean(searchKeyword),
755
+ onClear: () => {
756
+ setState({ searchKeyword: '' });
757
+ // handleSearchData({}, '');
758
+ },
759
+ onRetry: () => {
760
+ fetchData();
761
+ },
762
+ foundKeyword: '',
763
+ }),
764
+ // 行背景色
765
+ injectable({
766
+ row: (props, context) => ({
767
+ style: {
768
+ background: rowColor
769
+ ? typeof rowColor === 'function'
770
+ ? rowColor({ event: { detail: context }, data: props })
771
+ : `${rowColor}`
772
+ : undefined,
773
+ },
774
+ className: rowColor ? 'modal-table-rowcolor' : '',
775
+ }),
776
+ }),
777
+ ];
778
+ const settingsMap = {
779
+ retrieve: (e, { dbName, recordkey }) => {
780
+ if (isInIde()) {
781
+ return alertErrorMessage({
782
+ message: '请开启“实时真实预览”后,再进行查看操作',
783
+ });
784
+ }
785
+ navigateToModelPage('detail', {
786
+ dbName,
787
+ id: recordkey,
788
+ });
789
+ },
790
+ edit: (e, { dbName, recordkey }) => {
791
+ if (isInIde()) {
792
+ return alertErrorMessage({
793
+ message: '请开启“实时真实预览”后,再进行查看操作',
794
+ });
795
+ }
796
+ navigateToModelPage('update', {
797
+ dbName,
798
+ id: recordkey,
799
+ });
800
+ },
801
+ del: (e, { recordkey }) => deleteRecord([recordkey]),
802
+ };
803
+ const BlockButton = ({ props, index, record, recordkey }) => (React.createElement(SelectableBlock, { ...props, component: "Button", blockKey: "settings", index: index, disabled: props.action === 'edit' || props.action === 'del'
804
+ ? props.disabled ||
805
+ isProcessHoldOrLocked(record['!!Weda!!ProcessHold'], record['!!Weda!!LOCK'])
806
+ : props.disabled, compId: compId, exportValue: { record, recordKey: recordkey }, actionMap: settingsMap, actionParams: { dbName, recordkey }, selectableBlockEvents: selectableBlockEvents }));
807
+ // 搜索框字段按列管理过滤
808
+ const searchFields = filterCustomFields({ fields, columnSets });
809
+ // 导出字段按列管理过滤,不过滤自定义列,自定义列只导出映射字段值
810
+ const exportFields = filterCustomFields({
811
+ fields,
812
+ columnSets,
813
+ isFilterGenre: true,
814
+ });
815
+ // 表格 columns
816
+ const columns = useMemo(() => {
817
+ const defaultColumns = getColumns(fields, isH5);
818
+ const fixedColumnSets = getFixedColumnSets({
819
+ fixedFront,
820
+ fixedEnd,
821
+ columnSets,
822
+ });
823
+ const baseColumns = filterCustomColumns({
824
+ columns: defaultColumns,
825
+ columnSets: fixedColumnSets,
826
+ slots,
827
+ });
828
+ // 插入选择项列,进行冻结联动
829
+ !isH5 && fixedFront && fixedFront.length > 0
830
+ ? baseColumns.unshift({
831
+ key: 'weda_select',
832
+ header: null,
833
+ width: 30,
834
+ fixed: 'left',
835
+ })
836
+ : null;
837
+ // 操作列
838
+ if (actionColumn &&
839
+ (settings === null || settings === void 0 ? void 0 : settings.length) > 0 &&
840
+ enableCellCustomOption === undefined) {
841
+ // 展示非插槽操作列
842
+ baseColumns.push({
843
+ key: '_ope',
844
+ width: 150,
845
+ header: '操作',
846
+ align: 'left',
847
+ fixed: 'right',
848
+ render: (record, recordkey) => !isInIde() ? (React.createElement(React.Fragment, null, settings === null || settings === void 0 ? void 0 :
849
+ settings.map((props, index) => index < 3 && (React.createElement(BlockButton, { key: index, props: props, index: index, record: record, recordkey: recordkey }))),
850
+ settings.length > 3 && (React.createElement(Dropdown, { boxStyle: {
851
+ minWidth: '80px',
852
+ }, overlayStyle: { zIndex: 998 }, className: "adminPortal_dropdown", clickClose: false, button: "\u66F4\u591A", appearance: "link", placement: "bottom" },
853
+ React.createElement(List, { type: "option" }, settings === null || settings === void 0 ? void 0 : settings.map((props, index) => index > 2 &&
854
+ props.show && (React.createElement(List.Item, { key: index },
855
+ React.createElement(BlockButton, { props: props, index: index, record: record, recordkey: recordkey }))))))))) : (settings === null || settings === void 0 ? void 0 : settings.map((props, index) => (React.createElement(SelectableBlock, { key: index, ...props, component: "Button", blockKey: "settings", index: index, disabled: props.action === 'edit' || props.action === 'del'
856
+ ? props.disabled ||
857
+ isProcessHoldOrLocked(record['!!Weda!!ProcessHold'], record['!!Weda!!LOCK'])
858
+ : props.disabled, compId: compId, exportValue: { record, recordKey: recordkey }, actionMap: settingsMap, actionParams: { dbName, recordkey }, selectableBlockEvents: selectableBlockEvents })))),
859
+ });
860
+ }
861
+ else if (enableCellCustomOption) {
862
+ // 展示插槽操作列
863
+ baseColumns.push({
864
+ key: 'button',
865
+ header: '操作',
866
+ width: 150,
867
+ align: 'left',
868
+ fixed: 'right',
869
+ render: (record, rowKey, recordIndex, column, columnIndex) => slotRender(slots[CELL_CUSTOM_OPTION], {
870
+ record,
871
+ rowKey,
872
+ recordIndex,
873
+ column,
874
+ columnIndex,
875
+ }),
876
+ });
877
+ }
878
+ return baseColumns;
879
+ }, [fields, actionColumn, dbName, isH5, columnSets, slots]);
880
+ /**
881
+ * 表格底部,表格弹窗的确定和取消
882
+ */
883
+ const renderFooter = () => (onSelectConfirm || onSelectCancel) && (React.createElement("div", { className: isH5
884
+ ? 'adaptation-table__footer modal-table__footer'
885
+ : ' modal-table__footer' },
886
+ onSelectConfirm && (React.createElement(Button, { type: "primary", className: "adaptation-table__footer-btn", onClick: () => {
887
+ if (!(selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.length)) {
888
+ return alertErrorMessage({ message: '请选择记录' });
889
+ }
890
+ if (!multipleSelect && (selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.length) > 1) {
891
+ return alertErrorMessage({ message: '仅允许选择一条记录' });
892
+ }
893
+ const keys = multipleSelect
894
+ ? selectedKeys
895
+ : records.find((item) => item._id === selectedKeys[0]);
896
+ onSelectConfirm === null || onSelectConfirm === void 0 ? void 0 : onSelectConfirm(keys);
897
+ } }, "\u786E\u8BA4")),
898
+ onSelectCancel && (React.createElement(Button, { className: "adaptation-table__footer-btn", onClick: () => {
899
+ onSelectCancel === null || onSelectCancel === void 0 ? void 0 : onSelectCancel();
900
+ } }, "\u53D6\u6D88"))));
901
+ /**
902
+ * 后端表格导入方法
903
+ */
904
+ const importHandleByApi = () => {
905
+ if (!isModel) {
906
+ return alertErrorMessage({
907
+ message: '当前表格组件绑定了APIs,暂不支持进行数据导入',
908
+ });
909
+ }
910
+ if (isH5) {
911
+ return alertErrorMessage({
912
+ message: '移动端暂不支持进行数据导入',
913
+ });
914
+ }
915
+ setIsImportFileModalByApiVisible(true);
916
+ };
917
+ /**
918
+ * 后端表格导出方法
919
+ */
920
+ const exportHandleByApi = () => {
921
+ if (!isModel) {
922
+ return alertErrorMessage({
923
+ message: '当前表格组件绑定了APIs,暂不支持进行数据导出',
924
+ });
925
+ }
926
+ if (isH5) {
927
+ return alertErrorMessage({
928
+ message: '移动端暂不支持进行数据导出',
929
+ });
930
+ }
931
+ setIsExportFileModalByApiVisible(true);
932
+ };
933
+ /**
934
+ * 表格导出方法
935
+ */
936
+ const exportHandle = () => {
937
+ if (!selectedKeys.length) {
938
+ return alertErrorMessage({
939
+ message: '请选择需要导出的数据',
940
+ });
941
+ }
942
+ const selectedData = records.filter((_) => selectedKeys.find((key) => _._id === key));
943
+ const selectedDataTrans = formatDataToXlsx(selectedData, exportFields, enumOptions);
944
+ exportData(selectedDataTrans, 'xlsx', datasourceTitle);
945
+ };
946
+ /**
947
+ * 表格按钮选区默认事件
948
+ */
949
+ const actionMap = {
950
+ create: () => {
951
+ if (isInIde()) {
952
+ return alertErrorMessage({
953
+ message: '请开启“实时真实预览”后,再进行新建操作',
954
+ });
955
+ }
956
+ navigateToModelPage('create', {
957
+ dbName,
958
+ });
959
+ },
960
+ del: () => deleteRecord(),
961
+ export: () => exportHandle(),
962
+ import: () => importHandleByApi(),
963
+ };
964
+ /**
965
+ * 表格按钮选区默认事件参数
966
+ */
967
+ const exportValue = {
968
+ selectedKeys,
969
+ records, // 查询记录
970
+ };
971
+ // 左上角按钮
972
+ const renderButtons = () => {
973
+ // 展示插槽全局按钮
974
+ if (enableGlobalButton) {
975
+ return slotRender(slots.globalButton);
976
+ }
977
+ else if (enableGlobalButton === undefined) {
978
+ // 移动端和自定义APIs场景不支持导入功能
979
+ const buttonsList = isH5 || !isModel
980
+ ? buttons.filter((i) => i.action !== 'import')
981
+ : buttons;
982
+ return (buttonsList &&
983
+ buttonsList.map((props, index) => (React.createElement(SelectableBlock, { key: index, ...props, style: { marginBottom: '8px', marginRight: '10px', ...props.style }, component: "Button", blockKey: "buttons", index: index, compId: compId, exportValue: exportValue, actionMap: actionMap, selectableBlockEvents: selectableBlockEvents }))));
984
+ }
985
+ };
986
+ /**
987
+ * 右上角搜索
988
+ */
989
+ const renderSearch = () => (React.createElement("div", { className: "modal-table__search" },
990
+ React.createElement(TagSearchBox, { className: "modal-table__search-input", hideHelp: true, minWidth: 400, tips: searchValues ? '' : '搜索', attributesSelectTips: "\u9009\u62E9\u8FDB\u884C\u641C\u7D22\u7684\u5B57\u6BB5", attributes: getSearchAttributes(searchFields), onClearButtonClick: () => fetchData(), onChange: (tags) => {
991
+ const searchValues = tags
992
+ .map((item) => {
993
+ var _a, _b, _c;
994
+ // 没有选择 key
995
+ if (!item.attr) {
996
+ alertErrorMessage({ message: '请选择搜索关键字' });
997
+ return null;
998
+ }
999
+ const { key } = item.attr;
1000
+ let val = ((_a = item.values[0]) === null || _a === void 0 ? void 0 : _a.key) === undefined
1001
+ ? (_b = item.values[0]) === null || _b === void 0 ? void 0 : _b.name
1002
+ : (_c = item.values[0]) === null || _c === void 0 ? void 0 : _c.key;
1003
+ let rel = 'search';
1004
+ // 过滤无效搜索值
1005
+ if (val === undefined) {
1006
+ return null;
1007
+ }
1008
+ // 字符串转换成数字
1009
+ if (item.attr.fieldType === 'number') {
1010
+ val = Number(val);
1011
+ }
1012
+ // 枚举-旧/数字/布尔用 eq,新枚举 TODO
1013
+ if (['number', 'boolean'].includes(item.attr.fieldType) ||
1014
+ item.attr.format === 'x-enum') {
1015
+ rel = 'eq';
1016
+ }
1017
+ return { key, val, rel };
1018
+ })
1019
+ .filter((item) => item);
1020
+ fetchData({ searchValues });
1021
+ } }),
1022
+ React.createElement(Button, { className: Margin.Left['2n'], icon: "refresh", title: "\u5237\u65B0", onClick: async () => fetchData({ searchValues }) })));
1023
+ /**
1024
+ * H5的全选
1025
+ */
1026
+ const renderH5CheckboxAll = () => multipleSelect && (React.createElement(Checkbox, { value: cardList.length !== 0 && selectedKeys.length === cardList.length, onChange: (value) => {
1027
+ if (value) {
1028
+ const userKeys = cardList.map((item) => item._id);
1029
+ setState({
1030
+ selectedKeys: userKeys,
1031
+ });
1032
+ }
1033
+ else {
1034
+ setState({
1035
+ selectedKeys: [],
1036
+ });
1037
+ }
1038
+ } }, "\u5168\u9009"));
1039
+ /**
1040
+ * H5的表单单行内容
1041
+ */
1042
+ const renderH5FormItem = (columns, record, indexParam = {}) => columns.map((columnsItem, i) => {
1043
+ const { offset = 0, recordIndex = 0 } = indexParam;
1044
+ const component = columnsItem.render(record, record === null || record === void 0 ? void 0 : record[columnsItem.key], recordIndex, columnsItem, i + offset);
1045
+ return (React.createElement(Form.Item, { label: columnsItem.header, key: columnsItem.key || i },
1046
+ React.createElement(Form.Text, null, component)));
1047
+ });
1048
+ /**
1049
+ * H5的以表单格式展示内容
1050
+ */
1051
+ const renderH5Form = () => {
1052
+ const hasActionColumn = (actionColumn &&
1053
+ (settings === null || settings === void 0 ? void 0 : settings.length) > 0 &&
1054
+ enableCellCustomOption === undefined) ||
1055
+ enableCellCustomOption;
1056
+ return (React.createElement(InfiniteScroll, { dataLength: cardList.length, next: async () => {
1057
+ if (!isLoading) {
1058
+ await fetchData({
1059
+ searchValues,
1060
+ pageNo: pageIndex + 1,
1061
+ empty: false,
1062
+ });
1063
+ }
1064
+ }, hasMore: cardList.length < total, loader: React.createElement(LoadingTip, { className: "adaptation-table__loading" }), scrollableTarget: "listScrollableContainer" }, cardList.map((recordsItem, recordIndex) => (React.createElement(Card, { className: "adaptation-table__card", key: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id },
1065
+ React.createElement(Card.Body, { className: "adaptation-table__card-body" },
1066
+ actionColumn &&
1067
+ (settings === null || settings === void 0 ? void 0 : settings.length) > 0 &&
1068
+ enableCellCustomOption === undefined && (React.createElement(Dropdown, { clickClose: false, className: "adaptation-table__row-actions", overlayStyle: { zIndex: 998 }, button: React.createElement(Button, { type: "icon", icon: "more", style: { width: '100%' } }), appearance: "pure", ...(isInIde() && recordIndex === 0 ? { open: true } : {}) },
1069
+ React.createElement(List, { type: "option" }, settings === null || settings === void 0 ? void 0 : settings.map((props, index) => props.show && (React.createElement(List.Item, { key: index },
1070
+ React.createElement(SelectableBlock, { ...props, component: "Button", blockKey: "settings", index: index, disabled: props.action === 'edit' ||
1071
+ props.action === 'del'
1072
+ ? props.disabled ||
1073
+ isProcessHoldOrLocked(recordsItem['!!Weda!!ProcessHold'], recordsItem['!!Weda!!LOCK'])
1074
+ : props.disabled, compId: compId, exportValue: {
1075
+ record: recordsItem,
1076
+ recordKey: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id,
1077
+ }, actionMap: settingsMap, actionParams: {
1078
+ dbName,
1079
+ recordkey: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id,
1080
+ }, selectableBlockEvents: selectableBlockEvents, style: props.type === 'link'
1081
+ ? { width: '100%', color: 'inherit' }
1082
+ : { width: '100%' } }))))))),
1083
+ enableCellCustomOption && (React.createElement(Dropdown, { clickClose: false, className: "adaptation-table__row-actions", overlayStyle: { zIndex: 998 }, button: React.createElement(Button, { type: "icon", icon: "more", style: { width: '100%' } }), appearance: "pure", ...(isInIde() && recordIndex === 0 ? { open: true } : {}) },
1084
+ React.createElement(List, { type: "option", className: "adaptation-table__row-actions-list" }, slotRender(slots[CELL_CUSTOM_OPTION], {
1085
+ record: recordsItem,
1086
+ rowKey: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id,
1087
+ recordIndex,
1088
+ })))),
1089
+ React.createElement(Form, { readonly: true, className: "adaptation-table__form", layout: "fixed", fixedLabelWidth: "70px" },
1090
+ multipleSelect ? (React.createElement(Checkbox, { className: "adaptation-table__item-check", name: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id })) : (React.createElement(Radio, { className: "adaptation-table__item-check", name: recordsItem === null || recordsItem === void 0 ? void 0 : recordsItem._id })),
1091
+ renderH5FormItem(columns.slice(0, columns.length < 4 ? -1 : 3), recordsItem, {
1092
+ offset: 0,
1093
+ recordIndex,
1094
+ })),
1095
+ React.createElement(Form, { readonly: true, className: "adaptation-table__form adaptation-table__form-extra", layout: "fixed", fixedLabelWidth: "70px" },
1096
+ React.createElement(Collapse, { icon: (active) => (React.createElement(Icon, { type: active ? 'arrowup' : 'arrowdown' })), iconPosition: "right", className: "adaptation-table__text-down" },
1097
+ React.createElement(Collapse.Panel, { id: "1", title: (active) => (active ? '收起' : '展开更多'), className: "adaptation-table__form-collapse" }, renderH5FormItem(hasActionColumn ? columns.slice(3, -1) : columns.slice(3), recordsItem, {
1098
+ offset: 3,
1099
+ recordIndex,
1100
+ }))))))))));
1101
+ };
1102
+ /**
1103
+ * H5的表格内容
1104
+ */
1105
+ const renderH5Table = () => {
1106
+ if (dbName && isLoading && cardList.length === 0) {
1107
+ return React.createElement(LoadingTip, { className: "adaptation-table__loading" });
1108
+ }
1109
+ if (cardList.length === 0 || !dbName) {
1110
+ return (!isLoading &&
1111
+ emptyText && (React.createElement(EmptyContent, { emptyText: emptyText, component: "table", isH5: true })));
1112
+ }
1113
+ if (multipleSelect) {
1114
+ return (React.createElement(Checkbox.Group, { value: selectedKeys, className: "adaptation-table__all-check", onChange: (val) => {
1115
+ setState({ selectedKeys: val });
1116
+ handleRowsSelect(val);
1117
+ } }, renderH5Form()));
1118
+ }
1119
+ return (React.createElement(Radio.Group, { value: selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys[0], className: "adaptation-table__item-check", onChange: (val) => {
1120
+ const keys = [].concat(val);
1121
+ setState({ selectedKeys: keys });
1122
+ handleRowsSelect(keys);
1123
+ } }, renderH5Form()));
1124
+ };
1125
+ /**
1126
+ * filter 查询
1127
+ */
1128
+ const queryHandle = (searchValues = []) => {
1129
+ fetchData({ searchValues, pageNo: 1, pageSize });
1130
+ };
1131
+ /**
1132
+ * h5 filter面板
1133
+ */
1134
+ const renderH5Filter = () => (React.createElement("div", { className: "_wedamodal-fn-data-filter-form-h5" },
1135
+ React.createElement("div", { className: "_wedamodal-fn-data-filter _wedamodal-fn-data-filter--mobile" },
1136
+ React.createElement("div", { className: "_wedamodal-fn-data-filter__panel filter__panel", style: filterCollapse ? { display: 'block' } : { display: 'none' } },
1137
+ React.createElement("div", { className: "_wedamodal-fn-data-filter__panel-inner" },
1138
+ React.createElement("div", { className: "_wedamodal-fn-data-filter__panel-header" },
1139
+ React.createElement("span", { className: "filter-title" }, "\u6761\u4EF6\u7B5B\u9009"),
1140
+ React.createElement("i", { className: "filter-close-icon", onClick: () => setState((prev) => ({ filterCollapse: !prev.filterCollapse })) })),
1141
+ React.createElement("br", null),
1142
+ React.createElement(FilterFieldsPanel, { data: filterFields, getChooseList: getChooseList, fetchData: queryHandle, isH5: true }))))));
1143
+ /**
1144
+ * pc 搜索 视图选择 筛选
1145
+ */
1146
+ const renderPCViewFilter = () => (React.createElement(Row, { gap: 10 },
1147
+ React.createElement(Col, { span: 24 }, tableSearch &&
1148
+ (filterType === 'searchbox' ? (renderSearch()) : (React.createElement(Button, { className: `${Margin.Left['2n']} ${filterCollapse && 'active'}`, icon: "filter", title: "\u7B5B\u9009", onClick: () => {
1149
+ setState((prev) => ({ filterCollapse: !prev.filterCollapse }));
1150
+ } }))))));
1151
+ /**
1152
+ * 后端导入弹窗
1153
+ */
1154
+ const renderImportFileModalByApi = () => {
1155
+ var _a;
1156
+ const supportFields = (_a = fields
1157
+ .filter((field) => {
1158
+ // 不支持上传的类型
1159
+ if (!field)
1160
+ return false;
1161
+ if (field['x-system'])
1162
+ return false;
1163
+ // 计算公式不支持
1164
+ if (field['format'] === 'function')
1165
+ return false;
1166
+ // 关联模型的字段不支持
1167
+ if ((field === null || field === void 0 ? void 0 : field['x-viewType']) === 'RELATION_VIEW')
1168
+ return false;
1169
+ return true;
1170
+ })) === null || _a === void 0 ? void 0 : _a.sort((a, b) => (a === null || a === void 0 ? void 0 : a['x-index']) - (b === null || b === void 0 ? void 0 : b['x-index']));
1171
+ return (isImportFileModalByApiVisible && (React.createElement(ImportFileModalByApi, { fields: supportFields, visible: isImportFileModalByApiVisible, datasourceTitle: datasourceTitle, dbName: dbName, onCancel: () => {
1172
+ setIsImportFileModalByApiVisible(false);
1173
+ }, handleInOrOutRecordModealVisible: setIsInOrOutRecordModealVisible, refresh: () => {
1174
+ fetchData({ searchValues, pageSize, pageNo: 1 });
1175
+ } })));
1176
+ };
1177
+ /**
1178
+ * 后端导出弹窗
1179
+ */
1180
+ const renderExportFileModalByApi = () => {
1181
+ var _a, _b;
1182
+ const supportFields = (_b = (_a = fields === null || fields === void 0 ? void 0 : fields.filter((field) => {
1183
+ // 不支持上传的类型
1184
+ if (!field)
1185
+ return false;
1186
+ if (field['x-system'])
1187
+ return false;
1188
+ return true;
1189
+ })) === null || _a === void 0 ? void 0 : _a.sort((a, b) => (a === null || a === void 0 ? void 0 : a['x-index']) - (b === null || b === void 0 ? void 0 : b['x-index']))) === null || _b === void 0 ? void 0 : _b.filter((item) => {
1190
+ // 筛选出列管理字段
1191
+ const isVisible = columns === null || columns === void 0 ? void 0 : columns.findIndex((column) => (column === null || column === void 0 ? void 0 : column.key) === (item === null || item === void 0 ? void 0 : item.name));
1192
+ return isVisible != -1;
1193
+ });
1194
+ // 没有数据标识默认加上数据标识字段
1195
+ const isExitId = supportFields === null || supportFields === void 0 ? void 0 : supportFields.findIndex((item) => (item === null || item === void 0 ? void 0 : item.name) === '_id');
1196
+ if (isExitId === -1) {
1197
+ supportFields.push({
1198
+ name: '_id',
1199
+ title: '数据标识',
1200
+ type: 'string',
1201
+ });
1202
+ }
1203
+ return (isExportFileModalByApiVisible && (React.createElement(ExportFileModalByApi, { fields: getFieldsTypeName(supportFields), selectedKeysList: selectedKeys, visible: isExportFileModalByApiVisible, dbName: dbName, tableColumns: columns, where: getRecordParams === null || getRecordParams === void 0 ? void 0 : getRecordParams.where, whereList: whereList(), orderBy: getRecordParams === null || getRecordParams === void 0 ? void 0 : getRecordParams.orderBy, orderType: getRecordParams === null || getRecordParams === void 0 ? void 0 : getRecordParams.orderType, onCancel: () => {
1204
+ setIsExportFileModalByApiVisible(false);
1205
+ }, handleInOrOutRecordModealVisible: setIsInOrOutRecordModealVisible })));
1206
+ };
1207
+ /*
1208
+ 导入导出记录弹窗
1209
+ */
1210
+ const renderInOrOutRecordModeal = () => {
1211
+ return (isInOrOutRecordModealVisible && (React.createElement(InOrOutRecordModeal, { visible: isInOrOutRecordModealVisible, dbName: dbName, onCancel: () => {
1212
+ isInOrOutRecordModealVisible === 'import'
1213
+ ? setIsImportFileModalByApiVisible(true)
1214
+ : setIsExportFileModalByApiVisible(true);
1215
+ setIsInOrOutRecordModealVisible(false);
1216
+ } })));
1217
+ };
1218
+ return isH5 ? (React.createElement("div", { className: "_wedamodal-fn-data-filter-body-h5 adaptation-table" },
1219
+ React.createElement("div", { className: "hiddenScrollbar adaptation-table__body", id: "listScrollableContainer" },
1220
+ React.createElement("div", { className: "adaptation-table__actions" },
1221
+ React.createElement(React.Fragment, null,
1222
+ React.createElement("div", { className: "_wedamodal-fn-data-filter _wedamodal-fn-data-filter--mobile" },
1223
+ tableAction && renderButtons(),
1224
+ tableSearch && filterType === 'filter' && (React.createElement(Icon, { style: { marginLeft: '10px', marginBottom: '8px' }, type: "filter", onClick: () => setState((prev) => ({
1225
+ filterCollapse: !prev.filterCollapse,
1226
+ })) }))),
1227
+ React.createElement(Justify, { className: "adaptation-table__all_check", left: renderH5CheckboxAll(), right: tableSearch && filterType === 'searchbox' && renderSearch() }))),
1228
+ renderH5Table()),
1229
+ filterType === 'filter' && renderH5Filter(),
1230
+ renderFooter())) : (React.createElement(React.Fragment, null,
1231
+ React.createElement(Table.ActionPanel, null,
1232
+ React.createElement(Justify, { left: tableAction && renderButtons(), right: renderPCViewFilter() })),
1233
+ filterType === 'filter' && (React.createElement("div", { className: "_wedamodal-fn-data-filter", style: { display: `${filterCollapse ? 'block' : 'none'}` } },
1234
+ React.createElement(FilterFieldsPanel, { data: filterFields, getChooseList: getChooseList, fetchData: queryHandle }))),
1235
+ React.createElement(Table, { className: `modal-table ${isLoading ? 'modal-table-loading' : ''}`, recordKey: "_id", records: isLoading ? [] : records, addons: tableAddons, columns: fields.length > 0 ? columns : [] }),
1236
+ renderFooter(),
1237
+ renderImportFileModalByApi(),
1238
+ renderExportFileModalByApi(),
1239
+ renderInOrOutRecordModeal()));
1240
+ };