@polyv/product-ui 1.0.0-rc-20250612.3 → 1.1.0-rc-20250703.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address-edit.cjs.js +2 -2
- package/address-edit.es.js +22 -9
- package/address-edit.umd.js +2 -2
- package/address-item.cjs.js +2 -2
- package/address-item.es.js +12 -12
- package/address-item.umd.js +2 -2
- package/address-list.cjs.js +2 -2
- package/address-list.es.js +30 -18
- package/address-list.umd.js +3 -3
- package/big-card-popup.cjs.js +9 -0
- package/big-card-popup.es.d.ts +3 -0
- package/big-card-popup.es.js +4402 -0
- package/big-card-popup.umd.js +9 -0
- package/index.cjs.js +3 -3
- package/index.es.js +1438 -708
- package/index.umd.js +3 -3
- package/mobile-product-pendant.cjs.js +3 -3
- package/mobile-product-pendant.es.js +45 -35
- package/mobile-product-pendant.umd.js +3 -3
- package/order-confirm.cjs.js +2 -2
- package/order-confirm.es.js +30 -18
- package/order-confirm.umd.js +2 -2
- package/order-detail.cjs.js +2 -2
- package/order-detail.es.js +30 -18
- package/order-detail.umd.js +2 -2
- package/order-item.cjs.js +2 -2
- package/order-item.es.js +21 -9
- package/order-item.umd.js +2 -2
- package/order-list-popup.cjs.js +3 -3
- package/order-list-popup.es.js +40 -19
- package/order-list-popup.umd.js +2 -2
- package/order-list.cjs.js +2 -2
- package/order-list.es.js +21 -9
- package/order-list.umd.js +2 -2
- package/order-popup.cjs.js +2 -2
- package/order-popup.es.js +40 -19
- package/order-popup.umd.js +2 -2
- package/package.json +2 -1
- package/pc-product-pendant.cjs.js +3 -3
- package/pc-product-pendant.es.js +21 -9
- package/pc-product-pendant.umd.js +3 -3
- package/product-button.cjs.js +3 -3
- package/product-button.es.js +298 -261
- package/product-button.umd.js +3 -3
- package/product-detail-popup.cjs.js +3 -3
- package/product-detail-popup.es.js +265 -203
- package/product-detail-popup.umd.js +3 -3
- package/product-detail.cjs.js +3 -3
- package/product-detail.es.js +337 -283
- package/product-detail.umd.js +3 -3
- package/product-iframe-link-popup.cjs.js +2 -2
- package/product-iframe-link-popup.es.js +13 -4
- package/product-iframe-link-popup.umd.js +2 -2
- package/product-item.cjs.js +3 -3
- package/product-item.es.js +419 -222
- package/product-item.umd.js +3 -3
- package/product-list-popup.cjs.js +3 -3
- package/product-list-popup.es.js +445 -313
- package/product-list-popup.umd.js +3 -3
- package/product-list.cjs.js +3 -3
- package/product-list.es.js +436 -312
- package/product-list.umd.js +3 -3
- package/small-card.cjs.js +8 -0
- package/small-card.es.d.ts +3 -0
- package/small-card.es.js +4463 -0
- package/small-card.umd.js +9 -0
package/product-list-popup.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";.plv-radio{cursor:pointer;line-height:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.plv-radio:last-of-type{margin-right:0}.plv-radio .plv-radio__inner{-ms-flex-negative:0;flex-shrink:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:16px;height:16px;border-radius:8px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;vertical-align:middle}.plv-radio .plv-radio__label{color:#1d2129;font-size:14px;padding-left:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;line-height:16px;word-break:break-word}.plv-radio:hover .plv-radio__inner{border-color:#3f76fc}.plv-radio.plv-radio--checked .plv-radio__inner{border-width:4px;border-color:#3f76fc}.plv-radio.plv-radio--disabled{cursor:not-allowed}.plv-radio.plv-radio--disabled .plv-radio__inner{border-color:#e5e5e5;background:#f9fafd}.plv-radio.plv-radio--disabled .plv-radio__label{color:#969ba5}.plv-radio.plv-radio--disabled.plv-radio--checked .plv-radio__inner{background:#f9fafd}.plv-radio.plv-radio--readonly{cursor:default}.plv-radio.plv-radio--readonly:hover .plv-radio__inner{border-color:#e5e5e5}.plv-radio.plv-radio--readonly:hover .plv-radio__inner.plv-radio__inner--checked{border-color:#3f76fc}.plv-radio--border{min-width:80px;height:36px!important;padding:0 16px;border-radius:2px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;position:relative;margin-right:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.plv-radio--border:hover{border-color:#3f76fc}.plv-radio--border .plv-radio__label{padding-left:0;font-size:12px;float:none}.plv-radio--border.plv-radio--checked{border-width:2px;border-color:#3f76fc}.plv-radio--border .plv-radio__corner{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;background-image:url(data:image/png;base64,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);background-size:100% 100%}.plv-radio--border.plv-radio--disabled{background:#f9fafd;border-color:#e5e5e5!important}.plv-radio--border.plv-radio--disabled:hover,.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5}.plv-radio--border.plv-radio--readonly.plv-radio--checked{border-color:#3f76fc}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-common-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006}.plv-product-common-popup__body{position:absolute;display:flex;flex-direction:column;width:100%;max-height:90%;overflow:hidden;border-radius:16px 16px 0 0;background:#fff}.plv-product-common-popup__header{position:relative;z-index:2;display:flex;flex-shrink:0;justify-content:center;align-items:center;padding:0 54px}.plv-product-common-popup__back{position:absolute;top:50%;left:18px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:20px;transform:translateY(-50%);cursor:pointer}.plv-product-common-popup__title{color:#000c;font-size:16px;font-weight:500;text-align:center}.plv-product-common-popup__header-right{position:absolute;top:50%;right:12px;display:flex;align-items:center;transform:translateY(-50%)}.plv-product-common-popup__close{display:flex;color:#0009;font-size:24px;cursor:pointer}.plv-product-common-popup__content{position:relative;z-index:2;display:flex;flex:1;overflow:hidden}.plv-product-common-popup__inner{flex:1;overflow-y:auto}.plv-product-common-popup__body--bg1{background:linear-gradient(180deg,#fee5e1,#fef9f4)}.plv-product-common-popup__body--bg1:before{position:absolute;top:-26px;right:-87px;z-index:1;width:176px;height:168px;background:#fdf0d5;pointer-events:none;content:"";filter:blur(80px)}.plv-product-common-popup__body--bg1 .plv-product-common-popup__content{padding:0 12px 30px}.plv-product-common-popup__body--bg1 .plv-product-common-popup__inner{border-radius:12px;background:#fff}.plv-product-common-popup--hide-modal{background:none;pointer-events:none}.plv-product-common-popup--hide-modal .plv-product-common-popup__body{pointer-events:initial}.plv-product-common-popup--fill-body .plv-product-common-popup__content{height:90%}.plv-product-common-popup--mobile .plv-product-common-popup__body{border-radius:16px 16px 0 0}.plv-product-common-popup--position-bottom .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(0, 100%);--plv-product-popup-animation-end: translate(0, 0);bottom:0;left:0}.plv-product-common-popup--position-left .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(-100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;left:0;height:100%;max-height:100%}.plv-product-common-popup--position-right .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;right:0;height:100%;max-height:100%}.plv-product-common-popup--position-center .plv-product-common-popup__body{top:50%;left:50%;max-height:90%;animation:none!important;transform:translate(-50%,-50%)}.plv-product-common-popup--horizontal-screen .plv-product-common-popup__body{border-radius:0}.plv-product-common-popup--page-fullscreen{top:50%;left:50%;width:100vh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__body,.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__content{overflow:initial}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__inner{overflow-y:initial}.plv-product-common-popup-slide-enter-active{animation:plv-product-common-popup-slide-in .2s ease-in-out}.plv-product-common-popup-slide-leave-active{animation:plv-product-common-popup-slide-in .15s reverse ease-in-out}@keyframes plv-product-common-popup-slide-in{0%{transform:var(--plv-product-popup-animation-start)}to{transform:var(--plv-product-popup-animation-end)}}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-form-input{display:flex}.plv-product-form-input__main{position:relative;display:flex;flex:1;align-items:center;box-sizing:border-box;height:50px;overflow:hidden;border-radius:8px;background:#f7f8fa}.plv-product-form-input__input{display:block;flex:1;box-sizing:border-box;height:100%;color:inherit}.plv-product-form-input__input-inner{border:none;border-radius:0;outline:none;display:block;box-sizing:border-box;width:100%;height:100%;padding:0 12px;background:none;font-size:14px}.plv-product-form-input__input-inner::placeholder{color:#9e9e9e}.plv-product-form-input__input-inner::-webkit-outer-spin-button,.plv-product-form-input__input-inner::-webkit-inner-spin-button{margin:0;appearance:none!important}.plv-product-form-input__input-inner[type=number]{appearance:textfield}.plv-product-form-input__input-inner[disabled]{opacity:100%}.plv-product-form-input__input-inner[type=button],.plv-product-form-input__input-inner[type=submit],.plv-product-form-input__input-inner[type=reset]{appearance:none;background:#fff}.plv-product-form-input__clearable{display:flex;margin-right:16px;color:#999;font-size:20px}.plv-product-form-input__suffix-text{color:#aaa;font-size:16px}.plv-product-form-input--textarea .plv-product-form-input__main{height:initial}.plv-product-form-input--textarea .plv-product-form-input__input-inner{padding-top:8px}.plv-product-form-input__suffix{display:flex;align-items:center;padding-right:12px}.plv-product-form-input__suffix .polyv-icon{display:flex;color:#0006;font-size:18px}.plv-product-form-input__suffix:empty{display:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-loading{display:inline-block;width:32px;height:32px;background-image:url(data:image/png;base64,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);background-position:center;background-size:cover;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-label-panel{position:relative;background-color:#f7f8fa}.plv-product-c-label-list__wrapper{position:relative;z-index:1060;display:flex;box-sizing:border-box;margin-bottom:4px;padding:0 12px;background-color:#f7f8fa}.plv-product-c-label-list__inner{display:flex}.plv-product-c-label-list__item{display:flex;flex:none;flex-direction:column;align-items:center;box-sizing:border-box;height:26px;margin-right:8px;margin-bottom:8px;padding:4px 12px;border:1px solid rgba(0,0,0,.06);border-radius:20px;color:#0009;font-size:12px;line-height:18px}.plv-product-c-label-list__item.plv-product-c-label-list__item--active{border-color:#ff62644d;color:#ff6264;font-weight:500}.plv-product-c-label-list__arrow{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:26px;height:26px;margin-left:auto;border:1px solid rgba(0,0,0,.1);border-radius:20px}.plv-product-c-label-list__arrow-icon{display:flex;color:#0006;font-size:16px;transition:.3s}.plv-product-c-label-list__arrow--active .plv-product-c-label-list__arrow-icon{transform:rotate(180deg)}.plv-product-c-label-list__shadow{position:absolute;top:0;right:0;z-index:0;width:80px;height:42px;background:linear-gradient(90deg,#f7f8fa00,#f7f8fa 39%)}.plv-product-c-label-list-panel{position:absolute;top:100%;right:0;left:0;z-index:1050;box-sizing:border-box;padding:0 12px;border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:#f7f8fa}.plv-product-c-label-list-panel__content{flex-wrap:wrap;box-sizing:border-box;max-height:216px;overflow-y:auto;transform:translateZ(0)}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:transform .3s ease,opacity .3s ease}.slide-fade-enter,.slide-fade-leave-to{opacity:0%;transform:translateY(-10px)}.fade-overlay-enter-active,.fade-overlay-leave-active{transition:opacity .3s ease}.fade-overlay-enter,.fade-overlay-leave-to{opacity:0%}.plv-product-c-label-overlay{position:fixed;inset:45% 0 0;z-index:1040;background-color:#0006}.plv-product-c-label-overlay-pc{position:absolute;inset:45% 0 0;z-index:1040;height:600px;background-color:#0006}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-explain--explaining{display:flex;justify-content:center;align-items:center;width:100%;height:20px;border-radius:0 0 8px 8px;background:#ff6264cc;color:#fff;font-size:12px;font-weight:500;backdrop-filter:blur(3px)}.plv-product-c-explain--explaining .plv-product-c-explain--explaining-icon{width:14px;height:14px;margin-right:2px;vertical-align:top}.plv-product-c-explain--explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(255,98,100,.3);border-radius:20px;background:#fff;color:#ff6264;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.plv-product-c-explain--not-explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(0,0,0,.1);border-radius:20px;background:#fff;color:#666;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--explaining-cover{position:absolute;bottom:0;left:0}.plv-product-c-explain--not-explained-cover,.plv-product-c-explain--explained-cover{position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining{width:52px;height:16px;padding:1px 2px;border:1px solid rgba(255,82,82,.6);border-radius:2px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;transform:scale(.8333)}.plv-product-c-explain--no-cover .plv-product-c-explain--explained{width:60px;height:24px;padding:3px 12px;background:transparent;color:#ff5252;font-size:12px}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained{display:flex;box-sizing:border-box;height:16px;margin-left:4px;padding:1px 4px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained span{display:inline-block;transform:scale(.833);user-select:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__title-container{position:relative;margin-bottom:6px}.plv-product-c-item__title{color:#000c;font-size:14px;font-weight:500;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plv-product-c-item__title--single{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__title-more{position:absolute;top:22px;right:-6px;display:flex;border:none;background:none}.plv-product-c-item__title-more-icon{display:flex;color:#0006;font-size:16px}.plv-product-c-item__title--expanded{-webkit-line-clamp:unset}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__tag-container{box-sizing:border-box;margin-right:4px;padding:0 1px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__tag{display:inline-block;transform:scale(.833);user-select:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__price-area{display:flex;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px}.plv-product-c-item__price-custom{font-size:14px}.plv-product-c-item__price-symbol{color:#ff5252;font-size:12px}.plv-product-c-item__price-placeholder{margin-left:2px;color:#ff5252;font-size:18px}.plv-product-c-item__placeholder-text{margin:6px 2px 0 3px;color:#0006;font-size:12px}.plv-product-c-item__original-price{margin-left:2px;color:#0006;font-size:12px;line-height:14px;text-decoration:line-through}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-button{position:relative}.plv-product-button__render{position:relative;z-index:10}.plv-product-button__inner{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;cursor:pointer}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-item{position:relative;display:flex;box-sizing:border-box;height:124px;margin-bottom:8px;padding:12px;border-radius:8px;background-color:#fff;cursor:pointer}.plv-product-item__ranking{box-sizing:border-box;min-width:19px;height:16px;padding:1px 6px;border-radius:2px;background:#0006;color:#fff;font-size:12px;font-weight:700;line-height:14px}.plv-product-item__ranking--cover{position:absolute;top:2px;left:2px}.plv-product-item__cover-area{position:relative;flex:none;overflow:hidden;margin-right:8px;border-radius:4px}.plv-product-item__cover-stock{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#00000080;color:#fff;font-size:12px}.plv-product-item__cover{width:100px;height:100px;object-fit:cover}.plv-product-item__content{display:flex;flex-grow:1;flex-direction:column;justify-content:space-between;min-width:0}.plv-product-item__content .plv-product-c-item__title-container{min-width:0;margin-bottom:0}.plv-product-item__title-area{display:flex;align-items:center}.plv-product-item__tags{display:flex;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.plv-product-item__description{margin:0;color:#0006;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__buy-button{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:24px;padding:3px 12px;border:none;border-radius:16px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;outline:none}.plv-product-item__buy-button--disabled{background:#ff525299;color:#fff}.plv-product-item-no-cover .plv-product-c-item__title{margin-left:4px}.plv-product-item--topping{background:#f15d5d14}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-list-empty{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;padding:0 10px;font-size:14px;line-height:18px;text-align:center;transform:translate(-50%,-50%)}.plv-product-list-empty__icon{display:flex;opacity:40%;margin-bottom:16px;color:#999;font-size:70px}.plv-product-list-empty__text{color:#999}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-font-din-pro-regular{font-family:D-DIN-PRO-Regular,sans-serif}.plv-font-din-pro-medium{font-family:D-DIN-PRO-Medium,sans-serif}.plv-font-din-pro-bold{font-family:D-DIN-PRO-Bold,sans-serif}.plv-product-list{height:100%;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__main{height:32px;border-radius:8px;background:#0000000a}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__input-inner{padding-left:4px}.plv-product-list__header-search-icon{display:flex;margin-left:11px;color:#0006}.plv-product-list__header{position:sticky;top:0;left:0;z-index:30;padding-bottom:12px;background-color:#f7f8fa}.plv-product-list__header-search-wrapper{display:flex;align-items:center;margin:0 0 12px;padding:7px 12px 0}.plv-product-list__search-input{flex:1;margin-right:8px}.plv-product-list__header-right{display:flex;flex-direction:column;margin-left:auto;padding:6px 10px 3px}.plv-product-list__header-right-icon{display:flex;margin:0 auto 2px}.plv-product-list__header-right-text{color:#333a47;font-size:12px}.plv-product-list__wrapper{padding:0 8px}.plv-product-list__product-total{display:flex;align-items:center;margin-top:12px;padding:0 12px}.plv-product-list__product-total-icon{display:flex;margin-right:4px;color:#000c;font-size:12px}.plv-product-list__product-total-text,.plv-product-list__product-total-num{color:#0009;font-size:12px}.plv-product-list__product-total-num{margin-left:8px;font-weight:500}.plv-product-list__loading{position:absolute;top:0;left:0;z-index:999;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:#fff9}.plv-product-list-popup__icon-close{display:flex;margin:0 4px 0 8px;color:#0009;font-size:24px;cursor:pointer}')),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";.plv-radio{cursor:pointer;line-height:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.plv-radio:last-of-type{margin-right:0}.plv-radio .plv-radio__inner{-ms-flex-negative:0;flex-shrink:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:16px;height:16px;border-radius:8px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;vertical-align:middle}.plv-radio .plv-radio__label{color:#1d2129;font-size:14px;padding-left:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;line-height:16px;word-break:break-word}.plv-radio:hover .plv-radio__inner{border-color:#3f76fc}.plv-radio.plv-radio--checked .plv-radio__inner{border-width:4px;border-color:#3f76fc}.plv-radio.plv-radio--disabled{cursor:not-allowed}.plv-radio.plv-radio--disabled .plv-radio__inner{border-color:#e5e5e5;background:#f9fafd}.plv-radio.plv-radio--disabled .plv-radio__label{color:#969ba5}.plv-radio.plv-radio--disabled.plv-radio--checked .plv-radio__inner{background:#f9fafd}.plv-radio.plv-radio--readonly{cursor:default}.plv-radio.plv-radio--readonly:hover .plv-radio__inner{border-color:#e5e5e5}.plv-radio.plv-radio--readonly:hover .plv-radio__inner.plv-radio__inner--checked{border-color:#3f76fc}.plv-radio--border{min-width:80px;height:36px!important;padding:0 16px;border-radius:2px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;position:relative;margin-right:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.plv-radio--border:hover{border-color:#3f76fc}.plv-radio--border .plv-radio__label{padding-left:0;font-size:12px;float:none}.plv-radio--border.plv-radio--checked{border-width:2px;border-color:#3f76fc}.plv-radio--border .plv-radio__corner{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;background-image:url(data:image/png;base64,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);background-size:100% 100%}.plv-radio--border.plv-radio--disabled{background:#f9fafd;border-color:#e5e5e5!important}.plv-radio--border.plv-radio--disabled:hover,.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5}.plv-radio--border.plv-radio--readonly.plv-radio--checked{border-color:#3f76fc}.plv-product-common-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006}.plv-product-common-popup__body{position:absolute;display:flex;flex-direction:column;width:100%;max-height:90%;overflow:hidden;border-radius:16px 16px 0 0;background:#fff}.plv-product-common-popup__header{position:relative;z-index:2;display:flex;flex-shrink:0;justify-content:center;align-items:center;padding:0 54px}.plv-product-common-popup__back{position:absolute;top:50%;left:18px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:20px;transform:translateY(-50%);cursor:pointer}.plv-product-common-popup__title{color:#000c;font-size:16px;font-weight:500;text-align:center}.plv-product-common-popup__header-right{position:absolute;top:50%;right:12px;display:flex;align-items:center;transform:translateY(-50%)}.plv-product-common-popup__close{display:flex;color:#0009;font-size:24px;cursor:pointer}.plv-product-common-popup__content{position:relative;z-index:2;display:flex;flex:1;overflow:hidden}.plv-product-common-popup__inner{flex:1;overflow-y:auto}.plv-product-common-popup__body--bg1{background:linear-gradient(180deg,#fee5e1,#fef9f4)}.plv-product-common-popup__body--bg1:before{position:absolute;top:-26px;right:-87px;z-index:1;width:176px;height:168px;background:#fdf0d5;pointer-events:none;content:"";filter:blur(80px)}.plv-product-common-popup__body--bg1 .plv-product-common-popup__content{padding:0 12px 30px}.plv-product-common-popup__body--bg1 .plv-product-common-popup__inner{border-radius:12px;background:#fff}.plv-product-common-popup--hide-modal{background:none;pointer-events:none}.plv-product-common-popup--hide-modal .plv-product-common-popup__body{pointer-events:initial}.plv-product-common-popup--fill-body .plv-product-common-popup__content{height:90%}.plv-product-common-popup--mobile .plv-product-common-popup__body{border-radius:16px 16px 0 0}.plv-product-common-popup--position-bottom .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(0, 100%);--plv-product-popup-animation-end: translate(0, 0);bottom:0;left:0}.plv-product-common-popup--position-left .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(-100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;left:0;height:100%;max-height:100%}.plv-product-common-popup--position-right .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;right:0;height:100%;max-height:100%}.plv-product-common-popup--position-center .plv-product-common-popup__body{top:50%;left:50%;max-height:90%;animation:none!important;transform:translate(-50%,-50%)}.plv-product-common-popup--horizontal-screen .plv-product-common-popup__body{border-radius:0}.plv-product-common-popup--page-fullscreen{top:50%;left:50%;width:100vh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__body,.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__content{overflow:initial}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__inner{overflow-y:initial}.plv-product-common-popup-slide-enter-active{animation:plv-product-common-popup-slide-in .2s ease-in-out}.plv-product-common-popup-slide-leave-active{animation:plv-product-common-popup-slide-in .15s reverse ease-in-out}@keyframes plv-product-common-popup-slide-in{0%{transform:var(--plv-product-popup-animation-start)}to{transform:var(--plv-product-popup-animation-end)}}.plv-product-form-input{display:flex}.plv-product-form-input__main{position:relative;display:flex;flex:1;align-items:center;box-sizing:border-box;height:50px;overflow:hidden;border-radius:8px;background:#f7f8fa}.plv-product-form-input__input{display:block;flex:1;box-sizing:border-box;height:100%;color:inherit}.plv-product-form-input__input-inner{border:none;border-radius:0;outline:none;display:block;box-sizing:border-box;width:100%;height:100%;padding:0 12px;background:none;font-size:14px}.plv-product-form-input__input-inner::placeholder{color:#9e9e9e}.plv-product-form-input__input-inner::-webkit-outer-spin-button,.plv-product-form-input__input-inner::-webkit-inner-spin-button{margin:0;appearance:none!important}.plv-product-form-input__input-inner[type=number]{appearance:textfield}.plv-product-form-input__input-inner[disabled]{opacity:100%}.plv-product-form-input__input-inner[type=button],.plv-product-form-input__input-inner[type=submit],.plv-product-form-input__input-inner[type=reset]{appearance:none;background:#fff}.plv-product-form-input__clearable{display:flex;margin-right:16px;color:#999;font-size:20px}.plv-product-form-input__suffix-text{color:#aaa;font-size:16px}.plv-product-form-input--textarea .plv-product-form-input__main{height:initial}.plv-product-form-input--textarea .plv-product-form-input__input-inner{padding-top:8px}.plv-product-form-input__suffix{display:flex;align-items:center;padding-right:12px}.plv-product-form-input__suffix .polyv-icon{display:flex;color:#0006;font-size:18px}.plv-product-form-input__suffix:empty{display:none}.plv-product-c-loading{display:inline-block;width:32px;height:32px;background-image:url(data:image/png;base64,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);background-position:center;background-size:cover;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.plv-product-c-label-panel{position:relative;background-color:#f7f8fa}.plv-product-c-label-list__wrapper{position:relative;z-index:1060;display:flex;box-sizing:border-box;margin-bottom:4px;padding:0 12px;background-color:#f7f8fa}.plv-product-c-label-list__inner{display:flex}.plv-product-c-label-list__item{display:flex;flex:none;flex-direction:column;align-items:center;box-sizing:border-box;height:26px;margin-right:8px;margin-bottom:8px;padding:4px 12px;border:1px solid rgba(0,0,0,.06);border-radius:20px;color:#0009;font-size:12px;line-height:18px}.plv-product-c-label-list__item.plv-product-c-label-list__item--active{border-color:#ff62644d;color:#ff6264;font-weight:500}.plv-product-c-label-list__arrow{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:26px;height:26px;margin-left:auto;border:1px solid rgba(0,0,0,.1);border-radius:20px}.plv-product-c-label-list__arrow-icon{display:flex;color:#0006;font-size:16px;transition:.3s}.plv-product-c-label-list__arrow--active .plv-product-c-label-list__arrow-icon{transform:rotate(180deg)}.plv-product-c-label-list__shadow{position:absolute;top:0;right:0;z-index:0;width:80px;height:42px;background:linear-gradient(90deg,#f7f8fa00,#f7f8fa 39%)}.plv-product-c-label-list-panel{position:absolute;top:100%;right:0;left:0;z-index:1050;box-sizing:border-box;padding:0 12px;border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:#f7f8fa}.plv-product-c-label-list-panel__content{flex-wrap:wrap;box-sizing:border-box;max-height:216px;overflow-y:auto;transform:translateZ(0)}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:transform .3s ease,opacity .3s ease}.slide-fade-enter,.slide-fade-leave-to{opacity:0%;transform:translateY(-10px)}.fade-overlay-enter-active,.fade-overlay-leave-active{transition:opacity .3s ease}.fade-overlay-enter,.fade-overlay-leave-to{opacity:0%}.plv-product-c-label-overlay{position:fixed;inset:45% 0 0;z-index:1040;background-color:#0006}.plv-product-c-label-overlay-pc{position:absolute;inset:45% 0 0;z-index:1040;height:600px;background-color:#0006}.plv-product-c-explain--explaining{display:flex;justify-content:center;align-items:center;width:100%;height:20px;border-radius:0 0 4px 4px;background:#ff6264cc;color:#fff;font-size:12px;font-weight:500;backdrop-filter:blur(3px)}.plv-product-c-explain--explaining .plv-product-c-explain--explaining-icon{width:14px;height:14px;margin-right:2px;vertical-align:top}.plv-product-c-explain--explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(255,98,100,.3);border-radius:20px;background:#fff;color:#ff6264;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.plv-product-c-explain--not-explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(0,0,0,.1);border-radius:20px;background:#fff;color:#666;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--explaining-cover{position:absolute;bottom:0;left:0}.plv-product-c-explain--not-explained-cover,.plv-product-c-explain--explained-cover{position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining{width:52px;height:16px;padding:1px 2px;border:1px solid rgba(255,82,82,.6);border-radius:2px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;transform:scale(.8333)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining span{margin-top:2px}.plv-product-c-explain--no-cover .plv-product-c-explain--explained{width:60px;height:24px;padding:3px 12px;background:transparent;color:#ff5252;font-size:12px}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained{display:flex;box-sizing:border-box;height:16px;margin-left:4px;padding:1px 4px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained span{display:inline-block;transform:scale(.833);user-select:none}.plv-product-c-item__title-container{position:relative;margin-bottom:6px}.plv-product-c-item__title{color:#000c;font-size:14px;font-weight:500;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plv-product-c-item__title--single{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__title-more{position:absolute;top:22px;right:-6px;display:flex;border:none;background:none}.plv-product-c-item__title-more-icon{display:flex;color:#0006;font-size:16px}.plv-product-c-item__title--expanded{-webkit-line-clamp:unset}.plv-product-c-item__tag-container{box-sizing:border-box;margin-right:4px;padding:0 1px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__tag-container:last-child{margin-right:0}.plv-product-c-item__tag{display:inline-block;transform:scale(.833);user-select:none}.plv-product-c-item__price-area{display:flex;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px}.plv-product-c-item__price-custom{font-size:14px}.plv-product-c-item__price-symbol{color:#ff5252;font-size:12px}.plv-product-c-item__price-placeholder{margin-left:2px;color:#ff5252;font-size:18px}.plv-product-c-item__placeholder-text{margin:6px 2px 0 3px;color:#0006;font-size:12px}.plv-product-c-item__original-price{margin-left:2px;color:#0006;font-size:12px;line-height:14px;text-decoration:line-through}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}.plv-product-button{position:relative}.plv-product-button__render{position:relative;z-index:10}.plv-product-button__inner{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;cursor:pointer}.plv-product-item{position:relative;display:flex;box-sizing:border-box;height:124px;margin-bottom:8px;padding:12px;border-radius:8px;background-color:#fff;cursor:pointer}.plv-product-item__ranking{box-sizing:border-box;min-width:19px;height:16px;padding:1px 6px;border-radius:2px;background:#0006;color:#fff;font-size:12px;font-weight:700;line-height:14px}.plv-product-item__ranking--cover{position:absolute;top:2px;left:2px}.plv-product-item__cover-area{position:relative;flex:none;overflow:hidden;margin-right:8px;border-radius:4px}.plv-product-item__cover-stock{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#00000080;color:#fff;font-size:12px}.plv-product-item__cover{width:100px;height:100px;object-fit:cover}.plv-product-item__content{display:flex;flex-grow:1;flex-direction:column;justify-content:space-between;min-width:0}.plv-product-item__content .plv-product-c-item__title-container{min-width:0;margin-bottom:0}.plv-product-item__title-area{display:flex;align-items:center}.plv-product-item__tags{display:flex;margin-top:6px;margin-bottom:6px}.plv-product-item__description{margin:0;color:#0006;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__buy-button{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:24px;padding:3px 12px;border:none;border-radius:16px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;outline:none}.plv-product-item__buy-button--disabled{background:#ff525299;color:#fff}.plv-product-item-no-cover .plv-product-c-item__title{margin-left:4px}.plv-product-item--topping{background:#f15d5d14}.plv-product-list-empty{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;padding:0 10px;font-size:14px;line-height:18px;text-align:center;transform:translate(-50%,-50%)}.plv-product-list-empty__icon{display:flex;opacity:40%;margin-bottom:16px;color:#999;font-size:70px}.plv-product-list-empty__text{color:#999}.plv-product-list{height:100%;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__main{height:32px;border-radius:8px;background:#0000000a}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__input-inner{padding-left:4px}.plv-product-list__header-search-icon{display:flex;margin-left:11px;color:#0006}.plv-product-list__header{position:sticky;top:0;left:0;z-index:30;padding-bottom:12px;background-color:#f7f8fa}.plv-product-list__header-search-wrapper{display:flex;align-items:center;margin:0 0 12px;padding:7px 12px 0}.plv-product-list__search-input{flex:1;margin-right:8px}.plv-product-list__header-right{display:flex;flex-direction:column;margin-left:auto;padding:6px 10px 3px}.plv-product-list__header-right-icon{display:flex;margin:0 auto 2px}.plv-product-list__header-right-text{color:#333a47;font-size:12px}.plv-product-list__wrapper{padding:0 8px}.plv-product-list__product-total{display:flex;align-items:center;margin-top:12px;padding:0 12px}.plv-product-list__product-total-icon{display:flex;margin-right:4px;color:#000c;font-size:12px}.plv-product-list__product-total-text,.plv-product-list__product-total-num{color:#0009;font-size:12px}.plv-product-list__product-total-num{margin-left:8px;font-weight:500}.plv-product-list__loading{position:absolute;top:0;left:0;z-index:999;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:#fff9}.plv-product-list-popup__icon-close{display:flex;margin:0 4px 0 8px;color:#0009;font-size:24px;cursor:pointer}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defProps = Object.defineProperties;
|
|
4
4
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
@@ -39,7 +39,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
39
39
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
|
-
import { computed, unref, watch, onBeforeUnmount, inject, onMounted, ref, defineComponent, nextTick, getCurrentInstance, onUnmounted, provide,
|
|
42
|
+
import { computed, unref, watch, onBeforeUnmount, inject, onMounted, ref, defineComponent, nextTick, getCurrentInstance, onUnmounted, provide, shallowRef, watchEffect } from "vue";
|
|
43
43
|
function getDefaultExportFromCjs(x2) {
|
|
44
44
|
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
45
45
|
}
|
|
@@ -1463,12 +1463,12 @@ function getCurrentUAInfo() {
|
|
|
1463
1463
|
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
1464
1464
|
}
|
|
1465
1465
|
const ua = navigator.userAgent.toLowerCase();
|
|
1466
|
-
const uaInfo = getCurrentUAInfo();
|
|
1467
|
-
const isAndroid = uaInfo.os.isAndroid;
|
|
1468
|
-
const isIOS = uaInfo.os.isIOS;
|
|
1469
|
-
const weixinVersion = uaInfo.client.version;
|
|
1470
|
-
const isWeixin = uaInfo.client.isWx;
|
|
1471
|
-
const isWorkWeixin = uaInfo.client.isWxWork;
|
|
1466
|
+
const uaInfo$1 = getCurrentUAInfo();
|
|
1467
|
+
const isAndroid$1 = uaInfo$1.os.isAndroid;
|
|
1468
|
+
const isIOS$1 = uaInfo$1.os.isIOS;
|
|
1469
|
+
const weixinVersion = uaInfo$1.client.version;
|
|
1470
|
+
const isWeixin = uaInfo$1.client.isWx;
|
|
1471
|
+
const isWorkWeixin = uaInfo$1.client.isWxWork;
|
|
1472
1472
|
const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
|
|
1473
1473
|
function __isMobile() {
|
|
1474
1474
|
const ua2 = navigator.userAgent;
|
|
@@ -1485,7 +1485,7 @@ function __isMobile() {
|
|
|
1485
1485
|
function __isTablet() {
|
|
1486
1486
|
const ua2 = navigator.userAgent;
|
|
1487
1487
|
if (/(?:iPad|PlayBook)/.test(ua2)) return true;
|
|
1488
|
-
if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1488
|
+
if (uaInfo$1.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1489
1489
|
return false;
|
|
1490
1490
|
}
|
|
1491
1491
|
const isMob = __isMobile();
|
|
@@ -1992,6 +1992,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
1992
1992
|
if (props.fillBody) {
|
|
1993
1993
|
return "90%";
|
|
1994
1994
|
}
|
|
1995
|
+
if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
|
|
1995
1996
|
if (props.enableDynamicHeight) {
|
|
1996
1997
|
return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
|
|
1997
1998
|
}
|
|
@@ -2188,7 +2189,15 @@ const productEvents = {
|
|
|
2188
2189
|
/**
|
|
2189
2190
|
* 打开 iframe 链接弹层
|
|
2190
2191
|
*/
|
|
2191
|
-
OpenProductIframeLinkPopup: "openProductIframeLinkPopup"
|
|
2192
|
+
OpenProductIframeLinkPopup: "openProductIframeLinkPopup",
|
|
2193
|
+
/**
|
|
2194
|
+
* 打开大卡片弹层
|
|
2195
|
+
*/
|
|
2196
|
+
OpenProductBigCardPopup: "openProductBigCardPopup",
|
|
2197
|
+
/**
|
|
2198
|
+
* 打开小卡片弹层
|
|
2199
|
+
*/
|
|
2200
|
+
OpenProductSmallCardPopup: "openProductSmallCardPopup"
|
|
2192
2201
|
};
|
|
2193
2202
|
const useVue = () => {
|
|
2194
2203
|
const instanceVm = getCurrentInstance();
|
|
@@ -3263,6 +3272,7 @@ function useScrollPagination(request, options = {}) {
|
|
|
3263
3272
|
}
|
|
3264
3273
|
const order$5 = { "title": "订单中心", "chooseAddress": "请添加收货地址", "add": "去添加", "phone": "手机号码:", "phonePlaceholder": "请输入手机号码", "submitOrder": "提交订单", "addAddress": "添加地址", "applyRefund": "申请退款", "refundTips": "退款金额 ", "confirmRefund": "退款", "refundFailed": "退款失败", "failed": "发起失败", "list": { "all": "全部", "waitPay": "待支付", "waitDelivery": "待发货", "delivering": "待收货", "finish": "已完成", "close": "已取消", "refunding": "退款中", "refunded": "已退款", "total": "合计", "waitPayBtnText": "立即支付", "waitDeliveryBtnText": "查看详情", "deliveringBtnText": "确认收货", "finishBtnText": "查看详情", "closeBtnText": "查看详情", "emptyText": "暂无订单" }, "detail": { "orderNo": "订单号", "createTime": "下单时间", "payTime": "支付时间", "deliveryTime": "发货时间", "finishTime": "完成时间", "actualPay": "实付", "payNow": "立即支付", "confirmReceipt": "确认收货", "expired": "已失效", "payAutoCancel": " 后自动取消", "cancelReason": "取消原因", "payTimeOut": "超时未支付", "refundTips": "退款金额原路返回", "qrCodeTips": "长按识别或截图保存,联系客服", "qrCodeExpiredTips": "二维码已失效,暂时无法联系客服", "paymentMethod": "支付方式", "wechat": "微信", "alipay": "支付宝" }, "confirmOrder": "确认订单", "shippingAddress": "收货地址", "noAddressTips": "请填写收货地址", "paySuccess": "支付成功", "cancelPay": "取消支付", "payFailed": "支付失败", "createOrderFailed": "无法创建订单,请稍后重试", "wechatPayTips": "请在微信中打开本页进行支付", "confirmReceiptTips": "请确认已经收到包裹", "confirmedReceipt": "已确认收货" };
|
|
3265
3274
|
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
3275
|
+
const bigCard$5 = { "title": "商品推荐" };
|
|
3266
3276
|
const zhCNLang = {
|
|
3267
3277
|
"common.confirm": "确认",
|
|
3268
3278
|
"common.cancel": "取消",
|
|
@@ -3290,10 +3300,12 @@ const zhCNLang = {
|
|
|
3290
3300
|
"product.allProduct": "全部商品",
|
|
3291
3301
|
"product.stock.soldOut": "已抢光",
|
|
3292
3302
|
order: order$5,
|
|
3293
|
-
addressEdit: addressEdit$5
|
|
3303
|
+
addressEdit: addressEdit$5,
|
|
3304
|
+
bigCard: bigCard$5
|
|
3294
3305
|
};
|
|
3295
3306
|
const order$4 = { "title": "訂單中心", "chooseAddress": "請添加收貨地址", "add": "去添加", "phone": "手機號碼:", "phonePlaceholder": "請輸入手機號碼", "submitOrder": "提交訂單", "addAddress": "添加地址", "applyRefund": "申請退款", "refundTips": "退款金額 ", "confirmRefund": "退款", "refundFailed": "退款失敗", "failed": "发起失敗", "list": { "all": "全部", "waitPay": "待支付", "waitDelivery": "待發貨", "delivering": "待收貨", "finish": "已完成", "close": "已取消", "refunding": "退款中", "refunded": "已退款", "total": "合計", "waitPayBtnText": "立即支付", "waitDeliveryBtnText": "查看詳情", "deliveringBtnText": "確認收貨", "finishBtnText": "查看詳情", "closeBtnText": "查看詳情", "emptyText": "暫無訂單" }, "detail": { "orderNo": "訂單號", "createTime": "下單時間", "payTime": "支付時間", "deliveryTime": "發貨時間", "finishTime": "完成時間", "actualPay": "實付", "payNow": "立即支付", "confirmReceipt": "確認收貨", "expired": "已失效", "payAutoCancel": " 後自動取消", "cancelReason": "取消原因", "payTimeOut": "超時未支付", "refundTips": "退款金額原路返回", "qrCodeTips": "長按識別或截圖保存,聯繫客服", "qrCodeExpiredTips": "二維碼已失效,暫時無法聯繫客服", "paymentMethod": "支付方式", "wechat": "微信", "alipay": "支付寶" }, "confirmOrder": "確認訂單", "shippingAddress": "收貨地址", "noAddressTips": "請填寫收貨地址", "paySuccess": "支付成功", "payFailed": "支付失敗", "cancelPay": "取消支付", "createOrderFailed": "無法創建訂單,請稍後重試", "wechatPayTips": "請在微信中打開本頁進行支付", "confirmReceiptTips": "請確認已經收到包裹", "confirmedReceipt": "已確認收貨" };
|
|
3296
3307
|
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
3308
|
+
const bigCard$4 = { "title": "商品推薦" };
|
|
3297
3309
|
const zhTWLang = {
|
|
3298
3310
|
"common.confirm": "確認",
|
|
3299
3311
|
"common.cancel": "取消",
|
|
@@ -3321,10 +3333,12 @@ const zhTWLang = {
|
|
|
3321
3333
|
"product.allProduct": "全部商品",
|
|
3322
3334
|
"product.stock.soldOut": "已搶光",
|
|
3323
3335
|
order: order$4,
|
|
3324
|
-
addressEdit: addressEdit$4
|
|
3336
|
+
addressEdit: addressEdit$4,
|
|
3337
|
+
bigCard: bigCard$4
|
|
3325
3338
|
};
|
|
3326
3339
|
const order$3 = { "title": "Order Center", "chooseAddress": "Add Shipping Address", "add": "Add Shipping Address", "phone": "Phone:", "phonePlaceholder": "Enter Phone", "submitOrder": "Submit", "addAddress": "Add Address", "applyRefund": "Apply Refund", "refundTips": "Refund Amount ", "confirmRefund": "Refund", "refundFailed": "Refund Failed", "failed": "Failed", "list": { "all": "All", "waitPay": "Wait Payment", "waitDelivery": "Wait Delivery", "delivering": "Delivering", "finish": "Finished", "close": "Closed", "refunding": "Refunding", "refunded": "Refunded", "total": "Total", "waitPayBtnText": "Pay Now", "waitDeliveryBtnText": "View Details", "deliveringBtnText": "Confirm Receipt", "finishBtnText": "View Details", "closeBtnText": "View Details", "emptyText": "No Order History" }, "detail": { "orderNo": "Order Number", "createTime": "Order Time", "payTime": "Payment Time", "deliveryTime": "Delivery Time", "finishTime": "Completion Time", "actualPay": "Total Amount", "payNow": "Pay Now", "confirmReceipt": "Confirm Receipt", "expired": "Expired", "payAutoCancel": "Cancel", "cancelReason": "Cancel Reason", "payTimeOut": "Pay Time Out", "refundTips": "Refund amount returned to the original path", "qrCodeTips": "Long press to scan or save screenshot for support", "qrCodeExpiredTips": "QR code expired, support unavailable", "paymentMethod": "Payment Method", "wechat": "Wechat", "alipay": "Alipay" }, "confirmOrder": "Confirm Order", "shippingAddress": "Shipping Address", "noAddressTips": "Please fill in the shipping address", "paySuccess": "Payment Success", "cancelPay": "Cancel Payment", "payFailed": "Payment Failed", "createOrderFailed": "Failed to create order, please try again later", "wechatPayTips": "Please open this page in WeChat to pay", "confirmReceiptTips": "Have you received the package?", "confirmedReceipt": "Confirmed Receipt" };
|
|
3327
3340
|
const addressEdit$3 = { "name": "Name", "namePlaceholder": "Enter Name", "choiceAddress": "Select Area", "addressPlaceholder": "Select Area", "phone": "Phone", "phonePlaceholder": "Enter Phone", "phoneError": "Please enter a valid phone number", "addressDetail": "Address Detail", "addressDetailPlaceholder": "Enter Address Detail", "error": "Please fill in all required fields", "submit": "Save", "deleteConfirm": "Delete this address?", "deleteAddress": "Yes", "addAddress": "Add Address", "editAddress": "Edit Address", "addSuccess": "Save Success", "addError": "Save Failed", "editSuccess": "Edit Success", "editError": "Edit Failed" };
|
|
3341
|
+
const bigCard$3 = { "title": "Top Picks" };
|
|
3328
3342
|
const enLang = {
|
|
3329
3343
|
"common.confirm": "Confirm",
|
|
3330
3344
|
"common.cancel": "Cancel",
|
|
@@ -3352,10 +3366,12 @@ const enLang = {
|
|
|
3352
3366
|
"product.allProduct": "Products",
|
|
3353
3367
|
"product.stock.soldOut": "Sold Out",
|
|
3354
3368
|
order: order$3,
|
|
3355
|
-
addressEdit: addressEdit$3
|
|
3369
|
+
addressEdit: addressEdit$3,
|
|
3370
|
+
bigCard: bigCard$3
|
|
3356
3371
|
};
|
|
3357
3372
|
const order$2 = { "title": "注文中心", "chooseAddress": "配送先を追加", "add": "配送先を追加", "phone": "電話番号:", "phonePlaceholder": "電話番号を入力", "submitOrder": "注文を提出", "addAddress": "配送先を追加", "applyRefund": "退款申請", "refundTips": "退款金額 ", "confirmRefund": "退款", "refundFailed": "退款失敗", "failed": "失敗", "list": { "all": "全て", "waitPay": "支払い待ち", "waitDelivery": "発送待ち", "delivering": "配送中", "finish": "完了", "close": "キャンセル", "refunding": "退款中", "refunded": "退款完了", "total": "合計", "waitPayBtnText": "支払い", "waitDeliveryBtnText": "詳細を見る", "deliveringBtnText": "確認受け取り", "finishBtnText": "詳細を見る", "closeBtnText": "詳細を見る", "emptyText": "注文履歴がありません" }, "detail": { "orderNo": "注文番号", "createTime": "注文日時", "payTime": "支払い日時", "deliveryTime": "発送日時", "finishTime": "完了日時", "actualPay": "実払い", "payNow": "支払い", "confirmReceipt": "確認受け取り", "expired": "失効", "payAutoCancel": " 後自動キャンセル", "cancelReason": "キャンセル理由", "payTimeOut": "超時未支払い", "refundTips": "退款金額原路返回", "qrCodeTips": "長押し識別またはスクリーンショット保存、サポートにお問い合わせください", "qrCodeExpiredTips": "QRコードは失効しました。暫時的にサポートに連絡できません", "paymentMethod": "支払い方法", "wechat": "ウェブアプリ", "alipay": "アリペイ" }, "confirmOrder": "注文を確認", "shippingAddress": "配送先", "noAddressTips": "配送先を入力してください", "paySuccess": "支払い成功", "cancelPay": "支払いをキャンセル", "payFailed": "支払い失敗", "createOrderFailed": "注文の作成に失敗しました。後で再試行してください。", "wechatPayTips": "WeChatでこのページを開いて支払いしてください", "confirmReceiptTips": "パッケージを確認しましたか?", "confirmedReceipt": "確認受け取り完了" };
|
|
3358
3373
|
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
3374
|
+
const bigCard$2 = { "title": "商品推薦" };
|
|
3359
3375
|
const jaLang = {
|
|
3360
3376
|
"common.confirm": "確認",
|
|
3361
3377
|
"common.cancel": "キャンセル",
|
|
@@ -3383,10 +3399,12 @@ const jaLang = {
|
|
|
3383
3399
|
"product.allProduct": "すべての商品",
|
|
3384
3400
|
"product.stock.soldOut": "売り切れ",
|
|
3385
3401
|
order: order$2,
|
|
3386
|
-
addressEdit: addressEdit$2
|
|
3402
|
+
addressEdit: addressEdit$2,
|
|
3403
|
+
bigCard: bigCard$2
|
|
3387
3404
|
};
|
|
3388
3405
|
const order$1 = { "title": "주문 센터", "chooseAddress": "주문 주소 추가", "add": "주문 주소 추가", "phone": "전화번호:", "phonePlaceholder": "전화번호 입력", "submitOrder": "주문 제출", "addAddress": "주문 주소 추가", "applyRefund": "환불 신청", "refundTips": "환불 금액 ", "confirmRefund": "환불", "refundFailed": "환불 실패", "failed": "실패", "list": { "all": "전체", "waitPay": "결제 대기", "waitDelivery": "배송 대기", "delivering": "배송 중", "finish": "완료", "close": "취소", "refunding": "환불 중", "refunded": "환불 완료", "total": "총 금액", "waitPayBtnText": "결제하기", "waitDeliveryBtnText": "상세 보기", "deliveringBtnText": "확인 받기", "finishBtnText": "상세 보기", "closeBtnText": "상세 보기", "emptyText": "주문 내역이 없습니다." }, "detail": { "orderNo": "주문번호", "createTime": "주문일시", "payTime": "결제일시", "deliveryTime": "배송일시", "finishTime": "완료일시", "actualPay": "총 금액", "payNow": "결제하기", "confirmReceipt": "확인 받기", "expired": "만료", "payAutoCancel": " 후 자동 취소", "cancelReason": "취소 사유", "payTimeOut": "결제 시간 초과", "refundTips": "환불 금액 원래 경로로 반환", "qrCodeTips": "장치 인식 또는 스크린샷 저장 후 문의", "qrCodeExpiredTips": "이미 만료되었습니다. 잠시 후 다시 시도해주세요.", "paymentMethod": "결제 방법", "wechat": "웹앱", "alipay": "알리페이" }, "confirmOrder": "주문 확인", "shippingAddress": "배송 주소", "noAddressTips": "배송 주소를 입력해주세요", "paySuccess": "결제 성공", "cancelPay": "결제 취소", "payFailed": "결제 실패", "createOrderFailed": "주문 생성에 실패했습니다. 나중에 다시 시도해주세요.", "wechatPayTips": "카카오톡에서 이 페이지를 열어 결제해주세요", "confirmReceiptTips": "패키지를 확인하셨습니까?", "confirmedReceipt": "확인 받기 완료" };
|
|
3389
3406
|
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
3407
|
+
const bigCard$1 = { "title": "상품 추천" };
|
|
3390
3408
|
const koLang = {
|
|
3391
3409
|
"common.confirm": "확인",
|
|
3392
3410
|
"common.cancel": "취소",
|
|
@@ -3414,10 +3432,12 @@ const koLang = {
|
|
|
3414
3432
|
"product.allProduct": "모든 상품",
|
|
3415
3433
|
"product.stock.soldOut": "품절",
|
|
3416
3434
|
order: order$1,
|
|
3417
|
-
addressEdit: addressEdit$1
|
|
3435
|
+
addressEdit: addressEdit$1,
|
|
3436
|
+
bigCard: bigCard$1
|
|
3418
3437
|
};
|
|
3419
3438
|
const order = { "title": "Центр заказов", "chooseAddress": "Пожалуйста, добавьте адрес доставки", "add": "Добавить", "phone": "Номер телефона:", "phonePlaceholder": "Пожалуйста, введите номер телефона", "submitOrder": "Отправить заказ", "addAddress": "Добавить адрес", "applyRefund": "Заявить о возврате", "refundTips": "Сумма возврата ", "confirmRefund": "Возврат", "refundFailed": "Возврат не удался", "failed": "Не удалось инициировать", "list": { "all": "Все", "waitPay": "Ожидает оплаты", "waitDelivery": "Ожидает отправки", "delivering": "Ожидает получения", "finish": "Завершено", "close": "Отменено", "refunding": "В процессе возврата", "refunded": "Возвращено", "total": "Итого", "waitPayBtnText": "Оплатить сейчас", "waitDeliveryBtnText": "Посмотреть детали", "deliveringBtnText": "Подтвердить получение", "finishBtnText": "Посмотреть детали", "closeBtnText": "Посмотреть детали", "emptyText": "Пока нет заказов" }, "detail": { "orderNo": "Номер заказа", "createTime": "Время создания заказа", "payTime": "Время оплаты", "deliveryTime": "Время отправки", "finishTime": "Время завершения", "actualPay": "Фактически оплачено", "payNow": "Оплатить сейчас", "confirmReceipt": "Подтвердить получение", "expired": "Истек срок действия", "payAutoCancel": " автоматическая отмена", "cancelReason": "Причина отмены", "payTimeOut": "Время оплаты истекло", "refundTips": "Сумма возврата вернется тем же способом", "qrCodeTips": "Долго нажмите для распознавания или сохраните скриншот, свяжитесь с сервисом", "qrCodeExpiredTips": "QR-код истек, временно невозможно связаться с сервисом", "paymentMethod": "Способ оплаты", "wechat": "Веб-приложение", "alipay": "АлиПай" }, "confirmOrder": "Подтвердить заказ", "shippingAddress": "Адрес доставки", "noAddressTips": "Пожалуйста, заполните адрес доставки", "paySuccess": "Оплата успешна", "cancelPay": "Отменить оплату", "payFailed": "Оплата не удалась", "createOrderFailed": "Не удается создать заказ, попробуйте позже", "wechatPayTips": "Пожалуйста, откройте эту страницу в WeChat для оплаты", "confirmReceiptTips": "Пожалуйста, подтвердите, что посылка получена", "confirmedReceipt": "Получение подтверждено" };
|
|
3420
3439
|
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
3440
|
+
const bigCard = { "title": "Товары" };
|
|
3421
3441
|
const ruLang = {
|
|
3422
3442
|
"common.confirm": "Подтвердить",
|
|
3423
3443
|
"common.cancel": "Отмена",
|
|
@@ -3445,7 +3465,8 @@ const ruLang = {
|
|
|
3445
3465
|
"product.allProduct": "Все товары",
|
|
3446
3466
|
"product.stock.soldOut": "Распродано",
|
|
3447
3467
|
order,
|
|
3448
|
-
addressEdit
|
|
3468
|
+
addressEdit,
|
|
3469
|
+
bigCard
|
|
3449
3470
|
};
|
|
3450
3471
|
const fullI18nData = {
|
|
3451
3472
|
[LangType.ZH_CN]: zhCNLang,
|
|
@@ -3829,7 +3850,8 @@ function getProductTargetExport(productTarget) {
|
|
|
3829
3850
|
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
3830
3851
|
ProductMediaType: productTarget.ProductMediaType,
|
|
3831
3852
|
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
3832
|
-
ProductEvents: productTarget.ProductEvents
|
|
3853
|
+
ProductEvents: productTarget.ProductEvents,
|
|
3854
|
+
ProductPushRule: productTarget.ProductPushRule
|
|
3833
3855
|
};
|
|
3834
3856
|
}
|
|
3835
3857
|
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
@@ -3928,6 +3950,37 @@ const useProductStock = (options) => {
|
|
|
3928
3950
|
isSoldOut
|
|
3929
3951
|
};
|
|
3930
3952
|
};
|
|
3953
|
+
const useProductExplain = (options) => {
|
|
3954
|
+
const { props } = options;
|
|
3955
|
+
const productExplainEnabled = ref(false);
|
|
3956
|
+
function getProductExplainEnabled() {
|
|
3957
|
+
return __async(this, null, function* () {
|
|
3958
|
+
if (!props.productTarget) return;
|
|
3959
|
+
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
3960
|
+
productExplainEnabled.value = enabled;
|
|
3961
|
+
});
|
|
3962
|
+
}
|
|
3963
|
+
function handleClickExplain(product) {
|
|
3964
|
+
return __async(this, null, function* () {
|
|
3965
|
+
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
3966
|
+
props.productConfig.customClickExplainHandler(product);
|
|
3967
|
+
return;
|
|
3968
|
+
}
|
|
3969
|
+
if (!props.productTarget) return;
|
|
3970
|
+
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
3971
|
+
if (url) {
|
|
3972
|
+
window.open(url, "_blank");
|
|
3973
|
+
}
|
|
3974
|
+
});
|
|
3975
|
+
}
|
|
3976
|
+
onMounted(() => {
|
|
3977
|
+
getProductExplainEnabled();
|
|
3978
|
+
});
|
|
3979
|
+
return {
|
|
3980
|
+
productExplainEnabled,
|
|
3981
|
+
handleClickExplain
|
|
3982
|
+
};
|
|
3983
|
+
};
|
|
3931
3984
|
const liveGif = "data:image/gif;base64,R0lGODlhKgAqAKIEAP7//////v3//////////wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzFEQjYxNzBBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzFEQjYxNzFBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzE0QTU2QkE2NkUxMUVCOEE3REQyMzhDOThENEUzNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzE0QTU2Q0E2NkUxMUVCOEE3REQyMzhDOThENEUzNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS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";
|
|
3932
3985
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
3933
3986
|
__name: "product-explain",
|
|
@@ -3986,24 +4039,31 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
3986
4039
|
}
|
|
3987
4040
|
function isTitleOverflowing() {
|
|
3988
4041
|
const titleEl = titleRef.value;
|
|
3989
|
-
if (!titleEl)
|
|
4042
|
+
if (!titleEl || !titleEl.parentElement) {
|
|
4043
|
+
return false;
|
|
4044
|
+
}
|
|
4045
|
+
const originalRect = titleEl.getBoundingClientRect();
|
|
3990
4046
|
const clone = titleEl.cloneNode(true);
|
|
3991
|
-
const computedStyle = window.getComputedStyle(titleEl);
|
|
3992
|
-
clone.style.font = computedStyle.font;
|
|
3993
|
-
clone.style.lineHeight = computedStyle.lineHeight;
|
|
3994
|
-
clone.style.display = "block";
|
|
3995
|
-
clone.style.width = titleEl.clientWidth + "px";
|
|
3996
|
-
clone.style.visibility = "hidden";
|
|
3997
4047
|
clone.style.position = "absolute";
|
|
4048
|
+
clone.style.top = "-9999px";
|
|
4049
|
+
clone.style.left = "-9999px";
|
|
4050
|
+
clone.style.visibility = "hidden";
|
|
4051
|
+
clone.style.width = `${originalRect.width}px`;
|
|
4052
|
+
clone.style.boxSizing = "border-box";
|
|
3998
4053
|
clone.style.whiteSpace = "normal";
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4054
|
+
clone.style.webkitLineClamp = "unset";
|
|
4055
|
+
clone.style.display = "block";
|
|
4056
|
+
titleEl.parentElement.appendChild(clone);
|
|
4057
|
+
const cloneHeight = clone.getBoundingClientRect().height;
|
|
4058
|
+
titleEl.parentElement.removeChild(clone);
|
|
4059
|
+
return cloneHeight > originalRect.height + 1;
|
|
4003
4060
|
}
|
|
4004
|
-
|
|
4061
|
+
const checkOverflow = () => {
|
|
4005
4062
|
moreArrowVisible.value = isTitleOverflowing();
|
|
4006
|
-
}
|
|
4063
|
+
};
|
|
4064
|
+
onMounted(() => {
|
|
4065
|
+
checkOverflow();
|
|
4066
|
+
});
|
|
4007
4067
|
watch(
|
|
4008
4068
|
() => props.title,
|
|
4009
4069
|
() => {
|
|
@@ -4011,14 +4071,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
4011
4071
|
titleRef.value.classList.remove("plv-product-c-item__title--expanded");
|
|
4012
4072
|
}
|
|
4013
4073
|
nextTick(() => {
|
|
4014
|
-
|
|
4074
|
+
checkOverflow();
|
|
4015
4075
|
});
|
|
4016
4076
|
}
|
|
4017
4077
|
);
|
|
4018
|
-
|
|
4019
|
-
checkTitleOverflow();
|
|
4020
|
-
});
|
|
4021
|
-
return { __sfc: true, props, titleRef, moreArrowVisible, handleExpand, isTitleOverflowing, checkTitleOverflow, ProductIconArrowDown };
|
|
4078
|
+
return { __sfc: true, props, titleRef, moreArrowVisible, handleExpand, isTitleOverflowing, checkOverflow, ProductIconArrowDown };
|
|
4022
4079
|
}
|
|
4023
4080
|
});
|
|
4024
4081
|
var _sfc_render$7 = function render6() {
|
|
@@ -4152,6 +4209,104 @@ function concat(i2, r2, t2) {
|
|
|
4152
4209
|
let e = n2.search || "";
|
|
4153
4210
|
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
4154
4211
|
}
|
|
4212
|
+
var __awaiter = function(i2, n2, o2, t2) {
|
|
4213
|
+
return new (o2 || (o2 = Promise))(function(e, a2) {
|
|
4214
|
+
function r2(i3) {
|
|
4215
|
+
try {
|
|
4216
|
+
k2(t2.next(i3));
|
|
4217
|
+
} catch (i4) {
|
|
4218
|
+
a2(i4);
|
|
4219
|
+
}
|
|
4220
|
+
}
|
|
4221
|
+
function l2(i3) {
|
|
4222
|
+
try {
|
|
4223
|
+
k2(t2.throw(i3));
|
|
4224
|
+
} catch (i4) {
|
|
4225
|
+
a2(i4);
|
|
4226
|
+
}
|
|
4227
|
+
}
|
|
4228
|
+
function k2(i3) {
|
|
4229
|
+
var n3;
|
|
4230
|
+
i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
|
|
4231
|
+
i4(n3);
|
|
4232
|
+
})).then(r2, l2);
|
|
4233
|
+
}
|
|
4234
|
+
k2((t2 = t2.apply(i2, n2 || [])).next());
|
|
4235
|
+
});
|
|
4236
|
+
};
|
|
4237
|
+
const uaInfo = getCurrentUAInfo();
|
|
4238
|
+
const isAndroid = uaInfo.os.isAndroid;
|
|
4239
|
+
const isIOS = uaInfo.os.isIOS;
|
|
4240
|
+
var LinkType;
|
|
4241
|
+
!function(i2) {
|
|
4242
|
+
i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
|
|
4243
|
+
}(LinkType || (LinkType = {}));
|
|
4244
|
+
var LinkJumpWay;
|
|
4245
|
+
function getNativeToPointMallFn() {
|
|
4246
|
+
var i2, n2, o2, t2;
|
|
4247
|
+
return isAndroid ? null === (i2 = window.AndroidNative) || void 0 === i2 ? void 0 : i2.toPointMall : isIOS ? null === (t2 = null === (o2 = null === (n2 = window.webkit) || void 0 === n2 ? void 0 : n2.messageHandlers) || void 0 === o2 ? void 0 : o2.gotoPointsMall) || void 0 === t2 ? void 0 : t2.postMessage : void 0;
|
|
4248
|
+
}
|
|
4249
|
+
function toNativeLink(i2) {
|
|
4250
|
+
const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
|
|
4251
|
+
if (e) {
|
|
4252
|
+
let i3 = isAndroid ? n2 : o2;
|
|
4253
|
+
const t3 = encodeURIComponent(location.href);
|
|
4254
|
+
i3 = concat(i3, { plt_back_uri: t3 });
|
|
4255
|
+
e(JSON.stringify({ url: i3 }));
|
|
4256
|
+
} else window.open(t2, "_blank", "noopener=yes");
|
|
4257
|
+
}
|
|
4258
|
+
function toPlvWebviewBridge(i2) {
|
|
4259
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4260
|
+
const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
|
|
4261
|
+
e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
|
|
4262
|
+
});
|
|
4263
|
+
}
|
|
4264
|
+
function toMultiPlatformLink(i2) {
|
|
4265
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4266
|
+
const { linkData: n2, isWxMiniProgramEnv: o2, toWxMiniProgram: t2, openLink: e, getLinkParams: a2, isMobile: r2 } = i2, { wxMiniprogramLink: l2, mobileLink: k2, pcLink: d2 } = n2, s2 = (null == r2 ? void 0 : r2()) || false;
|
|
4267
|
+
let u2 = false;
|
|
4268
|
+
try {
|
|
4269
|
+
u2 = (yield null == o2 ? void 0 : o2()) || false;
|
|
4270
|
+
} catch (i3) {
|
|
4271
|
+
u2 = false;
|
|
4272
|
+
}
|
|
4273
|
+
u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
|
|
4274
|
+
});
|
|
4275
|
+
}
|
|
4276
|
+
!function(i2) {
|
|
4277
|
+
i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
|
|
4278
|
+
}(LinkJumpWay || (LinkJumpWay = {}));
|
|
4279
|
+
function formatLink(i2, n2) {
|
|
4280
|
+
let o2 = {};
|
|
4281
|
+
if (n2) {
|
|
4282
|
+
const t2 = n2(i2);
|
|
4283
|
+
o2 = Object.assign({}, o2, t2);
|
|
4284
|
+
}
|
|
4285
|
+
return concat(i2, o2);
|
|
4286
|
+
}
|
|
4287
|
+
function navigateToLink(i2) {
|
|
4288
|
+
const { linkData: n2, openLink: o2, isPlvWebview: t2, getPlvWebviewSmallWindowSize: e, getPlvWebviewBridge: a2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, getLinkParams: k2, isMobile: d2 } = i2, { linkType: s2 } = n2, u2 = (null == t2 ? void 0 : t2()) || false;
|
|
4289
|
+
if (s2 !== LinkType.Native) {
|
|
4290
|
+
if (u2) {
|
|
4291
|
+
let i3 = "";
|
|
4292
|
+
const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
|
|
4293
|
+
switch (s2) {
|
|
4294
|
+
case LinkType.Normal:
|
|
4295
|
+
i3 = o3;
|
|
4296
|
+
break;
|
|
4297
|
+
case LinkType.MultiPlatform:
|
|
4298
|
+
i3 = r3 || t3;
|
|
4299
|
+
}
|
|
4300
|
+
let u3 = null;
|
|
4301
|
+
return s2 !== LinkType.Normal && (u3 = { mobileLink: formatLink(t3, k2), wxMiniprogramOriginalId: l3, wxMiniprogramLink: formatLink(d3, k2), mobileAppLink: formatLink(r3, k2) }), void toPlvWebviewBridge({ link: formatLink(i3, k2), data: u3, getPlvWebviewSmallWindowSize: e, getPlvWebviewBridge: a2 });
|
|
4302
|
+
}
|
|
4303
|
+
if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
|
|
4304
|
+
else {
|
|
4305
|
+
const { link: i3, jumpWay: t3 } = n2;
|
|
4306
|
+
o2(formatLink(i3, k2), t3);
|
|
4307
|
+
}
|
|
4308
|
+
} else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
|
|
4309
|
+
}
|
|
4155
4310
|
const useTrackEvent = (iarCore) => {
|
|
4156
4311
|
const { injectData } = useGlobalInject();
|
|
4157
4312
|
function trackEvent(data) {
|
|
@@ -4165,7 +4320,7 @@ const useTrackEvent = (iarCore) => {
|
|
|
4165
4320
|
trackEvent
|
|
4166
4321
|
};
|
|
4167
4322
|
};
|
|
4168
|
-
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
4323
|
+
const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = [""", "'", "&", "<", ">", " "], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
4169
4324
|
htmlChars.forEach((n2, e) => {
|
|
4170
4325
|
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
4171
4326
|
});
|
|
@@ -4220,7 +4375,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
4220
4375
|
}
|
|
4221
4376
|
const wx = yield injectData.getWeixinSdk();
|
|
4222
4377
|
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
4223
|
-
url
|
|
4378
|
+
url: url.startsWith("/") ? url : `/${url}`
|
|
4224
4379
|
});
|
|
4225
4380
|
return;
|
|
4226
4381
|
});
|
|
@@ -4275,7 +4430,9 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
4275
4430
|
watch(
|
|
4276
4431
|
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
4277
4432
|
() => {
|
|
4278
|
-
|
|
4433
|
+
setTimeout(() => {
|
|
4434
|
+
createWxMiniProgramButton();
|
|
4435
|
+
}, 500);
|
|
4279
4436
|
},
|
|
4280
4437
|
{
|
|
4281
4438
|
immediate: true
|
|
@@ -4292,25 +4449,25 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
4292
4449
|
};
|
|
4293
4450
|
};
|
|
4294
4451
|
const useAppNative = () => {
|
|
4295
|
-
function
|
|
4452
|
+
function getNativeToPointMallFn2() {
|
|
4296
4453
|
var _a, _b, _c, _d;
|
|
4297
|
-
if (isAndroid) {
|
|
4454
|
+
if (isAndroid$1) {
|
|
4298
4455
|
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
4299
|
-
} else if (isIOS) {
|
|
4456
|
+
} else if (isIOS$1) {
|
|
4300
4457
|
return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
|
|
4301
4458
|
}
|
|
4302
4459
|
}
|
|
4303
4460
|
function supportNativeToPointMall() {
|
|
4304
|
-
return !!
|
|
4461
|
+
return !!getNativeToPointMallFn2();
|
|
4305
4462
|
}
|
|
4306
4463
|
const supportAppNative = computed(() => {
|
|
4307
4464
|
return supportNativeToPointMall();
|
|
4308
4465
|
});
|
|
4309
|
-
function
|
|
4466
|
+
function toNativeLink2(options) {
|
|
4310
4467
|
const { androidLink, iosLink, otherLink } = options;
|
|
4311
|
-
const nativePointMallFn =
|
|
4468
|
+
const nativePointMallFn = getNativeToPointMallFn2();
|
|
4312
4469
|
if (nativePointMallFn) {
|
|
4313
|
-
let url = isAndroid ? androidLink : iosLink;
|
|
4470
|
+
let url = isAndroid$1 ? androidLink : iosLink;
|
|
4314
4471
|
const pltBackUri = encodeURIComponent(location.href);
|
|
4315
4472
|
url = concat(url, {
|
|
4316
4473
|
plt_back_uri: pltBackUri
|
|
@@ -4324,60 +4481,10 @@ const useAppNative = () => {
|
|
|
4324
4481
|
window.open(otherLink, "_blank", "noopener=yes");
|
|
4325
4482
|
}
|
|
4326
4483
|
return {
|
|
4327
|
-
getNativeToPointMallFn,
|
|
4484
|
+
getNativeToPointMallFn: getNativeToPointMallFn2,
|
|
4328
4485
|
supportNativeToPointMall,
|
|
4329
4486
|
supportAppNative,
|
|
4330
|
-
toNativeLink
|
|
4331
|
-
};
|
|
4332
|
-
};
|
|
4333
|
-
const usePolyvWebview = () => {
|
|
4334
|
-
const { injectData } = useGlobalInject();
|
|
4335
|
-
const isPlvWebview = ref(false);
|
|
4336
|
-
const supportPlvWebview = computed(() => {
|
|
4337
|
-
return isPlvWebview.value;
|
|
4338
|
-
});
|
|
4339
|
-
function getPlvWebviewBridge() {
|
|
4340
|
-
return __async(this, null, function* () {
|
|
4341
|
-
if (injectData.getPlvWebviewBridge) {
|
|
4342
|
-
return yield injectData.getPlvWebviewBridge();
|
|
4343
|
-
}
|
|
4344
|
-
});
|
|
4345
|
-
}
|
|
4346
|
-
function toPlvWebviewBridge(options) {
|
|
4347
|
-
return __async(this, null, function* () {
|
|
4348
|
-
if (!supportPlvWebview.value) {
|
|
4349
|
-
return;
|
|
4350
|
-
}
|
|
4351
|
-
let plvWebviewDataSize = {
|
|
4352
|
-
width: 90,
|
|
4353
|
-
height: 160
|
|
4354
|
-
};
|
|
4355
|
-
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
4356
|
-
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
4357
|
-
}
|
|
4358
|
-
const webviewBridge = yield getPlvWebviewBridge();
|
|
4359
|
-
if (!webviewBridge) {
|
|
4360
|
-
return;
|
|
4361
|
-
}
|
|
4362
|
-
webviewBridge.sendData("clickProduct", {
|
|
4363
|
-
width: plvWebviewDataSize.width,
|
|
4364
|
-
height: plvWebviewDataSize.height,
|
|
4365
|
-
newPage: true,
|
|
4366
|
-
link: options.link,
|
|
4367
|
-
data: options.data
|
|
4368
|
-
});
|
|
4369
|
-
});
|
|
4370
|
-
}
|
|
4371
|
-
onMounted(() => {
|
|
4372
|
-
if (injectData.isPlvWebview) {
|
|
4373
|
-
isPlvWebview.value = injectData.isPlvWebview();
|
|
4374
|
-
}
|
|
4375
|
-
});
|
|
4376
|
-
return {
|
|
4377
|
-
isPlvWebview,
|
|
4378
|
-
supportPlvWebview,
|
|
4379
|
-
getPlvWebviewBridge,
|
|
4380
|
-
toPlvWebviewBridge
|
|
4487
|
+
toNativeLink: toNativeLink2
|
|
4381
4488
|
};
|
|
4382
4489
|
};
|
|
4383
4490
|
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
@@ -4396,12 +4503,12 @@ const useProductButton = (options) => {
|
|
|
4396
4503
|
const { isSoldOut } = useProductStock({
|
|
4397
4504
|
product: () => props.productData
|
|
4398
4505
|
});
|
|
4399
|
-
const { getEmitter } = useGlobalInject();
|
|
4506
|
+
const { getEmitter, injectData } = useGlobalInject();
|
|
4400
4507
|
const { $t } = useI18n();
|
|
4401
4508
|
const productConfig = computed(() => {
|
|
4402
4509
|
return props.productConfig;
|
|
4403
4510
|
});
|
|
4404
|
-
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
4511
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
|
|
4405
4512
|
getButtonOptions: () => {
|
|
4406
4513
|
const productData = props.productData;
|
|
4407
4514
|
return {
|
|
@@ -4412,10 +4519,9 @@ const useProductButton = (options) => {
|
|
|
4412
4519
|
},
|
|
4413
4520
|
launchCallback: () => sendClickEvent()
|
|
4414
4521
|
});
|
|
4415
|
-
const { supportAppNative
|
|
4416
|
-
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
4522
|
+
const { supportAppNative } = useAppNative();
|
|
4417
4523
|
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
4418
|
-
const { ProductBuyType, ProductType
|
|
4524
|
+
const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
|
|
4419
4525
|
const isDirectBuy = computed(() => {
|
|
4420
4526
|
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
4421
4527
|
});
|
|
@@ -4442,13 +4548,13 @@ const useProductButton = (options) => {
|
|
|
4442
4548
|
if (isDirectBuy.value) {
|
|
4443
4549
|
return false;
|
|
4444
4550
|
}
|
|
4445
|
-
if (productData.linkType ===
|
|
4551
|
+
if (productData.linkType === LinkType.Normal) {
|
|
4446
4552
|
return !productData.link;
|
|
4447
4553
|
}
|
|
4448
|
-
if (productData.linkType ===
|
|
4554
|
+
if (productData.linkType === LinkType.MultiPlatform) {
|
|
4449
4555
|
return isMultiPlatformDisabled.value;
|
|
4450
4556
|
}
|
|
4451
|
-
if (productData.linkType ===
|
|
4557
|
+
if (productData.linkType === LinkType.Native) {
|
|
4452
4558
|
if (supportAppNative.value) {
|
|
4453
4559
|
return !productData.androidLink && !productData.iosLink;
|
|
4454
4560
|
}
|
|
@@ -4507,9 +4613,26 @@ const useProductButton = (options) => {
|
|
|
4507
4613
|
}
|
|
4508
4614
|
return concat(url, urlParams);
|
|
4509
4615
|
}
|
|
4616
|
+
function getLinkData() {
|
|
4617
|
+
const productData = props.productData;
|
|
4618
|
+
const linkData = {
|
|
4619
|
+
linkType: productData.linkType,
|
|
4620
|
+
jumpWay: productData.jumpWay,
|
|
4621
|
+
link: productData.link,
|
|
4622
|
+
pcLink: productData.pcLink,
|
|
4623
|
+
mobileLink: productData.mobileLink,
|
|
4624
|
+
mobileAppLink: productData.mobileAppLink,
|
|
4625
|
+
androidLink: productData.androidLink,
|
|
4626
|
+
iosLink: productData.iosLink,
|
|
4627
|
+
otherLink: productData.otherLink,
|
|
4628
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
4629
|
+
wxMiniprogramAppId: productData.wxMiniprogramAppId,
|
|
4630
|
+
wxMiniprogramLink: productData.wxMiniprogramLink
|
|
4631
|
+
};
|
|
4632
|
+
return linkData;
|
|
4633
|
+
}
|
|
4510
4634
|
function onClickLinkBtn() {
|
|
4511
4635
|
const productData = props.productData;
|
|
4512
|
-
const { linkType } = productData;
|
|
4513
4636
|
sendClickEvent();
|
|
4514
4637
|
if (productConfig.value.customClickButtonHandler) {
|
|
4515
4638
|
productConfig.value.customClickButtonHandler(productData);
|
|
@@ -4519,70 +4642,28 @@ const useProductButton = (options) => {
|
|
|
4519
4642
|
toDirectBuy();
|
|
4520
4643
|
return;
|
|
4521
4644
|
}
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
case ProductLinkType.Normal:
|
|
4535
|
-
linkTo = link;
|
|
4536
|
-
break;
|
|
4537
|
-
case ProductLinkType.MultiPlatform:
|
|
4538
|
-
linkTo = mobileAppLink || mobileLink;
|
|
4539
|
-
break;
|
|
4540
|
-
}
|
|
4541
|
-
let otherData = null;
|
|
4542
|
-
if (productData.linkType !== ProductLinkType.Normal) {
|
|
4543
|
-
otherData = {
|
|
4544
|
-
mobileLink: formatProductLink(mobileLink),
|
|
4545
|
-
wxMiniprogramOriginalId,
|
|
4546
|
-
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
4547
|
-
mobileAppLink: formatProductLink(mobileAppLink)
|
|
4548
|
-
};
|
|
4549
|
-
}
|
|
4550
|
-
toPlvWebviewBridge({
|
|
4551
|
-
link: formatProductLink(linkTo),
|
|
4552
|
-
data: otherData
|
|
4553
|
-
});
|
|
4554
|
-
return;
|
|
4555
|
-
}
|
|
4556
|
-
if (linkType === ProductLinkType.Normal) {
|
|
4557
|
-
const { link, jumpWay } = productData;
|
|
4558
|
-
openLink(formatProductLink(link), jumpWay);
|
|
4559
|
-
return;
|
|
4560
|
-
}
|
|
4561
|
-
if (linkType === ProductLinkType.MultiPlatform) {
|
|
4562
|
-
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
4563
|
-
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
4564
|
-
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
4565
|
-
return;
|
|
4566
|
-
}
|
|
4567
|
-
if (isMobile) {
|
|
4568
|
-
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
4569
|
-
return;
|
|
4570
|
-
}
|
|
4571
|
-
if (!isMobile) {
|
|
4572
|
-
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
4573
|
-
return;
|
|
4574
|
-
}
|
|
4575
|
-
}
|
|
4645
|
+
const linkData = getLinkData();
|
|
4646
|
+
navigateToLink({
|
|
4647
|
+
linkData,
|
|
4648
|
+
getLinkParams: productConfig.value.getLinkParams,
|
|
4649
|
+
openLink,
|
|
4650
|
+
isPlvWebview: injectData.isPlvWebview,
|
|
4651
|
+
isMobile: injectData.isMobile,
|
|
4652
|
+
getPlvWebviewBridge: injectData.getPlvWebviewBridge,
|
|
4653
|
+
getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
|
|
4654
|
+
isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
|
|
4655
|
+
toWxMiniProgram
|
|
4656
|
+
});
|
|
4576
4657
|
}
|
|
4577
4658
|
function openLink(url, jumpWay) {
|
|
4578
4659
|
switch (jumpWay) {
|
|
4579
|
-
case
|
|
4660
|
+
case LinkJumpWay.NewWindow:
|
|
4580
4661
|
window.open(url, "_blank", "noopener=yes");
|
|
4581
4662
|
break;
|
|
4582
|
-
case
|
|
4663
|
+
case LinkJumpWay.CurrentWindow:
|
|
4583
4664
|
window.location.href = url;
|
|
4584
4665
|
break;
|
|
4585
|
-
case
|
|
4666
|
+
case LinkJumpWay.PopUp:
|
|
4586
4667
|
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
4587
4668
|
break;
|
|
4588
4669
|
default:
|
|
@@ -4605,7 +4686,7 @@ const useProductButton = (options) => {
|
|
|
4605
4686
|
name: productData.name,
|
|
4606
4687
|
productId: productData.productId,
|
|
4607
4688
|
productType: productData.productType,
|
|
4608
|
-
productPushRule: data == null ? void 0 : data.pushRule
|
|
4689
|
+
productPushRule: (data == null ? void 0 : data.pushRule) || ""
|
|
4609
4690
|
}
|
|
4610
4691
|
});
|
|
4611
4692
|
props.productTarget.sendProductClickEvent({
|
|
@@ -4659,63 +4740,194 @@ var __component__$4 = /* @__PURE__ */ normalizeComponent(
|
|
|
4659
4740
|
);
|
|
4660
4741
|
const ProductButton = __component__$4.exports;
|
|
4661
4742
|
const supportWebP = /* @__PURE__ */ (() => {
|
|
4662
|
-
let
|
|
4743
|
+
let e;
|
|
4663
4744
|
return () => {
|
|
4664
|
-
if (null ==
|
|
4665
|
-
|
|
4666
|
-
const
|
|
4667
|
-
if (
|
|
4668
|
-
const
|
|
4669
|
-
return 0 ===
|
|
4745
|
+
if (null == e) try {
|
|
4746
|
+
e = function() {
|
|
4747
|
+
const e2 = document.createElement("canvas");
|
|
4748
|
+
if (e2.getContext && e2.getContext("2d")) {
|
|
4749
|
+
const A2 = "image/webp";
|
|
4750
|
+
return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
|
|
4670
4751
|
}
|
|
4671
4752
|
return false;
|
|
4753
|
+
}() || function() {
|
|
4754
|
+
let e2 = false;
|
|
4755
|
+
const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
|
|
4756
|
+
if (t2) e2 = parseInt(t2[1]) >= 14;
|
|
4757
|
+
else {
|
|
4758
|
+
const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
|
|
4759
|
+
t3 && (e2 = parseInt(t3[1]) >= 16);
|
|
4760
|
+
}
|
|
4761
|
+
return e2;
|
|
4672
4762
|
}();
|
|
4673
|
-
} catch (
|
|
4674
|
-
|
|
4763
|
+
} catch (A2) {
|
|
4764
|
+
e = false;
|
|
4675
4765
|
}
|
|
4676
|
-
return
|
|
4766
|
+
return e;
|
|
4677
4767
|
};
|
|
4678
4768
|
})();
|
|
4679
|
-
function getExtname(
|
|
4680
|
-
const
|
|
4769
|
+
function getExtname(e) {
|
|
4770
|
+
const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
|
|
4681
4771
|
return t2 ? t2.toLowerCase() : "";
|
|
4682
4772
|
}
|
|
4683
|
-
function handleCompressOptions(
|
|
4684
|
-
var
|
|
4685
|
-
const
|
|
4686
|
-
return
|
|
4773
|
+
function handleCompressOptions(e) {
|
|
4774
|
+
var A2, t2;
|
|
4775
|
+
const n2 = "number" == typeof e ? { width: e } : e;
|
|
4776
|
+
return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
|
|
4687
4777
|
}
|
|
4688
|
-
function createURLObject(
|
|
4689
|
-
let
|
|
4778
|
+
function createURLObject(e) {
|
|
4779
|
+
let A2;
|
|
4690
4780
|
if ("undefined" != typeof document) {
|
|
4691
4781
|
const t2 = document.createElement("a");
|
|
4692
|
-
t2.href =
|
|
4782
|
+
t2.href = e, A2 = t2;
|
|
4693
4783
|
} else if ("function" == typeof URL) try {
|
|
4694
|
-
|
|
4695
|
-
} catch (
|
|
4784
|
+
A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
|
|
4785
|
+
} catch (e2) {
|
|
4696
4786
|
}
|
|
4697
|
-
return
|
|
4787
|
+
return A2;
|
|
4698
4788
|
}
|
|
4699
|
-
function genOSSCompressParams(
|
|
4789
|
+
function genOSSCompressParams(e, A2) {
|
|
4700
4790
|
let t2 = "";
|
|
4701
|
-
return null ==
|
|
4791
|
+
return null == A2.width && null == A2.height || (t2 += "/resize", A2.width && (t2 += ",w_" + A2.width), A2.height && (t2 += ",h_" + A2.height), t2 += ",limit_1"), A2.allowAVIF && "gif" !== e ? t2 += "/format,avif" : true === A2.allowWebP || "auto" === A2.allowWebP && supportWebP() ? t2 += "/format,webp/quality,Q_80" : A2.allowJPG && "gif" !== e && (t2 += "/format,jpg/quality,Q_80"), t2;
|
|
4702
4792
|
}
|
|
4703
|
-
function setOSSCompressParams(
|
|
4793
|
+
function setOSSCompressParams(e, A2) {
|
|
4704
4794
|
let t2 = false;
|
|
4705
|
-
return
|
|
4706
|
-
}
|
|
4707
|
-
function ossCompress(
|
|
4708
|
-
const t2 = createURLObject(
|
|
4709
|
-
if (!t2) return
|
|
4710
|
-
|
|
4711
|
-
|
|
4795
|
+
return e = e.replace(/([?&]x-oss-process)(?:=([^&]*))?/, (e2, n2, r2) => (t2 = true, /^image/.test(r2) ? n2 + "=" + r2.replace(/\/(?:resize|format|quality)[^/]*/gi, "") + A2 : e2)), t2 ? e : e + (-1 === e.indexOf("?") ? "?" : "&") + "x-oss-process=image" + A2;
|
|
4796
|
+
}
|
|
4797
|
+
function ossCompress(e, A2) {
|
|
4798
|
+
const t2 = createURLObject(e);
|
|
4799
|
+
if (!t2) return e;
|
|
4800
|
+
const n2 = getExtname(t2.pathname.split("/").pop());
|
|
4801
|
+
if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
|
|
4802
|
+
const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
|
|
4712
4803
|
return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
|
|
4713
4804
|
}
|
|
4805
|
+
var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
|
|
4806
|
+
ProductItemScene2["ProductList"] = "productList";
|
|
4807
|
+
ProductItemScene2["BigCard"] = "bigCard";
|
|
4808
|
+
ProductItemScene2["AggregateStation"] = "aggregateStation";
|
|
4809
|
+
return ProductItemScene2;
|
|
4810
|
+
})(ProductItemScene || {});
|
|
4811
|
+
const useProductTrack = (options) => {
|
|
4812
|
+
const { productTarget } = options;
|
|
4813
|
+
const { ProductType } = getProductTargetExport(productTarget);
|
|
4814
|
+
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4815
|
+
const trackedProductIds = ref({});
|
|
4816
|
+
const productListRef = ref(null);
|
|
4817
|
+
const productItemsRef = shallowRef([]);
|
|
4818
|
+
function setItemRef(el) {
|
|
4819
|
+
if (el) {
|
|
4820
|
+
productItemsRef.value.push(el);
|
|
4821
|
+
}
|
|
4822
|
+
}
|
|
4823
|
+
function trackProductViewEvent(productData) {
|
|
4824
|
+
const specAttrs = {
|
|
4825
|
+
name: productData.name,
|
|
4826
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4827
|
+
productId: productData.productId,
|
|
4828
|
+
productType: productData.productType,
|
|
4829
|
+
productFeature: JSON.stringify(productData.featureTags)
|
|
4830
|
+
};
|
|
4831
|
+
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4832
|
+
specAttrs.price = productData.originPrice;
|
|
4833
|
+
}
|
|
4834
|
+
trackEvent({
|
|
4835
|
+
event_id: "product_list_item_view",
|
|
4836
|
+
event_type: "show",
|
|
4837
|
+
spec_attrs: specAttrs
|
|
4838
|
+
});
|
|
4839
|
+
}
|
|
4840
|
+
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4841
|
+
const offsetTop = element.offsetTop;
|
|
4842
|
+
const offsetHeight = element.offsetHeight;
|
|
4843
|
+
const elementBottom = offsetTop + offsetHeight;
|
|
4844
|
+
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4845
|
+
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4846
|
+
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4847
|
+
}
|
|
4848
|
+
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4849
|
+
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4850
|
+
return;
|
|
4851
|
+
}
|
|
4852
|
+
const element = itemInstance.$el;
|
|
4853
|
+
const productId = itemInstance.product.productId;
|
|
4854
|
+
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4855
|
+
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4856
|
+
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4857
|
+
trackProductViewEvent(itemInstance.product);
|
|
4858
|
+
}
|
|
4859
|
+
}
|
|
4860
|
+
function trackProduct() {
|
|
4861
|
+
return __async(this, null, function* () {
|
|
4862
|
+
yield nextTick();
|
|
4863
|
+
const container = productListRef.value;
|
|
4864
|
+
if (!container || !productItemsRef.value.length) return;
|
|
4865
|
+
const scrollTop = container.scrollTop;
|
|
4866
|
+
const scrollClientHeight = container.clientHeight;
|
|
4867
|
+
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4868
|
+
productItemsRef.value.forEach((itemInstance) => {
|
|
4869
|
+
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4870
|
+
});
|
|
4871
|
+
});
|
|
4872
|
+
}
|
|
4873
|
+
function clearTrackedProducts() {
|
|
4874
|
+
trackedProductIds.value = {};
|
|
4875
|
+
productItemsRef.value = [];
|
|
4876
|
+
}
|
|
4877
|
+
function getCommonSpecAttrs(productData) {
|
|
4878
|
+
return {
|
|
4879
|
+
clickTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4880
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4881
|
+
productName: productData.name,
|
|
4882
|
+
productId: productData.productId,
|
|
4883
|
+
productType: productData.productType,
|
|
4884
|
+
feature: JSON.stringify(productData.featureTags),
|
|
4885
|
+
price: productData.productType === ProductType.Normal ? productData.originPrice : "",
|
|
4886
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
|
|
4887
|
+
};
|
|
4888
|
+
}
|
|
4889
|
+
function trackProductItemClick(productData) {
|
|
4890
|
+
trackEvent({
|
|
4891
|
+
event_id: "product_list_item_click",
|
|
4892
|
+
event_type: "click",
|
|
4893
|
+
spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
|
|
4894
|
+
});
|
|
4895
|
+
}
|
|
4896
|
+
function trackProductPushItemClick(productData) {
|
|
4897
|
+
trackEvent({
|
|
4898
|
+
event_id: "product_push_item_click",
|
|
4899
|
+
event_type: "click",
|
|
4900
|
+
spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
|
|
4901
|
+
pushId: productData.pushLogId || ""
|
|
4902
|
+
})
|
|
4903
|
+
});
|
|
4904
|
+
}
|
|
4905
|
+
function trackProductPushItemView(productData) {
|
|
4906
|
+
trackEvent({
|
|
4907
|
+
event_id: "product_push_item_view",
|
|
4908
|
+
event_type: "show",
|
|
4909
|
+
spec_attrs: {
|
|
4910
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4911
|
+
productId: productData.productId,
|
|
4912
|
+
pushId: productData.pushLogId || ""
|
|
4913
|
+
}
|
|
4914
|
+
});
|
|
4915
|
+
}
|
|
4916
|
+
return {
|
|
4917
|
+
productListRef,
|
|
4918
|
+
setItemRef,
|
|
4919
|
+
trackProduct,
|
|
4920
|
+
clearTrackedProducts,
|
|
4921
|
+
trackProductItemClick,
|
|
4922
|
+
trackProductPushItemClick,
|
|
4923
|
+
trackProductPushItemView
|
|
4924
|
+
};
|
|
4925
|
+
};
|
|
4714
4926
|
const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
4715
|
-
product: PropUtils.object().isRequired
|
|
4927
|
+
product: PropUtils.object().isRequired,
|
|
4928
|
+
scene: PropUtils.enum()
|
|
4716
4929
|
});
|
|
4717
4930
|
const productItemEmits = () => ({
|
|
4718
|
-
"click-explain": emitFunc(),
|
|
4719
4931
|
"click-product-item": emitFunc(),
|
|
4720
4932
|
"direct-buy": emitFunc()
|
|
4721
4933
|
});
|
|
@@ -4723,20 +4935,14 @@ const useProductItem = (options) => {
|
|
|
4723
4935
|
const { props, emit } = options;
|
|
4724
4936
|
const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
|
|
4725
4937
|
const { getEmitter } = useGlobalInject();
|
|
4726
|
-
const productExplainEnabled =
|
|
4938
|
+
const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
|
|
4939
|
+
const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
|
|
4727
4940
|
const isProductRedirectLinkDirectly = ref(false);
|
|
4728
4941
|
const shouldEllipsisTitle = computed(() => {
|
|
4729
4942
|
const { product } = props;
|
|
4730
4943
|
return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
|
|
4731
4944
|
});
|
|
4732
|
-
function
|
|
4733
|
-
return __async(this, null, function* () {
|
|
4734
|
-
if (!props.productTarget) return;
|
|
4735
|
-
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
4736
|
-
productExplainEnabled.value = enabled;
|
|
4737
|
-
});
|
|
4738
|
-
}
|
|
4739
|
-
function setIsProductRedirectLinkDirectly() {
|
|
4945
|
+
function getIsProductRedirectLinkDirectly() {
|
|
4740
4946
|
return __async(this, null, function* () {
|
|
4741
4947
|
const { product, productTarget } = props;
|
|
4742
4948
|
if (!product || !productTarget) return false;
|
|
@@ -4744,11 +4950,13 @@ const useProductItem = (options) => {
|
|
|
4744
4950
|
isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
|
|
4745
4951
|
});
|
|
4746
4952
|
}
|
|
4747
|
-
function onClickExplain(product) {
|
|
4748
|
-
emit("click-explain", product);
|
|
4749
|
-
}
|
|
4750
4953
|
function onClickProductItem() {
|
|
4751
4954
|
emit("click-product-item", props.product);
|
|
4955
|
+
if (props.scene === ProductItemScene.BigCard) {
|
|
4956
|
+
trackProductPushItemClick(props.product);
|
|
4957
|
+
} else {
|
|
4958
|
+
trackProductItemClick(props.product);
|
|
4959
|
+
}
|
|
4752
4960
|
if (props.product.productType !== ProductType.Finance) {
|
|
4753
4961
|
getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
|
|
4754
4962
|
}
|
|
@@ -4756,18 +4964,15 @@ const useProductItem = (options) => {
|
|
|
4756
4964
|
function onDirectBuy(product) {
|
|
4757
4965
|
emit("direct-buy", product);
|
|
4758
4966
|
}
|
|
4759
|
-
onMounted(() => {
|
|
4760
|
-
setProductExplainEnabled();
|
|
4761
|
-
});
|
|
4762
4967
|
watchEffect(() => {
|
|
4763
|
-
|
|
4968
|
+
getIsProductRedirectLinkDirectly();
|
|
4764
4969
|
});
|
|
4765
4970
|
return {
|
|
4766
4971
|
productExplainEnabled,
|
|
4767
4972
|
isProductRedirectLinkDirectly,
|
|
4768
4973
|
shouldEllipsisTitle,
|
|
4769
4974
|
onDirectBuy,
|
|
4770
|
-
|
|
4975
|
+
handleClickExplain,
|
|
4771
4976
|
onClickProductItem
|
|
4772
4977
|
};
|
|
4773
4978
|
};
|
|
@@ -4787,22 +4992,22 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
4787
4992
|
isProductRedirectLinkDirectly,
|
|
4788
4993
|
shouldEllipsisTitle,
|
|
4789
4994
|
onDirectBuy,
|
|
4790
|
-
|
|
4791
|
-
|
|
4995
|
+
onClickProductItem,
|
|
4996
|
+
handleClickExplain
|
|
4792
4997
|
} = useProductItem({
|
|
4793
4998
|
props,
|
|
4794
4999
|
emit
|
|
4795
5000
|
});
|
|
4796
|
-
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy,
|
|
5001
|
+
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
|
|
4797
5002
|
}
|
|
4798
5003
|
});
|
|
4799
5004
|
var _sfc_render$3 = function render10() {
|
|
4800
5005
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
4801
|
-
return _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig, "disabled": !_setup.isProductRedirectLinkDirectly } }, [_c("div", { class: ["plv-product-item", { "plv-product-item-no-cover": !_vm.product.cover, "plv-product-item--topping": _vm.product.isTopping }], on: { "click": _setup.onClickProductItem } }, [_vm.product.cover ? _c("div", { staticClass: "plv-product-item__cover-area" }, [_c("img", { staticClass: "plv-product-item__cover", attrs: { "src": _setup.ossCompress(_vm.product.cover, { width: 300 }), "alt": _vm.product.name } }), _setup.isSoldOut ? _c("div", { staticClass: "plv-product-item__cover-stock" }, [_vm._v(" - " + _vm._s(_setup.$t("product.stock.soldOut")) + " - ")]) : _vm._e(), _vm.product.displayNumber ? _c("div", { staticClass: "plv-product-item__ranking plv-product-item__ranking--cover plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.
|
|
5006
|
+
return _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig, "disabled": !_setup.isProductRedirectLinkDirectly } }, [_c("div", { class: ["plv-product-item", { "plv-product-item-no-cover": !_vm.product.cover, "plv-product-item--topping": _vm.product.isTopping }], on: { "click": _setup.onClickProductItem } }, [_vm.product.cover ? _c("div", { staticClass: "plv-product-item__cover-area" }, [_c("img", { staticClass: "plv-product-item__cover", attrs: { "src": _setup.ossCompress(_vm.product.cover, { width: 300 }), "alt": _vm.product.name } }), _setup.isSoldOut ? _c("div", { staticClass: "plv-product-item__cover-stock" }, [_vm._v(" - " + _vm._s(_setup.$t("product.stock.soldOut")) + " - ")]) : _vm._e(), _vm.product.displayNumber ? _c("div", { staticClass: "plv-product-item__ranking plv-product-item__ranking--cover plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e()], 1) : _vm._e(), _c("div", { staticClass: "plv-product-item__content" }, [_c("div", { staticClass: "plv-product-item__title-area" }, [_vm.product.displayNumber && !_vm.product.cover ? _c("div", { staticClass: "plv-product-item__ranking plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled && !_vm.product.cover && _vm.product.explainStatus !== _setup.ProductExplainStatus.Explained ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e(), _c(_setup.ProductTitle, { attrs: { "title": _vm.product.name, "use-ellipsis": _setup.shouldEllipsisTitle } })], 1), _c("div", { staticClass: "plv-product-item__tags" }, _vm._l(_vm.product.featureTags, function(tag, index) {
|
|
4802
5007
|
return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
|
|
4803
|
-
}), 1), _vm.product.description ? _c("p", { staticClass: "plv-product-item__description" }, [_vm._v(" " + _vm._s(_vm.product.description) + " ")]) : _vm._e(), _c("div", { staticClass: "plv-product-item__footer" }, [_c(_setup.ProductPrice, { attrs: { "product": _vm.product } }), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.
|
|
5008
|
+
}), 1), _vm.product.description ? _c("p", { staticClass: "plv-product-item__description" }, [_vm._v(" " + _vm._s(_vm.product.description) + " ")]) : _vm._e(), _c("div", { staticClass: "plv-product-item__footer" }, [_c(_setup.ProductPrice, { attrs: { "product": _vm.product } }), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e(), _vm.scene !== _setup.ProductItemScene.BigCard ? _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "direct-buy": _setup.onDirectBuy }, scopedSlots: _vm._u([{ key: "default", fn: function({ buttonText, disabled }) {
|
|
4804
5009
|
return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
|
|
4805
|
-
} }]) })], 1)])])]);
|
|
5010
|
+
} }], null, false, 477326030) }) : _vm._e()], 1)])])]);
|
|
4806
5011
|
};
|
|
4807
5012
|
var _sfc_staticRenderFns$3 = [];
|
|
4808
5013
|
var __component__$3 = /* @__PURE__ */ normalizeComponent(
|
|
@@ -4829,79 +5034,6 @@ var __component__$2 = /* @__PURE__ */ normalizeComponent(
|
|
|
4829
5034
|
_sfc_staticRenderFns$2
|
|
4830
5035
|
);
|
|
4831
5036
|
const ProductEmpty = __component__$2.exports;
|
|
4832
|
-
const useProductTrack = (options) => {
|
|
4833
|
-
const { productTarget, ProductType } = options;
|
|
4834
|
-
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4835
|
-
const trackedProductIds = ref({});
|
|
4836
|
-
const productListRef = ref(null);
|
|
4837
|
-
const productItemsRef = shallowRef([]);
|
|
4838
|
-
function setItemRef(el) {
|
|
4839
|
-
if (el) {
|
|
4840
|
-
productItemsRef.value.push(el);
|
|
4841
|
-
}
|
|
4842
|
-
}
|
|
4843
|
-
function trackProductViewEvent(productData) {
|
|
4844
|
-
const specAttrs = {
|
|
4845
|
-
exposureTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4846
|
-
name: productData.name,
|
|
4847
|
-
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4848
|
-
productId: productData.productId,
|
|
4849
|
-
productType: productData.productType,
|
|
4850
|
-
productFeature: JSON.stringify(productData.featureTags)
|
|
4851
|
-
};
|
|
4852
|
-
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4853
|
-
specAttrs.price = productData.originPrice;
|
|
4854
|
-
}
|
|
4855
|
-
trackEvent({
|
|
4856
|
-
event_id: "product_list_item_view",
|
|
4857
|
-
event_type: "show",
|
|
4858
|
-
spec_attrs: specAttrs
|
|
4859
|
-
});
|
|
4860
|
-
}
|
|
4861
|
-
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4862
|
-
const offsetTop = element.offsetTop;
|
|
4863
|
-
const offsetHeight = element.offsetHeight;
|
|
4864
|
-
const elementBottom = offsetTop + offsetHeight;
|
|
4865
|
-
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4866
|
-
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4867
|
-
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4868
|
-
}
|
|
4869
|
-
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4870
|
-
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4871
|
-
return;
|
|
4872
|
-
}
|
|
4873
|
-
const element = itemInstance.$el;
|
|
4874
|
-
const productId = itemInstance.product.productId;
|
|
4875
|
-
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4876
|
-
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4877
|
-
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4878
|
-
trackProductViewEvent(itemInstance.product);
|
|
4879
|
-
}
|
|
4880
|
-
}
|
|
4881
|
-
function trackProduct() {
|
|
4882
|
-
return __async(this, null, function* () {
|
|
4883
|
-
yield nextTick();
|
|
4884
|
-
const container = productListRef.value;
|
|
4885
|
-
if (!container || !productItemsRef.value.length) return;
|
|
4886
|
-
const scrollTop = container.scrollTop;
|
|
4887
|
-
const scrollClientHeight = container.clientHeight;
|
|
4888
|
-
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4889
|
-
productItemsRef.value.forEach((itemInstance) => {
|
|
4890
|
-
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4891
|
-
});
|
|
4892
|
-
});
|
|
4893
|
-
}
|
|
4894
|
-
function clearTrackedProducts() {
|
|
4895
|
-
trackedProductIds.value = {};
|
|
4896
|
-
productItemsRef.value = [];
|
|
4897
|
-
}
|
|
4898
|
-
return {
|
|
4899
|
-
productListRef,
|
|
4900
|
-
setItemRef,
|
|
4901
|
-
trackProduct,
|
|
4902
|
-
clearTrackedProducts
|
|
4903
|
-
};
|
|
4904
|
-
};
|
|
4905
5037
|
const useTargetEventEmitter = (eventEmitter, listeners) => {
|
|
4906
5038
|
onMounted(() => {
|
|
4907
5039
|
if (!eventEmitter) return;
|
|
@@ -4924,7 +5056,7 @@ const useProductList = (options) => {
|
|
|
4924
5056
|
const { props } = options;
|
|
4925
5057
|
const { getEmitter } = useGlobalInject();
|
|
4926
5058
|
const { ProductStatus, ProductType, ProductEvents } = getProductTargetExport(props.productTarget);
|
|
4927
|
-
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget
|
|
5059
|
+
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget });
|
|
4928
5060
|
const { isSupportPay, getPayProviders } = usePayment({ props });
|
|
4929
5061
|
const pageNumber = ref(1);
|
|
4930
5062
|
const pageSize = ref(10);
|
|
@@ -5035,18 +5167,6 @@ const useProductList = (options) => {
|
|
|
5035
5167
|
}
|
|
5036
5168
|
});
|
|
5037
5169
|
}
|
|
5038
|
-
function handleClickExplain(product) {
|
|
5039
|
-
return __async(this, null, function* () {
|
|
5040
|
-
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
5041
|
-
props.productConfig.customClickExplainHandler(product);
|
|
5042
|
-
return;
|
|
5043
|
-
}
|
|
5044
|
-
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
5045
|
-
if (url) {
|
|
5046
|
-
window.open(url, "_blank");
|
|
5047
|
-
}
|
|
5048
|
-
});
|
|
5049
|
-
}
|
|
5050
5170
|
function getProductOrderEnabled() {
|
|
5051
5171
|
return __async(this, null, function* () {
|
|
5052
5172
|
if (!props.productTarget) return;
|
|
@@ -5092,10 +5212,24 @@ const useProductList = (options) => {
|
|
|
5092
5212
|
const productTarget = props.productTarget;
|
|
5093
5213
|
if (!productTarget) return;
|
|
5094
5214
|
const ProductEvents2 = productTarget.ProductEvents;
|
|
5215
|
+
productTarget.eventEmitter.on(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5216
|
+
productTarget.eventEmitter.on(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5217
|
+
productTarget.eventEmitter.on(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5218
|
+
productTarget.eventEmitter.on(ProductEvents2.AddProduct, refreshProductList);
|
|
5219
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5220
|
+
productTarget.eventEmitter.on(ProductEvents2.MoveProduct, refreshProductList);
|
|
5221
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5095
5222
|
productTarget.eventEmitter.on(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5096
5223
|
}
|
|
5097
5224
|
function unbindProductEvent() {
|
|
5098
5225
|
const ProductEvents2 = props.productTarget.ProductEvents;
|
|
5226
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5227
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5228
|
+
props.productTarget.eventEmitter.off(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5229
|
+
props.productTarget.eventEmitter.off(ProductEvents2.AddProduct, refreshProductList);
|
|
5230
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5231
|
+
props.productTarget.eventEmitter.off(ProductEvents2.MoveProduct, refreshProductList);
|
|
5232
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5099
5233
|
props.productTarget.eventEmitter.off(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5100
5234
|
}
|
|
5101
5235
|
function init() {
|
|
@@ -5170,7 +5304,6 @@ const useProductList = (options) => {
|
|
|
5170
5304
|
productList,
|
|
5171
5305
|
toppingProduct,
|
|
5172
5306
|
onScroll,
|
|
5173
|
-
handleClickExplain,
|
|
5174
5307
|
openOrderList
|
|
5175
5308
|
};
|
|
5176
5309
|
};
|
|
@@ -5206,11 +5339,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
5206
5339
|
productTotal,
|
|
5207
5340
|
orderEntranceVisible,
|
|
5208
5341
|
onScroll,
|
|
5209
|
-
handleClickExplain,
|
|
5210
5342
|
openOrderList
|
|
5211
5343
|
} = useProductList({ props });
|
|
5212
5344
|
expose(instance);
|
|
5213
|
-
return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList, productTotal, orderEntranceVisible, onScroll,
|
|
5345
|
+
return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList, productTotal, orderEntranceVisible, onScroll, openOrderList, FormInput, FormTheme, Loading, ProductIconClose, ProductIconOrderEnter, ProductIconSearch, ProductIconProduct, ProductTagPanel, isMobile, ProductItem, ProductEmpty };
|
|
5214
5346
|
}
|
|
5215
5347
|
});
|
|
5216
5348
|
var _sfc_render$1 = function render12() {
|
|
@@ -5220,7 +5352,7 @@ var _sfc_render$1 = function render12() {
|
|
|
5220
5352
|
}, expression: "searchKeyword" } }, [_c(_setup.ProductIconSearch, { staticClass: "plv-product-list__header-search-icon", attrs: { "slot": "prefix" }, slot: "prefix" })], 1), _setup.orderEntranceVisible ? _c("div", { staticClass: "plv-product-list__header-right", on: { "click": _setup.openOrderList } }, [_c(_setup.ProductIconOrderEnter, { staticClass: "plv-product-list__header-right-icon" }), _c("div", { staticClass: "plv-product-list__header-right-text" }, [_vm._v(" " + _vm._s(_setup.$t("product.order")) + " ")])], 1) : _vm._e(), !_setup.isMobile ? _c(_setup.ProductIconClose, { staticClass: "plv-product-list-popup__icon-close", on: { "click": _setup.closeProductListPopup } }) : _vm._e()], 1), !_setup.isSearchMode ? [_c(_setup.ProductTagPanel, { ref: "productTagPanelRef", attrs: { "product-target": _vm.productTarget }, model: { value: _setup.activeTagId, callback: function($$v) {
|
|
5221
5353
|
_setup.activeTagId = $$v;
|
|
5222
5354
|
}, expression: "activeTagId" } }), _c("div", { staticClass: "plv-product-list__product-total" }, [_c(_setup.ProductIconProduct, { staticClass: "plv-product-list__product-total-icon" }), _c("div", { staticClass: "plv-product-list__product-total-text" }, [_vm._v(" " + _vm._s(_setup.$t("product.num")) + ": ")]), _c("div", { staticClass: "plv-product-list__product-total-num" }, [_vm._v(" " + _vm._s(_setup.productTotal) + " ")])], 1)] : _vm._e()], 2), !_setup.initialLoading ? [_setup.productList.length ? _c("div", { staticClass: "plv-product-list__wrapper" }, _vm._l(_setup.productList, function(product, index) {
|
|
5223
|
-
return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "
|
|
5355
|
+
return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "direct-buy": _setup.handleDirectBuy } });
|
|
5224
5356
|
}), 1) : _c(_setup.ProductEmpty)] : _vm._e(), _setup.isLoading ? _c("div", { staticClass: "plv-product-list__loading" }, [_c(_setup.Loading)], 1) : _vm._e()], 2);
|
|
5225
5357
|
};
|
|
5226
5358
|
var _sfc_staticRenderFns$1 = [];
|
|
@@ -5294,8 +5426,8 @@ console.log(
|
|
|
5294
5426
|
"%c@polyv/product-ui",
|
|
5295
5427
|
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
5296
5428
|
"[component: product-list-popup]",
|
|
5297
|
-
"[version: 1.
|
|
5298
|
-
"[buildTime: 2025-
|
|
5429
|
+
"[version: 1.1.0-rc-20250703.1]",
|
|
5430
|
+
"[buildTime: 2025-07-03 01:48:16]"
|
|
5299
5431
|
);
|
|
5300
5432
|
export {
|
|
5301
5433
|
productListPopup as default
|