stellar-ui-plus 1.16.18
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/README.md +176 -0
- package/common/css/common.scss +19 -0
- package/common/useProps.js +9 -0
- package/components/ste-animate/ATTRIBUTES.md +10 -0
- package/components/ste-animate/README.md +115 -0
- package/components/ste-animate/animate.scss +247 -0
- package/components/ste-animate/config.json +5 -0
- package/components/ste-animate/props.ts +9 -0
- package/components/ste-animate/ste-animate.easycom.json +39 -0
- package/components/ste-animate/ste-animate.scss +113 -0
- package/components/ste-animate/ste-animate.vue +67 -0
- package/components/ste-badge/ATTRIBUTES.md +17 -0
- package/components/ste-badge/README.md +162 -0
- package/components/ste-badge/config.json +5 -0
- package/components/ste-badge/props.ts +17 -0
- package/components/ste-badge/ste-badge.easycom.json +96 -0
- package/components/ste-badge/ste-badge.vue +157 -0
- package/components/ste-barcode/ATTRIBUTES.md +14 -0
- package/components/ste-barcode/README.md +28 -0
- package/components/ste-barcode/config.json +5 -0
- package/components/ste-barcode/encode.ts +317 -0
- package/components/ste-barcode/props.ts +7 -0
- package/components/ste-barcode/ste-barcode.easycom.json +44 -0
- package/components/ste-barcode/ste-barcode.vue +152 -0
- package/components/ste-button/ATTRIBUTES.md +32 -0
- package/components/ste-button/README.md +119 -0
- package/components/ste-button/config.json +5 -0
- package/components/ste-button/props.ts +21 -0
- package/components/ste-button/ste-button.easycom.json +168 -0
- package/components/ste-button/ste-button.vue +275 -0
- package/components/ste-calendar/ATTRIBUTES.md +31 -0
- package/components/ste-calendar/README.md +241 -0
- package/components/ste-calendar/config.json +5 -0
- package/components/ste-calendar/date.ts +110 -0
- package/components/ste-calendar/props.ts +26 -0
- package/components/ste-calendar/ste-calendar.easycom.json +172 -0
- package/components/ste-calendar/ste-calendar.vue +376 -0
- package/components/ste-calendar/useData.ts +30 -0
- package/components/ste-checkbox/ATTRIBUTES.md +25 -0
- package/components/ste-checkbox/README.md +302 -0
- package/components/ste-checkbox/config.json +5 -0
- package/components/ste-checkbox/props.ts +33 -0
- package/components/ste-checkbox/ste-checkbox.easycom.json +151 -0
- package/components/ste-checkbox/ste-checkbox.vue +206 -0
- package/components/ste-checkbox/type.d.ts +2 -0
- package/components/ste-checkbox-group/props.ts +34 -0
- package/components/ste-checkbox-group/ste-checkbox-group.vue +34 -0
- package/components/ste-code-input/ATTRIBUTES.md +22 -0
- package/components/ste-code-input/README.md +56 -0
- package/components/ste-code-input/config.json +5 -0
- package/components/ste-code-input/props.ts +19 -0
- package/components/ste-code-input/ste-code-input.easycom.json +99 -0
- package/components/ste-code-input/ste-code-input.vue +222 -0
- package/components/ste-date-picker/ATTRIBUTES.md +25 -0
- package/components/ste-date-picker/README.md +119 -0
- package/components/ste-date-picker/config.json +5 -0
- package/components/ste-date-picker/props.ts +62 -0
- package/components/ste-date-picker/ste-date-picker.easycom.json +137 -0
- package/components/ste-date-picker/ste-date-picker.vue +290 -0
- package/components/ste-date-picker/types.d.ts +3 -0
- package/components/ste-drag/ATTRIBUTES.md +13 -0
- package/components/ste-drag/README.md +88 -0
- package/components/ste-drag/config.json +5 -0
- package/components/ste-drag/props.ts +10 -0
- package/components/ste-drag/ste-drag.easycom.json +50 -0
- package/components/ste-drag/ste-drag.vue +172 -0
- package/components/ste-dropdown-menu/ATTRIBUTES.md +22 -0
- package/components/ste-dropdown-menu/README.md +325 -0
- package/components/ste-dropdown-menu/config.json +5 -0
- package/components/ste-dropdown-menu/constans.ts +4 -0
- package/components/ste-dropdown-menu/props.ts +30 -0
- package/components/ste-dropdown-menu/ste-dropdown-menu.easycom.json +111 -0
- package/components/ste-dropdown-menu/ste-dropdown-menu.scss +99 -0
- package/components/ste-dropdown-menu/ste-dropdown-menu.vue +223 -0
- package/components/ste-dropdown-menu-item/props.ts +17 -0
- package/components/ste-dropdown-menu-item/ste-dropdown-menu-item.scss +61 -0
- package/components/ste-dropdown-menu-item/ste-dropdown-menu-item.vue +84 -0
- package/components/ste-dropdown-menu-item/type.d.ts +4 -0
- package/components/ste-icon/ATTRIBUTES.md +19 -0
- package/components/ste-icon/README.md +72 -0
- package/components/ste-icon/config.json +5 -0
- package/components/ste-icon/iconfont.css +22 -0
- package/components/ste-icon/props.ts +14 -0
- package/components/ste-icon/ste-icon.easycom.json +71 -0
- package/components/ste-icon/ste-icon.vue +80 -0
- package/components/ste-image/ATTRIBUTES.md +21 -0
- package/components/ste-image/README.md +118 -0
- package/components/ste-image/config.json +5 -0
- package/components/ste-image/props.ts +15 -0
- package/components/ste-image/ste-image.easycom.json +189 -0
- package/components/ste-image/ste-image.vue +146 -0
- package/components/ste-index-item/props.ts +4 -0
- package/components/ste-index-item/ste-index-item.vue +83 -0
- package/components/ste-index-list/ATTRIBUTES.md +15 -0
- package/components/ste-index-list/README.md +138 -0
- package/components/ste-index-list/config.json +5 -0
- package/components/ste-index-list/props.ts +17 -0
- package/components/ste-index-list/ste-index-list.easycom.json +48 -0
- package/components/ste-index-list/ste-index-list.vue +109 -0
- package/components/ste-input/ATTRIBUTES.md +37 -0
- package/components/ste-input/README.md +130 -0
- package/components/ste-input/config.json +5 -0
- package/components/ste-input/props.ts +46 -0
- package/components/ste-input/ste-input.easycom.json +282 -0
- package/components/ste-input/ste-input.scss +124 -0
- package/components/ste-input/ste-input.vue +221 -0
- package/components/ste-loading/ATTRIBUTES.md +11 -0
- package/components/ste-loading/README.md +74 -0
- package/components/ste-loading/config.json +5 -0
- package/components/ste-loading/props.ts +8 -0
- package/components/ste-loading/ste-loading.easycom.json +54 -0
- package/components/ste-loading/ste-loading.vue +127 -0
- package/components/ste-media-preview/ATTRIBUTES.md +20 -0
- package/components/ste-media-preview/README.md +252 -0
- package/components/ste-media-preview/TouchScaleing.ts +117 -0
- package/components/ste-media-preview/config.json +5 -0
- package/components/ste-media-preview/props.ts +12 -0
- package/components/ste-media-preview/ste-media-preview.easycom.json +88 -0
- package/components/ste-media-preview/ste-media-preview.vue +201 -0
- package/components/ste-media-preview/useData.ts +63 -0
- package/components/ste-message-box/ATTRIBUTES.md +6 -0
- package/components/ste-message-box/README.md +222 -0
- package/components/ste-message-box/config.json +5 -0
- package/components/ste-message-box/constants.ts +25 -0
- package/components/ste-message-box/ste-message-box.easycom.json +14 -0
- package/components/ste-message-box/ste-message-box.ts +1 -0
- package/components/ste-message-box/ste-message-box.vue +355 -0
- package/components/ste-message-box/use-message-box.ts +26 -0
- package/components/ste-message-box/useData.ts +56 -0
- package/components/ste-notice-bar/ATTRIBUTES.md +22 -0
- package/components/ste-notice-bar/README.md +124 -0
- package/components/ste-notice-bar/config.json +5 -0
- package/components/ste-notice-bar/props.ts +15 -0
- package/components/ste-notice-bar/ste-notice-bar.easycom.json +109 -0
- package/components/ste-notice-bar/ste-notice-bar.vue +262 -0
- package/components/ste-number-keyboard/ATTRIBUTES.md +31 -0
- package/components/ste-number-keyboard/KeyboardVue.vue +142 -0
- package/components/ste-number-keyboard/README.md +192 -0
- package/components/ste-number-keyboard/config.json +5 -0
- package/components/ste-number-keyboard/props.ts +35 -0
- package/components/ste-number-keyboard/ste-number-keyboard.easycom.json +177 -0
- package/components/ste-number-keyboard/ste-number-keyboard.vue +81 -0
- package/components/ste-number-keyboard/useData.ts +144 -0
- package/components/ste-picker/props.ts +16 -0
- package/components/ste-picker/ste-picker.vue +194 -0
- package/components/ste-popup/ATTRIBUTES.md +24 -0
- package/components/ste-popup/README.md +135 -0
- package/components/ste-popup/config.json +6 -0
- package/components/ste-popup/event.ts +0 -0
- package/components/ste-popup/props.ts +19 -0
- package/components/ste-popup/ste-popup.easycom.json +122 -0
- package/components/ste-popup/ste-popup.vue +253 -0
- package/components/ste-price/ATTRIBUTES.md +26 -0
- package/components/ste-price/README.md +110 -0
- package/components/ste-price/config.json +5 -0
- package/components/ste-price/props.ts +23 -0
- package/components/ste-price/ste-price.easycom.json +154 -0
- package/components/ste-price/ste-price.vue +148 -0
- package/components/ste-progress/ATTRIBUTES.md +17 -0
- package/components/ste-progress/README.md +88 -0
- package/components/ste-progress/config.json +5 -0
- package/components/ste-progress/props.ts +16 -0
- package/components/ste-progress/ste-progress.easycom.json +80 -0
- package/components/ste-progress/ste-progress.vue +135 -0
- package/components/ste-qrcode/ATTRIBUTES.md +16 -0
- package/components/ste-qrcode/README.md +34 -0
- package/components/ste-qrcode/config.json +5 -0
- package/components/ste-qrcode/props.ts +16 -0
- package/components/ste-qrcode/ste-qrcode.easycom.json +56 -0
- package/components/ste-qrcode/ste-qrcode.vue +134 -0
- package/components/ste-qrcode/uqrcode.d.ts +57 -0
- package/components/ste-qrcode/uqrcode.js +34 -0
- package/components/ste-radio/ATTRIBUTES.md +25 -0
- package/components/ste-radio/README.md +260 -0
- package/components/ste-radio/config.json +5 -0
- package/components/ste-radio/props.ts +33 -0
- package/components/ste-radio/ste-radio.easycom.json +150 -0
- package/components/ste-radio/ste-radio.vue +188 -0
- package/components/ste-radio/type.d.ts +2 -0
- package/components/ste-radio-group/props.ts +33 -0
- package/components/ste-radio-group/ste-radio-group.vue +34 -0
- package/components/ste-rate/ATTRIBUTES.md +21 -0
- package/components/ste-rate/README.md +97 -0
- package/components/ste-rate/config.json +5 -0
- package/components/ste-rate/props.ts +16 -0
- package/components/ste-rate/ste-rate.easycom.json +85 -0
- package/components/ste-rate/ste-rate.vue +143 -0
- package/components/ste-read-more/ATTRIBUTES.md +16 -0
- package/components/ste-read-more/README.md +93 -0
- package/components/ste-read-more/config.json +5 -0
- package/components/ste-read-more/props.ts +9 -0
- package/components/ste-read-more/ste-read-more.easycom.json +54 -0
- package/components/ste-read-more/ste-read-more.vue +106 -0
- package/components/ste-rich-text/ATTRIBUTES.md +8 -0
- package/components/ste-rich-text/README.md +26 -0
- package/components/ste-rich-text/config.json +5 -0
- package/components/ste-rich-text/props.ts +8 -0
- package/components/ste-rich-text/ste-rich-text.easycom.json +40 -0
- package/components/ste-rich-text/ste-rich-text.vue +33 -0
- package/components/ste-scroll-to/ATTRIBUTES.md +11 -0
- package/components/ste-scroll-to/README.md +47 -0
- package/components/ste-scroll-to/config.json +5 -0
- package/components/ste-scroll-to/props.ts +17 -0
- package/components/ste-scroll-to/ste-scroll-to.easycom.json +25 -0
- package/components/ste-scroll-to/ste-scroll-to.vue +42 -0
- package/components/ste-scroll-to/useData.ts +214 -0
- package/components/ste-scroll-to-item/ste-scroll-to-item.vue +24 -0
- package/components/ste-search/ATTRIBUTES.md +39 -0
- package/components/ste-search/README.md +232 -0
- package/components/ste-search/config.json +5 -0
- package/components/ste-search/props.ts +124 -0
- package/components/ste-search/ste-search.easycom.json +232 -0
- package/components/ste-search/ste-search.vue +379 -0
- package/components/ste-search/useData.ts +34 -0
- package/components/ste-select/ATTRIBUTES.md +39 -0
- package/components/ste-select/README.md +324 -0
- package/components/ste-select/config.json +5 -0
- package/components/ste-select/datapager.vue +54 -0
- package/components/ste-select/datetime.vue +109 -0
- package/components/ste-select/defaultDate.ts +138 -0
- package/components/ste-select/props.ts +67 -0
- package/components/ste-select/ste-select.easycom.json +287 -0
- package/components/ste-select/ste-select.vue +437 -0
- package/components/ste-select/useData.ts +471 -0
- package/components/ste-signature/ATTRIBUTES.md +18 -0
- package/components/ste-signature/README.md +97 -0
- package/components/ste-signature/config.json +5 -0
- package/components/ste-signature/props.ts +12 -0
- package/components/ste-signature/ste-signature.easycom.json +74 -0
- package/components/ste-signature/ste-signature.vue +183 -0
- package/components/ste-signature/types.d.ts +4 -0
- package/components/ste-slider/ATTRIBUTES.md +25 -0
- package/components/ste-slider/README.md +149 -0
- package/components/ste-slider/config.json +5 -0
- package/components/ste-slider/props.ts +32 -0
- package/components/ste-slider/ste-slider.easycom.json +128 -0
- package/components/ste-slider/ste-slider.scss +150 -0
- package/components/ste-slider/ste-slider.vue +293 -0
- package/components/ste-slider/type.d.ts +4 -0
- package/components/ste-slider/useData.ts +79 -0
- package/components/ste-step/props.ts +10 -0
- package/components/ste-step/ste-step.scss +104 -0
- package/components/ste-step/ste-step.vue +122 -0
- package/components/ste-stepper/ATTRIBUTES.md +33 -0
- package/components/ste-stepper/README.md +172 -0
- package/components/ste-stepper/config.json +5 -0
- package/components/ste-stepper/props.ts +41 -0
- package/components/ste-stepper/ste-stepper.easycom.json +220 -0
- package/components/ste-stepper/ste-stepper.vue +249 -0
- package/components/ste-steps/ATTRIBUTES.md +12 -0
- package/components/ste-steps/README.md +139 -0
- package/components/ste-steps/config.json +5 -0
- package/components/ste-steps/props.ts +18 -0
- package/components/ste-steps/ste-steps.easycom.json +46 -0
- package/components/ste-steps/ste-steps.vue +44 -0
- package/components/ste-sticky/ATTRIBUTES.md +15 -0
- package/components/ste-sticky/README.md +56 -0
- package/components/ste-sticky/config.json +5 -0
- package/components/ste-sticky/props.ts +7 -0
- package/components/ste-sticky/ste-sticky.easycom.json +48 -0
- package/components/ste-sticky/ste-sticky.vue +88 -0
- package/components/ste-swipe-action/ATTRIBUTES.md +16 -0
- package/components/ste-swipe-action/README.md +195 -0
- package/components/ste-swipe-action/config.json +5 -0
- package/components/ste-swipe-action/props.ts +23 -0
- package/components/ste-swipe-action/ste-swipe-action.easycom.json +74 -0
- package/components/ste-swipe-action/ste-swipe-action.vue +138 -0
- package/components/ste-swipe-action/useData.ts +204 -0
- package/components/ste-swipe-action-group/ATTRIBUTES.md +17 -0
- package/components/ste-swipe-action-group/props.ts +22 -0
- package/components/ste-swipe-action-group/ste-swipe-action-group.easycom.json +90 -0
- package/components/ste-swipe-action-group/ste-swipe-action-group.vue +57 -0
- package/components/ste-swiper/ATTRIBUTES.md +24 -0
- package/components/ste-swiper/README.md +156 -0
- package/components/ste-swiper/config.json +5 -0
- package/components/ste-swiper/props.ts +41 -0
- package/components/ste-swiper/ste-swiper.easycom.json +123 -0
- package/components/ste-swiper/ste-swiper.vue +98 -0
- package/components/ste-swiper/useData.ts +365 -0
- package/components/ste-swiper-item/ste-swiper-item.vue +41 -0
- package/components/ste-switch/ATTRIBUTES.md +17 -0
- package/components/ste-switch/README.md +105 -0
- package/components/ste-switch/config.json +5 -0
- package/components/ste-switch/props.ts +9 -0
- package/components/ste-switch/ste-switch.easycom.json +60 -0
- package/components/ste-switch/ste-switch.vue +96 -0
- package/components/ste-tab/ATTRIBUTES.md +14 -0
- package/components/ste-tab/props.ts +25 -0
- package/components/ste-tab/ste-tab.easycom.json +56 -0
- package/components/ste-tab/ste-tab.vue +26 -0
- package/components/ste-table/ATTRIBUTES.md +41 -0
- package/components/ste-table/README.md +638 -0
- package/components/ste-table/config.json +5 -0
- package/components/ste-table/props.ts +72 -0
- package/components/ste-table/ste-table.easycom.json +188 -0
- package/components/ste-table/ste-table.vue +427 -0
- package/components/ste-table/types.d.ts +3 -0
- package/components/ste-table/useData.ts +233 -0
- package/components/ste-table/utils.ts +11 -0
- package/components/ste-table-column/checkbox-icon.vue +35 -0
- package/components/ste-table-column/common.scss +52 -0
- package/components/ste-table-column/props.ts +18 -0
- package/components/ste-table-column/radio-icon.vue +99 -0
- package/components/ste-table-column/ste-table-column.vue +169 -0
- package/components/ste-table-column/var.scss +1 -0
- package/components/ste-tabs/ATTRIBUTES.md +52 -0
- package/components/ste-tabs/README.md +165 -0
- package/components/ste-tabs/config.json +5 -0
- package/components/ste-tabs/props.ts +133 -0
- package/components/ste-tabs/ste-tabs.easycom.json +278 -0
- package/components/ste-tabs/ste-tabs.vue +447 -0
- package/components/ste-tabs/useData.ts +364 -0
- package/components/ste-text/ATTRIBUTES.md +9 -0
- package/components/ste-text/README.md +58 -0
- package/components/ste-text/config.json +6 -0
- package/components/ste-text/props.ts +10 -0
- package/components/ste-text/ste-text.easycom.json +30 -0
- package/components/ste-text/ste-text.vue +46 -0
- package/components/ste-toast/ATTRIBUTES.md +15 -0
- package/components/ste-toast/README.md +222 -0
- package/components/ste-toast/config.json +5 -0
- package/components/ste-toast/props.ts +7 -0
- package/components/ste-toast/ste-toast.easycom.json +73 -0
- package/components/ste-toast/ste-toast.vue +209 -0
- package/components/ste-toast/use-toast.ts +26 -0
- package/components/ste-touch-swipe/ATTRIBUTES.md +18 -0
- package/components/ste-touch-swipe/README.md +89 -0
- package/components/ste-touch-swipe/TouchEvent.ts +79 -0
- package/components/ste-touch-swipe/config.json +5 -0
- package/components/ste-touch-swipe/props.ts +23 -0
- package/components/ste-touch-swipe/ste-touch-swipe.easycom.json +83 -0
- package/components/ste-touch-swipe/ste-touch-swipe.vue +283 -0
- package/components/ste-touch-swipe/useData.ts +51 -0
- package/components/ste-touch-swipe-item/ste-touch-swipe-item.vue +32 -0
- package/components/ste-tour/ATTRIBUTES.md +26 -0
- package/components/ste-tour/README.md +134 -0
- package/components/ste-tour/config.json +5 -0
- package/components/ste-tour/props.ts +45 -0
- package/components/ste-tour/ste-tour.easycom.json +120 -0
- package/components/ste-tour/ste-tour.vue +152 -0
- package/components/ste-tour/useData.ts +220 -0
- package/components/ste-tree/ATTRIBUTES.md +19 -0
- package/components/ste-tree/README.md +217 -0
- package/components/ste-tree/config.json +5 -0
- package/components/ste-tree/props.ts +24 -0
- package/components/ste-tree/ste-tree.easycom.json +106 -0
- package/components/ste-tree/ste-tree.vue +140 -0
- package/components/ste-tree/useData.ts +219 -0
- package/components/ste-upload/ATTRIBUTES.md +35 -0
- package/components/ste-upload/README.md +208 -0
- package/components/ste-upload/ReadFile.ts +305 -0
- package/components/ste-upload/config.json +5 -0
- package/components/ste-upload/props.ts +25 -0
- package/components/ste-upload/ste-upload.easycom.json +267 -0
- package/components/ste-upload/ste-upload.vue +386 -0
- package/components/ste-upload/useData.ts +46 -0
- package/components/ste-video/ATTRIBUTES.md +34 -0
- package/components/ste-video/README.md +48 -0
- package/components/ste-video/config.json +5 -0
- package/components/ste-video/props.ts +86 -0
- package/components/ste-video/ste-video.easycom.json +226 -0
- package/components/ste-video/ste-video.scss +201 -0
- package/components/ste-video/ste-video.vue +390 -0
- package/components/ste-video/types.d.ts +4 -0
- package/components/ste-video/useData.ts +140 -0
- package/composables.ts +2 -0
- package/config/color.ts +16 -0
- package/config/index.ts +48 -0
- package/index.ts +118 -0
- package/package.json +22 -0
- package/store/color.ts +24 -0
- package/store/index.ts +12 -0
- package/store/message-box.ts +54 -0
- package/store/toast.ts +50 -0
- package/types/components.d.ts +124 -0
- package/types/event.d.ts +51 -0
- package/types/index.d.ts +112 -0
- package/types/refComponents.d.ts +118 -0
- package/utils/Color.ts +66 -0
- package/utils/System.ts +114 -0
- package/utils/mixin.ts +122 -0
- package/utils/utils.ts +520 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import utils from '../../utils/utils';
|
|
3
|
+
import { nextTick, onMounted, watch, defineOptions, getCurrentInstance, type ComponentPublicInstance } from 'vue';
|
|
4
|
+
import propsData from './props';
|
|
5
|
+
|
|
6
|
+
import UQRCode, { type URCodeCanvasContext } from './uqrcode';
|
|
7
|
+
|
|
8
|
+
const componentName = `ste-qrcode`;
|
|
9
|
+
defineOptions({
|
|
10
|
+
name: componentName,
|
|
11
|
+
options: {
|
|
12
|
+
virtualHost: true,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
const instance = getCurrentInstance() as unknown as ComponentPublicInstance;
|
|
16
|
+
const props = defineProps(propsData);
|
|
17
|
+
const canvasId = 'ste-qrcode-' + utils.guid(8);
|
|
18
|
+
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
initCanvas();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
watch(
|
|
24
|
+
() => props.content,
|
|
25
|
+
() => {
|
|
26
|
+
initCanvas();
|
|
27
|
+
},
|
|
28
|
+
{}
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
const initCanvas = () => {
|
|
32
|
+
if (!props.content) return;
|
|
33
|
+
nextTick(() => {
|
|
34
|
+
// #ifdef H5 || APP
|
|
35
|
+
const context = uni.createCanvasContext(canvasId, instance);
|
|
36
|
+
draw(context);
|
|
37
|
+
// #endif
|
|
38
|
+
|
|
39
|
+
// #ifdef MP-WEIXIN || MP-ALIPAY
|
|
40
|
+
uni.createSelectorQuery()
|
|
41
|
+
.in(instance)
|
|
42
|
+
.select(`#${canvasId}`)
|
|
43
|
+
.node(res => {
|
|
44
|
+
const context = res.node.getContext('2d');
|
|
45
|
+
const dpr = utils.System.getWindowInfo().pixelRatio;
|
|
46
|
+
res.node.width = props.size * dpr;
|
|
47
|
+
res.node.height = props.size * dpr;
|
|
48
|
+
context.scale(dpr, dpr);
|
|
49
|
+
draw(context, res.node);
|
|
50
|
+
})
|
|
51
|
+
.exec();
|
|
52
|
+
// #endif
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const draw = (ctx: URCodeCanvasContext, canvas: any = null) => {
|
|
57
|
+
const qr = new UQRCode();
|
|
58
|
+
// #ifdef MP-WEIXIN || MP-ALIPAY
|
|
59
|
+
qr.loadImage = src => {
|
|
60
|
+
// 需要返回Promise对象,小程序下获取网络图片信息需先配置download域名白名单才能生效
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
var img = canvas.createImage();
|
|
63
|
+
img.src = src;
|
|
64
|
+
img.onload = () => {
|
|
65
|
+
// resolve返回img
|
|
66
|
+
resolve(img);
|
|
67
|
+
};
|
|
68
|
+
img.onerror = (err: any) => {
|
|
69
|
+
// reject返回错误信息
|
|
70
|
+
reject(err);
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// #endif
|
|
76
|
+
|
|
77
|
+
// #ifdef H5
|
|
78
|
+
qr.loadImage = src => {
|
|
79
|
+
// 需要返回Promise对象
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
uni.getImageInfo({
|
|
82
|
+
src,
|
|
83
|
+
success: res => {
|
|
84
|
+
resolve(res.path);
|
|
85
|
+
},
|
|
86
|
+
fail: err => {
|
|
87
|
+
// reject返回错误信息
|
|
88
|
+
reject(err);
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// #endif
|
|
95
|
+
|
|
96
|
+
qr.backgroundColor = props.background;
|
|
97
|
+
qr.foregroundColor = props.foreground;
|
|
98
|
+
qr.foregroundImageSrc = props.foregroundImageSrc;
|
|
99
|
+
props.foregroundImageWidth ? (qr.foregroundImageWidth = props.foregroundImageWidth) : '';
|
|
100
|
+
props.foregroundImageHeight ? (qr.foregroundImageHeight = props.foregroundImageHeight) : '';
|
|
101
|
+
// 设置二维码内容
|
|
102
|
+
qr.data = props.content;
|
|
103
|
+
// 设置二维码大小,必须与canvas设置的宽高一致
|
|
104
|
+
qr.size = props.size;
|
|
105
|
+
// 调用制作二维码方法
|
|
106
|
+
qr.make();
|
|
107
|
+
|
|
108
|
+
// 设置uQRCode实例的canvas上下文
|
|
109
|
+
qr.canvasContext = ctx;
|
|
110
|
+
// 调用绘制方法将二维码图案绘制到canvas上
|
|
111
|
+
qr.drawCanvas();
|
|
112
|
+
};
|
|
113
|
+
</script>
|
|
114
|
+
|
|
115
|
+
<template>
|
|
116
|
+
<view class="ste-qrcode-root">
|
|
117
|
+
<!-- #ifdef H5 || APP -->
|
|
118
|
+
<canvas :style="{ width: size + 'px', height: size + 'px' }" :canvas-id="canvasId" :id="canvasId" class="h5-canvas"></canvas>
|
|
119
|
+
<!-- #endif -->
|
|
120
|
+
|
|
121
|
+
<!-- #ifdef MP-WEIXIN || MP-ALIPAY -->
|
|
122
|
+
<canvas type="2d" :id="canvasId" :style="{ width: size + 'px', height: size + 'px' }" class="mp-canvas"></canvas>
|
|
123
|
+
<!-- #endif -->
|
|
124
|
+
</view>
|
|
125
|
+
</template>
|
|
126
|
+
|
|
127
|
+
<style lang="scss" scoped>
|
|
128
|
+
.ste-barcode-root {
|
|
129
|
+
width: fit-content;
|
|
130
|
+
display: flex;
|
|
131
|
+
justify-content: center;
|
|
132
|
+
align-items: center;
|
|
133
|
+
}
|
|
134
|
+
</style>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// uqrcode.d.ts
|
|
2
|
+
|
|
3
|
+
export type URCodeCanvasContext = CanvasRenderingContext2D | UniApp.CanvasContext
|
|
4
|
+
|
|
5
|
+
export interface UQRCodeOptions {
|
|
6
|
+
data: string // 二维码的数据内容
|
|
7
|
+
size: number // 二维码尺寸
|
|
8
|
+
margin: number // 二维码边距
|
|
9
|
+
useDynamicSize: boolean
|
|
10
|
+
dynamicSize: number // 动态尺寸数值
|
|
11
|
+
canvasContext: URCodeCanvasContext // Canvas 的上下文环境
|
|
12
|
+
modules: any[] // 二维码模块数据
|
|
13
|
+
moduleCount: number // 模块数量
|
|
14
|
+
backgroundColor: string
|
|
15
|
+
backgroundImageSrc: string
|
|
16
|
+
backgroundImageWidth: number
|
|
17
|
+
backgroundImageHeight: number
|
|
18
|
+
backgroundImageX: number
|
|
19
|
+
backgroundImageY: number
|
|
20
|
+
foregroundColor: string
|
|
21
|
+
foregroundImageSrc: string
|
|
22
|
+
foregroundImageWidth: number
|
|
23
|
+
foregroundImageHeight: number
|
|
24
|
+
foregroundImageX: number
|
|
25
|
+
foregroundImageY: number
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default class UQRCode {
|
|
29
|
+
constructor(options?: UQRCodeOptions) // 构造函数,可以接受配置选项
|
|
30
|
+
|
|
31
|
+
data: string // 二维码的数据内容
|
|
32
|
+
size: number // 二维码尺寸
|
|
33
|
+
margin: number // 二维码边距
|
|
34
|
+
useDynamicSize: boolean
|
|
35
|
+
dynamicSize: number // 动态尺寸数值
|
|
36
|
+
canvasContext: URCodeCanvasContext // Canvas 的上下文环境
|
|
37
|
+
modules: any[] // 二维码模块数据
|
|
38
|
+
moduleCount: number // 模块数量
|
|
39
|
+
backgroundColor: string
|
|
40
|
+
backgroundImageSrc: string
|
|
41
|
+
backgroundImageWidth: number
|
|
42
|
+
backgroundImageHeight: number
|
|
43
|
+
backgroundImageX: number
|
|
44
|
+
backgroundImageY: number
|
|
45
|
+
foregroundColor: string
|
|
46
|
+
foregroundImageSrc: string
|
|
47
|
+
foregroundImageWidth: number
|
|
48
|
+
foregroundImageHeight: number
|
|
49
|
+
foregroundImageX: number
|
|
50
|
+
foregroundImageY: number
|
|
51
|
+
|
|
52
|
+
loadImage(src: string): Promise
|
|
53
|
+
setOptions(options: UQRCodeOptions): void // 设置uQRCode属性
|
|
54
|
+
make(): void // 创建二维码
|
|
55
|
+
drawCanvas(): Promise<void> // 将二维码绘制到 Canvas 上
|
|
56
|
+
loadCanvasImage(src: string): Promise<HTMLImageElement> // 加载canvas图片方法
|
|
57
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//---------------------------------------------------------------------
|
|
2
|
+
// uQRCode二维码生成插件 v4.0.7
|
|
3
|
+
//
|
|
4
|
+
// uQRCode是一款基于Javascript环境开发的二维码生成插件,适用所有Javascript运行环境的前端应用和Node.js。
|
|
5
|
+
//
|
|
6
|
+
// Copyright (c) Sansnn uQRCode All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
// Licensed under the Apache License, Version 2.0.
|
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
//
|
|
11
|
+
// github地址:
|
|
12
|
+
// https://github.com/Sansnn/uQRCode
|
|
13
|
+
//
|
|
14
|
+
// npm地址:
|
|
15
|
+
// https://www.npmjs.com/package/uqrcodejs
|
|
16
|
+
//
|
|
17
|
+
// uni-app插件市场地址:
|
|
18
|
+
// https://ext.dcloud.net.cn/plugin?id=1287
|
|
19
|
+
//
|
|
20
|
+
// 复制使用请保留本段注释,感谢支持开源!
|
|
21
|
+
//
|
|
22
|
+
//---------------------------------------------------------------------
|
|
23
|
+
|
|
24
|
+
//---------------------------------------------------------------------
|
|
25
|
+
// 当前文件格式为 es,将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esm,module)
|
|
26
|
+
// 如需在其他环境使用,请获取环境对应的格式文件
|
|
27
|
+
// 格式说明:
|
|
28
|
+
// amd - 异步模块定义,适用于 RequireJS 等模块加载器
|
|
29
|
+
// cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs)
|
|
30
|
+
// es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esm,module)
|
|
31
|
+
// umd - 通用模块定义,生成的包同时支持 amd、cjs 和 iife 三种格式
|
|
32
|
+
//---------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
function o(o){this.mode=r.MODE_8BIT_BYTE,this.data=o;}function e(o,e){this.typeNumber=o,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=new Array;}o.prototype={getLength:function(o){return this.data.length},write:function(o){for(var e=0;e<this.data.length;e++)o.put(this.data.charCodeAt(e),8);}},e.prototype={addData:function(e){var r=new o(e);this.dataList.push(r),this.dataCache=null;},isDark:function(o,e){if(o<0||this.moduleCount<=o||e<0||this.moduleCount<=e)throw new Error(o+","+e);return this.modules[o][e]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var o=1;for(o=1;o<40;o++){for(var e=v.getRSBlocks(o,this.errorCorrectLevel),r=new p,t=0,i=0;i<e.length;i++)t+=e[i].dataCount;for(i=0;i<this.dataList.length;i++){var n=this.dataList[i];r.put(n.mode,4),r.put(n.getLength(),h.getLengthInBits(n.mode,o)),n.write(r);}if(r.getLengthInBits()<=8*t)break}this.typeNumber=o;}this.makeImpl(!1,this.getBestMaskPattern());},makeImpl:function(o,r){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var t=0;t<this.moduleCount;t++){this.modules[t]=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++)this.modules[t][i]=null;}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(o,r),this.typeNumber>=7&&this.setupTypeNumber(o),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r);},setupPositionProbePattern:function(o,e){for(var r=-1;r<=7;r++)if(!(o+r<=-1||this.moduleCount<=o+r))for(var t=-1;t<=7;t++)e+t<=-1||this.moduleCount<=e+t||(this.modules[o+r][e+t]=0<=r&&r<=6&&(0==t||6==t)||0<=t&&t<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=t&&t<=4);},getBestMaskPattern:function(){for(var o=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var t=h.getLostPoint(this);(0==r||o>t)&&(o=t,e=r);}return e},createMovieClip:function(o,e,r){var t=o.createEmptyMovieClip(e,r);this.make();for(var i=0;i<this.modules.length;i++)for(var n=1*i,a=0;a<this.modules[i].length;a++){var d=1*a;this.modules[i][a]&&(t.beginFill(0,100),t.moveTo(d,n),t.lineTo(d+1,n),t.lineTo(d+1,n+1),t.lineTo(d,n+1),t.endFill());}return t},setupTimingPattern:function(){for(var o=8;o<this.moduleCount-8;o++)null==this.modules[o][6]&&(this.modules[o][6]=o%2==0);for(var e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0);},setupPositionAdjustPattern:function(){for(var o=h.getPatternPosition(this.typeNumber),e=0;e<o.length;e++)for(var r=0;r<o.length;r++){var t=o[e],i=o[r];if(null==this.modules[t][i])for(var n=-2;n<=2;n++)for(var a=-2;a<=2;a++)this.modules[t+n][i+a]=-2==n||2==n||-2==a||2==a||0==n&&0==a;}},setupTypeNumber:function(o){for(var e=h.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var t=!o&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=t;}for(r=0;r<18;r++){t=!o&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=t;}},setupTypeInfo:function(o,e){for(var r=this.errorCorrectLevel<<3|e,t=h.getBCHTypeInfo(r),i=0;i<15;i++){var n=!o&&1==(t>>i&1);i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n;}for(i=0;i<15;i++){n=!o&&1==(t>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n;}this.modules[this.moduleCount-8][8]=!o;},mapData:function(o,e){for(var r=-1,t=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var d=0;d<2;d++)if(null==this.modules[t][a-d]){var u=!1;n<o.length&&(u=1==(o[n]>>>i&1)),h.getMask(e,t,a-d)&&(u=!u),this.modules[t][a-d]=u,-1==--i&&(n++,i=7);}if((t+=r)<0||this.moduleCount<=t){t-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(o,r,t){for(var i=v.getRSBlocks(o,r),n=new p,a=0;a<t.length;a++){var d=t[a];n.put(d.mode,4),n.put(d.getLength(),h.getLengthInBits(d.mode,o)),d.write(n);}var u=0;for(a=0;a<i.length;a++)u+=i[a].dataCount;if(n.getLengthInBits()>8*u)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*u+")");for(n.getLengthInBits()+4<=8*u&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*u||(n.put(e.PAD0,8),n.getLengthInBits()>=8*u));)n.put(e.PAD1,8);return e.createBytes(n,i)},e.createBytes=function(o,e){for(var r=0,t=0,i=0,n=new Array(e.length),a=new Array(e.length),d=0;d<e.length;d++){var u=e[d].dataCount,s=e[d].totalCount-u;t=Math.max(t,u),i=Math.max(i,s),n[d]=new Array(u);for(var g=0;g<n[d].length;g++)n[d][g]=255&o.buffer[g+r];r+=u;var l=h.getErrorCorrectPolynomial(s),c=new f(n[d],l.getLength()-1).mod(l);a[d]=new Array(l.getLength()-1);for(g=0;g<a[d].length;g++){var m=g+c.getLength()-a[d].length;a[d][g]=m>=0?c.get(m):0;}}var v=0;for(g=0;g<e.length;g++)v+=e[g].totalCount;var p=new Array(v),C=0;for(g=0;g<t;g++)for(d=0;d<e.length;d++)g<n[d].length&&(p[C++]=n[d][g]);for(g=0;g<i;g++)for(d=0;d<e.length;d++)g<a[d].length&&(p[C++]=a[d][g]);return p};for(var r={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},t={L:1,M:0,Q:3,H:2},i=0,n=1,a=2,d=3,u=4,s=5,g=6,l=7,h={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(o){for(var e=o<<10;h.getBCHDigit(e)-h.getBCHDigit(h.G15)>=0;)e^=h.G15<<h.getBCHDigit(e)-h.getBCHDigit(h.G15);return (o<<10|e)^h.G15_MASK},getBCHTypeNumber:function(o){for(var e=o<<12;h.getBCHDigit(e)-h.getBCHDigit(h.G18)>=0;)e^=h.G18<<h.getBCHDigit(e)-h.getBCHDigit(h.G18);return o<<12|e},getBCHDigit:function(o){for(var e=0;0!=o;)e++,o>>>=1;return e},getPatternPosition:function(o){return h.PATTERN_POSITION_TABLE[o-1]},getMask:function(o,e,r){switch(o){case i:return (e+r)%2==0;case n:return e%2==0;case a:return r%3==0;case d:return (e+r)%3==0;case u:return (Math.floor(e/2)+Math.floor(r/3))%2==0;case s:return e*r%2+e*r%3==0;case g:return (e*r%2+e*r%3)%2==0;case l:return (e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+o)}},getErrorCorrectPolynomial:function(o){for(var e=new f([1],0),r=0;r<o;r++)e=e.multiply(new f([1,c.gexp(r)],0));return e},getLengthInBits:function(o,e){if(1<=e&&e<10)switch(o){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+o)}else if(e<27)switch(o){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+o)}else {if(!(e<41))throw new Error("type:"+e);switch(o){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+o)}}},getLostPoint:function(o){for(var e=o.getModuleCount(),r=0,t=0;t<e;t++)for(var i=0;i<e;i++){for(var n=0,a=o.isDark(t,i),d=-1;d<=1;d++)if(!(t+d<0||e<=t+d))for(var u=-1;u<=1;u++)i+u<0||e<=i+u||0==d&&0==u||a==o.isDark(t+d,i+u)&&n++;n>5&&(r+=3+n-5);}for(t=0;t<e-1;t++)for(i=0;i<e-1;i++){var s=0;o.isDark(t,i)&&s++,o.isDark(t+1,i)&&s++,o.isDark(t,i+1)&&s++,o.isDark(t+1,i+1)&&s++,0!=s&&4!=s||(r+=3);}for(t=0;t<e;t++)for(i=0;i<e-6;i++)o.isDark(t,i)&&!o.isDark(t,i+1)&&o.isDark(t,i+2)&&o.isDark(t,i+3)&&o.isDark(t,i+4)&&!o.isDark(t,i+5)&&o.isDark(t,i+6)&&(r+=40);for(i=0;i<e;i++)for(t=0;t<e-6;t++)o.isDark(t,i)&&!o.isDark(t+1,i)&&o.isDark(t+2,i)&&o.isDark(t+3,i)&&o.isDark(t+4,i)&&!o.isDark(t+5,i)&&o.isDark(t+6,i)&&(r+=40);var g=0;for(i=0;i<e;i++)for(t=0;t<e;t++)o.isDark(t,i)&&g++;return r+=10*(Math.abs(100*g/e/e-50)/5)}},c={glog:function(o){if(o<1)throw new Error("glog("+o+")");return c.LOG_TABLE[o]},gexp:function(o){for(;o<0;)o+=255;for(;o>=256;)o-=255;return c.EXP_TABLE[o]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},m=0;m<8;m++)c.EXP_TABLE[m]=1<<m;for(m=8;m<256;m++)c.EXP_TABLE[m]=c.EXP_TABLE[m-4]^c.EXP_TABLE[m-5]^c.EXP_TABLE[m-6]^c.EXP_TABLE[m-8];for(m=0;m<255;m++)c.LOG_TABLE[c.EXP_TABLE[m]]=m;function f(o,e){if(null==o.length)throw new Error(o.length+"/"+e);for(var r=0;r<o.length&&0==o[r];)r++;this.num=new Array(o.length-r+e);for(var t=0;t<o.length-r;t++)this.num[t]=o[t+r];}function v(o,e){this.totalCount=o,this.dataCount=e;}function p(){this.buffer=new Array,this.length=0;}function C(o){return o.setFillStyle=o.setFillStyle||function(e){o.fillStyle=e;},o.setFontSize=o.setFontSize||function(e){o.font=`${e}px`;},o.setTextAlign=o.setTextAlign||function(e){o.textAlign=e;},o.setTextBaseline=o.setTextBaseline||function(e){o.textBaseline=e;},o.setGlobalAlpha=o.setGlobalAlpha||function(e){o.globalAlpha=e;},o.setStrokeStyle=o.setStrokeStyle||function(e){o.strokeStyle=e;},o.setShadow=o.setShadow||function(e,r,t,i){o.shadowOffsetX=e,o.shadowOffsetY=r,o.shadowBlur=t,o.shadowColor=i;},o.draw=o.draw||function(o,e){e&&e();},o}function b(o,e){var r=this.data="";this.dataEncode=!0;var t=this.size=200;this.useDynamicSize=!1,this.dynamicSize=t;var i=this.typeNumber=-1;this.errorCorrectLevel=b.errorCorrectLevel.H;var n=this.margin=0;this.areaColor="#FFFFFF",this.backgroundColor="rgba(255,255,255,0)",this.backgroundImageSrc=void 0;var a=this.backgroundImageWidth=void 0,d=this.backgroundImageHeight=void 0,u=this.backgroundImageX=void 0,s=this.backgroundImageY=void 0;this.backgroundImageAlpha=1,this.backgroundImageBorderRadius=0;var g=this.backgroundPadding=0;this.foregroundColor="#000000",this.foregroundImageSrc=void 0;var l=this.foregroundImageWidth=void 0,h=this.foregroundImageHeight=void 0,c=this.foregroundImageX=void 0,m=this.foregroundImageY=void 0,f=this.foregroundImagePadding=0;this.foregroundImageBackgroundColor="#FFFFFF";var v=this.foregroundImageBorderRadius=0,p=this.foregroundImageShadowOffsetX=0,k=this.foregroundImageShadowOffsetY=0,y=this.foregroundImageShadowBlur=0;this.foregroundImageShadowColor="#808080";var w=this.foregroundPadding=0,I=this.positionProbeBackgroundColor=void 0,B=this.positionProbeForegroundColor=void 0,S=this.separatorColor=void 0,P=this.positionAdjustBackgroundColor=void 0,E=this.positionAdjustForegroundColor=void 0,L=this.timingBackgroundColor=void 0,D=this.timingForegroundColor=void 0,A=this.typeNumberBackgroundColor=void 0,T=this.typeNumberForegroundColor=void 0,N=this.darkBlockColor=void 0;this.base=void 0,this.modules=[],this.moduleCount=0,this.drawModules=[];var M=this.canvasContext=void 0;this.loadImage,this.drawReserve=!1,this.isMaked=!1,Object.defineProperties(this,{data:{get(){if(""===r||void 0===r)throw console.error("[uQRCode]: data must be set!"),new b.Error("data must be set!");return r},set(o){r=String(o);}},size:{get:()=>t,set(o){t=Number(o);}},typeNumber:{get:()=>i,set(o){i=Number(o);}},margin:{get:()=>n,set(o){n=Number(o);}},backgroundImageWidth:{get(){return void 0===a?this.dynamicSize:this.useDynamicSize?this.dynamicSize/this.size*a:a},set(o){a=Number(o);}},backgroundImageHeight:{get(){return void 0===d?this.dynamicSize:this.useDynamicSize?this.dynamicSize/this.size*d:d},set(o){d=Number(o);}},backgroundImageX:{get(){return void 0===u?0:this.useDynamicSize?this.dynamicSize/this.size*u:u},set(o){u=Number(o);}},backgroundImageY:{get(){return void 0===s?0:this.useDynamicSize?this.dynamicSize/this.size*s:s},set(o){s=Number(o);}},backgroundPadding:{get:()=>g,set(o){g=o>1?1:o<0?0:o;}},foregroundImageWidth:{get(){return void 0===l?(this.dynamicSize-2*this.margin)/4:this.useDynamicSize?this.dynamicSize/this.size*l:l},set(o){l=Number(o);}},foregroundImageHeight:{get(){return void 0===h?(this.dynamicSize-2*this.margin)/4:this.useDynamicSize?this.dynamicSize/this.size*h:h},set(o){h=Number(o);}},foregroundImageX:{get(){return void 0===c?this.dynamicSize/2-this.foregroundImageWidth/2:this.useDynamicSize?this.dynamicSize/this.size*c:c},set(o){c=Number(o);}},foregroundImageY:{get(){return void 0===m?this.dynamicSize/2-this.foregroundImageHeight/2:this.useDynamicSize?this.dynamicSize/this.size*m:m},set(o){m=Number(o);}},foregroundImagePadding:{get(){return this.useDynamicSize?this.dynamicSize/this.size*f:f},set(o){f=Number(o);}},foregroundImageBorderRadius:{get(){return this.useDynamicSize?this.dynamicSize/this.size*v:v},set(o){v=Number(o);}},foregroundImageShadowOffsetX:{get(){return this.useDynamicSize?this.dynamicSize/this.size*p:p},set(o){p=Number(o);}},foregroundImageShadowOffsetY:{get(){return this.useDynamicSize?this.dynamicSize/this.size*k:k},set(o){k=Number(o);}},foregroundImageShadowBlur:{get(){return this.useDynamicSize?this.dynamicSize/this.size*y:y},set(o){y=Number(o);}},foregroundPadding:{get:()=>w,set(o){w=o>1?1:o<0?0:o;}},positionProbeBackgroundColor:{get(){return I||this.backgroundColor},set(o){I=o;}},positionProbeForegroundColor:{get(){return B||this.foregroundColor},set(o){B=o;}},separatorColor:{get(){return S||this.backgroundColor},set(o){S=o;}},positionAdjustBackgroundColor:{get(){return P||this.backgroundColor},set(o){P=o;}},positionAdjustForegroundColor:{get(){return E||this.foregroundColor},set(o){E=o;}},timingBackgroundColor:{get(){return L||this.backgroundColor},set(o){L=o;}},timingForegroundColor:{get(){return D||this.foregroundColor},set(o){D=o;}},typeNumberBackgroundColor:{get(){return A||this.backgroundColor},set(o){A=o;}},typeNumberForegroundColor:{get(){return T||this.foregroundColor},set(o){T=o;}},darkBlockColor:{get(){return N||this.foregroundColor},set(o){N=o;}},canvasContext:{get(){if(void 0===M)throw console.error("[uQRCode]: use drawCanvas, you need to set the canvasContext!"),new b.Error("use drawCanvas, you need to set the canvasContext!");return M},set(o){M=C(o);}}}),b.plugins.forEach((o=>o(b,this,!1))),o&&this.setOptions(o),e&&(this.canvasContext=C(e));}f.prototype={get:function(o){return this.num[o]},getLength:function(){return this.num.length},multiply:function(o){for(var e=new Array(this.getLength()+o.getLength()-1),r=0;r<this.getLength();r++)for(var t=0;t<o.getLength();t++)e[r+t]^=c.gexp(c.glog(this.get(r))+c.glog(o.get(t)));return new f(e,0)},mod:function(o){if(this.getLength()-o.getLength()<0)return this;for(var e=c.glog(this.get(0))-c.glog(o.get(0)),r=new Array(this.getLength()),t=0;t<this.getLength();t++)r[t]=this.get(t);for(t=0;t<o.getLength();t++)r[t]^=c.gexp(c.glog(o.get(t))+e);return new f(r,0).mod(o)}},v.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],v.getRSBlocks=function(o,e){var r=v.getRsBlockTable(o,e);if(null==r)throw new Error("bad rs block @ typeNumber:"+o+"/errorCorrectLevel:"+e);for(var t=r.length/3,i=new Array,n=0;n<t;n++)for(var a=r[3*n+0],d=r[3*n+1],u=r[3*n+2],s=0;s<a;s++)i.push(new v(d,u));return i},v.getRsBlockTable=function(o,e){switch(e){case t.L:return v.RS_BLOCK_TABLE[4*(o-1)+0];case t.M:return v.RS_BLOCK_TABLE[4*(o-1)+1];case t.Q:return v.RS_BLOCK_TABLE[4*(o-1)+2];case t.H:return v.RS_BLOCK_TABLE[4*(o-1)+3];default:return}},p.prototype={get:function(o){var e=Math.floor(o/8);return 1==(this.buffer[e]>>>7-o%8&1)},put:function(o,e){for(var r=0;r<e;r++)this.putBit(1==(o>>>e-r-1&1));},getLengthInBits:function(){return this.length},putBit:function(o){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),o&&(this.buffer[e]|=128>>>this.length%8),this.length++;}},e.errorCorrectLevel=t,b.errorCorrectLevel=e.errorCorrectLevel,b.Error=function(o){this.errMsg="[uQRCode]: "+o;},b.plugins=[],b.use=function(o){"function"==typeof o&&b.plugins.push(o);},b.prototype.loadImage=function(o){return Promise.resolve(o)},b.prototype.setOptions=function(o){var e,r,t,i,n,a,d,u,s,g,l,h,c,m,f,v,p,C,b,k,y,w,I,B,S,P,E,L,D,A,T,N,M,z,_,O,R,F,x,H,X,Y,j,W,G,K,Q,U,$,J,q,V,Z,oo,eo,ro;o&&(Object.keys(o).forEach((e=>{this[e]=o[e];})),function(o={},e={},r=!1){let t;for(var i in t=r?o:{...o},e){var n=e[i];null!=n&&(n.constructor==Object?t[i]=this.deepReplace(t[i],n):n.constructor!=String||n?t[i]=n:t[i]=t[i]);}}(this,{data:o.data||o.text,dataEncode:o.dataEncode,size:o.size,useDynamicSize:o.useDynamicSize,typeNumber:o.typeNumber,errorCorrectLevel:o.errorCorrectLevel,margin:o.margin,areaColor:o.areaColor,backgroundColor:o.backgroundColor||(null===(e=o.background)||void 0===e?void 0:e.color),backgroundImageSrc:o.backgroundImageSrc||(null===(r=o.background)||void 0===r||null===(t=r.image)||void 0===t?void 0:t.src),backgroundImageWidth:o.backgroundImageWidth||(null===(i=o.background)||void 0===i||null===(n=i.image)||void 0===n?void 0:n.width),backgroundImageHeight:o.backgroundImageHeight||(null===(a=o.background)||void 0===a||null===(d=a.image)||void 0===d?void 0:d.height),backgroundImageX:o.backgroundImageX||(null===(u=o.background)||void 0===u||null===(s=u.image)||void 0===s?void 0:s.x),backgroundImageY:o.backgroundImageY||(null===(g=o.background)||void 0===g||null===(l=g.image)||void 0===l?void 0:l.y),backgroundImageAlpha:o.backgroundImageAlpha||(null===(h=o.background)||void 0===h||null===(c=h.image)||void 0===c?void 0:c.alpha),backgroundImageBorderRadius:o.backgroundImageBorderRadius||(null===(m=o.background)||void 0===m||null===(f=m.image)||void 0===f?void 0:f.borderRadius),backgroundPadding:o.backgroundPadding,foregroundColor:o.foregroundColor||(null===(v=o.foreground)||void 0===v?void 0:v.color),foregroundImageSrc:o.foregroundImageSrc||(null===(p=o.foreground)||void 0===p||null===(C=p.image)||void 0===C?void 0:C.src),foregroundImageWidth:o.foregroundImageWidth||(null===(b=o.foreground)||void 0===b||null===(k=b.image)||void 0===k?void 0:k.width),foregroundImageHeight:o.foregroundImageHeight||(null===(y=o.foreground)||void 0===y||null===(w=y.image)||void 0===w?void 0:w.height),foregroundImageX:o.foregroundImageX||(null===(I=o.foreground)||void 0===I||null===(B=I.image)||void 0===B?void 0:B.x),foregroundImageY:o.foregroundImageY||(null===(S=o.foreground)||void 0===S||null===(P=S.image)||void 0===P?void 0:P.y),foregroundImagePadding:o.foregroundImagePadding||(null===(E=o.foreground)||void 0===E||null===(L=E.image)||void 0===L?void 0:L.padding),foregroundImageBackgroundColor:o.foregroundImageBackgroundColor||(null===(D=o.foreground)||void 0===D||null===(A=D.image)||void 0===A?void 0:A.backgroundColor),foregroundImageBorderRadius:o.foregroundImageBorderRadius||(null===(T=o.foreground)||void 0===T||null===(N=T.image)||void 0===N?void 0:N.borderRadius),foregroundImageShadowOffsetX:o.foregroundImageShadowOffsetX||(null===(M=o.foreground)||void 0===M||null===(z=M.image)||void 0===z?void 0:z.shadowOffsetX),foregroundImageShadowOffsetY:o.foregroundImageShadowOffsetY||(null===(_=o.foreground)||void 0===_||null===(O=_.image)||void 0===O?void 0:O.shadowOffsetY),foregroundImageShadowBlur:o.foregroundImageShadowBlur||(null===(R=o.foreground)||void 0===R||null===(F=R.image)||void 0===F?void 0:F.shadowBlur),foregroundImageShadowColor:o.foregroundImageShadowColor||(null===(x=o.foreground)||void 0===x||null===(H=x.image)||void 0===H?void 0:H.shadowColor),foregroundPadding:o.foregroundPadding,positionProbeBackgroundColor:o.positionProbeBackgroundColor||(null===(X=o.positionProbe)||void 0===X?void 0:X.backgroundColor)||(null===(Y=o.positionDetection)||void 0===Y?void 0:Y.backgroundColor),positionProbeForegroundColor:o.positionProbeForegroundColor||(null===(j=o.positionProbe)||void 0===j?void 0:j.foregroundColor)||(null===(W=o.positionDetection)||void 0===W?void 0:W.foregroundColor),separatorColor:o.separatorColor||(null===(G=o.separator)||void 0===G?void 0:G.color),positionAdjustBackgroundColor:o.positionAdjustBackgroundColor||(null===(K=o.positionAdjust)||void 0===K?void 0:K.backgroundColor)||(null===(Q=o.alignment)||void 0===Q?void 0:Q.backgroundColor),positionAdjustForegroundColor:o.positionAdjustForegroundColor||(null===(U=o.positionAdjust)||void 0===U?void 0:U.foregroundColor)||(null===($=o.alignment)||void 0===$?void 0:$.foregroundColor),timingBackgroundColor:o.timingBackgroundColor||(null===(J=o.timing)||void 0===J?void 0:J.backgroundColor),timingForegroundColor:o.timingForegroundColor||(null===(q=o.timing)||void 0===q?void 0:q.foregroundColor),typeNumberBackgroundColor:o.typeNumberBackgroundColor||(null===(V=o.typeNumber)||void 0===V?void 0:V.backgroundColor)||(null===(Z=o.versionInformation)||void 0===Z?void 0:Z.backgroundColor),typeNumberForegroundColor:o.typeNumberForegroundColor||(null===(oo=o.typeNumber)||void 0===oo?void 0:oo.foregroundColor)||(null===(eo=o.versionInformation)||void 0===eo?void 0:eo.foregroundColor),darkBlockColor:o.darkBlockColor||(null===(ro=o.darkBlock)||void 0===ro?void 0:ro.color)},!0));},b.prototype.make=function(){let{foregroundColor:o,backgroundColor:r,typeNumber:t,errorCorrectLevel:i,data:n,dataEncode:a,size:d,margin:u,useDynamicSize:s}=this;if(o===r)throw console.error("[uQRCode]: foregroundColor and backgroundColor cannot be the same!"),new b.Error("foregroundColor and backgroundColor cannot be the same!");a&&(n=function(o){o=o.toString();for(var e,r="",t=0;t<o.length;t++)(e=o.charCodeAt(t))>=1&&e<=127?r+=o.charAt(t):e>2047?(r+=String.fromCharCode(224|e>>12&15),r+=String.fromCharCode(128|e>>6&63),r+=String.fromCharCode(128|e>>0&63)):(r+=String.fromCharCode(192|e>>6&31),r+=String.fromCharCode(128|e>>0&63));return r}(n));var g=new e(t,i);g.addData(n),g.make(),this.base=g,this.typeNumber=g.typeNumber,this.modules=g.modules,this.moduleCount=g.moduleCount,this.dynamicSize=s?Math.ceil((d-2*u)/g.moduleCount)*g.moduleCount+2*u:d,function(o){let{dynamicSize:e,margin:r,backgroundColor:t,backgroundPadding:i,foregroundColor:n,foregroundPadding:a,modules:d,moduleCount:u}=o;var s=(e-2*r)/u,g=s,l=0;i>0&&(g-=2*(l=g*i/2));var h=s,c=0;a>0&&(h-=2*(c=h*a/2));for(var m=0;m<u;m++)for(var f=0;f<u;f++){var v=f*s+r,p=m*s+r;if(d[m][f]){var C=c,b=v+c,k=p+c,y=h,w=h;d[m][f]={type:["foreground"],color:n,isBlack:!0,isDrawn:!1,destX:v,destY:p,destWidth:s,destHeight:s,x:b,y:k,width:y,height:w,paddingTop:C,paddingRight:C,paddingBottom:C,paddingLeft:C};}else C=l,b=v+l,k=p+l,y=g,w=g,d[m][f]={type:["background"],color:t,isBlack:!1,isDrawn:!1,destX:v,destY:p,destWidth:s,destHeight:s,x:b,y:k,width:y,height:w,paddingTop:C,paddingRight:C,paddingBottom:C,paddingLeft:C};}}(this),function(o){let{modules:e,moduleCount:r,positionProbeBackgroundColor:t,positionProbeForegroundColor:i}=o;var n=r-7;[[0,0,1],[1,0,1],[2,0,1],[3,0,1],[4,0,1],[5,0,1],[6,0,1],[0,1,1],[1,1,0],[2,1,0],[3,1,0],[4,1,0],[5,1,0],[6,1,1],[0,2,1],[1,2,0],[2,2,1],[3,2,1],[4,2,1],[5,2,0],[6,2,1],[0,3,1],[1,3,0],[2,3,1],[3,3,1],[4,3,1],[5,3,0],[6,3,1],[0,4,1],[1,4,0],[2,4,1],[3,4,1],[4,4,1],[5,4,0],[6,4,1],[0,5,1],[1,5,0],[2,5,0],[3,5,0],[4,5,0],[5,5,0],[6,5,1],[0,6,1],[1,6,1],[2,6,1],[3,6,1],[4,6,1],[5,6,1],[6,6,1]].forEach((o=>{var r=e[o[0]][o[1]],a=e[o[0]+n][o[1]],d=e[o[0]][o[1]+n];d.type.push("positionProbe"),a.type.push("positionProbe"),r.type.push("positionProbe"),r.color=1==o[2]?i:t,a.color=1==o[2]?i:t,d.color=1==o[2]?i:t;}));}(this),function(o){let{modules:e,moduleCount:r,separatorColor:t}=o;[[7,0],[7,1],[7,2],[7,3],[7,4],[7,5],[7,6],[7,7],[0,7],[1,7],[2,7],[3,7],[4,7],[5,7],[6,7]].forEach((o=>{var i=e[o[0]][o[1]],n=e[r-o[0]-1][o[1]],a=e[o[0]][r-o[1]-1];a.type.push("separator"),n.type.push("separator"),i.type.push("separator"),i.color=t,n.color=t,a.color=t;}));}(this),function(o){let{typeNumber:e,modules:r,moduleCount:t,foregroundColor:i,backgroundColor:n,positionAdjustForegroundColor:a,positionAdjustBackgroundColor:d,timingForegroundColor:u,timingBackgroundColor:s}=o;var g=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]][e-1];if(g)for(var l=[[-2,-2,1],[-1,-2,1],[0,-2,1],[1,-2,1],[2,-2,1],[-2,-1,1],[-1,-1,0],[0,-1,0],[1,-1,0],[2,-1,1],[-2,0,1],[-1,0,0],[0,0,1],[1,0,0],[2,0,1],[-2,1,1],[-1,1,0],[0,1,0],[1,1,0],[2,1,1],[-2,2,1],[-1,2,1],[0,2,1],[1,2,1],[2,2,1]],h=g.length,c=0;c<h;c++)for(var m=0;m<h;m++){var{x:f,y:v}={x:g[c],y:g[m]};f<9&&v<9||f>t-9-1&&v<9||v>t-9-1&&f<9||l.forEach((o=>{var e=r[f+o[0]][v+o[1]];e.type.push("positionAdjust"),e.type.includes("timing")?1==o[2]?e.color=a==i?u:a:e.color=a==i&&d==n?s:d:e.color=1==o[2]?a:d;}));}}(this),function(o){let{modules:e,moduleCount:r,timingForegroundColor:t,timingBackgroundColor:i}=o;for(var n=r-16,a=0;a<n;a++){var d=e[6][8+a],u=e[8+a][6];d.type.push("timing"),u.type.push("timing"),d.color=1&a^1?t:i,u.color=1&a^1?t:i;}}(this),function(o){let{modules:e,moduleCount:r,darkBlockColor:t}=o;var i=e[r-7-1][8];i.type.push("darkBlock"),i.color=t;}(this),function(o){let{typeNumber:e,modules:r,moduleCount:t,typeNumberBackgroundColor:i,typeNumberForegroundColor:n}=o;if(e<7)return r;var a=[0,0,0,0,0,0,0,"000111110010010100","001000010110111100","001001101010011001","001010010011010011","001011101111110110","001100011101100010","001101100001000111","001110011000001101","001111100100101000","010000101101111000","010001010001011101","010010101000010111","010011010100110010","010100100110100110","010101011010000011","010110100011001001","010111011111101100","011000111011000100","011001000111100001","011010111110101011","011011000010001110","011100110000011010","011101001100111111","011110110101110101","011111001001010000","100000100111010101","100001011011110000","100010100010111010","100011011110011111","100100101100001011","100101010000101110","100110101001100100","100111010101000001","101000110001101001"],d=a[e]+a[e],u=[t-11,t-10,t-9];[[5,u[2]],[5,u[1]],[5,u[0]],[4,u[2]],[4,u[1]],[4,u[0]],[3,u[2]],[3,u[1]],[3,u[0]],[2,u[2]],[2,u[1]],[2,u[0]],[1,u[2]],[1,u[1]],[1,u[0]],[0,u[2]],[0,u[1]],[0,u[0]],[u[2],5],[u[1],5],[u[0],5],[u[2],4],[u[1],4],[u[0],4],[u[2],3],[u[1],3],[u[0],3],[u[2],2],[u[1],2],[u[0],2],[u[2],1],[u[1],1],[u[0],1],[u[2],0],[u[1],0],[u[0],0]].forEach(((o,e)=>{var t=r[o[0]][o[1]];t.type.push("typeNumber"),t.color="1"==d[e]?n:i;}));}(this),this.isMaked=!0,this.drawModules=[];},b.prototype.getDrawModules=function(){if(this.drawModules&&this.drawModules.length>0)return this.drawModules;let o=this.drawModules=[],{modules:e,moduleCount:r,dynamicSize:t,areaColor:i,backgroundImageSrc:n,backgroundImageX:a,backgroundImageY:d,backgroundImageWidth:u,backgroundImageHeight:s,backgroundImageAlpha:g,backgroundImageBorderRadius:l,foregroundImageSrc:h,foregroundImageX:c,foregroundImageY:m,foregroundImageWidth:f,foregroundImageHeight:v,foregroundImagePadding:p,foregroundImageBackgroundColor:C,foregroundImageBorderRadius:b,foregroundImageShadowOffsetX:k,foregroundImageShadowOffsetY:y,foregroundImageShadowBlur:w,foregroundImageShadowColor:I}=this;i&&o.push({name:"area",type:"area",color:i,x:0,y:0,width:t,height:t}),n&&o.push({name:"backgroundImage",type:"image",imageSrc:n,mappingName:"backgroundImageSrc",x:a,y:d,width:u,height:s,alpha:g,borderRadius:l});for(var B=0;B<r;B++)for(var S=0;S<r;S++){var P=e[B][S];P.isDrawn||(P.type.includes("foreground")?o.push({name:"foreground",type:"tile",color:P.color,destX:P.destX,destY:P.destY,destWidth:P.destWidth,destHeight:P.destHeight,x:P.x,y:P.y,width:P.width,height:P.height,paddingTop:P.paddingTop,paddingRight:P.paddingRight,paddingBottom:P.paddingBottom,paddingLeft:P.paddingLeft,rowIndex:B,colIndex:S}):o.push({name:"background",type:"tile",color:P.color,destX:P.destX,destY:P.destY,destWidth:P.destWidth,destHeight:P.destHeight,x:P.x,y:P.y,width:P.width,height:P.height,paddingTop:P.paddingTop,paddingRight:P.paddingRight,paddingBottom:P.paddingBottom,paddingLeft:P.paddingLeft,rowIndex:B,colIndex:S}),P.isDrawn=!0);}return h&&o.push({name:"foregroundImage",type:"image",imageSrc:h,mappingName:"foregroundImageSrc",x:c,y:m,width:f,height:v,padding:p,backgroundColor:C,borderRadius:b,shadowOffsetX:k,shadowOffsetY:y,shadowBlur:w,shadowColor:I}),o},b.prototype.isBlack=function(o,e){var r=this.moduleCount;return !(0>o||0>e||o>=r||e>=r)&&this.modules[o][e].isBlack},b.prototype.drawCanvas=function(o){let{isMaked:e,canvasContext:r,useDynamicSize:t,dynamicSize:i,foregroundColor:n,foregroundPadding:a,backgroundColor:d,backgroundPadding:u,drawReserve:s,margin:g}=this;if(!e)return console.error("[uQRCode]: please execute the make method first!"),Promise.reject(new b.Error("please execute the make method first!"));let l=this.getDrawModules(),h=async(e,t)=>{try{r.draw(o);for(var i=0;i<l.length;i++){var n=l[i];switch(r.save(),n.type){case"area":r.setFillStyle(n.color),r.fillRect(n.x,n.y,n.width,n.height);break;case"tile":var a=n.x,d=n.y,u=n.width,g=n.height;r.setFillStyle(n.color),r.fillRect(a,d,u,g);break;case"image":if("backgroundImage"===n.name){a=Math.round(n.x),d=Math.round(n.y),u=Math.round(n.width),g=Math.round(n.height);u<2*(c=Math.round(n.borderRadius))&&(c=u/2),g<2*c&&(c=g/2),r.setGlobalAlpha(n.alpha),c>0&&(r.beginPath(),r.moveTo(a+c,d),r.arcTo(a+u,d,a+u,d+g,c),r.arcTo(a+u,d+g,a,d+g,c),r.arcTo(a,d+g,a,d,c),r.arcTo(a,d,a+u,d,c),r.closePath(),r.setStrokeStyle("rgba(0,0,0,0)"),r.stroke(),r.clip());try{var h=await this.loadImage(n.imageSrc);r.drawImage(h,a,d,u,g);}catch(o){throw console.error(`[uQRCode]: ${n.mappingName} invalid!`),new b.Error(`${n.mappingName} invalid!`)}}else if("foregroundImage"===n.name){a=Math.round(n.x),d=Math.round(n.y),u=Math.round(n.width),g=Math.round(n.height);var c,m=Math.round(n.padding);u<2*(c=Math.round(n.borderRadius))&&(c=u/2),g<2*c&&(c=g/2);var f=a-m,v=d-m,p=u+2*m,C=g+2*m,k=Math.round(p/u*c);p<2*k&&(k=p/2),C<2*k&&(k=C/2),r.save(),r.setShadow(n.shadowOffsetX,n.shadowOffsetY,n.shadowBlur,n.shadowColor),k>0?(r.beginPath(),r.moveTo(f+k,v),r.arcTo(f+p,v,f+p,v+C,k),r.arcTo(f+p,v+C,f,v+C,k),r.arcTo(f,v+C,f,v,k),r.arcTo(f,v,f+p,v,k),r.closePath(),r.setFillStyle(n.backgroundColor),r.fill()):(r.setFillStyle(n.backgroundColor),r.fillRect(f,v,p,C)),r.restore(),r.save(),k>0?(r.beginPath(),r.moveTo(f+k,v),r.arcTo(f+p,v,f+p,v+C,k),r.arcTo(f+p,v+C,f,v+C,k),r.arcTo(f,v+C,f,v,k),r.arcTo(f,v,f+p,v,k),r.closePath(),r.setFillStyle(m>0?n.backgroundColor:"rgba(0,0,0,0)"),r.fill()):(r.setFillStyle(m>0?n.backgroundColor:"rgba(0,0,0,0)"),r.fillRect(f,v,p,C)),r.restore(),c>0&&(r.beginPath(),r.moveTo(a+c,d),r.arcTo(a+u,d,a+u,d+g,c),r.arcTo(a+u,d+g,a,d+g,c),r.arcTo(a,d+g,a,d,c),r.arcTo(a,d,a+u,d,c),r.closePath(),r.setStrokeStyle("rgba(0,0,0,0)"),r.stroke(),r.clip());try{h=await this.loadImage(n.imageSrc);r.drawImage(h,a,d,u,g);}catch(o){throw console.error(`[uQRCode]: ${n.mappingName} invalid!`),new b.Error(`${n.mappingName} invalid!`)}}}s&&r.draw(!0),r.restore();}r.draw(!0),setTimeout(e,150);}catch(o){t(o);}};return new Promise(((o,e)=>{h(o,e);}))},b.prototype.draw=function(o){return this.drawCanvas(o)},b.prototype.register=function(o){o&&o(b,this,!0);};export{b as default};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#### Props
|
|
2
|
+
| 属性名 | 说明 | 类型 | 默认值 | 可选值 | 支持版本 |
|
|
3
|
+
| ----- | ----- | --- | ------- | ------ | -------- |
|
|
4
|
+
| `v-model` | 当前值 | `string` | - | - | - |
|
|
5
|
+
| `name` | 选项的值 | `number / string` | - | - | - |
|
|
6
|
+
| `disabled` | 禁用 | `boolean` | `false` | - | - |
|
|
7
|
+
| `readonly` | 只读(不置灰) | `boolean` | `false` | - | - |
|
|
8
|
+
| `shape` | 形状 | `string` | `circle` | `circle`:圆形<br/>`square`:方形 | - |
|
|
9
|
+
| `iconSize` | 图标大小,单位rpx | `number / string` | `36` | - | - |
|
|
10
|
+
| `checkedColor` | 选中状态的图标颜色 | `string` | `#0090FF` | - | - |
|
|
11
|
+
| `textPosition` | 文本的位置 | `string` | `right` | `right`:右<br/>`left`:左 | - |
|
|
12
|
+
| `textSize` | 文本字体大小,单位rpx | `number / string` | `28` | - | - |
|
|
13
|
+
| `textInactiveColor` | 未选中的文本颜色 | `string` | `#000000` | - | - |
|
|
14
|
+
| `textActiveColor` | 选中的文本颜色 | `string` | `#000000` | - | - |
|
|
15
|
+
| `textDisabled` | 禁用文本点击 | `boolean` | `false` | - | - |
|
|
16
|
+
| `marginLeft` | 左边距,单位rpx | `number / string` | `0` | - | - |
|
|
17
|
+
| `marginRight` | 右边距,单位rpx | `number / string` | `0` | - | - |
|
|
18
|
+
| `columnGap` | 单选框和文本间距,单位rpx | `number / string` | `16` | - | - |
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
#### Events
|
|
22
|
+
| 事件名 | 说明 | 事件参数 | 支持版本 |
|
|
23
|
+
| ----- | ----- | ------- | -------- |
|
|
24
|
+
| `click` | 点击复选框时触发的事件 | `value`:当前复选框的绑定值<br/>`suspend`:等待<br/>`next`:继续<br/>`stop`:停止 | - |
|
|
25
|
+
| `change` | 当绑定值变化时触发的事件 | `value`:当前复选框的绑定值 | - |
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# Radio 单选框
|
|
2
|
+
|
|
3
|
+
在一组备选项中进行单选。
|
|
4
|
+
|
|
5
|
+
---$
|
|
6
|
+
|
|
7
|
+
### 代码演示
|
|
8
|
+
|
|
9
|
+
后面的演示代码中涉及到的变量和方法都使用该代码
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<script lang="ts" setup>
|
|
13
|
+
import { reactive } from 'vue';
|
|
14
|
+
const val = reactive({
|
|
15
|
+
value1: 'a',
|
|
16
|
+
value2: 'a',
|
|
17
|
+
value3: 'a',
|
|
18
|
+
value4: 'a',
|
|
19
|
+
value5: 'a',
|
|
20
|
+
value6: 'a',
|
|
21
|
+
value7: 'a',
|
|
22
|
+
value8: '',
|
|
23
|
+
value9: 'a',
|
|
24
|
+
value10: 'a',
|
|
25
|
+
value11: '',
|
|
26
|
+
value12: '',
|
|
27
|
+
value13: '',
|
|
28
|
+
value14: '',
|
|
29
|
+
value15: '',
|
|
30
|
+
});
|
|
31
|
+
function click1(value: any, suspend: () => void, next: () => void) {
|
|
32
|
+
toast.showToast({
|
|
33
|
+
icon: 'none',
|
|
34
|
+
title: `点击:${value} 复选框的值`,
|
|
35
|
+
});
|
|
36
|
+
suspend(); // 阻止操作
|
|
37
|
+
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
next(); // 异步操作后,执行操作
|
|
40
|
+
}, 1500);
|
|
41
|
+
}
|
|
42
|
+
function click2(value: any, suspend: () => void, _next: any, stop: () => void) {
|
|
43
|
+
toast.showToast({
|
|
44
|
+
icon: 'none',
|
|
45
|
+
title: `点击:${value} 复选框的值`,
|
|
46
|
+
});
|
|
47
|
+
suspend(); // 阻止操作
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
// 异步操作后,停止操作
|
|
50
|
+
stop();
|
|
51
|
+
}, 200);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function change(value: any) {
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
toast.showToast({
|
|
57
|
+
icon: 'none',
|
|
58
|
+
title: `改变:${value} 复选框的值`,
|
|
59
|
+
});
|
|
60
|
+
}, 1000);
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### 基础用法
|
|
66
|
+
|
|
67
|
+
通过`v-model`绑定值当前选中项的 name 。
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<ste-radio v-model="value1" name="a">单选框a</ste-radio>
|
|
71
|
+
<ste-radio v-model="value1" name="b">单选框b</ste-radio>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### 禁用
|
|
75
|
+
|
|
76
|
+
通过设置 `disabled` 属性可以禁用单选框, 默认`false`。
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<ste-radio v-model="value2" name="a" disabled>单选框a</ste-radio>
|
|
80
|
+
<ste-radio v-model="value2" name="b" disabled>单选框b</ste-radio>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### 只读
|
|
84
|
+
|
|
85
|
+
通过设置 `readonly` 属性可以禁用单选框,样式不置灰, 默认`false`。
|
|
86
|
+
|
|
87
|
+
```html
|
|
88
|
+
<ste-radio v-model="value3" name="a" readonly>单选框a</ste-radio>
|
|
89
|
+
<ste-radio v-model="value3" name="b" readonly>单选框b</ste-radio>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 自定义形状
|
|
93
|
+
|
|
94
|
+
通过设置`shape`为`square`或者`circle`,将单选框设置为方形或者圆形,默认`circle`。
|
|
95
|
+
|
|
96
|
+
```html
|
|
97
|
+
<ste-radio v-model="value4" name="a">圆形</ste-radio>
|
|
98
|
+
<ste-radio v-model="value4" name="b" shape="square">方形</ste-radio>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### 自定义图标大小
|
|
102
|
+
|
|
103
|
+
通过设置 `iconSize` 属性可以自定义图标的大小,单位`rpx`,默认`36`。
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<ste-radio v-model="value5" name="a" iconSize="60">60rpx</ste-radio>
|
|
107
|
+
<ste-radio v-model="value5" name="b" iconSize="60">60rpx</ste-radio>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
#### 自定义图标颜色
|
|
111
|
+
|
|
112
|
+
通过设置 `checkedColor` 属性可以自定义图标的颜色(填充色和边框色),默认`#0090FF`。
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<ste-radio v-model="value6" name="a" checkedColor="#ee0a24">红色</ste-radio>
|
|
116
|
+
<ste-radio v-model="value6" name="b" checkedColor="#ee0a24">红色</ste-radio>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### 自定义图标
|
|
120
|
+
|
|
121
|
+
通过 `icon` 插槽自定义图标,可以通过 `slotProps`下`checked`判断是否为选中状态,`disabled`判断是否为禁止状态,`readonly`判断是否为只读状态。
|
|
122
|
+
|
|
123
|
+
```html
|
|
124
|
+
<ste-radio v-model="value7" name="a">
|
|
125
|
+
<template #icon="{ slotProps }">
|
|
126
|
+
<ste-icon code="" size="50" :color="slotProps.checked ? '#ee0a24' : '#000000'"></ste-icon>
|
|
127
|
+
</template>
|
|
128
|
+
<template #default="{ slotProps }">{{ slotProps.checked ? '已选中' : '未选中' }}</template>
|
|
129
|
+
</ste-radio>
|
|
130
|
+
<ste-radio v-model="value7" name="b">
|
|
131
|
+
<template #icon="{ slotProps }">
|
|
132
|
+
<ste-icon code="" size="50" :color="slotProps.checked ? '#ee0a24' : '#000000'"></ste-icon>
|
|
133
|
+
</template>
|
|
134
|
+
<template #default="{ slotProps }">{{ slotProps.checked ? '已选中' : '未选中' }}</template>
|
|
135
|
+
</ste-radio>
|
|
136
|
+
<ste-radio v-model="value7" name="c" disabled>
|
|
137
|
+
<template #icon="{ slotProps }">
|
|
138
|
+
<ste-icon code="" size="50" :color="slotProps.disabled ? '#eeeeee' : '#000000'"></ste-icon>
|
|
139
|
+
</template>
|
|
140
|
+
<template #default="{ slotProps }">{{ slotProps.disabled ? '禁止' : '未禁止' }}</template>
|
|
141
|
+
</ste-radio>
|
|
142
|
+
<ste-radio v-model="value7" name="d" readonly>
|
|
143
|
+
<template #icon="{ slotProps }">
|
|
144
|
+
<ste-icon code="" size="50" :color="slotProps.readonly ? 'green' : '#000000'"></ste-icon>
|
|
145
|
+
</template>
|
|
146
|
+
<template #default="{ slotProps }">{{ slotProps.readonly ? '只读' : '未只读' }}</template>
|
|
147
|
+
</ste-radio>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
#### 左侧文本
|
|
151
|
+
|
|
152
|
+
将 `textPosition` 属性设置为 `left`,可以将文本位置调整到单选框左侧。
|
|
153
|
+
|
|
154
|
+
```html
|
|
155
|
+
<ste-radio v-model="value8" name="a">右边</ste-radio>
|
|
156
|
+
<ste-radio v-model="value8" name="b" textPosition="left">左边</ste-radio>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### 自定义文本
|
|
160
|
+
|
|
161
|
+
- 通过设置 `textSize` 属性可以自定义文本的大小,单位`rpx`,默认`28`。
|
|
162
|
+
- 通过设置 `textInactiveColor` 属性可以自定义文本未选中颜色,默认`#000000`。
|
|
163
|
+
- 通过设置 `textActiveColor` 属性可以自定义文本选中颜色,默认`#000000`。
|
|
164
|
+
|
|
165
|
+
```html
|
|
166
|
+
<ste-radio v-model="value9" name="a" textSize="50" textInactiveColor="green" textActiveColor="#d276a3">单选框</ste-radio>
|
|
167
|
+
<ste-radio v-model="value9" name="b" textSize="50" textInactiveColor="green" textActiveColor="#d276a3">单选框</ste-radio>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### 回调事件
|
|
171
|
+
|
|
172
|
+
- `click` 点击单选框时触发的事件(可拦截change事件),`value`:改变后的分值,`allowStop`:允许阻止后续的事件触发,:`resolve`:后续的事件执行。
|
|
173
|
+
- `change` 当绑定值变化时触发的事件,`value`:改变后的分值。
|
|
174
|
+
|
|
175
|
+
```html
|
|
176
|
+
<ste-radio v-model="value11" name="a" @click="click1" @change="change">单选框</ste-radio>
|
|
177
|
+
<ste-radio v-model="value11" name="b" @click="click1" @change="change">单选框</ste-radio>
|
|
178
|
+
<text>在click事件后,执行change事件</text>
|
|
179
|
+
<ste-radio v-model="value12" name="a" @click="click2" @change="change">单选框</ste-radio>
|
|
180
|
+
<ste-radio v-model="value12" name="b" @click="click2" @change="change">单选框</ste-radio>
|
|
181
|
+
<text>在click事件后,阻止change事件</text>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 单选框组
|
|
185
|
+
|
|
186
|
+
需要与`ste-radio-group`一起使用,通过`value`绑定在`ste-radio-group`,`value`即为选中的`ste-radio`的`name`属性设置的值。
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<ste-radio-group v-model="value12">
|
|
190
|
+
<ste-radio name="a">单选框a</ste-radio>
|
|
191
|
+
<ste-radio name="b">单选框b</ste-radio>
|
|
192
|
+
<ste-radio name="c">单选框c</ste-radio>
|
|
193
|
+
</ste-radio-group>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### 单选框组属性和单选框属性
|
|
197
|
+
|
|
198
|
+
属性优先级:`ste-radio`组件上配置的属性 > `ste-radio-group`组件上配置的属性 > `ste-radio`组件默认属性
|
|
199
|
+
|
|
200
|
+
```html
|
|
201
|
+
<ste-radio-group v-model="value13" shape="square" textPosition="left">
|
|
202
|
+
<ste-radio name="a">单选框a</ste-radio>
|
|
203
|
+
<ste-radio name="b" disabled>单选框b</ste-radio>
|
|
204
|
+
<ste-radio name="c" shape="circle">单选框c</ste-radio>
|
|
205
|
+
</ste-radio-group>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 水平排列
|
|
209
|
+
|
|
210
|
+
将 `direction` 属性设置为 `row` 后,单选框组会变成水平排列。
|
|
211
|
+
|
|
212
|
+
```html
|
|
213
|
+
<ste-radio-group v-model="value14" direction="row">
|
|
214
|
+
<ste-radio name="a">单选框a</ste-radio>
|
|
215
|
+
<ste-radio name="b">单选框b</ste-radio>
|
|
216
|
+
<ste-radio name="c">单选框c</ste-radio>
|
|
217
|
+
</ste-radio-group>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---$
|
|
221
|
+
|
|
222
|
+
### API
|
|
223
|
+
|
|
224
|
+
<!-- props -->
|
|
225
|
+
|
|
226
|
+
#### RadioGroup 组件属性(Props)
|
|
227
|
+
|
|
228
|
+
| 参数 | 说明 | 类型 | 默认值 | 可选值 | 支持版本 |
|
|
229
|
+
| ------------------- | --------------------------------- | --------------- | --------- | --------------------------------- | --------- |
|
|
230
|
+
| `value` | 当前选中值(支持v-model双向绑定) | `String` | `` | - | - |
|
|
231
|
+
| `direction` | 排列方式 | `String` | `row` | `column`:横向 <br/>`row`:纵向 | - |
|
|
232
|
+
| `disabled` | 是否禁用 | `Boolean` | `false` | - | - |
|
|
233
|
+
| `readonly` | 只读 (不置灰) | `Boolean` | `false` | - | - |
|
|
234
|
+
| `shape` | 形状 | `String` | `circle` | `circle`:圆形 <br/>`squar`:方形 | - |
|
|
235
|
+
| `iconSize` | 图标大小,单位rpx | `Number/String` | `36` | - | - |
|
|
236
|
+
| `checkedColor` | 选中状态的图标颜色 | `String` | `#0090FF` | - | - |
|
|
237
|
+
| `textPosition` | 文本的位置 | `String` | `right` | `right`:右 <br/>`left`:左 | - |
|
|
238
|
+
| `textSize` | 文本字体大小,单位rpx | `Number/String` | `25` | - | - |
|
|
239
|
+
| `textlnactiveColor` | 未选中文本颜色 | `String` | `#000000` | - | - |
|
|
240
|
+
| `textActiveColor` | 选中文本颜色 | `String` | `#000000` | - | - |
|
|
241
|
+
| `textDisabled` | 禁用文本点击 | `Boolean` | `false` | - | - |
|
|
242
|
+
| `marginLeft` | 左边距,单位rpx | `Number/String` | `0` | - | `v1.10.0` |
|
|
243
|
+
| `marginRight` | 右边距,单位rpx | `Number/String` | `0` | - | `v1.10.0` |
|
|
244
|
+
| `columnGap` | 单选框和文本间距,单位rpx | `Number/String` | `16` | - | `v1.10.0` |
|
|
245
|
+
|
|
246
|
+
#### RadioGroup Events
|
|
247
|
+
|
|
248
|
+
| 事件名 | 说明 | 事件参数 | 支持版本 |
|
|
249
|
+
| -------- | ------------------------ | ----------------------- | -------- |
|
|
250
|
+
| `change` | 当绑定值变化时触发的事件 | `value`:改变后的绑定值 | - |
|
|
251
|
+
|
|
252
|
+
#### Radio Slots
|
|
253
|
+
|
|
254
|
+
| 插槽名 | 说明 | 插槽参数 | 支持版本 |
|
|
255
|
+
| --------- | -------------- | ------------------------------------------------------------ | -------- |
|
|
256
|
+
| `default` | 单选框文本内容 | `{ checked: boolean, disabled: boolean, readonly: boolean }` | - |
|
|
257
|
+
| `icon` | 单选框图标 | `{ checked: boolean, disabled: boolean, readonly: boolean }` | - |
|
|
258
|
+
|
|
259
|
+
---$
|
|
260
|
+
{{qinpengfei}}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ExtractPropTypes, PropType } from 'vue'
|
|
2
|
+
import type { ShapeType, TextPositionType } from './type'
|
|
3
|
+
|
|
4
|
+
export const RADIO_KEY = Symbol('ste-radio')
|
|
5
|
+
|
|
6
|
+
const radioProps = {
|
|
7
|
+
modelValue: { type: String, default: '' },
|
|
8
|
+
name: { type: [Number, String], default: '' },
|
|
9
|
+
disabled: { type: Boolean as PropType<boolean | undefined>, default: undefined },
|
|
10
|
+
readonly: { type: Boolean as PropType<boolean | undefined>, default: undefined },
|
|
11
|
+
shape: { type: [String, undefined] as PropType<ShapeType>, default: undefined },
|
|
12
|
+
iconSize: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
13
|
+
checkedColor: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
14
|
+
textPosition: { type: [String, undefined] as PropType<TextPositionType>, default: undefined },
|
|
15
|
+
textSize: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
16
|
+
textInactiveColor: { type: String as PropType<string | undefined>, default: undefined },
|
|
17
|
+
textActiveColor: { type: String as PropType<string | undefined>, default: undefined },
|
|
18
|
+
textDisabled: { type: Boolean as PropType<boolean | undefined>, default: undefined },
|
|
19
|
+
marginLeft: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
20
|
+
marginRight: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
21
|
+
columnGap: { type: [Number, String] as PropType<string | number | undefined>, default: undefined },
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type RadioProps = ExtractPropTypes<typeof radioProps>
|
|
25
|
+
|
|
26
|
+
export default radioProps
|
|
27
|
+
|
|
28
|
+
export interface RadioEmits {
|
|
29
|
+
(e: 'click', value: string, suspend: () => void, next: () => void, stop: () => void): void
|
|
30
|
+
(e: 'change', value: string): void
|
|
31
|
+
(e: 'input', value: string): void
|
|
32
|
+
(e: 'update:modelValue', value: string): void
|
|
33
|
+
}
|