@polyv/product-ui 1.0.0-rc-20250612.4 → 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 +1418 -692
- 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 +243 -185
- package/product-detail-popup.umd.js +3 -3
- package/product-detail.cjs.js +3 -3
- package/product-detail.es.js +315 -265
- 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 +397 -204
- package/product-item.umd.js +3 -3
- package/product-list-popup.cjs.js +3 -3
- package/product-list-popup.es.js +423 -295
- package/product-list-popup.umd.js +3 -3
- package/product-list.cjs.js +3 -3
- package/product-list.es.js +414 -294
- 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-item.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";@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}.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-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-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}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";.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-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-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}')),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 { onMounted, onBeforeUnmount, inject, computed, defineComponent, ref, watch, nextTick, unref, watchEffect } from "vue";
|
|
42
|
+
import { onMounted, onBeforeUnmount, inject, computed, defineComponent, ref, watch, nextTick, unref, shallowRef, watchEffect } from "vue";
|
|
43
43
|
/*!
|
|
44
44
|
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
|
45
45
|
*
|
|
@@ -825,6 +825,7 @@ function get(object, path, defaultValue) {
|
|
|
825
825
|
}
|
|
826
826
|
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": "已确认收货" };
|
|
827
827
|
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
828
|
+
const bigCard$5 = { "title": "商品推荐" };
|
|
828
829
|
const zhCNLang = {
|
|
829
830
|
"common.confirm": "确认",
|
|
830
831
|
"common.cancel": "取消",
|
|
@@ -852,10 +853,12 @@ const zhCNLang = {
|
|
|
852
853
|
"product.allProduct": "全部商品",
|
|
853
854
|
"product.stock.soldOut": "已抢光",
|
|
854
855
|
order: order$5,
|
|
855
|
-
addressEdit: addressEdit$5
|
|
856
|
+
addressEdit: addressEdit$5,
|
|
857
|
+
bigCard: bigCard$5
|
|
856
858
|
};
|
|
857
859
|
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": "已確認收貨" };
|
|
858
860
|
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
861
|
+
const bigCard$4 = { "title": "商品推薦" };
|
|
859
862
|
const zhTWLang = {
|
|
860
863
|
"common.confirm": "確認",
|
|
861
864
|
"common.cancel": "取消",
|
|
@@ -883,10 +886,12 @@ const zhTWLang = {
|
|
|
883
886
|
"product.allProduct": "全部商品",
|
|
884
887
|
"product.stock.soldOut": "已搶光",
|
|
885
888
|
order: order$4,
|
|
886
|
-
addressEdit: addressEdit$4
|
|
889
|
+
addressEdit: addressEdit$4,
|
|
890
|
+
bigCard: bigCard$4
|
|
887
891
|
};
|
|
888
892
|
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" };
|
|
889
893
|
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" };
|
|
894
|
+
const bigCard$3 = { "title": "Top Picks" };
|
|
890
895
|
const enLang = {
|
|
891
896
|
"common.confirm": "Confirm",
|
|
892
897
|
"common.cancel": "Cancel",
|
|
@@ -914,10 +919,12 @@ const enLang = {
|
|
|
914
919
|
"product.allProduct": "Products",
|
|
915
920
|
"product.stock.soldOut": "Sold Out",
|
|
916
921
|
order: order$3,
|
|
917
|
-
addressEdit: addressEdit$3
|
|
922
|
+
addressEdit: addressEdit$3,
|
|
923
|
+
bigCard: bigCard$3
|
|
918
924
|
};
|
|
919
925
|
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": "確認受け取り完了" };
|
|
920
926
|
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
927
|
+
const bigCard$2 = { "title": "商品推薦" };
|
|
921
928
|
const jaLang = {
|
|
922
929
|
"common.confirm": "確認",
|
|
923
930
|
"common.cancel": "キャンセル",
|
|
@@ -945,10 +952,12 @@ const jaLang = {
|
|
|
945
952
|
"product.allProduct": "すべての商品",
|
|
946
953
|
"product.stock.soldOut": "売り切れ",
|
|
947
954
|
order: order$2,
|
|
948
|
-
addressEdit: addressEdit$2
|
|
955
|
+
addressEdit: addressEdit$2,
|
|
956
|
+
bigCard: bigCard$2
|
|
949
957
|
};
|
|
950
958
|
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": "확인 받기 완료" };
|
|
951
959
|
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
960
|
+
const bigCard$1 = { "title": "상품 추천" };
|
|
952
961
|
const koLang = {
|
|
953
962
|
"common.confirm": "확인",
|
|
954
963
|
"common.cancel": "취소",
|
|
@@ -976,10 +985,12 @@ const koLang = {
|
|
|
976
985
|
"product.allProduct": "모든 상품",
|
|
977
986
|
"product.stock.soldOut": "품절",
|
|
978
987
|
order: order$1,
|
|
979
|
-
addressEdit: addressEdit$1
|
|
988
|
+
addressEdit: addressEdit$1,
|
|
989
|
+
bigCard: bigCard$1
|
|
980
990
|
};
|
|
981
991
|
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": "Получение подтверждено" };
|
|
982
992
|
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
993
|
+
const bigCard = { "title": "Товары" };
|
|
983
994
|
const ruLang = {
|
|
984
995
|
"common.confirm": "Подтвердить",
|
|
985
996
|
"common.cancel": "Отмена",
|
|
@@ -1007,7 +1018,8 @@ const ruLang = {
|
|
|
1007
1018
|
"product.allProduct": "Все товары",
|
|
1008
1019
|
"product.stock.soldOut": "Распродано",
|
|
1009
1020
|
order,
|
|
1010
|
-
addressEdit
|
|
1021
|
+
addressEdit,
|
|
1022
|
+
bigCard
|
|
1011
1023
|
};
|
|
1012
1024
|
const fullI18nData = {
|
|
1013
1025
|
[LangType.ZH_CN]: zhCNLang,
|
|
@@ -1199,12 +1211,12 @@ function getCurrentUAInfo() {
|
|
|
1199
1211
|
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
1200
1212
|
}
|
|
1201
1213
|
const ua = navigator.userAgent.toLowerCase();
|
|
1202
|
-
const uaInfo = getCurrentUAInfo();
|
|
1203
|
-
const isAndroid = uaInfo.os.isAndroid;
|
|
1204
|
-
const isIOS = uaInfo.os.isIOS;
|
|
1205
|
-
const weixinVersion = uaInfo.client.version;
|
|
1206
|
-
const isWeixin = uaInfo.client.isWx;
|
|
1207
|
-
const isWorkWeixin = uaInfo.client.isWxWork;
|
|
1214
|
+
const uaInfo$1 = getCurrentUAInfo();
|
|
1215
|
+
const isAndroid$1 = uaInfo$1.os.isAndroid;
|
|
1216
|
+
const isIOS$1 = uaInfo$1.os.isIOS;
|
|
1217
|
+
const weixinVersion = uaInfo$1.client.version;
|
|
1218
|
+
const isWeixin = uaInfo$1.client.isWx;
|
|
1219
|
+
const isWorkWeixin = uaInfo$1.client.isWxWork;
|
|
1208
1220
|
const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
|
|
1209
1221
|
function __isMobile() {
|
|
1210
1222
|
const ua2 = navigator.userAgent;
|
|
@@ -1221,7 +1233,7 @@ function __isMobile() {
|
|
|
1221
1233
|
function __isTablet() {
|
|
1222
1234
|
const ua2 = navigator.userAgent;
|
|
1223
1235
|
if (/(?:iPad|PlayBook)/.test(ua2)) return true;
|
|
1224
|
-
if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1236
|
+
if (uaInfo$1.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1225
1237
|
return false;
|
|
1226
1238
|
}
|
|
1227
1239
|
const isMob = __isMobile();
|
|
@@ -1878,7 +1890,8 @@ function getProductTargetExport(productTarget) {
|
|
|
1878
1890
|
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
1879
1891
|
ProductMediaType: productTarget.ProductMediaType,
|
|
1880
1892
|
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
1881
|
-
ProductEvents: productTarget.ProductEvents
|
|
1893
|
+
ProductEvents: productTarget.ProductEvents,
|
|
1894
|
+
ProductPushRule: productTarget.ProductPushRule
|
|
1882
1895
|
};
|
|
1883
1896
|
}
|
|
1884
1897
|
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
@@ -1938,6 +1951,37 @@ const useProductStock = (options) => {
|
|
|
1938
1951
|
isSoldOut
|
|
1939
1952
|
};
|
|
1940
1953
|
};
|
|
1954
|
+
const useProductExplain = (options) => {
|
|
1955
|
+
const { props } = options;
|
|
1956
|
+
const productExplainEnabled = ref(false);
|
|
1957
|
+
function getProductExplainEnabled() {
|
|
1958
|
+
return __async(this, null, function* () {
|
|
1959
|
+
if (!props.productTarget) return;
|
|
1960
|
+
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
1961
|
+
productExplainEnabled.value = enabled;
|
|
1962
|
+
});
|
|
1963
|
+
}
|
|
1964
|
+
function handleClickExplain(product) {
|
|
1965
|
+
return __async(this, null, function* () {
|
|
1966
|
+
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
1967
|
+
props.productConfig.customClickExplainHandler(product);
|
|
1968
|
+
return;
|
|
1969
|
+
}
|
|
1970
|
+
if (!props.productTarget) return;
|
|
1971
|
+
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
1972
|
+
if (url) {
|
|
1973
|
+
window.open(url, "_blank");
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
}
|
|
1977
|
+
onMounted(() => {
|
|
1978
|
+
getProductExplainEnabled();
|
|
1979
|
+
});
|
|
1980
|
+
return {
|
|
1981
|
+
productExplainEnabled,
|
|
1982
|
+
handleClickExplain
|
|
1983
|
+
};
|
|
1984
|
+
};
|
|
1941
1985
|
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1942
1986
|
__name: "product-price",
|
|
1943
1987
|
props: {
|
|
@@ -2031,6 +2075,104 @@ function concat(i2, r2, t2) {
|
|
|
2031
2075
|
let e = n2.search || "";
|
|
2032
2076
|
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
2033
2077
|
}
|
|
2078
|
+
var __awaiter = function(i2, n2, o2, t2) {
|
|
2079
|
+
return new (o2 || (o2 = Promise))(function(e, a2) {
|
|
2080
|
+
function r2(i3) {
|
|
2081
|
+
try {
|
|
2082
|
+
k2(t2.next(i3));
|
|
2083
|
+
} catch (i4) {
|
|
2084
|
+
a2(i4);
|
|
2085
|
+
}
|
|
2086
|
+
}
|
|
2087
|
+
function l2(i3) {
|
|
2088
|
+
try {
|
|
2089
|
+
k2(t2.throw(i3));
|
|
2090
|
+
} catch (i4) {
|
|
2091
|
+
a2(i4);
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
function k2(i3) {
|
|
2095
|
+
var n3;
|
|
2096
|
+
i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
|
|
2097
|
+
i4(n3);
|
|
2098
|
+
})).then(r2, l2);
|
|
2099
|
+
}
|
|
2100
|
+
k2((t2 = t2.apply(i2, n2 || [])).next());
|
|
2101
|
+
});
|
|
2102
|
+
};
|
|
2103
|
+
const uaInfo = getCurrentUAInfo();
|
|
2104
|
+
const isAndroid = uaInfo.os.isAndroid;
|
|
2105
|
+
const isIOS = uaInfo.os.isIOS;
|
|
2106
|
+
var LinkType;
|
|
2107
|
+
!function(i2) {
|
|
2108
|
+
i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
|
|
2109
|
+
}(LinkType || (LinkType = {}));
|
|
2110
|
+
var LinkJumpWay;
|
|
2111
|
+
function getNativeToPointMallFn() {
|
|
2112
|
+
var i2, n2, o2, t2;
|
|
2113
|
+
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;
|
|
2114
|
+
}
|
|
2115
|
+
function toNativeLink(i2) {
|
|
2116
|
+
const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
|
|
2117
|
+
if (e) {
|
|
2118
|
+
let i3 = isAndroid ? n2 : o2;
|
|
2119
|
+
const t3 = encodeURIComponent(location.href);
|
|
2120
|
+
i3 = concat(i3, { plt_back_uri: t3 });
|
|
2121
|
+
e(JSON.stringify({ url: i3 }));
|
|
2122
|
+
} else window.open(t2, "_blank", "noopener=yes");
|
|
2123
|
+
}
|
|
2124
|
+
function toPlvWebviewBridge(i2) {
|
|
2125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2126
|
+
const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
|
|
2127
|
+
e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
|
|
2128
|
+
});
|
|
2129
|
+
}
|
|
2130
|
+
function toMultiPlatformLink(i2) {
|
|
2131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2132
|
+
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;
|
|
2133
|
+
let u2 = false;
|
|
2134
|
+
try {
|
|
2135
|
+
u2 = (yield null == o2 ? void 0 : o2()) || false;
|
|
2136
|
+
} catch (i3) {
|
|
2137
|
+
u2 = false;
|
|
2138
|
+
}
|
|
2139
|
+
u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
|
|
2140
|
+
});
|
|
2141
|
+
}
|
|
2142
|
+
!function(i2) {
|
|
2143
|
+
i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
|
|
2144
|
+
}(LinkJumpWay || (LinkJumpWay = {}));
|
|
2145
|
+
function formatLink(i2, n2) {
|
|
2146
|
+
let o2 = {};
|
|
2147
|
+
if (n2) {
|
|
2148
|
+
const t2 = n2(i2);
|
|
2149
|
+
o2 = Object.assign({}, o2, t2);
|
|
2150
|
+
}
|
|
2151
|
+
return concat(i2, o2);
|
|
2152
|
+
}
|
|
2153
|
+
function navigateToLink(i2) {
|
|
2154
|
+
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;
|
|
2155
|
+
if (s2 !== LinkType.Native) {
|
|
2156
|
+
if (u2) {
|
|
2157
|
+
let i3 = "";
|
|
2158
|
+
const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
|
|
2159
|
+
switch (s2) {
|
|
2160
|
+
case LinkType.Normal:
|
|
2161
|
+
i3 = o3;
|
|
2162
|
+
break;
|
|
2163
|
+
case LinkType.MultiPlatform:
|
|
2164
|
+
i3 = r3 || t3;
|
|
2165
|
+
}
|
|
2166
|
+
let u3 = null;
|
|
2167
|
+
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 });
|
|
2168
|
+
}
|
|
2169
|
+
if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
|
|
2170
|
+
else {
|
|
2171
|
+
const { link: i3, jumpWay: t3 } = n2;
|
|
2172
|
+
o2(formatLink(i3, k2), t3);
|
|
2173
|
+
}
|
|
2174
|
+
} else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
|
|
2175
|
+
}
|
|
2034
2176
|
const useTrackEvent = (iarCore) => {
|
|
2035
2177
|
const { injectData } = useGlobalInject();
|
|
2036
2178
|
function trackEvent(data) {
|
|
@@ -2044,7 +2186,7 @@ const useTrackEvent = (iarCore) => {
|
|
|
2044
2186
|
trackEvent
|
|
2045
2187
|
};
|
|
2046
2188
|
};
|
|
2047
|
-
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
2189
|
+
const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = [""", "'", "&", "<", ">", " "], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
2048
2190
|
htmlChars.forEach((n2, e) => {
|
|
2049
2191
|
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
2050
2192
|
});
|
|
@@ -2099,7 +2241,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
2099
2241
|
}
|
|
2100
2242
|
const wx = yield injectData.getWeixinSdk();
|
|
2101
2243
|
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
2102
|
-
url
|
|
2244
|
+
url: url.startsWith("/") ? url : `/${url}`
|
|
2103
2245
|
});
|
|
2104
2246
|
return;
|
|
2105
2247
|
});
|
|
@@ -2154,7 +2296,9 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
2154
2296
|
watch(
|
|
2155
2297
|
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
2156
2298
|
() => {
|
|
2157
|
-
|
|
2299
|
+
setTimeout(() => {
|
|
2300
|
+
createWxMiniProgramButton();
|
|
2301
|
+
}, 500);
|
|
2158
2302
|
},
|
|
2159
2303
|
{
|
|
2160
2304
|
immediate: true
|
|
@@ -2171,25 +2315,25 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
2171
2315
|
};
|
|
2172
2316
|
};
|
|
2173
2317
|
const useAppNative = () => {
|
|
2174
|
-
function
|
|
2318
|
+
function getNativeToPointMallFn2() {
|
|
2175
2319
|
var _a, _b, _c, _d;
|
|
2176
|
-
if (isAndroid) {
|
|
2320
|
+
if (isAndroid$1) {
|
|
2177
2321
|
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
2178
|
-
} else if (isIOS) {
|
|
2322
|
+
} else if (isIOS$1) {
|
|
2179
2323
|
return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
|
|
2180
2324
|
}
|
|
2181
2325
|
}
|
|
2182
2326
|
function supportNativeToPointMall() {
|
|
2183
|
-
return !!
|
|
2327
|
+
return !!getNativeToPointMallFn2();
|
|
2184
2328
|
}
|
|
2185
2329
|
const supportAppNative = computed(() => {
|
|
2186
2330
|
return supportNativeToPointMall();
|
|
2187
2331
|
});
|
|
2188
|
-
function
|
|
2332
|
+
function toNativeLink2(options) {
|
|
2189
2333
|
const { androidLink, iosLink, otherLink } = options;
|
|
2190
|
-
const nativePointMallFn =
|
|
2334
|
+
const nativePointMallFn = getNativeToPointMallFn2();
|
|
2191
2335
|
if (nativePointMallFn) {
|
|
2192
|
-
let url = isAndroid ? androidLink : iosLink;
|
|
2336
|
+
let url = isAndroid$1 ? androidLink : iosLink;
|
|
2193
2337
|
const pltBackUri = encodeURIComponent(location.href);
|
|
2194
2338
|
url = concat(url, {
|
|
2195
2339
|
plt_back_uri: pltBackUri
|
|
@@ -2203,60 +2347,10 @@ const useAppNative = () => {
|
|
|
2203
2347
|
window.open(otherLink, "_blank", "noopener=yes");
|
|
2204
2348
|
}
|
|
2205
2349
|
return {
|
|
2206
|
-
getNativeToPointMallFn,
|
|
2350
|
+
getNativeToPointMallFn: getNativeToPointMallFn2,
|
|
2207
2351
|
supportNativeToPointMall,
|
|
2208
2352
|
supportAppNative,
|
|
2209
|
-
toNativeLink
|
|
2210
|
-
};
|
|
2211
|
-
};
|
|
2212
|
-
const usePolyvWebview = () => {
|
|
2213
|
-
const { injectData } = useGlobalInject();
|
|
2214
|
-
const isPlvWebview = ref(false);
|
|
2215
|
-
const supportPlvWebview = computed(() => {
|
|
2216
|
-
return isPlvWebview.value;
|
|
2217
|
-
});
|
|
2218
|
-
function getPlvWebviewBridge() {
|
|
2219
|
-
return __async(this, null, function* () {
|
|
2220
|
-
if (injectData.getPlvWebviewBridge) {
|
|
2221
|
-
return yield injectData.getPlvWebviewBridge();
|
|
2222
|
-
}
|
|
2223
|
-
});
|
|
2224
|
-
}
|
|
2225
|
-
function toPlvWebviewBridge(options) {
|
|
2226
|
-
return __async(this, null, function* () {
|
|
2227
|
-
if (!supportPlvWebview.value) {
|
|
2228
|
-
return;
|
|
2229
|
-
}
|
|
2230
|
-
let plvWebviewDataSize = {
|
|
2231
|
-
width: 90,
|
|
2232
|
-
height: 160
|
|
2233
|
-
};
|
|
2234
|
-
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
2235
|
-
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
2236
|
-
}
|
|
2237
|
-
const webviewBridge = yield getPlvWebviewBridge();
|
|
2238
|
-
if (!webviewBridge) {
|
|
2239
|
-
return;
|
|
2240
|
-
}
|
|
2241
|
-
webviewBridge.sendData("clickProduct", {
|
|
2242
|
-
width: plvWebviewDataSize.width,
|
|
2243
|
-
height: plvWebviewDataSize.height,
|
|
2244
|
-
newPage: true,
|
|
2245
|
-
link: options.link,
|
|
2246
|
-
data: options.data
|
|
2247
|
-
});
|
|
2248
|
-
});
|
|
2249
|
-
}
|
|
2250
|
-
onMounted(() => {
|
|
2251
|
-
if (injectData.isPlvWebview) {
|
|
2252
|
-
isPlvWebview.value = injectData.isPlvWebview();
|
|
2253
|
-
}
|
|
2254
|
-
});
|
|
2255
|
-
return {
|
|
2256
|
-
isPlvWebview,
|
|
2257
|
-
supportPlvWebview,
|
|
2258
|
-
getPlvWebviewBridge,
|
|
2259
|
-
toPlvWebviewBridge
|
|
2353
|
+
toNativeLink: toNativeLink2
|
|
2260
2354
|
};
|
|
2261
2355
|
};
|
|
2262
2356
|
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
@@ -2275,12 +2369,12 @@ const useProductButton = (options) => {
|
|
|
2275
2369
|
const { isSoldOut } = useProductStock({
|
|
2276
2370
|
product: () => props.productData
|
|
2277
2371
|
});
|
|
2278
|
-
const { getEmitter } = useGlobalInject();
|
|
2372
|
+
const { getEmitter, injectData } = useGlobalInject();
|
|
2279
2373
|
const { $t } = useI18n();
|
|
2280
2374
|
const productConfig = computed(() => {
|
|
2281
2375
|
return props.productConfig;
|
|
2282
2376
|
});
|
|
2283
|
-
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
2377
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
|
|
2284
2378
|
getButtonOptions: () => {
|
|
2285
2379
|
const productData = props.productData;
|
|
2286
2380
|
return {
|
|
@@ -2291,10 +2385,9 @@ const useProductButton = (options) => {
|
|
|
2291
2385
|
},
|
|
2292
2386
|
launchCallback: () => sendClickEvent()
|
|
2293
2387
|
});
|
|
2294
|
-
const { supportAppNative
|
|
2295
|
-
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
2388
|
+
const { supportAppNative } = useAppNative();
|
|
2296
2389
|
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
2297
|
-
const { ProductBuyType, ProductType
|
|
2390
|
+
const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
|
|
2298
2391
|
const isDirectBuy = computed(() => {
|
|
2299
2392
|
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
2300
2393
|
});
|
|
@@ -2321,13 +2414,13 @@ const useProductButton = (options) => {
|
|
|
2321
2414
|
if (isDirectBuy.value) {
|
|
2322
2415
|
return false;
|
|
2323
2416
|
}
|
|
2324
|
-
if (productData.linkType ===
|
|
2417
|
+
if (productData.linkType === LinkType.Normal) {
|
|
2325
2418
|
return !productData.link;
|
|
2326
2419
|
}
|
|
2327
|
-
if (productData.linkType ===
|
|
2420
|
+
if (productData.linkType === LinkType.MultiPlatform) {
|
|
2328
2421
|
return isMultiPlatformDisabled.value;
|
|
2329
2422
|
}
|
|
2330
|
-
if (productData.linkType ===
|
|
2423
|
+
if (productData.linkType === LinkType.Native) {
|
|
2331
2424
|
if (supportAppNative.value) {
|
|
2332
2425
|
return !productData.androidLink && !productData.iosLink;
|
|
2333
2426
|
}
|
|
@@ -2386,9 +2479,26 @@ const useProductButton = (options) => {
|
|
|
2386
2479
|
}
|
|
2387
2480
|
return concat(url, urlParams);
|
|
2388
2481
|
}
|
|
2482
|
+
function getLinkData() {
|
|
2483
|
+
const productData = props.productData;
|
|
2484
|
+
const linkData = {
|
|
2485
|
+
linkType: productData.linkType,
|
|
2486
|
+
jumpWay: productData.jumpWay,
|
|
2487
|
+
link: productData.link,
|
|
2488
|
+
pcLink: productData.pcLink,
|
|
2489
|
+
mobileLink: productData.mobileLink,
|
|
2490
|
+
mobileAppLink: productData.mobileAppLink,
|
|
2491
|
+
androidLink: productData.androidLink,
|
|
2492
|
+
iosLink: productData.iosLink,
|
|
2493
|
+
otherLink: productData.otherLink,
|
|
2494
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
2495
|
+
wxMiniprogramAppId: productData.wxMiniprogramAppId,
|
|
2496
|
+
wxMiniprogramLink: productData.wxMiniprogramLink
|
|
2497
|
+
};
|
|
2498
|
+
return linkData;
|
|
2499
|
+
}
|
|
2389
2500
|
function onClickLinkBtn() {
|
|
2390
2501
|
const productData = props.productData;
|
|
2391
|
-
const { linkType } = productData;
|
|
2392
2502
|
sendClickEvent();
|
|
2393
2503
|
if (productConfig.value.customClickButtonHandler) {
|
|
2394
2504
|
productConfig.value.customClickButtonHandler(productData);
|
|
@@ -2398,70 +2508,28 @@ const useProductButton = (options) => {
|
|
|
2398
2508
|
toDirectBuy();
|
|
2399
2509
|
return;
|
|
2400
2510
|
}
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
case ProductLinkType.Normal:
|
|
2414
|
-
linkTo = link;
|
|
2415
|
-
break;
|
|
2416
|
-
case ProductLinkType.MultiPlatform:
|
|
2417
|
-
linkTo = mobileAppLink || mobileLink;
|
|
2418
|
-
break;
|
|
2419
|
-
}
|
|
2420
|
-
let otherData = null;
|
|
2421
|
-
if (productData.linkType !== ProductLinkType.Normal) {
|
|
2422
|
-
otherData = {
|
|
2423
|
-
mobileLink: formatProductLink(mobileLink),
|
|
2424
|
-
wxMiniprogramOriginalId,
|
|
2425
|
-
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
2426
|
-
mobileAppLink: formatProductLink(mobileAppLink)
|
|
2427
|
-
};
|
|
2428
|
-
}
|
|
2429
|
-
toPlvWebviewBridge({
|
|
2430
|
-
link: formatProductLink(linkTo),
|
|
2431
|
-
data: otherData
|
|
2432
|
-
});
|
|
2433
|
-
return;
|
|
2434
|
-
}
|
|
2435
|
-
if (linkType === ProductLinkType.Normal) {
|
|
2436
|
-
const { link, jumpWay } = productData;
|
|
2437
|
-
openLink(formatProductLink(link), jumpWay);
|
|
2438
|
-
return;
|
|
2439
|
-
}
|
|
2440
|
-
if (linkType === ProductLinkType.MultiPlatform) {
|
|
2441
|
-
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
2442
|
-
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
2443
|
-
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
2444
|
-
return;
|
|
2445
|
-
}
|
|
2446
|
-
if (isMobile) {
|
|
2447
|
-
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
2448
|
-
return;
|
|
2449
|
-
}
|
|
2450
|
-
if (!isMobile) {
|
|
2451
|
-
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
2452
|
-
return;
|
|
2453
|
-
}
|
|
2454
|
-
}
|
|
2511
|
+
const linkData = getLinkData();
|
|
2512
|
+
navigateToLink({
|
|
2513
|
+
linkData,
|
|
2514
|
+
getLinkParams: productConfig.value.getLinkParams,
|
|
2515
|
+
openLink,
|
|
2516
|
+
isPlvWebview: injectData.isPlvWebview,
|
|
2517
|
+
isMobile: injectData.isMobile,
|
|
2518
|
+
getPlvWebviewBridge: injectData.getPlvWebviewBridge,
|
|
2519
|
+
getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
|
|
2520
|
+
isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
|
|
2521
|
+
toWxMiniProgram
|
|
2522
|
+
});
|
|
2455
2523
|
}
|
|
2456
2524
|
function openLink(url, jumpWay) {
|
|
2457
2525
|
switch (jumpWay) {
|
|
2458
|
-
case
|
|
2526
|
+
case LinkJumpWay.NewWindow:
|
|
2459
2527
|
window.open(url, "_blank", "noopener=yes");
|
|
2460
2528
|
break;
|
|
2461
|
-
case
|
|
2529
|
+
case LinkJumpWay.CurrentWindow:
|
|
2462
2530
|
window.location.href = url;
|
|
2463
2531
|
break;
|
|
2464
|
-
case
|
|
2532
|
+
case LinkJumpWay.PopUp:
|
|
2465
2533
|
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
2466
2534
|
break;
|
|
2467
2535
|
default:
|
|
@@ -2484,7 +2552,7 @@ const useProductButton = (options) => {
|
|
|
2484
2552
|
name: productData.name,
|
|
2485
2553
|
productId: productData.productId,
|
|
2486
2554
|
productType: productData.productType,
|
|
2487
|
-
productPushRule: data == null ? void 0 : data.pushRule
|
|
2555
|
+
productPushRule: (data == null ? void 0 : data.pushRule) || ""
|
|
2488
2556
|
}
|
|
2489
2557
|
});
|
|
2490
2558
|
props.productTarget.sendProductClickEvent({
|
|
@@ -3425,6 +3493,7 @@ const useDynamicHeight = (options) => {
|
|
|
3425
3493
|
if (props.fillBody) {
|
|
3426
3494
|
return "90%";
|
|
3427
3495
|
}
|
|
3496
|
+
if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
|
|
3428
3497
|
if (props.enableDynamicHeight) {
|
|
3429
3498
|
return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
|
|
3430
3499
|
}
|
|
@@ -3539,63 +3608,194 @@ const useDynamicHeight = (options) => {
|
|
|
3539
3608
|
}
|
|
3540
3609
|
});
|
|
3541
3610
|
const supportWebP = /* @__PURE__ */ (() => {
|
|
3542
|
-
let
|
|
3611
|
+
let e;
|
|
3543
3612
|
return () => {
|
|
3544
|
-
if (null ==
|
|
3545
|
-
|
|
3546
|
-
const
|
|
3547
|
-
if (
|
|
3548
|
-
const
|
|
3549
|
-
return 0 ===
|
|
3613
|
+
if (null == e) try {
|
|
3614
|
+
e = function() {
|
|
3615
|
+
const e2 = document.createElement("canvas");
|
|
3616
|
+
if (e2.getContext && e2.getContext("2d")) {
|
|
3617
|
+
const A2 = "image/webp";
|
|
3618
|
+
return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
|
|
3550
3619
|
}
|
|
3551
3620
|
return false;
|
|
3621
|
+
}() || function() {
|
|
3622
|
+
let e2 = false;
|
|
3623
|
+
const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
|
|
3624
|
+
if (t2) e2 = parseInt(t2[1]) >= 14;
|
|
3625
|
+
else {
|
|
3626
|
+
const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
|
|
3627
|
+
t3 && (e2 = parseInt(t3[1]) >= 16);
|
|
3628
|
+
}
|
|
3629
|
+
return e2;
|
|
3552
3630
|
}();
|
|
3553
|
-
} catch (
|
|
3554
|
-
|
|
3631
|
+
} catch (A2) {
|
|
3632
|
+
e = false;
|
|
3555
3633
|
}
|
|
3556
|
-
return
|
|
3634
|
+
return e;
|
|
3557
3635
|
};
|
|
3558
3636
|
})();
|
|
3559
|
-
function getExtname(
|
|
3560
|
-
const
|
|
3637
|
+
function getExtname(e) {
|
|
3638
|
+
const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
|
|
3561
3639
|
return t2 ? t2.toLowerCase() : "";
|
|
3562
3640
|
}
|
|
3563
|
-
function handleCompressOptions(
|
|
3564
|
-
var
|
|
3565
|
-
const
|
|
3566
|
-
return
|
|
3641
|
+
function handleCompressOptions(e) {
|
|
3642
|
+
var A2, t2;
|
|
3643
|
+
const n2 = "number" == typeof e ? { width: e } : e;
|
|
3644
|
+
return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
|
|
3567
3645
|
}
|
|
3568
|
-
function createURLObject(
|
|
3569
|
-
let
|
|
3646
|
+
function createURLObject(e) {
|
|
3647
|
+
let A2;
|
|
3570
3648
|
if ("undefined" != typeof document) {
|
|
3571
3649
|
const t2 = document.createElement("a");
|
|
3572
|
-
t2.href =
|
|
3650
|
+
t2.href = e, A2 = t2;
|
|
3573
3651
|
} else if ("function" == typeof URL) try {
|
|
3574
|
-
|
|
3575
|
-
} catch (
|
|
3652
|
+
A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
|
|
3653
|
+
} catch (e2) {
|
|
3576
3654
|
}
|
|
3577
|
-
return
|
|
3655
|
+
return A2;
|
|
3578
3656
|
}
|
|
3579
|
-
function genOSSCompressParams(
|
|
3657
|
+
function genOSSCompressParams(e, A2) {
|
|
3580
3658
|
let t2 = "";
|
|
3581
|
-
return null ==
|
|
3659
|
+
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;
|
|
3582
3660
|
}
|
|
3583
|
-
function setOSSCompressParams(
|
|
3661
|
+
function setOSSCompressParams(e, A2) {
|
|
3584
3662
|
let t2 = false;
|
|
3585
|
-
return
|
|
3586
|
-
}
|
|
3587
|
-
function ossCompress(
|
|
3588
|
-
const t2 = createURLObject(
|
|
3589
|
-
if (!t2) return
|
|
3590
|
-
|
|
3591
|
-
|
|
3663
|
+
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;
|
|
3664
|
+
}
|
|
3665
|
+
function ossCompress(e, A2) {
|
|
3666
|
+
const t2 = createURLObject(e);
|
|
3667
|
+
if (!t2) return e;
|
|
3668
|
+
const n2 = getExtname(t2.pathname.split("/").pop());
|
|
3669
|
+
if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
|
|
3670
|
+
const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
|
|
3592
3671
|
return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
|
|
3593
3672
|
}
|
|
3673
|
+
var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
|
|
3674
|
+
ProductItemScene2["ProductList"] = "productList";
|
|
3675
|
+
ProductItemScene2["BigCard"] = "bigCard";
|
|
3676
|
+
ProductItemScene2["AggregateStation"] = "aggregateStation";
|
|
3677
|
+
return ProductItemScene2;
|
|
3678
|
+
})(ProductItemScene || {});
|
|
3679
|
+
const useProductTrack = (options) => {
|
|
3680
|
+
const { productTarget } = options;
|
|
3681
|
+
const { ProductType } = getProductTargetExport(productTarget);
|
|
3682
|
+
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
3683
|
+
const trackedProductIds = ref({});
|
|
3684
|
+
const productListRef = ref(null);
|
|
3685
|
+
const productItemsRef = shallowRef([]);
|
|
3686
|
+
function setItemRef(el) {
|
|
3687
|
+
if (el) {
|
|
3688
|
+
productItemsRef.value.push(el);
|
|
3689
|
+
}
|
|
3690
|
+
}
|
|
3691
|
+
function trackProductViewEvent(productData) {
|
|
3692
|
+
const specAttrs = {
|
|
3693
|
+
name: productData.name,
|
|
3694
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
3695
|
+
productId: productData.productId,
|
|
3696
|
+
productType: productData.productType,
|
|
3697
|
+
productFeature: JSON.stringify(productData.featureTags)
|
|
3698
|
+
};
|
|
3699
|
+
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
3700
|
+
specAttrs.price = productData.originPrice;
|
|
3701
|
+
}
|
|
3702
|
+
trackEvent({
|
|
3703
|
+
event_id: "product_list_item_view",
|
|
3704
|
+
event_type: "show",
|
|
3705
|
+
spec_attrs: specAttrs
|
|
3706
|
+
});
|
|
3707
|
+
}
|
|
3708
|
+
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
3709
|
+
const offsetTop = element.offsetTop;
|
|
3710
|
+
const offsetHeight = element.offsetHeight;
|
|
3711
|
+
const elementBottom = offsetTop + offsetHeight;
|
|
3712
|
+
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
3713
|
+
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
3714
|
+
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
3715
|
+
}
|
|
3716
|
+
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
3717
|
+
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
3718
|
+
return;
|
|
3719
|
+
}
|
|
3720
|
+
const element = itemInstance.$el;
|
|
3721
|
+
const productId = itemInstance.product.productId;
|
|
3722
|
+
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
3723
|
+
if (isVisible && !trackedProductIds.value[productId]) {
|
|
3724
|
+
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
3725
|
+
trackProductViewEvent(itemInstance.product);
|
|
3726
|
+
}
|
|
3727
|
+
}
|
|
3728
|
+
function trackProduct() {
|
|
3729
|
+
return __async(this, null, function* () {
|
|
3730
|
+
yield nextTick();
|
|
3731
|
+
const container = productListRef.value;
|
|
3732
|
+
if (!container || !productItemsRef.value.length) return;
|
|
3733
|
+
const scrollTop = container.scrollTop;
|
|
3734
|
+
const scrollClientHeight = container.clientHeight;
|
|
3735
|
+
const viewportBottom = scrollTop + scrollClientHeight;
|
|
3736
|
+
productItemsRef.value.forEach((itemInstance) => {
|
|
3737
|
+
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
3738
|
+
});
|
|
3739
|
+
});
|
|
3740
|
+
}
|
|
3741
|
+
function clearTrackedProducts() {
|
|
3742
|
+
trackedProductIds.value = {};
|
|
3743
|
+
productItemsRef.value = [];
|
|
3744
|
+
}
|
|
3745
|
+
function getCommonSpecAttrs(productData) {
|
|
3746
|
+
return {
|
|
3747
|
+
clickTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
3748
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
3749
|
+
productName: productData.name,
|
|
3750
|
+
productId: productData.productId,
|
|
3751
|
+
productType: productData.productType,
|
|
3752
|
+
feature: JSON.stringify(productData.featureTags),
|
|
3753
|
+
price: productData.productType === ProductType.Normal ? productData.originPrice : "",
|
|
3754
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
|
|
3755
|
+
};
|
|
3756
|
+
}
|
|
3757
|
+
function trackProductItemClick(productData) {
|
|
3758
|
+
trackEvent({
|
|
3759
|
+
event_id: "product_list_item_click",
|
|
3760
|
+
event_type: "click",
|
|
3761
|
+
spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
|
|
3762
|
+
});
|
|
3763
|
+
}
|
|
3764
|
+
function trackProductPushItemClick(productData) {
|
|
3765
|
+
trackEvent({
|
|
3766
|
+
event_id: "product_push_item_click",
|
|
3767
|
+
event_type: "click",
|
|
3768
|
+
spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
|
|
3769
|
+
pushId: productData.pushLogId || ""
|
|
3770
|
+
})
|
|
3771
|
+
});
|
|
3772
|
+
}
|
|
3773
|
+
function trackProductPushItemView(productData) {
|
|
3774
|
+
trackEvent({
|
|
3775
|
+
event_id: "product_push_item_view",
|
|
3776
|
+
event_type: "show",
|
|
3777
|
+
spec_attrs: {
|
|
3778
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
3779
|
+
productId: productData.productId,
|
|
3780
|
+
pushId: productData.pushLogId || ""
|
|
3781
|
+
}
|
|
3782
|
+
});
|
|
3783
|
+
}
|
|
3784
|
+
return {
|
|
3785
|
+
productListRef,
|
|
3786
|
+
setItemRef,
|
|
3787
|
+
trackProduct,
|
|
3788
|
+
clearTrackedProducts,
|
|
3789
|
+
trackProductItemClick,
|
|
3790
|
+
trackProductPushItemClick,
|
|
3791
|
+
trackProductPushItemView
|
|
3792
|
+
};
|
|
3793
|
+
};
|
|
3594
3794
|
const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
3595
|
-
product: PropUtils.object().isRequired
|
|
3795
|
+
product: PropUtils.object().isRequired,
|
|
3796
|
+
scene: PropUtils.enum()
|
|
3596
3797
|
});
|
|
3597
3798
|
const productItemEmits = () => ({
|
|
3598
|
-
"click-explain": emitFunc(),
|
|
3599
3799
|
"click-product-item": emitFunc(),
|
|
3600
3800
|
"direct-buy": emitFunc()
|
|
3601
3801
|
});
|
|
@@ -3603,20 +3803,14 @@ const useProductItem = (options) => {
|
|
|
3603
3803
|
const { props, emit } = options;
|
|
3604
3804
|
const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
|
|
3605
3805
|
const { getEmitter } = useGlobalInject();
|
|
3606
|
-
const productExplainEnabled =
|
|
3806
|
+
const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
|
|
3807
|
+
const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
|
|
3607
3808
|
const isProductRedirectLinkDirectly = ref(false);
|
|
3608
3809
|
const shouldEllipsisTitle = computed(() => {
|
|
3609
3810
|
const { product } = props;
|
|
3610
3811
|
return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
|
|
3611
3812
|
});
|
|
3612
|
-
function
|
|
3613
|
-
return __async(this, null, function* () {
|
|
3614
|
-
if (!props.productTarget) return;
|
|
3615
|
-
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
3616
|
-
productExplainEnabled.value = enabled;
|
|
3617
|
-
});
|
|
3618
|
-
}
|
|
3619
|
-
function setIsProductRedirectLinkDirectly() {
|
|
3813
|
+
function getIsProductRedirectLinkDirectly() {
|
|
3620
3814
|
return __async(this, null, function* () {
|
|
3621
3815
|
const { product, productTarget } = props;
|
|
3622
3816
|
if (!product || !productTarget) return false;
|
|
@@ -3624,11 +3818,13 @@ const useProductItem = (options) => {
|
|
|
3624
3818
|
isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
|
|
3625
3819
|
});
|
|
3626
3820
|
}
|
|
3627
|
-
function onClickExplain(product) {
|
|
3628
|
-
emit("click-explain", product);
|
|
3629
|
-
}
|
|
3630
3821
|
function onClickProductItem() {
|
|
3631
3822
|
emit("click-product-item", props.product);
|
|
3823
|
+
if (props.scene === ProductItemScene.BigCard) {
|
|
3824
|
+
trackProductPushItemClick(props.product);
|
|
3825
|
+
} else {
|
|
3826
|
+
trackProductItemClick(props.product);
|
|
3827
|
+
}
|
|
3632
3828
|
if (props.product.productType !== ProductType.Finance) {
|
|
3633
3829
|
getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
|
|
3634
3830
|
}
|
|
@@ -3636,18 +3832,15 @@ const useProductItem = (options) => {
|
|
|
3636
3832
|
function onDirectBuy(product) {
|
|
3637
3833
|
emit("direct-buy", product);
|
|
3638
3834
|
}
|
|
3639
|
-
onMounted(() => {
|
|
3640
|
-
setProductExplainEnabled();
|
|
3641
|
-
});
|
|
3642
3835
|
watchEffect(() => {
|
|
3643
|
-
|
|
3836
|
+
getIsProductRedirectLinkDirectly();
|
|
3644
3837
|
});
|
|
3645
3838
|
return {
|
|
3646
3839
|
productExplainEnabled,
|
|
3647
3840
|
isProductRedirectLinkDirectly,
|
|
3648
3841
|
shouldEllipsisTitle,
|
|
3649
3842
|
onDirectBuy,
|
|
3650
|
-
|
|
3843
|
+
handleClickExplain,
|
|
3651
3844
|
onClickProductItem
|
|
3652
3845
|
};
|
|
3653
3846
|
};
|
|
@@ -3667,22 +3860,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3667
3860
|
isProductRedirectLinkDirectly,
|
|
3668
3861
|
shouldEllipsisTitle,
|
|
3669
3862
|
onDirectBuy,
|
|
3670
|
-
|
|
3671
|
-
|
|
3863
|
+
onClickProductItem,
|
|
3864
|
+
handleClickExplain
|
|
3672
3865
|
} = useProductItem({
|
|
3673
3866
|
props,
|
|
3674
3867
|
emit
|
|
3675
3868
|
});
|
|
3676
|
-
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy,
|
|
3869
|
+
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
|
|
3677
3870
|
}
|
|
3678
3871
|
});
|
|
3679
3872
|
var _sfc_render = function render6() {
|
|
3680
3873
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
3681
|
-
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.
|
|
3874
|
+
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) {
|
|
3682
3875
|
return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
|
|
3683
|
-
}), 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.
|
|
3876
|
+
}), 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 }) {
|
|
3684
3877
|
return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
|
|
3685
|
-
} }]) })], 1)])])]);
|
|
3878
|
+
} }], null, false, 477326030) }) : _vm._e()], 1)])])]);
|
|
3686
3879
|
};
|
|
3687
3880
|
var _sfc_staticRenderFns = [];
|
|
3688
3881
|
var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
@@ -3696,8 +3889,8 @@ console.log(
|
|
|
3696
3889
|
"%c@polyv/product-ui",
|
|
3697
3890
|
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
3698
3891
|
"[component: product-item]",
|
|
3699
|
-
"[version: 1.
|
|
3700
|
-
"[buildTime: 2025-
|
|
3892
|
+
"[version: 1.1.0-rc-20250703.1]",
|
|
3893
|
+
"[buildTime: 2025-07-03 01:48:11]"
|
|
3701
3894
|
);
|
|
3702
3895
|
export {
|
|
3703
3896
|
productItem as default
|