@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.
- package/CHANGELOG.md +7 -0
- package/dist/configs/actions/showModal.json +48 -0
- package/dist/configs/actions/showToast.json +41 -0
- package/dist/configs/components/auth.json +16 -0
- package/dist/configs/components/button.json +239 -0
- package/dist/configs/components/calendar.json +81 -0
- package/dist/configs/components/carousel.json +292 -0
- package/dist/configs/components/chart/bar.json +721 -0
- package/dist/configs/components/chart/line.json +674 -0
- package/dist/configs/components/chart/pie.json +494 -0
- package/dist/configs/components/chart/statisticsCard.json +376 -0
- package/dist/configs/components/container.json +50 -0
- package/dist/configs/components/dataView.json +239 -0
- package/dist/configs/components/drawer.json +115 -0
- package/dist/configs/components/form/checkbox.json +178 -0
- package/dist/configs/components/form/form.json +45 -0
- package/dist/configs/components/form/input.json +154 -0
- package/dist/configs/components/form/location.json +248 -0
- package/dist/configs/components/form/radio.json +203 -0
- package/dist/configs/components/form/richText.json +125 -0
- package/dist/configs/components/form/select.json +430 -0
- package/dist/configs/components/form/switch.json +58 -0
- package/dist/configs/components/form/textarea.json +116 -0
- package/dist/configs/components/form/tips.json +34 -0
- package/dist/configs/components/form/uploader.json +171 -0
- package/dist/configs/components/form/uploaderFile.json +158 -0
- package/dist/configs/components/graphicCard.json +413 -0
- package/dist/configs/components/image.json +187 -0
- package/dist/configs/components/link.json +79 -0
- package/dist/configs/components/listView.json +370 -0
- package/dist/configs/components/lottery.json +163 -0
- package/dist/configs/components/modal.json +72 -0
- package/dist/configs/components/navLayout.json +368 -0
- package/dist/configs/components/navigationBar.json +62 -0
- package/dist/configs/components/richtextview.json +26 -0
- package/dist/configs/components/scrollVeiw.json +253 -0
- package/dist/configs/components/slot.json +17 -0
- package/dist/configs/components/swiper.json +90 -0
- package/dist/configs/components/tabs.json +121 -0
- package/dist/configs/components/text.json +95 -0
- package/dist/configs/components/wedaVideo.json +89 -0
- package/dist/configs/components/wxOpenApi/phone.json +127 -0
- package/dist/configs/components/wxOpenApi/phoneCode.json +109 -0
- package/dist/configs/components/wxOpenApi/share.json +157 -0
- package/dist/configs/components/wxOpenApi/userInfo.json +156 -0
- package/dist/configs/index.d.ts +97 -0
- package/{src → dist}/configs/index.js +51 -57
- package/dist/docs/common/format.d.ts +13 -0
- package/dist/docs/common/format.js +103 -0
- package/dist/docs/common/tableView.d.ts +30 -0
- package/dist/docs/common/tableView.js +159 -0
- package/dist/index.d.ts +2 -0
- package/{src → dist}/index.js +0 -1
- package/dist/setupTests.d.ts +1 -0
- package/dist/setupTests.js +14 -0
- package/dist/web/actions/index.d.ts +2 -0
- package/{src → dist}/web/actions/index.js +0 -0
- package/dist/web/actions/showModal/index.d.ts +3 -0
- package/dist/web/actions/showModal/index.js +66 -0
- package/dist/web/actions/showToast/index.d.ts +1 -0
- package/dist/web/actions/showToast/index.js +3 -0
- package/dist/web/components/auth/index.d.ts +10 -0
- package/dist/web/components/auth/index.js +37 -0
- package/{src → dist}/web/components/button/index.css +2 -2
- package/dist/web/components/button/index.d.ts +32 -0
- package/dist/web/components/button/index.js +48 -0
- package/{src → dist}/web/components/calendar/index.css +29 -29
- package/dist/web/components/calendar/index.d.ts +19 -0
- package/dist/web/components/calendar/index.js +181 -0
- package/dist/web/components/calendar/util.d.ts +13 -0
- package/dist/web/components/calendar/util.js +74 -0
- package/{src → dist}/web/components/carousel/index.css +11 -11
- package/dist/web/components/carousel/index.d.ts +41 -0
- package/dist/web/components/carousel/index.js +240 -0
- package/dist/web/components/chart/bar/index.d.ts +41 -0
- package/dist/web/components/chart/bar/index.js +56 -0
- package/dist/web/components/chart/common/config/bar.d.ts +48 -0
- package/dist/web/components/chart/common/config/bar.js +49 -0
- package/dist/web/components/chart/common/config/global.d.ts +13 -0
- package/dist/web/components/chart/common/config/global.js +16 -0
- package/dist/web/components/chart/common/config/line.d.ts +46 -0
- package/dist/web/components/chart/common/config/line.js +49 -0
- package/dist/web/components/chart/common/config/pie.d.ts +29 -0
- package/dist/web/components/chart/common/config/pie.js +36 -0
- package/dist/web/components/chart/common/core/eChartBar.d.ts +32 -0
- package/dist/web/components/chart/common/core/eChartBar.js +196 -0
- package/dist/web/components/chart/common/core/eChartBase.d.ts +128 -0
- package/dist/web/components/chart/common/core/eChartBase.js +346 -0
- package/dist/web/components/chart/common/core/eChartLine.d.ts +28 -0
- package/dist/web/components/chart/common/core/eChartLine.js +168 -0
- package/dist/web/components/chart/common/core/eChartPie.d.ts +28 -0
- package/dist/web/components/chart/common/core/eChartPie.js +132 -0
- package/dist/web/components/chart/common/core/type.d.ts +35 -0
- package/dist/web/components/chart/common/core/type.js +9 -0
- package/dist/web/components/chart/common/echarts.d.ts +2 -0
- package/{src/web/components/chart/common/echarts.ts → dist/web/components/chart/common/echarts.js} +12 -19
- package/dist/web/components/chart/common/useChart.d.ts +8 -0
- package/dist/web/components/chart/common/useChart.js +60 -0
- package/dist/web/components/chart/line/index.d.ts +39 -0
- package/dist/web/components/chart/line/index.js +53 -0
- package/dist/web/components/chart/pie/index.d.ts +27 -0
- package/dist/web/components/chart/pie/index.js +40 -0
- package/{src → dist}/web/components/chart/statisticsCard/index.css +12 -12
- package/dist/web/components/chart/statisticsCard/index.d.ts +85 -0
- package/dist/web/components/chart/statisticsCard/index.js +203 -0
- package/dist/web/components/chart/statisticsCard/interface.d.ts +13 -0
- package/dist/web/components/chart/statisticsCard/interface.js +1 -0
- package/dist/web/components/container/index.d.ts +6 -0
- package/dist/web/components/container/index.js +6 -0
- package/dist/web/components/dataView/index.d.ts +6 -0
- package/dist/web/components/dataView/index.js +8 -0
- package/{src/web/components/dataView/interface.ts → dist/web/components/dataView/interface.d.ts} +1 -2
- package/dist/web/components/dataView/interface.js +1 -0
- package/dist/web/components/drawer/index.d.ts +13 -0
- package/dist/web/components/drawer/index.js +12 -0
- package/dist/web/components/form/checkbox/index.d.ts +13 -0
- package/dist/web/components/form/checkbox/index.js +167 -0
- package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
- package/dist/web/components/form/enumSelect/MultipleSelect.js +52 -0
- package/dist/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
- package/dist/web/components/form/enumSelect/NormalSelect.js +52 -0
- package/dist/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
- package/dist/web/components/form/enumSelect/SelectContainer.js +30 -0
- package/dist/web/components/form/enumSelect/index.d.ts +82 -0
- package/{src/web/components/form/enumSelect/index.jsx → dist/web/components/form/enumSelect/index.js} +1 -4
- package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
- package/dist/web/components/form/enumSelect/props/defaultProps.js +40 -0
- package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
- package/dist/web/components/form/enumSelect/props/propsTypes.js +47 -0
- package/{src → dist}/web/components/form/form/index.css +2 -2
- package/dist/web/components/form/form/index.d.ts +13 -0
- package/dist/web/components/form/form/index.js +31 -0
- package/{src → dist}/web/components/form/formcell/index.css +14 -14
- package/dist/web/components/form/formcell/index.d.ts +8 -0
- package/dist/web/components/form/formcell/index.js +40 -0
- package/{src → dist}/web/components/form/input/index.css +3 -3
- package/dist/web/components/form/input/index.d.ts +14 -0
- package/dist/web/components/form/input/index.js +86 -0
- package/dist/web/components/form/location/common/mapChoose.css +477 -0
- package/dist/web/components/form/location/common/mapChoose.d.ts +15 -0
- package/dist/web/components/form/location/common/mapChoose.js +431 -0
- package/dist/web/components/form/location/common/mapView.d.ts +19 -0
- package/dist/web/components/form/location/common/mapView.js +170 -0
- package/dist/web/components/form/location/common/propsConfig.d.ts +62 -0
- package/dist/web/components/form/location/common/propsConfig.js +52 -0
- package/{src → dist}/web/components/form/location/common/selectModal.css +11 -10
- package/dist/web/components/form/location/common/selectModal.d.ts +21 -0
- package/dist/web/components/form/location/common/selectModal.js +44 -0
- package/dist/web/components/form/location/common/useLocationInfo.d.ts +34 -0
- package/dist/web/components/form/location/common/useLocationInfo.js +88 -0
- package/dist/web/components/form/location/components/LocationH5/index.css +100 -0
- package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
- package/dist/web/components/form/location/components/LocationH5/location.h5.js +347 -0
- package/dist/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
- package/dist/web/components/form/location/components/LocationPC/Header.js +43 -0
- package/{src → dist}/web/components/form/location/components/LocationPC/index.css +10 -14
- package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
- package/dist/web/components/form/location/components/LocationPC/location.PC.js +259 -0
- package/dist/web/components/form/location/constants.d.ts +2 -0
- package/{src → dist}/web/components/form/location/constants.js +0 -1
- package/dist/web/components/form/location/index.css +13 -0
- package/dist/web/components/form/location/index.d.ts +1 -0
- package/dist/web/components/form/location/index.js +17 -0
- package/{src → dist}/web/components/form/radio/index.css +0 -0
- package/dist/web/components/form/radio/index.d.ts +11 -0
- package/dist/web/components/form/radio/index.js +115 -0
- package/dist/web/components/form/renderDecorator.d.ts +6 -0
- package/dist/web/components/form/renderDecorator.js +20 -0
- package/dist/web/components/form/select/h5.d.ts +16 -0
- package/dist/web/components/form/select/h5.js +502 -0
- package/{src → dist}/web/components/form/select/index.css +4 -4
- package/dist/web/components/form/select/index.d.ts +65 -0
- package/dist/web/components/form/select/index.js +299 -0
- package/dist/web/components/form/select/region/index.d.ts +6 -0
- package/dist/web/components/form/select/region/index.js +147 -0
- package/dist/web/components/form/select/time.d.ts +9 -0
- package/dist/web/components/form/select/time.js +146 -0
- package/dist/web/components/form/select/year.d.ts +7 -0
- package/dist/web/components/form/select/year.js +72 -0
- package/dist/web/components/form/switch/index.d.ts +6 -0
- package/dist/web/components/form/switch/index.js +57 -0
- package/{src → dist}/web/components/form/textarea/index.css +1 -1
- package/dist/web/components/form/textarea/index.d.ts +12 -0
- package/dist/web/components/form/textarea/index.js +66 -0
- package/{src → dist}/web/components/form/tips/index.css +0 -0
- package/dist/web/components/form/tips/index.d.ts +8 -0
- package/dist/web/components/form/tips/index.js +17 -0
- package/{src → dist}/web/components/form/uploader/index.css +14 -14
- package/dist/web/components/form/uploader/index.d.ts +3 -0
- package/dist/web/components/form/uploader/index.js +42 -0
- package/dist/web/components/form/uploader/uploader.h5.d.ts +19 -0
- package/dist/web/components/form/uploader/uploader.h5.js +201 -0
- package/dist/web/components/form/uploader/uploader.pc.d.ts +29 -0
- package/dist/web/components/form/uploader/uploader.pc.js +182 -0
- package/{src → dist}/web/components/form/uploaderFile/index.css +62 -62
- package/dist/web/components/form/uploaderFile/index.d.ts +4 -0
- package/dist/web/components/form/uploaderFile/index.js +19 -0
- package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
- package/dist/web/components/form/uploaderFile/uploadFile.h5.js +315 -0
- package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
- package/dist/web/components/form/uploaderFile/uploadFile.pc.js +290 -0
- package/{src → dist}/web/components/graphicCard/index.css +15 -15
- package/dist/web/components/graphicCard/index.d.ts +31 -0
- package/dist/web/components/graphicCard/index.js +166 -0
- package/dist/web/components/image/image.d.ts +9 -0
- package/dist/web/components/image/image.js +119 -0
- package/{src → dist}/web/components/image/index.css +2 -2
- package/dist/web/components/image/index.d.ts +13 -0
- package/dist/web/components/image/index.js +91 -0
- package/dist/web/components/index.d.ts +47 -0
- package/{src → dist}/web/components/index.js +25 -26
- package/{src → dist}/web/components/link/index.css +0 -0
- package/dist/web/components/link/index.d.ts +24 -0
- package/dist/web/components/link/index.js +71 -0
- package/{src → dist}/web/components/listView/index.css +17 -17
- package/dist/web/components/listView/index.d.ts +7 -0
- package/dist/web/components/listView/index.js +262 -0
- package/dist/web/components/listView/interface.d.ts +122 -0
- package/dist/web/components/listView/interface.js +1 -0
- package/{src → dist}/web/components/lottery/index.css +98 -72
- package/dist/web/components/lottery/index.d.ts +22 -0
- package/dist/web/components/lottery/index.js +390 -0
- package/dist/web/components/lottery/lotteryUtil.d.ts +23 -0
- package/dist/web/components/lottery/lotteryUtil.js +180 -0
- package/dist/web/components/modal/h5.css +53 -0
- package/dist/web/components/modal/index.d.ts +17 -0
- package/dist/web/components/modal/index.js +11 -0
- package/dist/web/components/modal/modal.h5.d.ts +4 -0
- package/dist/web/components/modal/modal.h5.js +46 -0
- package/dist/web/components/modal/modal.pc.d.ts +3 -0
- package/dist/web/components/modal/modal.pc.js +31 -0
- package/{src → dist}/web/components/navLayout/index.css +15 -15
- package/dist/web/components/navLayout/index.d.ts +46 -0
- package/dist/web/components/navLayout/index.js +116 -0
- package/dist/web/components/navigationBar/common.d.ts +15 -0
- package/dist/web/components/navigationBar/common.js +127 -0
- package/dist/web/components/navigationBar/h5Menu.d.ts +14 -0
- package/dist/web/components/navigationBar/h5Menu.js +72 -0
- package/dist/web/components/navigationBar/horizontalMenu.d.ts +12 -0
- package/dist/web/components/navigationBar/horizontalMenu.js +99 -0
- package/{src → dist}/web/components/navigationBar/index.css +66 -66
- package/dist/web/components/navigationBar/index.d.ts +13 -0
- package/dist/web/components/navigationBar/index.js +157 -0
- package/dist/web/components/navigationBar/verticalMenu.d.ts +13 -0
- package/dist/web/components/navigationBar/verticalMenu.js +38 -0
- package/dist/web/components/phone/index.d.ts +18 -0
- package/dist/web/components/phone/index.js +4 -0
- package/dist/web/components/phoneCode/index.d.ts +18 -0
- package/dist/web/components/phoneCode/index.js +4 -0
- package/dist/web/components/picker/datePicker.d.ts +10 -0
- package/dist/web/components/picker/datePicker.js +31 -0
- package/dist/web/components/picker/picker.d.ts +6 -0
- package/dist/web/components/picker/picker.js +45 -0
- package/dist/web/components/picker/timePicker.d.ts +7 -0
- package/dist/web/components/picker/timePicker.js +42 -0
- package/dist/web/components/richText/const.d.ts +1 -0
- package/dist/web/components/richText/const.js +2 -0
- package/{src → dist}/web/components/richText/index.css +3 -3
- package/dist/web/components/richText/index.d.ts +51 -0
- package/dist/web/components/richText/index.js +295 -0
- package/{src → dist}/web/components/richTextView/index.css +8 -8
- package/dist/web/components/richTextView/index.d.ts +7 -0
- package/dist/web/components/richTextView/index.js +44 -0
- package/dist/web/components/scrollView/index.d.ts +27 -0
- package/dist/web/components/scrollView/index.js +95 -0
- package/dist/web/components/share/index.d.ts +34 -0
- package/dist/web/components/share/index.js +4 -0
- package/dist/web/components/slot/index.d.ts +6 -0
- package/dist/web/components/slot/index.js +9 -0
- package/{src → dist}/web/components/swiper/index.css +10 -10
- package/dist/web/components/swiper/index.d.ts +24 -0
- package/dist/web/components/swiper/index.js +149 -0
- package/{src → dist}/web/components/tabs/index.css +6 -6
- package/dist/web/components/tabs/index.d.ts +13 -0
- package/dist/web/components/tabs/index.js +15 -0
- package/dist/web/components/tabs/tabs.h5.d.ts +4 -0
- package/dist/web/components/tabs/tabs.h5.js +42 -0
- package/dist/web/components/tabs/tabs.pc.d.ts +3 -0
- package/dist/web/components/tabs/tabs.pc.js +40 -0
- package/{src → dist}/web/components/text/index.css +6 -6
- package/dist/web/components/text/index.d.ts +14 -0
- package/dist/web/components/text/index.js +17 -0
- package/{src → dist}/web/components/uploaderFileView/index.css +0 -0
- package/dist/web/components/uploaderFileView/index.d.ts +10 -0
- package/dist/web/components/uploaderFileView/index.js +61 -0
- package/{src → dist}/web/components/uploaderView/index.css +5 -5
- package/dist/web/components/uploaderView/index.d.ts +17 -0
- package/dist/web/components/uploaderView/index.js +48 -0
- package/dist/web/components/userInfo/index.d.ts +26 -0
- package/dist/web/components/userInfo/index.js +4 -0
- package/{src → dist}/web/components/wedaVideo/index.css +2 -2
- package/dist/web/components/wedaVideo/index.d.ts +17 -0
- package/dist/web/components/wedaVideo/index.js +159 -0
- package/dist/web/index.d.ts +8 -0
- package/{src → dist}/web/index.js +1 -1
- package/dist/web/utils/classnames.d.ts +2 -0
- package/dist/web/utils/classnames.js +37 -0
- package/dist/web/utils/constant.d.ts +23 -0
- package/dist/web/utils/constant.js +24 -0
- package/dist/web/utils/debounce.d.ts +2 -0
- package/dist/web/utils/debounce.js +92 -0
- package/dist/web/utils/events.d.ts +1 -0
- package/{src → dist}/web/utils/events.js +1 -1
- package/dist/web/utils/getLocalCounter.d.ts +1 -0
- package/{src → dist}/web/utils/getLocalCounter.js +1 -2
- package/dist/web/utils/isObjectEqual.d.ts +2 -0
- package/dist/web/utils/isObjectEqual.js +12 -0
- package/dist/web/utils/loading-fallback.d.ts +2 -0
- package/dist/web/utils/loading-fallback.js +2 -0
- package/dist/web/utils/lodash.d.ts +1 -0
- package/{src/mp → dist/web}/utils/lodash.js +0 -0
- package/dist/web/utils/platform.d.ts +18 -0
- package/dist/web/utils/platform.js +191 -0
- package/dist/web/utils/tcb.d.ts +23 -0
- package/dist/web/utils/tcb.js +82 -0
- package/dist/web/utils/tmap.d.ts +3 -0
- package/dist/web/utils/tmap.js +21 -0
- package/dist/web/utils/useSetState.d.ts +1 -0
- package/dist/web/utils/useSetState.js +8 -0
- package/dist/web/utils/useSyncValue.d.ts +4 -0
- package/dist/web/utils/useSyncValue.js +15 -0
- package/dist/web/utils/weui.d.ts +1 -0
- package/{src → dist}/web/utils/weui.js +0 -1
- package/{src → dist}/web/weda-ui.css +2 -2
- package/package.json +22 -22
- package/src/configs/actions/showModal.json +0 -48
- package/src/configs/actions/showToast.json +0 -41
- package/src/configs/components/auth.json +0 -16
- package/src/configs/components/button.json +0 -239
- package/src/configs/components/calendar.json +0 -81
- package/src/configs/components/carousel.json +0 -292
- package/src/configs/components/chart/bar.json +0 -721
- package/src/configs/components/chart/line.json +0 -674
- package/src/configs/components/chart/pie.json +0 -494
- package/src/configs/components/chart/statisticsCard.json +0 -376
- package/src/configs/components/container.json +0 -50
- package/src/configs/components/dataView.json +0 -151
- package/src/configs/components/drawer.json +0 -115
- package/src/configs/components/form/checkbox.json +0 -173
- package/src/configs/components/form/form.json +0 -45
- package/src/configs/components/form/input.json +0 -154
- package/src/configs/components/form/label.json +0 -22
- package/src/configs/components/form/location.json +0 -155
- package/src/configs/components/form/radio.json +0 -203
- package/src/configs/components/form/richText.json +0 -125
- package/src/configs/components/form/select.json +0 -411
- package/src/configs/components/form/switch.json +0 -58
- package/src/configs/components/form/textarea.json +0 -116
- package/src/configs/components/form/tips.json +0 -34
- package/src/configs/components/form/uploader.json +0 -169
- package/src/configs/components/form/uploaderFile.json +0 -158
- package/src/configs/components/graphicCard.json +0 -413
- package/src/configs/components/image.json +0 -179
- package/src/configs/components/link.json +0 -79
- package/src/configs/components/listView.json +0 -281
- package/src/configs/components/lottery.json +0 -157
- package/src/configs/components/modal.json +0 -83
- package/src/configs/components/navLayout.json +0 -368
- package/src/configs/components/navigationBar.json +0 -62
- package/src/configs/components/picker/datePicker.json +0 -33
- package/src/configs/components/picker/picker.json +0 -18
- package/src/configs/components/picker/timePicker.json +0 -23
- package/src/configs/components/richtextview.json +0 -26
- package/src/configs/components/scrollVeiw.json +0 -253
- package/src/configs/components/slot.json +0 -17
- package/src/configs/components/swiper.json +0 -90
- package/src/configs/components/tabs.json +0 -121
- package/src/configs/components/text.json +0 -95
- package/src/configs/components/wedaVideo.json +0 -89
- package/src/configs/components/wxOpenApi/phone.json +0 -127
- package/src/configs/components/wxOpenApi/phoneCode.json +0 -109
- package/src/configs/components/wxOpenApi/share.json +0 -157
- package/src/configs/components/wxOpenApi/userInfo.json +0 -156
- package/src/mp/README.md +0 -1
- package/src/mp/actions/showModal/index.js +0 -3
- package/src/mp/actions/showToast/index.js +0 -3
- package/src/mp/components/button/index.js +0 -91
- package/src/mp/components/button/index.json +0 -4
- package/src/mp/components/button/index.wxml +0 -22
- package/src/mp/components/button/index.wxss +0 -13
- package/src/mp/components/calendar/arrowright--line.svg +0 -11
- package/src/mp/components/calendar/index.js +0 -268
- package/src/mp/components/calendar/index.json +0 -5
- package/src/mp/components/calendar/index.wxml +0 -35
- package/src/mp/components/calendar/index.wxss +0 -179
- package/src/mp/components/carousel/index.js +0 -88
- package/src/mp/components/carousel/index.json +0 -7
- package/src/mp/components/carousel/index.wxml +0 -6
- package/src/mp/components/chart/bar/index.js +0 -257
- package/src/mp/components/chart/bar/index.json +0 -6
- package/src/mp/components/chart/bar/index.wxml +0 -3
- package/src/mp/components/chart/bar/index.wxss +0 -9
- package/src/mp/components/chart/common/config/bar.js +0 -50
- package/src/mp/components/chart/common/config/global.js +0 -16
- package/src/mp/components/chart/common/config/line.js +0 -48
- package/src/mp/components/chart/common/config/pie.js +0 -36
- package/src/mp/components/chart/common/core/eChartBar.js +0 -258
- package/src/mp/components/chart/common/core/eChartBase.js +0 -389
- package/src/mp/components/chart/common/core/eChartLine.js +0 -223
- package/src/mp/components/chart/common/core/eChartPie.js +0 -169
- package/src/mp/components/chart/common/lib/echarts.min.js +0 -18
- package/src/mp/components/chart/ec-canvas/ec-canvas.js +0 -277
- package/src/mp/components/chart/ec-canvas/ec-canvas.json +0 -4
- package/src/mp/components/chart/ec-canvas/ec-canvas.wxml +0 -4
- package/src/mp/components/chart/ec-canvas/ec-canvas.wxss +0 -4
- package/src/mp/components/chart/ec-canvas/wx-canvas.js +0 -109
- package/src/mp/components/chart/line/index.js +0 -247
- package/src/mp/components/chart/line/index.json +0 -6
- package/src/mp/components/chart/line/index.wxml +0 -3
- package/src/mp/components/chart/line/index.wxss +0 -9
- package/src/mp/components/chart/pie/index.js +0 -182
- package/src/mp/components/chart/pie/index.json +0 -6
- package/src/mp/components/chart/pie/index.wxml +0 -3
- package/src/mp/components/chart/pie/index.wxss +0 -9
- package/src/mp/components/chart/statisticsCard/index.js +0 -253
- package/src/mp/components/chart/statisticsCard/index.json +0 -4
- package/src/mp/components/chart/statisticsCard/index.wxml +0 -9
- package/src/mp/components/chart/statisticsCard/index.wxss +0 -42
- package/src/mp/components/container/index.js +0 -20
- package/src/mp/components/container/index.json +0 -4
- package/src/mp/components/container/index.wxml +0 -3
- package/src/mp/components/dataView/index.js +0 -34
- package/src/mp/components/dataView/index.json +0 -7
- package/src/mp/components/dataView/index.wxml +0 -3
- package/src/mp/components/dataView/index.wxss +0 -0
- package/src/mp/components/form/checkbox/index.js +0 -124
- package/src/mp/components/form/checkbox/index.json +0 -7
- package/src/mp/components/form/checkbox/index.wxml +0 -13
- package/src/mp/components/form/checkbox/index.wxss +0 -1
- package/src/mp/components/form/form/index.js +0 -18
- package/src/mp/components/form/form/index.json +0 -4
- package/src/mp/components/form/form/index.wxml +0 -5
- package/src/mp/components/form/form/index.wxss +0 -1
- package/src/mp/components/form/formcell/index.js +0 -54
- package/src/mp/components/form/formcell/index.json +0 -4
- package/src/mp/components/form/formcell/index.wxml +0 -11
- package/src/mp/components/form/formcell/index.wxss +0 -31
- package/src/mp/components/form/input/index.js +0 -110
- package/src/mp/components/form/input/index.json +0 -7
- package/src/mp/components/form/input/index.wxml +0 -24
- package/src/mp/components/form/input/index.wxss +0 -22
- package/src/mp/components/form/location/components/mapChoose/index.js +0 -201
- package/src/mp/components/form/location/components/mapChoose/index.json +0 -4
- package/src/mp/components/form/location/components/mapChoose/index.wxml +0 -42
- package/src/mp/components/form/location/components/mapChoose/index.wxss +0 -188
- package/src/mp/components/form/location/index.js +0 -388
- package/src/mp/components/form/location/index.json +0 -6
- package/src/mp/components/form/location/index.wxml +0 -21
- package/src/mp/components/form/location/index.wxss +0 -89
- package/src/mp/components/form/radio/index.js +0 -124
- package/src/mp/components/form/radio/index.json +0 -7
- package/src/mp/components/form/radio/index.wxml +0 -13
- package/src/mp/components/form/radio/index.wxss +0 -1
- package/src/mp/components/form/select/index.js +0 -677
- package/src/mp/components/form/select/index.json +0 -7
- package/src/mp/components/form/select/index.wxml +0 -12
- package/src/mp/components/form/select/index.wxss +0 -16
- package/src/mp/components/form/select/region/index.js +0 -107
- package/src/mp/components/form/switch/index.js +0 -75
- package/src/mp/components/form/switch/index.json +0 -7
- package/src/mp/components/form/switch/index.wxml +0 -11
- package/src/mp/components/form/switch/index.wxss +0 -1
- package/src/mp/components/form/textarea/index.js +0 -90
- package/src/mp/components/form/textarea/index.json +0 -7
- package/src/mp/components/form/textarea/index.wxml +0 -8
- package/src/mp/components/form/textarea/index.wxss +0 -10
- package/src/mp/components/form/tips/index.js +0 -41
- package/src/mp/components/form/tips/index.json +0 -4
- package/src/mp/components/form/tips/index.wxml +0 -1
- package/src/mp/components/form/tips/index.wxss +0 -1
- package/src/mp/components/form/uploader/index.js +0 -158
- package/src/mp/components/form/uploader/index.json +0 -10
- package/src/mp/components/form/uploader/index.wxml +0 -14
- package/src/mp/components/form/uploader/index.wxss +0 -36
- package/src/mp/components/form/uploader/weui-uploader.js +0 -219
- package/src/mp/components/form/uploader/weui-uploader.json +0 -7
- package/src/mp/components/form/uploader/weui-uploader.wxml +0 -45
- package/src/mp/components/form/uploader/weui-uploader.wxss +0 -1
- package/src/mp/components/form/uploaderFile/index.js +0 -313
- package/src/mp/components/form/uploaderFile/index.json +0 -9
- package/src/mp/components/form/uploaderFile/index.wxml +0 -45
- package/src/mp/components/form/uploaderFile/index.wxss +0 -105
- package/src/mp/components/graphicCard/chevron-right.svg +0 -3
- package/src/mp/components/graphicCard/index.js +0 -203
- package/src/mp/components/graphicCard/index.json +0 -4
- package/src/mp/components/graphicCard/index.wxml +0 -25
- package/src/mp/components/graphicCard/index.wxss +0 -157
- package/src/mp/components/image/index.js +0 -182
- package/src/mp/components/image/index.json +0 -7
- package/src/mp/components/image/index.wxml +0 -9
- package/src/mp/components/image/index.wxss +0 -49
- package/src/mp/components/listView/arrow-right-line.svg +0 -3
- package/src/mp/components/listView/index.js +0 -274
- package/src/mp/components/listView/index.json +0 -4
- package/src/mp/components/listView/index.wxml +0 -38
- package/src/mp/components/listView/index.wxss +0 -155
- package/src/mp/components/listView/more-line.svg +0 -3
- package/src/mp/components/lottery/index.js +0 -270
- package/src/mp/components/lottery/index.json +0 -4
- package/src/mp/components/lottery/index.wxml +0 -41
- package/src/mp/components/lottery/index.wxss +0 -323
- package/src/mp/components/modal/index.js +0 -39
- package/src/mp/components/modal/index.json +0 -4
- package/src/mp/components/modal/index.wxml +0 -1
- package/src/mp/components/navLayout/index.js +0 -120
- package/src/mp/components/navLayout/index.json +0 -7
- package/src/mp/components/navLayout/index.wxml +0 -23
- package/src/mp/components/navLayout/index.wxss +0 -1193
- package/src/mp/components/navigationBar/index.js +0 -193
- package/src/mp/components/navigationBar/index.json +0 -5
- package/src/mp/components/navigationBar/index.wxml +0 -80
- package/src/mp/components/navigationBar/index.wxss +0 -1257
- package/src/mp/components/richText/index.js +0 -67
- package/src/mp/components/richText/index.json +0 -4
- package/src/mp/components/richText/index.wxml +0 -3
- package/src/mp/components/richText/index.wxss +0 -27
- package/src/mp/components/scrollView/index.js +0 -119
- package/src/mp/components/scrollView/index.json +0 -4
- package/src/mp/components/scrollView/index.wxml +0 -38
- package/src/mp/components/slot/index.js +0 -20
- package/src/mp/components/slot/index.json +0 -4
- package/src/mp/components/slot/index.wxml +0 -3
- package/src/mp/components/swiper/index.js +0 -65
- package/src/mp/components/swiper/index.json +0 -4
- package/src/mp/components/swiper/index.wxml +0 -3
- package/src/mp/components/tabs/index.js +0 -59
- package/src/mp/components/tabs/index.json +0 -4
- package/src/mp/components/tabs/index.wxml +0 -12
- package/src/mp/components/tabs/index.wxss +0 -57
- package/src/mp/components/text/index.js +0 -40
- package/src/mp/components/text/index.json +0 -4
- package/src/mp/components/text/index.wxml +0 -1
- package/src/mp/components/text/index.wxss +0 -26
- package/src/mp/components/wedaVideo/index.js +0 -86
- package/src/mp/components/wedaVideo/index.json +0 -4
- package/src/mp/components/wedaVideo/index.wxml +0 -4
- package/src/mp/components/wedaVideo/index.wxss +0 -20
- package/src/mp/components/wxOpenApi/phone/index.js +0 -109
- package/src/mp/components/wxOpenApi/phone/index.json +0 -4
- package/src/mp/components/wxOpenApi/phone/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/phone/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/phoneCode/index.js +0 -89
- package/src/mp/components/wxOpenApi/phoneCode/index.json +0 -4
- package/src/mp/components/wxOpenApi/phoneCode/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/phoneCode/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/share/index.js +0 -117
- package/src/mp/components/wxOpenApi/share/index.json +0 -4
- package/src/mp/components/wxOpenApi/share/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/share/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/userInfo/index.js +0 -88
- package/src/mp/components/wxOpenApi/userInfo/index.json +0 -4
- package/src/mp/components/wxOpenApi/userInfo/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/userInfo/index.wxss +0 -22
- package/src/mp/index.json +0 -52
- package/src/mp/package.json +0 -6
- package/src/mp/style/weda-ui.wxss +0 -71
- package/src/mp/utils/classnames.js +0 -39
- package/src/mp/utils/constant.js +0 -20
- package/src/mp/utils/dayjs.min.js +0 -1
- package/src/mp/utils/debounce.js +0 -133
- package/src/mp/utils/deepEqual.js +0 -42
- package/src/mp/utils/destr.js +0 -49
- package/src/mp/utils/dr_square_point.js +0 -29
- package/src/mp/utils/handleEvents.js +0 -32
- package/src/mp/utils/platform.js +0 -45
- package/src/mp/utils/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js +0 -1336
- package/src/mp/utils/spark-md5.js +0 -776
- package/src/mp/utils/tcb.js +0 -76
- package/src/setupTests.js +0 -14
- package/src/web/actions/showModal/index.tsx +0 -118
- package/src/web/actions/showToast/index.js +0 -3
- package/src/web/components/auth/index.css +0 -0
- package/src/web/components/auth/index.js +0 -66
- package/src/web/components/button/index.tsx +0 -119
- package/src/web/components/calendar/index.jsx +0 -312
- package/src/web/components/calendar/util.js +0 -90
- package/src/web/components/carousel/index.tsx +0 -417
- package/src/web/components/chart/bar/index.tsx +0 -140
- package/src/web/components/chart/common/config/bar.js +0 -49
- package/src/web/components/chart/common/config/global.js +0 -16
- package/src/web/components/chart/common/config/line.js +0 -50
- package/src/web/components/chart/common/config/pie.js +0 -37
- package/src/web/components/chart/common/core/eChartBar.js +0 -259
- package/src/web/components/chart/common/core/eChartBase.ts +0 -396
- package/src/web/components/chart/common/core/eChartLine.js +0 -225
- package/src/web/components/chart/common/core/eChartPie.js +0 -173
- package/src/web/components/chart/common/core/type.ts +0 -34
- package/src/web/components/chart/common/echart.css +0 -106
- package/src/web/components/chart/common/useChart.tsx +0 -87
- package/src/web/components/chart/line/index.tsx +0 -136
- package/src/web/components/chart/pie/index.tsx +0 -99
- package/src/web/components/chart/statisticsCard/index.tsx +0 -307
- package/src/web/components/chart/statisticsCard/interface.ts +0 -14
- package/src/web/components/container/index.tsx +0 -34
- package/src/web/components/dataView/index.tsx +0 -20
- package/src/web/components/drawer/index.tsx +0 -68
- package/src/web/components/form/checkbox/index.tsx +0 -210
- package/src/web/components/form/enumSelect/MultipleSelect.jsx +0 -89
- package/src/web/components/form/enumSelect/NormalSelect.tsx +0 -92
- package/src/web/components/form/enumSelect/SelectContainer.jsx +0 -43
- package/src/web/components/form/enumSelect/props/defaultProps.js +0 -39
- package/src/web/components/form/enumSelect/props/propsTypes.js +0 -50
- package/src/web/components/form/form/index.tsx +0 -51
- package/src/web/components/form/formcell/index.tsx +0 -85
- package/src/web/components/form/input/index.tsx +0 -166
- package/src/web/components/form/location/common/mapChoose.css +0 -180
- package/src/web/components/form/location/common/mapChoose.jsx +0 -343
- package/src/web/components/form/location/common/mapView.jsx +0 -190
- package/src/web/components/form/location/common/propsConfig.js +0 -54
- package/src/web/components/form/location/common/selectModal.jsx +0 -73
- package/src/web/components/form/location/common/useLocationInfo.js +0 -104
- package/src/web/components/form/location/components/LocationH5/index.css +0 -239
- package/src/web/components/form/location/components/LocationH5/location.h5.jsx +0 -413
- package/src/web/components/form/location/components/LocationPC/Header.jsx +0 -96
- package/src/web/components/form/location/components/LocationPC/location.PC.jsx +0 -332
- package/src/web/components/form/location/index.css +0 -0
- package/src/web/components/form/location/index.jsx +0 -25
- package/src/web/components/form/radio/index.tsx +0 -179
- package/src/web/components/form/renderDecorator.tsx +0 -28
- package/src/web/components/form/select/h5.tsx +0 -602
- package/src/web/components/form/select/index.tsx +0 -510
- package/src/web/components/form/select/region/index.ts +0 -152
- package/src/web/components/form/select/time.jsx +0 -145
- package/src/web/components/form/select/year.tsx +0 -172
- package/src/web/components/form/switch/index.tsx +0 -100
- package/src/web/components/form/textarea/index.tsx +0 -127
- package/src/web/components/form/tips/index.tsx +0 -34
- package/src/web/components/form/types.d.ts +0 -12
- package/src/web/components/form/uploader/index.tsx +0 -65
- package/src/web/components/form/uploader/uploader.h5.tsx +0 -290
- package/src/web/components/form/uploader/uploader.pc.tsx +0 -287
- package/src/web/components/form/uploaderFile/fail.svg +0 -12
- package/src/web/components/form/uploaderFile/index.jsx +0 -25
- package/src/web/components/form/uploaderFile/pending.svg +0 -18
- package/src/web/components/form/uploaderFile/success.svg +0 -12
- package/src/web/components/form/uploaderFile/uploadFile.h5.tsx +0 -606
- package/src/web/components/form/uploaderFile/uploadFile.pc.tsx +0 -520
- package/src/web/components/graphicCard/index.tsx +0 -310
- package/src/web/components/image/image.tsx +0 -187
- package/src/web/components/image/index.tsx +0 -121
- package/src/web/components/link/index.tsx +0 -119
- package/src/web/components/listView/arrow-right-line.svg +0 -3
- package/src/web/components/listView/index.tsx +0 -346
- package/src/web/components/listView/interface.ts +0 -98
- package/src/web/components/lottery/index.tsx +0 -567
- package/src/web/components/lottery/lotteryUtil.ts +0 -130
- package/src/web/components/modal/index.tsx +0 -60
- package/src/web/components/navLayout/index.tsx +0 -247
- package/src/web/components/navigationBar/chevron-right--double.svg +0 -3
- package/src/web/components/navigationBar/common.tsx +0 -198
- package/src/web/components/navigationBar/h5Menu.tsx +0 -179
- package/src/web/components/navigationBar/horizontalMenu.tsx +0 -200
- package/src/web/components/navigationBar/index.tsx +0 -230
- package/src/web/components/navigationBar/type.d.ts +0 -111
- package/src/web/components/navigationBar/verticalMenu.tsx +0 -81
- package/src/web/components/phone/index.css +0 -0
- package/src/web/components/phone/index.tsx +0 -22
- package/src/web/components/phoneCode/index.css +0 -0
- package/src/web/components/phoneCode/index.tsx +0 -22
- package/src/web/components/picker/datePicker.tsx +0 -48
- package/src/web/components/picker/picker.tsx +0 -59
- package/src/web/components/picker/timePicker.tsx +0 -56
- package/src/web/components/richText/const.ts +0 -3
- package/src/web/components/richText/index.jsx +0 -473
- package/src/web/components/richTextView/index.tsx +0 -63
- package/src/web/components/scrollView/index.tsx +0 -148
- package/src/web/components/share/index.css +0 -0
- package/src/web/components/share/index.tsx +0 -38
- package/src/web/components/slot/index.tsx +0 -19
- package/src/web/components/swiper/index.tsx +0 -291
- package/src/web/components/tabs/index.tsx +0 -35
- package/src/web/components/tabs/tabs.h5.tsx +0 -84
- package/src/web/components/tabs/tabs.pc.tsx +0 -74
- package/src/web/components/text/index.tsx +0 -60
- package/src/web/components/uploaderFileView/index.jsx +0 -84
- package/src/web/components/uploaderView/index.tsx +0 -92
- package/src/web/components/userInfo/index.css +0 -0
- package/src/web/components/userInfo/index.tsx +0 -30
- package/src/web/components/wedaVideo/index.tsx +0 -208
- package/src/web/types.d.ts +0 -21
- package/src/web/utils/classnames.js +0 -39
- package/src/web/utils/constant.ts +0 -23
- package/src/web/utils/debounce.js +0 -98
- package/src/web/utils/isObjectEqual.js +0 -15
- package/src/web/utils/loading-fallback.tsx +0 -2
- package/src/web/utils/lodash.ts +0 -2
- package/src/web/utils/platform.js +0 -156
- package/src/web/utils/tcb.js +0 -86
- package/src/web/utils/tmap.js +0 -4
- package/src/web/utils/useSetState.ts +0 -18
- 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
|
+
};
|