@cloudbase/weda-ui 3.4.8 → 3.4.9-alpha.1024

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 (376) hide show
  1. package/dist/configs/components/carousel.json +12 -2
  2. package/dist/configs/components/chart/bar.json +1 -1
  3. package/dist/configs/components/chart/line.js +1 -1
  4. package/dist/configs/components/chart/pie.json +1 -1
  5. package/dist/configs/components/chart/statisticsCard.json +1 -1
  6. package/dist/configs/components/common/form-input-required.js +176 -0
  7. package/dist/configs/components/container.js +1 -1
  8. package/dist/configs/components/customer-service.js +264 -0
  9. package/dist/configs/components/dataView.js +10 -66
  10. package/dist/configs/components/form/departTreeSelect.json +10 -0
  11. package/dist/configs/components/form-checkbox.js +260 -0
  12. package/dist/configs/components/form-date.js +267 -0
  13. package/dist/configs/components/form-depart-tree-select.js +239 -0
  14. package/dist/configs/components/form-email.js +257 -0
  15. package/dist/configs/components/form-image-uploader.js +325 -0
  16. package/dist/configs/components/form-input.js +478 -0
  17. package/dist/configs/components/form-location.js +328 -0
  18. package/dist/configs/components/form-multi-region.js +201 -0
  19. package/dist/configs/components/form-phone.js +249 -0
  20. package/dist/configs/components/form-radio.js +260 -0
  21. package/dist/configs/components/form-region.js +197 -0
  22. package/dist/configs/components/form-rich-text.js +211 -0
  23. package/dist/configs/components/form-select.js +367 -0
  24. package/dist/configs/components/form-switch.js +152 -0
  25. package/dist/configs/components/form-text-area.js +240 -0
  26. package/dist/configs/components/form-time.js +220 -0
  27. package/dist/configs/components/form-upload-file.js +268 -0
  28. package/dist/configs/components/form-url.js +258 -0
  29. package/dist/configs/components/form-user-tree-select.js +316 -0
  30. package/dist/configs/components/formdetail.json +8 -0
  31. package/dist/configs/components/grid/col.js +6 -0
  32. package/dist/configs/components/listView.js +34 -92
  33. package/dist/configs/components/modal.js +2 -1
  34. package/dist/configs/components/navigationBar.json +1 -1
  35. package/dist/configs/components/pagelayout.json +1 -1
  36. package/dist/configs/components/qr_code.js +117 -0
  37. package/dist/configs/components/repeater.js +3 -2
  38. package/dist/configs/components/scrollVeiw.json +3 -1
  39. package/dist/configs/components/table.json +14 -4
  40. package/dist/configs/components/tabs.js +1 -1
  41. package/dist/configs/components/wd-bubble.js +2 -2
  42. package/dist/configs/components/wd-button.js +3 -3
  43. package/dist/configs/components/wd-divider.js +3 -3
  44. package/dist/configs/components/wd-form-detail.js +229 -0
  45. package/dist/configs/components/wd-form.js +394 -0
  46. package/dist/configs/components/wd-icon.js +2 -2
  47. package/dist/configs/components/wd-image.js +5 -0
  48. package/dist/configs/components/wd-link.js +3 -3
  49. package/dist/configs/components/wd-table.js +1110 -24
  50. package/dist/configs/components/wd-text.js +4 -3
  51. package/dist/configs/components/web-view.js +152 -0
  52. package/dist/configs/components/wedaVideo.json +4 -2
  53. package/dist/configs/components/wxOpenApi/share.js +1 -0
  54. package/dist/configs/index.js +48 -0
  55. package/dist/configs/type-utils/index.js +0 -1
  56. package/dist/docs/common/componentList.js +8 -37
  57. package/dist/docs/common/components/classes-view.js +2 -32
  58. package/dist/docs/common/components/event-view.js +2 -43
  59. package/dist/docs/common/components/json-schema-view.js +4 -8
  60. package/dist/docs/common/components/methods-view.js +2 -30
  61. package/dist/docs/common/components/properties-view.js +7 -43
  62. package/dist/docs/common/tableView.js +18 -94
  63. package/dist/enum/index.js +53 -0
  64. package/dist/setupTests.js +4 -0
  65. package/dist/style/index.scss +1 -1
  66. package/dist/web/actions/showModal/index.js +15 -21
  67. package/dist/web/components/button/index.css +1 -0
  68. package/dist/web/components/button/index.js +3 -6
  69. package/dist/web/components/calendar/index.js +19 -45
  70. package/dist/web/components/carousel/index.js +35 -45
  71. package/dist/web/components/chart/bar/index.js +6 -7
  72. package/dist/web/components/chart/bar/index.old.js +3 -2
  73. package/dist/web/components/chart/common/Chart.js +3 -2
  74. package/dist/web/components/chart/common/chart-custom-connector.js +3 -7
  75. package/dist/web/components/chart/line/index.js +6 -7
  76. package/dist/web/components/chart/line/index.old.js +3 -2
  77. package/dist/web/components/chart/pie/index.js +6 -7
  78. package/dist/web/components/chart/pie/index.old.js +3 -2
  79. package/dist/web/components/chart/statisticsCard/index.js +3 -9
  80. package/dist/web/components/common/error-boundary.js +13 -15
  81. package/dist/web/components/common/form-item-wrapper.js +4 -0
  82. package/dist/web/components/common/use-loop-render-detect.js +2 -2
  83. package/dist/web/components/container/index.js +2 -2
  84. package/dist/web/components/customer-service/convert-legacy-props.js +14 -0
  85. package/dist/web/components/customer-service/customer-service.js +13 -0
  86. package/dist/web/components/customer-service/index.js +3 -0
  87. package/dist/web/components/dataView/index.js +5 -1
  88. package/dist/web/components/drawer/index.js +2 -3
  89. package/dist/web/components/flow/common/components/container.js +12 -0
  90. package/dist/web/components/flow/common/components/index.js +2 -0
  91. package/dist/web/components/flow/common/components/text/index.js +62 -0
  92. package/dist/web/components/flow/common/constants.js +14 -0
  93. package/dist/web/components/flow/common/hooks/index.js +2 -0
  94. package/dist/web/components/flow/common/hooks/useCommonFlowData/flow-get.js +83 -0
  95. package/dist/web/components/flow/common/hooks/useCommonFlowData/index.js +67 -0
  96. package/dist/web/components/flow/common/hooks/useCommonFlowData/preview-data.js +45 -0
  97. package/dist/web/components/flow/common/hooks/useCommonFlowData/request-hub.js +125 -0
  98. package/dist/web/components/flow/common/hooks/useCommonFlowData/types.js +1 -0
  99. package/dist/web/components/flow/common/hooks/useElementMediaQuery.js +23 -0
  100. package/dist/web/components/flow/common/hooks/useFlowConfig.js +44 -0
  101. package/dist/web/components/flow/common/hooks/useFlowFormLoad.js +64 -0
  102. package/dist/web/components/flow/common/hooks/useFlowPageType.js +49 -0
  103. package/dist/web/components/flow/common/index.js +6 -0
  104. package/dist/web/components/flow/common/request.js +47 -0
  105. package/dist/web/components/flow/common/types.js +1 -0
  106. package/dist/web/components/flow/common/utils.js +15 -0
  107. package/dist/web/components/flow/modules/basic/Basic.js +14 -22
  108. package/dist/web/components/flow/modules/basic/BasicMobile.js +12 -30
  109. package/dist/web/components/flow/modules/basic/index.js +19 -11
  110. package/dist/web/components/flow/modules/basic/status-text.js +37 -0
  111. package/dist/web/components/flow/modules/basic/utils.js +17 -8
  112. package/dist/web/components/flow/modules/chart/Chart.js +22 -41
  113. package/dist/web/components/flow/modules/chart/index.js +9 -4
  114. package/dist/web/components/flow/modules/chart/utils.js +111 -0
  115. package/dist/web/components/flow/modules/combination/index.js +4 -6
  116. package/dist/web/components/flow/modules/layout/index.css +2 -2
  117. package/dist/web/components/flow/modules/layout/index.js +11 -15
  118. package/dist/web/components/flow/modules/operations/components/button/index.js +2 -4
  119. package/dist/web/components/flow/modules/operations/components/popup/index.js +11 -15
  120. package/dist/web/components/flow/modules/operations/components/user-select/index.js +4 -5
  121. package/dist/web/components/flow/modules/operations/config/approval-form-config.js +8 -9
  122. package/dist/web/components/flow/modules/operations/config/control-config.js +38 -33
  123. package/dist/web/components/flow/modules/operations/control.js +21 -15
  124. package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +8 -8
  125. package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +2 -2
  126. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +3 -6
  127. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +25 -32
  128. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +2 -6
  129. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +15 -7
  130. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +1 -0
  131. package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +2 -2
  132. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +2 -4
  133. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/index.js +20 -0
  134. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/view-model.js +119 -0
  135. package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +6 -3
  136. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +13 -22
  137. package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +18 -26
  138. package/dist/web/components/flow/modules/operations/view-model.js +95 -70
  139. package/dist/web/components/flow/process/components/comment-text/index.js +24 -0
  140. package/dist/web/components/flow/process/components/comment-text/style.css +33 -0
  141. package/dist/web/components/flow/process/components/descriptions/index.js +19 -0
  142. package/dist/web/components/flow/process/components/descriptions/style.css +31 -0
  143. package/dist/web/components/flow/process/components/index.js +4 -0
  144. package/dist/web/components/flow/process/components/timeline/index.js +13 -0
  145. package/dist/web/components/flow/process/components/timeline/style.css +75 -0
  146. package/dist/web/components/flow/process/constants.js +46 -0
  147. package/dist/web/components/flow/process/index.js +2 -0
  148. package/dist/web/components/flow/process/process.js +113 -0
  149. package/dist/web/components/flow/process/style.css +17 -0
  150. package/dist/web/components/flow/process/types.js +1 -0
  151. package/dist/web/components/flow/process/view-model.js +135 -0
  152. package/dist/web/components/form/checkbox/index.js +18 -19
  153. package/dist/web/components/form/enumSelect/MultipleSelect.js +4 -5
  154. package/dist/web/components/form/enumSelect/NormalSelect.js +4 -5
  155. package/dist/web/components/form/enumSelect/SelectContainer.js +2 -2
  156. package/dist/web/components/form/form/index.js +8 -14
  157. package/dist/web/components/form/formcell/index.js +12 -18
  158. package/dist/web/components/form/input/index.js +17 -16
  159. package/dist/web/components/form/location/common/mapChoose.js +37 -69
  160. package/dist/web/components/form/location/common/mapView.js +2 -1
  161. package/dist/web/components/form/location/common/selectModal.js +3 -7
  162. package/dist/web/components/form/location/components/LocationH5/location.h5.js +22 -34
  163. package/dist/web/components/form/location/components/LocationPC/Header.js +6 -15
  164. package/dist/web/components/form/location/components/LocationPC/location.PC.js +13 -15
  165. package/dist/web/components/form/location/index.js +5 -7
  166. package/dist/web/components/form/radio/index.js +8 -12
  167. package/dist/web/components/form/renderDecorator.js +3 -2
  168. package/dist/web/components/form/select/allTimePicker/calendar.js +27 -28
  169. package/dist/web/components/form/select/allTimePicker/index.js +66 -91
  170. package/dist/web/components/form/select/dropdown-select/h5.js +30 -53
  171. package/dist/web/components/form/select/dropdown-select/index.js +3 -2
  172. package/dist/web/components/form/select/dropdown-select/pc.js +27 -29
  173. package/dist/web/components/form/select/dropdown-select/ui.js +4 -8
  174. package/dist/web/components/form/select/h5.js +8 -6
  175. package/dist/web/components/form/select/index.js +19 -20
  176. package/dist/web/components/form/select/region/index.js +2 -2
  177. package/dist/web/components/form/select/request.js +1 -1
  178. package/dist/web/components/form/select/status/allEmpty.js +2 -2
  179. package/dist/web/components/form/select/status/empty.js +3 -2
  180. package/dist/web/components/form/select/status/loading.js +3 -4
  181. package/dist/web/components/form/select/status/retry.js +3 -4
  182. package/dist/web/components/form/select/year.js +16 -31
  183. package/dist/web/components/form/switch/index.js +11 -15
  184. package/dist/web/components/form/textarea/index.js +5 -10
  185. package/dist/web/components/form/tips/index.js +2 -2
  186. package/dist/web/components/form/uploader/index.js +5 -4
  187. package/dist/web/components/form/uploader/uploader.h5.js +29 -54
  188. package/dist/web/components/form/uploader/uploader.pc.js +18 -44
  189. package/dist/web/components/form/uploaderFile/index.js +4 -5
  190. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +58 -104
  191. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +42 -69
  192. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +474 -46
  193. package/dist/web/components/form/userOrgSelect/common/utils.js +269 -0
  194. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +5 -10
  195. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +10 -18
  196. package/dist/web/components/form/userOrgSelect/component/depart-select/departTreeSelect.h5.js +177 -0
  197. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +56 -41
  198. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +38 -35
  199. package/dist/web/components/form/userOrgSelect/component/error-tips.js +4 -4
  200. package/dist/web/components/form/userOrgSelect/component/index.css +52 -0
  201. package/dist/web/components/form/userOrgSelect/component/input-tags.js +4 -18
  202. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +11 -19
  203. package/dist/web/components/form/userOrgSelect/component/modal-search.js +2 -5
  204. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +127 -50
  205. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +7 -13
  206. package/dist/web/components/form/userOrgSelect/component/org-tree.js +42 -18
  207. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +23 -40
  208. package/dist/web/components/form/userOrgSelect/component/selected-list.js +8 -5
  209. package/dist/web/components/form/userOrgSelect/component/user-org-list.js +35 -35
  210. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +43 -26
  211. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +36 -50
  212. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +9 -11
  213. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +4 -4
  214. package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.js +59 -21
  215. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +28 -33
  216. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +10 -8
  217. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +15 -1
  218. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +113 -5
  219. package/dist/web/components/form-checkbox/index.js +36 -0
  220. package/dist/web/components/form-date/index.js +52 -0
  221. package/dist/web/components/form-depart-tree-select/index.js +22 -0
  222. package/dist/web/components/form-email/index.js +31 -0
  223. package/dist/web/components/form-image-uploader/index.js +50 -0
  224. package/dist/web/components/form-input/index.js +25 -0
  225. package/dist/web/components/form-input-hooks/index.js +281 -0
  226. package/dist/web/components/form-input-hooks/validator.js +124 -0
  227. package/dist/web/components/form-location/index.js +24 -0
  228. package/dist/web/components/form-multi-region/index.js +22 -0
  229. package/dist/web/components/form-phone/index.js +32 -0
  230. package/dist/web/components/form-radio/index.js +38 -0
  231. package/dist/web/components/form-region/index.js +24 -0
  232. package/dist/web/components/form-rich-text/index.js +22 -0
  233. package/dist/web/components/form-select/index.js +21 -0
  234. package/dist/web/components/form-switch/index.js +22 -0
  235. package/dist/web/components/form-text-area/index.js +22 -0
  236. package/dist/web/components/form-time/index.js +22 -0
  237. package/dist/web/components/form-upload-file/index.js +47 -0
  238. package/dist/web/components/form-url/index.js +31 -0
  239. package/dist/web/components/form-user-tree-select/index.js +24 -0
  240. package/dist/web/components/formdetail/index.css +213 -3
  241. package/dist/web/components/formdetail/index.js +156 -30
  242. package/dist/web/components/graphicCard/index.js +13 -25
  243. package/dist/web/components/grid/col.js +3 -2
  244. package/dist/web/components/grid/grid.js +4 -3
  245. package/dist/web/components/grid/row.js +3 -2
  246. package/dist/web/components/image/image.js +52 -57
  247. package/dist/web/components/image/index.js +2 -2
  248. package/dist/web/components/index.js +45 -3
  249. package/dist/web/components/link/index.js +3 -5
  250. package/dist/web/components/listView/index.js +29 -49
  251. package/dist/web/components/lottery/index.js +123 -143
  252. package/dist/web/components/modal/h5.css +3 -0
  253. package/dist/web/components/modal/index.js +3 -2
  254. package/dist/web/components/modal/modal.h5.js +8 -14
  255. package/dist/web/components/modal/modal.pc.js +5 -7
  256. package/dist/web/components/navLayout/index.js +13 -20
  257. package/dist/web/components/navigationBar/common.js +12 -14
  258. package/dist/web/components/navigationBar/h5Menu.js +18 -37
  259. package/dist/web/components/navigationBar/horizontalMenu.js +33 -50
  260. package/dist/web/components/navigationBar/index.css +2 -1
  261. package/dist/web/components/navigationBar/index.js +5 -10
  262. package/dist/web/components/navigationBar/verticalMenu.js +11 -13
  263. package/dist/web/components/pageLayout/PageContent/index.js +7 -14
  264. package/dist/web/components/pageLayout/index.css +10 -0
  265. package/dist/web/components/pageLayout/index.js +7 -12
  266. package/dist/web/components/phone/index.js +2 -4
  267. package/dist/web/components/phoneCode/index.js +2 -4
  268. package/dist/web/components/picker/datePicker.js +2 -2
  269. package/dist/web/components/picker/picker.js +2 -2
  270. package/dist/web/components/picker/timePicker.js +2 -2
  271. package/dist/web/components/qrcode/index.js +3 -0
  272. package/dist/web/components/qrcode/qr-code.js +26 -0
  273. package/dist/web/components/repeater/index.js +2 -2
  274. package/dist/web/components/repeater-item/index.js +2 -2
  275. package/dist/web/components/richText/index.js +74 -93
  276. package/dist/web/components/richTextView/index.js +3 -3
  277. package/dist/web/components/scrollView/index.js +4 -3
  278. package/dist/web/components/share/index.js +2 -4
  279. package/dist/web/components/slot/index.js +2 -2
  280. package/dist/web/components/statusContent/index.css +39 -0
  281. package/dist/web/components/statusContent/index.js +9 -0
  282. package/dist/web/components/swiper/index.js +45 -48
  283. package/dist/web/components/table/BaseTable.js +141 -189
  284. package/dist/web/components/table/ExportFileModalByApi/index.js +29 -60
  285. package/dist/web/components/table/FieldRender.js +47 -51
  286. package/dist/web/components/table/FilterFields.js +45 -71
  287. package/dist/web/components/table/Form/Enum.js +4 -4
  288. package/dist/web/components/table/Form/Location.js +9 -9
  289. package/dist/web/components/table/ImportFileModal/index.css +261 -0
  290. package/dist/web/components/table/ImportFileModal/index.js +47 -107
  291. package/dist/web/components/table/ImportFileModal/validate.js +9 -9
  292. package/dist/web/components/table/ImportFileModalByApi/index.css +35 -3
  293. package/dist/web/components/table/ImportFileModalByApi/index.js +96 -113
  294. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +23 -47
  295. package/dist/web/components/table/InOrOutRecordModeal.js +26 -47
  296. package/dist/web/components/table/QuoteModal.js +3 -5
  297. package/dist/web/components/table/SelectableBlock/index.js +23 -27
  298. package/dist/web/components/table/UserDepartment/ViewCell.js +3 -3
  299. package/dist/web/components/table/UserDepartment/utils.js +4 -4
  300. package/dist/web/components/table/baseTable.css +0 -10
  301. package/dist/web/components/table/index.js +3 -5
  302. package/dist/web/components/tabs/index.js +5 -6
  303. package/dist/web/components/tabs/tabs.h5.js +12 -14
  304. package/dist/web/components/tabs/tabs.pc.js +5 -5
  305. package/dist/web/components/text/index.js +3 -2
  306. package/dist/web/components/uploaderFileView/index.js +4 -3
  307. package/dist/web/components/uploaderView/index.js +12 -16
  308. package/dist/web/components/userInfo/index.js +2 -4
  309. package/dist/web/components/wd-bubble/wd-bubble.js +10 -11
  310. package/dist/web/components/wd-button/wd-button.js +24 -8
  311. package/dist/web/components/wd-config-provider/wd-config-provider.js +3 -2
  312. package/dist/web/components/wd-divider/wd-divider.js +3 -2
  313. package/dist/web/components/wd-form/hooks/use-auth-value.js +43 -0
  314. package/dist/web/components/wd-form/hooks/use-remote-value.js +79 -0
  315. package/dist/web/components/wd-form/index.js +368 -0
  316. package/dist/web/components/wd-icon/wd-icon.js +3 -2
  317. package/dist/web/components/wd-image/image.js +98 -96
  318. package/dist/web/components/wd-image/index.js +4 -3
  319. package/dist/web/components/wd-link/wd-link.js +4 -8
  320. package/dist/web/components/wd-table/components/ExportFileModalByApi/ExportFileModalByApi.js +7 -0
  321. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.css +9 -0
  322. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.js +74 -0
  323. package/dist/web/components/wd-table/components/FieldRender/Form/Enum.js +56 -0
  324. package/dist/web/components/wd-table/components/FieldRender/Form/Location.css +11 -0
  325. package/dist/web/components/wd-table/components/FieldRender/Form/Location.js +127 -0
  326. package/dist/web/components/wd-table/components/FieldRender/ImagePreview.js +8 -0
  327. package/dist/web/components/wd-table/components/FieldRender/QuoteModal.js +17 -0
  328. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/ViewCell.js +11 -0
  329. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/utils.js +82 -0
  330. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/viewCell.css +11 -0
  331. package/dist/web/components/wd-table/components/FieldRender/index.js +691 -0
  332. package/dist/web/components/wd-table/components/FilterFieldsPanel/Fields.js +82 -0
  333. package/dist/web/components/wd-table/components/FilterFieldsPanel/FilterFieldItem.js +86 -0
  334. package/dist/web/components/wd-table/components/FilterFieldsPanel/InputAdornment.js +9 -0
  335. package/dist/web/components/wd-table/components/FilterFieldsPanel/SelectSearch.js +44 -0
  336. package/dist/web/components/wd-table/components/FilterFieldsPanel/filterFieldsGenerate.js +113 -0
  337. package/dist/web/components/wd-table/components/FilterFieldsPanel/index.js +169 -0
  338. package/dist/web/components/wd-table/components/ImportFileModalByApi/index.js +44 -0
  339. package/dist/web/components/wd-table/components/InOrOutRecordModal.js +14 -0
  340. package/dist/web/components/wd-table/components/Pagination/index.js +11 -0
  341. package/dist/web/components/wd-table/components/SearchBox/index.js +45 -0
  342. package/dist/web/components/wd-table/components/Table/index.js +172 -0
  343. package/dist/web/components/wd-table/components/Table/util.js +63 -0
  344. package/dist/web/components/wd-table/components/ToolBar/index.js +34 -0
  345. package/dist/web/components/wd-table/components/deleteModal.js +40 -0
  346. package/dist/web/components/wd-table/components/index.js +10 -0
  347. package/dist/web/components/wd-table/hooks/useAuthFields.js +13 -0
  348. package/dist/web/components/wd-table/hooks/useChooseList.js +72 -0
  349. package/dist/web/components/wd-table/hooks/useDataSource.js +5 -0
  350. package/dist/web/components/wd-table/hooks/useQueryParams.js +41 -0
  351. package/dist/web/components/wd-table/hooks/useTableData.js +48 -0
  352. package/dist/web/components/wd-table/hooks/useViewFields.js +20 -0
  353. package/dist/web/components/wd-table/mock/index.js +202 -0
  354. package/dist/web/components/wd-table/utils/index.js +307 -0
  355. package/dist/web/components/wd-table/wd-table.js +453 -21
  356. package/dist/web/components/wd-text/wd-text.js +15 -14
  357. package/dist/web/components/web-view/index.css +5 -0
  358. package/dist/web/components/web-view/index.js +3 -0
  359. package/dist/web/components/web-view/web-view.js +61 -0
  360. package/dist/web/components/wedaVideo/index.js +2 -5
  361. package/dist/web/utils/constant.js +1 -0
  362. package/dist/web/utils/getModelParams.js +32 -0
  363. package/dist/web/utils/hooks/CreatePortal.js +3 -2
  364. package/dist/web/utils/hooks/EnumHoc.js +3 -2
  365. package/dist/web/utils/hooks/globalConnect.js +2 -3
  366. package/dist/web/utils/hooks/use-cloud-id-temp-url.js +6 -6
  367. package/dist/web/utils/hooks/useDataSource.js +22 -0
  368. package/dist/web/utils/loading-fallback.js +2 -2
  369. package/dist/web/utils/platform.js +21 -0
  370. package/dist/web/utils/tcb.js +0 -13
  371. package/dist/web/utils/tool.js +14 -0
  372. package/dist/web/utils/widget-api/index.js +39 -7
  373. package/package.json +33 -25
  374. package/dist/web/components/emptyContent/index.css +0 -26
  375. package/dist/web/components/flow/components/FlowModuleText/index.css +0 -4
  376. package/dist/web/components/flow/modules/process/index.css +0 -194
