@cloudbase/weda-ui 2.0.27 → 3.1.1

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 (691) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/configs/actions/showModal.json +48 -0
  3. package/dist/configs/actions/showToast.json +41 -0
  4. package/dist/configs/components/auth.json +16 -0
  5. package/dist/configs/components/button.json +239 -0
  6. package/dist/configs/components/calendar.json +81 -0
  7. package/dist/configs/components/carousel.json +292 -0
  8. package/dist/configs/components/chart/bar.json +721 -0
  9. package/dist/configs/components/chart/line.json +674 -0
  10. package/dist/configs/components/chart/pie.json +494 -0
  11. package/dist/configs/components/chart/statisticsCard.json +376 -0
  12. package/dist/configs/components/container.json +50 -0
  13. package/dist/configs/components/dataView.json +239 -0
  14. package/dist/configs/components/drawer.json +115 -0
  15. package/dist/configs/components/form/checkbox.json +178 -0
  16. package/dist/configs/components/form/form.json +45 -0
  17. package/dist/configs/components/form/input.json +154 -0
  18. package/dist/configs/components/form/location.json +248 -0
  19. package/dist/configs/components/form/radio.json +203 -0
  20. package/dist/configs/components/form/richText.json +125 -0
  21. package/dist/configs/components/form/select.json +430 -0
  22. package/dist/configs/components/form/switch.json +58 -0
  23. package/dist/configs/components/form/textarea.json +116 -0
  24. package/dist/configs/components/form/tips.json +34 -0
  25. package/dist/configs/components/form/uploader.json +171 -0
  26. package/dist/configs/components/form/uploaderFile.json +158 -0
  27. package/dist/configs/components/graphicCard.json +413 -0
  28. package/dist/configs/components/image.json +187 -0
  29. package/dist/configs/components/link.json +79 -0
  30. package/dist/configs/components/listView.json +370 -0
  31. package/dist/configs/components/lottery.json +163 -0
  32. package/dist/configs/components/modal.json +72 -0
  33. package/dist/configs/components/navLayout.json +368 -0
  34. package/dist/configs/components/navigationBar.json +62 -0
  35. package/dist/configs/components/richtextview.json +26 -0
  36. package/dist/configs/components/scrollVeiw.json +253 -0
  37. package/dist/configs/components/slot.json +17 -0
  38. package/dist/configs/components/swiper.json +90 -0
  39. package/dist/configs/components/tabs.json +121 -0
  40. package/dist/configs/components/text.json +95 -0
  41. package/dist/configs/components/wedaVideo.json +89 -0
  42. package/dist/configs/components/wxOpenApi/phone.json +127 -0
  43. package/dist/configs/components/wxOpenApi/phoneCode.json +109 -0
  44. package/dist/configs/components/wxOpenApi/share.json +157 -0
  45. package/dist/configs/components/wxOpenApi/userInfo.json +156 -0
  46. package/dist/configs/index.d.ts +97 -0
  47. package/{src → dist}/configs/index.js +51 -57
  48. package/dist/docs/common/format.d.ts +13 -0
  49. package/dist/docs/common/format.js +103 -0
  50. package/dist/docs/common/tableView.d.ts +30 -0
  51. package/dist/docs/common/tableView.js +159 -0
  52. package/dist/index.d.ts +2 -0
  53. package/{src → dist}/index.js +0 -1
  54. package/dist/setupTests.d.ts +1 -0
  55. package/dist/setupTests.js +14 -0
  56. package/dist/web/actions/index.d.ts +2 -0
  57. package/{src → dist}/web/actions/index.js +0 -0
  58. package/dist/web/actions/showModal/index.d.ts +3 -0
  59. package/dist/web/actions/showModal/index.js +66 -0
  60. package/dist/web/actions/showToast/index.d.ts +1 -0
  61. package/dist/web/actions/showToast/index.js +3 -0
  62. package/dist/web/components/auth/index.d.ts +10 -0
  63. package/dist/web/components/auth/index.js +37 -0
  64. package/{src → dist}/web/components/button/index.css +2 -2
  65. package/dist/web/components/button/index.d.ts +32 -0
  66. package/dist/web/components/button/index.js +48 -0
  67. package/{src → dist}/web/components/calendar/index.css +29 -29
  68. package/dist/web/components/calendar/index.d.ts +19 -0
  69. package/dist/web/components/calendar/index.js +181 -0
  70. package/dist/web/components/calendar/util.d.ts +13 -0
  71. package/dist/web/components/calendar/util.js +74 -0
  72. package/{src → dist}/web/components/carousel/index.css +11 -11
  73. package/dist/web/components/carousel/index.d.ts +41 -0
  74. package/dist/web/components/carousel/index.js +240 -0
  75. package/dist/web/components/chart/bar/index.d.ts +41 -0
  76. package/dist/web/components/chart/bar/index.js +56 -0
  77. package/dist/web/components/chart/common/config/bar.d.ts +48 -0
  78. package/dist/web/components/chart/common/config/bar.js +49 -0
  79. package/dist/web/components/chart/common/config/global.d.ts +13 -0
  80. package/dist/web/components/chart/common/config/global.js +16 -0
  81. package/dist/web/components/chart/common/config/line.d.ts +46 -0
  82. package/dist/web/components/chart/common/config/line.js +49 -0
  83. package/dist/web/components/chart/common/config/pie.d.ts +29 -0
  84. package/dist/web/components/chart/common/config/pie.js +36 -0
  85. package/dist/web/components/chart/common/core/eChartBar.d.ts +32 -0
  86. package/dist/web/components/chart/common/core/eChartBar.js +196 -0
  87. package/dist/web/components/chart/common/core/eChartBase.d.ts +128 -0
  88. package/dist/web/components/chart/common/core/eChartBase.js +346 -0
  89. package/dist/web/components/chart/common/core/eChartLine.d.ts +28 -0
  90. package/dist/web/components/chart/common/core/eChartLine.js +168 -0
  91. package/dist/web/components/chart/common/core/eChartPie.d.ts +28 -0
  92. package/dist/web/components/chart/common/core/eChartPie.js +132 -0
  93. package/dist/web/components/chart/common/core/type.d.ts +35 -0
  94. package/dist/web/components/chart/common/core/type.js +9 -0
  95. package/dist/web/components/chart/common/echarts.d.ts +2 -0
  96. package/{src/web/components/chart/common/echarts.ts → dist/web/components/chart/common/echarts.js} +12 -19
  97. package/dist/web/components/chart/common/useChart.d.ts +8 -0
  98. package/dist/web/components/chart/common/useChart.js +60 -0
  99. package/dist/web/components/chart/line/index.d.ts +39 -0
  100. package/dist/web/components/chart/line/index.js +53 -0
  101. package/dist/web/components/chart/pie/index.d.ts +27 -0
  102. package/dist/web/components/chart/pie/index.js +40 -0
  103. package/{src → dist}/web/components/chart/statisticsCard/index.css +12 -12
  104. package/dist/web/components/chart/statisticsCard/index.d.ts +85 -0
  105. package/dist/web/components/chart/statisticsCard/index.js +203 -0
  106. package/dist/web/components/chart/statisticsCard/interface.d.ts +13 -0
  107. package/dist/web/components/chart/statisticsCard/interface.js +1 -0
  108. package/dist/web/components/container/index.d.ts +6 -0
  109. package/dist/web/components/container/index.js +6 -0
  110. package/dist/web/components/dataView/index.d.ts +6 -0
  111. package/dist/web/components/dataView/index.js +8 -0
  112. package/{src/web/components/dataView/interface.ts → dist/web/components/dataView/interface.d.ts} +1 -2
  113. package/dist/web/components/dataView/interface.js +1 -0
  114. package/dist/web/components/drawer/index.d.ts +13 -0
  115. package/dist/web/components/drawer/index.js +12 -0
  116. package/dist/web/components/form/checkbox/index.d.ts +13 -0
  117. package/dist/web/components/form/checkbox/index.js +167 -0
  118. package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
  119. package/dist/web/components/form/enumSelect/MultipleSelect.js +52 -0
  120. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
  121. package/dist/web/components/form/enumSelect/NormalSelect.js +52 -0
  122. package/dist/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
  123. package/dist/web/components/form/enumSelect/SelectContainer.js +30 -0
  124. package/dist/web/components/form/enumSelect/index.d.ts +82 -0
  125. package/{src/web/components/form/enumSelect/index.jsx → dist/web/components/form/enumSelect/index.js} +1 -4
  126. package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
  127. package/dist/web/components/form/enumSelect/props/defaultProps.js +40 -0
  128. package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
  129. package/dist/web/components/form/enumSelect/props/propsTypes.js +47 -0
  130. package/{src → dist}/web/components/form/form/index.css +2 -2
  131. package/dist/web/components/form/form/index.d.ts +13 -0
  132. package/dist/web/components/form/form/index.js +31 -0
  133. package/{src → dist}/web/components/form/formcell/index.css +14 -14
  134. package/dist/web/components/form/formcell/index.d.ts +8 -0
  135. package/dist/web/components/form/formcell/index.js +40 -0
  136. package/{src → dist}/web/components/form/input/index.css +3 -3
  137. package/dist/web/components/form/input/index.d.ts +14 -0
  138. package/dist/web/components/form/input/index.js +86 -0
  139. package/dist/web/components/form/location/common/mapChoose.css +477 -0
  140. package/dist/web/components/form/location/common/mapChoose.d.ts +15 -0
  141. package/dist/web/components/form/location/common/mapChoose.js +431 -0
  142. package/dist/web/components/form/location/common/mapView.d.ts +19 -0
  143. package/dist/web/components/form/location/common/mapView.js +170 -0
  144. package/dist/web/components/form/location/common/propsConfig.d.ts +62 -0
  145. package/dist/web/components/form/location/common/propsConfig.js +52 -0
  146. package/{src → dist}/web/components/form/location/common/selectModal.css +11 -10
  147. package/dist/web/components/form/location/common/selectModal.d.ts +21 -0
  148. package/dist/web/components/form/location/common/selectModal.js +44 -0
  149. package/dist/web/components/form/location/common/useLocationInfo.d.ts +34 -0
  150. package/dist/web/components/form/location/common/useLocationInfo.js +88 -0
  151. package/dist/web/components/form/location/components/LocationH5/index.css +100 -0
  152. package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
  153. package/dist/web/components/form/location/components/LocationH5/location.h5.js +347 -0
  154. package/dist/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
  155. package/dist/web/components/form/location/components/LocationPC/Header.js +43 -0
  156. package/{src → dist}/web/components/form/location/components/LocationPC/index.css +10 -14
  157. package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
  158. package/dist/web/components/form/location/components/LocationPC/location.PC.js +259 -0
  159. package/dist/web/components/form/location/constants.d.ts +2 -0
  160. package/{src → dist}/web/components/form/location/constants.js +0 -1
  161. package/dist/web/components/form/location/index.css +13 -0
  162. package/dist/web/components/form/location/index.d.ts +1 -0
  163. package/dist/web/components/form/location/index.js +17 -0
  164. package/{src → dist}/web/components/form/radio/index.css +0 -0
  165. package/dist/web/components/form/radio/index.d.ts +11 -0
  166. package/dist/web/components/form/radio/index.js +115 -0
  167. package/dist/web/components/form/renderDecorator.d.ts +6 -0
  168. package/dist/web/components/form/renderDecorator.js +20 -0
  169. package/dist/web/components/form/select/h5.d.ts +16 -0
  170. package/dist/web/components/form/select/h5.js +502 -0
  171. package/{src → dist}/web/components/form/select/index.css +4 -4
  172. package/dist/web/components/form/select/index.d.ts +65 -0
  173. package/dist/web/components/form/select/index.js +299 -0
  174. package/dist/web/components/form/select/region/index.d.ts +6 -0
  175. package/dist/web/components/form/select/region/index.js +147 -0
  176. package/dist/web/components/form/select/time.d.ts +9 -0
  177. package/dist/web/components/form/select/time.js +146 -0
  178. package/dist/web/components/form/select/year.d.ts +7 -0
  179. package/dist/web/components/form/select/year.js +72 -0
  180. package/dist/web/components/form/switch/index.d.ts +6 -0
  181. package/dist/web/components/form/switch/index.js +57 -0
  182. package/{src → dist}/web/components/form/textarea/index.css +1 -1
  183. package/dist/web/components/form/textarea/index.d.ts +12 -0
  184. package/dist/web/components/form/textarea/index.js +66 -0
  185. package/{src → dist}/web/components/form/tips/index.css +0 -0
  186. package/dist/web/components/form/tips/index.d.ts +8 -0
  187. package/dist/web/components/form/tips/index.js +17 -0
  188. package/{src → dist}/web/components/form/uploader/index.css +14 -14
  189. package/dist/web/components/form/uploader/index.d.ts +3 -0
  190. package/dist/web/components/form/uploader/index.js +42 -0
  191. package/dist/web/components/form/uploader/uploader.h5.d.ts +19 -0
  192. package/dist/web/components/form/uploader/uploader.h5.js +201 -0
  193. package/dist/web/components/form/uploader/uploader.pc.d.ts +29 -0
  194. package/dist/web/components/form/uploader/uploader.pc.js +182 -0
  195. package/{src → dist}/web/components/form/uploaderFile/index.css +62 -62
  196. package/dist/web/components/form/uploaderFile/index.d.ts +4 -0
  197. package/dist/web/components/form/uploaderFile/index.js +19 -0
  198. package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
  199. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +315 -0
  200. package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
  201. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +290 -0
  202. package/{src → dist}/web/components/graphicCard/index.css +15 -15
  203. package/dist/web/components/graphicCard/index.d.ts +31 -0
  204. package/dist/web/components/graphicCard/index.js +166 -0
  205. package/dist/web/components/image/image.d.ts +9 -0
  206. package/dist/web/components/image/image.js +119 -0
  207. package/{src → dist}/web/components/image/index.css +2 -2
  208. package/dist/web/components/image/index.d.ts +13 -0
  209. package/dist/web/components/image/index.js +91 -0
  210. package/dist/web/components/index.d.ts +47 -0
  211. package/{src → dist}/web/components/index.js +25 -26
  212. package/{src → dist}/web/components/link/index.css +0 -0
  213. package/dist/web/components/link/index.d.ts +24 -0
  214. package/dist/web/components/link/index.js +71 -0
  215. package/{src → dist}/web/components/listView/index.css +17 -17
  216. package/dist/web/components/listView/index.d.ts +7 -0
  217. package/dist/web/components/listView/index.js +262 -0
  218. package/dist/web/components/listView/interface.d.ts +122 -0
  219. package/dist/web/components/listView/interface.js +1 -0
  220. package/{src → dist}/web/components/lottery/index.css +98 -72
  221. package/dist/web/components/lottery/index.d.ts +22 -0
  222. package/dist/web/components/lottery/index.js +390 -0
  223. package/dist/web/components/lottery/lotteryUtil.d.ts +23 -0
  224. package/dist/web/components/lottery/lotteryUtil.js +180 -0
  225. package/dist/web/components/modal/h5.css +53 -0
  226. package/dist/web/components/modal/index.d.ts +17 -0
  227. package/dist/web/components/modal/index.js +11 -0
  228. package/dist/web/components/modal/modal.h5.d.ts +4 -0
  229. package/dist/web/components/modal/modal.h5.js +46 -0
  230. package/dist/web/components/modal/modal.pc.d.ts +3 -0
  231. package/dist/web/components/modal/modal.pc.js +31 -0
  232. package/{src → dist}/web/components/navLayout/index.css +15 -15
  233. package/dist/web/components/navLayout/index.d.ts +46 -0
  234. package/dist/web/components/navLayout/index.js +116 -0
  235. package/dist/web/components/navigationBar/common.d.ts +15 -0
  236. package/dist/web/components/navigationBar/common.js +127 -0
  237. package/dist/web/components/navigationBar/h5Menu.d.ts +14 -0
  238. package/dist/web/components/navigationBar/h5Menu.js +72 -0
  239. package/dist/web/components/navigationBar/horizontalMenu.d.ts +12 -0
  240. package/dist/web/components/navigationBar/horizontalMenu.js +99 -0
  241. package/{src → dist}/web/components/navigationBar/index.css +66 -66
  242. package/dist/web/components/navigationBar/index.d.ts +13 -0
  243. package/dist/web/components/navigationBar/index.js +157 -0
  244. package/dist/web/components/navigationBar/verticalMenu.d.ts +13 -0
  245. package/dist/web/components/navigationBar/verticalMenu.js +38 -0
  246. package/dist/web/components/phone/index.d.ts +18 -0
  247. package/dist/web/components/phone/index.js +4 -0
  248. package/dist/web/components/phoneCode/index.d.ts +18 -0
  249. package/dist/web/components/phoneCode/index.js +4 -0
  250. package/dist/web/components/picker/datePicker.d.ts +10 -0
  251. package/dist/web/components/picker/datePicker.js +31 -0
  252. package/dist/web/components/picker/picker.d.ts +6 -0
  253. package/dist/web/components/picker/picker.js +45 -0
  254. package/dist/web/components/picker/timePicker.d.ts +7 -0
  255. package/dist/web/components/picker/timePicker.js +42 -0
  256. package/dist/web/components/richText/const.d.ts +1 -0
  257. package/dist/web/components/richText/const.js +2 -0
  258. package/{src → dist}/web/components/richText/index.css +3 -3
  259. package/dist/web/components/richText/index.d.ts +51 -0
  260. package/dist/web/components/richText/index.js +295 -0
  261. package/{src → dist}/web/components/richTextView/index.css +8 -8
  262. package/dist/web/components/richTextView/index.d.ts +7 -0
  263. package/dist/web/components/richTextView/index.js +44 -0
  264. package/dist/web/components/scrollView/index.d.ts +27 -0
  265. package/dist/web/components/scrollView/index.js +95 -0
  266. package/dist/web/components/share/index.d.ts +34 -0
  267. package/dist/web/components/share/index.js +4 -0
  268. package/dist/web/components/slot/index.d.ts +6 -0
  269. package/dist/web/components/slot/index.js +9 -0
  270. package/{src → dist}/web/components/swiper/index.css +10 -10
  271. package/dist/web/components/swiper/index.d.ts +24 -0
  272. package/dist/web/components/swiper/index.js +149 -0
  273. package/{src → dist}/web/components/tabs/index.css +6 -6
  274. package/dist/web/components/tabs/index.d.ts +13 -0
  275. package/dist/web/components/tabs/index.js +15 -0
  276. package/dist/web/components/tabs/tabs.h5.d.ts +4 -0
  277. package/dist/web/components/tabs/tabs.h5.js +42 -0
  278. package/dist/web/components/tabs/tabs.pc.d.ts +3 -0
  279. package/dist/web/components/tabs/tabs.pc.js +40 -0
  280. package/{src → dist}/web/components/text/index.css +6 -6
  281. package/dist/web/components/text/index.d.ts +14 -0
  282. package/dist/web/components/text/index.js +17 -0
  283. package/{src → dist}/web/components/uploaderFileView/index.css +0 -0
  284. package/dist/web/components/uploaderFileView/index.d.ts +10 -0
  285. package/dist/web/components/uploaderFileView/index.js +61 -0
  286. package/{src → dist}/web/components/uploaderView/index.css +5 -5
  287. package/dist/web/components/uploaderView/index.d.ts +17 -0
  288. package/dist/web/components/uploaderView/index.js +48 -0
  289. package/dist/web/components/userInfo/index.d.ts +26 -0
  290. package/dist/web/components/userInfo/index.js +4 -0
  291. package/{src → dist}/web/components/wedaVideo/index.css +2 -2
  292. package/dist/web/components/wedaVideo/index.d.ts +17 -0
  293. package/dist/web/components/wedaVideo/index.js +159 -0
  294. package/dist/web/index.d.ts +8 -0
  295. package/{src → dist}/web/index.js +1 -1
  296. package/dist/web/utils/classnames.d.ts +2 -0
  297. package/dist/web/utils/classnames.js +37 -0
  298. package/dist/web/utils/constant.d.ts +23 -0
  299. package/dist/web/utils/constant.js +24 -0
  300. package/dist/web/utils/debounce.d.ts +2 -0
  301. package/dist/web/utils/debounce.js +92 -0
  302. package/dist/web/utils/events.d.ts +1 -0
  303. package/{src → dist}/web/utils/events.js +1 -1
  304. package/dist/web/utils/getLocalCounter.d.ts +1 -0
  305. package/{src → dist}/web/utils/getLocalCounter.js +1 -2
  306. package/dist/web/utils/isObjectEqual.d.ts +2 -0
  307. package/dist/web/utils/isObjectEqual.js +12 -0
  308. package/dist/web/utils/loading-fallback.d.ts +2 -0
  309. package/dist/web/utils/loading-fallback.js +2 -0
  310. package/dist/web/utils/lodash.d.ts +1 -0
  311. package/{src/mp → dist/web}/utils/lodash.js +0 -0
  312. package/dist/web/utils/platform.d.ts +18 -0
  313. package/dist/web/utils/platform.js +191 -0
  314. package/dist/web/utils/tcb.d.ts +23 -0
  315. package/dist/web/utils/tcb.js +82 -0
  316. package/dist/web/utils/tmap.d.ts +3 -0
  317. package/dist/web/utils/tmap.js +21 -0
  318. package/dist/web/utils/useSetState.d.ts +1 -0
  319. package/dist/web/utils/useSetState.js +8 -0
  320. package/dist/web/utils/useSyncValue.d.ts +4 -0
  321. package/dist/web/utils/useSyncValue.js +15 -0
  322. package/dist/web/utils/weui.d.ts +1 -0
  323. package/{src → dist}/web/utils/weui.js +0 -1
  324. package/{src → dist}/web/weda-ui.css +2 -2
  325. package/package.json +22 -22
  326. package/src/configs/actions/showModal.json +0 -48
  327. package/src/configs/actions/showToast.json +0 -41
  328. package/src/configs/components/auth.json +0 -16
  329. package/src/configs/components/button.json +0 -239
  330. package/src/configs/components/calendar.json +0 -81
  331. package/src/configs/components/carousel.json +0 -292
  332. package/src/configs/components/chart/bar.json +0 -721
  333. package/src/configs/components/chart/line.json +0 -674
  334. package/src/configs/components/chart/pie.json +0 -494
  335. package/src/configs/components/chart/statisticsCard.json +0 -376
  336. package/src/configs/components/container.json +0 -50
  337. package/src/configs/components/dataView.json +0 -151
  338. package/src/configs/components/drawer.json +0 -115
  339. package/src/configs/components/form/checkbox.json +0 -173
  340. package/src/configs/components/form/form.json +0 -45
  341. package/src/configs/components/form/input.json +0 -154
  342. package/src/configs/components/form/label.json +0 -22
  343. package/src/configs/components/form/location.json +0 -155
  344. package/src/configs/components/form/radio.json +0 -203
  345. package/src/configs/components/form/richText.json +0 -125
  346. package/src/configs/components/form/select.json +0 -411
  347. package/src/configs/components/form/switch.json +0 -58
  348. package/src/configs/components/form/textarea.json +0 -116
  349. package/src/configs/components/form/tips.json +0 -34
  350. package/src/configs/components/form/uploader.json +0 -169
  351. package/src/configs/components/form/uploaderFile.json +0 -158
  352. package/src/configs/components/graphicCard.json +0 -413
  353. package/src/configs/components/image.json +0 -179
  354. package/src/configs/components/link.json +0 -79
  355. package/src/configs/components/listView.json +0 -281
  356. package/src/configs/components/lottery.json +0 -157
  357. package/src/configs/components/modal.json +0 -83
  358. package/src/configs/components/navLayout.json +0 -368
  359. package/src/configs/components/navigationBar.json +0 -62
  360. package/src/configs/components/picker/datePicker.json +0 -33
  361. package/src/configs/components/picker/picker.json +0 -18
  362. package/src/configs/components/picker/timePicker.json +0 -23
  363. package/src/configs/components/richtextview.json +0 -26
  364. package/src/configs/components/scrollVeiw.json +0 -253
  365. package/src/configs/components/slot.json +0 -17
  366. package/src/configs/components/swiper.json +0 -90
  367. package/src/configs/components/tabs.json +0 -121
  368. package/src/configs/components/text.json +0 -95
  369. package/src/configs/components/wedaVideo.json +0 -89
  370. package/src/configs/components/wxOpenApi/phone.json +0 -127
  371. package/src/configs/components/wxOpenApi/phoneCode.json +0 -109
  372. package/src/configs/components/wxOpenApi/share.json +0 -157
  373. package/src/configs/components/wxOpenApi/userInfo.json +0 -156
  374. package/src/mp/README.md +0 -1
  375. package/src/mp/actions/showModal/index.js +0 -3
  376. package/src/mp/actions/showToast/index.js +0 -3
  377. package/src/mp/components/button/index.js +0 -91
  378. package/src/mp/components/button/index.json +0 -4
  379. package/src/mp/components/button/index.wxml +0 -22
  380. package/src/mp/components/button/index.wxss +0 -13
  381. package/src/mp/components/calendar/arrowright--line.svg +0 -11
  382. package/src/mp/components/calendar/index.js +0 -268
  383. package/src/mp/components/calendar/index.json +0 -5
  384. package/src/mp/components/calendar/index.wxml +0 -35
  385. package/src/mp/components/calendar/index.wxss +0 -179
  386. package/src/mp/components/carousel/index.js +0 -88
  387. package/src/mp/components/carousel/index.json +0 -7
  388. package/src/mp/components/carousel/index.wxml +0 -6
  389. package/src/mp/components/chart/bar/index.js +0 -257
  390. package/src/mp/components/chart/bar/index.json +0 -6
  391. package/src/mp/components/chart/bar/index.wxml +0 -3
  392. package/src/mp/components/chart/bar/index.wxss +0 -9
  393. package/src/mp/components/chart/common/config/bar.js +0 -50
  394. package/src/mp/components/chart/common/config/global.js +0 -16
  395. package/src/mp/components/chart/common/config/line.js +0 -48
  396. package/src/mp/components/chart/common/config/pie.js +0 -36
  397. package/src/mp/components/chart/common/core/eChartBar.js +0 -258
  398. package/src/mp/components/chart/common/core/eChartBase.js +0 -389
  399. package/src/mp/components/chart/common/core/eChartLine.js +0 -223
  400. package/src/mp/components/chart/common/core/eChartPie.js +0 -169
  401. package/src/mp/components/chart/common/lib/echarts.min.js +0 -18
  402. package/src/mp/components/chart/ec-canvas/ec-canvas.js +0 -277
  403. package/src/mp/components/chart/ec-canvas/ec-canvas.json +0 -4
  404. package/src/mp/components/chart/ec-canvas/ec-canvas.wxml +0 -4
  405. package/src/mp/components/chart/ec-canvas/ec-canvas.wxss +0 -4
  406. package/src/mp/components/chart/ec-canvas/wx-canvas.js +0 -109
  407. package/src/mp/components/chart/line/index.js +0 -247
  408. package/src/mp/components/chart/line/index.json +0 -6
  409. package/src/mp/components/chart/line/index.wxml +0 -3
  410. package/src/mp/components/chart/line/index.wxss +0 -9
  411. package/src/mp/components/chart/pie/index.js +0 -182
  412. package/src/mp/components/chart/pie/index.json +0 -6
  413. package/src/mp/components/chart/pie/index.wxml +0 -3
  414. package/src/mp/components/chart/pie/index.wxss +0 -9
  415. package/src/mp/components/chart/statisticsCard/index.js +0 -253
  416. package/src/mp/components/chart/statisticsCard/index.json +0 -4
  417. package/src/mp/components/chart/statisticsCard/index.wxml +0 -9
  418. package/src/mp/components/chart/statisticsCard/index.wxss +0 -42
  419. package/src/mp/components/container/index.js +0 -20
  420. package/src/mp/components/container/index.json +0 -4
  421. package/src/mp/components/container/index.wxml +0 -3
  422. package/src/mp/components/dataView/index.js +0 -34
  423. package/src/mp/components/dataView/index.json +0 -7
  424. package/src/mp/components/dataView/index.wxml +0 -3
  425. package/src/mp/components/dataView/index.wxss +0 -0
  426. package/src/mp/components/form/checkbox/index.js +0 -124
  427. package/src/mp/components/form/checkbox/index.json +0 -7
  428. package/src/mp/components/form/checkbox/index.wxml +0 -13
  429. package/src/mp/components/form/checkbox/index.wxss +0 -1
  430. package/src/mp/components/form/form/index.js +0 -18
  431. package/src/mp/components/form/form/index.json +0 -4
  432. package/src/mp/components/form/form/index.wxml +0 -5
  433. package/src/mp/components/form/form/index.wxss +0 -1
  434. package/src/mp/components/form/formcell/index.js +0 -54
  435. package/src/mp/components/form/formcell/index.json +0 -4
  436. package/src/mp/components/form/formcell/index.wxml +0 -11
  437. package/src/mp/components/form/formcell/index.wxss +0 -31
  438. package/src/mp/components/form/input/index.js +0 -110
  439. package/src/mp/components/form/input/index.json +0 -7
  440. package/src/mp/components/form/input/index.wxml +0 -24
  441. package/src/mp/components/form/input/index.wxss +0 -22
  442. package/src/mp/components/form/location/components/mapChoose/index.js +0 -201
  443. package/src/mp/components/form/location/components/mapChoose/index.json +0 -4
  444. package/src/mp/components/form/location/components/mapChoose/index.wxml +0 -42
  445. package/src/mp/components/form/location/components/mapChoose/index.wxss +0 -188
  446. package/src/mp/components/form/location/index.js +0 -388
  447. package/src/mp/components/form/location/index.json +0 -6
  448. package/src/mp/components/form/location/index.wxml +0 -21
  449. package/src/mp/components/form/location/index.wxss +0 -89
  450. package/src/mp/components/form/radio/index.js +0 -124
  451. package/src/mp/components/form/radio/index.json +0 -7
  452. package/src/mp/components/form/radio/index.wxml +0 -13
  453. package/src/mp/components/form/radio/index.wxss +0 -1
  454. package/src/mp/components/form/select/index.js +0 -677
  455. package/src/mp/components/form/select/index.json +0 -7
  456. package/src/mp/components/form/select/index.wxml +0 -12
  457. package/src/mp/components/form/select/index.wxss +0 -16
  458. package/src/mp/components/form/select/region/index.js +0 -107
  459. package/src/mp/components/form/switch/index.js +0 -75
  460. package/src/mp/components/form/switch/index.json +0 -7
  461. package/src/mp/components/form/switch/index.wxml +0 -11
  462. package/src/mp/components/form/switch/index.wxss +0 -1
  463. package/src/mp/components/form/textarea/index.js +0 -90
  464. package/src/mp/components/form/textarea/index.json +0 -7
  465. package/src/mp/components/form/textarea/index.wxml +0 -8
  466. package/src/mp/components/form/textarea/index.wxss +0 -10
  467. package/src/mp/components/form/tips/index.js +0 -41
  468. package/src/mp/components/form/tips/index.json +0 -4
  469. package/src/mp/components/form/tips/index.wxml +0 -1
  470. package/src/mp/components/form/tips/index.wxss +0 -1
  471. package/src/mp/components/form/uploader/index.js +0 -158
  472. package/src/mp/components/form/uploader/index.json +0 -10
  473. package/src/mp/components/form/uploader/index.wxml +0 -14
  474. package/src/mp/components/form/uploader/index.wxss +0 -36
  475. package/src/mp/components/form/uploader/weui-uploader.js +0 -219
  476. package/src/mp/components/form/uploader/weui-uploader.json +0 -7
  477. package/src/mp/components/form/uploader/weui-uploader.wxml +0 -45
  478. package/src/mp/components/form/uploader/weui-uploader.wxss +0 -1
  479. package/src/mp/components/form/uploaderFile/index.js +0 -313
  480. package/src/mp/components/form/uploaderFile/index.json +0 -9
  481. package/src/mp/components/form/uploaderFile/index.wxml +0 -45
  482. package/src/mp/components/form/uploaderFile/index.wxss +0 -105
  483. package/src/mp/components/graphicCard/chevron-right.svg +0 -3
  484. package/src/mp/components/graphicCard/index.js +0 -203
  485. package/src/mp/components/graphicCard/index.json +0 -4
  486. package/src/mp/components/graphicCard/index.wxml +0 -25
  487. package/src/mp/components/graphicCard/index.wxss +0 -157
  488. package/src/mp/components/image/index.js +0 -182
  489. package/src/mp/components/image/index.json +0 -7
  490. package/src/mp/components/image/index.wxml +0 -9
  491. package/src/mp/components/image/index.wxss +0 -49
  492. package/src/mp/components/listView/arrow-right-line.svg +0 -3
  493. package/src/mp/components/listView/index.js +0 -274
  494. package/src/mp/components/listView/index.json +0 -4
  495. package/src/mp/components/listView/index.wxml +0 -38
  496. package/src/mp/components/listView/index.wxss +0 -155
  497. package/src/mp/components/listView/more-line.svg +0 -3
  498. package/src/mp/components/lottery/index.js +0 -270
  499. package/src/mp/components/lottery/index.json +0 -4
  500. package/src/mp/components/lottery/index.wxml +0 -41
  501. package/src/mp/components/lottery/index.wxss +0 -323
  502. package/src/mp/components/modal/index.js +0 -39
  503. package/src/mp/components/modal/index.json +0 -4
  504. package/src/mp/components/modal/index.wxml +0 -1
  505. package/src/mp/components/navLayout/index.js +0 -120
  506. package/src/mp/components/navLayout/index.json +0 -7
  507. package/src/mp/components/navLayout/index.wxml +0 -23
  508. package/src/mp/components/navLayout/index.wxss +0 -1193
  509. package/src/mp/components/navigationBar/index.js +0 -193
  510. package/src/mp/components/navigationBar/index.json +0 -5
  511. package/src/mp/components/navigationBar/index.wxml +0 -80
  512. package/src/mp/components/navigationBar/index.wxss +0 -1257
  513. package/src/mp/components/richText/index.js +0 -67
  514. package/src/mp/components/richText/index.json +0 -4
  515. package/src/mp/components/richText/index.wxml +0 -3
  516. package/src/mp/components/richText/index.wxss +0 -27
  517. package/src/mp/components/scrollView/index.js +0 -119
  518. package/src/mp/components/scrollView/index.json +0 -4
  519. package/src/mp/components/scrollView/index.wxml +0 -38
  520. package/src/mp/components/slot/index.js +0 -20
  521. package/src/mp/components/slot/index.json +0 -4
  522. package/src/mp/components/slot/index.wxml +0 -3
  523. package/src/mp/components/swiper/index.js +0 -65
  524. package/src/mp/components/swiper/index.json +0 -4
  525. package/src/mp/components/swiper/index.wxml +0 -3
  526. package/src/mp/components/tabs/index.js +0 -59
  527. package/src/mp/components/tabs/index.json +0 -4
  528. package/src/mp/components/tabs/index.wxml +0 -12
  529. package/src/mp/components/tabs/index.wxss +0 -57
  530. package/src/mp/components/text/index.js +0 -40
  531. package/src/mp/components/text/index.json +0 -4
  532. package/src/mp/components/text/index.wxml +0 -1
  533. package/src/mp/components/text/index.wxss +0 -26
  534. package/src/mp/components/wedaVideo/index.js +0 -86
  535. package/src/mp/components/wedaVideo/index.json +0 -4
  536. package/src/mp/components/wedaVideo/index.wxml +0 -4
  537. package/src/mp/components/wedaVideo/index.wxss +0 -20
  538. package/src/mp/components/wxOpenApi/phone/index.js +0 -109
  539. package/src/mp/components/wxOpenApi/phone/index.json +0 -4
  540. package/src/mp/components/wxOpenApi/phone/index.wxml +0 -4
  541. package/src/mp/components/wxOpenApi/phone/index.wxss +0 -22
  542. package/src/mp/components/wxOpenApi/phoneCode/index.js +0 -89
  543. package/src/mp/components/wxOpenApi/phoneCode/index.json +0 -4
  544. package/src/mp/components/wxOpenApi/phoneCode/index.wxml +0 -4
  545. package/src/mp/components/wxOpenApi/phoneCode/index.wxss +0 -22
  546. package/src/mp/components/wxOpenApi/share/index.js +0 -117
  547. package/src/mp/components/wxOpenApi/share/index.json +0 -4
  548. package/src/mp/components/wxOpenApi/share/index.wxml +0 -4
  549. package/src/mp/components/wxOpenApi/share/index.wxss +0 -22
  550. package/src/mp/components/wxOpenApi/userInfo/index.js +0 -88
  551. package/src/mp/components/wxOpenApi/userInfo/index.json +0 -4
  552. package/src/mp/components/wxOpenApi/userInfo/index.wxml +0 -4
  553. package/src/mp/components/wxOpenApi/userInfo/index.wxss +0 -22
  554. package/src/mp/index.json +0 -52
  555. package/src/mp/package.json +0 -6
  556. package/src/mp/style/weda-ui.wxss +0 -71
  557. package/src/mp/utils/classnames.js +0 -39
  558. package/src/mp/utils/constant.js +0 -20
  559. package/src/mp/utils/dayjs.min.js +0 -1
  560. package/src/mp/utils/debounce.js +0 -133
  561. package/src/mp/utils/deepEqual.js +0 -42
  562. package/src/mp/utils/destr.js +0 -49
  563. package/src/mp/utils/dr_square_point.js +0 -29
  564. package/src/mp/utils/handleEvents.js +0 -32
  565. package/src/mp/utils/platform.js +0 -45
  566. package/src/mp/utils/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js +0 -1336
  567. package/src/mp/utils/spark-md5.js +0 -776
  568. package/src/mp/utils/tcb.js +0 -76
  569. package/src/setupTests.js +0 -14
  570. package/src/web/actions/showModal/index.tsx +0 -118
  571. package/src/web/actions/showToast/index.js +0 -3
  572. package/src/web/components/auth/index.css +0 -0
  573. package/src/web/components/auth/index.js +0 -66
  574. package/src/web/components/button/index.tsx +0 -119
  575. package/src/web/components/calendar/index.jsx +0 -312
  576. package/src/web/components/calendar/util.js +0 -90
  577. package/src/web/components/carousel/index.tsx +0 -417
  578. package/src/web/components/chart/bar/index.tsx +0 -140
  579. package/src/web/components/chart/common/config/bar.js +0 -49
  580. package/src/web/components/chart/common/config/global.js +0 -16
  581. package/src/web/components/chart/common/config/line.js +0 -50
  582. package/src/web/components/chart/common/config/pie.js +0 -37
  583. package/src/web/components/chart/common/core/eChartBar.js +0 -259
  584. package/src/web/components/chart/common/core/eChartBase.ts +0 -396
  585. package/src/web/components/chart/common/core/eChartLine.js +0 -225
  586. package/src/web/components/chart/common/core/eChartPie.js +0 -173
  587. package/src/web/components/chart/common/core/type.ts +0 -34
  588. package/src/web/components/chart/common/echart.css +0 -106
  589. package/src/web/components/chart/common/useChart.tsx +0 -87
  590. package/src/web/components/chart/line/index.tsx +0 -136
  591. package/src/web/components/chart/pie/index.tsx +0 -99
  592. package/src/web/components/chart/statisticsCard/index.tsx +0 -307
  593. package/src/web/components/chart/statisticsCard/interface.ts +0 -14
  594. package/src/web/components/container/index.tsx +0 -34
  595. package/src/web/components/dataView/index.tsx +0 -20
  596. package/src/web/components/drawer/index.tsx +0 -68
  597. package/src/web/components/form/checkbox/index.tsx +0 -210
  598. package/src/web/components/form/enumSelect/MultipleSelect.jsx +0 -89
  599. package/src/web/components/form/enumSelect/NormalSelect.tsx +0 -92
  600. package/src/web/components/form/enumSelect/SelectContainer.jsx +0 -43
  601. package/src/web/components/form/enumSelect/props/defaultProps.js +0 -39
  602. package/src/web/components/form/enumSelect/props/propsTypes.js +0 -50
  603. package/src/web/components/form/form/index.tsx +0 -51
  604. package/src/web/components/form/formcell/index.tsx +0 -85
  605. package/src/web/components/form/input/index.tsx +0 -166
  606. package/src/web/components/form/location/common/mapChoose.css +0 -180
  607. package/src/web/components/form/location/common/mapChoose.jsx +0 -343
  608. package/src/web/components/form/location/common/mapView.jsx +0 -190
  609. package/src/web/components/form/location/common/propsConfig.js +0 -54
  610. package/src/web/components/form/location/common/selectModal.jsx +0 -73
  611. package/src/web/components/form/location/common/useLocationInfo.js +0 -104
  612. package/src/web/components/form/location/components/LocationH5/index.css +0 -239
  613. package/src/web/components/form/location/components/LocationH5/location.h5.jsx +0 -413
  614. package/src/web/components/form/location/components/LocationPC/Header.jsx +0 -96
  615. package/src/web/components/form/location/components/LocationPC/location.PC.jsx +0 -332
  616. package/src/web/components/form/location/index.css +0 -0
  617. package/src/web/components/form/location/index.jsx +0 -25
  618. package/src/web/components/form/radio/index.tsx +0 -179
  619. package/src/web/components/form/renderDecorator.tsx +0 -28
  620. package/src/web/components/form/select/h5.tsx +0 -602
  621. package/src/web/components/form/select/index.tsx +0 -510
  622. package/src/web/components/form/select/region/index.ts +0 -152
  623. package/src/web/components/form/select/time.jsx +0 -145
  624. package/src/web/components/form/select/year.tsx +0 -172
  625. package/src/web/components/form/switch/index.tsx +0 -100
  626. package/src/web/components/form/textarea/index.tsx +0 -127
  627. package/src/web/components/form/tips/index.tsx +0 -34
  628. package/src/web/components/form/types.d.ts +0 -12
  629. package/src/web/components/form/uploader/index.tsx +0 -65
  630. package/src/web/components/form/uploader/uploader.h5.tsx +0 -290
  631. package/src/web/components/form/uploader/uploader.pc.tsx +0 -287
  632. package/src/web/components/form/uploaderFile/fail.svg +0 -12
  633. package/src/web/components/form/uploaderFile/index.jsx +0 -25
  634. package/src/web/components/form/uploaderFile/pending.svg +0 -18
  635. package/src/web/components/form/uploaderFile/success.svg +0 -12
  636. package/src/web/components/form/uploaderFile/uploadFile.h5.tsx +0 -606
  637. package/src/web/components/form/uploaderFile/uploadFile.pc.tsx +0 -520
  638. package/src/web/components/graphicCard/index.tsx +0 -310
  639. package/src/web/components/image/image.tsx +0 -187
  640. package/src/web/components/image/index.tsx +0 -121
  641. package/src/web/components/link/index.tsx +0 -119
  642. package/src/web/components/listView/arrow-right-line.svg +0 -3
  643. package/src/web/components/listView/index.tsx +0 -346
  644. package/src/web/components/listView/interface.ts +0 -98
  645. package/src/web/components/lottery/index.tsx +0 -567
  646. package/src/web/components/lottery/lotteryUtil.ts +0 -130
  647. package/src/web/components/modal/index.tsx +0 -60
  648. package/src/web/components/navLayout/index.tsx +0 -247
  649. package/src/web/components/navigationBar/chevron-right--double.svg +0 -3
  650. package/src/web/components/navigationBar/common.tsx +0 -198
  651. package/src/web/components/navigationBar/h5Menu.tsx +0 -179
  652. package/src/web/components/navigationBar/horizontalMenu.tsx +0 -200
  653. package/src/web/components/navigationBar/index.tsx +0 -230
  654. package/src/web/components/navigationBar/type.d.ts +0 -111
  655. package/src/web/components/navigationBar/verticalMenu.tsx +0 -81
  656. package/src/web/components/phone/index.css +0 -0
  657. package/src/web/components/phone/index.tsx +0 -22
  658. package/src/web/components/phoneCode/index.css +0 -0
  659. package/src/web/components/phoneCode/index.tsx +0 -22
  660. package/src/web/components/picker/datePicker.tsx +0 -48
  661. package/src/web/components/picker/picker.tsx +0 -59
  662. package/src/web/components/picker/timePicker.tsx +0 -56
  663. package/src/web/components/richText/const.ts +0 -3
  664. package/src/web/components/richText/index.jsx +0 -473
  665. package/src/web/components/richTextView/index.tsx +0 -63
  666. package/src/web/components/scrollView/index.tsx +0 -148
  667. package/src/web/components/share/index.css +0 -0
  668. package/src/web/components/share/index.tsx +0 -38
  669. package/src/web/components/slot/index.tsx +0 -19
  670. package/src/web/components/swiper/index.tsx +0 -291
  671. package/src/web/components/tabs/index.tsx +0 -35
  672. package/src/web/components/tabs/tabs.h5.tsx +0 -84
  673. package/src/web/components/tabs/tabs.pc.tsx +0 -74
  674. package/src/web/components/text/index.tsx +0 -60
  675. package/src/web/components/uploaderFileView/index.jsx +0 -84
  676. package/src/web/components/uploaderView/index.tsx +0 -92
  677. package/src/web/components/userInfo/index.css +0 -0
  678. package/src/web/components/userInfo/index.tsx +0 -30
  679. package/src/web/components/wedaVideo/index.tsx +0 -208
  680. package/src/web/types.d.ts +0 -21
  681. package/src/web/utils/classnames.js +0 -39
  682. package/src/web/utils/constant.ts +0 -23
  683. package/src/web/utils/debounce.js +0 -98
  684. package/src/web/utils/isObjectEqual.js +0 -15
  685. package/src/web/utils/loading-fallback.tsx +0 -2
  686. package/src/web/utils/lodash.ts +0 -2
  687. package/src/web/utils/platform.js +0 -156
  688. package/src/web/utils/tcb.js +0 -86
  689. package/src/web/utils/tmap.js +0 -4
  690. package/src/web/utils/useSetState.ts +0 -18
  691. package/src/web/utils/useSyncValue.ts +0 -17
