@cloudbase/weda-ui 3.2.0 → 3.3.0

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 (356) hide show
  1. package/dist/cypress/support/commands.d.ts +1 -0
  2. package/dist/cypress/support/commands.js +40 -0
  3. package/dist/cypress/support/e2e.d.ts +24 -0
  4. package/dist/cypress/support/e2e.js +22 -0
  5. package/dist/src/configs/actions/showModal.json +48 -0
  6. package/dist/src/configs/actions/showToast.json +41 -0
  7. package/dist/src/configs/components/auth.json +16 -0
  8. package/dist/src/configs/components/button.json +239 -0
  9. package/dist/src/configs/components/calendar.json +81 -0
  10. package/dist/src/configs/components/carousel.json +292 -0
  11. package/dist/src/configs/components/chart/bar.json +962 -0
  12. package/dist/src/configs/components/chart/line.json +878 -0
  13. package/dist/src/configs/components/chart/pie.json +685 -0
  14. package/dist/src/configs/components/chart/statisticsCard.json +376 -0
  15. package/dist/src/configs/components/container.json +50 -0
  16. package/dist/src/configs/components/dataView.json +247 -0
  17. package/dist/src/configs/components/drawer.json +115 -0
  18. package/dist/src/configs/components/form/checkbox.json +179 -0
  19. package/dist/src/configs/components/form/departTreeSelect.json +124 -0
  20. package/dist/src/configs/components/form/form.json +73 -0
  21. package/dist/src/configs/components/form/input.json +154 -0
  22. package/dist/src/configs/components/form/location.json +216 -0
  23. package/dist/src/configs/components/form/radio.json +203 -0
  24. package/dist/src/configs/components/form/richText.json +133 -0
  25. package/dist/src/configs/components/form/select.json +449 -0
  26. package/dist/src/configs/components/form/switch.json +58 -0
  27. package/dist/src/configs/components/form/textarea.json +116 -0
  28. package/dist/src/configs/components/form/tips.json +34 -0
  29. package/dist/src/configs/components/form/uploader.json +171 -0
  30. package/dist/src/configs/components/form/uploaderFile.json +158 -0
  31. package/dist/src/configs/components/form/userTreeSelect.json +128 -0
  32. package/dist/src/configs/components/formdetail.json +105 -0
  33. package/dist/src/configs/components/graphicCard.json +413 -0
  34. package/dist/src/configs/components/image.json +187 -0
  35. package/dist/src/configs/components/link.json +79 -0
  36. package/dist/src/configs/components/listView.json +378 -0
  37. package/dist/src/configs/components/lottery.json +163 -0
  38. package/dist/src/configs/components/modal.json +72 -0
  39. package/dist/src/configs/components/navLayout.json +368 -0
  40. package/dist/src/configs/components/navigationBar.json +62 -0
  41. package/dist/src/configs/components/richtextview.json +26 -0
  42. package/dist/src/configs/components/scrollVeiw.json +253 -0
  43. package/dist/src/configs/components/slot.json +17 -0
  44. package/dist/src/configs/components/swiper.json +90 -0
  45. package/dist/src/configs/components/tabs.json +122 -0
  46. package/dist/src/configs/components/text.json +95 -0
  47. package/dist/src/configs/components/wedaVideo.json +89 -0
  48. package/dist/src/configs/components/wxOpenApi/phone.json +127 -0
  49. package/dist/src/configs/components/wxOpenApi/phoneCode.json +109 -0
  50. package/dist/src/configs/components/wxOpenApi/share.json +160 -0
  51. package/dist/src/configs/components/wxOpenApi/userInfo.json +156 -0
  52. package/dist/src/configs/index.d.ts +103 -0
  53. package/dist/src/configs/index.js +111 -0
  54. package/dist/src/docs/common/format.d.ts +13 -0
  55. package/dist/src/docs/common/format.js +122 -0
  56. package/dist/src/docs/common/tableView.d.ts +30 -0
  57. package/dist/src/docs/common/tableView.js +156 -0
  58. package/dist/src/index.d.ts +2 -0
  59. package/dist/src/index.js +3 -0
  60. package/dist/src/setupTests.d.ts +2 -0
  61. package/dist/src/setupTests.js +19 -0
  62. package/dist/src/web/actions/index.d.ts +2 -0
  63. package/dist/src/web/actions/index.js +2 -0
  64. package/dist/src/web/actions/showModal/index.d.ts +4 -0
  65. package/dist/src/web/actions/showModal/index.js +66 -0
  66. package/dist/src/web/actions/showToast/index.d.ts +1 -0
  67. package/dist/src/web/actions/showToast/index.js +3 -0
  68. package/dist/src/web/components/button/index.d.ts +32 -0
  69. package/dist/src/web/components/button/index.js +48 -0
  70. package/dist/src/web/components/calendar/index.d.ts +19 -0
  71. package/dist/src/web/components/calendar/index.js +191 -0
  72. package/dist/src/web/components/calendar/util.d.ts +13 -0
  73. package/dist/src/web/components/calendar/util.js +74 -0
  74. package/dist/src/web/components/carousel/index.d.ts +41 -0
  75. package/dist/src/web/components/carousel/index.js +244 -0
  76. package/dist/src/web/components/chart/bar/index.d.ts +3 -0
  77. package/dist/src/web/components/chart/bar/index.js +45 -0
  78. package/dist/src/web/components/chart/bar/index.old.d.ts +40 -0
  79. package/dist/src/web/components/chart/bar/index.old.js +56 -0
  80. package/dist/src/web/components/chart/common/Chart.d.ts +10 -0
  81. package/dist/src/web/components/chart/common/Chart.js +31 -0
  82. package/dist/src/web/components/chart/common/chart-custom-connector.d.ts +6 -0
  83. package/dist/src/web/components/chart/common/chart-custom-connector.js +35 -0
  84. package/dist/src/web/components/chart/common/chart-error.d.ts +2 -0
  85. package/dist/src/web/components/chart/common/chart-error.js +2 -0
  86. package/dist/src/web/components/chart/common/config/bar.d.ts +48 -0
  87. package/dist/src/web/components/chart/common/config/bar.js +49 -0
  88. package/dist/src/web/components/chart/common/config/global.d.ts +13 -0
  89. package/dist/src/web/components/chart/common/config/global.js +16 -0
  90. package/dist/src/web/components/chart/common/config/line.d.ts +46 -0
  91. package/dist/src/web/components/chart/common/config/line.js +49 -0
  92. package/dist/src/web/components/chart/common/config/pie.d.ts +29 -0
  93. package/dist/src/web/components/chart/common/config/pie.js +36 -0
  94. package/dist/src/web/components/chart/common/core/eChartBar.d.ts +66 -0
  95. package/dist/src/web/components/chart/common/core/eChartBar.js +201 -0
  96. package/dist/src/web/components/chart/common/core/eChartBase.d.ts +127 -0
  97. package/dist/src/web/components/chart/common/core/eChartBase.js +394 -0
  98. package/dist/src/web/components/chart/common/core/eChartLine.d.ts +60 -0
  99. package/dist/src/web/components/chart/common/core/eChartLine.js +173 -0
  100. package/dist/src/web/components/chart/common/core/eChartPie.d.ts +48 -0
  101. package/dist/src/web/components/chart/common/core/eChartPie.js +135 -0
  102. package/dist/src/web/components/chart/common/core/type.d.ts +35 -0
  103. package/dist/src/web/components/chart/common/core/type.js +9 -0
  104. package/dist/src/web/components/chart/common/data-transform.d.ts +6 -0
  105. package/dist/src/web/components/chart/common/data-transform.js +248 -0
  106. package/dist/src/web/components/chart/common/echarts.d.ts +5 -0
  107. package/dist/src/web/components/chart/common/echarts.js +24 -0
  108. package/dist/src/web/components/chart/common/error-boundary.d.ts +5 -0
  109. package/dist/src/web/components/chart/common/error-boundary.js +26 -0
  110. package/dist/src/web/components/chart/common/useChart.d.ts +8 -0
  111. package/dist/src/web/components/chart/common/useChart.js +72 -0
  112. package/dist/src/web/components/chart/line/index.d.ts +3 -0
  113. package/dist/src/web/components/chart/line/index.js +42 -0
  114. package/dist/src/web/components/chart/line/index.old.d.ts +38 -0
  115. package/dist/src/web/components/chart/line/index.old.js +53 -0
  116. package/dist/src/web/components/chart/pie/index.d.ts +3 -0
  117. package/dist/src/web/components/chart/pie/index.js +42 -0
  118. package/dist/src/web/components/chart/pie/index.old.d.ts +27 -0
  119. package/dist/src/web/components/chart/pie/index.old.js +40 -0
  120. package/dist/src/web/components/chart/statisticsCard/index.d.ts +85 -0
  121. package/dist/src/web/components/chart/statisticsCard/index.js +203 -0
  122. package/dist/src/web/components/chart/statisticsCard/interface.d.ts +13 -0
  123. package/dist/src/web/components/chart/statisticsCard/interface.js +1 -0
  124. package/dist/src/web/components/common/error-boundary.d.ts +5 -0
  125. package/dist/src/web/components/common/error-boundary.js +33 -0
  126. package/dist/src/web/components/common/portal.d.ts +7 -0
  127. package/dist/src/web/components/common/portal.js +14 -0
  128. package/dist/src/web/components/common/use-loop-render-detect.d.ts +11 -0
  129. package/dist/src/web/components/common/use-loop-render-detect.js +124 -0
  130. package/dist/src/web/components/container/index.d.ts +6 -0
  131. package/dist/src/web/components/container/index.js +6 -0
  132. package/dist/src/web/components/dataView/index.d.ts +6 -0
  133. package/dist/src/web/components/dataView/index.js +8 -0
  134. package/dist/src/web/components/dataView/interface.d.ts +5 -0
  135. package/dist/src/web/components/dataView/interface.js +1 -0
  136. package/dist/src/web/components/drawer/index.d.ts +13 -0
  137. package/dist/src/web/components/drawer/index.js +12 -0
  138. package/dist/src/web/components/form/checkbox/index.d.ts +13 -0
  139. package/dist/src/web/components/form/checkbox/index.js +167 -0
  140. package/dist/src/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
  141. package/dist/src/web/components/form/enumSelect/MultipleSelect.js +52 -0
  142. package/dist/src/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
  143. package/dist/src/web/components/form/enumSelect/NormalSelect.js +52 -0
  144. package/dist/src/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
  145. package/dist/src/web/components/form/enumSelect/SelectContainer.js +30 -0
  146. package/dist/src/web/components/form/enumSelect/index.d.ts +82 -0
  147. package/dist/src/web/components/form/enumSelect/index.js +6 -0
  148. package/dist/src/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
  149. package/dist/src/web/components/form/enumSelect/props/defaultProps.js +40 -0
  150. package/dist/src/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
  151. package/dist/src/web/components/form/enumSelect/props/propsTypes.js +47 -0
  152. package/dist/src/web/components/form/form/index.d.ts +32 -0
  153. package/dist/src/web/components/form/form/index.js +150 -0
  154. package/dist/src/web/components/form/formcell/index.d.ts +8 -0
  155. package/dist/src/web/components/form/formcell/index.js +40 -0
  156. package/dist/src/web/components/form/input/index.d.ts +14 -0
  157. package/dist/src/web/components/form/input/index.js +94 -0
  158. package/dist/src/web/components/form/location/common/mapChoose.d.ts +15 -0
  159. package/dist/src/web/components/form/location/common/mapChoose.js +496 -0
  160. package/dist/src/web/components/form/location/common/mapView.d.ts +19 -0
  161. package/dist/src/web/components/form/location/common/mapView.js +175 -0
  162. package/dist/src/web/components/form/location/common/propsConfig.d.ts +59 -0
  163. package/dist/src/web/components/form/location/common/propsConfig.js +50 -0
  164. package/dist/src/web/components/form/location/common/selectModal.d.ts +21 -0
  165. package/dist/src/web/components/form/location/common/selectModal.js +44 -0
  166. package/dist/src/web/components/form/location/common/tmap.d.ts +3 -0
  167. package/dist/src/web/components/form/location/common/tmap.js +21 -0
  168. package/dist/src/web/components/form/location/common/useLocationInfo.d.ts +36 -0
  169. package/dist/src/web/components/form/location/common/useLocationInfo.js +105 -0
  170. package/dist/src/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
  171. package/dist/src/web/components/form/location/components/LocationH5/location.h5.js +328 -0
  172. package/dist/src/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
  173. package/dist/src/web/components/form/location/components/LocationPC/Header.js +43 -0
  174. package/dist/src/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
  175. package/dist/src/web/components/form/location/components/LocationPC/location.PC.js +228 -0
  176. package/dist/src/web/components/form/location/constants.d.ts +2 -0
  177. package/dist/src/web/components/form/location/constants.js +3 -0
  178. package/dist/src/web/components/form/location/index.d.ts +1 -0
  179. package/dist/src/web/components/form/location/index.js +24 -0
  180. package/dist/src/web/components/form/radio/index.d.ts +11 -0
  181. package/dist/src/web/components/form/radio/index.js +115 -0
  182. package/dist/src/web/components/form/renderDecorator.d.ts +6 -0
  183. package/dist/src/web/components/form/renderDecorator.js +20 -0
  184. package/dist/src/web/components/form/select/allTimePicker/calendar.d.ts +13 -0
  185. package/dist/src/web/components/form/select/allTimePicker/calendar.js +104 -0
  186. package/dist/src/web/components/form/select/allTimePicker/dataUtils.d.ts +24 -0
  187. package/dist/src/web/components/form/select/allTimePicker/dataUtils.js +265 -0
  188. package/dist/src/web/components/form/select/allTimePicker/index.d.ts +14 -0
  189. package/dist/src/web/components/form/select/allTimePicker/index.js +944 -0
  190. package/dist/src/web/components/form/select/dropdown-select/ui.d.ts +15 -0
  191. package/dist/src/web/components/form/select/dropdown-select/ui.js +55 -0
  192. package/dist/src/web/components/form/select/h5.d.ts +16 -0
  193. package/dist/src/web/components/form/select/h5.js +466 -0
  194. package/dist/src/web/components/form/select/index.d.ts +66 -0
  195. package/dist/src/web/components/form/select/index.js +255 -0
  196. package/dist/src/web/components/form/select/region/index.d.ts +6 -0
  197. package/dist/src/web/components/form/select/region/index.js +147 -0
  198. package/dist/src/web/components/form/select/time.d.ts +9 -0
  199. package/dist/src/web/components/form/select/time.js +146 -0
  200. package/dist/src/web/components/form/select/use-options.d.ts +26 -0
  201. package/dist/src/web/components/form/select/use-options.js +103 -0
  202. package/dist/src/web/components/form/select/year.d.ts +7 -0
  203. package/dist/src/web/components/form/select/year.js +72 -0
  204. package/dist/src/web/components/form/switch/index.d.ts +6 -0
  205. package/dist/src/web/components/form/switch/index.js +58 -0
  206. package/dist/src/web/components/form/textarea/index.d.ts +12 -0
  207. package/dist/src/web/components/form/textarea/index.js +66 -0
  208. package/dist/src/web/components/form/tips/index.d.ts +8 -0
  209. package/dist/src/web/components/form/tips/index.js +17 -0
  210. package/dist/src/web/components/form/uploader/index.d.ts +3 -0
  211. package/dist/src/web/components/form/uploader/index.js +42 -0
  212. package/dist/src/web/components/form/uploader/uploader.h5.d.ts +20 -0
  213. package/dist/src/web/components/form/uploader/uploader.h5.js +199 -0
  214. package/dist/src/web/components/form/uploader/uploader.pc.d.ts +29 -0
  215. package/dist/src/web/components/form/uploader/uploader.pc.js +208 -0
  216. package/dist/src/web/components/form/uploaderFile/index.d.ts +4 -0
  217. package/dist/src/web/components/form/uploaderFile/index.js +19 -0
  218. package/dist/src/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
  219. package/dist/src/web/components/form/uploaderFile/uploadFile.h5.js +330 -0
  220. package/dist/src/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
  221. package/dist/src/web/components/form/uploaderFile/uploadFile.pc.js +302 -0
  222. package/dist/src/web/components/form/userOrgSelect/comTool.d.ts +8 -0
  223. package/dist/src/web/components/form/userOrgSelect/comTool.js +101 -0
  224. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +19 -0
  225. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +252 -0
  226. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +4 -0
  227. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +157 -0
  228. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +2 -0
  229. package/dist/src/web/components/form/userOrgSelect/departTreeSelect/index.js +17 -0
  230. package/dist/src/web/components/form/userOrgSelect/getUserService.d.ts +11 -0
  231. package/dist/src/web/components/form/userOrgSelect/getUserService.js +159 -0
  232. package/dist/src/web/components/form/userOrgSelect/index.d.ts +2 -0
  233. package/dist/src/web/components/form/userOrgSelect/index.js +17 -0
  234. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +27 -0
  235. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.js +276 -0
  236. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +9 -0
  237. package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.js +253 -0
  238. package/dist/src/web/components/form/userOrgSelect/utils.d.ts +36 -0
  239. package/dist/src/web/components/form/userOrgSelect/utils.js +80 -0
  240. package/dist/src/web/components/formdetail/index.d.ts +28 -0
  241. package/dist/src/web/components/formdetail/index.js +173 -0
  242. package/dist/src/web/components/graphicCard/index.d.ts +46 -0
  243. package/dist/src/web/components/graphicCard/index.js +178 -0
  244. package/dist/src/web/components/image/image.d.ts +9 -0
  245. package/dist/src/web/components/image/image.js +119 -0
  246. package/dist/src/web/components/image/index.d.ts +13 -0
  247. package/dist/src/web/components/image/index.js +77 -0
  248. package/dist/src/web/components/index.d.ts +50 -0
  249. package/dist/src/web/components/index.js +99 -0
  250. package/dist/src/web/components/link/index.d.ts +24 -0
  251. package/dist/src/web/components/link/index.js +71 -0
  252. package/dist/src/web/components/listView/index.d.ts +7 -0
  253. package/dist/src/web/components/listView/index.js +297 -0
  254. package/dist/src/web/components/listView/interface.d.ts +127 -0
  255. package/dist/src/web/components/listView/interface.js +1 -0
  256. package/dist/src/web/components/lottery/index.d.ts +22 -0
  257. package/dist/src/web/components/lottery/index.js +385 -0
  258. package/dist/src/web/components/lottery/lotteryUtil.d.ts +23 -0
  259. package/dist/src/web/components/lottery/lotteryUtil.js +181 -0
  260. package/dist/src/web/components/modal/index.d.ts +17 -0
  261. package/dist/src/web/components/modal/index.js +11 -0
  262. package/dist/src/web/components/modal/modal.h5.d.ts +4 -0
  263. package/dist/src/web/components/modal/modal.h5.js +46 -0
  264. package/dist/src/web/components/modal/modal.pc.d.ts +3 -0
  265. package/dist/src/web/components/modal/modal.pc.js +31 -0
  266. package/dist/src/web/components/navLayout/index.d.ts +61 -0
  267. package/dist/src/web/components/navLayout/index.js +127 -0
  268. package/dist/src/web/components/navigationBar/common.d.ts +15 -0
  269. package/dist/src/web/components/navigationBar/common.js +127 -0
  270. package/dist/src/web/components/navigationBar/h5Menu.d.ts +14 -0
  271. package/dist/src/web/components/navigationBar/h5Menu.js +72 -0
  272. package/dist/src/web/components/navigationBar/horizontalMenu.d.ts +12 -0
  273. package/dist/src/web/components/navigationBar/horizontalMenu.js +99 -0
  274. package/dist/src/web/components/navigationBar/index.d.ts +13 -0
  275. package/dist/src/web/components/navigationBar/index.js +157 -0
  276. package/dist/src/web/components/navigationBar/verticalMenu.d.ts +13 -0
  277. package/dist/src/web/components/navigationBar/verticalMenu.js +38 -0
  278. package/dist/src/web/components/phone/index.d.ts +18 -0
  279. package/dist/src/web/components/phone/index.js +4 -0
  280. package/dist/src/web/components/phoneCode/index.d.ts +18 -0
  281. package/dist/src/web/components/phoneCode/index.js +4 -0
  282. package/dist/src/web/components/picker/datePicker.d.ts +10 -0
  283. package/dist/src/web/components/picker/datePicker.js +31 -0
  284. package/dist/src/web/components/picker/picker.d.ts +6 -0
  285. package/dist/src/web/components/picker/picker.js +45 -0
  286. package/dist/src/web/components/picker/timePicker.d.ts +7 -0
  287. package/dist/src/web/components/picker/timePicker.js +42 -0
  288. package/dist/src/web/components/richText/const.d.ts +1 -0
  289. package/dist/src/web/components/richText/const.js +2 -0
  290. package/dist/src/web/components/richText/index.d.ts +50 -0
  291. package/dist/src/web/components/richText/index.js +351 -0
  292. package/dist/src/web/components/richTextView/index.d.ts +7 -0
  293. package/dist/src/web/components/richTextView/index.js +46 -0
  294. package/dist/src/web/components/scrollView/index.d.ts +26 -0
  295. package/dist/src/web/components/scrollView/index.js +97 -0
  296. package/dist/src/web/components/share/index.d.ts +34 -0
  297. package/dist/src/web/components/share/index.js +4 -0
  298. package/dist/src/web/components/slot/index.d.ts +6 -0
  299. package/dist/src/web/components/slot/index.js +9 -0
  300. package/dist/src/web/components/swiper/index.d.ts +24 -0
  301. package/dist/src/web/components/swiper/index.js +153 -0
  302. package/dist/src/web/components/tabs/index.d.ts +13 -0
  303. package/dist/src/web/components/tabs/index.js +20 -0
  304. package/dist/src/web/components/tabs/tabs.h5.d.ts +4 -0
  305. package/dist/src/web/components/tabs/tabs.h5.js +44 -0
  306. package/dist/src/web/components/tabs/tabs.pc.d.ts +3 -0
  307. package/dist/src/web/components/tabs/tabs.pc.js +40 -0
  308. package/dist/src/web/components/text/index.d.ts +14 -0
  309. package/dist/src/web/components/text/index.js +19 -0
  310. package/dist/src/web/components/uploaderFileView/index.d.ts +10 -0
  311. package/dist/src/web/components/uploaderFileView/index.js +46 -0
  312. package/dist/src/web/components/uploaderView/index.d.ts +17 -0
  313. package/dist/src/web/components/uploaderView/index.js +48 -0
  314. package/dist/src/web/components/userInfo/index.d.ts +26 -0
  315. package/dist/src/web/components/userInfo/index.js +4 -0
  316. package/dist/src/web/components/wedaVideo/index.d.ts +17 -0
  317. package/dist/src/web/components/wedaVideo/index.js +156 -0
  318. package/dist/src/web/index.d.ts +8 -0
  319. package/dist/src/web/index.js +4 -0
  320. package/dist/src/web/utils/classnames.d.ts +2 -0
  321. package/dist/src/web/utils/classnames.js +37 -0
  322. package/dist/src/web/utils/console.d.ts +3 -0
  323. package/dist/src/web/utils/console.js +26 -0
  324. package/dist/src/web/utils/constant.d.ts +23 -0
  325. package/dist/src/web/utils/constant.js +24 -0
  326. package/dist/src/web/utils/debounce.d.ts +2 -0
  327. package/dist/src/web/utils/debounce.js +92 -0
  328. package/dist/src/web/utils/getLocalCounter.d.ts +1 -0
  329. package/dist/src/web/utils/getLocalCounter.js +4 -0
  330. package/dist/src/web/utils/getUserService.d.ts +11 -0
  331. package/dist/src/web/utils/getUserService.js +156 -0
  332. package/dist/src/web/utils/isObjectEqual.d.ts +2 -0
  333. package/dist/src/web/utils/isObjectEqual.js +12 -0
  334. package/dist/src/web/utils/loading-fallback.d.ts +2 -0
  335. package/dist/src/web/utils/loading-fallback.js +2 -0
  336. package/dist/src/web/utils/lodash.d.ts +1 -0
  337. package/dist/src/web/utils/lodash.js +2 -0
  338. package/dist/src/web/utils/platform.d.ts +18 -0
  339. package/dist/src/web/utils/platform.js +193 -0
  340. package/dist/src/web/utils/tcb.d.ts +33 -0
  341. package/dist/src/web/utils/tcb.js +118 -0
  342. package/dist/src/web/utils/tmap.d.ts +3 -0
  343. package/dist/src/web/utils/tmap.js +21 -0
  344. package/dist/src/web/utils/use-cloud-id-temp-url.d.ts +1 -0
  345. package/dist/src/web/utils/use-cloud-id-temp-url.js +15 -0
  346. package/dist/src/web/utils/useSetState.d.ts +1 -0
  347. package/dist/src/web/utils/useSetState.js +8 -0
  348. package/dist/src/web/utils/useSyncValue.d.ts +4 -0
  349. package/dist/src/web/utils/useSyncValue.js +16 -0
  350. package/dist/src/web/utils/weui.d.ts +1 -0
  351. package/dist/src/web/utils/weui.js +2 -0
  352. package/dist/web/components/form/input/index.css +16 -0
  353. package/dist/web/components/form/select/allTimePicker/calendar.css +114 -0
  354. package/dist/web/components/form/select/allTimePicker/index.css +136 -0
  355. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +809 -0
  356. package/package.json +34 -21
