cbvirtua 1.0.100 → 1.0.101
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/action-sheet/index.d.ts +1 -0
- package/dist/action-sheet/index.js +75 -0
- package/dist/action-sheet/index.json +8 -0
- package/dist/action-sheet/index.wxml +70 -0
- package/dist/action-sheet/index.wxss +1 -0
- package/dist/area/index.d.ts +1 -0
- package/dist/area/index.js +220 -0
- package/dist/area/index.json +6 -0
- package/dist/area/index.wxml +20 -0
- package/dist/area/index.wxs +8 -0
- package/dist/area/index.wxss +1 -0
- package/dist/button/index.d.ts +1 -0
- package/dist/button/index.js +64 -0
- package/dist/button/index.json +7 -0
- package/dist/button/index.wxml +56 -0
- package/dist/button/index.wxs +39 -0
- package/dist/button/index.wxss +1 -0
- package/dist/calendar/calendar.wxml +70 -0
- package/dist/calendar/components/header/index.d.ts +1 -0
- package/dist/calendar/components/header/index.js +37 -0
- package/dist/calendar/components/header/index.json +3 -0
- package/dist/calendar/components/header/index.wxml +16 -0
- package/dist/calendar/components/header/index.wxss +1 -0
- package/dist/calendar/components/month/index.d.ts +6 -0
- package/dist/calendar/components/month/index.js +154 -0
- package/dist/calendar/components/month/index.json +3 -0
- package/dist/calendar/components/month/index.wxml +39 -0
- package/dist/calendar/components/month/index.wxs +71 -0
- package/dist/calendar/components/month/index.wxss +1 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +360 -0
- package/dist/calendar/index.json +10 -0
- package/dist/calendar/index.wxml +27 -0
- package/dist/calendar/index.wxs +37 -0
- package/dist/calendar/index.wxss +1 -0
- package/dist/calendar/utils.d.ts +12 -0
- package/dist/calendar/utils.js +83 -0
- package/dist/calendar/utils.wxs +25 -0
- package/dist/card/index.d.ts +1 -0
- package/dist/card/index.js +49 -0
- package/dist/card/index.json +6 -0
- package/dist/card/index.wxml +56 -0
- package/dist/card/index.wxss +1 -0
- package/dist/cascader/index.d.ts +1 -0
- package/dist/cascader/index.js +214 -0
- package/dist/cascader/index.json +8 -0
- package/dist/cascader/index.wxml +55 -0
- package/dist/cascader/index.wxs +24 -0
- package/dist/cascader/index.wxss +1 -0
- package/dist/cell/index.d.ts +1 -0
- package/dist/cell/index.js +38 -0
- package/dist/cell/index.json +6 -0
- package/dist/cell/index.wxml +47 -0
- package/dist/cell/index.wxs +17 -0
- package/dist/cell/index.wxss +1 -0
- package/dist/cell-group/index.d.ts +1 -0
- package/dist/cell-group/index.js +11 -0
- package/dist/cell-group/index.json +3 -0
- package/dist/cell-group/index.wxml +11 -0
- package/dist/cell-group/index.wxss +1 -0
- package/dist/checkbox/index.d.ts +1 -0
- package/dist/checkbox/index.js +77 -0
- package/dist/checkbox/index.json +6 -0
- package/dist/checkbox/index.wxml +31 -0
- package/dist/checkbox/index.wxs +20 -0
- package/dist/checkbox/index.wxss +1 -0
- package/dist/checkbox-group/index.d.ts +1 -0
- package/dist/checkbox-group/index.js +36 -0
- package/dist/checkbox-group/index.json +3 -0
- package/dist/checkbox-group/index.wxml +5 -0
- package/dist/checkbox-group/index.wxss +1 -0
- package/dist/circle/canvas.d.ts +4 -0
- package/dist/circle/canvas.js +43 -0
- package/dist/circle/index.d.ts +1 -0
- package/dist/circle/index.js +197 -0
- package/dist/circle/index.json +3 -0
- package/dist/circle/index.wxml +9 -0
- package/dist/circle/index.wxss +1 -0
- package/dist/col/index.d.ts +1 -0
- package/dist/col/index.js +9 -0
- package/dist/col/index.json +3 -0
- package/dist/col/index.wxml +9 -0
- package/dist/col/index.wxs +18 -0
- package/dist/col/index.wxss +1 -0
- package/dist/collapse/index.d.ts +1 -0
- package/dist/collapse/index.js +46 -0
- package/dist/collapse/index.json +3 -0
- package/dist/collapse/index.wxml +3 -0
- package/dist/collapse/index.wxss +1 -0
- package/dist/collapse-item/animate.d.ts +2 -0
- package/dist/collapse-item/animate.js +39 -0
- package/dist/collapse-item/index.d.ts +1 -0
- package/dist/collapse-item/index.js +61 -0
- package/dist/collapse-item/index.json +6 -0
- package/dist/collapse-item/index.wxml +45 -0
- package/dist/collapse-item/index.wxss +1 -0
- package/dist/common/color.d.ts +7 -0
- package/dist/common/color.js +7 -0
- package/dist/common/component.d.ts +4 -0
- package/dist/common/component.js +46 -0
- package/dist/common/index.wxss +1 -0
- package/dist/common/relation.d.ts +15 -0
- package/dist/common/relation.js +56 -0
- package/dist/common/style/clearfix.wxss +1 -0
- package/dist/common/style/ellipsis.wxss +1 -0
- package/dist/common/style/hairline.wxss +1 -0
- package/dist/common/style/mixins/clearfix.wxss +0 -0
- package/dist/common/style/mixins/ellipsis.wxss +0 -0
- package/dist/common/style/mixins/hairline.wxss +0 -0
- package/dist/common/style/var.wxss +0 -0
- package/dist/common/utils.d.ts +21 -0
- package/dist/common/utils.js +86 -0
- package/dist/common/validator.d.ts +9 -0
- package/dist/common/validator.js +31 -0
- package/dist/common/version.d.ts +15 -0
- package/dist/common/version.js +59 -0
- package/dist/config-provider/index.d.ts +1 -0
- package/dist/config-provider/index.js +9 -0
- package/dist/config-provider/index.json +3 -0
- package/dist/config-provider/index.wxml +5 -0
- package/dist/config-provider/index.wxs +29 -0
- package/dist/count-down/index.d.ts +1 -0
- package/dist/count-down/index.js +100 -0
- package/dist/count-down/index.json +3 -0
- package/dist/count-down/index.wxml +4 -0
- package/dist/count-down/index.wxss +1 -0
- package/dist/count-down/utils.d.ts +10 -0
- package/dist/count-down/utils.js +57 -0
- package/dist/datetime-picker/index.d.ts +1 -0
- package/dist/datetime-picker/index.js +295 -0
- package/dist/datetime-picker/index.json +6 -0
- package/dist/datetime-picker/index.wxml +16 -0
- package/dist/datetime-picker/index.wxss +1 -0
- package/dist/definitions/index.d.ts +29 -0
- package/dist/definitions/index.js +1 -0
- package/dist/dialog/dialog.d.ts +55 -0
- package/dist/dialog/dialog.js +77 -0
- package/dist/dialog/index.d.ts +1 -0
- package/dist/dialog/index.js +132 -0
- package/dist/dialog/index.json +9 -0
- package/dist/dialog/index.wxml +126 -0
- package/dist/dialog/index.wxss +1 -0
- package/dist/divider/index.d.ts +1 -0
- package/dist/divider/index.js +12 -0
- package/dist/divider/index.json +4 -0
- package/dist/divider/index.wxml +9 -0
- package/dist/divider/index.wxs +18 -0
- package/dist/divider/index.wxss +1 -0
- package/dist/dropdown-item/index.d.ts +1 -0
- package/dist/dropdown-item/index.js +130 -0
- package/dist/dropdown-item/index.json +8 -0
- package/dist/dropdown-item/index.wxml +50 -0
- package/dist/dropdown-item/index.wxss +1 -0
- package/dist/dropdown-item/shared.d.ts +5 -0
- package/dist/dropdown-item/shared.js +1 -0
- package/dist/dropdown-menu/index.d.ts +1 -0
- package/dist/dropdown-menu/index.js +117 -0
- package/dist/dropdown-menu/index.json +3 -0
- package/dist/dropdown-menu/index.wxml +23 -0
- package/dist/dropdown-menu/index.wxs +16 -0
- package/dist/dropdown-menu/index.wxss +1 -0
- package/dist/empty/index.d.ts +1 -0
- package/dist/empty/index.js +10 -0
- package/dist/empty/index.json +4 -0
- package/dist/empty/index.wxml +22 -0
- package/dist/empty/index.wxs +15 -0
- package/dist/empty/index.wxss +1 -0
- package/dist/field/index.d.ts +1 -0
- package/dist/field/index.js +138 -0
- package/dist/field/index.json +7 -0
- package/dist/field/index.wxml +56 -0
- package/dist/field/index.wxs +18 -0
- package/dist/field/index.wxss +1 -0
- package/dist/field/input.wxml +31 -0
- package/dist/field/props.d.ts +4 -0
- package/dist/field/props.js +56 -0
- package/dist/field/textarea.wxml +32 -0
- package/dist/field/types.d.ts +8 -0
- package/dist/field/types.js +1 -0
- package/dist/goods-action/index.d.ts +1 -0
- package/dist/goods-action/index.js +15 -0
- package/dist/goods-action/index.json +3 -0
- package/dist/goods-action/index.wxml +5 -0
- package/dist/goods-action/index.wxss +1 -0
- package/dist/goods-action-button/index.d.ts +1 -0
- package/dist/goods-action-button/index.js +44 -0
- package/dist/goods-action-button/index.json +6 -0
- package/dist/goods-action-button/index.wxml +35 -0
- package/dist/goods-action-button/index.wxss +1 -0
- package/dist/goods-action-icon/index.d.ts +1 -0
- package/dist/goods-action-icon/index.js +27 -0
- package/dist/goods-action-icon/index.json +7 -0
- package/dist/goods-action-icon/index.wxml +41 -0
- package/dist/goods-action-icon/index.wxss +1 -0
- package/dist/grid/index.d.ts +1 -0
- package/dist/grid/index.js +55 -0
- package/dist/grid/index.json +3 -0
- package/dist/grid/index.wxml +8 -0
- package/dist/grid/index.wxs +13 -0
- package/dist/grid/index.wxss +1 -0
- package/dist/grid-item/index.d.ts +1 -0
- package/dist/grid-item/index.js +52 -0
- package/dist/grid-item/index.json +6 -0
- package/dist/grid-item/index.wxml +27 -0
- package/dist/grid-item/index.wxs +32 -0
- package/dist/grid-item/index.wxss +1 -0
- package/dist/icon/index.d.ts +1 -0
- package/dist/icon/index.js +21 -0
- package/dist/icon/index.json +6 -0
- package/dist/icon/index.wxml +20 -0
- package/dist/icon/index.wxs +43 -0
- package/dist/icon/index.wxss +1 -0
- package/dist/image/index.d.ts +1 -0
- package/dist/image/index.js +64 -0
- package/dist/image/index.json +7 -0
- package/dist/image/index.wxml +35 -0
- package/dist/image/index.wxs +32 -0
- package/dist/image/index.wxss +1 -0
- package/dist/index-anchor/index.d.ts +1 -0
- package/dist/index-anchor/index.js +25 -0
- package/dist/index-anchor/index.json +3 -0
- package/dist/index-anchor/index.wxml +14 -0
- package/dist/index-anchor/index.wxss +1 -0
- package/dist/index-bar/index.d.ts +1 -0
- package/dist/index-bar/index.js +246 -0
- package/dist/index-bar/index.json +3 -0
- package/dist/index-bar/index.wxml +22 -0
- package/dist/index-bar/index.wxss +1 -0
- package/dist/info/index.d.ts +1 -0
- package/dist/info/index.js +8 -0
- package/dist/info/index.json +3 -0
- package/dist/info/index.wxml +7 -0
- package/dist/info/index.wxss +1 -0
- package/dist/loading/index.d.ts +1 -0
- package/dist/loading/index.js +16 -0
- package/dist/loading/index.json +3 -0
- package/dist/loading/index.wxml +19 -0
- package/dist/loading/index.wxs +22 -0
- package/dist/loading/index.wxss +1 -0
- package/dist/mixins/basic.d.ts +1 -0
- package/dist/mixins/basic.js +26 -0
- package/dist/mixins/button.d.ts +1 -0
- package/dist/mixins/button.js +51 -0
- package/dist/mixins/link.d.ts +1 -0
- package/dist/mixins/link.js +23 -0
- package/dist/mixins/page-scroll.d.ts +6 -0
- package/dist/mixins/page-scroll.js +42 -0
- package/dist/mixins/touch.d.ts +1 -0
- package/dist/mixins/touch.js +37 -0
- package/dist/mixins/transition.d.ts +1 -0
- package/dist/mixins/transition.js +136 -0
- package/dist/nav-bar/index.d.ts +1 -0
- package/dist/nav-bar/index.js +65 -0
- package/dist/nav-bar/index.json +6 -0
- package/dist/nav-bar/index.wxml +42 -0
- package/dist/nav-bar/index.wxs +13 -0
- package/dist/nav-bar/index.wxss +1 -0
- package/dist/notice-bar/index.d.ts +1 -0
- package/dist/notice-bar/index.js +132 -0
- package/dist/notice-bar/index.json +6 -0
- package/dist/notice-bar/index.wxml +38 -0
- package/dist/notice-bar/index.wxs +15 -0
- package/dist/notice-bar/index.wxss +1 -0
- package/dist/notify/index.d.ts +1 -0
- package/dist/notify/index.js +65 -0
- package/dist/notify/index.json +6 -0
- package/dist/notify/index.wxml +21 -0
- package/dist/notify/index.wxs +22 -0
- package/dist/notify/index.wxss +1 -0
- package/dist/notify/notify.d.ts +22 -0
- package/dist/notify/notify.js +53 -0
- package/dist/overlay/index.d.ts +1 -0
- package/dist/overlay/index.js +30 -0
- package/dist/overlay/index.json +6 -0
- package/dist/overlay/index.wxml +7 -0
- package/dist/overlay/index.wxss +1 -0
- package/dist/overlay/overlay.wxml +10 -0
- package/dist/panel/index.d.ts +1 -0
- package/dist/panel/index.js +9 -0
- package/dist/panel/index.json +6 -0
- package/dist/panel/index.wxml +19 -0
- package/dist/panel/index.wxss +1 -0
- package/dist/picker/index.d.ts +1 -0
- package/dist/picker/index.js +136 -0
- package/dist/picker/index.json +7 -0
- package/dist/picker/index.wxml +37 -0
- package/dist/picker/index.wxs +42 -0
- package/dist/picker/index.wxss +1 -0
- package/dist/picker/shared.d.ts +21 -0
- package/dist/picker/shared.js +21 -0
- package/dist/picker/toolbar.wxml +23 -0
- package/dist/picker-column/index.d.ts +1 -0
- package/dist/picker-column/index.js +118 -0
- package/dist/picker-column/index.json +3 -0
- package/dist/picker-column/index.wxml +23 -0
- package/dist/picker-column/index.wxs +36 -0
- package/dist/picker-column/index.wxss +1 -0
- package/dist/popup/index.d.ts +1 -0
- package/dist/popup/index.js +97 -0
- package/dist/popup/index.json +7 -0
- package/dist/popup/index.wxml +21 -0
- package/dist/popup/index.wxs +18 -0
- package/dist/popup/index.wxss +1 -0
- package/dist/popup/popup.wxml +16 -0
- package/dist/progress/index.d.ts +1 -0
- package/dist/progress/index.js +51 -0
- package/dist/progress/index.json +3 -0
- package/dist/progress/index.wxml +20 -0
- package/dist/progress/index.wxs +36 -0
- package/dist/progress/index.wxss +1 -0
- package/dist/radio/index.d.ts +1 -0
- package/dist/radio/index.js +66 -0
- package/dist/radio/index.json +6 -0
- package/dist/radio/index.wxml +30 -0
- package/dist/radio/index.wxs +33 -0
- package/dist/radio/index.wxss +1 -0
- package/dist/radio-group/index.d.ts +1 -0
- package/dist/radio-group/index.js +22 -0
- package/dist/radio-group/index.json +3 -0
- package/dist/radio-group/index.wxml +5 -0
- package/dist/radio-group/index.wxss +1 -0
- package/dist/rate/index.d.ts +1 -0
- package/dist/rate/index.js +78 -0
- package/dist/rate/index.json +6 -0
- package/dist/rate/index.wxml +35 -0
- package/dist/rate/index.wxss +1 -0
- package/dist/row/index.d.ts +1 -0
- package/dist/row/index.js +23 -0
- package/dist/row/index.json +3 -0
- package/dist/row/index.wxml +5 -0
- package/dist/row/index.wxs +18 -0
- package/dist/row/index.wxss +1 -0
- package/dist/search/index.d.ts +1 -0
- package/dist/search/index.js +97 -0
- package/dist/search/index.json +6 -0
- package/dist/search/index.wxml +54 -0
- package/dist/search/index.wxss +1 -0
- package/dist/share-sheet/index.d.ts +1 -0
- package/dist/share-sheet/index.js +59 -0
- package/dist/share-sheet/index.json +7 -0
- package/dist/share-sheet/index.wxml +47 -0
- package/dist/share-sheet/index.wxs +12 -0
- package/dist/share-sheet/index.wxss +1 -0
- package/dist/share-sheet/options.d.ts +1 -0
- package/dist/share-sheet/options.js +14 -0
- package/dist/share-sheet/options.json +3 -0
- package/dist/share-sheet/options.wxml +20 -0
- package/dist/share-sheet/options.wxs +14 -0
- package/dist/share-sheet/options.wxss +1 -0
- package/dist/sidebar/index.d.ts +1 -0
- package/dist/sidebar/index.js +34 -0
- package/dist/sidebar/index.json +3 -0
- package/dist/sidebar/index.wxml +3 -0
- package/dist/sidebar/index.wxss +1 -0
- package/dist/sidebar-item/index.d.ts +1 -0
- package/dist/sidebar-item/index.js +29 -0
- package/dist/sidebar-item/index.json +6 -0
- package/dist/sidebar-item/index.wxml +18 -0
- package/dist/sidebar-item/index.wxss +1 -0
- package/dist/skeleton/index.d.ts +1 -0
- package/dist/skeleton/index.js +46 -0
- package/dist/skeleton/index.json +4 -0
- package/dist/skeleton/index.wxml +29 -0
- package/dist/skeleton/index.wxss +1 -0
- package/dist/slider/index.d.ts +1 -0
- package/dist/slider/index.js +207 -0
- package/dist/slider/index.json +3 -0
- package/dist/slider/index.wxml +68 -0
- package/dist/slider/index.wxs +14 -0
- package/dist/slider/index.wxss +1 -0
- package/dist/stepper/index.d.ts +1 -0
- package/dist/stepper/index.js +184 -0
- package/dist/stepper/index.json +3 -0
- package/dist/stepper/index.wxml +43 -0
- package/dist/stepper/index.wxs +22 -0
- package/dist/stepper/index.wxss +1 -0
- package/dist/steps/index.d.ts +1 -0
- package/dist/steps/index.js +33 -0
- package/dist/steps/index.json +6 -0
- package/dist/steps/index.wxml +54 -0
- package/dist/steps/index.wxss +1 -0
- package/dist/sticky/index.d.ts +1 -0
- package/dist/sticky/index.js +120 -0
- package/dist/sticky/index.json +3 -0
- package/dist/sticky/index.wxml +8 -0
- package/dist/sticky/index.wxs +25 -0
- package/dist/sticky/index.wxss +1 -0
- package/dist/submit-bar/index.d.ts +1 -0
- package/dist/submit-bar/index.js +56 -0
- package/dist/submit-bar/index.json +7 -0
- package/dist/submit-bar/index.wxml +44 -0
- package/dist/submit-bar/index.wxss +1 -0
- package/dist/swipe-cell/index.d.ts +1 -0
- package/dist/swipe-cell/index.js +133 -0
- package/dist/swipe-cell/index.json +3 -0
- package/dist/swipe-cell/index.wxml +20 -0
- package/dist/swipe-cell/index.wxss +1 -0
- package/dist/switch/index.d.ts +1 -0
- package/dist/switch/index.js +36 -0
- package/dist/switch/index.json +6 -0
- package/dist/switch/index.wxml +16 -0
- package/dist/switch/index.wxs +26 -0
- package/dist/switch/index.wxss +1 -0
- package/dist/tab/index.d.ts +1 -0
- package/dist/tab/index.js +56 -0
- package/dist/tab/index.json +3 -0
- package/dist/tab/index.wxml +8 -0
- package/dist/tab/index.wxss +1 -0
- package/dist/tabbar/index.d.ts +1 -0
- package/dist/tabbar/index.js +65 -0
- package/dist/tabbar/index.json +3 -0
- package/dist/tabbar/index.wxml +10 -0
- package/dist/tabbar/index.wxss +1 -0
- package/dist/tabbar-item/index.d.ts +1 -0
- package/dist/tabbar-item/index.js +68 -0
- package/dist/tabbar-item/index.json +7 -0
- package/dist/tabbar-item/index.wxml +28 -0
- package/dist/tabbar-item/index.wxss +1 -0
- package/dist/tabs/index.d.ts +1 -0
- package/dist/tabs/index.js +302 -0
- package/dist/tabs/index.json +7 -0
- package/dist/tabs/index.wxml +63 -0
- package/dist/tabs/index.wxs +83 -0
- package/dist/tabs/index.wxss +1 -0
- package/dist/tag/index.d.ts +1 -0
- package/dist/tag/index.js +21 -0
- package/dist/tag/index.json +6 -0
- package/dist/tag/index.wxml +15 -0
- package/dist/tag/index.wxs +13 -0
- package/dist/tag/index.wxss +1 -0
- package/dist/toast/index.d.ts +1 -0
- package/dist/toast/index.js +29 -0
- package/dist/toast/index.json +9 -0
- package/dist/toast/index.wxml +36 -0
- package/dist/toast/index.wxss +1 -0
- package/dist/toast/toast.d.ts +28 -0
- package/dist/toast/toast.js +68 -0
- package/dist/transition/index.d.ts +1 -0
- package/dist/transition/index.js +13 -0
- package/dist/transition/index.json +3 -0
- package/dist/transition/index.wxml +10 -0
- package/dist/transition/index.wxs +17 -0
- package/dist/transition/index.wxss +1 -0
- package/dist/tree-select/index.d.ts +1 -0
- package/dist/tree-select/index.js +68 -0
- package/dist/tree-select/index.json +8 -0
- package/dist/tree-select/index.wxml +41 -0
- package/dist/tree-select/index.wxs +12 -0
- package/dist/tree-select/index.wxss +1 -0
- package/dist/uploader/index.d.ts +1 -0
- package/dist/uploader/index.js +170 -0
- package/dist/uploader/index.json +7 -0
- package/dist/uploader/index.wxml +85 -0
- package/dist/uploader/index.wxs +17 -0
- package/dist/uploader/index.wxss +1 -0
- package/dist/uploader/shared.d.ts +61 -0
- package/dist/uploader/shared.js +65 -0
- package/dist/uploader/utils.d.ts +24 -0
- package/dist/uploader/utils.js +94 -0
- package/dist/wxs/add-unit.wxs +12 -0
- package/dist/wxs/array.wxs +5 -0
- package/dist/wxs/bem.wxs +39 -0
- package/dist/wxs/memoize.wxs +55 -0
- package/dist/wxs/object.wxs +13 -0
- package/dist/wxs/style.wxs +42 -0
- package/dist/wxs/utils.wxs +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { VantComponent } from '../common/component';
|
|
2
|
+
import { isDef } from '../common/validator';
|
|
3
|
+
import { pickerProps } from '../picker/shared';
|
|
4
|
+
const currentYear = new Date().getFullYear();
|
|
5
|
+
function isValidDate(date) {
|
|
6
|
+
return isDef(date) && !isNaN(new Date(date).getTime());
|
|
7
|
+
}
|
|
8
|
+
function range(num, min, max) {
|
|
9
|
+
return Math.min(Math.max(num, min), max);
|
|
10
|
+
}
|
|
11
|
+
function padZero(val) {
|
|
12
|
+
return `00${val}`.slice(-2);
|
|
13
|
+
}
|
|
14
|
+
function times(n, iteratee) {
|
|
15
|
+
let index = -1;
|
|
16
|
+
const result = Array(n < 0 ? 0 : n);
|
|
17
|
+
while (++index < n) {
|
|
18
|
+
result[index] = iteratee(index);
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
function getTrueValue(formattedValue) {
|
|
23
|
+
if (formattedValue === undefined) {
|
|
24
|
+
formattedValue = '1';
|
|
25
|
+
}
|
|
26
|
+
while (isNaN(parseInt(formattedValue, 10))) {
|
|
27
|
+
formattedValue = formattedValue.slice(1);
|
|
28
|
+
}
|
|
29
|
+
return parseInt(formattedValue, 10);
|
|
30
|
+
}
|
|
31
|
+
function getMonthEndDay(year, month) {
|
|
32
|
+
return 32 - new Date(year, month - 1, 32).getDate();
|
|
33
|
+
}
|
|
34
|
+
const defaultFormatter = (type, value) => value;
|
|
35
|
+
VantComponent({
|
|
36
|
+
classes: ['active-class', 'toolbar-class', 'column-class'],
|
|
37
|
+
props: Object.assign(Object.assign({}, pickerProps), { value: {
|
|
38
|
+
type: null,
|
|
39
|
+
observer: 'updateValue',
|
|
40
|
+
}, filter: null, type: {
|
|
41
|
+
type: String,
|
|
42
|
+
value: 'datetime',
|
|
43
|
+
observer: 'updateValue',
|
|
44
|
+
}, showToolbar: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
value: true,
|
|
47
|
+
}, formatter: {
|
|
48
|
+
type: null,
|
|
49
|
+
value: defaultFormatter,
|
|
50
|
+
}, minDate: {
|
|
51
|
+
type: Number,
|
|
52
|
+
value: new Date(currentYear - 10, 0, 1).getTime(),
|
|
53
|
+
observer: 'updateValue',
|
|
54
|
+
}, maxDate: {
|
|
55
|
+
type: Number,
|
|
56
|
+
value: new Date(currentYear + 10, 11, 31).getTime(),
|
|
57
|
+
observer: 'updateValue',
|
|
58
|
+
}, minHour: {
|
|
59
|
+
type: Number,
|
|
60
|
+
value: 0,
|
|
61
|
+
observer: 'updateValue',
|
|
62
|
+
}, maxHour: {
|
|
63
|
+
type: Number,
|
|
64
|
+
value: 23,
|
|
65
|
+
observer: 'updateValue',
|
|
66
|
+
}, minMinute: {
|
|
67
|
+
type: Number,
|
|
68
|
+
value: 0,
|
|
69
|
+
observer: 'updateValue',
|
|
70
|
+
}, maxMinute: {
|
|
71
|
+
type: Number,
|
|
72
|
+
value: 59,
|
|
73
|
+
observer: 'updateValue',
|
|
74
|
+
} }),
|
|
75
|
+
data: {
|
|
76
|
+
innerValue: Date.now(),
|
|
77
|
+
columns: [],
|
|
78
|
+
},
|
|
79
|
+
methods: {
|
|
80
|
+
updateValue() {
|
|
81
|
+
const { data } = this;
|
|
82
|
+
const val = this.correctValue(data.value);
|
|
83
|
+
const isEqual = val === data.innerValue;
|
|
84
|
+
this.updateColumnValue(val).then(() => {
|
|
85
|
+
if (!isEqual) {
|
|
86
|
+
this.$emit('input', val);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
getPicker() {
|
|
91
|
+
if (this.picker == null) {
|
|
92
|
+
this.picker = this.selectComponent('.van-datetime-picker');
|
|
93
|
+
const { picker } = this;
|
|
94
|
+
const { setColumnValues } = picker;
|
|
95
|
+
picker.setColumnValues = (...args) => setColumnValues.apply(picker, [...args, false]);
|
|
96
|
+
}
|
|
97
|
+
return this.picker;
|
|
98
|
+
},
|
|
99
|
+
updateColumns() {
|
|
100
|
+
const { formatter = defaultFormatter } = this.data;
|
|
101
|
+
const results = this.getOriginColumns().map((column) => ({
|
|
102
|
+
values: column.values.map((value) => formatter(column.type, value)),
|
|
103
|
+
}));
|
|
104
|
+
return this.set({ columns: results });
|
|
105
|
+
},
|
|
106
|
+
getOriginColumns() {
|
|
107
|
+
const { filter } = this.data;
|
|
108
|
+
const results = this.getRanges().map(({ type, range }) => {
|
|
109
|
+
let values = times(range[1] - range[0] + 1, (index) => {
|
|
110
|
+
const value = range[0] + index;
|
|
111
|
+
return type === 'year' ? `${value}` : padZero(value);
|
|
112
|
+
});
|
|
113
|
+
if (filter) {
|
|
114
|
+
values = filter(type, values);
|
|
115
|
+
}
|
|
116
|
+
return { type, values };
|
|
117
|
+
});
|
|
118
|
+
return results;
|
|
119
|
+
},
|
|
120
|
+
getRanges() {
|
|
121
|
+
const { data } = this;
|
|
122
|
+
if (data.type === 'time') {
|
|
123
|
+
return [
|
|
124
|
+
{
|
|
125
|
+
type: 'hour',
|
|
126
|
+
range: [data.minHour, data.maxHour],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'minute',
|
|
130
|
+
range: [data.minMinute, data.maxMinute],
|
|
131
|
+
},
|
|
132
|
+
];
|
|
133
|
+
}
|
|
134
|
+
const { maxYear, maxDate, maxMonth, maxHour, maxMinute, } = this.getBoundary('max', data.innerValue);
|
|
135
|
+
const { minYear, minDate, minMonth, minHour, minMinute, } = this.getBoundary('min', data.innerValue);
|
|
136
|
+
const result = [
|
|
137
|
+
{
|
|
138
|
+
type: 'year',
|
|
139
|
+
range: [minYear, maxYear],
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'month',
|
|
143
|
+
range: [minMonth, maxMonth],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'day',
|
|
147
|
+
range: [minDate, maxDate],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'hour',
|
|
151
|
+
range: [minHour, maxHour],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'minute',
|
|
155
|
+
range: [minMinute, maxMinute],
|
|
156
|
+
},
|
|
157
|
+
];
|
|
158
|
+
if (data.type === 'date')
|
|
159
|
+
result.splice(3, 2);
|
|
160
|
+
if (data.type === 'year-month')
|
|
161
|
+
result.splice(2, 3);
|
|
162
|
+
return result;
|
|
163
|
+
},
|
|
164
|
+
correctValue(value) {
|
|
165
|
+
const { data } = this;
|
|
166
|
+
// validate value
|
|
167
|
+
const isDateType = data.type !== 'time';
|
|
168
|
+
if (isDateType && !isValidDate(value)) {
|
|
169
|
+
value = data.minDate;
|
|
170
|
+
}
|
|
171
|
+
else if (!isDateType && !value) {
|
|
172
|
+
const { minHour } = data;
|
|
173
|
+
value = `${padZero(minHour)}:00`;
|
|
174
|
+
}
|
|
175
|
+
// time type
|
|
176
|
+
if (!isDateType) {
|
|
177
|
+
let [hour, minute] = value.split(':');
|
|
178
|
+
hour = padZero(range(hour, data.minHour, data.maxHour));
|
|
179
|
+
minute = padZero(range(minute, data.minMinute, data.maxMinute));
|
|
180
|
+
return `${hour}:${minute}`;
|
|
181
|
+
}
|
|
182
|
+
// date type
|
|
183
|
+
value = Math.max(value, data.minDate);
|
|
184
|
+
value = Math.min(value, data.maxDate);
|
|
185
|
+
return value;
|
|
186
|
+
},
|
|
187
|
+
getBoundary(type, innerValue) {
|
|
188
|
+
const value = new Date(innerValue);
|
|
189
|
+
const boundary = new Date(this.data[`${type}Date`]);
|
|
190
|
+
const year = boundary.getFullYear();
|
|
191
|
+
let month = 1;
|
|
192
|
+
let date = 1;
|
|
193
|
+
let hour = 0;
|
|
194
|
+
let minute = 0;
|
|
195
|
+
if (type === 'max') {
|
|
196
|
+
month = 12;
|
|
197
|
+
date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);
|
|
198
|
+
hour = 23;
|
|
199
|
+
minute = 59;
|
|
200
|
+
}
|
|
201
|
+
if (value.getFullYear() === year) {
|
|
202
|
+
month = boundary.getMonth() + 1;
|
|
203
|
+
if (value.getMonth() + 1 === month) {
|
|
204
|
+
date = boundary.getDate();
|
|
205
|
+
if (value.getDate() === date) {
|
|
206
|
+
hour = boundary.getHours();
|
|
207
|
+
if (value.getHours() === hour) {
|
|
208
|
+
minute = boundary.getMinutes();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
[`${type}Year`]: year,
|
|
215
|
+
[`${type}Month`]: month,
|
|
216
|
+
[`${type}Date`]: date,
|
|
217
|
+
[`${type}Hour`]: hour,
|
|
218
|
+
[`${type}Minute`]: minute,
|
|
219
|
+
};
|
|
220
|
+
},
|
|
221
|
+
onCancel() {
|
|
222
|
+
this.$emit('cancel');
|
|
223
|
+
},
|
|
224
|
+
onConfirm() {
|
|
225
|
+
this.$emit('confirm', this.data.innerValue);
|
|
226
|
+
},
|
|
227
|
+
onChange() {
|
|
228
|
+
const { data } = this;
|
|
229
|
+
let value;
|
|
230
|
+
const picker = this.getPicker();
|
|
231
|
+
const originColumns = this.getOriginColumns();
|
|
232
|
+
if (data.type === 'time') {
|
|
233
|
+
const indexes = picker.getIndexes();
|
|
234
|
+
value = `${+originColumns[0].values[indexes[0]]}:${+originColumns[1]
|
|
235
|
+
.values[indexes[1]]}`;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
const indexes = picker.getIndexes();
|
|
239
|
+
const values = indexes.map((value, index) => originColumns[index].values[value]);
|
|
240
|
+
const year = getTrueValue(values[0]);
|
|
241
|
+
const month = getTrueValue(values[1]);
|
|
242
|
+
const maxDate = getMonthEndDay(year, month);
|
|
243
|
+
let date = getTrueValue(values[2]);
|
|
244
|
+
if (data.type === 'year-month') {
|
|
245
|
+
date = 1;
|
|
246
|
+
}
|
|
247
|
+
date = date > maxDate ? maxDate : date;
|
|
248
|
+
let hour = 0;
|
|
249
|
+
let minute = 0;
|
|
250
|
+
if (data.type === 'datetime') {
|
|
251
|
+
hour = getTrueValue(values[3]);
|
|
252
|
+
minute = getTrueValue(values[4]);
|
|
253
|
+
}
|
|
254
|
+
value = new Date(year, month - 1, date, hour, minute);
|
|
255
|
+
}
|
|
256
|
+
value = this.correctValue(value);
|
|
257
|
+
this.updateColumnValue(value).then(() => {
|
|
258
|
+
this.$emit('input', value);
|
|
259
|
+
this.$emit('change', picker);
|
|
260
|
+
});
|
|
261
|
+
},
|
|
262
|
+
updateColumnValue(value) {
|
|
263
|
+
let values = [];
|
|
264
|
+
const { type } = this.data;
|
|
265
|
+
const formatter = this.data.formatter || defaultFormatter;
|
|
266
|
+
const picker = this.getPicker();
|
|
267
|
+
if (type === 'time') {
|
|
268
|
+
const pair = value.split(':');
|
|
269
|
+
values = [formatter('hour', pair[0]), formatter('minute', pair[1])];
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
const date = new Date(value);
|
|
273
|
+
values = [
|
|
274
|
+
formatter('year', `${date.getFullYear()}`),
|
|
275
|
+
formatter('month', padZero(date.getMonth() + 1)),
|
|
276
|
+
];
|
|
277
|
+
if (type === 'date') {
|
|
278
|
+
values.push(formatter('day', padZero(date.getDate())));
|
|
279
|
+
}
|
|
280
|
+
if (type === 'datetime') {
|
|
281
|
+
values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes())));
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return this.set({ innerValue: value })
|
|
285
|
+
.then(() => this.updateColumns())
|
|
286
|
+
.then(() => picker.setValues(values));
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
created() {
|
|
290
|
+
const innerValue = this.correctValue(this.data.value);
|
|
291
|
+
this.updateColumnValue(innerValue).then(() => {
|
|
292
|
+
this.$emit('input', innerValue);
|
|
293
|
+
});
|
|
294
|
+
},
|
|
295
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<van-picker
|
|
2
|
+
class="van-datetime-picker"
|
|
3
|
+
active-class="active-class"
|
|
4
|
+
toolbar-class="toolbar-class"
|
|
5
|
+
column-class="column-class"
|
|
6
|
+
title="{{ title }}"
|
|
7
|
+
columns="{{ columns }}"
|
|
8
|
+
item-height="{{ itemHeight }}"
|
|
9
|
+
show-toolbar="{{ showToolbar }}"
|
|
10
|
+
visible-item-count="{{ visibleItemCount }}"
|
|
11
|
+
confirm-button-text="{{ confirmButtonText }}"
|
|
12
|
+
cancel-button-text="{{ cancelButtonText }}"
|
|
13
|
+
bind:change="onChange"
|
|
14
|
+
bind:confirm="onConfirm"
|
|
15
|
+
bind:cancel="onCancel"
|
|
16
|
+
/>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import '../common/index.wxss';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="miniprogram-api-typings" />
|
|
2
|
+
interface VantComponentInstance {
|
|
3
|
+
parent: WechatMiniprogram.Component.TrivialInstance;
|
|
4
|
+
children: WechatMiniprogram.Component.TrivialInstance[];
|
|
5
|
+
index: number;
|
|
6
|
+
$emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
|
|
7
|
+
setView: (value: Record<string, any>, callback?: () => void) => void;
|
|
8
|
+
}
|
|
9
|
+
export type VantComponentOptions<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption> = {
|
|
10
|
+
data?: Data;
|
|
11
|
+
field?: boolean;
|
|
12
|
+
classes?: string[];
|
|
13
|
+
mixins?: string[];
|
|
14
|
+
props?: Props;
|
|
15
|
+
relation?: {
|
|
16
|
+
relations: Record<string, WechatMiniprogram.Component.RelationOption>;
|
|
17
|
+
mixin: string;
|
|
18
|
+
};
|
|
19
|
+
watch?: Record<string, (...args: any[]) => any>;
|
|
20
|
+
methods?: Methods;
|
|
21
|
+
beforeCreate?: () => void;
|
|
22
|
+
created?: () => void;
|
|
23
|
+
mounted?: () => void;
|
|
24
|
+
destroyed?: () => void;
|
|
25
|
+
} & ThisType<VantComponentInstance & WechatMiniprogram.Component.Instance<Data & {
|
|
26
|
+
name: string;
|
|
27
|
+
value: any;
|
|
28
|
+
} & Record<string, any>, Props, Methods> & Record<string, any>>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/// <reference types="miniprogram-api-typings" />
|
|
2
|
+
/// <reference types="miniprogram-api-typings" />
|
|
3
|
+
export type Action = 'confirm' | 'cancel' | 'overlay';
|
|
4
|
+
type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
|
|
5
|
+
interface DialogOptions {
|
|
6
|
+
lang?: string;
|
|
7
|
+
show?: boolean;
|
|
8
|
+
title?: string;
|
|
9
|
+
width?: string | number | null;
|
|
10
|
+
zIndex?: number;
|
|
11
|
+
theme?: string;
|
|
12
|
+
context?: (() => DialogContext) | DialogContext;
|
|
13
|
+
message?: string;
|
|
14
|
+
overlay?: boolean;
|
|
15
|
+
selector?: string;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use custom-class instead
|
|
19
|
+
*/
|
|
20
|
+
className?: string;
|
|
21
|
+
customStyle?: string;
|
|
22
|
+
transition?: string;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated use beforeClose instead
|
|
25
|
+
*/
|
|
26
|
+
asyncClose?: boolean;
|
|
27
|
+
beforeClose?: null | ((action: Action) => Promise<void | boolean> | void);
|
|
28
|
+
businessId?: number;
|
|
29
|
+
sessionFrom?: string;
|
|
30
|
+
overlayStyle?: string;
|
|
31
|
+
appParameter?: string;
|
|
32
|
+
messageAlign?: string;
|
|
33
|
+
sendMessageImg?: string;
|
|
34
|
+
showMessageCard?: boolean;
|
|
35
|
+
sendMessagePath?: string;
|
|
36
|
+
sendMessageTitle?: string;
|
|
37
|
+
confirmButtonText?: string;
|
|
38
|
+
cancelButtonText?: string;
|
|
39
|
+
showConfirmButton?: boolean;
|
|
40
|
+
showCancelButton?: boolean;
|
|
41
|
+
closeOnClickOverlay?: boolean;
|
|
42
|
+
confirmButtonOpenType?: string;
|
|
43
|
+
}
|
|
44
|
+
declare const Dialog: {
|
|
45
|
+
(options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
|
|
46
|
+
alert(options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
|
|
47
|
+
confirm(options: DialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>;
|
|
48
|
+
close(): void;
|
|
49
|
+
stopLoading(): void;
|
|
50
|
+
currentOptions: DialogOptions;
|
|
51
|
+
defaultOptions: DialogOptions;
|
|
52
|
+
setDefaultOptions(options: DialogOptions): void;
|
|
53
|
+
resetDefaultOptions(): void;
|
|
54
|
+
};
|
|
55
|
+
export default Dialog;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
let queue = [];
|
|
2
|
+
const defaultOptions = {
|
|
3
|
+
show: false,
|
|
4
|
+
title: '',
|
|
5
|
+
width: null,
|
|
6
|
+
theme: 'default',
|
|
7
|
+
message: '',
|
|
8
|
+
zIndex: 100,
|
|
9
|
+
overlay: true,
|
|
10
|
+
selector: '#van-dialog',
|
|
11
|
+
className: '',
|
|
12
|
+
asyncClose: false,
|
|
13
|
+
beforeClose: null,
|
|
14
|
+
transition: 'scale',
|
|
15
|
+
customStyle: '',
|
|
16
|
+
messageAlign: '',
|
|
17
|
+
overlayStyle: '',
|
|
18
|
+
confirmButtonText: '确认',
|
|
19
|
+
cancelButtonText: '取消',
|
|
20
|
+
showConfirmButton: true,
|
|
21
|
+
showCancelButton: false,
|
|
22
|
+
closeOnClickOverlay: false,
|
|
23
|
+
confirmButtonOpenType: '',
|
|
24
|
+
};
|
|
25
|
+
let currentOptions = Object.assign({}, defaultOptions);
|
|
26
|
+
function getContext() {
|
|
27
|
+
const pages = getCurrentPages();
|
|
28
|
+
return pages[pages.length - 1];
|
|
29
|
+
}
|
|
30
|
+
const Dialog = (options) => {
|
|
31
|
+
options = Object.assign(Object.assign({}, currentOptions), options);
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const context = (typeof options.context === 'function'
|
|
34
|
+
? options.context()
|
|
35
|
+
: options.context) || getContext();
|
|
36
|
+
const dialog = context.selectComponent(options.selector);
|
|
37
|
+
delete options.context;
|
|
38
|
+
delete options.selector;
|
|
39
|
+
if (dialog) {
|
|
40
|
+
dialog.setData(Object.assign({ callback: (action, instance) => {
|
|
41
|
+
action === 'confirm' ? resolve(instance) : reject(instance);
|
|
42
|
+
} }, options));
|
|
43
|
+
wx.nextTick(() => {
|
|
44
|
+
dialog.setData({ show: true });
|
|
45
|
+
});
|
|
46
|
+
queue.push(dialog);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确');
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
Dialog.alert = (options) => Dialog(options);
|
|
54
|
+
Dialog.confirm = (options) => Dialog(Object.assign({ showCancelButton: true }, options));
|
|
55
|
+
Dialog.close = () => {
|
|
56
|
+
queue.forEach((dialog) => {
|
|
57
|
+
dialog.close();
|
|
58
|
+
});
|
|
59
|
+
queue = [];
|
|
60
|
+
};
|
|
61
|
+
Dialog.stopLoading = () => {
|
|
62
|
+
queue.forEach((dialog) => {
|
|
63
|
+
dialog.stopLoading();
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
Dialog.currentOptions = currentOptions;
|
|
67
|
+
Dialog.defaultOptions = defaultOptions;
|
|
68
|
+
Dialog.setDefaultOptions = (options) => {
|
|
69
|
+
currentOptions = Object.assign(Object.assign({}, currentOptions), options);
|
|
70
|
+
Dialog.currentOptions = currentOptions;
|
|
71
|
+
};
|
|
72
|
+
Dialog.resetDefaultOptions = () => {
|
|
73
|
+
currentOptions = Object.assign({}, defaultOptions);
|
|
74
|
+
Dialog.currentOptions = currentOptions;
|
|
75
|
+
};
|
|
76
|
+
Dialog.resetDefaultOptions();
|
|
77
|
+
export default Dialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { VantComponent } from '../common/component';
|
|
2
|
+
import { button } from '../mixins/button';
|
|
3
|
+
import { GRAY, RED } from '../common/color';
|
|
4
|
+
import { toPromise } from '../common/utils';
|
|
5
|
+
VantComponent({
|
|
6
|
+
mixins: [button],
|
|
7
|
+
classes: ['cancle-button-class', 'confirm-button-class'],
|
|
8
|
+
props: {
|
|
9
|
+
show: {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
observer(show) {
|
|
12
|
+
!show && this.stopLoading();
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
title: String,
|
|
16
|
+
message: String,
|
|
17
|
+
theme: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: 'default',
|
|
20
|
+
},
|
|
21
|
+
confirmButtonId: String,
|
|
22
|
+
className: String,
|
|
23
|
+
customStyle: String,
|
|
24
|
+
asyncClose: Boolean,
|
|
25
|
+
messageAlign: String,
|
|
26
|
+
beforeClose: null,
|
|
27
|
+
overlayStyle: String,
|
|
28
|
+
useSlot: Boolean,
|
|
29
|
+
useTitleSlot: Boolean,
|
|
30
|
+
useConfirmButtonSlot: Boolean,
|
|
31
|
+
useCancelButtonSlot: Boolean,
|
|
32
|
+
showCancelButton: Boolean,
|
|
33
|
+
closeOnClickOverlay: Boolean,
|
|
34
|
+
confirmButtonOpenType: String,
|
|
35
|
+
width: null,
|
|
36
|
+
zIndex: {
|
|
37
|
+
type: Number,
|
|
38
|
+
value: 2000,
|
|
39
|
+
},
|
|
40
|
+
confirmButtonText: {
|
|
41
|
+
type: String,
|
|
42
|
+
value: '确认',
|
|
43
|
+
},
|
|
44
|
+
cancelButtonText: {
|
|
45
|
+
type: String,
|
|
46
|
+
value: '取消',
|
|
47
|
+
},
|
|
48
|
+
confirmButtonColor: {
|
|
49
|
+
type: String,
|
|
50
|
+
value: RED,
|
|
51
|
+
},
|
|
52
|
+
cancelButtonColor: {
|
|
53
|
+
type: String,
|
|
54
|
+
value: GRAY,
|
|
55
|
+
},
|
|
56
|
+
showConfirmButton: {
|
|
57
|
+
type: Boolean,
|
|
58
|
+
value: true,
|
|
59
|
+
},
|
|
60
|
+
overlay: {
|
|
61
|
+
type: Boolean,
|
|
62
|
+
value: true,
|
|
63
|
+
},
|
|
64
|
+
transition: {
|
|
65
|
+
type: String,
|
|
66
|
+
value: 'scale',
|
|
67
|
+
},
|
|
68
|
+
rootPortal: {
|
|
69
|
+
type: Boolean,
|
|
70
|
+
value: false,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
data: {
|
|
74
|
+
loading: {
|
|
75
|
+
confirm: false,
|
|
76
|
+
cancel: false,
|
|
77
|
+
},
|
|
78
|
+
callback: (() => { }),
|
|
79
|
+
},
|
|
80
|
+
methods: {
|
|
81
|
+
onConfirm() {
|
|
82
|
+
this.handleAction('confirm');
|
|
83
|
+
},
|
|
84
|
+
onCancel() {
|
|
85
|
+
this.handleAction('cancel');
|
|
86
|
+
},
|
|
87
|
+
onClickOverlay() {
|
|
88
|
+
this.close('overlay');
|
|
89
|
+
},
|
|
90
|
+
close(action) {
|
|
91
|
+
this.setData({ show: false });
|
|
92
|
+
this.closeAction = action;
|
|
93
|
+
},
|
|
94
|
+
onAfterLeave() {
|
|
95
|
+
const { closeAction: action } = this;
|
|
96
|
+
this.$emit('close', action);
|
|
97
|
+
const { callback } = this.data;
|
|
98
|
+
if (callback) {
|
|
99
|
+
callback(action, this);
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
stopLoading() {
|
|
103
|
+
this.setData({
|
|
104
|
+
loading: {
|
|
105
|
+
confirm: false,
|
|
106
|
+
cancel: false,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
handleAction(action) {
|
|
111
|
+
this.$emit(action, { dialog: this });
|
|
112
|
+
const { asyncClose, beforeClose } = this.data;
|
|
113
|
+
if (!asyncClose && !beforeClose) {
|
|
114
|
+
this.close(action);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.setData({
|
|
118
|
+
[`loading.${action}`]: true,
|
|
119
|
+
});
|
|
120
|
+
if (beforeClose) {
|
|
121
|
+
toPromise(beforeClose(action)).then((value) => {
|
|
122
|
+
if (value) {
|
|
123
|
+
this.close(action);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.stopLoading();
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
});
|