@cloudbase/weda-ui 3.2.1 → 3.3.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/dist/src/configs/components/chart/bar.json +9 -1
- package/dist/src/configs/components/chart/line.json +8 -0
- package/dist/src/configs/components/chart/pie.json +8 -0
- package/dist/src/web/actions/showModal/index.js +0 -1
- package/dist/src/web/components/calendar/index.js +39 -37
- package/dist/src/web/components/carousel/index.js +62 -62
- package/dist/src/web/components/chart/bar/index.js +6 -2
- package/dist/src/web/components/chart/common/Chart.d.ts +1 -0
- package/dist/src/web/components/chart/common/Chart.js +9 -1
- package/dist/src/web/components/chart/common/chart-custom-connector.js +1 -1
- package/dist/src/web/components/chart/common/core/eChartBase.js +1 -1
- package/dist/src/web/components/chart/common/data-transform.js +3 -1
- package/dist/src/web/components/chart/common/useChart.js +13 -2
- package/dist/src/web/components/chart/line/index.js +2 -2
- package/dist/src/web/components/chart/pie/index.js +2 -2
- package/dist/src/web/components/common/error-boundary.d.ts +5 -0
- package/dist/src/web/components/common/error-boundary.js +33 -0
- package/dist/src/web/components/common/use-loop-render-detect.d.ts +11 -0
- package/dist/src/web/components/common/use-loop-render-detect.js +124 -0
- package/dist/src/web/components/form/checkbox/index.js +29 -29
- package/dist/src/web/components/form/form/index.js +39 -26
- package/dist/src/web/components/form/input/index.js +11 -3
- package/dist/src/web/components/form/location/common/mapChoose.js +6 -5
- package/dist/src/web/components/form/location/common/mapView.js +9 -6
- package/dist/src/web/{utils → components/form/location/common}/tmap.d.ts +0 -0
- package/dist/src/web/{utils → components/form/location/common}/tmap.js +0 -0
- package/dist/src/web/components/form/location/common/useLocationInfo.js +3 -2
- package/dist/src/web/components/form/location/components/LocationH5/location.h5.js +6 -3
- package/dist/src/web/components/form/location/components/LocationPC/location.PC.js +5 -1
- package/dist/src/web/components/form/location/index.js +7 -0
- package/dist/src/web/components/form/radio/index.js +3 -3
- package/dist/src/web/components/form/select/allTimePicker/index.js +1 -0
- package/dist/src/web/components/form/select/h5.js +18 -4
- package/dist/src/web/components/form/select/index.js +15 -1
- package/dist/src/web/components/form/select/use-options.js +1 -1
- package/dist/src/web/components/form/uploader/uploader.h5.js +2 -2
- package/dist/src/web/components/form/uploader/uploader.pc.js +1 -1
- package/dist/src/web/components/form/uploaderFile/uploadFile.h5.js +9 -7
- package/dist/src/web/components/form/uploaderFile/uploadFile.pc.js +9 -6
- package/dist/src/web/components/form/userOrgSelect/comTool.js +3 -9
- package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +47 -34
- package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +1 -1
- package/dist/src/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +35 -36
- package/dist/src/web/{utils → components/form/userOrgSelect}/getUserService.d.ts +0 -0
- package/dist/src/web/{utils → components/form/userOrgSelect}/getUserService.js +8 -5
- package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +3 -2
- package/dist/src/web/components/form/userOrgSelect/userTreeSelect.h5.js +42 -20
- package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +1 -1
- package/dist/src/web/components/form/userOrgSelect/userTreeSelect.pc.js +111 -129
- package/dist/src/web/components/form/userOrgSelect/utils.d.ts +3 -2
- package/dist/src/web/components/form/userOrgSelect/utils.js +24 -16
- package/dist/src/web/components/formdetail/index.js +14 -11
- package/dist/src/web/components/graphicCard/index.js +5 -6
- package/dist/src/web/components/image/index.js +1 -1
- package/dist/src/web/components/listView/index.js +1 -0
- package/dist/src/web/components/lottery/index.js +10 -16
- package/dist/src/web/components/navLayout/index.js +1 -1
- package/dist/src/web/components/navigationBar/horizontalMenu.js +1 -1
- package/dist/src/web/components/navigationBar/index.js +13 -8
- package/dist/src/web/components/richText/index.js +1 -2
- package/dist/src/web/components/richTextView/index.js +20 -18
- package/dist/src/web/components/scrollView/index.d.ts +1 -2
- package/dist/src/web/components/scrollView/index.js +7 -5
- package/dist/src/web/components/swiper/index.js +62 -62
- package/dist/src/web/components/tabs/index.js +6 -1
- package/dist/src/web/components/tabs/tabs.h5.js +2 -0
- package/dist/src/web/components/text/index.js +10 -8
- package/dist/src/web/components/uploaderFileView/index.js +1 -1
- package/dist/src/web/components/uploaderView/index.js +1 -1
- package/dist/src/web/components/wedaVideo/index.js +15 -3
- package/dist/src/web/utils/console.d.ts +3 -0
- package/dist/src/web/utils/console.js +26 -0
- package/dist/src/web/utils/platform.js +1 -1
- package/dist/src/web/utils/tcb.js +1 -1
- package/dist/src/web/utils/useSyncValue.js +1 -0
- package/dist/web/components/form/input/index.css +16 -0
- package/dist/web/components/form/userOrgSelect/userOrgSelect.css +4 -0
- package/package.json +22 -22
- package/dist/configs/actions/showModal.json +0 -48
- package/dist/configs/actions/showToast.json +0 -41
- package/dist/configs/components/auth.json +0 -16
- package/dist/configs/components/button.json +0 -239
- package/dist/configs/components/calendar.json +0 -81
- package/dist/configs/components/carousel.json +0 -292
- package/dist/configs/components/chart/bar.json +0 -728
- package/dist/configs/components/chart/line.json +0 -681
- package/dist/configs/components/chart/pie.json +0 -500
- package/dist/configs/components/chart/statisticsCard.json +0 -376
- package/dist/configs/components/container.json +0 -50
- package/dist/configs/components/dataView.json +0 -239
- package/dist/configs/components/drawer.json +0 -115
- package/dist/configs/components/form/checkbox.json +0 -179
- package/dist/configs/components/form/departTreeSelect.json +0 -124
- package/dist/configs/components/form/form.json +0 -69
- package/dist/configs/components/form/input.json +0 -154
- package/dist/configs/components/form/location.json +0 -216
- package/dist/configs/components/form/radio.json +0 -203
- package/dist/configs/components/form/richText.json +0 -133
- package/dist/configs/components/form/select.json +0 -431
- package/dist/configs/components/form/switch.json +0 -58
- package/dist/configs/components/form/textarea.json +0 -116
- package/dist/configs/components/form/tips.json +0 -34
- package/dist/configs/components/form/uploader.json +0 -171
- package/dist/configs/components/form/uploaderFile.json +0 -158
- package/dist/configs/components/form/userTreeSelect.json +0 -128
- package/dist/configs/components/formdetail.json +0 -105
- package/dist/configs/components/graphicCard.json +0 -413
- package/dist/configs/components/image.json +0 -187
- package/dist/configs/components/link.json +0 -79
- package/dist/configs/components/listView.json +0 -378
- package/dist/configs/components/lottery.json +0 -163
- package/dist/configs/components/modal.json +0 -72
- package/dist/configs/components/navLayout.json +0 -368
- package/dist/configs/components/navigationBar.json +0 -62
- package/dist/configs/components/richtextview.json +0 -26
- package/dist/configs/components/scrollVeiw.json +0 -253
- package/dist/configs/components/slot.json +0 -17
- package/dist/configs/components/swiper.json +0 -90
- package/dist/configs/components/tabs.json +0 -122
- package/dist/configs/components/text.json +0 -95
- package/dist/configs/components/wedaVideo.json +0 -89
- package/dist/configs/components/wxOpenApi/phone.json +0 -127
- package/dist/configs/components/wxOpenApi/phoneCode.json +0 -109
- package/dist/configs/components/wxOpenApi/share.json +0 -160
- package/dist/configs/components/wxOpenApi/userInfo.json +0 -156
- package/dist/configs/index.d.ts +0 -103
- package/dist/configs/index.js +0 -111
- package/dist/docs/common/format.d.ts +0 -13
- package/dist/docs/common/format.js +0 -122
- package/dist/docs/common/tableView.d.ts +0 -30
- package/dist/docs/common/tableView.js +0 -159
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -3
- package/dist/setupTests.d.ts +0 -1
- package/dist/setupTests.js +0 -14
- package/dist/src/web/components/chart/common/error-boundary.d.ts +0 -5
- package/dist/src/web/components/chart/common/error-boundary.js +0 -26
- package/dist/web/actions/index.d.ts +0 -2
- package/dist/web/actions/index.js +0 -2
- package/dist/web/actions/showModal/index.d.ts +0 -4
- package/dist/web/actions/showModal/index.js +0 -67
- package/dist/web/actions/showToast/index.d.ts +0 -1
- package/dist/web/actions/showToast/index.js +0 -3
- package/dist/web/components/button/index.d.ts +0 -32
- package/dist/web/components/button/index.js +0 -48
- package/dist/web/components/calendar/index.d.ts +0 -19
- package/dist/web/components/calendar/index.js +0 -189
- package/dist/web/components/calendar/util.d.ts +0 -13
- package/dist/web/components/calendar/util.js +0 -74
- package/dist/web/components/carousel/index.d.ts +0 -41
- package/dist/web/components/carousel/index.js +0 -244
- package/dist/web/components/chart/bar/index.d.ts +0 -41
- package/dist/web/components/chart/bar/index.js +0 -56
- package/dist/web/components/chart/common/config/bar.d.ts +0 -48
- package/dist/web/components/chart/common/config/bar.js +0 -49
- package/dist/web/components/chart/common/config/global.d.ts +0 -13
- package/dist/web/components/chart/common/config/global.js +0 -16
- package/dist/web/components/chart/common/config/line.d.ts +0 -46
- package/dist/web/components/chart/common/config/line.js +0 -49
- package/dist/web/components/chart/common/config/pie.d.ts +0 -29
- package/dist/web/components/chart/common/config/pie.js +0 -36
- package/dist/web/components/chart/common/core/eChartBar.d.ts +0 -68
- package/dist/web/components/chart/common/core/eChartBar.js +0 -198
- package/dist/web/components/chart/common/core/eChartBase.d.ts +0 -128
- package/dist/web/components/chart/common/core/eChartBase.js +0 -352
- package/dist/web/components/chart/common/core/eChartLine.d.ts +0 -62
- package/dist/web/components/chart/common/core/eChartLine.js +0 -170
- package/dist/web/components/chart/common/core/eChartPie.d.ts +0 -50
- package/dist/web/components/chart/common/core/eChartPie.js +0 -132
- package/dist/web/components/chart/common/core/type.d.ts +0 -35
- package/dist/web/components/chart/common/core/type.js +0 -9
- package/dist/web/components/chart/common/echarts.d.ts +0 -2
- package/dist/web/components/chart/common/echarts.js +0 -24
- package/dist/web/components/chart/common/useChart.d.ts +0 -8
- package/dist/web/components/chart/common/useChart.js +0 -60
- package/dist/web/components/chart/line/index.d.ts +0 -39
- package/dist/web/components/chart/line/index.js +0 -53
- package/dist/web/components/chart/pie/index.d.ts +0 -27
- package/dist/web/components/chart/pie/index.js +0 -40
- package/dist/web/components/chart/statisticsCard/index.d.ts +0 -85
- package/dist/web/components/chart/statisticsCard/index.js +0 -203
- package/dist/web/components/chart/statisticsCard/interface.d.ts +0 -13
- package/dist/web/components/chart/statisticsCard/interface.js +0 -1
- package/dist/web/components/container/index.d.ts +0 -6
- package/dist/web/components/container/index.js +0 -6
- package/dist/web/components/dataView/index.d.ts +0 -6
- package/dist/web/components/dataView/index.js +0 -8
- package/dist/web/components/dataView/interface.d.ts +0 -5
- package/dist/web/components/dataView/interface.js +0 -1
- package/dist/web/components/drawer/index.d.ts +0 -13
- package/dist/web/components/drawer/index.js +0 -12
- package/dist/web/components/form/checkbox/index.d.ts +0 -13
- package/dist/web/components/form/checkbox/index.js +0 -167
- package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +0 -78
- package/dist/web/components/form/enumSelect/MultipleSelect.js +0 -52
- package/dist/web/components/form/enumSelect/NormalSelect.d.ts +0 -83
- package/dist/web/components/form/enumSelect/NormalSelect.js +0 -52
- package/dist/web/components/form/enumSelect/SelectContainer.d.ts +0 -16
- package/dist/web/components/form/enumSelect/SelectContainer.js +0 -30
- package/dist/web/components/form/enumSelect/index.d.ts +0 -82
- package/dist/web/components/form/enumSelect/index.js +0 -6
- package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +0 -34
- package/dist/web/components/form/enumSelect/props/defaultProps.js +0 -40
- package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +0 -39
- package/dist/web/components/form/enumSelect/props/propsTypes.js +0 -47
- package/dist/web/components/form/form/index.d.ts +0 -32
- package/dist/web/components/form/form/index.js +0 -108
- package/dist/web/components/form/formcell/index.d.ts +0 -8
- package/dist/web/components/form/formcell/index.js +0 -40
- package/dist/web/components/form/input/index.d.ts +0 -14
- package/dist/web/components/form/input/index.js +0 -86
- package/dist/web/components/form/location/common/mapChoose.d.ts +0 -15
- package/dist/web/components/form/location/common/mapChoose.js +0 -495
- package/dist/web/components/form/location/common/mapView.d.ts +0 -19
- package/dist/web/components/form/location/common/mapView.js +0 -172
- package/dist/web/components/form/location/common/propsConfig.d.ts +0 -59
- package/dist/web/components/form/location/common/propsConfig.js +0 -50
- package/dist/web/components/form/location/common/selectModal.d.ts +0 -21
- package/dist/web/components/form/location/common/selectModal.js +0 -44
- package/dist/web/components/form/location/common/useLocationInfo.d.ts +0 -36
- package/dist/web/components/form/location/common/useLocationInfo.js +0 -104
- package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +0 -8
- package/dist/web/components/form/location/components/LocationH5/location.h5.js +0 -325
- package/dist/web/components/form/location/components/LocationPC/Header.d.ts +0 -12
- package/dist/web/components/form/location/components/LocationPC/Header.js +0 -43
- package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +0 -8
- package/dist/web/components/form/location/components/LocationPC/location.PC.js +0 -224
- package/dist/web/components/form/location/constants.d.ts +0 -2
- package/dist/web/components/form/location/constants.js +0 -3
- package/dist/web/components/form/location/index.d.ts +0 -1
- package/dist/web/components/form/location/index.js +0 -17
- package/dist/web/components/form/radio/index.d.ts +0 -11
- package/dist/web/components/form/radio/index.js +0 -115
- package/dist/web/components/form/renderDecorator.d.ts +0 -6
- package/dist/web/components/form/renderDecorator.js +0 -20
- package/dist/web/components/form/select/dropdown-select/ui.d.ts +0 -15
- package/dist/web/components/form/select/dropdown-select/ui.js +0 -55
- package/dist/web/components/form/select/h5.d.ts +0 -16
- package/dist/web/components/form/select/h5.js +0 -410
- package/dist/web/components/form/select/index.d.ts +0 -65
- package/dist/web/components/form/select/index.js +0 -232
- package/dist/web/components/form/select/region/index.d.ts +0 -6
- package/dist/web/components/form/select/region/index.js +0 -147
- package/dist/web/components/form/select/time.d.ts +0 -9
- package/dist/web/components/form/select/time.js +0 -146
- package/dist/web/components/form/select/use-options.d.ts +0 -26
- package/dist/web/components/form/select/use-options.js +0 -103
- package/dist/web/components/form/select/year.d.ts +0 -7
- package/dist/web/components/form/select/year.js +0 -72
- package/dist/web/components/form/switch/index.d.ts +0 -6
- package/dist/web/components/form/switch/index.js +0 -58
- package/dist/web/components/form/textarea/index.d.ts +0 -12
- package/dist/web/components/form/textarea/index.js +0 -66
- package/dist/web/components/form/tips/index.d.ts +0 -8
- package/dist/web/components/form/tips/index.js +0 -17
- package/dist/web/components/form/uploader/index.d.ts +0 -3
- package/dist/web/components/form/uploader/index.js +0 -42
- package/dist/web/components/form/uploader/uploader.h5.d.ts +0 -20
- package/dist/web/components/form/uploader/uploader.h5.js +0 -224
- package/dist/web/components/form/uploader/uploader.pc.d.ts +0 -29
- package/dist/web/components/form/uploader/uploader.pc.js +0 -214
- package/dist/web/components/form/uploaderFile/index.d.ts +0 -4
- package/dist/web/components/form/uploaderFile/index.js +0 -19
- package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +0 -23
- package/dist/web/components/form/uploaderFile/uploadFile.h5.js +0 -337
- package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +0 -24
- package/dist/web/components/form/uploaderFile/uploadFile.pc.js +0 -313
- package/dist/web/components/form/userOrgSelect/comTool.d.ts +0 -7
- package/dist/web/components/form/userOrgSelect/comTool.js +0 -89
- package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.d.ts +0 -20
- package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +0 -259
- package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.d.ts +0 -4
- package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +0 -153
- package/dist/web/components/form/userOrgSelect/departTreeSelect/index.d.ts +0 -2
- package/dist/web/components/form/userOrgSelect/departTreeSelect/index.js +0 -17
- package/dist/web/components/form/userOrgSelect/index.d.ts +0 -2
- package/dist/web/components/form/userOrgSelect/index.js +0 -17
- package/dist/web/components/form/userOrgSelect/userOrgSelect.less +0 -643
- package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.d.ts +0 -24
- package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +0 -276
- package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.d.ts +0 -9
- package/dist/web/components/form/userOrgSelect/userTreeSelect.pc.js +0 -229
- package/dist/web/components/form/userOrgSelect/utils.d.ts +0 -35
- package/dist/web/components/form/userOrgSelect/utils.js +0 -72
- package/dist/web/components/formdetail/index.d.ts +0 -28
- package/dist/web/components/formdetail/index.js +0 -170
- package/dist/web/components/graphicCard/index.d.ts +0 -31
- package/dist/web/components/graphicCard/index.js +0 -166
- package/dist/web/components/image/image.d.ts +0 -9
- package/dist/web/components/image/image.js +0 -119
- package/dist/web/components/image/index.d.ts +0 -13
- package/dist/web/components/image/index.js +0 -91
- package/dist/web/components/index.d.ts +0 -50
- package/dist/web/components/index.js +0 -97
- package/dist/web/components/link/index.d.ts +0 -24
- package/dist/web/components/link/index.js +0 -71
- package/dist/web/components/listView/index.d.ts +0 -7
- package/dist/web/components/listView/index.js +0 -286
- package/dist/web/components/listView/interface.d.ts +0 -127
- package/dist/web/components/listView/interface.js +0 -1
- package/dist/web/components/lottery/index.d.ts +0 -22
- package/dist/web/components/lottery/index.js +0 -391
- package/dist/web/components/lottery/lotteryUtil.d.ts +0 -23
- package/dist/web/components/lottery/lotteryUtil.js +0 -181
- package/dist/web/components/modal/index.d.ts +0 -17
- package/dist/web/components/modal/index.js +0 -11
- package/dist/web/components/modal/modal.h5.d.ts +0 -4
- package/dist/web/components/modal/modal.h5.js +0 -46
- package/dist/web/components/modal/modal.pc.d.ts +0 -3
- package/dist/web/components/modal/modal.pc.js +0 -31
- package/dist/web/components/navLayout/index.d.ts +0 -46
- package/dist/web/components/navLayout/index.js +0 -116
- package/dist/web/components/navigationBar/common.d.ts +0 -15
- package/dist/web/components/navigationBar/common.js +0 -127
- package/dist/web/components/navigationBar/h5Menu.d.ts +0 -14
- package/dist/web/components/navigationBar/h5Menu.js +0 -72
- package/dist/web/components/navigationBar/horizontalMenu.d.ts +0 -12
- package/dist/web/components/navigationBar/horizontalMenu.js +0 -99
- package/dist/web/components/navigationBar/index.d.ts +0 -13
- package/dist/web/components/navigationBar/index.js +0 -157
- package/dist/web/components/navigationBar/verticalMenu.d.ts +0 -13
- package/dist/web/components/navigationBar/verticalMenu.js +0 -38
- package/dist/web/components/phone/index.d.ts +0 -18
- package/dist/web/components/phone/index.js +0 -4
- package/dist/web/components/phoneCode/index.d.ts +0 -18
- package/dist/web/components/phoneCode/index.js +0 -4
- package/dist/web/components/picker/datePicker.d.ts +0 -10
- package/dist/web/components/picker/datePicker.js +0 -31
- package/dist/web/components/picker/picker.d.ts +0 -6
- package/dist/web/components/picker/picker.js +0 -45
- package/dist/web/components/picker/timePicker.d.ts +0 -7
- package/dist/web/components/picker/timePicker.js +0 -42
- package/dist/web/components/richText/const.d.ts +0 -1
- package/dist/web/components/richText/const.js +0 -2
- package/dist/web/components/richText/index.d.ts +0 -50
- package/dist/web/components/richText/index.js +0 -352
- package/dist/web/components/richTextView/index.d.ts +0 -7
- package/dist/web/components/richTextView/index.js +0 -44
- package/dist/web/components/scrollView/index.d.ts +0 -27
- package/dist/web/components/scrollView/index.js +0 -95
- package/dist/web/components/share/index.d.ts +0 -34
- package/dist/web/components/share/index.js +0 -4
- package/dist/web/components/slot/index.d.ts +0 -6
- package/dist/web/components/slot/index.js +0 -9
- package/dist/web/components/swiper/index.d.ts +0 -24
- package/dist/web/components/swiper/index.js +0 -153
- package/dist/web/components/tabs/index.d.ts +0 -13
- package/dist/web/components/tabs/index.js +0 -15
- package/dist/web/components/tabs/tabs.h5.d.ts +0 -4
- package/dist/web/components/tabs/tabs.h5.js +0 -42
- package/dist/web/components/tabs/tabs.pc.d.ts +0 -3
- package/dist/web/components/tabs/tabs.pc.js +0 -40
- package/dist/web/components/text/index.d.ts +0 -14
- package/dist/web/components/text/index.js +0 -17
- package/dist/web/components/uploaderFileView/index.d.ts +0 -10
- package/dist/web/components/uploaderFileView/index.js +0 -61
- package/dist/web/components/uploaderView/index.d.ts +0 -17
- package/dist/web/components/uploaderView/index.js +0 -48
- package/dist/web/components/userInfo/index.d.ts +0 -26
- package/dist/web/components/userInfo/index.js +0 -4
- package/dist/web/components/wedaVideo/index.d.ts +0 -17
- package/dist/web/components/wedaVideo/index.js +0 -160
- package/dist/web/index.d.ts +0 -8
- package/dist/web/index.js +0 -4
- package/dist/web/utils/classnames.d.ts +0 -2
- package/dist/web/utils/classnames.js +0 -37
- package/dist/web/utils/constant.d.ts +0 -23
- package/dist/web/utils/constant.js +0 -24
- package/dist/web/utils/debounce.d.ts +0 -2
- package/dist/web/utils/debounce.js +0 -92
- package/dist/web/utils/getLocalCounter.d.ts +0 -1
- package/dist/web/utils/getLocalCounter.js +0 -4
- package/dist/web/utils/getUserService.d.ts +0 -17
- package/dist/web/utils/getUserService.js +0 -148
- package/dist/web/utils/isObjectEqual.d.ts +0 -2
- package/dist/web/utils/isObjectEqual.js +0 -12
- package/dist/web/utils/loading-fallback.d.ts +0 -2
- package/dist/web/utils/loading-fallback.js +0 -2
- package/dist/web/utils/lodash.d.ts +0 -1
- package/dist/web/utils/lodash.js +0 -2
- package/dist/web/utils/platform.d.ts +0 -18
- package/dist/web/utils/platform.js +0 -193
- package/dist/web/utils/tcb.d.ts +0 -27
- package/dist/web/utils/tcb.js +0 -105
- package/dist/web/utils/tmap.d.ts +0 -3
- package/dist/web/utils/tmap.js +0 -21
- package/dist/web/utils/use-cloud-id-temp-url.d.ts +0 -1
- package/dist/web/utils/use-cloud-id-temp-url.js +0 -13
- package/dist/web/utils/useSetState.d.ts +0 -1
- package/dist/web/utils/useSetState.js +0 -8
- package/dist/web/utils/useSyncValue.d.ts +0 -4
- package/dist/web/utils/useSyncValue.js +0 -15
- package/dist/web/utils/weui.d.ts +0 -1
- package/dist/web/utils/weui.js +0 -2
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { useAsync, useDeepCompareEffect } from '@react-hookz/web';
|
|
2
|
-
import destr from 'destr';
|
|
3
|
-
import { useCallback, useEffect } from 'react';
|
|
4
|
-
import { getWhereList } from '../../../utils/platform';
|
|
5
|
-
import { callDataSource as tcbCallDataSource, callWedaApi as tcbCallWedaApi, } from '../../../utils/tcb';
|
|
6
|
-
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
7
|
-
const formatNeedDataFetch = ['father-son', 'related', 'x-enum'];
|
|
8
|
-
export function useOptions(params) {
|
|
9
|
-
const { format, controlledValue, callDataSource = tcbCallDataSource, callWedaApi = tcbCallWedaApi, ...restOptions } = params;
|
|
10
|
-
// 获取自定义选项集
|
|
11
|
-
const fetchEnumData = useCallback(async (param) => {
|
|
12
|
-
var _a, _b, _c;
|
|
13
|
-
const data = await callWedaApi({
|
|
14
|
-
action: 'DescribeGeneralOptionsDetailList',
|
|
15
|
-
data: param,
|
|
16
|
-
});
|
|
17
|
-
const config = (_c = destr((_b = (_a = data === null || data === void 0 ? void 0 : data.Items) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Config)) !== null && _c !== void 0 ? _c : [];
|
|
18
|
-
const enumOption = config.map((item) => {
|
|
19
|
-
return {
|
|
20
|
-
label: item.value,
|
|
21
|
-
value: item.key,
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
return enumOption;
|
|
25
|
-
}, [callWedaApi]);
|
|
26
|
-
const fetchData = useCallback(async (param) => {
|
|
27
|
-
let pageNo = 1;
|
|
28
|
-
const pageSize = 200;
|
|
29
|
-
let records = [];
|
|
30
|
-
let total = 99999;
|
|
31
|
-
for (let index = 0; index < Math.floor(total / pageSize) + 1; index++) {
|
|
32
|
-
const data = await callDataSource({
|
|
33
|
-
dataSourceName: param.dataSourceName,
|
|
34
|
-
viewId: param.viewId,
|
|
35
|
-
methodName: param.methodName,
|
|
36
|
-
params: {
|
|
37
|
-
pageNo: pageNo,
|
|
38
|
-
pageSize: pageSize,
|
|
39
|
-
where: param.params,
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
pageNo = pageNo + 1;
|
|
43
|
-
if (data === null || data === void 0 ? void 0 : data.records) {
|
|
44
|
-
total = (data === null || data === void 0 ? void 0 : data.total) || 0;
|
|
45
|
-
records = records.concat(data === null || data === void 0 ? void 0 : data.records);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return records;
|
|
49
|
-
}, [callDataSource]);
|
|
50
|
-
const [options, setOptions] = useSyncValue(controlledValue);
|
|
51
|
-
const [state, actions] = useAsync(async () => {
|
|
52
|
-
if (format === 'father-son' || format === 'related') {
|
|
53
|
-
const { dataSourceName, viewId, where, primaryField } = restOptions;
|
|
54
|
-
const whereEffected = [].concat(getWhereList(where));
|
|
55
|
-
const results = await fetchData({
|
|
56
|
-
dataSourceName,
|
|
57
|
-
viewId,
|
|
58
|
-
methodName: 'wedaGetRecords',
|
|
59
|
-
params: whereEffected,
|
|
60
|
-
});
|
|
61
|
-
if (primaryField) {
|
|
62
|
-
if (results && results.length !== 0) {
|
|
63
|
-
const option = results.map((item) => {
|
|
64
|
-
return {
|
|
65
|
-
label: item[primaryField] || item._id,
|
|
66
|
-
value: item._id,
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
|
-
return option;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
// 留一个空的weui才正常
|
|
73
|
-
return [{ label: '', value: '' }];
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return results.map((opt) => ({
|
|
77
|
-
label: opt._id,
|
|
78
|
-
value: opt._id,
|
|
79
|
-
})); // 兜底 正常来说一定有primaryField
|
|
80
|
-
}
|
|
81
|
-
if (format === 'x-enum') {
|
|
82
|
-
// 如果绑定字段类型为枚举,且传入自定义选项集的名称则默认使用自定义选项集的内容作为选项
|
|
83
|
-
const { enumName } = restOptions;
|
|
84
|
-
return fetchEnumData({
|
|
85
|
-
OptNameList: [enumName],
|
|
86
|
-
PageIndex: 1,
|
|
87
|
-
PageSize: 10,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}, []);
|
|
91
|
-
useDeepCompareEffect(() => {
|
|
92
|
-
if (formatNeedDataFetch.includes(format)) {
|
|
93
|
-
actions.execute();
|
|
94
|
-
}
|
|
95
|
-
// @ts-ignore not check
|
|
96
|
-
}, [format, restOptions.enumName, restOptions.where]);
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
if (state.status === 'success') {
|
|
99
|
-
setOptions(state.result);
|
|
100
|
-
}
|
|
101
|
-
}, [state, state.status]);
|
|
102
|
-
return [options];
|
|
103
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { Popover, ConfigProvider, useConfig, Input, Icon, Button, } from 'tea-component';
|
|
3
|
-
import classNames from '../../../utils/classnames';
|
|
4
|
-
import { moment } from './index';
|
|
5
|
-
import './index.css';
|
|
6
|
-
/**
|
|
7
|
-
* pc 版简易年份选择器
|
|
8
|
-
* 传参与 DatePicker 保持一致
|
|
9
|
-
*/
|
|
10
|
-
export default function YearPicker(props) {
|
|
11
|
-
const { range = [], disabled, value, onChange, className, placeholder, size, ...rest } = props;
|
|
12
|
-
const { classPrefix } = useConfig();
|
|
13
|
-
const inputRef = React.useRef(null);
|
|
14
|
-
const [show, setShow] = React.useState(false);
|
|
15
|
-
const [page, setPage] = React.useState(0);
|
|
16
|
-
const [inputValue, setInputValue] = React.useState(transValueToYear(value));
|
|
17
|
-
const { pageYears, pageStart, pageEnd } = getYears(inputValue, page);
|
|
18
|
-
const [min, max] = [
|
|
19
|
-
transValueToYear(range === null || range === void 0 ? void 0 : range[0]),
|
|
20
|
-
transValueToYear(range === null || range === void 0 ? void 0 : range[1]),
|
|
21
|
-
];
|
|
22
|
-
React.useEffect(() => {
|
|
23
|
-
setInputValue(transValueToYear(value));
|
|
24
|
-
}, [value]);
|
|
25
|
-
return (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
|
|
26
|
-
React.createElement(Popover, { trigger: "click", visible: show, onVisibleChange: (v) => !v && setShow(v), overlay: React.createElement("div", { className: classNames(`${classPrefix}-dropdown-box`, 'year-picker__overlay') },
|
|
27
|
-
React.createElement("div", { className: classNames(`${classPrefix}-calendar__caption`, 'year-picker__header') },
|
|
28
|
-
React.createElement("div", { className: "year-picker__header-title" },
|
|
29
|
-
pageStart,
|
|
30
|
-
"-",
|
|
31
|
-
pageEnd),
|
|
32
|
-
React.createElement("div", { className: "year-picker__header-actions" },
|
|
33
|
-
React.createElement(Button, { type: "link", icon: "arrowleft", title: "\u4E0A\u4E8C\u5341\u5E74", onClick: () => setPage((d) => d - 1) }),
|
|
34
|
-
React.createElement(Button, { type: "link", icon: "cur-active", title: "\u5F53\u524D\u4E8C\u5341\u5E74", onClick: () => setPage(0) }),
|
|
35
|
-
React.createElement(Button, { type: "link", icon: "arrowright", title: "\u4E0B\u4E8C\u5341\u5E74", onClick: () => setPage((d) => d + 1) }))),
|
|
36
|
-
React.createElement("div", { className: classNames(`${classPrefix}-calendar__type--year`, 'year-picker__body') }, pageYears.map((list) => (React.createElement("div", { key: list.join(), className: classNames(`${classPrefix}-calendar__row`) }, list.map((item) => {
|
|
37
|
-
const isSelected = item === inputValue;
|
|
38
|
-
const isDisabled = (min && Number(item) < Number(min)) ||
|
|
39
|
-
(max && Number(item) > Number(max));
|
|
40
|
-
return (React.createElement("div", { key: item, className: classNames(`${classPrefix}-calendar__cell`, 'year-picker__cell', {
|
|
41
|
-
'is-selected': isSelected,
|
|
42
|
-
'is-disabled': isDisabled,
|
|
43
|
-
}), onClick: () => {
|
|
44
|
-
if (isDisabled)
|
|
45
|
-
return;
|
|
46
|
-
setShow(false);
|
|
47
|
-
setInputValue(item);
|
|
48
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(moment(item));
|
|
49
|
-
} },
|
|
50
|
-
React.createElement("span", null, item)));
|
|
51
|
-
})))))) },
|
|
52
|
-
React.createElement("div", { ...rest, onClick: () => !disabled && setShow(true), className: classNames(`${classPrefix}-datepicker`, className) },
|
|
53
|
-
React.createElement("div", { className: classNames(`${classPrefix}-datepicker__input`) },
|
|
54
|
-
React.createElement(Input, { size: size, ref: inputRef, disabled: disabled, placeholder: placeholder, value: inputValue, onFocus: () => inputRef.current.blur() }),
|
|
55
|
-
React.createElement(Icon, { type: "dismiss" }))))));
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 获取当前20年,page 表示分页,1表示下一页,-1表示上一页
|
|
59
|
-
* @returns [][]
|
|
60
|
-
*/
|
|
61
|
-
const getYears = (currentYear, page = 0, range = []) => {
|
|
62
|
-
currentYear = currentYear || new Date().getFullYear();
|
|
63
|
-
const startYear = (Math.floor(parseInt(currentYear) / 20) + page) * 20;
|
|
64
|
-
const pageYears = Array.from({ length: 5 }).map((item, i1) => Array.from({ length: 4 }).map((item, i2) => i1 * 4 + i2 + startYear + ''));
|
|
65
|
-
return { pageYears, pageStart: startYear, pageEnd: startYear + 20 - 1 };
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* 输入 moment 值转 string 年份
|
|
69
|
-
*/
|
|
70
|
-
const transValueToYear = (val) => {
|
|
71
|
-
return moment.isMoment(val) ? val.format('YYYY') : '';
|
|
72
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { CommonFormPropsType } from '../types';
|
|
3
|
-
export default function Switch({ id, className, style, events, label, labelVisible, checked: defaultChecked, layout, disabled, requiredFlag, decorator, }: PropsType): JSX.Element;
|
|
4
|
-
export interface PropsType extends CommonFormPropsType {
|
|
5
|
-
checked?: boolean;
|
|
6
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import classNames from '../../../utils/classnames';
|
|
3
|
-
import getLocalCounter from '../../../utils/getLocalCounter';
|
|
4
|
-
import { usePlatform } from '../../../utils/platform';
|
|
5
|
-
import { ConfigProvider, Switch as TeaSwitch } from 'tea-component';
|
|
6
|
-
import { renderDecorator } from '../renderDecorator';
|
|
7
|
-
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
8
|
-
import { emptyObject } from '../../../utils/constant';
|
|
9
|
-
import styles from './switch.module.css';
|
|
10
|
-
export default function Switch({
|
|
11
|
-
// 系统属性
|
|
12
|
-
id, className, style, events = emptyObject,
|
|
13
|
-
// 组件属性
|
|
14
|
-
label = '标题', labelVisible = true, checked: defaultChecked, layout = 'horizontal', disabled = false, requiredFlag = false, decorator, }) {
|
|
15
|
-
const isFlex = layout !== 'vertical';
|
|
16
|
-
const cls = classNames({
|
|
17
|
-
'weda-ui': true,
|
|
18
|
-
'weda-switch': true,
|
|
19
|
-
[className]: className,
|
|
20
|
-
});
|
|
21
|
-
const subCls = classNames({
|
|
22
|
-
'weui-cell': true,
|
|
23
|
-
'weui-cell_active': true,
|
|
24
|
-
'weui-cell_switch': true,
|
|
25
|
-
'weui-flex__item': isFlex,
|
|
26
|
-
'weui-cell_disabled': disabled,
|
|
27
|
-
});
|
|
28
|
-
const platform = usePlatform();
|
|
29
|
-
// 两次默认值不同时, 需要刷新
|
|
30
|
-
const [checked, setChecked] = useSyncValue(defaultChecked);
|
|
31
|
-
// 现在低码组件往源码组件传入的id不唯一, 暂时使用hashcode替代
|
|
32
|
-
const hashcode = getLocalCounter();
|
|
33
|
-
const _id = `switch-${hashcode}`;
|
|
34
|
-
const switchElement = platform === 'h5' ? (React.createElement("div", { className: subCls },
|
|
35
|
-
isFlex ? React.createElement("div", { className: "weui-cell__bd" }) : null,
|
|
36
|
-
React.createElement("div", { className: isFlex ? 'weui-cell__ft' : 'weui-cell__bd' },
|
|
37
|
-
React.createElement("label", { htmlFor: _id, key: _id, className: "weui-switch-cp" },
|
|
38
|
-
React.createElement("input", { id: _id, className: `weui-switch-cp__input ${styles.wedaSwitchInput}`, type: "checkbox", checked: checked, disabled: disabled, onChange: (ev) => {
|
|
39
|
-
const value = ev.target.checked;
|
|
40
|
-
setChecked(value);
|
|
41
|
-
events.change({ value }, { orgianalEvent: ev });
|
|
42
|
-
} }),
|
|
43
|
-
React.createElement("div", { className: "weui-switch-cp__box" }))))) : (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
|
|
44
|
-
React.createElement(TeaSwitch, { id: _id, value: checked, disabled: disabled, onChange: (value, context) => {
|
|
45
|
-
const originEvent = context.event;
|
|
46
|
-
setChecked(value);
|
|
47
|
-
events.change({ value }, { originEvent });
|
|
48
|
-
} })));
|
|
49
|
-
return renderDecorator(switchElement, decorator)({
|
|
50
|
-
id,
|
|
51
|
-
className: cls,
|
|
52
|
-
style,
|
|
53
|
-
label: labelVisible ? label : null,
|
|
54
|
-
layout,
|
|
55
|
-
multiCell: false,
|
|
56
|
-
requiredFlag,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import './index.css';
|
|
3
|
-
import type { CommonFormPropsType } from '../types';
|
|
4
|
-
export default function Textarea({ id, className, style, events, label, labelVisible, defaultValue, placeholder, maxLength, disabled, focus: autoFocus, layout, requiredFlag, counterVisible, size, decorator, }: PropsType): JSX.Element;
|
|
5
|
-
export interface PropsType extends CommonFormPropsType {
|
|
6
|
-
defaultValue?: string;
|
|
7
|
-
placeholder?: string;
|
|
8
|
-
maxLength?: number;
|
|
9
|
-
focus?: boolean;
|
|
10
|
-
counterVisible?: boolean;
|
|
11
|
-
size?: 's' | 'm' | 'l' | 'full';
|
|
12
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import classNames from '../../../utils/classnames';
|
|
3
|
-
import './index.css';
|
|
4
|
-
import { ConfigProvider, Input } from 'tea-component';
|
|
5
|
-
import { usePlatform } from '../../../utils/platform';
|
|
6
|
-
import { renderDecorator } from '../renderDecorator';
|
|
7
|
-
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
8
|
-
import { emptyObject } from '../../../utils/constant';
|
|
9
|
-
export default function Textarea({
|
|
10
|
-
// 系统属性
|
|
11
|
-
id, className, style, events = emptyObject,
|
|
12
|
-
// 组件属性
|
|
13
|
-
label = '标题', labelVisible = true, defaultValue = '', placeholder = '请输入', maxLength = 140, disabled = false, focus: autoFocus = false, layout = 'horizontal', requiredFlag = false, counterVisible = true, size = 'l', decorator, }) {
|
|
14
|
-
const platform = usePlatform();
|
|
15
|
-
const cls = classNames({
|
|
16
|
-
'weda-ui': true,
|
|
17
|
-
'weda-textarea': true,
|
|
18
|
-
[className]: className,
|
|
19
|
-
});
|
|
20
|
-
const subCls = classNames({
|
|
21
|
-
'weui-cell': true,
|
|
22
|
-
'weui-cell_active': true,
|
|
23
|
-
'weui-cell_form': true,
|
|
24
|
-
'weui-cell_disabled': disabled,
|
|
25
|
-
});
|
|
26
|
-
// 两次默认值不同时, 需要刷新value
|
|
27
|
-
const [value, setValue] = useSyncValue(defaultValue);
|
|
28
|
-
const counter = React.useMemo(() => (value === null || value === void 0 ? void 0 : value.length) || 0, [value]);
|
|
29
|
-
const onChange = function (e) {
|
|
30
|
-
const text = typeof e === 'string' ? e : e.target.value;
|
|
31
|
-
setValue(text);
|
|
32
|
-
events.change({ value: text });
|
|
33
|
-
};
|
|
34
|
-
const onFocus = function (e) {
|
|
35
|
-
var _a;
|
|
36
|
-
(_a = events.focus) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
|
|
37
|
-
};
|
|
38
|
-
const onBlur = function (e) {
|
|
39
|
-
var _a;
|
|
40
|
-
(_a = events.blur) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
|
|
41
|
-
};
|
|
42
|
-
let textAreaElement;
|
|
43
|
-
if (platform === 'h5') {
|
|
44
|
-
textAreaElement = (React.createElement("div", { className: subCls },
|
|
45
|
-
React.createElement("div", { className: "weui-cell__bd" },
|
|
46
|
-
React.createElement("textarea", { className: "weui-textarea", placeholder: placeholder, value: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, disabled: disabled, autoFocus: autoFocus }),
|
|
47
|
-
counterVisible ? (React.createElement("div", { className: "weui-textarea-counter" },
|
|
48
|
-
React.createElement("span", null, counter),
|
|
49
|
-
"/",
|
|
50
|
-
maxLength)) : null)));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
textAreaElement = (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
|
|
54
|
-
React.createElement(Input.TextArea, { size: size, placeholder: placeholder, value: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, disabled: disabled, autoFocus: autoFocus, showCount: true })));
|
|
55
|
-
}
|
|
56
|
-
return renderDecorator(textAreaElement, decorator)({
|
|
57
|
-
id,
|
|
58
|
-
className: cls,
|
|
59
|
-
style,
|
|
60
|
-
label: labelVisible ? label : null,
|
|
61
|
-
layout,
|
|
62
|
-
multiCell: false,
|
|
63
|
-
requiredFlag,
|
|
64
|
-
size,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { CommonPropsType } from '../../../types';
|
|
3
|
-
import './index.css';
|
|
4
|
-
export default function Tips({ className, tips, type, id, style, }: PropsType): JSX.Element;
|
|
5
|
-
export interface PropsType extends CommonPropsType {
|
|
6
|
-
tips?: string;
|
|
7
|
-
type?: 'warn' | 'normal';
|
|
8
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import classNames from '../../../utils/classnames';
|
|
3
|
-
import './index.css';
|
|
4
|
-
export default function Tips({
|
|
5
|
-
// 系统属性
|
|
6
|
-
className,
|
|
7
|
-
// 组件属性
|
|
8
|
-
tips = '表单提示', type = 'normal', id, style, }) {
|
|
9
|
-
const cls = classNames({
|
|
10
|
-
'weda-ui': true,
|
|
11
|
-
'weda-tips': true,
|
|
12
|
-
'weui-cells__tips': !!tips,
|
|
13
|
-
'weui-cells__tips_warn': !!tips && type === 'warn',
|
|
14
|
-
[className]: className,
|
|
15
|
-
});
|
|
16
|
-
return (React.createElement("div", { className: cls, id: id, style: style }, tips));
|
|
17
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/prop-types */
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { usePlatform } from '../../../utils/platform';
|
|
4
|
-
import { ImageUploaderH5 as UploaderH5 } from './uploader.h5';
|
|
5
|
-
import classNames from '../../../utils/classnames';
|
|
6
|
-
import { UploaderPCInner } from './uploader.pc';
|
|
7
|
-
import './index.css';
|
|
8
|
-
import { renderDecorator } from '../renderDecorator';
|
|
9
|
-
/**
|
|
10
|
-
* 图片组件上传,区分 h5端/pc端
|
|
11
|
-
*/
|
|
12
|
-
function UploaderPc(props) {
|
|
13
|
-
const { layout, className, id, style, labelVisible = true, title = '上传图片', requiredFlag = false, decorator, ...restProps } = props;
|
|
14
|
-
const cls = classNames({
|
|
15
|
-
'weda-ui': true,
|
|
16
|
-
[className]: className,
|
|
17
|
-
cloudbase_standard: true,
|
|
18
|
-
});
|
|
19
|
-
return renderDecorator(React.createElement(UploaderPCInner, { ...restProps, style: {
|
|
20
|
-
height: '100%',
|
|
21
|
-
display: 'flex',
|
|
22
|
-
alignItems: 'center',
|
|
23
|
-
} }), decorator)({
|
|
24
|
-
id,
|
|
25
|
-
className: cls,
|
|
26
|
-
style,
|
|
27
|
-
label: labelVisible ? title : null,
|
|
28
|
-
layout,
|
|
29
|
-
multiCell: false,
|
|
30
|
-
requiredFlag,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
export default function Uploader(props) {
|
|
34
|
-
const platform = usePlatform();
|
|
35
|
-
if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
|
|
36
|
-
return React.createElement(UploaderPc, { ...props });
|
|
37
|
-
}
|
|
38
|
-
if ((props === null || props === void 0 ? void 0 : props.showType) === 'h5') {
|
|
39
|
-
return React.createElement(UploaderH5, { ...props });
|
|
40
|
-
}
|
|
41
|
-
return platform === 'h5' ? (React.createElement(UploaderH5, { ...props })) : (React.createElement(UploaderPc, { ...props }));
|
|
42
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { CommonFormPropsType } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* H5端
|
|
5
|
-
*/
|
|
6
|
-
export declare function ImageUploaderH5({ title, maxUploadCount, maxSize, acceptTypes, className, id, events, layout, defaultValue, single, disabled, requiredFlag, onChange, style, }: H5UploaderProps): JSX.Element;
|
|
7
|
-
export interface SingleImageProps {
|
|
8
|
-
src: string;
|
|
9
|
-
deleteBySrc: (url: string) => void;
|
|
10
|
-
disabled: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface H5UploaderProps extends CommonFormPropsType {
|
|
13
|
-
title?: string;
|
|
14
|
-
maxSize?: number;
|
|
15
|
-
acceptTypes?: unknown[];
|
|
16
|
-
maxUploadCount?: number;
|
|
17
|
-
defaultValue?: string[] | string;
|
|
18
|
-
single?: boolean;
|
|
19
|
-
onChange?: (v: any) => void;
|
|
20
|
-
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import weui from '../../../utils/weui';
|
|
3
|
-
import classNames from '../../../utils/classnames';
|
|
4
|
-
import { getCloudInstance, getTempFileURL } from '../../../utils/tcb';
|
|
5
|
-
import isObjectEqual from '../../../utils/isObjectEqual';
|
|
6
|
-
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
7
|
-
import { isCloudFileID, randomStr } from '../../../utils/platform';
|
|
8
|
-
import { IMAGE_TYPES } from './uploader.pc';
|
|
9
|
-
const uploadPath = 'weda-uploader';
|
|
10
|
-
/**
|
|
11
|
-
* H5端
|
|
12
|
-
*/
|
|
13
|
-
export function ImageUploaderH5({ title, maxUploadCount, maxSize = 10, acceptTypes, className, id, events, layout, defaultValue, single = false, disabled = false, requiredFlag = false, onChange, style, }) {
|
|
14
|
-
const cls = classNames({
|
|
15
|
-
'weda-ui': true,
|
|
16
|
-
'weui-cells': true,
|
|
17
|
-
'weui-cells_form': true,
|
|
18
|
-
[className]: className,
|
|
19
|
-
});
|
|
20
|
-
// 上传中
|
|
21
|
-
const [uploading, setUploading] = React.useState(false);
|
|
22
|
-
//上传进度
|
|
23
|
-
const [progress, setProgress] = React.useState(0);
|
|
24
|
-
const [inputValue, setInputValue] = useSyncValue(defaultValue, isObjectEqual);
|
|
25
|
-
const inputValueRef = React.useRef(inputValue);
|
|
26
|
-
const fileIdList = React.useMemo(() => {
|
|
27
|
-
//兼容h5默认值为空时情况
|
|
28
|
-
if (inputValue === null) {
|
|
29
|
-
setInputValue('');
|
|
30
|
-
}
|
|
31
|
-
if (typeof inputValue === 'string') {
|
|
32
|
-
// single = true 传入的是字符串
|
|
33
|
-
return [inputValue].filter((i) => i.length > 0); // 排除空串
|
|
34
|
-
}
|
|
35
|
-
if (Array.isArray(inputValue)) {
|
|
36
|
-
return inputValue;
|
|
37
|
-
}
|
|
38
|
-
return [];
|
|
39
|
-
}, [inputValue]);
|
|
40
|
-
const finalMaxImgCount = React.useMemo(() => {
|
|
41
|
-
if (single)
|
|
42
|
-
return 1;
|
|
43
|
-
return maxUploadCount;
|
|
44
|
-
}, [single, maxUploadCount]);
|
|
45
|
-
const deleteFile = (url) => {
|
|
46
|
-
if (single) {
|
|
47
|
-
setInputValue('');
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
setInputValue((list) => list.filter((f) => f !== url));
|
|
51
|
-
};
|
|
52
|
-
React.useEffect(() => {
|
|
53
|
-
if (single) {
|
|
54
|
-
const file = fileIdList[0] || '';
|
|
55
|
-
onChange && onChange(file);
|
|
56
|
-
events.change && events.change({ value: file });
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
onChange && onChange(fileIdList);
|
|
60
|
-
events.change && events.change({ value: fileIdList });
|
|
61
|
-
}
|
|
62
|
-
}, [fileIdList]);
|
|
63
|
-
const onProgress = (progressEvent) => {
|
|
64
|
-
let percentCompleted = 0;
|
|
65
|
-
try {
|
|
66
|
-
percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
|
|
67
|
-
percentCompleted < 100 ? percentCompleted : 100;
|
|
68
|
-
}
|
|
69
|
-
catch (e) { }
|
|
70
|
-
setProgress(percentCompleted);
|
|
71
|
-
};
|
|
72
|
-
const uploadToTcb = (file) => {
|
|
73
|
-
setUploading(true);
|
|
74
|
-
getCloudInstance().then(async (tcb) => {
|
|
75
|
-
var _a;
|
|
76
|
-
try {
|
|
77
|
-
const fileType = (_a = file.type.split('/')) === null || _a === void 0 ? void 0 : _a[1];
|
|
78
|
-
const cloudPath = `${uploadPath}/${randomStr()}-${file === null || file === void 0 ? void 0 : file.name}`;
|
|
79
|
-
const { fileID } = await tcb.uploadFile({
|
|
80
|
-
cloudPath,
|
|
81
|
-
filePath: file,
|
|
82
|
-
onUploadProgress: onProgress,
|
|
83
|
-
});
|
|
84
|
-
fileID && setInputValue((list) => [...list, fileID]);
|
|
85
|
-
fileID && events.success && events.success({ value: fileID, file });
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
weui.alert(`${err}` || '上传失败');
|
|
89
|
-
events.error && events.error(err);
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
setUploading(false);
|
|
93
|
-
setProgress(0);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
const accepts = React.useMemo(() => {
|
|
98
|
-
return acceptTypes.includes('image/*') || acceptTypes.length === 0
|
|
99
|
-
? IMAGE_TYPES
|
|
100
|
-
: Array.from(new Set(acceptTypes));
|
|
101
|
-
}, [acceptTypes]);
|
|
102
|
-
const islegalType = (files, accepts) => {
|
|
103
|
-
const illegalType = [];
|
|
104
|
-
let isImage = true;
|
|
105
|
-
for (const file of files) {
|
|
106
|
-
if ((file === null || file === void 0 ? void 0 : file.type.split('/')[0]) !== 'image') {
|
|
107
|
-
weui.alert('请上传图片', {
|
|
108
|
-
title: 'Image Type Error',
|
|
109
|
-
});
|
|
110
|
-
isImage = false;
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
accepts.some((item) => item === (file === null || file === void 0 ? void 0 : file.type))
|
|
114
|
-
? null
|
|
115
|
-
: illegalType.push(file === null || file === void 0 ? void 0 : file.type);
|
|
116
|
-
}
|
|
117
|
-
if (!isImage)
|
|
118
|
-
return false;
|
|
119
|
-
if (illegalType.length > 0) {
|
|
120
|
-
weui.alert('不支持上传' + Array.from(new Set(illegalType)).join(',') + '格式图片');
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
return true;
|
|
124
|
-
};
|
|
125
|
-
const showAdd = React.useMemo(() => {
|
|
126
|
-
if (single) {
|
|
127
|
-
// single 模式时,仅当数组为空时显示
|
|
128
|
-
return fileIdList.length < 1;
|
|
129
|
-
}
|
|
130
|
-
return fileIdList.length < maxUploadCount;
|
|
131
|
-
}, [fileIdList, single, maxUploadCount]);
|
|
132
|
-
return (React.createElement("div", { className: cls, id: id, style: style },
|
|
133
|
-
React.createElement("div", { className: classNames('weui-uploader', layout) },
|
|
134
|
-
React.createElement("div", { className: classNames('weui-uploader__hd', layout) },
|
|
135
|
-
React.createElement(UploaderLabel, { layout: layout, title: title, currentCount: fileIdList.length, maxCount: finalMaxImgCount, requiredFlag: requiredFlag })),
|
|
136
|
-
React.createElement("div", { className: "weui-uploader__bd" },
|
|
137
|
-
React.createElement("ul", { className: "weui-uploader__files", id: "uploaderFiles" },
|
|
138
|
-
(fileIdList !== null && fileIdList !== void 0 ? fileIdList : []).map((f) => (React.createElement(SingleImage, { key: f, src: f, deleteBySrc: deleteFile, disabled: disabled }))),
|
|
139
|
-
uploading && (React.createElement("li", { className: "weui-uploader__file weui-uploader__file_status" },
|
|
140
|
-
React.createElement("div", { className: "weui-uploader__file-content" },
|
|
141
|
-
progress,
|
|
142
|
-
"%")))),
|
|
143
|
-
showAdd && (React.createElement("div", { className: "weui-uploader__input-box" }, !disabled && (React.createElement("input", { id: "uploaderInput", className: "weui-uploader__input", type: "file", accept: accepts.join(','), multiple: true, onChange: (e) => {
|
|
144
|
-
const files = [...e.target.files];
|
|
145
|
-
if (!islegalType(files, accepts))
|
|
146
|
-
return;
|
|
147
|
-
if (files.some((f) => f.size > maxSize * 1024 * 1024)) {
|
|
148
|
-
weui.alert('请上传不超过10M的图片');
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
if (files.length > finalMaxImgCount) {
|
|
152
|
-
// 防止一下子选择过多文件
|
|
153
|
-
weui.alert(`最多只能上传${finalMaxImgCount}张图片,请重新选择`);
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
if (fileIdList.length + files.length > finalMaxImgCount) {
|
|
157
|
-
weui.alert(`最多只能上传${finalMaxImgCount}张图片`);
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
files.forEach((f) => uploadToTcb(f));
|
|
161
|
-
} }))))))));
|
|
162
|
-
}
|
|
163
|
-
function SingleImage({ src, deleteBySrc, disabled }) {
|
|
164
|
-
const [error, setError] = React.useState(false);
|
|
165
|
-
const cls = classNames({
|
|
166
|
-
'weui-uploader__file': true,
|
|
167
|
-
});
|
|
168
|
-
const [realSrc, setRealSrc] = React.useState('');
|
|
169
|
-
React.useEffect(() => {
|
|
170
|
-
const getSrc = async () => {
|
|
171
|
-
try {
|
|
172
|
-
const url = await getTempFileURL(src);
|
|
173
|
-
const _src = encodeURI(url);
|
|
174
|
-
setRealSrc(_src);
|
|
175
|
-
return _src;
|
|
176
|
-
}
|
|
177
|
-
catch (e) {
|
|
178
|
-
setError(true);
|
|
179
|
-
console.error('图片加载失败');
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
if (isCloudFileID(src)) {
|
|
183
|
-
getSrc();
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
setRealSrc(src);
|
|
187
|
-
}
|
|
188
|
-
}, [src]);
|
|
189
|
-
const imgStyle = {
|
|
190
|
-
backgroundImage: `url(${realSrc})`,
|
|
191
|
-
};
|
|
192
|
-
const showGallery = () => {
|
|
193
|
-
const gallery = weui.gallery(realSrc, disabled
|
|
194
|
-
? undefined
|
|
195
|
-
: {
|
|
196
|
-
onDelete: function () {
|
|
197
|
-
deleteBySrc(src);
|
|
198
|
-
gallery.hide();
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
};
|
|
202
|
-
return (React.createElement("li", { className: cls, style: imgStyle, onClick: showGallery }, error || status ? (React.createElement("div", { className: "weui-uploader__file-content" }, error ? (React.createElement("i", { role: "img", "aria-label": "\u9519\u8BEF", className: "weui-icon-warn" })) : (React.createElement("i", { className: "weui-loading", style: { width: 30, height: 30 } })))) : (false)));
|
|
203
|
-
}
|
|
204
|
-
const UploaderLabel = ({ layout, title, currentCount, maxCount, requiredFlag, }) => {
|
|
205
|
-
if (layout === 'horizontal') {
|
|
206
|
-
return (React.createElement(React.Fragment, null,
|
|
207
|
-
React.createElement("div", { className: "weda-formcells__label weui-cell" },
|
|
208
|
-
React.createElement("div", null,
|
|
209
|
-
React.createElement("p", { className: "weui-uploader__title" }, title),
|
|
210
|
-
React.createElement("div", { className: "weui-uploader__info" },
|
|
211
|
-
React.createElement("span", { id: "uploadCount" }, currentCount),
|
|
212
|
-
"/",
|
|
213
|
-
maxCount)),
|
|
214
|
-
requiredFlag && React.createElement("label", { className: "weda-formcells__flag" }, "*"))));
|
|
215
|
-
}
|
|
216
|
-
return (React.createElement("div", { className: "weda-formcells__label weui-cell" },
|
|
217
|
-
React.createElement("div", { className: "weui-uploader__label" },
|
|
218
|
-
React.createElement("p", { className: "weui-uploader__title" }, title),
|
|
219
|
-
requiredFlag && React.createElement("label", { className: "weda-formcells__flag" }, "*")),
|
|
220
|
-
React.createElement("div", { className: "weui-uploader__info" },
|
|
221
|
-
React.createElement("span", { id: "uploadCount" }, currentCount),
|
|
222
|
-
"/",
|
|
223
|
-
maxCount)));
|
|
224
|
-
};
|