@tarojs/components-react 4.1.4-beta.20 → 4.1.4-beta.22
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/components/picker/index.js +21 -21
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/scroll-view/index.js +7 -2
- package/dist/components/scroll-view/index.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/solid/components/picker/index.js +21 -21
- package/dist/solid/components/picker/index.js.map +1 -1
- package/dist/solid/components/scroll-view/index.js +7 -2
- package/dist/solid/components/scroll-view/index.js.map +1 -1
- package/dist/solid/index.css +1 -1
- package/dist/solid/index.js +1 -1
- package/dist/solid/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core[loading]>.weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%;display:inline-block;height:20px;vertical-align:middle;width:20px}.taro-button-core[loading]>.weui-loading.weui-btn_primary,.taro-button-core[loading]>.weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core[loading]>.weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core[loading]>.weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);appearance:none;background-color:#f8f8f8;border-radius:5px;border-width:0;box-sizing:border-box;color:#000;display:block;font-size:18px;line-height:2.55555556;margin-left:auto;margin-right:auto;outline:0;overflow:hidden;padding-left:14px;padding-right:14px;position:relative;text-align:center;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core:after{border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;content:" ";height:200%;left:0;position:absolute;top:0;transform:scale(.5);transform-origin:0 0;width:200%}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core[type=default]{background-color:#f8f8f8;color:#000}.taro-button-core[type=default]:not([disabled]):visited{color:#000}.taro-button-core[type=default]:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core[size=mini]{display:inline-block;font-size:13px;line-height:2.3;padding:0 1.32em;width:auto}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default],.taro-button-core[plain=true][type=primary]{background-color:transparent;border-width:1px}.taro-button-core[disabled]{color:hsla(0,0%,100%,.6)}.taro-button-core[disabled][type=default]{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core[disabled][type=primary]{background-color:#9ed99d}.taro-button-core[disabled][type=warn]{background-color:#ec8b89}.taro-button-core[loading] .weui-loading{margin:-.2em .34em 0 0}.taro-button-core[loading][type=primary],.taro-button-core[loading][type=warn]{color:hsla(0,0%,100%,.6)}.taro-button-core[loading][type=primary]{background-color:#179b16}.taro-button-core[loading][type=warn]{background-color:#ce3c39}.taro-button-core[plain=true][type=primary]{border:1px solid #1aad19;color:#1aad19}.taro-button-core[plain=true][type=primary]:not([disabled]):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core[plain=true][type=primary]:after{border-width:0}.taro-button-core[plain=true][type=warn]{border:1px solid #e64340;color:#e64340}.taro-button-core[plain=true][type=warn]:not([disabled]):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core[plain=true][type=warn]:after{border-width:0}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default]{border:1px solid #353535;color:#353535}.taro-button-core[plain=true]:not([disabled]):active,.taro-button-core[plain=true][type=default]:not([disabled]):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core[plain=true]:after,.taro-button-core[plain=true][type=default]:after{border-width:0}.taro-button-core[type=primary]{background-color:#1aad19;color:#fff}.taro-button-core[type=primary]:not([disabled]):visited{color:#fff}.taro-button-core[type=primary]:not([disabled]):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core[type=warn]{background-color:#e64340;color:#fff}.taro-button-core[type=warn]:not([disabled]):visited{color:#fff}.taro-button-core[type=warn]:not([disabled]):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core[plain=true][disabled],.taro-button-core[plain=true][disabled][type=primary]{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;height:240px;overflow:hidden;position:relative;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-input-core{display:block}.weui-input{-webkit-appearance:none;background-color:transparent;border:0;color:inherit;font-size:inherit;height:1.4705882353em;line-height:1.4705882353;outline:0;width:100%}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.taro-picker__overlay{position:fixed;z-index:1000}.taro-picker__mask-overlay,.taro-picker__overlay{bottom:0;height:100%;left:0;right:0;top:0;width:100%}.taro-picker__mask-overlay{background-color:rgba(0,0,0,.6);position:absolute;z-index:1001}.taro-picker{background-color:#e5e5e5;bottom:0;font-size:14px;left:0;position:absolute;width:100%;z-index:1002}.taro-picker__hd{align-items:center;background-color:#fff;display:flex;font-size:17px;height:44px;justify-content:space-between;padding:0;position:relative}.taro-picker__hd:after{background-color:#e5e5e5;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleY(.5);width:100%}.taro-picker__action{color:#1aad19;flex:0 0 auto;font-size:14px;height:44px;line-height:44px;padding:0 10px}.taro-picker__action:first-child{color:#888}.taro-picker__title{color:#000;font-size:16px;font-weight:500;left:50%;max-width:40%;overflow:hidden;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.taro-picker__bd{background-color:#fff;height:238px;overflow:hidden;width:100%}.taro-picker__bd,.taro-picker__group{box-sizing:border-box;display:flex;flex:1}.taro-picker__group{align-items:center;height:100%;justify-content:center;min-width:0;position:relative}.taro-picker__group--date .taro-picker__columns{display:flex;height:100%;width:100%}.taro-picker__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95));height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.taro-picker__indicator{box-sizing:border-box;height:34px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:1002}.taro-picker__indicator:after,.taro-picker__indicator:before{background-color:#e5e5e5;content:"";height:1px;left:0;position:absolute;right:0;transform:scaleY(.5)}.taro-picker__indicator:before{top:0}.taro-picker__indicator:after{bottom:0}.taro-picker__content{box-sizing:border-box;height:100%;width:100%}.taro-picker__item{align-items:center;box-sizing:border-box;color:#000;display:flex;font-size:16px;height:34px;justify-content:center;line-height:34px;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.taro-picker__item--selected{color:#1aad19;font-weight:500}.taro-picker__item--disabled{color:#999}.taro-picker__column{flex:1;margin:0 8px}.taro-picker__column:first-child{margin-left:0}.taro-picker__column:last-child{margin-right:0}.taro-picker__item--custom{align-items:center;color:#888;display:flex;font-weight:400;justify-content:center;text-align:center}@keyframes taro-picker__slide-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes taro-picker__slide-down{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes taro-picker__fade-in{0%{opacity:0}to{opacity:1}}@keyframes taro-picker__fade-out{0%{opacity:1}to{opacity:0}}.rmc-pull-to-refresh-content{transform-origin:left top 0}.rmc-pull-to-refresh-content-wrapper{min-height:100%}.rmc-pull-to-refresh-transition{transition:transform .3s}@keyframes rmc-pull-to-refresh-indicator{50%{opacity:.2}to{opacity:1}}.rmc-pull-to-refresh-indicator{height:30px;line-height:10px;text-align:center}.rmc-pull-to-refresh-indicator>div{animation-fill-mode:both;animation:rmc-pull-to-refresh-indicator .5s linear 0s infinite;background-color:grey;border-radius:100%;display:inline-block;height:6px;margin:3px;width:6px}.rmc-pull-to-refresh-indicator>div:nth-child(0){animation-delay:-.1s!important}.rmc-pull-to-refresh-indicator>div:first-child{animation-delay:-.2s!important}.rmc-pull-to-refresh-indicator>div:nth-child(2){animation-delay:-.3s!important}.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator{margin-top:-25px}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.swiper-container-wrapper{height:150px}.swiper-container{height:100%;overflow:visible;position:relative}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
|
|
1
|
+
@-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core[loading]>.weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%;display:inline-block;height:20px;vertical-align:middle;width:20px}.taro-button-core[loading]>.weui-loading.weui-btn_primary,.taro-button-core[loading]>.weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core[loading]>.weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core[loading]>.weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);appearance:none;background-color:#f8f8f8;border-radius:5px;border-width:0;box-sizing:border-box;color:#000;display:block;font-size:18px;line-height:2.55555556;margin-left:auto;margin-right:auto;outline:0;overflow:hidden;padding-left:14px;padding-right:14px;position:relative;text-align:center;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core:after{border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;content:" ";height:200%;left:0;position:absolute;top:0;transform:scale(.5);transform-origin:0 0;width:200%}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core[type=default]{background-color:#f8f8f8;color:#000}.taro-button-core[type=default]:not([disabled]):visited{color:#000}.taro-button-core[type=default]:not([disabled]):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core[size=mini]{display:inline-block;font-size:13px;line-height:2.3;padding:0 1.32em;width:auto}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default],.taro-button-core[plain=true][type=primary]{background-color:transparent;border-width:1px}.taro-button-core[disabled]{color:hsla(0,0%,100%,.6)}.taro-button-core[disabled][type=default]{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core[disabled][type=primary]{background-color:#9ed99d}.taro-button-core[disabled][type=warn]{background-color:#ec8b89}.taro-button-core[loading] .weui-loading{margin:-.2em .34em 0 0}.taro-button-core[loading][type=primary],.taro-button-core[loading][type=warn]{color:hsla(0,0%,100%,.6)}.taro-button-core[loading][type=primary]{background-color:#179b16}.taro-button-core[loading][type=warn]{background-color:#ce3c39}.taro-button-core[plain=true][type=primary]{border:1px solid #1aad19;color:#1aad19}.taro-button-core[plain=true][type=primary]:not([disabled]):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core[plain=true][type=primary]:after{border-width:0}.taro-button-core[plain=true][type=warn]{border:1px solid #e64340;color:#e64340}.taro-button-core[plain=true][type=warn]:not([disabled]):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core[plain=true][type=warn]:after{border-width:0}.taro-button-core[plain=true],.taro-button-core[plain=true][type=default]{border:1px solid #353535;color:#353535}.taro-button-core[plain=true]:not([disabled]):active,.taro-button-core[plain=true][type=default]:not([disabled]):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core[plain=true]:after,.taro-button-core[plain=true][type=default]:after{border-width:0}.taro-button-core[type=primary]{background-color:#1aad19;color:#fff}.taro-button-core[type=primary]:not([disabled]):visited{color:#fff}.taro-button-core[type=primary]:not([disabled]):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core[type=warn]{background-color:#e64340;color:#fff}.taro-button-core[type=warn]:not([disabled]):visited{color:#fff}.taro-button-core[type=warn]:not([disabled]):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core[plain=true][disabled],.taro-button-core[plain=true][disabled][type=primary]{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;height:240px;overflow:hidden;position:relative;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-input-core{display:block}.weui-input{-webkit-appearance:none;background-color:transparent;border:0;color:inherit;font-size:inherit;height:1.4705882353em;line-height:1.4705882353;outline:0;width:100%}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.taro-picker__overlay{position:fixed;z-index:1000}.taro-picker__mask-overlay,.taro-picker__overlay{bottom:0;height:100%;left:0;right:0;top:0;width:100%}.taro-picker__mask-overlay{background-color:rgba(0,0,0,.6);position:absolute;z-index:1001}.taro-picker{background-color:#e5e5e5;bottom:0;font-size:14px;left:0;position:absolute;width:100%;z-index:1002}.taro-picker__hd{align-items:center;background-color:#fff;display:flex;font-size:17px;height:44px;justify-content:space-between;padding:0;position:relative}.taro-picker__hd:after{background-color:#e5e5e5;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleY(.5);width:100%}.taro-picker__action{color:#1aad19;flex:0 0 auto;font-size:14px;height:44px;line-height:44px;padding:0 10px}.taro-picker__action:first-child{color:#888}.taro-picker__title{color:#000;font-size:16px;font-weight:500;left:50%;max-width:40%;overflow:hidden;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.taro-picker__bd{background-color:#fff;height:238px;overflow:hidden;width:100%}.taro-picker__bd,.taro-picker__group{box-sizing:border-box;display:flex;flex:1}.taro-picker__group{align-items:center;height:100%;justify-content:center;min-width:0;position:relative}.taro-picker__group--date .taro-picker__columns{display:flex;height:100%;width:100%}.taro-picker__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95));height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.taro-picker__indicator{box-sizing:border-box;height:34px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:1002}.taro-picker__indicator:after,.taro-picker__indicator:before{background-color:#e5e5e5;content:"";height:1px;left:0;position:absolute;right:0;transform:scaleY(.5)}.taro-picker__indicator:before{top:0}.taro-picker__indicator:after{bottom:0}.taro-picker__content{box-sizing:border-box;height:100%;width:100%}.taro-picker__item{align-items:center;box-sizing:border-box;color:#000;display:flex;font-size:16px;height:34px;justify-content:center;line-height:34px;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.taro-picker__item--selected{color:#1aad19;font-weight:500}.taro-picker__item--disabled{color:#999}.taro-picker__column{flex:1;margin:0 8px}.taro-picker__column:first-child{margin-left:0}.taro-picker__column:last-child{margin-right:0}.taro-picker__item--custom{align-items:center;color:#888;display:flex;font-weight:400;justify-content:center;text-align:center}@keyframes taro-picker__slide-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes taro-picker__slide-down{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes taro-picker__fade-in{0%{opacity:0}to{opacity:1}}@keyframes taro-picker__fade-out{0%{opacity:1}to{opacity:0}}.rmc-pull-to-refresh-content{transform-origin:left top 0}.rmc-pull-to-refresh-content-wrapper{min-height:100%}.rmc-pull-to-refresh-transition{transition:transform .3s}@keyframes rmc-pull-to-refresh-indicator{50%{opacity:.2}to{opacity:1}}.rmc-pull-to-refresh-indicator{height:30px;line-height:10px;text-align:center}.rmc-pull-to-refresh-indicator>div{animation-fill-mode:both;animation:rmc-pull-to-refresh-indicator .5s linear 0s infinite;background-color:grey;border-radius:100%;display:inline-block;height:6px;margin:3px;width:6px}.rmc-pull-to-refresh-indicator>div:nth-child(0){animation-delay:-.1s!important}.rmc-pull-to-refresh-indicator>div:first-child{animation-delay:-.2s!important}.rmc-pull-to-refresh-indicator>div:nth-child(2){animation-delay:-.3s!important}.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator{margin-top:-25px}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll--hidebar::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.swiper-container-wrapper{height:150px}.swiper-container{height:100%;overflow:visible;position:relative}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, Map, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, PickerView, PickerViewColumn, Progress, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span,
|
|
1
|
+
export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, Map, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, PickerView, PickerViewColumn, Progress, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span, Switch, Tabs, Textarea, Video, VoipRoom, WebView } from '@tarojs/components/lib/react';
|
|
2
2
|
export { default as Button } from './components/button/index.js';
|
|
3
3
|
export { default as Icon } from './components/icon/index.js';
|
|
4
4
|
export { default as Image } from './components/image/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { Map } from '@tarojs/components/lib/react'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/react'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { Map } from '@tarojs/components/lib/react'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/react'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/react'\nexport { Swiper, SwiperItem } from './components/swiper'\nexport { Switch } from '@tarojs/components/lib/react'\nexport { Tabs } from '@tarojs/components/lib/react'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/react'\nexport { Video } from '@tarojs/components/lib/react'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/react'\nexport { WebView } from '@tarojs/components/lib/react'\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA"}
|
|
@@ -3,7 +3,7 @@ import { __rest } from 'tslib';
|
|
|
3
3
|
import './style/index.scss.js';
|
|
4
4
|
import { View } from '@tarojs/components';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
|
-
import
|
|
6
|
+
import React__default from 'react';
|
|
7
7
|
import { verifyValue, verifyTime, hoursRange, minutesRange, verifyDate, getYearRange, getMonthRange, getDayRange, compareTime, omit } from '../../utils/index.js';
|
|
8
8
|
import { PickerGroup } from './picker-group.js';
|
|
9
9
|
|
|
@@ -95,7 +95,7 @@ function getRegionColumnsCount(level) {
|
|
|
95
95
|
// 默认显示省市区/县三列
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
const Picker = /*#__PURE__*/
|
|
98
|
+
const Picker = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
99
99
|
var _a, _b;
|
|
100
100
|
const {
|
|
101
101
|
mode = 'selector',
|
|
@@ -118,11 +118,11 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
118
118
|
formType
|
|
119
119
|
} = props,
|
|
120
120
|
restProps = __rest(props, ["mode", "disabled", "range", "rangeKey", "value", "start", "end", "fields", "headerText", "level", "regionData", "textProps", "onChange", "onColumnChange", "onCancel", "children", "style", "formType"]);
|
|
121
|
-
const indexRef =
|
|
122
|
-
const pickerDateRef =
|
|
121
|
+
const indexRef = React__default.useRef([]);
|
|
122
|
+
const pickerDateRef = React__default.useRef();
|
|
123
123
|
// 记录是否是用户滚动
|
|
124
|
-
const isInitializationCompletedRef =
|
|
125
|
-
const [state, setState] =
|
|
124
|
+
const isInitializationCompletedRef = React__default.useRef(false);
|
|
125
|
+
const [state, setState] = React__default.useState({
|
|
126
126
|
pickerValue: value || EMPTY_ARRAY,
|
|
127
127
|
selectedIndices: EMPTY_ARRAY.slice(),
|
|
128
128
|
// 索引数组
|
|
@@ -132,17 +132,17 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
132
132
|
timestamp: 0 // 用以部分模式下强制刷新组件的的时间戳,多用于反复限位
|
|
133
133
|
});
|
|
134
134
|
// 在组件内部
|
|
135
|
-
const [columnsCount, setColumnsCount] =
|
|
135
|
+
const [columnsCount, setColumnsCount] = React__default.useState(() => getRegionColumnsCount(level));
|
|
136
136
|
// 只在level变化时更新列数
|
|
137
|
-
|
|
137
|
+
React__default.useEffect(() => {
|
|
138
138
|
setColumnsCount(getRegionColumnsCount(level));
|
|
139
139
|
}, [level]);
|
|
140
140
|
// 获取当前索引数组
|
|
141
|
-
const getIndices =
|
|
141
|
+
const getIndices = React__default.useCallback(() => {
|
|
142
142
|
return indexRef.current;
|
|
143
143
|
}, []);
|
|
144
144
|
// 处理属性变化
|
|
145
|
-
const handleProps =
|
|
145
|
+
const handleProps = React__default.useCallback(() => {
|
|
146
146
|
var _a;
|
|
147
147
|
if (mode === 'selector') {
|
|
148
148
|
const val = value;
|
|
@@ -240,20 +240,20 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
240
240
|
}));
|
|
241
241
|
}, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices]);
|
|
242
242
|
// 组件初始化
|
|
243
|
-
|
|
243
|
+
React__default.useEffect(() => {
|
|
244
244
|
setState(prev => Object.assign(Object.assign({}, prev), {
|
|
245
245
|
isWillLoadCalled: true
|
|
246
246
|
}));
|
|
247
247
|
handleProps();
|
|
248
248
|
}, []);
|
|
249
249
|
// 属性变化监听 - 添加 value 依赖以支持联动选择器
|
|
250
|
-
|
|
250
|
+
React__default.useEffect(() => {
|
|
251
251
|
if (state.isWillLoadCalled) {
|
|
252
252
|
handleProps();
|
|
253
253
|
}
|
|
254
254
|
}, [handleProps, state.isWillLoadCalled, JSON.stringify(value)]);
|
|
255
255
|
// 显示 Picker
|
|
256
|
-
const showPicker =
|
|
256
|
+
const showPicker = React__default.useCallback(() => {
|
|
257
257
|
if (disabled) return;
|
|
258
258
|
isInitializationCompletedRef.current = false;
|
|
259
259
|
const newIndices = getIndices();
|
|
@@ -263,7 +263,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
263
263
|
}));
|
|
264
264
|
}, [disabled, getIndices]);
|
|
265
265
|
// 隐藏 Picker
|
|
266
|
-
const hidePicker =
|
|
266
|
+
const hidePicker = React__default.useCallback(() => {
|
|
267
267
|
isInitializationCompletedRef.current = false;
|
|
268
268
|
setState(prev => Object.assign(Object.assign({}, prev), {
|
|
269
269
|
fadeOut: true
|
|
@@ -276,7 +276,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
276
276
|
}, 350);
|
|
277
277
|
}, []);
|
|
278
278
|
// 更新索引
|
|
279
|
-
const updateIndex =
|
|
279
|
+
const updateIndex = React__default.useCallback(function (index, columnId) {
|
|
280
280
|
let needRevise = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
281
281
|
let isUserScrollRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
282
282
|
const columnIndex = Number(columnId);
|
|
@@ -354,7 +354,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
354
354
|
return false; // 没有限位
|
|
355
355
|
}, [start, end, mode, regionData, state.selectedIndices, columnsCount]);
|
|
356
356
|
// 更新日期
|
|
357
|
-
const updateDay =
|
|
357
|
+
const updateDay = React__default.useCallback((value, fields) => {
|
|
358
358
|
if (!pickerDateRef.current) return;
|
|
359
359
|
const {
|
|
360
360
|
_start,
|
|
@@ -432,7 +432,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
432
432
|
}
|
|
433
433
|
}, [state.selectedIndices]);
|
|
434
434
|
// 处理确认
|
|
435
|
-
const handleChange =
|
|
435
|
+
const handleChange = React__default.useCallback(() => {
|
|
436
436
|
const newIndices = [...state.selectedIndices];
|
|
437
437
|
indexRef.current = newIndices;
|
|
438
438
|
let newValue = newIndices.length && mode !== 'selector' ? newIndices : newIndices[0];
|
|
@@ -558,7 +558,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
558
558
|
});
|
|
559
559
|
}, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount]);
|
|
560
560
|
// 处理列变化
|
|
561
|
-
const handleColumnChange =
|
|
561
|
+
const handleColumnChange = React__default.useCallback(e => {
|
|
562
562
|
const {
|
|
563
563
|
columnId,
|
|
564
564
|
index
|
|
@@ -571,12 +571,12 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
571
571
|
});
|
|
572
572
|
}, [onColumnChange]);
|
|
573
573
|
// 处理取消
|
|
574
|
-
const handleCancel =
|
|
574
|
+
const handleCancel = React__default.useCallback(() => {
|
|
575
575
|
hidePicker();
|
|
576
576
|
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
|
|
577
577
|
}, [hidePicker, onCancel]);
|
|
578
578
|
// 渲染选择器组
|
|
579
|
-
const renderPickerGroup =
|
|
579
|
+
const renderPickerGroup = React__default.useMemo(() => {
|
|
580
580
|
switch (mode) {
|
|
581
581
|
case 'multiSelector':
|
|
582
582
|
{
|
|
@@ -731,7 +731,7 @@ const Picker = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
731
731
|
'taro-picker__animate-slide-down': state.fadeOut
|
|
732
732
|
});
|
|
733
733
|
// 暴露方法给外部
|
|
734
|
-
|
|
734
|
+
React__default.useImperativeHandle(ref, () => ({
|
|
735
735
|
showPicker,
|
|
736
736
|
hidePicker
|
|
737
737
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport classNames from 'classnames'\nimport * as React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n style?: React.CSSProperties\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n timestamp: number\n}\n\n// 普通函数\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\n// 暴露给外部的 ref 类型\nexport interface PickerRef {\n showPicker: () => void\n hidePicker: () => void\n}\n\nconst Picker = React.forwardRef<PickerRef, IProps>((props, ref) => {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n style,\n formType,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n // 记录是否是用户滚动\n const isInitializationCompletedRef = React.useRef(false)\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n timestamp: 0 // 用以部分模式下强制刷新组件的的时间戳,多用于反复限位\n })\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1970/01/01')\n const _end = verifyDate(end) || new Date('2999/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n if (\n !pickerDateRef.current ||\n pickerDateRef.current._value.getTime() !== _value.getTime() ||\n pickerDateRef.current._start.getTime() !== _start.getTime() ||\n pickerDateRef.current._end.getTime() !== _end.getTime()\n ) {\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = [0]\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = [0]\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? value : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n let idx = 0\n if (typeof val[i] === 'number') {\n const rawIdx = val[i] as number\n idx = (rawIdx >= 0 && rawIdx < currentData.length) ? rawIdx : 0\n } else if (typeof val[i] === 'string') {\n const parsed = parseInt(val[i] as string, 10)\n idx = (parsed >= 0 && parsed < currentData.length) ? parsed : 0\n }\n indexRef.current.push(idx)\n currentData = currentData[idx]?.children || []\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 显示 Picker\n const showPicker = React.useCallback(() => {\n if (disabled) return\n isInitializationCompletedRef.current = false\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n hidden: false\n }))\n }, [disabled, getIndices])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n isInitializationCompletedRef.current = false\n setState(prev => ({ ...prev, fadeOut: true }))\n setTimeout(() => {\n setState(prev => ({\n ...prev,\n hidden: true,\n fadeOut: false\n }))\n }, 350)\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise: boolean = false, isUserScrollRef: boolean = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n if (isUserScrollRef && !isInitializationCompletedRef.current) {\n isInitializationCompletedRef.current = true\n }\n if (!isInitializationCompletedRef.current) {\n return\n }\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n // 触发限位,更新状态,其它状态不用主动触发滚动\n if (hasLimited) {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n } else {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) {\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n // 处理取消\n const handleCancel = React.useCallback(() => {\n hidePicker()\n onCancel?.()\n }, [hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n />\n ))\n }\n case 'time': {\n return [\n <PickerGroup\n key={`hour-${state.timestamp}`}\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n />,\n <PickerGroup\n key={`minute-${state.timestamp}`}\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => `${item}年`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => `${item < 10 ? `0${item}` : item}月`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => `${item < 10 ? `0${item}` : item}日`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n\n // 暴露方法给外部\n React.useImperativeHandle(ref, () => ({\n showPicker,\n hidePicker\n }))\n\n return (\n <View\n ref={ref as any} // 直接绑定 ref\n style={style}\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'style', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className=\"taro-picker__overlay\">\n <View className={clsMask} onClick={handleCancel} />\n <View className={clsSlider}>\n <View className=\"taro-picker__hd\">\n <View className=\"taro-picker__action\" onClick={handleCancel}>\n {textProps.cancelText ?? '取消'}\n </View>\n {headerText && (\n <View className=\"taro-picker__title\">{headerText}</View>\n )}\n <View className=\"taro-picker__action\" onClick={handleChange}>\n {textProps.okText ?? '确定'}\n </View>\n </View>\n <View className=\"taro-picker__bd\">{renderPickerGroup}</View>\n </View>\n </View>\n )}\n </View>\n )\n})\n\nPicker.displayName = 'Picker'\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","React","forwardRef","props","ref","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","onChange","onColumnChange","onCancel","style","formType","restProps","__rest","indexRef","useRef","pickerDateRef","isInitializationCompletedRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","timestamp","columnsCount","setColumnsCount","useEffect","getIndices","useCallback","current","handleProps","val","verifyValue","Math","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","max","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","getTime","_updateValue","validation","currentData","idx","rawIdx","parsed","_a","newIndices","prev","Object","assign","JSON","stringify","showPicker","hidePicker","setTimeout","updateIndex","columnId","needRevise","isUserScrollRef","columnIndex","Number","finalIndices","hasLimited","startTime","endTime","compareTime","timeRanges","timeStr","rangeIdx","join","startParts","part","endParts","now","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","year","month","day","toString","detail","selectedCodes","handleColumnChange","e","column","handleCancel","renderPickerGroup","useMemo","_$createComponent","PickerGroup","key","String","selectedIndex","renderView","columns","prevIndex","clsMask","classNames","clsSlider","useImperativeHandle","View","_$mergeProps","r$","_ref$","omit","onClick","_$memo","className","cancelText","okText","_b","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/picker/index.tsx"],"sourcesContent":["import './style/index.scss'\n\nimport { View } from '@tarojs/components'\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport {\n compareTime,\n getDayRange,\n getMonthRange,\n getYearRange,\n hoursRange,\n minutesRange,\n omit,\n verifyDate,\n verifyTime,\n verifyValue\n} from '../../utils'\nimport { PickerGroup } from './picker-group'\n\n// 定义 RegionData 类型,与 Taro 官方保持一致\nexport interface RegionData {\n value: string\n code: string\n postcode?: string\n children?: RegionData[]\n}\n\n// 稳定的空数组引用,避免每次渲染都创建新引用\nconst EMPTY_ARRAY: any[] = []\nconst EMPTY_OBJECT: Record<string, any> = {}\n\n// 数据验证函数\nfunction validateRegionData(data: RegionData[], componentName = 'Picker'): { valid: boolean, error?: string } {\n if (!data) {\n return { valid: false, error: `${componentName}: regionData is required for region mode` }\n }\n\n if (!Array.isArray(data)) {\n return { valid: false, error: `${componentName}: regionData must be an array` }\n }\n\n if (data.length === 0) {\n return { valid: false, error: `${componentName}: regionData cannot be empty` }\n }\n\n // 检查数据结构\n const validateItem = (item: RegionData, path: string): { valid: boolean, error?: string } => {\n if (!item || typeof item !== 'object') {\n return { valid: false, error: `${componentName}: Invalid item at ${path}` }\n }\n\n if (!item.value || typeof item.value !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'value' field at ${path}` }\n }\n\n if (!item.code || typeof item.code !== 'string') {\n return { valid: false, error: `${componentName}: Missing or invalid 'code' field at ${path}` }\n }\n\n if (item.postcode !== undefined && typeof item.postcode !== 'string') {\n return { valid: false, error: `${componentName}: Invalid 'postcode' field at ${path}` }\n }\n\n if (item.children && !Array.isArray(item.children)) {\n return { valid: false, error: `${componentName}: 'children' must be an array at ${path}` }\n }\n\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n const childResult = validateItem(item.children[i], `${path}.children[${i}]`)\n if (!childResult.valid) return childResult\n }\n }\n\n return { valid: true }\n }\n\n for (let i = 0; i < data.length; i++) {\n const result = validateItem(data[i], `regionData[${i}]`)\n if (!result.valid) return result\n }\n\n return { valid: true }\n}\n\nexport type Mode = 'selector' | 'multiSelector' | 'time' | 'date' | 'region'\nexport type Fields = 'day' | 'month' | 'year'\nexport type RegionLevel = 'province' | 'city' | 'region'\nexport type PickerValue = number | number[] | string | string[]\n\nexport interface PickerText {\n okText?: string\n cancelText?: string\n}\n\nexport interface PickerDate {\n _value: Date\n _start: Date\n _end: Date\n _updateValue: [number, number, number]\n}\n\ninterface IProps {\n mode?: Mode\n disabled?: boolean\n range?: any[]\n rangeKey?: string\n value?: PickerValue\n start?: string\n end?: string\n fields?: Fields\n name?: string\n headerText?: string\n regionData?: RegionData[] // 省市区/县数据(region 模式专用)\n level?: RegionLevel\n textProps?: PickerText\n onChange?: (e: { detail: { value: PickerValue, code?: string, postcode?: string } }) => void\n onColumnChange?: (e: { detail: { column: number, value: number } }) => void\n onCancel?: () => void\n children?: React.ReactNode\n style?: React.CSSProperties\n forwardedRef?: React.MutableRefObject<HTMLDivElement | null>\n formType?: string\n}\n\ninterface IState {\n pickerValue: PickerValue\n selectedIndices: number[] // 索引数组\n hidden: boolean\n fadeOut: boolean\n isWillLoadCalled: boolean\n timestamp: number\n}\n\n// 普通函数\nfunction getRegionColumnsCount(level: RegionLevel): number {\n switch (level) {\n case 'province': return 1\n case 'city': return 2\n case 'region': return 3\n default: return 3 // 默认显示省市区/县三列\n }\n}\n\n// 暴露给外部的 ref 类型\nexport interface PickerRef {\n showPicker: () => void\n hidePicker: () => void\n}\n\nconst Picker = React.forwardRef<PickerRef, IProps>((props, ref) => {\n const {\n mode = 'selector',\n disabled = false,\n range = EMPTY_ARRAY,\n rangeKey,\n value,\n start = '',\n end = '',\n fields = 'day',\n headerText,\n level = 'region',\n regionData,\n textProps = EMPTY_OBJECT,\n onChange,\n onColumnChange,\n onCancel,\n children,\n style,\n formType,\n ...restProps\n } = props\n const indexRef = React.useRef<number[]>([])\n const pickerDateRef = React.useRef<PickerDate>()\n // 记录是否是用户滚动\n const isInitializationCompletedRef = React.useRef(false)\n\n const [state, setState] = React.useState<IState>({\n pickerValue: value || EMPTY_ARRAY,\n selectedIndices: EMPTY_ARRAY.slice(), // 索引数组\n hidden: true,\n fadeOut: false,\n isWillLoadCalled: false,\n timestamp: 0 // 用以部分模式下强制刷新组件的的时间戳,多用于反复限位\n })\n\n // 在组件内部\n const [columnsCount, setColumnsCount] = React.useState(() => getRegionColumnsCount(level))\n\n // 只在level变化时更新列数\n React.useEffect(() => {\n setColumnsCount(getRegionColumnsCount(level))\n }, [level])\n\n // 获取当前索引数组\n const getIndices = React.useCallback(() => {\n return indexRef.current\n }, [])\n\n // 处理属性变化\n const handleProps = React.useCallback(() => {\n if (mode === 'selector') {\n const val = value as number\n indexRef.current = [verifyValue(val, range) ? Math.floor(val) : 0]\n } else if (mode === 'multiSelector') {\n const val = value as number[]\n indexRef.current = []\n range.forEach((rangeItem, index) => {\n const valItem = val?.[index]\n const item = verifyValue(valItem, rangeItem as any[]) ? Math.floor(valItem) : 0\n indexRef.current.push(item)\n })\n } else if (mode === 'time') {\n let val = value as string\n if (!verifyTime(val)) {\n console.warn('time picker value illegal')\n val = '0:0'\n }\n const time = val.split(':').map(n => +n)\n\n // 在 hoursRange 和 minutesRange 中找到对应的索引\n const hourIndex = hoursRange.findIndex(item => parseInt(item) === time[0])\n const minuteIndex = minutesRange.findIndex(item => parseInt(item) === time[1])\n\n // 确保索引在有效范围内\n const safeHourIndex = hourIndex >= 0 ? hourIndex : 0 // 默认为第一项\n const safeMinuteIndex = minuteIndex >= 0 ? minuteIndex : 0 // 默认为第一项\n\n indexRef.current = [\n Math.max(0, Math.min(safeHourIndex, hoursRange.length - 1)),\n Math.max(0, Math.min(safeMinuteIndex, minutesRange.length - 1))\n ]\n } else if (mode === 'date') {\n const val = value as string\n let _value = verifyDate(val) || new Date(new Date().setHours(0, 0, 0, 0))\n const _start = verifyDate(start) || new Date('1970/01/01')\n const _end = verifyDate(end) || new Date('2999/01/01')\n if (!(_start <= _end)) {\n throw new Error(`Picker start time must be less than end time.`)\n }\n if (!(_value >= _start && _value <= _end)) {\n _value = _start\n }\n const currentYear = _value.getFullYear()\n const currentMonth = _value.getMonth() + 1\n const currentDay = _value.getDate()\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n indexRef.current = [\n yearRange.indexOf(currentYear),\n monthRange.indexOf(currentMonth),\n dayRange.indexOf(currentDay)\n ]\n if (\n !pickerDateRef.current ||\n pickerDateRef.current._value.getTime() !== _value.getTime() ||\n pickerDateRef.current._start.getTime() !== _start.getTime() ||\n pickerDateRef.current._end.getTime() !== _end.getTime()\n ) {\n pickerDateRef.current = {\n _value,\n _start,\n _end,\n _updateValue: [currentYear, currentMonth, currentDay]\n }\n }\n } else if (mode === 'region') {\n // region 模式处理 - 验证数据\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n indexRef.current = [0]\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n indexRef.current = [0]\n return\n }\n\n // 获取列数\n const val = Array.isArray(value) ? value : []\n\n // 根据level和当前值确定索引\n indexRef.current = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData?.length) {\n indexRef.current.push(0)\n continue\n }\n let idx = 0\n if (typeof val[i] === 'number') {\n const rawIdx = val[i] as number\n idx = (rawIdx >= 0 && rawIdx < currentData.length) ? rawIdx : 0\n } else if (typeof val[i] === 'string') {\n const parsed = parseInt(val[i] as string, 10)\n idx = (parsed >= 0 && parsed < currentData.length) ? parsed : 0\n }\n indexRef.current.push(idx)\n currentData = currentData[idx]?.children || []\n }\n } else {\n throw new Error(`Picker not support \"${mode}\" mode.`)\n }\n\n // 更新索引值\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n pickerValue: value || EMPTY_ARRAY\n }))\n }, [mode, range, value, start, end, fields, regionData, level, columnsCount, getIndices])\n\n // 组件初始化\n React.useEffect(() => {\n setState(prev => ({ ...prev, isWillLoadCalled: true }))\n handleProps()\n }, [])\n\n // 属性变化监听 - 添加 value 依赖以支持联动选择器\n React.useEffect(() => {\n if (state.isWillLoadCalled) {\n handleProps()\n }\n }, [handleProps, state.isWillLoadCalled, JSON.stringify(value)])\n\n // 显示 Picker\n const showPicker = React.useCallback(() => {\n if (disabled) return\n isInitializationCompletedRef.current = false\n const newIndices = getIndices()\n setState(prev => ({\n ...prev,\n selectedIndices: newIndices,\n hidden: false\n }))\n }, [disabled, getIndices])\n\n // 隐藏 Picker\n const hidePicker = React.useCallback(() => {\n isInitializationCompletedRef.current = false\n setState(prev => ({ ...prev, fadeOut: true }))\n setTimeout(() => {\n setState(prev => ({\n ...prev,\n hidden: true,\n fadeOut: false\n }))\n }, 350)\n }, [])\n\n // 更新索引\n const updateIndex = React.useCallback((index: number, columnId: string, needRevise: boolean = false, isUserScrollRef: boolean = false) => {\n const columnIndex = Number(columnId)\n let finalIndices = [...state.selectedIndices]\n finalIndices[columnIndex] = index\n let hasLimited = false\n\n // region 模式的级联更新逻辑\n if (mode === 'region' && regionData) {\n if (isUserScrollRef && !isInitializationCompletedRef.current) {\n isInitializationCompletedRef.current = true\n }\n if (!isInitializationCompletedRef.current) {\n return\n }\n // 重置后续列\n for (let i = columnIndex + 1; i < columnsCount; i++) {\n finalIndices[i] = 0\n }\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n return // 直接返回\n }\n\n // time picker\n if (needRevise && mode === 'time') {\n let startTime = start\n let endTime = end\n\n if (!verifyTime(startTime)) startTime = '00:00'\n if (!verifyTime(endTime)) endTime = '23:59'\n if (!compareTime(startTime, endTime)) return false\n\n const timeRanges = [hoursRange.slice(), minutesRange.slice()]\n // 然后基于更新后的索引数组计算时间\n const timeStr = finalIndices.map((idx, i) => {\n const rangeIdx = Math.max(0, Math.min(idx, timeRanges[i].length - 1))\n return timeRanges[i][rangeIdx] || '00'\n }).join(':')\n\n // 检查是否需要限位\n if (!compareTime(startTime, timeStr)) {\n // 修正到 start\n const startParts = startTime.split(':').map(part => parseInt(part))\n const newIndices = startParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n } else if (!compareTime(timeStr, endTime)) {\n // 修正到 end\n const endParts = endTime.split(':').map(part => parseInt(part))\n const newIndices = endParts.map((time, i) => {\n const idx = timeRanges[i].findIndex(item => parseInt(item) === time)\n return idx >= 0 ? idx : 0\n })\n\n finalIndices = [...newIndices]\n hasLimited = true\n }\n\n // 触发限位,更新状态,其它状态不用主动触发滚动\n if (hasLimited) {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n timestamp: Date.now()\n }))\n } else {\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n\n return hasLimited\n }\n\n // 常规更新\n finalIndices[columnIndex] = index\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n\n return false // 没有限位\n }, [start, end, mode, regionData, state.selectedIndices, columnsCount])\n\n // 更新日期\n const updateDay = React.useCallback((value: number, fields: number) => {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n\n // 更新当前字段的值\n _updateValue[fields] = value\n\n // 获取当前年月日\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const currentDay = _updateValue[2]\n\n // 保存原始值用于后面比较\n const originalValues = [..._updateValue]\n\n // 准备最终的索引数组 - 复制当前索引状态作为起点\n const finalIndices = [...state.selectedIndices]\n\n // 获取基础范围数据\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n let dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 根据修改的字段进行不同处理\n if (fields === 0) {\n // 年份索引直接更新\n finalIndices[0] = yearRange.indexOf(currentYear)\n\n // 月份限位处理\n if (monthRange.length > 0) {\n if (currentMonth > monthRange[monthRange.length - 1]) {\n _updateValue[1] = monthRange[monthRange.length - 1]\n }\n if (currentMonth < monthRange[0]) {\n _updateValue[1] = monthRange[0]\n }\n\n // 更新月份索引\n finalIndices[1] = monthRange.indexOf(_updateValue[1])\n\n // 重新计算日期范围\n dayRange = getDayRange(_start, _end, currentYear, _updateValue[1])\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n }\n } else if (fields === 1) { // 月份变化\n // 月份索引直接更新\n finalIndices[1] = monthRange.indexOf(currentMonth)\n\n // 日期限位处理\n if (dayRange.length > 0) {\n if (currentDay > dayRange[dayRange.length - 1]) {\n _updateValue[2] = dayRange[dayRange.length - 1]\n }\n if (currentDay < dayRange[0]) {\n _updateValue[2] = dayRange[0]\n }\n\n // 更新日期索引\n finalIndices[2] = dayRange.indexOf(_updateValue[2])\n }\n } else if (fields === 2) { // 日期变化\n // 日期索引直接更新\n finalIndices[2] = dayRange.indexOf(currentDay)\n }\n\n // 只在有实际变化时更新状态\n if (\n JSON.stringify(originalValues) !== JSON.stringify(_updateValue) ||\n JSON.stringify(finalIndices) !== JSON.stringify(state.selectedIndices)\n ) {\n // 一次性更新状态\n setState(prev => ({\n ...prev,\n selectedIndices: finalIndices,\n }))\n }\n }, [state.selectedIndices])\n\n // 处理确认\n const handleChange = React.useCallback(() => {\n const newIndices = [...state.selectedIndices]\n indexRef.current = newIndices\n\n let newValue: PickerValue = newIndices.length && mode !== 'selector'\n ? newIndices\n : newIndices[0]\n\n if (mode === 'time') {\n const range = [hoursRange.slice(), minutesRange.slice()]\n\n // 安全的时间处理,添加边界检查\n const timeArr = newIndices.map<string>((idx, i) => {\n const index = Math.max(0, Math.min(idx, range[i].length - 1))\n return range[i][index] || (i === 0 ? '00' : '00')\n })\n\n // 确保时间值有效\n const validTimeArr = timeArr.map(time => {\n const num = parseInt(time)\n return isNaN(num) ? '00' : time\n })\n\n indexRef.current = validTimeArr.map(item => parseInt(item))\n newValue = validTimeArr.join(':')\n }\n\n if (mode === 'date') {\n if (!pickerDateRef.current) return\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n const monthRange = getMonthRange(_start, _end, currentYear)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n\n // 添加边界检查,确保索引有效\n const yearIndex = Math.min(Math.max(Math.floor(newIndices[0]), 0), yearRange.length - 1)\n const monthIndex = Math.min(Math.max(Math.floor(newIndices[1]), 0), monthRange.length - 1)\n const dayIndex = Math.min(Math.max(Math.floor(newIndices[2]), 0), dayRange.length - 1)\n\n const year = yearRange[yearIndex]\n const month = monthRange[monthIndex]\n const day = dayRange[dayIndex]\n\n // 确保所有值都存在\n if (year === undefined || month === undefined || day === undefined) {\n console.warn('Date picker: invalid date values', { year, month, day })\n return\n }\n\n if (fields === 'year') {\n newValue = year.toString()\n } else if (fields === 'month') {\n // YYYY-MM 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}`\n } else {\n // YYYY-MM-DD 格式\n newValue = `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n onChange?.({ detail: { value: newValue } })\n return\n }\n\n if (mode === 'region') {\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return\n }\n\n const validation = validateRegionData(regionData, 'Picker')\n if (!validation.valid) {\n console.error(validation.error)\n return\n }\n\n // 直接使用索引数组\n const selectedCodes: string[] = []\n let postcode = ''\n\n // 安全获取选中值\n let currentData = regionData\n for (let i = 0; i < columnsCount; i++) {\n if (!currentData || currentData.length === 0) break\n\n const index = newIndices[i] || 0\n if (index < 0 || index >= currentData.length) break\n\n const item = currentData[index]\n selectedCodes.push(item.code)\n\n // 如果是最后一项,获取邮政编码\n if (i === columnsCount - 1 && item.postcode) {\n postcode = item.postcode\n }\n\n // 准备下一级数据\n currentData = item.children || []\n }\n\n // 检查索引数组长度是否符合要求\n if (newIndices.length < columnsCount) {\n console.warn('Region picker: incomplete selection')\n return\n }\n\n // 触发 onChange 事件,包含 code 信息\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newIndices\n }))\n\n onChange?.({\n detail: {\n value: newIndices,\n code: selectedCodes.join(','),\n postcode\n }\n })\n return\n }\n\n hidePicker()\n setState(prev => ({\n ...prev,\n pickerValue: newValue\n }))\n\n // 触发 onChange 事件,格式与原始组件一致\n onChange?.({ detail: { value: newValue } })\n }, [hidePicker, state.selectedIndices, mode, fields, onChange, regionData, columnsCount])\n\n // 处理列变化\n const handleColumnChange = React.useCallback((e: { columnId: string, index: number }) => {\n const { columnId, index } = e\n onColumnChange?.({\n detail: {\n column: Number(columnId),\n value: index\n }\n })\n }, [onColumnChange])\n\n // 处理取消\n const handleCancel = React.useCallback(() => {\n hidePicker()\n onCancel?.()\n }, [hidePicker, onCancel])\n\n // 渲染选择器组\n const renderPickerGroup = React.useMemo(() => {\n switch (mode) {\n case 'multiSelector': {\n return range.map((rangeItem, index) => (\n <PickerGroup\n key={index}\n range={rangeItem}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n onColumnChange={handleColumnChange}\n columnId={String(index)}\n selectedIndex={state.selectedIndices[index]} // 传递对应列的selectedIndex\n />\n ))\n }\n case 'time': {\n return [\n <PickerGroup\n key={`hour-${state.timestamp}`}\n mode=\"time\"\n range={hoursRange}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递小时列的selectedIndex\n />,\n <PickerGroup\n key={`minute-${state.timestamp}`}\n mode=\"time\"\n range={minutesRange}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递分钟列的selectedIndex\n />\n ]\n }\n case 'date': {\n if (!pickerDateRef.current) return null\n\n const { _start, _end, _updateValue } = pickerDateRef.current\n const currentYear = _updateValue[0]\n const currentMonth = _updateValue[1]\n\n const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())\n .map(item => `${item}年`)\n const monthRange = getMonthRange(_start, _end, currentYear)\n .map(item => `${item < 10 ? `0${item}` : item}月`)\n const dayRange = getDayRange(_start, _end, currentYear, currentMonth)\n .map(item => `${item < 10 ? `0${item}` : item}日`)\n\n const renderView = [\n <PickerGroup\n key={`year`}\n mode=\"date\"\n range={yearRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递年份列的selectedIndex\n />\n ]\n if (fields === 'month' || fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`month`}\n mode=\"date\"\n range={monthRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"1\"\n selectedIndex={state.selectedIndices[1]} // 传递月份列的selectedIndex\n />\n )\n }\n if (fields === 'day') {\n renderView.push(\n <PickerGroup\n key={`day`}\n mode=\"date\"\n range={dayRange}\n updateDay={updateDay}\n updateIndex={updateIndex}\n columnId=\"2\"\n selectedIndex={state.selectedIndices[2]} // 传递日期列的selectedIndex\n />\n )\n }\n return renderView\n }\n case 'region': {\n // region 模式处理 - 自动识别数据层级\n if (!regionData) {\n console.error('Picker: regionData is required for region mode')\n return null\n }\n\n // 简化验证逻辑\n if (!validateRegionData(regionData, 'Picker').valid) {\n return null\n }\n\n const columns: JSX.Element[] = []\n let currentData = regionData\n\n for (let i = 0; i < columnsCount; i++) {\n if (i > 0 && currentData?.length) {\n // 获取上一级选中项的children作为当前列数据\n const prevIndex = state.selectedIndices[i - 1] || 0\n if (prevIndex >= 0 && prevIndex < currentData.length) {\n currentData = currentData[prevIndex].children || []\n } else {\n currentData = []\n }\n }\n\n columns.push(\n <PickerGroup\n key={`region-${i}`}\n mode=\"region\"\n range={currentData}\n rangeKey=\"value\"\n updateIndex={updateIndex}\n columnId={String(i)}\n selectedIndex={state.selectedIndices[i]}\n />\n )\n }\n\n return columns\n }\n default:\n return (\n <PickerGroup\n range={range}\n rangeKey={rangeKey}\n updateIndex={updateIndex}\n columnId=\"0\"\n selectedIndex={state.selectedIndices[0]} // 传递selector模式的selectedIndex\n />\n )\n }\n }, [mode, range, rangeKey, fields, updateIndex, updateDay, handleColumnChange, pickerDateRef.current, level, regionData, state.selectedIndices, columnsCount])\n\n // 动画类名控制逻辑\n const clsMask = classNames('taro-picker__mask-overlay', 'taro-picker__animate-fade-in', {\n 'taro-picker__animate-fade-out': state.fadeOut\n })\n const clsSlider = classNames('taro-picker', 'taro-picker__animate-slide-up', {\n 'taro-picker__animate-slide-down': state.fadeOut\n })\n\n // 暴露方法给外部\n React.useImperativeHandle(ref, () => ({\n showPicker,\n hidePicker\n }))\n\n return (\n <View\n ref={ref as any} // 直接绑定 ref\n style={style}\n {...(formType ? { 'data-form-type': formType } : {})}\n {...omit(restProps, ['mode', 'disabled', 'range', 'rangeKey', 'value', 'start', 'end', 'fields', 'name', 'textProps', 'onChange', 'onColumnChange', 'onCancel', 'children', 'style', 'formType'])}\n >\n <View onClick={showPicker}>\n {children}\n </View>\n {!state.hidden && (\n <View className=\"taro-picker__overlay\">\n <View className={clsMask} onClick={handleCancel} />\n <View className={clsSlider}>\n <View className=\"taro-picker__hd\">\n <View className=\"taro-picker__action\" onClick={handleCancel}>\n {textProps.cancelText ?? '取消'}\n </View>\n {headerText && (\n <View className=\"taro-picker__title\">{headerText}</View>\n )}\n <View className=\"taro-picker__action\" onClick={handleChange}>\n {textProps.okText ?? '确定'}\n </View>\n </View>\n <View className=\"taro-picker__bd\">{renderPickerGroup}</View>\n </View>\n </View>\n )}\n </View>\n )\n})\n\nPicker.displayName = 'Picker'\nexport default Picker\n"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","validateRegionData","data","componentName","arguments","length","undefined","valid","error","Array","isArray","validateItem","item","path","value","code","postcode","children","i","childResult","result","getRegionColumnsCount","level","Picker","React","forwardRef","props","ref","mode","disabled","range","rangeKey","start","end","fields","headerText","regionData","textProps","onChange","onColumnChange","onCancel","style","formType","restProps","__rest","indexRef","useRef","pickerDateRef","isInitializationCompletedRef","state","setState","useState","pickerValue","selectedIndices","slice","hidden","fadeOut","isWillLoadCalled","timestamp","columnsCount","setColumnsCount","useEffect","getIndices","useCallback","current","handleProps","val","verifyValue","Math","floor","forEach","rangeItem","index","valItem","push","verifyTime","console","warn","time","split","map","n","hourIndex","hoursRange","findIndex","parseInt","minuteIndex","minutesRange","safeHourIndex","safeMinuteIndex","max","min","_value","verifyDate","Date","setHours","_start","_end","Error","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","yearRange","getYearRange","monthRange","getMonthRange","dayRange","getDayRange","indexOf","getTime","_updateValue","validation","currentData","idx","rawIdx","parsed","_a","newIndices","prev","Object","assign","JSON","stringify","showPicker","hidePicker","setTimeout","updateIndex","columnId","needRevise","isUserScrollRef","columnIndex","Number","finalIndices","hasLimited","startTime","endTime","compareTime","timeRanges","timeStr","rangeIdx","join","startParts","part","endParts","now","updateDay","originalValues","handleChange","newValue","timeArr","validTimeArr","num","isNaN","yearIndex","monthIndex","dayIndex","year","month","day","toString","detail","selectedCodes","handleColumnChange","e","column","handleCancel","renderPickerGroup","useMemo","_$createComponent","PickerGroup","key","String","selectedIndex","renderView","columns","prevIndex","clsMask","classNames","clsSlider","useImperativeHandle","View","_$mergeProps","r$","_ref$","omit","onClick","_$memo","className","cancelText","okText","_b","displayName"],"mappings":"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"}
|
|
@@ -110,7 +110,10 @@ function ScrollView(props) {
|
|
|
110
110
|
onScrollToUpper,
|
|
111
111
|
onScrollToLower,
|
|
112
112
|
scrollX,
|
|
113
|
-
scrollY
|
|
113
|
+
scrollY,
|
|
114
|
+
showScrollbar = true,
|
|
115
|
+
// 默认显示滚动条
|
|
116
|
+
enhanced = false // 默认不增强
|
|
114
117
|
} = props;
|
|
115
118
|
let {
|
|
116
119
|
upperThreshold = 50,
|
|
@@ -118,7 +121,9 @@ function ScrollView(props) {
|
|
|
118
121
|
} = props;
|
|
119
122
|
const cls = classNames('taro-scroll', {
|
|
120
123
|
'taro-scroll-view__scroll-x': scrollX,
|
|
121
|
-
'taro-scroll-view__scroll-y': scrollY
|
|
124
|
+
'taro-scroll-view__scroll-y': scrollY,
|
|
125
|
+
'taro-scroll--hidebar': enhanced === true && showScrollbar === false,
|
|
126
|
+
'taro-scroll--enhanced': enhanced === true
|
|
122
127
|
}, className);
|
|
123
128
|
upperThreshold = Number(upperThreshold);
|
|
124
129
|
lowerThreshold = Number(lowerThreshold);
|