@cloudbase/weda-ui 3.4.1 → 3.4.3

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 (398) hide show
  1. package/dist/configs/actions/showModal.json +21 -0
  2. package/dist/configs/actions/showToast.json +11 -2
  3. package/dist/configs/components/auth.json +2 -1
  4. package/dist/configs/components/button.js +240 -0
  5. package/dist/configs/components/calendar.json +4 -2
  6. package/dist/configs/components/carousel.json +3 -2
  7. package/dist/configs/components/chart/bar.json +5 -4
  8. package/dist/configs/components/chart/line.js +868 -0
  9. package/dist/configs/components/chart/pie.json +5 -4
  10. package/dist/configs/components/chart/statisticsCard.json +9 -8
  11. package/dist/configs/components/container.js +64 -0
  12. package/dist/configs/components/dataView.json +18 -3
  13. package/dist/configs/components/drawer.json +2 -1
  14. package/dist/configs/components/flow/flow.json +26 -0
  15. package/dist/configs/components/flow/flowbasic.json +122 -0
  16. package/dist/configs/components/flow/flowchart.json +22 -0
  17. package/dist/configs/components/flow/flowcontrol.json +66 -0
  18. package/dist/configs/components/flow/flowlayout.json +31 -0
  19. package/dist/configs/components/flow/flowprocess.json +122 -0
  20. package/dist/configs/components/form/checkbox.json +2 -1
  21. package/dist/configs/components/form/departTreeSelect.json +2 -1
  22. package/dist/configs/components/form/form.json +3 -2
  23. package/dist/configs/components/form/input.json +2 -1
  24. package/dist/configs/components/form/location.json +3 -2
  25. package/dist/configs/components/form/radio.json +2 -1
  26. package/dist/configs/components/form/richText.json +2 -1
  27. package/dist/configs/components/form/select.json +6 -1
  28. package/dist/configs/components/form/switch.json +2 -1
  29. package/dist/configs/components/form/textarea.json +2 -1
  30. package/dist/configs/components/form/tips.json +2 -1
  31. package/dist/configs/components/form/uploader.json +2 -1
  32. package/dist/configs/components/form/uploaderFile.json +2 -1
  33. package/dist/configs/components/form/userTreeSelect.json +2 -1
  34. package/dist/configs/components/formdetail.json +5 -3
  35. package/dist/configs/components/graphicCard.json +3 -2
  36. package/dist/configs/components/image.js +195 -0
  37. package/dist/configs/components/link.js +68 -0
  38. package/dist/configs/components/listView.json +72 -10
  39. package/dist/configs/components/lottery.json +7 -3
  40. package/dist/configs/components/modal.js +72 -0
  41. package/dist/configs/components/navLayout.json +4 -3
  42. package/dist/configs/components/navigationBar.json +4 -3
  43. package/dist/configs/components/pagelayout.json +31 -0
  44. package/dist/configs/components/richtextview.json +5 -4
  45. package/dist/configs/components/scrollVeiw.json +98 -75
  46. package/dist/configs/components/slot.json +2 -1
  47. package/dist/configs/components/swiper.json +4 -3
  48. package/dist/configs/components/table.json +734 -0
  49. package/dist/configs/components/tabs.js +120 -0
  50. package/dist/configs/components/text.js +109 -0
  51. package/dist/configs/components/wd-bubble.json +170 -0
  52. package/dist/configs/components/wedaVideo.json +8 -3
  53. package/dist/configs/components/wxOpenApi/phone.js +126 -0
  54. package/dist/configs/components/wxOpenApi/phoneCode.js +117 -0
  55. package/dist/configs/components/wxOpenApi/share.js +164 -0
  56. package/dist/configs/components/wxOpenApi/userInfo.js +168 -0
  57. package/dist/configs/index.js +30 -12
  58. package/dist/configs/type-utils/index.js +89 -0
  59. package/dist/web/components/button/index.js +1 -1
  60. package/dist/web/components/carousel/index.js +10 -5
  61. package/dist/web/components/flow/components/FlowModuleText/Content.js +6 -0
  62. package/dist/web/components/flow/components/FlowModuleText/Title.js +16 -0
  63. package/dist/web/components/flow/components/FlowModuleText/index.css +7 -0
  64. package/dist/web/components/flow/components/FlowModuleText/index.js +7 -0
  65. package/dist/web/components/flow/components/FlowModuleText/utils.js +34 -0
  66. package/dist/web/components/flow/components/FlowStatusText/index.js +37 -0
  67. package/dist/web/components/flow/components/FlowUserSelect/index.css +119 -0
  68. package/dist/web/components/flow/components/FlowUserSelect/index.js +115 -0
  69. package/dist/web/components/flow/components/HighLightComment/index.js +31 -0
  70. package/dist/web/components/flow/components/HighlightTextarea/index.css +45 -0
  71. package/dist/web/components/flow/components/HighlightTextarea/index.js +131 -0
  72. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +71 -0
  73. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +11 -0
  74. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +83 -0
  75. package/dist/web/components/flow/components/UserSelectModel/index.js +18 -0
  76. package/dist/web/components/flow/components/WedaUserTransfer/index.css +6 -0
  77. package/dist/web/components/flow/components/WedaUserTransfer/index.js +162 -0
  78. package/dist/web/components/flow/components/index.js +7 -0
  79. package/dist/web/components/flow/constants/index.js +65 -0
  80. package/dist/web/components/flow/frame/getCommonFlowData.js +78 -0
  81. package/dist/web/components/flow/frame/hooks/index.js +2 -0
  82. package/dist/web/components/flow/frame/hooks/useCommonFlowRequest.js +148 -0
  83. package/dist/web/components/flow/frame/hooks/useElementMediaQuery.js +15 -0
  84. package/dist/web/components/flow/frame/index.js +58 -0
  85. package/dist/web/components/flow/frame/types.js +265 -0
  86. package/dist/web/components/flow/frame/utils.js +81 -0
  87. package/dist/web/components/flow/modules/basic/Basic.css +19 -0
  88. package/dist/web/components/flow/modules/basic/Basic.js +48 -0
  89. package/dist/web/components/flow/modules/basic/BasicMobile.css +32 -0
  90. package/dist/web/components/flow/modules/basic/BasicMobile.js +41 -0
  91. package/dist/web/components/flow/modules/basic/index.js +13 -0
  92. package/dist/web/components/flow/modules/basic/utils.js +20 -0
  93. package/dist/web/components/flow/modules/chart/Chart.js +302 -0
  94. package/dist/web/components/flow/modules/chart/constants.js +28 -0
  95. package/dist/web/components/flow/modules/chart/index.css +90 -0
  96. package/dist/web/components/flow/modules/chart/index.js +5 -0
  97. package/dist/web/components/flow/modules/combination/index.js +21 -0
  98. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +147 -0
  99. package/dist/web/components/flow/modules/control/ApprovalDrawer.js +178 -0
  100. package/dist/web/components/flow/modules/control/ApprovalPopup.css +118 -0
  101. package/dist/web/components/flow/modules/control/ApprovalPopup.js +237 -0
  102. package/dist/web/components/flow/modules/control/Control.css +32 -0
  103. package/dist/web/components/flow/modules/control/Control.js +90 -0
  104. package/dist/web/components/flow/modules/control/ControlMobile.css +72 -0
  105. package/dist/web/components/flow/modules/control/ControlMobile.js +133 -0
  106. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +6 -0
  107. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +31 -0
  108. package/dist/web/components/flow/modules/control/constants/index.js +35 -0
  109. package/dist/web/components/flow/modules/control/index.js +15 -0
  110. package/dist/web/components/flow/modules/control/provider/index.js +17 -0
  111. package/dist/web/components/flow/modules/control/provider/useControlModel.js +243 -0
  112. package/dist/web/components/flow/modules/control/provider/useMobileModel.js +86 -0
  113. package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +82 -0
  114. package/dist/web/components/flow/modules/control/utils/ControlModelUtils.js +57 -0
  115. package/dist/web/components/flow/modules/control/utils/index.js +2 -0
  116. package/dist/web/components/flow/modules/layout/index.css +9 -0
  117. package/dist/web/components/flow/modules/layout/index.js +22 -0
  118. package/dist/web/components/flow/modules/process/Process.js +73 -0
  119. package/dist/web/components/flow/modules/process/ProcessMobile.js +81 -0
  120. package/dist/web/components/flow/modules/process/index.css +188 -0
  121. package/dist/web/components/flow/modules/process/index.js +14 -0
  122. package/dist/web/components/flow/modules/process/utils/index.js +32 -0
  123. package/dist/web/components/flow/services/flow.js +111 -0
  124. package/dist/web/components/flow/services/ideData/chart.js +88 -0
  125. package/dist/web/components/flow/services/ideData/index.js +5 -0
  126. package/dist/web/components/flow/services/ideData/instance.js +23 -0
  127. package/dist/web/components/flow/services/ideData/pageDetail.js +41 -0
  128. package/dist/web/components/flow/services/ideData/process.js +27 -0
  129. package/dist/web/components/flow/services/index.js +2 -0
  130. package/dist/web/components/flow/services/user.js +23 -0
  131. package/dist/web/components/flow/services/utils.js +28 -0
  132. package/dist/web/components/form/enumSelect/NormalSelect.js +1 -1
  133. package/dist/web/components/form/form/index.js +19 -7
  134. package/dist/web/components/form/input/index.css +6 -1
  135. package/dist/web/components/form/input/index.js +1 -1
  136. package/dist/web/components/form/select/allTimePicker/dataUtils.js +10 -0
  137. package/dist/web/components/form/select/allTimePicker/index.js +36 -27
  138. package/dist/web/components/form/select/dropdown-select/h5.js +130 -0
  139. package/dist/web/components/form/select/dropdown-select/index.css +159 -0
  140. package/dist/web/components/form/select/dropdown-select/index.js +173 -0
  141. package/dist/web/components/form/select/dropdown-select/pc.js +73 -0
  142. package/dist/web/components/form/select/dropdown-select/ui.js +42 -40
  143. package/dist/web/components/form/select/h5.js +16 -6
  144. package/dist/web/components/form/select/index.css +8 -1
  145. package/dist/web/components/form/select/index.js +5 -7
  146. package/dist/web/components/form/select/request.js +106 -0
  147. package/dist/web/components/form/select/status/allEmpty.js +5 -0
  148. package/dist/web/components/form/select/status/empty.js +18 -0
  149. package/dist/web/components/form/select/status/index.css +66 -0
  150. package/dist/web/components/form/select/status/index.js +7 -0
  151. package/dist/web/components/form/select/status/loading.js +20 -0
  152. package/dist/web/components/form/select/status/propsType.js +1 -0
  153. package/dist/web/components/form/select/status/retry.js +20 -0
  154. package/dist/web/components/form/switch/index.js +1 -1
  155. package/dist/web/components/form/textarea/index.js +1 -1
  156. package/dist/web/components/form/uploader/uploader.h5.js +4 -4
  157. package/dist/web/components/form/uploader/uploader.pc.js +1 -1
  158. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +1 -1
  159. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +1 -1
  160. package/dist/web/components/form/userOrgSelect/comTool.js +2 -4
  161. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +194 -0
  162. package/dist/web/components/form/userOrgSelect/common/types.js +1 -0
  163. package/dist/web/components/form/userOrgSelect/common/utils.js +15 -0
  164. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +3 -4
  165. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +4 -5
  166. package/dist/web/components/form/userOrgSelect/getUserService.js +10 -5
  167. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +93 -0
  168. package/dist/web/components/form/userOrgSelect/index.js +1 -1
  169. package/dist/web/components/form/userOrgSelect/user-select-pc/error-tips.js +11 -0
  170. package/dist/web/components/form/userOrgSelect/user-select-pc/index.css +216 -0
  171. package/dist/web/components/form/userOrgSelect/user-select-pc/index.js +195 -0
  172. package/dist/web/components/form/userOrgSelect/user-select-pc/model-user-list.js +99 -0
  173. package/dist/web/components/form/userOrgSelect/user-select-pc/org-tree.js +15 -0
  174. package/dist/web/components/form/userOrgSelect/user-select-pc/search-user.js +80 -0
  175. package/dist/web/components/form/userOrgSelect/user-select-pc/selected-user-list.js +12 -0
  176. package/dist/web/components/form/userOrgSelect/user-select-pc/user-model.js +36 -0
  177. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +72 -50
  178. package/dist/web/components/image/index.js +1 -1
  179. package/dist/web/components/index.js +17 -0
  180. package/dist/web/components/listView/index.css +9 -1
  181. package/dist/web/components/listView/index.js +66 -50
  182. package/dist/web/components/modal/modal.h5.js +1 -1
  183. package/dist/web/components/modal/modal.pc.js +1 -1
  184. package/dist/web/components/navigationBar/index.css +2 -1
  185. package/dist/web/components/pageLayout/PageContent/index.css +28 -0
  186. package/dist/web/components/pageLayout/PageContent/index.js +81 -0
  187. package/dist/web/components/pageLayout/index.css +7 -0
  188. package/dist/web/components/pageLayout/index.js +21 -0
  189. package/dist/web/components/phoneCode/index.js +1 -0
  190. package/dist/web/components/richText/index.css +5 -1
  191. package/dist/web/components/richText/index.js +2 -2
  192. package/dist/web/components/richText/richtext.module.css +2 -2
  193. package/dist/web/components/table/BaseTable.js +1171 -0
  194. package/dist/web/components/table/FieldRender.js +622 -0
  195. package/dist/web/components/table/FilterFields.js +512 -0
  196. package/dist/web/components/table/Form/Enum.js +56 -0
  197. package/dist/web/components/table/Form/Location.css +14 -0
  198. package/dist/web/components/table/Form/Location.js +126 -0
  199. package/dist/web/components/table/ImportFileModal/csvTemplate.json +547 -0
  200. package/dist/web/components/table/ImportFileModal/index.css +263 -0
  201. package/dist/web/components/table/ImportFileModal/index.js +310 -0
  202. package/dist/web/components/table/ImportFileModal/submitFormatter.js +32 -0
  203. package/dist/web/components/table/ImportFileModal/validate.js +127 -0
  204. package/dist/web/components/table/QuoteModal.js +16 -0
  205. package/dist/web/components/table/SelectableBlock/index.css +2 -0
  206. package/dist/web/components/table/SelectableBlock/index.js +81 -0
  207. package/dist/web/components/table/UserDepartment/ViewCell.js +11 -0
  208. package/dist/web/components/table/UserDepartment/utils.js +80 -0
  209. package/dist/web/components/table/UserDepartment/viewCell.css +14 -0
  210. package/dist/web/components/table/index.css +569 -0
  211. package/dist/web/components/table/index.js +109 -0
  212. package/dist/web/components/tabs/tabs.h5.js +1 -1
  213. package/dist/web/components/tabs/tabs.pc.js +1 -1
  214. package/dist/web/components/text/index.css +2 -1
  215. package/dist/web/components/text/index.js +2 -2
  216. package/dist/web/components/uploaderFileView/index.js +6 -5
  217. package/dist/web/components/wd-bubble/index.css +21 -0
  218. package/dist/web/components/wd-bubble/index.js +17 -0
  219. package/dist/web/components/wedaVideo/index.js +1 -1
  220. package/dist/web/index.js +1 -0
  221. package/dist/web/utils/constant.js +94 -1
  222. package/dist/web/utils/datasource.js +357 -0
  223. package/dist/web/utils/date.js +137 -0
  224. package/dist/web/utils/file.js +168 -0
  225. package/dist/web/utils/getPageQuery.js +16 -0
  226. package/dist/web/utils/hooks/EnumHoc.js +61 -0
  227. package/dist/web/utils/hooks/context.js +24 -0
  228. package/dist/web/utils/hooks/globalConnect.js +26 -0
  229. package/dist/web/utils/{use-cloud-id-temp-url.js → hooks/use-cloud-id-temp-url.js} +2 -2
  230. package/dist/web/utils/hooks/useRequest.js +25 -0
  231. package/dist/web/utils/{useSetState.js → hooks/useSetState.js} +0 -0
  232. package/dist/web/utils/{useSyncValue.js → hooks/useSyncValue.js} +0 -0
  233. package/dist/web/utils/platform.js +112 -23
  234. package/dist/web/utils/tcb.js +30 -8
  235. package/dist/web/utils/tool.js +21 -0
  236. package/package.json +26 -4
  237. package/dist/configs/components/button.json +0 -239
  238. package/dist/configs/components/chart/line.json +0 -881
  239. package/dist/configs/components/container.json +0 -64
  240. package/dist/configs/components/image.json +0 -190
  241. package/dist/configs/components/link.json +0 -82
  242. package/dist/configs/components/modal.json +0 -72
  243. package/dist/configs/components/tabs.json +0 -122
  244. package/dist/configs/components/text.json +0 -112
  245. package/dist/configs/components/wxOpenApi/phone.json +0 -127
  246. package/dist/configs/components/wxOpenApi/phoneCode.json +0 -109
  247. package/dist/configs/components/wxOpenApi/share.json +0 -160
  248. package/dist/configs/components/wxOpenApi/userInfo.json +0 -168
  249. package/dist/configs/index.d.ts +0 -105
  250. package/dist/docs/common/format.d.ts +0 -13
  251. package/dist/docs/common/tableView.d.ts +0 -30
  252. package/dist/index.d.ts +0 -2
  253. package/dist/setupTests.d.ts +0 -2
  254. package/dist/web/actions/index.d.ts +0 -3
  255. package/dist/web/actions/showMessage/index.d.ts +0 -17
  256. package/dist/web/actions/showModal/index.d.ts +0 -4
  257. package/dist/web/actions/showToast/index.d.ts +0 -1
  258. package/dist/web/components/button/index.d.ts +0 -33
  259. package/dist/web/components/calendar/index.d.ts +0 -19
  260. package/dist/web/components/calendar/util.d.ts +0 -13
  261. package/dist/web/components/carousel/index.d.ts +0 -41
  262. package/dist/web/components/chart/bar/index.d.ts +0 -3
  263. package/dist/web/components/chart/bar/index.old.d.ts +0 -40
  264. package/dist/web/components/chart/common/Chart.d.ts +0 -9
  265. package/dist/web/components/chart/common/chart-custom-connector.d.ts +0 -6
  266. package/dist/web/components/chart/common/chart-error.d.ts +0 -2
  267. package/dist/web/components/chart/common/config/bar.d.ts +0 -48
  268. package/dist/web/components/chart/common/config/global.d.ts +0 -13
  269. package/dist/web/components/chart/common/config/line.d.ts +0 -46
  270. package/dist/web/components/chart/common/config/pie.d.ts +0 -29
  271. package/dist/web/components/chart/common/core/eChartBar.d.ts +0 -66
  272. package/dist/web/components/chart/common/core/eChartBase.d.ts +0 -127
  273. package/dist/web/components/chart/common/core/eChartLine.d.ts +0 -60
  274. package/dist/web/components/chart/common/core/eChartPie.d.ts +0 -48
  275. package/dist/web/components/chart/common/core/type.d.ts +0 -35
  276. package/dist/web/components/chart/common/data-transform.d.ts +0 -8
  277. package/dist/web/components/chart/common/echarts.d.ts +0 -5
  278. package/dist/web/components/chart/common/useChart.d.ts +0 -8
  279. package/dist/web/components/chart/line/index.d.ts +0 -3
  280. package/dist/web/components/chart/line/index.old.d.ts +0 -38
  281. package/dist/web/components/chart/pie/index.d.ts +0 -3
  282. package/dist/web/components/chart/pie/index.old.d.ts +0 -27
  283. package/dist/web/components/chart/statisticsCard/index.d.ts +0 -85
  284. package/dist/web/components/chart/statisticsCard/interface.d.ts +0 -13
  285. package/dist/web/components/common/error-boundary.d.ts +0 -5
  286. package/dist/web/components/common/portal.d.ts +0 -7
  287. package/dist/web/components/common/use-loop-render-detect.d.ts +0 -11
  288. package/dist/web/components/container/index.d.ts +0 -6
  289. package/dist/web/components/dataView/index.d.ts +0 -6
  290. package/dist/web/components/dataView/interface.d.ts +0 -5
  291. package/dist/web/components/drawer/index.d.ts +0 -13
  292. package/dist/web/components/form/checkbox/index.d.ts +0 -13
  293. package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +0 -78
  294. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +0 -83
  295. package/dist/web/components/form/enumSelect/SelectContainer.d.ts +0 -16
  296. package/dist/web/components/form/enumSelect/index.d.ts +0 -82
  297. package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +0 -34
  298. package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +0 -39
  299. package/dist/web/components/form/form/index.d.ts +0 -32
  300. package/dist/web/components/form/formcell/index.d.ts +0 -8
  301. package/dist/web/components/form/input/index.d.ts +0 -14
  302. package/dist/web/components/form/location/common/mapChoose.d.ts +0 -15
  303. package/dist/web/components/form/location/common/mapView.d.ts +0 -19
  304. package/dist/web/components/form/location/common/propsConfig.d.ts +0 -59
  305. package/dist/web/components/form/location/common/selectModal.d.ts +0 -21
  306. package/dist/web/components/form/location/common/useLocationInfo.d.ts +0 -36
  307. package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +0 -8
  308. package/dist/web/components/form/location/components/LocationPC/Header.d.ts +0 -12
  309. package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +0 -8
  310. package/dist/web/components/form/location/constants.d.ts +0 -2
  311. package/dist/web/components/form/location/index.d.ts +0 -1
  312. package/dist/web/components/form/radio/index.d.ts +0 -11
  313. package/dist/web/components/form/renderDecorator.d.ts +0 -6
  314. package/dist/web/components/form/select/allTimePicker/calendar.d.ts +0 -13
  315. package/dist/web/components/form/select/allTimePicker/dataUtils.d.ts +0 -24
  316. package/dist/web/components/form/select/allTimePicker/index.d.ts +0 -14
  317. package/dist/web/components/form/select/dropdown-select/ui.d.ts +0 -15
  318. package/dist/web/components/form/select/h5.d.ts +0 -16
  319. package/dist/web/components/form/select/index.d.ts +0 -66
  320. package/dist/web/components/form/select/region/index.d.ts +0 -6
  321. package/dist/web/components/form/select/time.d.ts +0 -9
  322. package/dist/web/components/form/select/use-options.d.ts +0 -26
  323. package/dist/web/components/form/select/use-options.js +0 -103
  324. package/dist/web/components/form/select/year.d.ts +0 -7
  325. package/dist/web/components/form/switch/index.d.ts +0 -6
  326. package/dist/web/components/form/textarea/index.d.ts +0 -12
  327. package/dist/web/components/form/tips/index.d.ts +0 -8
  328. package/dist/web/components/form/uploader/index.d.ts +0 -3
  329. package/dist/web/components/form/uploader/uploader.h5.d.ts +0 -20
  330. package/dist/web/components/form/uploader/uploader.pc.d.ts +0 -30
  331. package/dist/web/components/form/uploaderFile/index.d.ts +0 -4
  332. package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +0 -23
  333. package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +0 -35
  334. package/dist/web/components/form/userOrgSelect/comTool.d.ts +0 -8
  335. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +0 -19
  336. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +0 -4
  337. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +0 -2
  338. package/dist/web/components/form/userOrgSelect/getUserService.d.ts +0 -11
  339. package/dist/web/components/form/userOrgSelect/index.d.ts +0 -2
  340. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +0 -27
  341. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +0 -9
  342. package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.js +0 -271
  343. package/dist/web/components/form/userOrgSelect/utils.d.ts +0 -37
  344. package/dist/web/components/formdetail/index.d.ts +0 -31
  345. package/dist/web/components/graphicCard/index.d.ts +0 -47
  346. package/dist/web/components/image/image.d.ts +0 -9
  347. package/dist/web/components/image/index.d.ts +0 -13
  348. package/dist/web/components/index.d.ts +0 -50
  349. package/dist/web/components/link/index.d.ts +0 -24
  350. package/dist/web/components/listView/index.d.ts +0 -7
  351. package/dist/web/components/listView/interface.d.ts +0 -127
  352. package/dist/web/components/lottery/index.d.ts +0 -22
  353. package/dist/web/components/lottery/lotteryUtil.d.ts +0 -23
  354. package/dist/web/components/modal/index.d.ts +0 -17
  355. package/dist/web/components/modal/modal.h5.d.ts +0 -4
  356. package/dist/web/components/modal/modal.pc.d.ts +0 -3
  357. package/dist/web/components/navLayout/index.d.ts +0 -65
  358. package/dist/web/components/navigationBar/common.d.ts +0 -15
  359. package/dist/web/components/navigationBar/h5Menu.d.ts +0 -14
  360. package/dist/web/components/navigationBar/horizontalMenu.d.ts +0 -12
  361. package/dist/web/components/navigationBar/index.d.ts +0 -13
  362. package/dist/web/components/navigationBar/verticalMenu.d.ts +0 -13
  363. package/dist/web/components/phone/index.d.ts +0 -18
  364. package/dist/web/components/phoneCode/index.d.ts +0 -18
  365. package/dist/web/components/picker/datePicker.d.ts +0 -10
  366. package/dist/web/components/picker/picker.d.ts +0 -6
  367. package/dist/web/components/picker/timePicker.d.ts +0 -7
  368. package/dist/web/components/richText/const.d.ts +0 -1
  369. package/dist/web/components/richText/index.d.ts +0 -50
  370. package/dist/web/components/richTextView/index.d.ts +0 -7
  371. package/dist/web/components/scrollView/index.d.ts +0 -25
  372. package/dist/web/components/share/index.d.ts +0 -34
  373. package/dist/web/components/slot/index.d.ts +0 -6
  374. package/dist/web/components/swiper/index.d.ts +0 -24
  375. package/dist/web/components/tabs/index.d.ts +0 -13
  376. package/dist/web/components/tabs/tabs.h5.d.ts +0 -4
  377. package/dist/web/components/tabs/tabs.pc.d.ts +0 -3
  378. package/dist/web/components/text/index.d.ts +0 -15
  379. package/dist/web/components/uploaderFileView/index.d.ts +0 -10
  380. package/dist/web/components/uploaderView/index.d.ts +0 -17
  381. package/dist/web/components/userInfo/index.d.ts +0 -26
  382. package/dist/web/components/wedaVideo/index.d.ts +0 -17
  383. package/dist/web/index.d.ts +0 -8
  384. package/dist/web/utils/classnames.d.ts +0 -2
  385. package/dist/web/utils/console.d.ts +0 -3
  386. package/dist/web/utils/constant.d.ts +0 -23
  387. package/dist/web/utils/debounce.d.ts +0 -2
  388. package/dist/web/utils/getLocalCounter.d.ts +0 -1
  389. package/dist/web/utils/isObjectEqual.d.ts +0 -2
  390. package/dist/web/utils/loading-fallback.d.ts +0 -2
  391. package/dist/web/utils/lodash.d.ts +0 -1
  392. package/dist/web/utils/platform.d.ts +0 -28
  393. package/dist/web/utils/tcb.d.ts +0 -33
  394. package/dist/web/utils/tmap.d.ts +0 -3
  395. package/dist/web/utils/use-cloud-id-temp-url.d.ts +0 -1
  396. package/dist/web/utils/useSetState.d.ts +0 -1
  397. package/dist/web/utils/useSyncValue.d.ts +0 -4
  398. package/dist/web/utils/weui.d.ts +0 -1