@@ -0,0 +1,82 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DatePicker, TimePicker, Input, Tooltip, Select, SelectMultiple, } from 'tea-component';
3
+ import moment from 'moment';
4
+ import { useEnumContext } from '../../../../utils/hooks/context';
5
+ const { RangePicker } = DatePicker;
6
+ import { SelectSearch } from './SelectSearch';
7
+ export { SelectSearch };
8
+ // 时间日期
9
+ export const DatePickerField = ({ disabled = false, showTime = false, isRange, updateValue, value, }) => isRange ? (_jsx(Tooltip, { title: value && `${value[0]}~${value[1]}`, children: _jsx(RangePicker, { disabled: disabled, clearable: true, value: value ? [moment(value[0]), moment(value[1])] : null, showTime: showTime, onChange: (value) => {
10
+ var _a, _b;
11
+ updateValue({
12
+ value: value[0]
13
+ ? [
14
+ (_a = value[0]) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DD HH:mm:ss'),
15
+ (_b = value[1]) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD HH:mm:ss'),
16
+ ]
17
+ : null,
18
+ });
19
+ } }) })) : (_jsx(Tooltip, { title: value, children: _jsx(DatePicker, { disabled: disabled, clearable: true, value: value ? moment(value) : null, showTime: showTime, onChange: (value) => updateValue({ value: value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD HH:mm:ss') }) }) }));
20
+ // 时间
21
+ export const TimePickerField = ({ disabled = false, isRange, updateValue, value, }) => isRange ? (_jsx(TimePicker.RangePicker, { disabled: disabled, clearable: true, value: value
22
+ ? [moment(value[0], 'HH:mm:ss'), moment(value[1], 'HH:mm:ss')]
23
+ : [null, null], onChange: (value) => {
24
+ var _a, _b;
25
+ updateValue({
26
+ value: value[0]
27
+ ? [(_a = value[0]) === null || _a === void 0 ? void 0 : _a.format('HH:mm:ss'), (_b = value[1]) === null || _b === void 0 ? void 0 : _b.format('HH:mm:ss')]
28
+ : null,
29
+ });
30
+ } })) : (_jsx(TimePicker, { disabled: disabled, clearable: true, value: value ? moment(value, 'HH:mm:ss') : null, onChange: (value) => updateValue({ value: value === null || value === void 0 ? void 0 : value.format('HH:mm:ss') }) }));
31
+ // 文本输入框
32
+ export const InputField = ({ disabled = false, value, updateValue }) => (_jsx(Input, { disabled: disabled, size: "full", value: value, onChange: (value) => {
33
+ updateValue({ value });
34
+ } }));
35
+ // 数字范围输入
36
+ export const MultipleNumber = ({ disabled = false, value, updateValue }) => {
37
+ const val1 = value ? value[0] : '';
38
+ const val2 = value ? value[1] : '';
39
+ return (_jsxs("div", { className: "_wedamodal-fn-input-range", children: [_jsx(Input, { disabled: disabled, size: "s", placeholder: "\u8BF7\u8F93\u5165", value: val1, onChange: (value) => {
40
+ if (isNaN(Number(value))) {
41
+ return;
42
+ }
43
+ updateValue({ value: [value, val2] });
44
+ } }), _jsx("span", { className: "_wedamodal-fn-input-range__split", children: "~" }), _jsx(Input, { disabled: disabled, value: val2, onChange: (value) => {
45
+ if (isNaN(Number(value))) {
46
+ return;
47
+ }
48
+ updateValue({ value: [val1, value] });
49
+ }, size: "s", placeholder: "\u8BF7\u8F93\u5165" })] }));
50
+ };
51
+ // 数字输入框
52
+ export const NumberField = ({ disabled = false, value, updateValue, isRange, }) => isRange ? (_jsx(MultipleNumber, { disabled: disabled, value: value, updateValue: updateValue })) : (_jsx(Input, { disabled: disabled, size: "full", value: value, onChange: (value) => {
53
+ if (isNaN(Number(value))) {
54
+ return;
55
+ }
56
+ updateValue({ value });
57
+ } }));
58
+ // 多选下拉框
59
+ export const SelectMultipleField = (props) => {
60
+ const { optionName, value, updateValue, options, disabled = false } = props;
61
+ const { enumOptions } = useEnumContext();
62
+ let option = (enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[optionName]) || [];
63
+ if (!optionName && options) {
64
+ option = options;
65
+ }
66
+ return (_jsx(SelectMultiple, { disabled: disabled, size: "full", searchable: true, staging: false, matchButtonWidth: true, value: value, appearance: "button", options: option, onChange: (value) => {
67
+ updateValue({ value });
68
+ } }));
69
+ };
70
+ // 下拉单选
71
+ export const SelectField = ({ optionName, value, updateValue, disabled }) => {
72
+ const { enumOptions } = useEnumContext();
73
+ const option = (enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[optionName]) || [];
74
+ return (_jsx(Select, { disabled: disabled, size: "full", clearable: true, searchable: true,
75
+ // @ts-ignore 不存在的属性
76
+ staging: false, matchButtonWidth: true, value: value, appearance: "button", options: option, onChange: (value) => {
77
+ updateValue({ value });
78
+ }, button: () => {
79
+ var _a, _b;
80
+ return value ? (_jsx(Tooltip, { title: (_a = option === null || option === void 0 ? void 0 : option.find((i) => i.value === value)) === null || _a === void 0 ? void 0 : _a.text, children: _jsx("span", { children: ((_b = option === null || option === void 0 ? void 0 : option.find((i) => i.value === value)) === null || _b === void 0 ? void 0 : _b.text) || value }) })) : (_jsx("span", { className: "wedatea2td-text-weak", children: "\u8BF7\u9009\u62E9" }));
81
+ } }));
82
+ };
@@ -0,0 +1,86 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Input, Select } from 'tea-component';
4
+ import { DatePickerField, TimePickerField, InputField, NumberField, SelectMultipleField, SelectField, SelectSearch, } from './Fields';
5
+ import { fieldCalculations } from './filterFieldsGenerate';
6
+ import { InputAdornment } from './InputAdornment';
7
+ import { usePlatform } from '../../../../utils/platform';
8
+ import { useConfig } from '../../../../utils/config-context';
9
+ // 计算方式下拉选框
10
+ const CalculationSelect = ({ arg, cb, isDate = false }) => {
11
+ const { classPrefix } = useConfig();
12
+ const isH5 = usePlatform() === 'h5'; // 响应式判定
13
+ const [value, setValue] = useState(arg.value);
14
+ const calculation = (value) => {
15
+ setValue(value);
16
+ const fieldCalculation = { ...arg };
17
+ fieldCalculation.value = value;
18
+ const fieldValue = {
19
+ fieldCalculation,
20
+ isRange: value === 'scope',
21
+ };
22
+ if (value === 'scope' || arg.value === 'scope') {
23
+ fieldValue.value = null;
24
+ }
25
+ cb(fieldValue);
26
+ };
27
+ useEffect(() => {
28
+ setValue(arg.value);
29
+ }, [arg]);
30
+ const options = isDate
31
+ ? fieldCalculations[arg.type].filter((i) => i.value !== 'neq')
32
+ : fieldCalculations[arg.type];
33
+ return isH5 ? (_jsx("div", { className: `${classPrefix}-space`, children: options.map((i) => (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx("div", { className: `${classPrefix}-table-wrap-filter__tag ${i.value === value ? 'is-selected ' : ''}`, onClick: () => {
34
+ calculation(i.value);
35
+ }, children: i.text }) }, i.value))) })) : (_jsx(Select, { size: "auto", options: options, value: value, onChange: (value) => calculation(value) }));
36
+ };
37
+ // 筛选项
38
+ export const FilterFieldItem = ({ updateFilterData, ...filterFieldItemConfig }) => {
39
+ const [disabled, setDisabled] = useState(false);
40
+ const { filterType, isRange, label, options, fieldCalculation, value } = filterFieldItemConfig;
41
+ const updateFilterConfig = (value) => {
42
+ const lastFilterConfig = { ...filterFieldItemConfig, ...value };
43
+ updateFilterData(lastFilterConfig);
44
+ };
45
+ useEffect(() => {
46
+ if (['$empty', '$nempty'].includes(fieldCalculation.value)) {
47
+ setDisabled(true);
48
+ }
49
+ else {
50
+ setDisabled(false);
51
+ }
52
+ }, [fieldCalculation.value]);
53
+ const renderFieldItem = () => {
54
+ switch (filterType) {
55
+ case 'datetime':
56
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(DatePickerField, { disabled: disabled, showTime: true, isRange: isRange, updateValue: updateFilterConfig, value: value }) }));
57
+ case 'date':
58
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(DatePickerField, { disabled: disabled, value: value, isRange: isRange, updateValue: updateFilterConfig }) }));
59
+ case 'time':
60
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(TimePickerField, { disabled: disabled, value: value, isRange: isRange, updateValue: updateFilterConfig }) }));
61
+ case 'string':
62
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(InputField, { updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
63
+ case 'number':
64
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(NumberField, { updateValue: updateFilterConfig, value: value, isRange: isRange, disabled: disabled }) }));
65
+ case 'boolean':
66
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectMultipleField, { options: options || [], updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
67
+ case 'x-enumObj':
68
+ return (_jsx(SelectMultipleField
69
+ // @ts-ignore 不存在的属性
70
+ , {
71
+ // @ts-ignore 不存在的属性
72
+ options: options || [], updateValue: updateFilterConfig, value: value, disabled: disabled }));
73
+ case 'x-enum':
74
+ if (filterFieldItemConfig.xMultiSelect) {
75
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectMultipleField, { optionName: filterFieldItemConfig.xOptionName, updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
76
+ }
77
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectField, { optionName: filterFieldItemConfig.xOptionName, updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
78
+ case 'father-son':
79
+ case 'related':
80
+ return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectSearch, { fields: filterFieldItemConfig.fields, format: filterType, childDbName: filterFieldItemConfig.childDbName, value: value, updateValue: updateFilterConfig, dbName: filterFieldItemConfig.dbName, disabled: disabled }) }));
81
+ default:
82
+ return (_jsx(Input, { size: "full", disabled: true, defaultValue: '该类型暂不支持表单筛选器' }));
83
+ }
84
+ };
85
+ return renderFieldItem();
86
+ };
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Tooltip } from 'tea-component';
3
+ import { useConfig } from '../../../../utils/config-context';
4
+ import { usePlatform } from '../../../../utils/platform';
5
+ export const InputAdornment = ({ label, before, children }) => {
6
+ const { classPrefix } = useConfig();
7
+ const isH5 = usePlatform() === 'h5'; // 响应式判定
8
+ return isH5 ? (_jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__label`, children: label }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__controls`, children: before }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__form-wrap ${classPrefix}-table-wrap-filter-item__content`, children: children })] })) : (_jsxs("div", { className: `${classPrefix}-table-wrap-filter-item`, children: [_jsxs("div", { className: `${classPrefix}-table-wrap-filter-item__label`, children: [_jsx("label", { htmlFor: label, children: _jsx(Tooltip, { title: label, children: label }) }), _jsx("span", { className: `${classPrefix}-table-wrap-filter-item__label-extra`, children: before })] }), _jsx("div", { className: `${classPrefix}-table-wrap-filter-item__content`, children: children })] }));
9
+ };
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import { Select, LoadingTip } from 'tea-component';
4
+ import { useChooseList, getDataBaseInfo } from '../../hooks/useChooseList';
5
+ import { DataSource } from '../../../../utils/datasource';
6
+ // 搜索下拉
7
+ export const SelectSearch = ({ value, updateValue, format, childDbName, dbName, fields, disabled = false, }) => {
8
+ // 每次请求数据个数
9
+ const defaultSize = 50;
10
+ const defaultPage = 1;
11
+ const dataSourceAPI = useMemo(() => new DataSource(dbName), [dbName]); // datasource 方法-模型
12
+ const dataBase = useMemo(() => getDataBaseInfo(fields, format, childDbName), [childDbName, fields, format]);
13
+ const primaryColumn = dataBase === null || dataBase === void 0 ? void 0 : dataBase.primaryColumn;
14
+ const [query, setQuery] = useState({
15
+ pageNo: defaultPage,
16
+ pageSize: defaultSize,
17
+ where: [],
18
+ });
19
+ const { result, total, isValidating, empty } = useChooseList({
20
+ dataSourceAPI,
21
+ childDbName,
22
+ queryParams: query,
23
+ primaryColumn: primaryColumn,
24
+ });
25
+ return (_jsx(Select, { disabled: disabled, size: "full", clearable: true, searchable: true, matchButtonWidth: true, appearance: "button", autoClearSearchValue: true, options: result, value: value, bottomTips: isValidating ? _jsx(LoadingTip, {}) : '', onChange: (value) => {
26
+ updateValue({ value });
27
+ }, onOpen: () => {
28
+ empty();
29
+ setQuery({ ...query, pageNo: defaultPage, where: [] });
30
+ }, onScrollBottom: () => {
31
+ if (!isValidating && result.length < total) {
32
+ setQuery((query) => ({
33
+ ...query,
34
+ pageNo: query.pageNo + defaultPage,
35
+ }));
36
+ }
37
+ }, onSearchValueChange: (value) => {
38
+ const where = (value === null || value === void 0 ? void 0 : value.length)
39
+ ? [{ key: primaryColumn, val: `${value}`, rel: 'search' }]
40
+ : [];
41
+ empty();
42
+ setQuery({ ...query, pageNo: defaultPage, where });
43
+ } }));
44
+ };
@@ -0,0 +1,113 @@
1
+ // 计算方式
2
+ export const fieldCalculations = {
3
+ number: [
4
+ { text: '范围', value: 'scope' },
5
+ { text: '等于', value: 'eq' },
6
+ { text: '不等于', value: 'neq' },
7
+ { text: '大于', value: 'gt' },
8
+ { text: '小于', value: 'lt' },
9
+ { text: '大于等于', value: 'gte' },
10
+ { text: '小于等于', value: 'lte' },
11
+ { text: '为空', value: '$empty' },
12
+ { text: '不为空', value: '$nempty' },
13
+ ],
14
+ string: [
15
+ { text: '包含', value: 'search' },
16
+ { text: '不包含', value: 'exclude' },
17
+ { text: '等于', value: 'eq' },
18
+ { text: '不等于', value: 'neq' },
19
+ { text: '开头是', value: 'startWith' },
20
+ { text: '为空', value: '$empty' },
21
+ { text: '不为空', value: '$nempty' },
22
+ ],
23
+ radio: [
24
+ { text: '等于', value: 'eq' },
25
+ { text: '不等于', value: 'neq' },
26
+ { text: '为空', value: '$empty' },
27
+ { text: '不为空', value: '$nempty' },
28
+ ],
29
+ checkbox: [
30
+ { text: '等于任意一个', value: 'in' },
31
+ { text: '不等于任意一个', value: 'nin' },
32
+ { text: '为空', value: '$empty' },
33
+ { text: '不为空', value: '$nempty' },
34
+ ],
35
+ };
36
+ /**
37
+ * 生成筛选配置
38
+ * 1、过滤不支持搜索的字段
39
+ * 2、生成配置
40
+ * 3、枚举/数字需要特殊处理
41
+ * { filterType: 'datetime' | 'date' | 'time' | 'string' |'number' | 'x-enumObj' , isRange: boolean }
42
+ */
43
+ export const filterFieldsGenerate = (fields) => {
44
+ var _a;
45
+ return (_a = fields === null || fields === void 0 ? void 0 : fields.filter((field) => {
46
+ // 不支持搜索的类型
47
+ if (!field)
48
+ return false;
49
+ if (((field === null || field === void 0 ? void 0 : field.type) === 'array' && (field === null || field === void 0 ? void 0 : field.format) === '') ||
50
+ ((field === null || field === void 0 ? void 0 : field.format) === 'father-son' && (field === null || field === void 0 ? void 0 : field.default) === '') ||
51
+ (field === null || field === void 0 ? void 0 : field.type) === 'object' ||
52
+ (field === null || field === void 0 ? void 0 : field.format) === 'x-file' ||
53
+ (field === null || field === void 0 ? void 0 : field.format) === 'x-image' ||
54
+ (field === null || field === void 0 ? void 0 : field.format) === 'x-rtf')
55
+ return false;
56
+ return true;
57
+ })) === null || _a === void 0 ? void 0 : _a.map((i) => {
58
+ var _a, _b;
59
+ // 生成计算方式
60
+ const fieldCalculation = ['string', 'number'].includes(i.type)
61
+ ? { type: i.type, value: fieldCalculations[i.type][0].value }
62
+ : {};
63
+ const filterFieldItemConfig = {
64
+ id: i['x-id'],
65
+ name: i.name,
66
+ value: '',
67
+ isRange: true,
68
+ filterType: i.type,
69
+ label: i.title,
70
+ fieldCalculation,
71
+ options: [],
72
+ };
73
+ if (i.type === 'number' &&
74
+ ['time', 'date', 'datetime'].includes(i.format)) {
75
+ filterFieldItemConfig.filterType = i.format;
76
+ }
77
+ if (i.type === 'boolean') {
78
+ filterFieldItemConfig.filterType = i.type;
79
+ filterFieldItemConfig.options = [
80
+ { value: true, text: '是' },
81
+ { value: false, text: '否' },
82
+ { value: null, text: '空' },
83
+ ];
84
+ filterFieldItemConfig.fieldCalculation.type = 'checkbox';
85
+ filterFieldItemConfig.fieldCalculation.value = 'in';
86
+ }
87
+ if ((_a = i['x-enumObj']) === null || _a === void 0 ? void 0 : _a.length) {
88
+ filterFieldItemConfig.filterType = 'x-enumObj';
89
+ filterFieldItemConfig.options = i['x-enumObj'].map((enumItem) => ({
90
+ value: enumItem === null || enumItem === void 0 ? void 0 : enumItem.value,
91
+ text: enumItem === null || enumItem === void 0 ? void 0 : enumItem.label,
92
+ }));
93
+ filterFieldItemConfig.options.push({ value: null, text: '空' });
94
+ }
95
+ if (i.format === 'x-enum') {
96
+ filterFieldItemConfig.fieldCalculation.value = 'eq';
97
+ filterFieldItemConfig.filterType = i.format;
98
+ filterFieldItemConfig.xMultiSelect = i['x-multi-select'];
99
+ filterFieldItemConfig.xOptionName = i['x-option-name'];
100
+ filterFieldItemConfig.fieldCalculation.type =
101
+ filterFieldItemConfig.xMultiSelect ? 'checkbox' : 'radio';
102
+ filterFieldItemConfig.fieldCalculation.value =
103
+ filterFieldItemConfig.xMultiSelect ? 'in' : 'eq';
104
+ }
105
+ if (i.format === 'father-son' || i.format === 'related') {
106
+ filterFieldItemConfig.filterType = i.format;
107
+ filterFieldItemConfig.childDbName = (_b = i['x-parent']) === null || _b === void 0 ? void 0 : _b.parentDataSourceName;
108
+ filterFieldItemConfig.fieldCalculation.type = 'radio';
109
+ filterFieldItemConfig.fieldCalculation.value = 'eq';
110
+ }
111
+ return filterFieldItemConfig;
112
+ });
113
+ };
@@ -0,0 +1,169 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Row, Col, ConfigProvider, Drawer } from 'tea-component';
4
+ import { formatDateToNumber, dateCalculation } from '../../../../utils/date';
5
+ import isObjectEqual from '../../../../utils/isObjectEqual';
6
+ import { useConfig } from '../../../../utils/config-context';
7
+ import { FilterFieldItem } from './FilterFieldItem';
8
+ import { filterFieldsGenerate } from './filterFieldsGenerate';
9
+ import { WdButton } from '../../../wd-button';
10
+ import { usePlatform } from '../../../../utils/platform';
11
+ // 筛选表单
12
+ export const FilterFieldsPanel = ({ filterFields, fetchData, openMobileFilter, setOpenMobileFilter, }) => {
13
+ const { classPrefix } = useConfig();
14
+ const isH5 = usePlatform() === 'h5'; // 响应式判定
15
+ const [collapse, setCollapse] = useState(true);
16
+ const [initFilterData, setInitFilterData] = useState([]);
17
+ const [filterData, setFilterData] = useState([]);
18
+ const updateFilterData = (filterFieldItemConfig) => {
19
+ const newData = filterData.map((i) => i.id === filterFieldItemConfig.id ? filterFieldItemConfig : i);
20
+ setFilterData(newData);
21
+ };
22
+ useEffect(() => {
23
+ const result = filterFieldsGenerate(filterFields);
24
+ // 筛选字段改变,重新初始化筛选面板
25
+ if (!isObjectEqual(result, initFilterData)) {
26
+ const initFilterData = JSON.parse(JSON.stringify(result));
27
+ setInitFilterData(initFilterData);
28
+ setFilterData(initFilterData);
29
+ }
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ }, [filterFields]);
32
+ const searchHandle = () => {
33
+ let searchValues = [];
34
+ const filterValues = filterData.filter((i) => {
35
+ if (Array.isArray(i.value) &&
36
+ i.filterType === 'number' &&
37
+ i.fieldCalculation.value === 'scope') {
38
+ // 若筛选字段为number类型,且为范围选择时,只要有一个值则返回
39
+ return i.value[0] || i.value[1];
40
+ }
41
+ return !!(i.value && i.value.length);
42
+ });
43
+ // 为空不为空筛选条件
44
+ filterData.forEach((i) => {
45
+ var _a, _b;
46
+ if (['$empty', '$nempty'].includes((_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value)) {
47
+ const $and = searchValues.find((i) => i.$and);
48
+ if ($and) {
49
+ searchValues = searchValues.map((n) => {
50
+ var _a;
51
+ if (n.$and) {
52
+ return {
53
+ $and: [
54
+ ...n.$and,
55
+ { [i.name]: { [(_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value]: '1' } },
56
+ ],
57
+ };
58
+ }
59
+ return n;
60
+ });
61
+ }
62
+ else {
63
+ searchValues.push({
64
+ $and: [{ [i.name]: { [(_b = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _b === void 0 ? void 0 : _b.value]: '1' } }],
65
+ });
66
+ }
67
+ }
68
+ });
69
+ // 值筛选条件
70
+ filterValues.forEach((i) => {
71
+ switch (i.fieldCalculation.value) {
72
+ case 'scope':
73
+ if (i.filterType === 'number') {
74
+ if (i.value[0]) {
75
+ searchValues.push({
76
+ key: i.name,
77
+ val: Number(i.value[0]),
78
+ rel: 'gte',
79
+ });
80
+ }
81
+ if (i.value[1]) {
82
+ searchValues.push({
83
+ key: i.name,
84
+ val: Number(i.value[1]),
85
+ rel: 'lte',
86
+ });
87
+ }
88
+ }
89
+ else {
90
+ searchValues.push({
91
+ key: i.name,
92
+ val: formatDateToNumber(i.filterType, i.value[0]),
93
+ rel: 'gte',
94
+ });
95
+ searchValues.push({
96
+ key: i.name,
97
+ // @ts-ignore 兼容字符串和数字
98
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
99
+ val: formatDateToNumber(i.filterType, i.value[1]) + 999,
100
+ rel: 'lte',
101
+ });
102
+ }
103
+ break;
104
+ case 'exclude':
105
+ searchValues.push({
106
+ key: i.name,
107
+ val: `^((?!${i.value}).)*$`,
108
+ rel: 'regex',
109
+ });
110
+ break;
111
+ case 'startWith':
112
+ searchValues.push({ key: i.name, val: `^${i.value}`, rel: 'regex' });
113
+ break;
114
+ default: {
115
+ const searchItem = {
116
+ key: i.name,
117
+ val: i.value,
118
+ rel: i.fieldCalculation.value,
119
+ };
120
+ if (i.filterType === 'number') {
121
+ searchItem.val = Number(i.value);
122
+ searchValues.push(searchItem);
123
+ }
124
+ else if (['date', 'datetime', 'time'].includes(i.filterType)) {
125
+ searchItem.val = formatDateToNumber(i.filterType, i.value);
126
+ dateCalculation(searchItem, i.filterType).forEach((i) => {
127
+ searchValues.push(i);
128
+ });
129
+ }
130
+ else {
131
+ searchValues.push(searchItem);
132
+ }
133
+ }
134
+ }
135
+ });
136
+ fetchData(searchValues);
137
+ };
138
+ const num = 2;
139
+ const maxlength = 3;
140
+ return (_jsxs(ConfigProvider, { classPrefix: "wedatea2td", children: [_jsx(Drawer, { className: `${classPrefix}-table-mobile-filter-drawer ${classPrefix}-table-wrap-filter ${classPrefix}-h5-table-wrap-filter`, title: "\u7B5B\u9009\u5668", visible: isH5 && openMobileFilter, onClose: () => {
141
+ setOpenMobileFilter(false);
142
+ }, children: _jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__body`, children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i) => (_jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields }, i.id))) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__footer`, children: _jsxs("div", { className: `${classPrefix}-table-wrap-filter__btn`, children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", variant: "outline", size: "lg", text: "\u91CD\u7F6E", events: {
143
+ tap: () => {
144
+ setFilterData(initFilterData);
145
+ fetchData();
146
+ setOpenMobileFilter(false);
147
+ },
148
+ } }) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", size: "lg", text: "\u786E\u5B9A", events: {
149
+ tap: () => {
150
+ searchHandle();
151
+ setOpenMobileFilter(false);
152
+ },
153
+ } }) })] }) })] }) }), !isH5 && !!filterData.length && (_jsx("div", { className: `${classPrefix}-table-wrap-filter`, children: _jsxs(Row, { gap: 20, verticalAlign: 'bottom', style: { justifyContent: 'space-between' }, children: [_jsx(_Fragment, { children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i, index) => (_jsx(Col, { span: 6, style: {
154
+ display: `${index > num && collapse ? 'none' : 'block'}`,
155
+ }, children: _jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields }) }, i.id))) }), _jsx(Col, { span: 24, style: { flex: '1', textAlign: 'right' }, children: _jsxs("div", { className: `${classPrefix}-space`, children: [_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "secondary", text: "\u91CD\u7F6E", events: {
156
+ tap: () => {
157
+ setFilterData(initFilterData);
158
+ fetchData();
159
+ },
160
+ } }) }), _jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "primary", text: "\u67E5\u8BE2", events: {
161
+ tap: () => {
162
+ searchHandle();
163
+ },
164
+ } }) }), filterData.length > maxlength && (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { icon: collapse ? 'td:chevron-down' : 'td:chevron-up', iconType: "icon-only", theme: "secondary", variant: "text", size: "md", events: {
165
+ tap: () => {
166
+ setCollapse(!collapse);
167
+ },
168
+ } }) }))] }) }, "search-button")] }) }))] }));
169
+ };
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ImportFileModalByApi as ImportFileModalByApiFromTable } from '../../../table/ImportFileModalByApi';
3
+ import { alertErrorMessage } from '../../../../utils/platform';
4
+ import { ConfigProvider } from 'tea-component';
5
+ /**
6
+ * 后端导入弹窗
7
+ */
8
+ export const ImportFileModal = ({ fields, isImportFileModalByApiVisible, datasourceTitle, dbName, setIsImportFileModalByApiVisible, setIsInOrOutRecordModalVisible, refresh, }) => {
9
+ var _a;
10
+ const supportFields = (_a = fields
11
+ .filter((field) => {
12
+ // 不支持上传的类型
13
+ if (!field)
14
+ return false;
15
+ if (field['x-system'])
16
+ return false;
17
+ // 计算公式不支持
18
+ if (field['format'] === 'function')
19
+ return false;
20
+ // 关联模型的字段不支持
21
+ if ((field === null || field === void 0 ? void 0 : field['x-viewType']) === 'RELATION_VIEW')
22
+ return false;
23
+ return true;
24
+ })) === 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']));
25
+ return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: isImportFileModalByApiVisible && (_jsx(ImportFileModalByApiFromTable, { fields: supportFields, visible: isImportFileModalByApiVisible, datasourceTitle: datasourceTitle, dbName: dbName, onCancel: () => {
26
+ setIsImportFileModalByApiVisible(false);
27
+ }, handleInOrOutRecordModealVisible: setIsInOrOutRecordModalVisible, refresh: refresh })) }));
28
+ };
29
+ /**
30
+ * 后端表格导入方法
31
+ */
32
+ export const importHandleByApi = ({ isModel, isH5, setIsImportFileModalByApiVisible, }) => {
33
+ if (!isModel) {
34
+ return alertErrorMessage({
35
+ message: '当前表格组件绑定了APIs,暂不支持进行数据导入',
36
+ });
37
+ }
38
+ if (isH5) {
39
+ return alertErrorMessage({
40
+ message: '移动端暂不支持进行数据导入',
41
+ });
42
+ }
43
+ setIsImportFileModalByApiVisible(true);
44
+ };
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { InOrOutRecordModeal as InOrOutRecordModalComp } from '../../table/InOrOutRecordModeal';
3
+ import { ConfigProvider } from 'tea-component';
4
+ /*
5
+ 导入导出记录弹窗
6
+ */
7
+ export const InOrOutRecordModal = ({ isInOrOutRecordModalVisible, dbName, setIsImportFileModalByApiVisible, setIsExportFileModalByApiVisible, setIsInOrOutRecordModalVisible, }) => {
8
+ return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: isInOrOutRecordModalVisible && (_jsx(InOrOutRecordModalComp, { visible: isInOrOutRecordModalVisible, dbName: dbName, onCancel: () => {
9
+ isInOrOutRecordModalVisible === 'import'
10
+ ? setIsImportFileModalByApiVisible(true)
11
+ : setIsExportFileModalByApiVisible(true);
12
+ setIsInOrOutRecordModalVisible(false);
13
+ } })) }));
14
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useConfig } from '../../../../utils/config-context';
3
+ import WdIcon from '../../../wd-icon';
4
+ const defaultTotal = 0;
5
+ export const Pagination = ({ total = defaultTotal, pageIndex, pageSize, onPagingChange, }) => {
6
+ const pagingChangeHandle = () => {
7
+ onPagingChange();
8
+ };
9
+ const { classPrefix } = useConfig();
10
+ return (_jsxs("div", { className: `${classPrefix}-pagination`, children: [_jsx("div", { className: `${classPrefix}-pagination__state`, children: _jsxs("span", { className: `${classPrefix}-pagination__text`, children: ["\u5171 ", _jsx("strong", { children: total }), " \u6761"] }) }), _jsxs("div", { className: `${classPrefix}-pagination__operate`, children: [_jsx("span", { className: `${classPrefix}-pagination__btn is-disabled`, children: _jsx(WdIcon, { name: "td:chevron-left-double" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: _jsx(WdIcon, { name: "td:chevron-left" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn is-selected`, children: pageIndex }), _jsx("span", { className: `${classPrefix}-pagination__btn `, onClick: pagingChangeHandle, children: "2" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "3" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "4" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "5" }), _jsx("span", { className: `${classPrefix}-pagination__btn ${classPrefix}-pagination__btn--borderless `, children: _jsx(WdIcon, { name: "td:ellipsis" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "90" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: _jsx(WdIcon, { name: "td:chevron-right" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn is-disabled`, children: _jsx(WdIcon, { name: "td:chevron-right-double" }) }), _jsx("div", { className: `${classPrefix}-pagination__manualinput`, children: _jsxs("span", { className: `${classPrefix}-pagination__totalpage`, children: [pageSize, "/ 100 \u9875"] }) })] })] }));
11
+ };
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, TagSearchBox, useClassNames, ConfigProvider, } from 'tea-component';
3
+ import { alertErrorMessage } from '../../../../utils/platform';
4
+ import { getSearchAttributes, filterCustomFields } from '../FieldRender';
5
+ export const SearchBox = ({ searchValues, fields, columnSets, fetchData, refresh, }) => {
6
+ const { Margin } = useClassNames();
7
+ // 搜索框字段按列管理过滤
8
+ const searchFields = filterCustomFields({ fields, columnSets });
9
+ return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs("div", { className: "modal-table__search", style: { width: '100%' }, children: [_jsx(TagSearchBox, { className: "modal-table__search-input", hideHelp: true, minWidth: 400, tips: (searchValues === null || searchValues === void 0 ? void 0 : searchValues.length) ? '' : '搜索', attributesSelectTips: "\u9009\u62E9\u8FDB\u884C\u641C\u7D22\u7684\u5B57\u6BB5", attributes: getSearchAttributes(searchFields),
10
+ // 清空查询
11
+ onClearButtonClick: () => {
12
+ fetchData({ searchValues: [], pageIndex: 1 });
13
+ }, onChange: (tags) => {
14
+ const searchValues = tags
15
+ .map((item) => {
16
+ var _a, _b, _c;
17
+ // 没有选择 key
18
+ if (!item.attr) {
19
+ alertErrorMessage({ message: '请选择搜索关键字' });
20
+ return null;
21
+ }
22
+ const { key } = item.attr;
23
+ let val = ((_a = item.values[0]) === null || _a === void 0 ? void 0 : _a.key) === undefined
24
+ ? (_b = item.values[0]) === null || _b === void 0 ? void 0 : _b.name
25
+ : (_c = item.values[0]) === null || _c === void 0 ? void 0 : _c.key;
26
+ let rel = 'search';
27
+ // 过滤无效搜索值
28
+ if (val === undefined) {
29
+ return null;
30
+ }
31
+ // 字符串转换成数字
32
+ if (item.attr.fieldType === 'number') {
33
+ val = Number(val);
34
+ }
35
+ // 枚举-旧/数字/布尔用 eq,新枚举 TODO
36
+ if (['number', 'boolean'].includes(item.attr.fieldType) ||
37
+ item.attr.format === 'x-enum') {
38
+ rel = 'eq';
39
+ }
40
+ return { key, val, rel };
41
+ })
42
+ .filter((item) => item);
43
+ fetchData({ searchValues });
44
+ } }), _jsx(Button, { className: Margin.Left['2n'], icon: "refresh", title: "\u5237\u65B0", onClick: refresh })] }) }));
45
+ };