@@ -0,0 +1,208 @@
1
+ import * as React from 'react';
2
+ import { Upload, Button, Icon, message, ErrorTip, ImagePreview, ConfigProvider, } from 'tea-component';
3
+ import classNames from '../../../utils/classnames';
4
+ import { getCloudInstance } from '../../../utils/tcb';
5
+ import { randomStr } from '../../../utils/platform';
6
+ import isObjectEqual from '../../../utils/isObjectEqual';
7
+ import { emptyObject } from '../../../utils/constant';
8
+ import { useTempUrl } from '../../../utils/use-cloud-id-temp-url';
9
+ // 默认组件类前缀
10
+ export const CLASS_PREFIX = 'weda-uploader-pc';
11
+ // 默认图片类型
12
+ export const IMAGE_TYPES = [
13
+ 'image/jpg',
14
+ 'image/png',
15
+ 'image/tif',
16
+ 'image/bmp',
17
+ 'image/jpeg',
18
+ 'image/tiff',
19
+ 'image/gif',
20
+ ];
21
+ /**
22
+ * 上传图片-官方组件
23
+ */
24
+ // eslint-disable-next-line react/prop-types
25
+ export function UploaderPC({ layout, className, id, style, title, tips, ...props }) {
26
+ const cls = classNames({
27
+ 'weda-ui': true,
28
+ [CLASS_PREFIX]: true,
29
+ [layout]: layout,
30
+ [className]: className,
31
+ });
32
+ return (React.createElement("div", { className: cls, id: id, style: style },
33
+ React.createElement("div", { className: `${CLASS_PREFIX}__header` },
34
+ title && React.createElement("div", { className: `${CLASS_PREFIX}__title` }, title),
35
+ tips && (React.createElement("div", { className: `${CLASS_PREFIX}__description` }, tips || ''))),
36
+ React.createElement(UploaderPCInner, { ...props })));
37
+ }
38
+ export function UploaderPCInner(props) {
39
+ const { tips = '', btnTitle = '上传图片', maxUploadCount = 9, maxSize = 10, value: defaultValue, // 需要兼容 cloud:和https: 协议,需要兼容 字符串和字符串数组
40
+ acceptTypes = IMAGE_TYPES, uploadPath = 'weda-uploader', events = emptyObject, single = false, disabled = false, onChange, } = props;
41
+ // 上传中
42
+ const [uploading, setUploading] = React.useState(false);
43
+ //上传进度
44
+ const [progress, setProgress] = React.useState(0);
45
+ // 文件列表
46
+ const [fileIDList, setfileIDList] = React.useState([]);
47
+ const fileRef = React.useRef([]);
48
+ React.useEffect(() => {
49
+ let initialValue = []
50
+ .concat(defaultValue)
51
+ .filter((d) => typeof d === 'string' && d !== '');
52
+ if (single) {
53
+ initialValue = initialValue[0] ? [initialValue[0]] : [];
54
+ }
55
+ setfileIDList(initialValue);
56
+ }, [defaultValue, single]);
57
+ // 值变化事件
58
+ React.useEffect(() => {
59
+ if (!isObjectEqual(fileRef.current, fileIDList)) {
60
+ if (single) {
61
+ const file = fileIDList[0] || '';
62
+ onChange && onChange(file);
63
+ events.change && events.change({ value: file });
64
+ }
65
+ else {
66
+ onChange && onChange(fileIDList);
67
+ events.change && events.change({ value: fileIDList });
68
+ }
69
+ fileRef.current = fileIDList;
70
+ }
71
+ });
72
+ //验证上传文件类型是否合法
73
+ const islegalType = (files, accepts) => {
74
+ const illegalType = [];
75
+ let isImage = true;
76
+ for (const file of files) {
77
+ if ((file === null || file === void 0 ? void 0 : file.type.split('/')[0]) !== 'image') {
78
+ message.error({ content: '请上传图片' });
79
+ isImage = false;
80
+ break;
81
+ }
82
+ accepts.some((item) => item === (file === null || file === void 0 ? void 0 : file.type))
83
+ ? null
84
+ : illegalType.push(file === null || file === void 0 ? void 0 : file.type);
85
+ }
86
+ if (!isImage)
87
+ return false;
88
+ if (illegalType.length > 0) {
89
+ message.error({
90
+ content: '不支持上传' +
91
+ Array.from(new Set(illegalType)).join(',') +
92
+ '格式图片',
93
+ });
94
+ return false;
95
+ }
96
+ return true;
97
+ };
98
+ // 方法:上传前,判断图片大小、数量是否满足,取消默认组件的上传事件,用自定义的 tcb 上传方法
99
+ const beforeHandle = (file, fileList, isAccepted, error) => {
100
+ if (!islegalType(fileList, extraProps['accept']))
101
+ return;
102
+ if (!isAccepted) {
103
+ try {
104
+ const errorList = [];
105
+ if (error.find((item) => (item === null || item === void 0 ? void 0 : item.code) === 'file-invalid-type')) {
106
+ errorList.push('上传图片类型错误');
107
+ }
108
+ if (error.find((item) => (item === null || item === void 0 ? void 0 : item.code) === 'file-too-large')) {
109
+ errorList.push(`上传图片大小不能超过${maxSize}M`);
110
+ }
111
+ message.error({ content: errorList.join(', ') });
112
+ }
113
+ catch (e) { }
114
+ return false;
115
+ }
116
+ uploadTcb(file);
117
+ return false;
118
+ };
119
+ // 自定义上传到 Tcb 的 COS
120
+ const uploadTcb = (file) => {
121
+ setUploading(true);
122
+ getCloudInstance().then(async (tcb) => {
123
+ try {
124
+ const cloudPath = `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`;
125
+ const { fileID } = await tcb.uploadFile({
126
+ cloudPath,
127
+ filePath: file,
128
+ onUploadProgress: onProgress,
129
+ });
130
+ fileID && setfileIDList((list) => [...list, fileID]);
131
+ fileID && events.success && events.success({ value: fileID, file });
132
+ }
133
+ catch (err) {
134
+ message.error({ content: '上传失败,请检查网络后重试' });
135
+ events.error && events.error(err);
136
+ }
137
+ finally {
138
+ setUploading(false);
139
+ setProgress(0);
140
+ }
141
+ });
142
+ };
143
+ // 计算上传进度
144
+ const onProgress = (progressEvent) => {
145
+ let percentCompleted = 0;
146
+ try {
147
+ percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
148
+ percentCompleted < 100 ? percentCompleted : 100;
149
+ }
150
+ catch (e) { }
151
+ setProgress(percentCompleted);
152
+ };
153
+ // 删除图片
154
+ const deleteHandle = (fileID) => {
155
+ setfileIDList((list) => list.filter((d) => d !== fileID));
156
+ };
157
+ // 转换后的属性
158
+ const extraProps = {};
159
+ extraProps['accept'] =
160
+ acceptTypes.includes('image/*') || acceptTypes.length === 0
161
+ ? IMAGE_TYPES
162
+ : Array.from(new Set(acceptTypes));
163
+ tips && (extraProps['title'] = tips);
164
+ maxSize && (extraProps['maxSize'] = maxSize * 1024 * 1024);
165
+ return (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
166
+ React.createElement("div", { className: "_weda-fn-upload-result" },
167
+ fileIDList.map((d) => (React.createElement("div", { className: "_weda-fn-upload-result__item", key: d },
168
+ React.createElement(TcbImage, { fileID: d }),
169
+ React.createElement("div", { className: "_weda-fn-upload-result__op" },
170
+ React.createElement(Button, { disabled: disabled, onClick: () => deleteHandle(d), className: `${CLASS_PREFIX}__btn` }, "\u5220\u9664"))))),
171
+ uploading && (React.createElement("div", { className: "_weda-fn-upload-result__item" },
172
+ React.createElement("div", { className: "_weda-fn-upload-result__status", key: "_place_image" },
173
+ React.createElement(Icon, { type: "loading" }),
174
+ !!progress && (React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" },
175
+ "\u4E0A\u4F20",
176
+ progress,
177
+ "%..."))))),
178
+ React.createElement("div", { className: `${CLASS_PREFIX}__input-box` }, disabled ? (React.createElement("li", { className: "_weda-fn-upload-result__item wedatea2td-disabled" },
179
+ React.createElement("div", { className: "_weda-fn-upload-result__status" },
180
+ React.createElement("i", { className: "wedatea2td-icon wedatea2td-icon-plus", role: "img", "aria-label": "plus" }),
181
+ React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle)))) : (((!single && fileIDList.length < maxUploadCount) ||
182
+ (single && fileIDList.length < 1 && !uploading)) && ( // single 模式时,当数组为空且不在上传文件过程中时显示
183
+ React.createElement(Upload, { ...extraProps, beforeUpload: beforeHandle },
184
+ React.createElement("li", { className: "_weda-fn-upload-result__item _weda-fn-upload-result__item--upload" },
185
+ React.createElement("div", { className: "_weda-fn-upload-result__status" },
186
+ React.createElement("i", { className: "wedatea2td-icon wedatea2td-icon-plus", role: "img", "aria-label": "plus" }),
187
+ React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle))))))))));
188
+ }
189
+ export const TcbImage = (props) => {
190
+ const { fileID, isZoom, ...rest } = props;
191
+ const [isError, setIsError] = React.useState(false);
192
+ const { data: src, error: requestError } = useTempUrl(fileID);
193
+ if (isError || requestError) {
194
+ return React.createElement(ErrorTip, null);
195
+ }
196
+ if (src) {
197
+ return isZoom ? (React.createElement(ImagePreview, { key: fileID, className: `${CLASS_PREFIX}__image`, ...rest, src: encodeURI(src), previewSrc: encodeURI(src),
198
+ /** @ts-expect-error tea imagepreview onError */
199
+ onError: (e) => {
200
+ setIsError(true);
201
+ (props === null || props === void 0 ? void 0 : props.onError) && props.onError(e);
202
+ } })) : (React.createElement("img", { key: fileID, className: `${CLASS_PREFIX}__image`, ...rest, src: encodeURI(src), onError: (e) => {
203
+ setIsError(true);
204
+ (props === null || props === void 0 ? void 0 : props.onError) && props.onError(e);
205
+ } }));
206
+ }
207
+ return null;
208
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 文件组件上传,区分 h5端/pc端
3
+ */
4
+ export default function UploaderFile(props: any): JSX.Element;
@@ -0,0 +1,19 @@
1
+ /* eslint-disable react/prop-types */
2
+ import * as React from 'react';
3
+ import { usePlatform } from '../../../utils/platform';
4
+ import { UploadFileH5 as UploaderH5 } from './uploadFile.h5';
5
+ import { UploadFilePc } from './uploadFile.pc';
6
+ import './index.css';
7
+ /**
8
+ * 文件组件上传,区分 h5端/pc端
9
+ */
10
+ export default function UploaderFile(props) {
11
+ const platform = usePlatform();
12
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
13
+ return React.createElement(UploadFilePc, { ...props });
14
+ }
15
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'h5') {
16
+ return React.createElement(UploaderH5, { ...props });
17
+ }
18
+ return platform === 'h5' ? (React.createElement(UploaderH5, { ...props })) : (React.createElement(UploadFilePc, { ...props }));
19
+ }
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import type { CommonFormPropsType } from '../types';
3
+ export declare const FILES_TYPES: string[];
4
+ export declare function UploadFileH5({ layout, id, style, labelVisible, label, requiredFlag, disabled, className, acceptTypes, tips, btnTitle, maxUploadCount, maxSize, deleteVisible, downloadVisible, value, // 需要兼容 cloud:和https: 协议,需要兼容字符串和字符串数组
5
+ events, defaultValue, uploadPath, single, onChange, isEdit, }: IUploadFileH5): JSX.Element;
6
+ export interface IUploadFileH5 extends CommonFormPropsType {
7
+ className?: string;
8
+ label?: string;
9
+ tips?: string;
10
+ btnTitle?: string;
11
+ maxUploadCount?: number;
12
+ deleteVisible?: boolean;
13
+ downloadVisible?: boolean;
14
+ acceptTypes?: Readonly<string[] | string>;
15
+ disabled?: boolean;
16
+ defaultValue?: string | string[];
17
+ maxSize?: number;
18
+ value?: Readonly<string | string[]>;
19
+ uploadPath?: string;
20
+ single?: boolean;
21
+ onChange?: (v: any) => void;
22
+ isEdit: boolean;
23
+ }
@@ -0,0 +1,330 @@
1
+ import * as React from 'react';
2
+ import weui from '../../../utils/weui';
3
+ import isObjectEqual from '../../../utils/isObjectEqual';
4
+ import { ConfigProvider, Button, Icon, Text, List, Progress, Tooltip, message, } from 'tea-component';
5
+ import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, transFileCloudidToName, randomStr, } from '../../../utils/platform';
6
+ import { getCloudInstance } from '../../../utils/tcb';
7
+ import classNames from '../../../utils/classnames';
8
+ import { renderDecorator } from '../renderDecorator';
9
+ import { emptyArray, emptyObject } from '../../../utils/constant';
10
+ import { useTempUrl } from '../../../utils/use-cloud-id-temp-url';
11
+ // 默认组件类前缀
12
+ const CLASS_PREFIX = 'weda-upload-file-mobile';
13
+ // 默认图片类型
14
+ export const FILES_TYPES = [
15
+ '.doc',
16
+ '.docx',
17
+ '.xml',
18
+ 'application/msword',
19
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
20
+ ];
21
+ // 上传状态字典
22
+ const statusMap = {
23
+ UPLOAD_STATUS_PENDING: { title: '等待上传', icon: 'pending' },
24
+ UPLOAD_STATUS_LOADING: { title: '上传中', icon: 'loading' },
25
+ UPLOAD_STATUS_SUCCESS: { title: '上传成功', icon: 'success' },
26
+ UPLOAD_STATUS_ERROR: { title: '上传失败', icon: 'error' },
27
+ };
28
+ // 上传文件Context
29
+ const FileContext = React.createContext(null);
30
+ /**
31
+ * 上传文件 H5 版本
32
+ */
33
+ const defaultStyle = { margin: '0,-5px' };
34
+ export function UploadFileH5({
35
+ // 系统属性
36
+ layout, id = '', style = defaultStyle, labelVisible = true, label = '上传文件', requiredFlag = false, disabled = false, className = '', acceptTypes = emptyArray,
37
+ // 组件属性
38
+ tips = '', btnTitle = '点击上传', maxUploadCount = 9, maxSize = 10, deleteVisible = true, downloadVisible = true, value = emptyArray, // 需要兼容 cloud:和https: 协议,需要兼容字符串和字符串数组
39
+ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true, onChange = null, isEdit = true, }) {
40
+ const [fileIDList, setfileIDList] = React.useState(filterStrList([].concat(defaultValue, value))); // 上传成功文件ID列表,fileID[]
41
+ const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性
42
+ const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}
43
+ // 两次默认值不同, 需要刷新
44
+ const prevDefaultRef = React.useRef([]);
45
+ const fileRef = React.useRef(fileIDList);
46
+ React.useMemo(() => {
47
+ //有有效默认值时不刷新,解决初次渲染默认值不显示问题
48
+ if (defaultValue &&
49
+ !isObjectEqual(prevDefaultRef.current, defaultValue) &&
50
+ (JSON.stringify(prevDefaultRef.current) == '[]' ||
51
+ !prevDefaultRef.current)) {
52
+ prevDefaultRef.current = defaultValue;
53
+ setfileIDList(filterStrList([].concat(defaultValue)));
54
+ }
55
+ }, [defaultValue]);
56
+ React.useEffect(() => {
57
+ var _a, _b, _c;
58
+ // 外部 onChange 事件
59
+ const pureFileIDList = fileIDList.filter((d) => isCloudFileID(d) || isHttpFileID(d));
60
+ if (single) {
61
+ const file = pureFileIDList[0] || '';
62
+ file && onChange && onChange(file);
63
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: file });
64
+ }
65
+ else {
66
+ onChange && onChange(pureFileIDList);
67
+ (_b = events === null || events === void 0 ? void 0 : events.change) === null || _b === void 0 ? void 0 : _b.call(events, { value: pureFileIDList });
68
+ }
69
+ if (!isObjectEqual(fileRef.current, fileIDList)) {
70
+ (_c = events === null || events === void 0 ? void 0 : events.success) === null || _c === void 0 ? void 0 : _c.call(events, { value: pureFileIDList });
71
+ fileRef.current = fileIDList;
72
+ }
73
+ }, [events, fileIDList, onChange, single]);
74
+ // 外层组件类
75
+ const cls = classNames({
76
+ 'weda-ui': true,
77
+ //'weui-cells': true,
78
+ //'weui-cells_form': true,
79
+ 'weui-cells_checkbox': true,
80
+ [className]: className,
81
+ });
82
+ const accepts = React.useMemo(() => {
83
+ return acceptTypes.includes('*') || acceptTypes.length === 0
84
+ ? ['*']
85
+ : Array.from(new Set(acceptTypes));
86
+ }, [acceptTypes]);
87
+ const islegalType = (files, accepts) => {
88
+ const illegalType = [];
89
+ for (const file of files) {
90
+ accepts.some((item) => item === (file === null || file === void 0 ? void 0 : file.type))
91
+ ? null
92
+ : illegalType.push(file === null || file === void 0 ? void 0 : file.type);
93
+ }
94
+ if (illegalType.length > 0) {
95
+ weui.alert('不支持上传' + Array.from(new Set(illegalType)).join(',') + '格式文件');
96
+ return false;
97
+ }
98
+ return true;
99
+ };
100
+ // 上传后文件列表 fileIDList 改变事件,'add'|'delete'
101
+ const handleChange = ({ fileID, uuid, type, size }) => {
102
+ // 上传时新增事件
103
+ if (type === 'add') {
104
+ fileID && setFileSizeObj((obj) => ({ ...obj, [fileID]: size }));
105
+ fileID && setfileIDList((fileIDList) => [...fileIDList, fileID]);
106
+ }
107
+ else {
108
+ fileID &&
109
+ setfileIDList((fileIDList) => fileIDList.filter((f) => f !== fileID));
110
+ }
111
+ uuid && setFileList((list) => list.filter((item) => uuid !== (item === null || item === void 0 ? void 0 : item._uuid)));
112
+ };
113
+ // 上传组件属性
114
+ const uploadProps = {
115
+ multiple: !single,
116
+ };
117
+ tips && (uploadProps['label'] = tips);
118
+ maxSize && (uploadProps['maxSize'] = maxSize * 1024 * 1024);
119
+ const btnDisabled = fileIDList.length >= maxUploadCount ||
120
+ (single && fileIDList.length > 0) ||
121
+ disabled;
122
+ return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
123
+ React.createElement(FileContext.Provider, { value: {
124
+ uploadPath,
125
+ downloadVisible,
126
+ deleteVisible,
127
+ onChange: handleChange,
128
+ isEdit,
129
+ events,
130
+ fileSizeObj,
131
+ } },
132
+ React.createElement("div", { "data-testid": "uploadFileH5", className: cls, id: id, style: style },
133
+ React.createElement("div", { className: classNames(`${CLASS_PREFIX}`) },
134
+ isEdit && (React.createElement("div", { className: classNames(`${CLASS_PREFIX}__hd`, layout) },
135
+ React.createElement("div", null, btnDisabled ? (React.createElement(Button, { type: "weak", className: classNames(`${CLASS_PREFIX}__btn--weak`), disabled: btnDisabled }, btnTitle)) : (React.createElement("div", null,
136
+ React.createElement("input", { id: "uploaderInput", type: "file", "data-testid": "button-up", className: "weui-uploader-mobile__input", accept: accepts.join(','), multiple: !single, onChange: (e) => {
137
+ const fileList = [...e.target.files];
138
+ //校验逻辑与图片有出入,文件类型限制为全部时,不设限
139
+ if (!(accepts.includes('*') ||
140
+ accepts.includes('') ||
141
+ accepts.length === 0) &&
142
+ !islegalType(fileList, accepts))
143
+ return;
144
+ if (single && fileList.length > 1) {
145
+ weui.alert(`上传文件总数不能超过1个`);
146
+ return false;
147
+ }
148
+ if (fileList.length + fileIDList.length >
149
+ maxUploadCount) {
150
+ weui.alert(`上传文件总数不能超过${maxUploadCount}个`);
151
+ return false;
152
+ }
153
+ if (maxSize &&
154
+ fileList.some((f) => f.size > maxSize * 1024 * 1024)) {
155
+ weui.alert(`请上传不超过${maxSize}M的文件`);
156
+ return false;
157
+ }
158
+ if (fileList.some((f) => f.size > 1024 * 1024 * 1024)) {
159
+ weui.alert(`请上传不超过1024M的文件`);
160
+ return false;
161
+ }
162
+ fileList.forEach((f) => (f['_uuid'] = randomStr()));
163
+ setFileList((list) => [...list, ...fileList]);
164
+ } }),
165
+ React.createElement("a", { type: "weak", className: "wedatea2td-btn wedatea2td-btn--weak", style: { fontSize: '1em' } }, "\u70B9\u51FB\u4E0A\u4F20"),
166
+ !single && (React.createElement(Text, { className: `${CLASS_PREFIX}__tips` }, "\u652F\u6301\u6279\u91CF\u4E0A\u4F20"))))))),
167
+ React.createElement("div", { className: `${CLASS_PREFIX}__bd` },
168
+ React.createElement(List, null,
169
+ fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { fileID: d, fileList: fileList, onChange: handleChange, disabled: disabled, deleteVisible: deleteVisible, downloadVisible: downloadVisible })))),
170
+ fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { disabled: disabled, file: item, downloadVisible: downloadVisible, deleteVisible: deleteVisible && !disabled })))))))))))({
171
+ id,
172
+ className: cls,
173
+ style,
174
+ label: labelVisible ? label : null,
175
+ layout,
176
+ multiCell: false,
177
+ requiredFlag,
178
+ });
179
+ }
180
+ /**
181
+ * 基于 FileID 文件回显组件
182
+ */
183
+ const TcbFileEcho = ({ fileID, disabled }) => {
184
+ const { fileSizeObj } = React.useContext(FileContext) || {};
185
+ const { data: src, error } = useTempUrl(fileID);
186
+ if (error) {
187
+ message.error({
188
+ content: `cloud id ${fileID} 资源获取错误`,
189
+ });
190
+ }
191
+ //上传文件名称
192
+ const label = React.useMemo(() => {
193
+ if (isCloudFileID(fileID)) {
194
+ return transFileCloudidToName(fileID);
195
+ }
196
+ else {
197
+ return fileID;
198
+ }
199
+ }, [fileID]);
200
+ //上传文件列表展示
201
+ return (React.createElement("div", { className: `${CLASS_PREFIX}__item` },
202
+ React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
203
+ React.createElement(UploadFileStatus, { title: label, size: fileSizeObj[fileID] || '--' })),
204
+ React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
205
+ React.createElement(UploadFileAction, { disabled: disabled, status: "UPLOAD_STATUS_SUCCESS", fileID: fileID, src: src }))));
206
+ };
207
+ /**
208
+ * 基于 File 上传文件过程组件
209
+ */
210
+ const TcbFileUpload = ({ file, disabled }) => {
211
+ const { uploadPath, onChange, events } = React.useContext(FileContext) || {};
212
+ const [percent, setPercent] = React.useState(0); // 上传进度
213
+ const [status, setStatus] = React.useState('UPLOAD_STATUS_PENDING'); // 上传状态
214
+ const cancleRef = React.useRef(''); // 取消的uuid
215
+ // 上传文件相关属性
216
+ const { size, title, uuid } = React.useMemo(() => {
217
+ const size = transSize(file === null || file === void 0 ? void 0 : file.size);
218
+ const title = (file === null || file === void 0 ? void 0 : file.name) || '';
219
+ const uuid = file === null || file === void 0 ? void 0 : file._uuid;
220
+ return { size, title, uuid };
221
+ }, [file === null || file === void 0 ? void 0 : file._uuid, file === null || file === void 0 ? void 0 : file.name, file === null || file === void 0 ? void 0 : file.size]);
222
+ // 上传过程
223
+ const handleUpload = React.useCallback(async (file) => {
224
+ var _a;
225
+ const tcb = await getCloudInstance();
226
+ try {
227
+ setStatus('UPLOAD_STATUS_PENDING');
228
+ const { fileID } = await tcb.uploadFile({
229
+ cloudPath: `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`,
230
+ filePath: file,
231
+ onUploadProgress: (progressEvent) => {
232
+ let percent = 0;
233
+ percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
234
+ setStatus('UPLOAD_STATUS_LOADING');
235
+ setPercent(percent < 100 ? percent : 100);
236
+ },
237
+ });
238
+ !cancleRef.current && (onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, type: 'add', uuid, size }));
239
+ setStatus('UPLOAD_STATUS_SUCCESS');
240
+ }
241
+ catch (err) {
242
+ setStatus('UPLOAD_STATUS_ERROR');
243
+ (_a = events === null || events === void 0 ? void 0 : events.error) === null || _a === void 0 ? void 0 : _a.call(events, err);
244
+ }
245
+ },
246
+ // eslint-disable-next-line react-hooks/exhaustive-deps
247
+ [size, uploadPath, uuid]);
248
+ React.useEffect(() => {
249
+ handleUpload(file);
250
+ }, [file, file._uuid, handleUpload]);
251
+ return (React.createElement("div", { className: `${CLASS_PREFIX}__item`, role: "TcbFileUpload" },
252
+ React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
253
+ React.createElement(UploadFileStatus, { status: status, percent: percent, size: size, title: title, percentSize: (((file === null || file === void 0 ? void 0 : file.size) / 1024) * percent) / 100 })),
254
+ React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
255
+ React.createElement(UploadFileAction, { file: file, uuid: file === null || file === void 0 ? void 0 : file._uuid, status: status, onCancel: (uuid) => {
256
+ cancleRef.current = uuid;
257
+ onChange === null || onChange === void 0 ? void 0 : onChange({ type: 'delete', uuid });
258
+ }, onReLoad: handleUpload, disabled: disabled }))));
259
+ };
260
+ /**
261
+ * 上传文件状态组件
262
+ */
263
+ const UploadFileStatus = ({ status = 'UPLOAD_STATUS_SUCCESS', percent = 0, size, title = null, percentSize = 0, }) => {
264
+ var _a, _b;
265
+ const { isEdit } = React.useContext(FileContext) || {};
266
+ //上传中、待上传状态
267
+ if (status == 'UPLOAD_STATUS_LOADING' ||
268
+ (status == 'UPLOAD_STATUS_PENDING' && percent)) {
269
+ return (React.createElement(React.Fragment, null,
270
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
271
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title),
272
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
273
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
274
+ React.createElement(Progress, { percent: percent, theme: "default", strokeColor: '#0052D9', className: `${CLASS_PREFIX}__file-progress` })))),
275
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
276
+ React.createElement("div", null,
277
+ React.createElement(Text, null,
278
+ Math.floor(percentSize),
279
+ "K/"),
280
+ React.createElement(Text, null, size)),
281
+ React.createElement(Text, null, status === 'UPLOAD_STATUS_PENDING' ? '等待上传' : '上传中'))));
282
+ }
283
+ return (React.createElement(React.Fragment, null,
284
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
285
+ React.createElement(Tooltip, { title: title },
286
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title)),
287
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
288
+ React.createElement(Icon, { type: ((_a = statusMap[status]) === null || _a === void 0 ? void 0 : _a.icon) ||
289
+ statusMap['UPLOAD_STATUS_PENDING'].icon }),
290
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-status--msg` }, ((_b = statusMap[status]) === null || _b === void 0 ? void 0 : _b.title) ||
291
+ statusMap['UPLOAD_STATUS_PENDING'].title)))),
292
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
293
+ React.createElement("div", null,
294
+ React.createElement(Text, null, size))))));
295
+ };
296
+ /**
297
+ * 操作列组件, onChange 从最外层 UploadFilePc 传进来
298
+ * props: { status, fileID, uuid, src, onChange }
299
+ */
300
+ const UploadFileAction = ({ status = 'UPLOAD_STATUS_PENDING', fileID = '', uuid = '', src = '', file = null, onReLoad = null, onCancel = null, disabled, }) => {
301
+ const { onChange, downloadVisible, deleteVisible, isEdit } = React.useContext(FileContext) || {};
302
+ // 操作列按钮-删除
303
+ const renderDelete = () => isEdit && (React.createElement(Button, { icon: "delete", onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, uuid, type: 'delete' }), disabled: disabled }));
304
+ // 操作列按钮-取消
305
+ const renderCancel = () => isEdit && React.createElement(Button, { icon: "dismiss", onClick: () => onCancel === null || onCancel === void 0 ? void 0 : onCancel(uuid) });
306
+ // 操作列按钮-重新上传
307
+ const renderReLoad = () => isEdit && (React.createElement(Button, { icon: "refresh", onClick: () => {
308
+ onReLoad === null || onReLoad === void 0 ? void 0 : onReLoad(file);
309
+ } }));
310
+ // 操作列按钮-下载
311
+ const renderDownLoad = () => (React.createElement(Button, { icon: "download", onClick: () => downloadFile(src) }));
312
+ switch (status) {
313
+ case 'UPLOAD_STATUS_PENDING':
314
+ return renderCancel();
315
+ case 'UPLOAD_STATUS_LOADING':
316
+ return renderCancel();
317
+ case 'UPLOAD_STATUS_SUCCESS':
318
+ return (React.createElement(React.Fragment, null,
319
+ deleteVisible && renderDelete(),
320
+ ' ',
321
+ downloadVisible && renderDownLoad()));
322
+ case 'UPLOAD_STATUS_ERROR':
323
+ return (React.createElement(React.Fragment, null,
324
+ deleteVisible && renderDelete(),
325
+ " ",
326
+ renderReLoad()));
327
+ default:
328
+ return null;
329
+ }
330
+ };
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ import type { CommonFormPropsType } from '../types';
3
+ import type { unknownFunction } from '../../../types';
4
+ /**
5
+ * 上传文件 PC 版本
6
+ */
7
+ export declare function UploadFilePc({ layout, id, style, labelVisible, label, requiredFlag, disabled, className, events, decorator, tips, btnTitle, maxUploadCount, maxSize, single, defaultValue, // 组件默认初始化值
8
+ value, // 用于模型组件中 formily 的值管理
9
+ acceptTypes, downloadVisible, deleteVisible, uploadPath, onChange, isEdit, }: IUploaderFilePc): JSX.Element;
10
+ export interface IUploaderFilePc extends CommonFormPropsType {
11
+ btnTitle?: string;
12
+ maxUploadCount?: number;
13
+ downloadVisible?: boolean;
14
+ deleteVisible?: boolean;
15
+ defaultValue?: Readonly<string | string[]>;
16
+ maxSize?: number;
17
+ single?: boolean;
18
+ acceptTypes?: Readonly<string[]>;
19
+ tips?: string;
20
+ value?: Readonly<string | string[]>;
21
+ uploadPath?: string;
22
+ isEdit?: boolean;
23
+ onChange?: unknownFunction;
24
+ }