@@ -0,0 +1,622 @@
1
+ import React, { useMemo } from 'react';
2
+ import { useMediaQuery } from '@react-hookz/web';
3
+ import { Text, Tooltip, Modal, Table, Form } from 'tea-component';
4
+ import { formatTimeByType } from '../../utils/date';
5
+ import { safeJsonParse, isValueEmpty } from '../../utils/tool';
6
+ import Location, { locationProperties } from './Form/Location';
7
+ import { EnumView, formatEnum } from './Form/Enum';
8
+ import { ErrorBoundary } from 'react-error-boundary';
9
+ import UploaderView from '../uploaderView';
10
+ import RichTextView from '../richTextView';
11
+ import UploaderFileView from '../uploaderFileView';
12
+ import { ViewCell } from './UserDepartment/ViewCell';
13
+ import { QuoteModal } from './QuoteModal';
14
+ import { TABLE_SLOT_PREFIX } from '../../utils/constant';
15
+ const MODAL_SIZE = 'auto';
16
+ /**
17
+ * 根据类型获取展示字段组件的 render 方法,用于表格/详情中的值转换
18
+ * extra: { modelType: 'list' | 'detail' | 'update' | 'create', showTip: boolean }
19
+ * 表格中的字符串/枚举数组,详情中的字符串数组会截断并showTip
20
+ */
21
+ export function getFieldRender(field = {}, extra = {}) {
22
+ var _a;
23
+ const { type, format, items, properties, title } = field;
24
+ const { modelType, showTip = true } = extra;
25
+ const width = getFieldWidth(field);
26
+ // 文字提示框包裹组件
27
+ const TextWrap = showTip
28
+ ? ({ children }) => (React.createElement(Tooltip, { title: children },
29
+ React.createElement(Text, { overflow: true, style: { width } }, children)))
30
+ : ({ children }) => React.createElement("div", null, children);
31
+ // 枚举-旧,新版 TODO
32
+ if ((_a = field['x-enumObj']) === null || _a === void 0 ? void 0 : _a.length) {
33
+ const XEnumObj = (val) => {
34
+ if (!val)
35
+ return '-';
36
+ const item = field['x-enumObj'].find((item) => (item === null || item === void 0 ? void 0 : item.value) === val);
37
+ return React.createElement(TextWrap, null, (item === null || item === void 0 ? void 0 : item.label) || '-');
38
+ };
39
+ return XEnumObj;
40
+ }
41
+ // render 方法
42
+ const FieldRender = (val) => {
43
+ if (isValueEmpty(val) || (type === 'array' && !(val === null || val === void 0 ? void 0 : val.length))) {
44
+ return '-';
45
+ }
46
+ // fieldValue 值转换,如布尔/时间/枚举等
47
+ let fieldValue = val;
48
+ // 图片 render 方法
49
+ const xImageRender = (val) => (React.createElement("div", { className: `${modelType === 'table' ? 'table-data-item-value' : ''}` },
50
+ React.createElement(UploaderView, { isEmptyPlace: false, srcList: val, height: 60, width: 60, gutter: 6 })));
51
+ // 地理位置 Render方法
52
+ const xLocationRender = (val, modelType, isInArray = false) => {
53
+ var _a;
54
+ if (isInArray) {
55
+ const value = val === null || val === void 0 ? void 0 : val.reduce((prev, curr) => {
56
+ const { address, longitude, latitude } = formatLocationData(curr).meta;
57
+ prev.push({
58
+ address,
59
+ longitude,
60
+ latitude,
61
+ });
62
+ return prev;
63
+ }, []);
64
+ const locationField = {
65
+ ...field,
66
+ items: {
67
+ ...items,
68
+ properties: locationProperties,
69
+ },
70
+ };
71
+ return (React.createElement(ArrayComponent, { value: value, modelType: modelType, field: locationField, items: items }));
72
+ }
73
+ if (modelType === 'table') {
74
+ const content = (_a = formatLocationData(val)) === null || _a === void 0 ? void 0 : _a.flatContent;
75
+ return React.createElement(TextWrap, null, content);
76
+ }
77
+ else {
78
+ return React.createElement(Location, { readonly: true, value: val });
79
+ }
80
+ };
81
+ if (type === 'string') {
82
+ if (format === 'x-rtf') {
83
+ // 富文本
84
+ const showRichText = (val) => {
85
+ const modal = Modal.show({
86
+ className: 'e-rich-text-view-modal',
87
+ caption: '内容展示',
88
+ size: MODAL_SIZE,
89
+ onClose: () => modal.destroy(),
90
+ children: React.createElement(RichTextView, { value: val }),
91
+ });
92
+ };
93
+ fieldValue = JSON.stringify(val);
94
+ return modelType === 'detail' ? (React.createElement(RichTextView, { value: fieldValue })) : (React.createElement("a", { onClick: () => showRichText(fieldValue) }, "\u8BE6\u60C5"));
95
+ }
96
+ else if (format === 'x-image') {
97
+ // 图片
98
+ return xImageRender(fieldValue);
99
+ }
100
+ else if (format === 'x-file') {
101
+ // 文件
102
+ return (React.createElement(UploaderFileView, { value: fieldValue, single: (extra === null || extra === void 0 ? void 0 : extra.modelType) !== 'detail' }));
103
+ }
104
+ else if (isShowOrgsView(field, modelType)) {
105
+ return (React.createElement(ViewCell, { data: fieldValue, showType: modelType,
106
+ // type={field['x-parent']?.parentDataSourceName === 'sys_department' ? 'org' : 'user'}
107
+ relation: extra === null || extra === void 0 ? void 0 : extra.relation }));
108
+ }
109
+ else if (format === 'x-enum') {
110
+ // 枚举(新)
111
+ return (React.createElement(TextWrap, null,
112
+ React.createElement(EnumView, { field: field, values: val })));
113
+ }
114
+ else if (format === 'url') {
115
+ // 网址
116
+ return (React.createElement("a", { target: "_blank", href: fieldValue, rel: "noreferrer" },
117
+ React.createElement(TextWrap, null, fieldValue)));
118
+ }
119
+ else {
120
+ return React.createElement(TextWrap, null, fieldValue);
121
+ }
122
+ }
123
+ else if (type === 'number') {
124
+ fieldValue = formatNumber(val, field);
125
+ return React.createElement(Text, null, fieldValue);
126
+ }
127
+ else if (type === 'boolean') {
128
+ fieldValue = formatBoolean(val);
129
+ return React.createElement(Text, null, fieldValue);
130
+ }
131
+ else if (type === 'object') {
132
+ const objectRender = ({ value, modelType, fields }) => {
133
+ if (typeof val === 'object') {
134
+ return (React.createElement(DataItemView, { value: value, modelType: modelType, fields: fields }));
135
+ }
136
+ return React.createElement(TextWrap, null, value);
137
+ };
138
+ fieldValue = safeJsonParse(val);
139
+ if ((field === null || field === void 0 ? void 0 : field.format) === 'x-location') {
140
+ return xLocationRender(fieldValue, modelType);
141
+ }
142
+ else if (modelType === 'detail') {
143
+ return objectRender({
144
+ value: fieldValue,
145
+ modelType: 'detail',
146
+ fields: properties,
147
+ });
148
+ }
149
+ else {
150
+ return (React.createElement(QuoteModal, { className: "e-object-view-modal", caption: title, size: "90%" }, objectRender({
151
+ value: val,
152
+ modelType: { modelType },
153
+ fields: properties,
154
+ })));
155
+ }
156
+ }
157
+ else if (type === 'array') {
158
+ if (field.name === '_departmentList' &&
159
+ ['table', 'detail'].includes(modelType)) {
160
+ return React.createElement(TextWrap, null, val || '-');
161
+ }
162
+ if (format === 'x-enum') {
163
+ // 枚举(新)
164
+ return (React.createElement(TextWrap, null,
165
+ React.createElement(EnumView, { field: field, values: val })));
166
+ }
167
+ else if ((items === null || items === void 0 ? void 0 : items.format) === 'x-location') {
168
+ // 地理位置
169
+ return xLocationRender(fieldValue, modelType, true);
170
+ }
171
+ else if ((items === null || items === void 0 ? void 0 : items.format) === 'x-image') {
172
+ // 图片数组
173
+ return xImageRender(fieldValue);
174
+ }
175
+ else if ((items === null || items === void 0 ? void 0 : items.format) === 'x-file' && (extra === null || extra === void 0 ? void 0 : extra.modelType) === 'detail') {
176
+ // 文件数组,在详情页和表格页展示不同
177
+ return React.createElement(UploaderFileView, { value: fieldValue, single: false });
178
+ }
179
+ else {
180
+ fieldValue = safeJsonParse(val);
181
+ return (React.createElement(ArrayComponent, { value: fieldValue, field: field, modelType: modelType, items: items }));
182
+ }
183
+ }
184
+ return React.createElement("span", null, JSON.stringify(fieldValue));
185
+ };
186
+ return FieldRender;
187
+ }
188
+ /**
189
+ * object类型,展示表单组件
190
+ */
191
+ export const DataItemView = ({ fields, modelType, value }) => {
192
+ const isH5 = useMediaQuery('(max-width: 1024px)');
193
+ return (React.createElement(Form, { readonly: true, className: isH5 ? 'tea-form--vertical' : '' }, Object.entries(fields).map(([key, field]) => {
194
+ const fieldRender = getFieldRender(field, {
195
+ showTip: false,
196
+ modelType,
197
+ });
198
+ return (React.createElement(Form.Item, { label: field.title, key: key },
199
+ React.createElement(Form.Text, null, fieldRender(value === null || value === void 0 ? void 0 : value[(field === null || field === void 0 ? void 0 : field.name) || key]))));
200
+ })));
201
+ };
202
+ /**
203
+ * object,展示表格组件
204
+ */
205
+ export const DataTableView = ({ fields, value }) => {
206
+ const columns = useMemo(() => {
207
+ const rawFields = Object.entries(fields.properties).map(([name, field]) => Object.assign({}, field, { name }));
208
+ const rawFieldsSort = rawFields.sort((a, b) => a['x-index'] - b['x-index']);
209
+ const baseColumns = getColumns(rawFieldsSort);
210
+ return baseColumns;
211
+ }, [fields]);
212
+ return (React.createElement(Table, { bordered: "all", recordKey: "_id", records: [].concat(value), columns: columns }));
213
+ };
214
+ /**
215
+ * array类型,展示组件
216
+ */
217
+ const ArrayComponent = ({ items, modelType, value, field }) => {
218
+ const isH5 = useMediaQuery('(max-width: 1024px)');
219
+ // PC端 数组嵌套子对象时,显示为表格
220
+ if (items.type === 'object' && !isH5) {
221
+ if (modelType === 'detail') {
222
+ return React.createElement(DataTableView, { value: value, fields: field.items });
223
+ }
224
+ return (React.createElement(QuoteModal, { className: "e-array-view-modal", caption: field.title, size: MODAL_SIZE },
225
+ React.createElement(DataTableView, { value: value, fields: field.items })));
226
+ }
227
+ // H5端或不为嵌套对象时,循环渲染字段
228
+ return (React.createElement("div", null, Array.isArray(value) &&
229
+ (value === null || value === void 0 ? void 0 : value.map((item, index) => {
230
+ const itemRender = getFieldRender(items, { modelType });
231
+ return (React.createElement("div", { className: "field-array-item", key: index }, itemRender(item)));
232
+ }))));
233
+ };
234
+ /**
235
+ * 转换数字类型
236
+ */
237
+ export const formatNumber = (value, field) => {
238
+ let newValue = value;
239
+ try {
240
+ if (['date', 'time', 'datetime'].includes(field === null || field === void 0 ? void 0 : field.format) &&
241
+ typeof value === 'number') {
242
+ newValue = formatTimeByType(field === null || field === void 0 ? void 0 : field.format, value, field);
243
+ }
244
+ else {
245
+ newValue = formatNumberFix(value, field, true);
246
+ }
247
+ }
248
+ catch (e) { }
249
+ return newValue;
250
+ };
251
+ /**
252
+ * 转换布尔值类型
253
+ */
254
+ export const formatBoolean = (value) => {
255
+ let newValue = value;
256
+ try {
257
+ if (typeof value === 'boolean') {
258
+ newValue = value ? '是' : '否';
259
+ }
260
+ else {
261
+ newValue = value;
262
+ }
263
+ }
264
+ catch (e) { }
265
+ return newValue;
266
+ };
267
+ /**
268
+ * 地理位置格式服务端数据转换
269
+ * @param {*} location
270
+ * @returns
271
+ */
272
+ export const formatLocationData = (location) => {
273
+ const { address, geopoint } = location || {};
274
+ const [longitude, latitude] = (geopoint === null || geopoint === void 0 ? void 0 : geopoint.coordinates) || [];
275
+ const content = address ? `${address}(${latitude},${longitude})` : '-';
276
+ return {
277
+ meta: { address, longitude, latitude },
278
+ flatContent: content,
279
+ };
280
+ };
281
+ /**
282
+ * 数字类型-有小数点时补齐0
283
+ * 值不为数字时原值返回,补齐 0 时返回 string,否则返回 number
284
+ */
285
+ export const formatNumberFix = (val, field, setZero = false) => {
286
+ const num = parseFloat(`${val}`);
287
+ if (isNaN(num)) {
288
+ return val;
289
+ }
290
+ if (typeof (field === null || field === void 0 ? void 0 : field.numberCount) === 'number') {
291
+ const numFix = num.toFixed(field === null || field === void 0 ? void 0 : field.numberCount);
292
+ return setZero ? numFix : parseFloat(numFix);
293
+ }
294
+ return num;
295
+ };
296
+ /**
297
+ * 根据 fields 信息生成 column
298
+ * h5 和 pc 部分参数不同
299
+ */
300
+ export const getColumns = (fields, isH5) => fields.map((item) => formatFieldToColumn(item, isH5));
301
+ /**
302
+ * 根据 field 属性,生成 column 配置
303
+ * https://git.woa.com/QBase/lcap/common-application-specs/blob/master/types/platform/datasource.ts
304
+ */
305
+ export const formatFieldToColumn = (field, isH5) => {
306
+ const { name, title } = field;
307
+ // 计算列宽度,略大于计算宽度
308
+ const width = getFieldWidth(field) + 10;
309
+ // 处理渲染错误
310
+ const render = (record) => {
311
+ const extra = isH5
312
+ ? { modelType: 'table-h5', showTip: false, relation: record[`@${name}`] }
313
+ : { modelType: 'table', relation: record[`@${name}`] };
314
+ const value = getFieldValue(name, record);
315
+ const component = getFieldRender(field, extra)(value);
316
+ return (React.createElement(ErrorBoundary, { FallbackComponent: () => React.createElement("span", { className: "" }, "\u274C \u6570\u636E\u5F02\u5E38") }, component));
317
+ };
318
+ return { width, render, key: name, header: title, align: 'left', fixed: '' };
319
+ };
320
+ // 计算 field 占据的宽度
321
+ export const getFieldWidth = (field) => {
322
+ var _a;
323
+ const TypeFormatWidthMap = {
324
+ string: {
325
+ default: 150,
326
+ 'x-image': 100,
327
+ 'x-file': 150,
328
+ },
329
+ number: {
330
+ datetime: 200,
331
+ date: 150,
332
+ default: 150,
333
+ },
334
+ boolean: {
335
+ default: 100,
336
+ },
337
+ object: {
338
+ default: 60,
339
+ },
340
+ array: {
341
+ default: 120,
342
+ 'x-image': 230,
343
+ 'x-file': 150,
344
+ },
345
+ };
346
+ const { title = '', type = '', format = '', items } = field;
347
+ // 按名称列宽度
348
+ const nameWidth = title.length * 25;
349
+ // 按类型列宽度
350
+ const typeWidth = ((_a = TypeFormatWidthMap === null || TypeFormatWidthMap === void 0 ? void 0 : TypeFormatWidthMap[type]) === null || _a === void 0 ? void 0 : _a[format || (items === null || items === void 0 ? void 0 : items.format) || 'default']) || 0;
351
+ // 最终宽度
352
+ const width = typeWidth
353
+ ? Math.max(nameWidth, typeWidth)
354
+ : Math.max(nameWidth, 120);
355
+ return width;
356
+ };
357
+ /**
358
+ * https://tcloud-dev.oa.com/document/product/1505/58791?!preview&!document=1
359
+ * @param {[String]} processHold [占有: object, 存在, 被有一个流程拥有, 置灰]
360
+ * @param {[String]} lock [锁定: 没有那个字段 空字符串, 有值就锁定, 置灰]
361
+ */
362
+ export const isProcessHoldOrLocked = (processHold, lock) => {
363
+ let isProcessHold = false;
364
+ if (processHold && typeof processHold === 'object') {
365
+ const keys = Object.keys(processHold);
366
+ if (keys === null || keys === void 0 ? void 0 : keys.length) {
367
+ isProcessHold = true;
368
+ }
369
+ }
370
+ return isProcessHold || !!lock;
371
+ };
372
+ export const isShowOrgsView = (field, modelType) => {
373
+ var _a;
374
+ const { format } = field;
375
+ return (format === 'father-son' &&
376
+ !field['x-system'] &&
377
+ ['sys_department', 'sys_user'].includes((_a = field['x-parent']) === null || _a === void 0 ? void 0 : _a.parentDataSourceName) &&
378
+ ['table', 'detail', 'table-h5'].includes(modelType));
379
+ };
380
+ /**
381
+ * 导出数据格式转换
382
+ * 目前 number/boolean/x-enum/x-location 会被转换
383
+ */
384
+ export const formatDataToExport = (datas, fields, enumOptions = {}) => {
385
+ var _a, _b, _c, _d, _e, _f;
386
+ if (isValueEmpty(datas) || isValueEmpty(fields)) {
387
+ return datas;
388
+ }
389
+ // 数组
390
+ if (Array.isArray(datas)) {
391
+ return datas.map((item) => formatDataToExport(item, fields));
392
+ }
393
+ // 对象
394
+ if (typeof datas === 'object') {
395
+ const newDatas = {};
396
+ for (const field of fields) {
397
+ const key = field === null || field === void 0 ? void 0 : field.name;
398
+ const zhTitle = (field === null || field === void 0 ? void 0 : field.title) || key;
399
+ const data = datas[key];
400
+ if ((_a = field['x-enumObj']) === null || _a === void 0 ? void 0 : _a.length) {
401
+ // 枚举-旧
402
+ const item = field['x-enumObj'].find((item) => (item === null || item === void 0 ? void 0 : item.value) === data);
403
+ newDatas[zhTitle] = (item === null || item === void 0 ? void 0 : item.label) || (item === null || item === void 0 ? void 0 : item.value);
404
+ }
405
+ else {
406
+ switch (field === null || field === void 0 ? void 0 : field.type) {
407
+ case 'string':
408
+ newDatas[zhTitle] = data;
409
+ if ((field === null || field === void 0 ? void 0 : field.format) === 'x-enum') {
410
+ newDatas[zhTitle] = formatEnum(data, field, enumOptions);
411
+ }
412
+ break;
413
+ case 'number':
414
+ newDatas[zhTitle] = formatNumber(data, field);
415
+ break;
416
+ case 'boolean':
417
+ newDatas[zhTitle] = formatBoolean(data);
418
+ break;
419
+ case 'object':
420
+ if ((field === null || field === void 0 ? void 0 : field.format) === 'x-location') {
421
+ newDatas[zhTitle] = (_b = formatLocationData(data)) === null || _b === void 0 ? void 0 : _b.flatContent;
422
+ }
423
+ else {
424
+ newDatas[zhTitle] = formatDataToExport(data, Object.values((field === null || field === void 0 ? void 0 : field.properties) || {}));
425
+ }
426
+ break;
427
+ case 'array':
428
+ if (((_c = field === null || field === void 0 ? void 0 : field.items) === null || _c === void 0 ? void 0 : _c.type) === 'object') {
429
+ newDatas[zhTitle] = formatDataToExport([].concat(data), Object.values(((_d = field === null || field === void 0 ? void 0 : field.items) === null || _d === void 0 ? void 0 : _d.properties) || {}));
430
+ }
431
+ else if (((_e = field === null || field === void 0 ? void 0 : field.items) === null || _e === void 0 ? void 0 : _e.type) === 'number') {
432
+ newDatas[zhTitle] = []
433
+ .concat(data)
434
+ .map((d) => formatNumber(d, field === null || field === void 0 ? void 0 : field.items));
435
+ }
436
+ else if (((_f = field === null || field === void 0 ? void 0 : field.items) === null || _f === void 0 ? void 0 : _f.type) === 'boolean') {
437
+ newDatas[zhTitle] = [].concat(data).map((d) => formatBoolean(d));
438
+ }
439
+ else if ((field === null || field === void 0 ? void 0 : field.format) === 'x-enum') {
440
+ newDatas[zhTitle] = formatEnum(data, field, enumOptions);
441
+ }
442
+ else if (field.name === '_departmentList') {
443
+ newDatas[zhTitle] = getFieldValue('_departmentList', datas);
444
+ }
445
+ else {
446
+ newDatas[zhTitle] = data;
447
+ }
448
+ break;
449
+ default:
450
+ newDatas[zhTitle] = data;
451
+ }
452
+ }
453
+ }
454
+ return newDatas;
455
+ }
456
+ return datas;
457
+ };
458
+ /**
459
+ * 导出数据为xlsx库接受的格式
460
+ * [[title1, title2], [value1, value2], [value1, value2]]
461
+ */
462
+ export const formatDataToXlsx = (datas, fields, enumOptions = {}) => {
463
+ const getCellValue = (data, field) => {
464
+ const key = field === null || field === void 0 ? void 0 : field.name;
465
+ const value = data === null || data === void 0 ? void 0 : data[key];
466
+ if (value === undefined)
467
+ return value;
468
+ const dataProcessed = formatDataToExport(data, [{ ...field, title: key }], enumOptions);
469
+ let valueProcessed = dataProcessed[key];
470
+ if (field.type === 'object') {
471
+ // 对象字段,展示成 json 格式
472
+ valueProcessed = JSON.stringify(valueProcessed);
473
+ valueProcessed = valueProcessed === '{}' ? undefined : valueProcessed;
474
+ }
475
+ else if (field.type === 'array') {
476
+ // 数组字段,以;隔开,元素展示成 json 格式
477
+ valueProcessed = []
478
+ .concat(valueProcessed)
479
+ .map((d) => (typeof d === 'object' ? JSON.stringify(d) : d))
480
+ .join(';');
481
+ valueProcessed = valueProcessed === '' ? undefined : valueProcessed;
482
+ }
483
+ // 值数字格式转为字符串
484
+ if (typeof valueProcessed === 'number') {
485
+ valueProcessed = `${valueProcessed}`;
486
+ }
487
+ return valueProcessed;
488
+ };
489
+ if (isValueEmpty(datas) || isValueEmpty(fields))
490
+ return [[]];
491
+ const head = fields.map((field) => field === null || field === void 0 ? void 0 : field.title);
492
+ const rows = datas.map((data) => {
493
+ const row = fields.map((field) => getCellValue(data, field));
494
+ return row;
495
+ });
496
+ return [].concat([head], rows);
497
+ };
498
+ /**
499
+ * 生成搜索配置
500
+ * 1、过滤不支持搜索的字段,时间字段不支持
501
+ * 2、生成配置
502
+ * 3、枚举/数字需要特殊处理
503
+ */
504
+ export const getSearchAttributes = (fields) => fields
505
+ .filter((field) => {
506
+ // 不支持搜索的类型
507
+ if (field.type === 'array' || field.type === 'object')
508
+ return false;
509
+ if (['time', 'date', 'datetime'].includes(field.format))
510
+ return false;
511
+ if (field['x-parent'])
512
+ return false;
513
+ return true;
514
+ })
515
+ .map((field) => {
516
+ var _a;
517
+ const inputTypes = ['string', 'number'];
518
+ const config = {
519
+ fieldType: field.type,
520
+ format: field.format,
521
+ type: (inputTypes === null || inputTypes === void 0 ? void 0 : inputTypes.includes(field.type)) ? 'input' : 'single',
522
+ key: field.name,
523
+ name: field.title,
524
+ };
525
+ if (field.type === 'boolean') {
526
+ config.type = 'single';
527
+ config.values = [
528
+ { key: true, name: '是' },
529
+ { key: false, name: '否' },
530
+ ];
531
+ }
532
+ // 枚举-旧,新版TODO
533
+ if ((_a = field['x-enumObj']) === null || _a === void 0 ? void 0 : _a.length) {
534
+ config.values = field['x-enumObj'].map((enumItem) => ({
535
+ key: enumItem === null || enumItem === void 0 ? void 0 : enumItem.value,
536
+ name: enumItem === null || enumItem === void 0 ? void 0 : enumItem.label,
537
+ }));
538
+ config.type = 'single';
539
+ config.format = 'x-enum';
540
+ }
541
+ return config;
542
+ });
543
+ export const getFieldValue = (name, record) => {
544
+ var _a;
545
+ if (name === '_departmentList')
546
+ return (((_a = record === null || record === void 0 ? void 0 : record['##SHOW']) === null || _a === void 0 ? void 0 : _a._departmentList) || []).join(',');
547
+ return record[name];
548
+ };
549
+ export const slotRender = (slot, props = {}) => typeof slot === 'function' ? slot(props) : slot;
550
+ /**
551
+ * 根据列管理,过滤表格列信息
552
+ * columns: { key, header, width, align, render,fixed }[] Tea Table 的列
553
+ * columnSets: { key, header, width, align, genre,fixed }[] 模型表格列管理属性,过滤 key 为空
554
+ * slots: object 模型表格作用域插槽
555
+ * isH5: 判断自定义插槽列能否展示,目前是正常展示
556
+ */
557
+ export const filterCustomColumns = ({ columns, columnSets, slots }) => {
558
+ if (!Array.isArray(columnSets))
559
+ return columns;
560
+ const columnsMap = columns.reduce((acc, item) => {
561
+ acc[item.key] = item;
562
+ return acc;
563
+ }, {});
564
+ return columnSets
565
+ .filter((item1) => (item1 === null || item1 === void 0 ? void 0 : item1.key) && columnsMap[item1.key])
566
+ .map((item2) => {
567
+ const { key, header, genre, fixed } = item2;
568
+ // 拿到自定义列属性值
569
+ const customColumn = { ...columnsMap[key], key, header, fixed };
570
+ if (genre === 'slot') {
571
+ // 拿到列对应的插槽
572
+ const slot = slots[`${TABLE_SLOT_PREFIX}${key}`];
573
+ customColumn.render = (record, rowKey, recordIndex, column, columnIndex) => slotRender(slot, {
574
+ record,
575
+ rowKey,
576
+ recordIndex,
577
+ column,
578
+ columnIndex,
579
+ });
580
+ }
581
+ return customColumn;
582
+ });
583
+ };
584
+ /**
585
+ * 过滤字段列表
586
+ * 导出/搜索框,不展示自定义列
587
+ */
588
+ export const filterCustomFields = ({ fields, columnSets }) => {
589
+ if (!Array.isArray(fields))
590
+ return [];
591
+ if (!Array.isArray(columnSets))
592
+ return fields;
593
+ const fieldsMap = Object.fromEntries(fields.map((item) => [item.name, item]));
594
+ return columnSets
595
+ .filter((item1) => (item1 === null || item1 === void 0 ? void 0 : item1.key) && fieldsMap[item1.key] && (item1 === null || item1 === void 0 ? void 0 : item1.genre) !== 'slot')
596
+ .map((item2) => ({ ...fieldsMap[item2.key], title: item2.header }));
597
+ };
598
+ /**
599
+ * 列管理加入冻结属性
600
+ */
601
+ export const getFixedColumnSets = ({ fixedFront = '', fixedEnd = '', columnSets, }) => {
602
+ if (!Array.isArray(columnSets))
603
+ return columnSets;
604
+ const fixedFrontIndex = columnSets.findIndex((item) => (item === null || item === void 0 ? void 0 : item.key) && item.key.length > 0 && item.key === fixedFront);
605
+ const fixedEndIndex = columnSets.findIndex((item) => (item === null || item === void 0 ? void 0 : item.key) && item.key.length > 0 && item.key === fixedEnd);
606
+ return Array.isArray(columnSets)
607
+ ? columnSets.map((item, index) => {
608
+ // 当冻结尾列在冻结前列之后时,冻结尾列属性才生效
609
+ if (fixedEndIndex >= 0 &&
610
+ fixedEndIndex > fixedFrontIndex &&
611
+ index >= fixedEndIndex) {
612
+ return { ...item, fixed: 'right' };
613
+ }
614
+ else if (fixedFrontIndex >= 0 && index <= fixedFrontIndex) {
615
+ return { ...item, fixed: 'left' };
616
+ }
617
+ else {
618
+ return { ...item, fixed: '' };
619
+ }
620
+ })
621
+ : [];
622
+ };