@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,357 @@
1
+ import { isInIde, alertErrorMessage, isSystemField } from './platform';
2
+ /* **** 数据源相关方法 **** */
3
+ const callWedaApi = (...args) => { var _a, _b; return (_b = (_a = window === null || window === void 0 ? void 0 : window.app) === null || _a === void 0 ? void 0 : _a.cloud) === null || _b === void 0 ? void 0 : _b.callWedaApi(...args); };
4
+ export class DataSource {
5
+ constructor(name) {
6
+ Object.defineProperty(this, "dbName", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ this.dbName = name;
13
+ }
14
+ async getRecord(id) {
15
+ try {
16
+ const res = await window.app.cloud.callDataSource({
17
+ dataSourceName: this.dbName,
18
+ methodName: 'wedaGetItem',
19
+ params: {
20
+ _id: id,
21
+ },
22
+ });
23
+ return res;
24
+ }
25
+ catch (error) {
26
+ if (!isInIde()) {
27
+ console.error('错误', error);
28
+ alertErrorMessage({
29
+ message: `获取数据源字段失败,错误信息:${error.message}`,
30
+ });
31
+ }
32
+ return {};
33
+ }
34
+ }
35
+ async getRecordList(params = {}, db = this.dbName) {
36
+ try {
37
+ const res = await window.app.cloud.callDataSource({
38
+ params,
39
+ dataSourceName: db,
40
+ methodName: 'wedaGetRecords',
41
+ });
42
+ return res;
43
+ }
44
+ catch (error) {
45
+ if (!isInIde()) {
46
+ console.error('错误', error);
47
+ alertErrorMessage({
48
+ message: `获取数据源字段失败,错误信息:${error.message}`,
49
+ });
50
+ }
51
+ return {};
52
+ }
53
+ }
54
+ async createRecord(data) {
55
+ return window.app.cloud.callDataSource({
56
+ dataSourceName: this.dbName,
57
+ methodName: 'wedaCreate',
58
+ params: data,
59
+ });
60
+ }
61
+ async batchDeleteRecord(ids) {
62
+ let params = {};
63
+ let methodName = '';
64
+ if (ids.length === 0)
65
+ return;
66
+ if (ids.length === 1) {
67
+ params = { _id: ids[0] };
68
+ methodName = 'wedaDelete';
69
+ }
70
+ else {
71
+ params = { where: [{ Key: '_id', Rel: 'in', Val: ids }] };
72
+ methodName = 'wedaBatchDelete';
73
+ }
74
+ return window.app.cloud.callDataSource({
75
+ dataSourceName: this.dbName,
76
+ methodName,
77
+ params,
78
+ });
79
+ }
80
+ async batchCreateRecord(data) {
81
+ return window.app.cloud.callDataSource({
82
+ dataSourceName: this.dbName,
83
+ methodName: 'wedaBatchCreate',
84
+ params: { records: data },
85
+ });
86
+ }
87
+ async updateRecord(id, data) {
88
+ return window.app.cloud.callDataSource({
89
+ dataSourceName: this.dbName,
90
+ methodName: 'wedaUpdate',
91
+ params: {
92
+ _id: id,
93
+ ...data,
94
+ },
95
+ });
96
+ }
97
+ /**
98
+ * API方法调用
99
+ */
100
+ async getConnect(method, params) {
101
+ const { where, ...newParams } = params;
102
+ return window.app.cloud.callConnector({
103
+ dataSourceName: this.dbName,
104
+ methodName: method,
105
+ params: Object.prototype.toString.call(params) === '[object Object]'
106
+ ? (where === null || where === void 0 ? void 0 : where.length) <= 0
107
+ ? newParams
108
+ : params
109
+ : {},
110
+ });
111
+ }
112
+ }
113
+ export const getDataSourceByName = async (dbName, GetColumnAuth = false) => {
114
+ var _a, _b;
115
+ try {
116
+ // dbName 为空时
117
+ if (!dbName)
118
+ return;
119
+ // 兼容私有环境,新接口不存在的情况
120
+ if ((window === null || window === void 0 ? void 0 : window._isPrivate) && !((_b = (_a = window === null || window === void 0 ? void 0 : window.app) === null || _a === void 0 ? void 0 : _a.cloud) === null || _b === void 0 ? void 0 : _b.getDataSourceProfileAsync)) {
121
+ return getDataSourceByNameCompatibleProvite(dbName);
122
+ }
123
+ const datasource = await window.app.cloud.getDataSourceProfileAsync(GetColumnAuth ? { Name: dbName, GetColumnAuth: true } : dbName);
124
+ return datasource;
125
+ }
126
+ catch (error) {
127
+ alertErrorMessage({ message: `获取数据源字段失败,错误信息:${error}` });
128
+ console.error(`获取数据源字段失败,错误信息:${error}`);
129
+ return {};
130
+ }
131
+ };
132
+ // 兼容私有环境 getDataSourceProfileAsync 方法不存在的情况
133
+ export const getDataSourceByNameCompatibleProvite = async (dbName) => {
134
+ try {
135
+ // dbName 为空时
136
+ if (!dbName)
137
+ return;
138
+ const datasource = await window.app.cloud.getDataSourceProfile(dbName);
139
+ return datasource;
140
+ }
141
+ catch (error) {
142
+ alertErrorMessage({ message: `获取数据源字段失败,错误信息:${error}` });
143
+ console.error(`获取数据源字段失败,错误信息:${error}`);
144
+ return {};
145
+ }
146
+ };
147
+ /**
148
+ * 获取数据源权限字段
149
+ * 返回对象格式
150
+ */
151
+ export const getAuthFieldsByName = async (dbName) => {
152
+ var _a;
153
+ const dataSource = await getDataSourceByName(dbName, true);
154
+ const id = dataSource === null || dataSource === void 0 ? void 0 : dataSource.id;
155
+ const fieldsAuthObj = {};
156
+ try {
157
+ if (callWedaApi && id) {
158
+ const resp = await callWedaApi({
159
+ action: 'DescribeAuthStrategy',
160
+ data: {
161
+ ResourceId: id,
162
+ },
163
+ });
164
+ const fieldsAuth = (_a = resp === null || resp === void 0 ? void 0 : resp.PermissionMap) === null || _a === void 0 ? void 0 : _a[id];
165
+ if (fieldsAuth) {
166
+ Object.keys(fieldsAuth).forEach((d) => {
167
+ const pre = `${id}#`;
168
+ if (d.startsWith(pre)) {
169
+ const fieldKey = d.replace(pre, '');
170
+ fieldKey && (fieldsAuthObj[fieldKey] = fieldsAuth[d]);
171
+ }
172
+ });
173
+ }
174
+ }
175
+ }
176
+ catch (e) {
177
+ console.error('模型:请求权限出错.', e);
178
+ }
179
+ return fieldsAuthObj;
180
+ };
181
+ /**
182
+ * 添加数据源字段权限
183
+ * 接口文档:https://iwiki.woa.com/pages/viewpage.action?pageId=1920884250
184
+ * 新增读写权限字段 readWriteAuth
185
+ * n : 列操作无权限 ; r : 列操作只读权限 ; rw : 列操作读写权限
186
+ */
187
+ export const getDataSourceFieldsWithAuth = (authList, resourceCheckInfos) => {
188
+ try {
189
+ if (isInIde() || (window === null || window === void 0 ? void 0 : window._isPrivate)) {
190
+ // 编辑器编辑区 和 兼容私有环境,新接口不存在的情况
191
+ return authList.map((item) => ({ ...item, readWriteAuth: 'rw' }));
192
+ }
193
+ if ((resourceCheckInfos === null || resourceCheckInfos === void 0 ? void 0 : resourceCheckInfos.length) > 0 && (authList === null || authList === void 0 ? void 0 : authList.length) > 0) {
194
+ const resourceCheckInfosList = resourceCheckInfos.map((item) => item.ReadWrite);
195
+ return authList.map((authItem) => {
196
+ const authInfoList = resourceCheckInfosList.filter((item) => !!item[authItem.name]);
197
+ // 匹配到了权限字段
198
+ if (authInfoList[0]) {
199
+ authItem.readWriteAuth = authInfoList[0][authItem.name];
200
+ if (authInfoList[0][authItem.name] === 'r') {
201
+ // 只读字段标单项disable状态
202
+ authItem['x-powerDisabled'] = true;
203
+ }
204
+ }
205
+ return authItem;
206
+ });
207
+ }
208
+ // 没有返回字段权限列表
209
+ return authList;
210
+ }
211
+ catch (err) {
212
+ console.error('getDataSourceFieldsWithAuth err', err);
213
+ }
214
+ };
215
+ /**
216
+ * 获取过滤权限后的字段
217
+ * 返回格式: {readFields:[], writeFields: [], requireNoRwFields: []},分别为:只读字段,读写字段,必填但无写权限字段
218
+ * 权限接口规则:有返回字段时以字段权限为准,无字段返回时,数据源所有字段都有读写权限,默认内置字段均有读写权限
219
+ * 2021-11-25 暂时下掉列权限,优化性能
220
+ * 2022-08-06
221
+ * 新增返回 showFields:[] 能够展示的字段,包含读写字段和只读字段,其中只读字段的表单项为disable状态
222
+ */
223
+ export const getAuthFields = async (dbName, enabledFieldNames, displaySystem, isUseAll = false, isModel = true, connectorMethod) => {
224
+ const allFields = await resolveFieldsFromDatasource({
225
+ dbName,
226
+ enabledFieldNames,
227
+ displaySystem,
228
+ isUseAll,
229
+ isModel,
230
+ connectorMethod,
231
+ });
232
+ const [readFields, writeFields, requireNoRwFields, authLoading, showFields] = [
233
+ [].concat(allFields),
234
+ [].concat(allFields),
235
+ [],
236
+ false,
237
+ [].concat(allFields === null || allFields === void 0 ? void 0 : allFields.filter((item) => (item === null || item === void 0 ? void 0 : item.readWriteAuth) === 'rw' || (item === null || item === void 0 ? void 0 : item.readWriteAuth) === 'r')),
238
+ ];
239
+ return {
240
+ readFields,
241
+ writeFields,
242
+ requireNoRwFields,
243
+ authLoading,
244
+ showFields,
245
+ };
246
+ };
247
+ /**
248
+ * 根据数据库名,解析 fields
249
+ * isUseAll:表格组件不使用enabledFieldNames,而是使用columnSets
250
+ */
251
+ export const resolveFieldsFromDatasource = async ({ dbName, enabledFieldNames, displaySystem, isUseAll, isModel = true, connectorMethod, }) => {
252
+ var _a, _b, _c, _d;
253
+ if (isModel) {
254
+ if ((!dbName || !(enabledFieldNames === null || enabledFieldNames === void 0 ? void 0 : enabledFieldNames.length)) && !isUseAll)
255
+ return [];
256
+ const datasource = await getDataSourceByName(dbName, true);
257
+ // 警告
258
+ if (!datasource) {
259
+ console.error(`未找到数据源 ${dbName}`, window.app.cloud);
260
+ return [];
261
+ }
262
+ let keys = [];
263
+ const { schema } = datasource;
264
+ if (!(schema === null || schema === void 0 ? void 0 : schema.properties))
265
+ return [];
266
+ if (isUseAll) {
267
+ keys = Object.keys(schema.properties || {});
268
+ }
269
+ else {
270
+ // 过滤掉系统字段 x-system=true 和不存在 datasource 中的字段(被删除的字段)
271
+ keys = enabledFieldNames.filter((key) => {
272
+ const field = schema.properties[key];
273
+ return field && (displaySystem || !isSystemField(field));
274
+ });
275
+ }
276
+ // 添加关联数据源
277
+ const resultPromise = keys.map(async (key) => {
278
+ var _a;
279
+ let parentDatasource;
280
+ if ((_a = schema.properties[key]) === null || _a === void 0 ? void 0 : _a['x-parent']) {
281
+ parentDatasource =
282
+ (await getDataSourceByName(schema.properties[key]['x-parent'].parentDataSourceName, true)) || {};
283
+ }
284
+ return {
285
+ ...schema.properties[key],
286
+ name: key,
287
+ parentDatasource,
288
+ };
289
+ });
290
+ const result = await Promise.all(resultPromise);
291
+ return getDataSourceFieldsWithAuth(result, datasource === null || datasource === void 0 ? void 0 : datasource.resourceCheckInfos);
292
+ }
293
+ else {
294
+ if (!connectorMethod)
295
+ return [];
296
+ const datasource = await getDataSourceByName(dbName);
297
+ // 警告
298
+ if (!datasource) {
299
+ console.error(`未找到数据源 ${dbName}`, window.app.cloud);
300
+ return [];
301
+ }
302
+ const connectKeys = [];
303
+ const { methods } = datasource;
304
+ const { name } = connectorMethod;
305
+ let method = [];
306
+ if (methods && methods.length > 0) {
307
+ method = methods.filter((item) => {
308
+ return item.name == name;
309
+ });
310
+ }
311
+ datasource.schema = ((_d = (_c = (_b = (_a = method[0]) === null || _a === void 0 ? void 0 : _a.outParams) === null || _b === void 0 ? void 0 : _b.properties) === null || _c === void 0 ? void 0 : _c.records) === null || _d === void 0 ? void 0 : _d.items) || {};
312
+ const { schema } = datasource;
313
+ if (!(schema === null || schema === void 0 ? void 0 : schema.properties))
314
+ return [];
315
+ for (const item in schema.properties) {
316
+ connectKeys.push(item);
317
+ }
318
+ // 添加关联数据源
319
+ const resultPromise = connectKeys.map(async (key) => {
320
+ var _a;
321
+ let parentDatasource;
322
+ if ((_a = schema.properties[key]) === null || _a === void 0 ? void 0 : _a['x-parent']) {
323
+ parentDatasource =
324
+ (await getDataSourceByName(schema.properties[key]['x-parent'].parentDataSourceName)) || {};
325
+ }
326
+ return {
327
+ ...schema.properties[key],
328
+ name: key,
329
+ parentDatasource,
330
+ };
331
+ });
332
+ const result = await Promise.all(resultPromise);
333
+ return result === null || result === void 0 ? void 0 : result.map((item) => ({ ...item, readWriteAuth: 'rw' }));
334
+ }
335
+ };
336
+ /**
337
+ * 获取主列字段标识并展示主列字段
338
+ */
339
+ export const getPrimaryField = (data) => {
340
+ const keys = Object.keys(data).filter((item) => item.includes('@'));
341
+ keys.forEach((item) => {
342
+ var _a, _b, _c, _d, _e;
343
+ const field = item.replace('@', '');
344
+ const record = (_a = data[item]) === null || _a === void 0 ? void 0 : _a.v1.record;
345
+ const name = (_b = data[item]) === null || _b === void 0 ? void 0 : _b.v1.primaryColumn;
346
+ if (name) {
347
+ // 系统主列字段当record不存在时,默认展示最外层owner、createBy、updateBy字段,与其他列字段逻辑一致
348
+ if (record && record._id === data[field]) {
349
+ // 当record下主列字段没有值时,默认返回主列id
350
+ record[name]
351
+ ? (data[field] = record[name])
352
+ : (data[field] = ((_e = (_d = (_c = data[item]) === null || _c === void 0 ? void 0 : _c.v1) === null || _d === void 0 ? void 0 : _d.record) === null || _e === void 0 ? void 0 : _e._id) || '-');
353
+ }
354
+ }
355
+ });
356
+ return data;
357
+ };
@@ -0,0 +1,137 @@
1
+ import moment from 'moment';
2
+ import 'moment/locale/zh-cn';
3
+ import { isSystemField } from './platform';
4
+ moment.locale('zh-cn');
5
+ // 'time' | 'date' | 'datetime'
6
+ export const formatTimeByType = (dateType, v = Date.now(), field = undefined) => {
7
+ // 时间
8
+ if (dateType === 'time') {
9
+ const timeStr = formatNumberToStr(v);
10
+ return timeStr;
11
+ }
12
+ // 日期,但不包括系统字段
13
+ if (dateType === 'date' && !isSystemField(field)) {
14
+ return moment(v).format('YYYY-MM-DD');
15
+ }
16
+ // 兼容逻辑,有一部分数据源的系统字段里的创建和更新时间被设置为了date,这里当作datetime来处理
17
+ return moment(v).format('YYYY-MM-DD HH:mm:ss');
18
+ };
19
+ export const getFullDate = (v = Date.now()) => moment(v).format('YYYY-MM-DD');
20
+ export const addZero = (v) => (v < 10 ? `0${v}` : v);
21
+ /**
22
+ * 24小时毫秒数转字符串
23
+ */
24
+ export const formatNumberToStr = (v) => {
25
+ let timeStr = '-';
26
+ try {
27
+ const time = moment.duration(parseInt(v), 'milliseconds');
28
+ const hours = addZero(time.hours());
29
+ const minutes = addZero(time.minutes());
30
+ const seconds = addZero(time.seconds());
31
+ timeStr = `${hours}:${minutes}:${seconds}`;
32
+ }
33
+ catch (e) { }
34
+ return timeStr;
35
+ };
36
+ /**
37
+ * 时间字符串转24小时毫秒数
38
+ */
39
+ export const formatTimeToNumber = (t = '') => {
40
+ let time = moment();
41
+ try {
42
+ t && (time = moment(t));
43
+ }
44
+ catch (e) { }
45
+ const hours = time.hours();
46
+ const minutes = time.minutes();
47
+ const seconds = time.seconds();
48
+ const value = (hours * 60 * 60 + minutes * 60 + seconds) * 1000;
49
+ return value;
50
+ };
51
+ /**
52
+ * 日期字符串转24小时毫秒数
53
+ */
54
+ export const formatDateToNumber = (dateType = 'date', t = '') => {
55
+ const formatType = {
56
+ time: 'HH:mm:ss',
57
+ date: 'YYYY-MM-DD',
58
+ datetime: 'YYYY-MM-DD HH:mm:ss',
59
+ };
60
+ let time = moment().format(formatType[dateType]).valueOf();
61
+ try {
62
+ // @ts-ignore 兼容 string 和 number 类型
63
+ t && (time = moment(t, formatType[dateType]).valueOf());
64
+ }
65
+ catch (e) { }
66
+ if (dateType === 'time') {
67
+ return formatTimeToNumber(time);
68
+ }
69
+ return time;
70
+ };
71
+ /**
72
+ * 日期,日期时间按照毫秒区间转换为范围查询
73
+ */
74
+ export const dateCalculation = ({ key, val, rel }, filterType) => {
75
+ const dateSearchvalue = [];
76
+ // 1.date日期时间查询精确到秒,换算成毫秒时间戳存储,区间相隔一秒
77
+ // 2.datetime日期查询精确到日,日期换算成毫秒时间戳存储,区间相隔一日
78
+ // 3.time时间查询精确到毫秒,换算成毫秒存储,区间相隔一秒
79
+ const endTime = filterType === 'date' ? 86400000 : 999;
80
+ switch (rel) {
81
+ case 'eq':
82
+ dateSearchvalue.push({
83
+ key,
84
+ val,
85
+ rel: 'gte',
86
+ });
87
+ dateSearchvalue.push({
88
+ key,
89
+ val: val + endTime,
90
+ rel: 'lte',
91
+ });
92
+ break;
93
+ case 'neq':
94
+ dateSearchvalue.push({
95
+ key,
96
+ val,
97
+ rel: 'lt',
98
+ });
99
+ dateSearchvalue.push({
100
+ key,
101
+ val: val + endTime,
102
+ rel: 'gt',
103
+ });
104
+ break;
105
+ case 'gt':
106
+ dateSearchvalue.push({
107
+ key,
108
+ val: val + endTime,
109
+ rel: 'gt',
110
+ });
111
+ break;
112
+ case 'lt':
113
+ dateSearchvalue.push({
114
+ key,
115
+ val,
116
+ rel: 'lt',
117
+ });
118
+ break;
119
+ case 'gte':
120
+ dateSearchvalue.push({
121
+ key,
122
+ val,
123
+ rel: 'gte',
124
+ });
125
+ break;
126
+ case 'lte':
127
+ dateSearchvalue.push({
128
+ key,
129
+ val: val + endTime,
130
+ rel: 'lte',
131
+ });
132
+ break;
133
+ default:
134
+ break;
135
+ }
136
+ return dateSearchvalue;
137
+ };
@@ -0,0 +1,168 @@
1
+ import jsonExport from 'jsonexport/dist';
2
+ import moment from 'moment';
3
+ import { utils, writeFile, SSF, readFile } from 'xlsx';
4
+ /**
5
+ * 将数据导出为 CSV 或 JSON
6
+ */
7
+ export const exportData = async (data, fileType = 'csv', name = 'weda-data-export') => {
8
+ const tail = moment().format('YYYYMMDDHHmmss') || createRandomString(8);
9
+ const title = `${name}-${tail}.${fileType}`;
10
+ try {
11
+ if (fileType === 'json') {
12
+ await saveContentToFile(JSON.stringify(data), title);
13
+ }
14
+ else if (fileType === 'xls' || fileType === 'xlsx') {
15
+ const book = utils.book_new();
16
+ const sheet = utils.aoa_to_sheet(data);
17
+ const reversalData = data[0].map((col, i) => data.map((row) => row[i]));
18
+ sheet['!cols'] = reversalData.map((cells) => ({
19
+ wch: getColumnWidth(cells),
20
+ }));
21
+ utils.book_append_sheet(book, sheet, 'Sheet1');
22
+ writeFile(book, title);
23
+ }
24
+ else {
25
+ let csv = await jsonExport(data);
26
+ csv = `\ufeff${csv}`;
27
+ await saveFile(new Blob([csv], { type: 'text/csv,charset=utf-8' }), title);
28
+ }
29
+ }
30
+ catch (e) { }
31
+ };
32
+ /**
33
+ * 取每列最大宽度,实现excel列宽自适应
34
+ */
35
+ const getColumnWidth = (cells = []) => {
36
+ const widths = cells === null || cells === void 0 ? void 0 : cells.map((d) => {
37
+ if (!d)
38
+ return 10;
39
+ const value = `${d}`;
40
+ return value.replace(/[\u0391-\uFFE5]/g, 'aa').length * 1.1;
41
+ });
42
+ return Math.max(...widths);
43
+ };
44
+ /**
45
+ * 将内容保存为文件
46
+ */
47
+ export const saveContentToFile = (content, fileName, type = 'application/json') => {
48
+ if (!/\.json$/.test(fileName) && type === 'application/json') {
49
+ throw new Error('文件格式指定错误');
50
+ }
51
+ return saveFile(new Blob([content], { type }), fileName);
52
+ };
53
+ /**
54
+ * 浏览器保存文件到本地
55
+ * @param {Blob} file
56
+ * @param {string} fileName
57
+ */
58
+ export const saveFile = (file, fileName) => {
59
+ // @ts-ignore 兼容 ie
60
+ if (window.navigator.msSaveOrOpenBlob) {
61
+ // IE10+
62
+ // @ts-ignore 兼容 ie
63
+ window.navigator.msSaveOrOpenBlob(file, fileName);
64
+ }
65
+ else {
66
+ const url = URL.createObjectURL(file);
67
+ downloadFileFromUrl(url, fileName);
68
+ }
69
+ };
70
+ /**
71
+ * 通过链接下载文件
72
+ */
73
+ export const downloadFileFromUrl = (url, fileName) => {
74
+ // 创建一个链接
75
+ const a = document.createElement('a');
76
+ a.href = url;
77
+ a.download = fileName;
78
+ document.body.appendChild(a);
79
+ a.click();
80
+ // eslint-disable-next-line rulesdir/no-timer
81
+ setTimeout(() => {
82
+ document.body.removeChild(a);
83
+ window.URL.revokeObjectURL(url);
84
+ }, 0);
85
+ };
86
+ /**
87
+ * 读取上传的xlsx文件
88
+ */
89
+ export const getXlsxFileToJson = (file, cb) => {
90
+ const reader = new FileReader();
91
+ reader.readAsArrayBuffer(file);
92
+ reader.onloadend = () => {
93
+ const wb = readFile(reader.result, {
94
+ type: 'binary',
95
+ cellDates: true,
96
+ });
97
+ const result = utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], {
98
+ header: 1,
99
+ cellDates: true,
100
+ });
101
+ const [header, ...rest] = result;
102
+ const headers = Array.isArray(header) ? header : [];
103
+ // 修正时间格式的日期读取结果
104
+ const fixed = fixSheetToJson(rest, wb);
105
+ const xlsxToJsonResult = [];
106
+ fixed.forEach((i) => {
107
+ const temp = {};
108
+ i.forEach((n, index) => {
109
+ temp[headers[index]] = n;
110
+ });
111
+ xlsxToJsonResult.push(temp);
112
+ });
113
+ if (cb) {
114
+ cb({ xlsxToJsonResult, headers });
115
+ }
116
+ };
117
+ };
118
+ const datenum = (v, date1904) => {
119
+ /** excel 的时间从 1900/1/0(1899/12/30)开始 ,此时对中国用的上海时区(GMT+0805)+8:05:43,1800~1900年。
120
+ 时区是动态的,根据时间的变化而变化
121
+ getTimezoneOffset 获取的分钟数,忽略了43秒,所以会少 43 秒
122
+ https://github.com/SheetJS/sheetjs/issues/1565
123
+ */
124
+ const basedate = new Date(1899, 11, 30, 0, 0, 0);
125
+ // 重新计算时间,精确到秒
126
+ const dnthresh = basedate.getTime() +
127
+ (new Date().getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;
128
+ const dayMs = 24 * 60 * 60 * 1000;
129
+ const days1462Ms = 1462 * dayMs;
130
+ let epoch = v.getTime();
131
+ if (date1904) {
132
+ epoch -= days1462Ms;
133
+ }
134
+ return (epoch - dnthresh) / dayMs;
135
+ };
136
+ const fixImportedDate = (date, isDate1904) => {
137
+ /** ssf是一个处理日期的js库,有两种模式处理时间
138
+ 1900 mode (where date=0 is 1899-12-31)
139
+ 1904 mode (where date=0 is 1904-01-01)
140
+ */
141
+ // 利用ssf库解析时间,获得最终时间
142
+ const parsed = SSF.parse_date_code(datenum(date, false), {
143
+ date1904: isDate1904,
144
+ });
145
+ return new Date(parsed.y, parsed.m, parsed.d, parsed.H, parsed.M, parsed.S);
146
+ };
147
+ const fixSheetToJson = (rest, wb) => {
148
+ // apply hotfix
149
+ const isDate1904 = wb.Workbook.WBProps.date1904;
150
+ const fixed = rest.map((arr) => arr.map((v) => {
151
+ if (v instanceof Date) {
152
+ return fixImportedDate(v, isDate1904);
153
+ }
154
+ return v;
155
+ }));
156
+ return fixed;
157
+ };
158
+ /**
159
+ * 生成随机字符串
160
+ */
161
+ export const createRandomString = (len = 32) => {
162
+ const count = Math.ceil(Number(len) / 10) + 1;
163
+ let ret = '';
164
+ for (let i = 0; i < count; i++) {
165
+ ret += Math.random().toString(36).substr(2);
166
+ }
167
+ return ret.substr(0, len);
168
+ };
@@ -0,0 +1,16 @@
1
+ import { parse } from 'querystring';
2
+ /**
3
+ * 获取 query 参数
4
+ */
5
+ export const getPageQuery = () => {
6
+ const { hash } = window.location;
7
+ const qsIndex = hash.indexOf('?');
8
+ const sharpIndex = hash.indexOf('#');
9
+ if (qsIndex !== -1) {
10
+ if (qsIndex > sharpIndex) {
11
+ return parse(hash.split('?')[1]);
12
+ }
13
+ return parse(hash.slice(qsIndex + 1, sharpIndex));
14
+ }
15
+ return {};
16
+ };