@@ -0,0 +1,315 @@
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, } from 'tea-component';
5
+ import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, transFileCloudidToName, randomStr, } from '../../../utils/platform';
6
+ import { getCloudInstance, getTempFileURL } from '../../../utils/tcb';
7
+ import classNames from '../../../utils/classnames';
8
+ import { renderDecorator } from '../renderDecorator';
9
+ import { emptyArray, emptyObject } from '../../../utils/constant';
10
+ // 默认组件类前缀
11
+ const CLASS_PREFIX = 'weda-upload-file-mobile';
12
+ // 默认图片类型
13
+ export const FILES_TYPES = [
14
+ '.doc',
15
+ '.docx',
16
+ '.xml',
17
+ 'application/msword',
18
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
19
+ ];
20
+ // 上传状态字典
21
+ const statusMap = {
22
+ UPLOAD_STATUS_PENDING: { title: '等待上传', icon: 'pending' },
23
+ UPLOAD_STATUS_LOADING: { title: '上传中', icon: 'loading' },
24
+ UPLOAD_STATUS_SUCCESS: { title: '上传成功', icon: 'success' },
25
+ UPLOAD_STATUS_ERROR: { title: '上传失败', icon: 'error' },
26
+ };
27
+ // 上传文件Context
28
+ const FileContext = React.createContext(null);
29
+ /**
30
+ * 上传文件 H5 版本
31
+ */
32
+ const defaultStyle = { margin: '0,-5px' };
33
+ export function UploadFileH5({
34
+ // 系统属性
35
+ layout, id = '', style = defaultStyle, labelVisible = true, label = '上传文件', requiredFlag = false, disabled = false, className = '', acceptTypes = emptyArray,
36
+ // 组件属性
37
+ tips = '', btnTitle = '点击上传', maxUploadCount = 9, maxSize = 10, deleteVisible = true, downloadVisible = true, value = emptyArray, // 需要兼容 cloud:和https: 协议,需要兼容字符串和字符串数组
38
+ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true, onChange = null, isEdit = true, }) {
39
+ const [fileIDList, setfileIDList] = React.useState(filterStrList([].concat(defaultValue, value))); // 上传成功文件ID列表,fileID[]
40
+ const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性
41
+ const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}
42
+ // 两次默认值不同, 需要刷新
43
+ const prevDefaultRef = React.useRef([]);
44
+ const fileRef = React.useRef(fileIDList);
45
+ React.useMemo(() => {
46
+ //有有效默认值时不刷新,解决初次渲染默认值不显示问题
47
+ if (defaultValue &&
48
+ !isObjectEqual(prevDefaultRef.current, defaultValue) &&
49
+ (JSON.stringify(prevDefaultRef.current) == '[]' ||
50
+ !prevDefaultRef.current)) {
51
+ prevDefaultRef.current = defaultValue;
52
+ setfileIDList(filterStrList([].concat(defaultValue)));
53
+ }
54
+ }, [defaultValue]);
55
+ React.useEffect(() => {
56
+ var _a, _b, _c;
57
+ // 外部 onChange 事件
58
+ const pureFileIDList = fileIDList.filter((d) => isCloudFileID(d) || isHttpFileID(d));
59
+ if (single) {
60
+ const file = pureFileIDList[0] || '';
61
+ file && onChange && onChange(file);
62
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: file });
63
+ }
64
+ else {
65
+ onChange && onChange(pureFileIDList);
66
+ (_b = events === null || events === void 0 ? void 0 : events.change) === null || _b === void 0 ? void 0 : _b.call(events, { value: pureFileIDList });
67
+ }
68
+ if (!isObjectEqual(fileRef.current, fileIDList)) {
69
+ (_c = events === null || events === void 0 ? void 0 : events.success) === null || _c === void 0 ? void 0 : _c.call(events, { value: pureFileIDList });
70
+ fileRef.current = fileIDList;
71
+ }
72
+ }, [fileIDList]);
73
+ // 外层组件类
74
+ const cls = classNames({
75
+ 'weda-ui': true,
76
+ //'weui-cells': true,
77
+ //'weui-cells_form': true,
78
+ 'weui-cells_checkbox': true,
79
+ [className]: className,
80
+ });
81
+ const accepts = React.useMemo(() => {
82
+ return acceptTypes.includes('*') || acceptTypes.length === 0
83
+ ? ['*']
84
+ : Array.from(new Set(acceptTypes));
85
+ }, [acceptTypes]);
86
+ // 上传后文件列表 fileIDList 改变事件,'add'|'delete'
87
+ const handleChange = ({ fileID, uuid, type, size }) => {
88
+ // 上传时新增事件
89
+ if (type === 'add') {
90
+ fileID && setFileSizeObj((obj) => ({ ...obj, [fileID]: size }));
91
+ fileID && setfileIDList([...fileIDList, fileID]);
92
+ }
93
+ else {
94
+ fileID && setfileIDList(fileIDList.filter((f) => f !== fileID));
95
+ }
96
+ uuid && setFileList((list) => list.filter((item) => uuid !== (item === null || item === void 0 ? void 0 : item._uuid)));
97
+ };
98
+ // 上传组件属性
99
+ const uploadProps = {
100
+ multiple: !single,
101
+ };
102
+ tips && (uploadProps['label'] = tips);
103
+ maxSize && (uploadProps['maxSize'] = maxSize * 1024 * 1024);
104
+ const btnDisabled = fileIDList.length >= maxUploadCount ||
105
+ (single && fileIDList.length > 0) ||
106
+ disabled;
107
+ return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
108
+ React.createElement(FileContext.Provider, { value: {
109
+ uploadPath,
110
+ downloadVisible,
111
+ deleteVisible,
112
+ onChange: handleChange,
113
+ isEdit,
114
+ events,
115
+ fileSizeObj,
116
+ } },
117
+ React.createElement("div", { "data-testid": "uploadFileH5", className: cls, id: id, style: style },
118
+ React.createElement("div", { className: classNames(`${CLASS_PREFIX}`) },
119
+ isEdit && (React.createElement("div", { className: classNames(`${CLASS_PREFIX}__hd`, layout) },
120
+ React.createElement("div", null, btnDisabled ? (React.createElement(Button, { type: "weak", className: classNames(`${CLASS_PREFIX}__btn--weak`), disabled: btnDisabled }, btnTitle)) : (React.createElement("div", null,
121
+ React.createElement("input", { id: "uploaderInput", type: "file", "data-testid": "button-up", className: "weui-uploader-mobile__input", accept: accepts.join(','), multiple: !single, onChange: (e) => {
122
+ const fileList = [...e.target.files];
123
+ if (single && fileList.length > 1) {
124
+ weui.alert(`上传文件总数不能超过1个`);
125
+ return false;
126
+ }
127
+ if (fileList.length + fileIDList.length >
128
+ maxUploadCount) {
129
+ weui.alert(`上传文件总数不能超过${maxUploadCount}个`);
130
+ return false;
131
+ }
132
+ if (maxSize &&
133
+ fileList.some((f) => f.size > maxSize * 1024 * 1024)) {
134
+ weui.alert(`请上传不超过${maxSize}M的文件`);
135
+ return false;
136
+ }
137
+ if (fileList.some((f) => f.size > 1024 * 1024 * 1024)) {
138
+ weui.alert(`请上传不超过1024M的文件`);
139
+ return false;
140
+ }
141
+ fileList.forEach((f) => (f['_uuid'] = randomStr()));
142
+ setFileList((list) => [...list, ...fileList]);
143
+ } }),
144
+ React.createElement("a", { type: "weak", className: "wedatea2td-btn wedatea2td-btn--weak", style: { fontSize: '1em' } }, "\u70B9\u51FB\u4E0A\u4F20"),
145
+ !single && (React.createElement(Text, { className: `${CLASS_PREFIX}__tips` }, "\u652F\u6301\u6279\u91CF\u4E0A\u4F20"))))))),
146
+ React.createElement("div", { className: `${CLASS_PREFIX}__bd` },
147
+ React.createElement(List, null,
148
+ fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { fileID: d, fileList: fileList, onChange: handleChange, deleteVisible: deleteVisible, downloadVisible: downloadVisible })))),
149
+ fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { file: item, downloadVisible: downloadVisible, deleteVisible: deleteVisible })))))))))))({
150
+ id,
151
+ className: cls,
152
+ style,
153
+ label: labelVisible ? label : null,
154
+ layout,
155
+ multiCell: false,
156
+ requiredFlag,
157
+ });
158
+ }
159
+ /**
160
+ * 基于 FileID 文件回显组件
161
+ */
162
+ const TcbFileEcho = ({ fileID }) => {
163
+ const [src, setSrc] = React.useState('');
164
+ const { fileSizeObj } = React.useContext(FileContext) || {};
165
+ React.useEffect(() => {
166
+ const fetchFileId = async (id) => {
167
+ if (isCloudFileID(id)) {
168
+ try {
169
+ const fileSrc = await getTempFileURL(id);
170
+ setSrc(fileSrc);
171
+ }
172
+ catch (e) { }
173
+ }
174
+ else {
175
+ setSrc(id);
176
+ }
177
+ };
178
+ fetchFileId(fileID);
179
+ }, [fileID]);
180
+ //上传文件名称
181
+ const label = React.useMemo(() => {
182
+ if (isCloudFileID(fileID)) {
183
+ return transFileCloudidToName(fileID);
184
+ }
185
+ else {
186
+ return fileID;
187
+ }
188
+ }, [fileID]);
189
+ //上传文件列表展示
190
+ return (React.createElement("div", { className: `${CLASS_PREFIX}__item` },
191
+ React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
192
+ React.createElement(UploadFileStatus, { title: label, size: fileSizeObj[fileID] || '--' })),
193
+ React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
194
+ React.createElement(UploadFileAction, { status: "UPLOAD_STATUS_SUCCESS", fileID: fileID, src: src }))));
195
+ };
196
+ /**
197
+ * 基于 File 上传文件过程组件
198
+ */
199
+ const TcbFileUpload = ({ file }) => {
200
+ const { uploadPath, onChange, events } = React.useContext(FileContext) || {};
201
+ const [percent, setPercent] = React.useState(0); // 上传进度
202
+ const [status, setStatus] = React.useState('UPLOAD_STATUS_PENDING'); // 上传状态
203
+ const cancleRef = React.useRef(''); // 取消的uuid
204
+ // 上传文件相关属性
205
+ const { size, title, uuid } = React.useMemo(() => {
206
+ const size = transSize(file === null || file === void 0 ? void 0 : file.size);
207
+ const title = (file === null || file === void 0 ? void 0 : file.name) || '';
208
+ const uuid = file === null || file === void 0 ? void 0 : file._uuid;
209
+ return { size, title, uuid };
210
+ }, [file === null || file === void 0 ? void 0 : file._uuid]);
211
+ React.useEffect(() => {
212
+ handleUpload(file);
213
+ }, [file === null || file === void 0 ? void 0 : file._uuid]);
214
+ // 上传过程
215
+ const handleUpload = async (file) => {
216
+ var _a;
217
+ const tcb = await getCloudInstance();
218
+ try {
219
+ setStatus('UPLOAD_STATUS_PENDING');
220
+ const { fileID } = await tcb.uploadFile({
221
+ cloudPath: `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`,
222
+ filePath: file,
223
+ onUploadProgress: (progressEvent) => {
224
+ let percent = 0;
225
+ percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
226
+ setStatus('UPLOAD_STATUS_LOADING');
227
+ setPercent(percent < 100 ? percent : 100);
228
+ },
229
+ });
230
+ !cancleRef.current && (onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, type: 'add', uuid, size }));
231
+ setStatus('UPLOAD_STATUS_SUCCESS');
232
+ }
233
+ catch (err) {
234
+ setStatus('UPLOAD_STATUS_ERROR');
235
+ (_a = events === null || events === void 0 ? void 0 : events.error) === null || _a === void 0 ? void 0 : _a.call(events, err);
236
+ }
237
+ };
238
+ return (React.createElement("div", { className: `${CLASS_PREFIX}__item`, role: "TcbFileUpload" },
239
+ React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
240
+ React.createElement(UploadFileStatus, { status: status, percent: percent, size: size, title: title, percentSize: (((file === null || file === void 0 ? void 0 : file.size) / 1024) * percent) / 100 })),
241
+ React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
242
+ React.createElement(UploadFileAction, { file: file, uuid: file === null || file === void 0 ? void 0 : file._uuid, status: status, onCancel: (uuid) => {
243
+ cancleRef.current = uuid;
244
+ onChange === null || onChange === void 0 ? void 0 : onChange({ type: 'delete', uuid });
245
+ }, onReLoad: handleUpload }))));
246
+ };
247
+ /**
248
+ * 上传文件状态组件
249
+ */
250
+ const UploadFileStatus = ({ status = 'UPLOAD_STATUS_SUCCESS', percent = 0, size, title = null, percentSize = 0, }) => {
251
+ var _a, _b;
252
+ const { isEdit } = React.useContext(FileContext) || {};
253
+ //上传中、待上传状态
254
+ if (status == 'UPLOAD_STATUS_LOADING' ||
255
+ (status == 'UPLOAD_STATUS_PENDING' && percent)) {
256
+ return (React.createElement(React.Fragment, null,
257
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
258
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title),
259
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
260
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
261
+ React.createElement(Progress, { percent: percent, theme: "default", strokeColor: '#0052D9', className: `${CLASS_PREFIX}__file-progress` })))),
262
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
263
+ React.createElement("div", null,
264
+ React.createElement(Text, null, `${Math.floor(percentSize)}K/`),
265
+ React.createElement(Text, null, size)),
266
+ React.createElement(Text, null, status === 'UPLOAD_STATUS_PENDING' ? '等待上传' : '上传中'))));
267
+ }
268
+ return (React.createElement(React.Fragment, null,
269
+ React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
270
+ React.createElement(Tooltip, { title: title },
271
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title)),
272
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
273
+ React.createElement(Icon, { type: ((_a = statusMap[status]) === null || _a === void 0 ? void 0 : _a.icon) ||
274
+ statusMap['UPLOAD_STATUS_PENDING'].icon }),
275
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-status--msg` }, ((_b = statusMap[status]) === null || _b === void 0 ? void 0 : _b.title) ||
276
+ statusMap['UPLOAD_STATUS_PENDING'].title)))),
277
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
278
+ React.createElement("div", null,
279
+ React.createElement(Text, null, size))))));
280
+ };
281
+ /**
282
+ * 操作列组件, onChange 从最外层 UploadFilePc 传进来
283
+ * props: { status, fileID, uuid, src, onChange }
284
+ */
285
+ const UploadFileAction = ({ status = 'UPLOAD_STATUS_PENDING', fileID = '', uuid = '', src = '', file = null, onReLoad = null, onCancel = null, }) => {
286
+ const { onChange, downloadVisible, deleteVisible, isEdit } = React.useContext(FileContext) || {};
287
+ // 操作列按钮-删除
288
+ const renderDelete = () => isEdit && (React.createElement(Icon, { type: "delete", style: { cursor: 'pointer' }, onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, uuid, type: 'delete' }) }));
289
+ // 操作列按钮-取消
290
+ const renderCancel = () => isEdit && (React.createElement(Icon, { type: "dismiss", style: { cursor: 'pointer' }, onClick: () => onCancel === null || onCancel === void 0 ? void 0 : onCancel(uuid) }));
291
+ // 操作列按钮-重新上传
292
+ const renderReLoad = () => isEdit && (React.createElement(Icon, { type: "refresh", style: { cursor: 'pointer' }, onClick: () => {
293
+ onReLoad === null || onReLoad === void 0 ? void 0 : onReLoad(file);
294
+ } }));
295
+ // 操作列按钮-下载
296
+ const renderDownLoad = () => (React.createElement(Icon, { type: "download", style: { cursor: 'pointer' }, onClick: () => downloadFile(src) }));
297
+ switch (status) {
298
+ case 'UPLOAD_STATUS_PENDING':
299
+ return renderCancel();
300
+ case 'UPLOAD_STATUS_LOADING':
301
+ return renderCancel();
302
+ case 'UPLOAD_STATUS_SUCCESS':
303
+ return (React.createElement(React.Fragment, null,
304
+ deleteVisible && renderDelete(),
305
+ ' ',
306
+ downloadVisible && renderDownLoad()));
307
+ case 'UPLOAD_STATUS_ERROR':
308
+ return (React.createElement(React.Fragment, null,
309
+ deleteVisible && renderDelete(),
310
+ " ",
311
+ renderReLoad()));
312
+ default:
313
+ return null;
314
+ }
315
+ };
@@ -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
+ }
@@ -0,0 +1,290 @@
1
+ import * as React from 'react';
2
+ import { Upload, ConfigProvider, Button, message, Icon, Text, List, } from 'tea-component';
3
+ import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, cutFileTitle, transFileCloudidToName, randomStr, } from '../../../utils/platform';
4
+ import { getCloudInstance, getTempFileURL } from '../../../utils/tcb';
5
+ import classNames from '../../../utils/classnames';
6
+ import { renderDecorator } from '../renderDecorator';
7
+ import isObjectEqual from '../../../utils/isObjectEqual';
8
+ import { emptyArray, emptyObject } from '../../../utils/constant';
9
+ // 默认组件类前缀
10
+ const CLASS_PREFIX = 'weda-upload-file-pc';
11
+ // 上传状态字典
12
+ const statusMap = {
13
+ 0: { title: '待上传', icon: 'pending-gray' },
14
+ 1: { title: '上传 ...', icon: 'loading' },
15
+ 2: { title: '上传成功', icon: 'success' },
16
+ 3: { title: '上传失败', icon: 'error' },
17
+ };
18
+ // 上传文件Context
19
+ const FileContext = React.createContext(null);
20
+ /**
21
+ * 上传文件 PC 版本
22
+ */
23
+ export function UploadFilePc({
24
+ // 系统属性
25
+ layout, id = '', style, labelVisible = true, label = '上传文件', requiredFlag = false, disabled = false, className = '', events = emptyObject,
26
+ // 组件属性
27
+ decorator, tips = '', btnTitle = '点击上传', maxUploadCount = 9, maxSize = 1024, single = true, defaultValue = emptyArray, // 组件默认初始化值
28
+ value = emptyArray, // 用于模型组件中 formily 的值管理
29
+ acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPath = 'weda-uploader', onChange = null, isEdit = true, }) {
30
+ const [fileIDList, setfileIDList] = React.useState(filterStrList([].concat(defaultValue, value))); // 上传成功文件ID列表,fileID[]
31
+ const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性
32
+ const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}
33
+ // 两次默认值不同, 需要刷新
34
+ const prevDefaultRef = React.useRef([]);
35
+ const fileRef = React.useRef(fileIDList);
36
+ React.useMemo(() => {
37
+ //有有效默认值时不刷新,解决初次渲染默认值不显示问题
38
+ if (defaultValue &&
39
+ !isObjectEqual(prevDefaultRef.current, defaultValue) &&
40
+ (JSON.stringify(prevDefaultRef.current) == '[]' ||
41
+ !prevDefaultRef.current)) {
42
+ prevDefaultRef.current = defaultValue;
43
+ setfileIDList(filterStrList([].concat(defaultValue)));
44
+ }
45
+ }, [defaultValue]);
46
+ React.useEffect(() => {
47
+ var _a, _b, _c;
48
+ // 外部 onChange 事件
49
+ const pureFileIDList = fileIDList.filter((d) => isCloudFileID(d) || isHttpFileID(d));
50
+ if (single) {
51
+ const file = pureFileIDList[0] || '';
52
+ onChange === null || onChange === void 0 ? void 0 : onChange(file);
53
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, { value: file });
54
+ }
55
+ else {
56
+ onChange === null || onChange === void 0 ? void 0 : onChange(pureFileIDList);
57
+ (_b = events === null || events === void 0 ? void 0 : events.change) === null || _b === void 0 ? void 0 : _b.call(events, { value: pureFileIDList });
58
+ }
59
+ if (!isObjectEqual(fileRef.current, fileIDList)) {
60
+ (_c = events === null || events === void 0 ? void 0 : events.success) === null || _c === void 0 ? void 0 : _c.call(events, { value: pureFileIDList });
61
+ fileRef.current = fileIDList;
62
+ }
63
+ }, [fileIDList]);
64
+ // 外层组件类
65
+ const cls = classNames({
66
+ 'weda-ui': true,
67
+ [className]: className,
68
+ });
69
+ // 批量上传文件前置事件
70
+ const handleBefore = (file, fileList, isAccepted, error) => {
71
+ if (fileList.length + fileIDList.length > maxUploadCount) {
72
+ message.warning({ content: `上传文件总数不能超过${maxUploadCount}个` });
73
+ return false;
74
+ }
75
+ if (!isAccepted) {
76
+ try {
77
+ const errorList = [];
78
+ if (error.find((item) => (item === null || item === void 0 ? void 0 : item.code) === 'file-invalid-type')) {
79
+ errorList.push('上传文件类型错误');
80
+ }
81
+ if (error.find((item) => (item === null || item === void 0 ? void 0 : item.code) === 'file-too-large')) {
82
+ errorList.push(`上传文件大小不能超过${maxSize}M`);
83
+ }
84
+ message.error({ content: errorList.join(', ') });
85
+ }
86
+ catch (e) { }
87
+ return false;
88
+ }
89
+ file['_uuid'] = randomStr();
90
+ setFileList((list) => [...list, file]);
91
+ return false;
92
+ };
93
+ // 上传后文件列表 fileIDList 改变事件,'add'|'delete'
94
+ const handleChange = ({ fileID, uuid, type, size }) => {
95
+ // 上传时新增事件
96
+ if (type === 'add') {
97
+ fileID && setFileSizeObj((obj) => ({ ...obj, [fileID]: size }));
98
+ fileID && setfileIDList((list) => [...list, fileID]);
99
+ }
100
+ else {
101
+ fileID && setfileIDList((list) => list.filter((d) => d !== fileID));
102
+ }
103
+ uuid && setFileList((list) => list.filter((item) => uuid !== (item === null || item === void 0 ? void 0 : item._uuid)));
104
+ };
105
+ // 上传组件属性
106
+ const uploadProps = { multiple: !single };
107
+ if (!(!(acceptTypes === null || acceptTypes === void 0 ? void 0 : acceptTypes.length) ||
108
+ (acceptTypes === null || acceptTypes === void 0 ? void 0 : acceptTypes.includes('*')) ||
109
+ (acceptTypes === null || acceptTypes === void 0 ? void 0 : acceptTypes.includes('')))) {
110
+ uploadProps['accept'] = Array.from(new Set(acceptTypes));
111
+ }
112
+ tips && (uploadProps['title'] = tips);
113
+ maxSize && (uploadProps['maxSize'] = maxSize * 1024 * 1024);
114
+ const btnDisabled = fileIDList.length >= maxUploadCount || (single && fileIDList.length > 0);
115
+ return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
116
+ React.createElement(FileContext.Provider, { value: {
117
+ uploadPath,
118
+ downloadVisible,
119
+ deleteVisible,
120
+ onChange: handleChange,
121
+ isEdit,
122
+ events,
123
+ fileSizeObj,
124
+ } },
125
+ React.createElement("div", { className: `${CLASS_PREFIX}` },
126
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__input-box` }, disabled || btnDisabled ? (React.createElement(Button, { type: "weak", disabled: true }, btnTitle)) : (React.createElement(Upload, { ...uploadProps, beforeUpload: handleBefore },
127
+ React.createElement(Button, { type: "weak", className: `${CLASS_PREFIX}__btn--weak` }, btnTitle),
128
+ !single && (React.createElement(Text, { theme: "weak", className: `${CLASS_PREFIX}__btn-descripe` }, "\u652F\u6301\u6279\u91CF\u4E0A\u4F20")))))),
129
+ React.createElement(List, { split: "divide" },
130
+ React.createElement(List.Item, null,
131
+ React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-header` },
132
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-title ${CLASS_PREFIX}--item-label` }, "\u6587\u4EF6\u540D"),
133
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-size ${CLASS_PREFIX}--item-label` }, "\u5927\u5C0F"),
134
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-status ${CLASS_PREFIX}--item-label` }, "\u72B6\u6001"),
135
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-action` }, "\u64CD\u4F5C"))),
136
+ fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { fileID: d })))),
137
+ fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { file: item })))),
138
+ isEdit && fileIDList.length === 0 && fileList.length === 0 && (React.createElement(List.Item, { className: `${CLASS_PREFIX}--item-empty` },
139
+ React.createElement("div", { className: `${CLASS_PREFIX}--item` },
140
+ "\u70B9\u51FB\u4E0A\u65B9\u201C",
141
+ btnTitle,
142
+ "\u201D\u6309\u94AE"))))))), decorator)({
143
+ id,
144
+ className: cls,
145
+ style,
146
+ label: labelVisible ? label : null,
147
+ layout,
148
+ multiCell: false,
149
+ requiredFlag,
150
+ });
151
+ }
152
+ /**
153
+ * 基于 FileID 回显文件表格行组件
154
+ */
155
+ const TcbFileEcho = ({ fileID }) => {
156
+ const [src, setSrc] = React.useState('');
157
+ const { fileSizeObj } = React.useContext(FileContext) || {};
158
+ React.useEffect(() => {
159
+ const fetchFileId = async (id) => {
160
+ if (isCloudFileID(id)) {
161
+ try {
162
+ const fileSrc = await getTempFileURL(id);
163
+ setSrc(fileSrc);
164
+ }
165
+ catch (e) { }
166
+ }
167
+ else {
168
+ setSrc(id);
169
+ }
170
+ };
171
+ fetchFileId(fileID);
172
+ }, [fileID]);
173
+ const title = React.useMemo(() => {
174
+ if (isCloudFileID(fileID)) {
175
+ return transFileCloudidToName(fileID);
176
+ }
177
+ else {
178
+ return fileID;
179
+ }
180
+ }, [fileID]);
181
+ return (React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body` },
182
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-title`, title: title }, cutFileTitle(title)),
183
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, fileSizeObj[fileID] || '--'),
184
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-status` },
185
+ React.createElement(UploadFileStatus, null)),
186
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-action` },
187
+ React.createElement(UploadFileAction, { status: "2", fileID: fileID, src: src }))));
188
+ };
189
+ /**
190
+ * 基于 File 上传文件过程表格行组件
191
+ */
192
+ const TcbFileUpload = ({ file }) => {
193
+ const { uploadPath, onChange, events } = React.useContext(FileContext) || {};
194
+ const [percent, setPercent] = React.useState(0); // 上传进度
195
+ const [status, setStatus] = React.useState('0'); // 上传状态
196
+ const cancleRef = React.useRef(''); // 取消的uuid
197
+ // 上传文件相关属性
198
+ const { size, title, uuid } = React.useMemo(() => {
199
+ const size = transSize(file === null || file === void 0 ? void 0 : file.size);
200
+ const title = (file === null || file === void 0 ? void 0 : file.name) || '';
201
+ const uuid = file === null || file === void 0 ? void 0 : file._uuid;
202
+ return { size, title, uuid };
203
+ }, [file === null || file === void 0 ? void 0 : file._uuid]);
204
+ React.useEffect(() => {
205
+ handleUpload(file);
206
+ }, [file === null || file === void 0 ? void 0 : file._uuid]);
207
+ // 上传过程
208
+ const handleUpload = async (file) => {
209
+ const tcb = await getCloudInstance();
210
+ try {
211
+ setStatus('0');
212
+ const { fileID } = await tcb.uploadFile({
213
+ cloudPath: `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`,
214
+ filePath: file,
215
+ onUploadProgress: (progressEvent) => {
216
+ let percent = 0;
217
+ percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
218
+ setStatus('1');
219
+ setPercent(percent < 100 ? percent : 100);
220
+ },
221
+ });
222
+ !cancleRef.current && (onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, type: 'add', uuid, size }));
223
+ setStatus('2');
224
+ }
225
+ catch (e) {
226
+ setStatus('3');
227
+ events.error && events.error(e);
228
+ }
229
+ };
230
+ return (React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body` },
231
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-title`, title: title }, cutFileTitle(title)),
232
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, size),
233
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-status` },
234
+ React.createElement(UploadFileStatus, { status: status, percent: percent })),
235
+ React.createElement("div", { className: `${CLASS_PREFIX}--item-action` },
236
+ React.createElement(UploadFileAction, { file: file, uuid: file === null || file === void 0 ? void 0 : file._uuid, status: status, onCancel: (uuid) => {
237
+ cancleRef.current = uuid;
238
+ onChange === null || onChange === void 0 ? void 0 : onChange({ type: 'delete', uuid });
239
+ }, onReLoad: handleUpload }))));
240
+ };
241
+ /**
242
+ * 上传文件状态组件
243
+ */
244
+ const UploadFileStatus = ({ status = '2', percent = 0 }) => {
245
+ var _a, _b;
246
+ if (status == '1' && percent) {
247
+ return (React.createElement(React.Fragment, null,
248
+ React.createElement(Icon, { type: "loading" }),
249
+ "\u4E0A\u4F20",
250
+ percent,
251
+ "% ..."));
252
+ }
253
+ return (React.createElement(React.Fragment, null,
254
+ React.createElement(Icon, { type: ((_a = statusMap[status]) === null || _a === void 0 ? void 0 : _a.icon) || statusMap['0'].icon }),
255
+ ((_b = statusMap[status]) === null || _b === void 0 ? void 0 : _b.title) || statusMap['0'].title));
256
+ };
257
+ /**
258
+ * 操作列组件, onChange 从最外层 UploadFilePc 传进来
259
+ * props: { status, fileID, uuid, src, onChange }
260
+ */
261
+ const UploadFileAction = ({ status = '0', fileID = '', uuid = '', src = '', file = null, onReLoad = null, onCancel = null, }) => {
262
+ const { onChange, downloadVisible, deleteVisible, isEdit } = React.useContext(FileContext) || {};
263
+ // 操作列按钮-删除
264
+ const renderDelete = () => isEdit &&
265
+ deleteVisible && (React.createElement(Button, { type: "link", onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange({ fileID, uuid, type: 'delete' }) }, "\u5220\u9664"));
266
+ // 操作列按钮-取消
267
+ const renderCancel = () => isEdit && (React.createElement(Button, { onClick: () => onCancel === null || onCancel === void 0 ? void 0 : onCancel(uuid), type: "link" }, "\u53D6\u6D88"));
268
+ // 操作列按钮-重新上传
269
+ const renderReLoad = () => isEdit && (React.createElement(Button, { type: "link", onClick: () => {
270
+ onReLoad === null || onReLoad === void 0 ? void 0 : onReLoad(file);
271
+ } }, "\u91CD\u65B0\u4E0A\u4F20"));
272
+ // 操作列按钮-下载
273
+ const renderDownLoad = () => downloadVisible && (React.createElement(Button, { type: "link", title: "\u70B9\u51FB\u4E0B\u8F7D\u6587\u4EF6", onClick: () => downloadFile(src) }, "\u4E0B\u8F7D"));
274
+ switch (status) {
275
+ case '0':
276
+ return renderCancel();
277
+ case '1':
278
+ return renderCancel();
279
+ case '2':
280
+ return (React.createElement(React.Fragment, null,
281
+ renderDelete(),
282
+ renderDownLoad()));
283
+ case '3':
284
+ return (React.createElement(React.Fragment, null,
285
+ renderDelete(),
286
+ renderReLoad()));
287
+ default:
288
+ return null;
289
+ }
290
+ };