@polyv/product-ui 1.0.0-rc-20250612.4 → 1.2.0-rc-20250724.2
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 +7 -3
- package/address-edit.es.js +1194 -1143
- package/address-edit.umd.js +7 -3
- package/address-item.cjs.js +2 -2
- package/address-item.es.js +12 -12
- package/address-item.umd.js +4 -3
- package/address-list.cjs.js +3 -3
- package/address-list.es.js +36 -18
- package/address-list.umd.js +3 -3
- package/big-card-popup.cjs.js +11 -0
- package/big-card-popup.es.d.ts +3 -0
- package/big-card-popup.es.js +4439 -0
- package/big-card-popup.umd.js +11 -0
- package/index.cjs.js +7 -3
- package/index.es.js +2644 -1847
- package/index.umd.js +7 -3
- package/mobile-product-pendant.cjs.js +3 -3
- package/mobile-product-pendant.es.js +46 -36
- package/mobile-product-pendant.umd.js +3 -3
- package/order-confirm.cjs.js +5 -3
- package/order-confirm.es.js +311 -293
- package/order-confirm.umd.js +5 -3
- package/order-detail.cjs.js +5 -3
- package/order-detail.es.js +311 -293
- package/order-detail.umd.js +5 -3
- package/order-item.cjs.js +2 -2
- package/order-item.es.js +27 -9
- package/order-item.umd.js +4 -3
- package/order-list-popup.cjs.js +5 -3
- package/order-list-popup.es.js +329 -297
- package/order-list-popup.umd.js +5 -3
- package/order-list.cjs.js +3 -3
- package/order-list.es.js +27 -9
- package/order-list.umd.js +3 -3
- package/order-popup.cjs.js +7 -3
- package/order-popup.es.js +1215 -1156
- package/order-popup.umd.js +7 -3
- package/package.json +3 -2
- package/pc-product-pendant.cjs.js +3 -3
- package/pc-product-pendant.es.js +27 -9
- package/pc-product-pendant.umd.js +3 -3
- package/product-button.cjs.js +3 -3
- package/product-button.es.js +318 -267
- package/product-button.umd.js +3 -3
- package/product-detail-popup.cjs.js +5 -3
- package/product-detail-popup.es.js +560 -473
- package/product-detail-popup.umd.js +5 -3
- package/product-detail.cjs.js +5 -3
- package/product-detail.es.js +632 -553
- package/product-detail.umd.js +5 -3
- package/product-iframe-link-popup.cjs.js +5 -3
- package/product-iframe-link-popup.es.js +296 -282
- package/product-iframe-link-popup.umd.js +5 -3
- package/product-item.cjs.js +5 -3
- package/product-item.es.js +720 -494
- package/product-item.umd.js +5 -3
- package/product-list-popup.cjs.js +5 -3
- package/product-list-popup.es.js +753 -585
- package/product-list-popup.umd.js +5 -3
- package/product-list.cjs.js +5 -3
- package/product-list.es.js +744 -584
- package/product-list.umd.js +5 -3
- package/small-card.cjs.js +10 -0
- package/small-card.es.d.ts +3 -0
- package/small-card.es.js +4496 -0
- package/small-card.umd.js +11 -0
package/product-list.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-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,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAACQMUbvAAAIcUlEQVR4Ae2aS2xVRRjHe/t+gWIL9AWWpFiB2hYoRRRioyaGkLhwY9TEnUs3GhM3xrgwLElcSWIMK10QH/ERdSGpiSywtNVSi00r8mxpS2npgz7vvf7+xzP1cO3l3nvOubc1OZPMnTkzc2a++Z3v+2bOuZOVFYSAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAisMwKhtZRn//79eQUFBZuWlpYKwuFwaU5OTkE0Gg2RzihFtvGZmZnpvr6+xbWSM+OAmpubH2SytUDYFAqFKgSCmK0QiUSsVNd2mVVH+2Gux5eXl//q6em5nklYGQOEtmxnkrsgUGoDCImGDcJKYwEBMBsY2UppJ1l1PcRtfR0dHb9nAlTaATU2NtagLY8SSzRJAyQWhmDFlsUAsiDaZepnhvx3nZ2dV9MJKm2ADh06VLSwsLCTSWwTGAEQHGfelNlgcpyABIK2ObrHhnKPJtn1anPt9u3bn12+fHk+HaDSAqi+vn5DcXHxXiZRbEP4j+YwmTnircXFxSEmOYuTnjXOePfu3fmlpaUbAFZO3WbiHvoqdEBZgUad4E+hoafPnTs34jck3wHt3bt3M8LuQdA8aQR5C45DO+Rkr2Iat1KZjEw1Nzf3CSBtXwWU5rEI5B9+JaTSb6K2vgI6cOBABSB2CQaTCSm1n3A2wo/xpPsAczeRUPerx9k/QP0x4sP0bTTJegiA03w+ZYw/7tdHKnW+AcIsSjGrJgbPExQnJPL93d3dV1IRLFHbpqamVrTzKZgU2aA0F4FaoOxjIA0n6iOZ+pxkGiVq09bWlstm7zHayazkE7L0MNm3zN+9e7ezt7d3NFEfqdaPjIzcqKmpucR4WgiKuN/SItJ84iPl5eUXR0dHPTtu7Ss8h9nZ2XpMKh9Bo8SIIk9ybnJysqu/v3/a8wBxOmAvdBNAp6i+Iy0iMHRIP2X5+fnPxrktpWLPGnTw4MGNaEoNgmah8pbm4G/CLPG9AwMDnvxNMjO5efPmfFVV1WWgPE57PXBpksytuqKiYoL6oWT6idfGswaxTO/gyekdIQIXaU+Uwa6wZM/EG9Tvcvkbxv1WWqRI3oo8sOe8juVJg1pbW8vQnDJpjglAmsIhXzLXmUqHhoauoUnVwKlgTAsUsIqrq6snqLvhVg5PGoT2PGQ0R9qj/PT09J9uhfF6H/J8RR+WiSELrKx3uaNe+nUNSMt6Xl5eiaCYiIB3BgcHF7wI5OXeCxcuTHB/p8DI1Mjr/a5cm0y3/boGVFRUtEFaYzRHkFjqPTlEt5Nw3geYXwRGgBQJ+r4kB+4quAaE9hQYzREktGcpk4453my7uroGqZuUFhlNAtC2eO0TlbsFlM0yXszAEUWBYt8xnmiwTNUDRpA0N2vziJnV6+uCm/FdAaqrq8sTFPY/VpQGYV6ed61uJrDaPcjVI/MyWqQU+bav1jZRWW6iBqvVl5WV6dtxxNTxhEJTU1P6fLEuAuY/jkzyQZLHvG8WuxHOFSANJO1xDsjqteS8Xss8cMalQbYMFiC0qNyNTKaTlO7lBRTX84//MSkd3AMspQ59bqxPKg7zImst+yVuhnGlQUCJYtPrBshqE0eDrO09cCw749qY2mrN45a5AlRSUhKen5+PBSRtjC2LO3A6K/ioJn9jWYcDUEpfMI18rkwMG1/m80bEGRHq3xcy0/sapci32Qa0smHMqAaNjY1F0CJtUy31FYeJiQkBWheOmgdXa5w0sIyMVyRnqsGVBrFiLTq1R3kt/akOnq727Mt2CJCiHLQiYczNeK4AMVAUH7QgDWJHrc2ifNK6MTHke8YAIi9AF7WyZRJQFgLw+rUYYVOmV40oJhfCD+W5EcLPe1paWhoAUmo0R6AwM1fmJbncalDWli1b5gWHdzArzs3NaQVbc0AAeVlQ7LkZ8+rQZN0E14Da29uXsfVljqdEBUeg8EXaNrjab7gRPvaehoaGrZQ1SnsEiaiX1b7z58/3xrZN9to1IA0AmDmB4YxPpLCwUF8TI7W1tWvmrJHlTaM9DhM7kyyM1dp5AqT/0mEUFhhFPqJFKisrpUEZd9j79u17ASj649Joj9Ixvo//uNrEky3zBEiDyBdhWVH8UZQnGB0eHo7yOVaAMmZqwKkDzqvSHltztK6TDZ1IFkS8dr5MQqcxeIHV//EWJDRpIwNux0dd4izBZLzB/SjXeQDGOQGMrQDSptD89fQbS/tbXsfwrEESAFNb4n95Oeoovkh/QWvV6OSltpsjd81qk45A1ztZwj+g7yqiNEZBcxrF9N/zY0xfACFIVJAwNz29d7iutYXTWcQz7I9et699SzCrFzGjU3RYJSoyL/LKzpK+69f3cV9MDIFM0GZRq0abKUBwQVvmup34Gmp/1dS5Sem/kvveIB4hyqqMSek8gEzsOB/uvyf1JfgNKIudbBtyfoF0Os0qgZftSWgjqfgT8TigfiZNOnAwqwWNeZ4bjqk/UuughMlzPcWDeD/VfhMJ4DsgDchkmpjM52T1d4s1GTs1kJROMLlPSC9ghr20v8YRuimus3Qggg9y1ZRX42OepqiFqCPD0harD/IWIMqlOUO0e5sFYYBrX0NaAElCnYdmVTuN8Ie5tFYXUjO5lYnGlIVpH6/OCdeYk9p+TR8foTnDpL6HtAEykuJMjzCJk1wbbTITdUILU2/K75fCbwXgDfIn8TffmLHSkaYdkBEaUK8A6iWunyRaEByTXYHiLCO/YkaOe65T/CE7ZB1USHvIGCAzE1ahw0zwKLD2UHaIuALHkbe0i3bG3M5R18c9X/Li2U8+YyHjgJwzkzPGuW5jJ6xz0PCI1lAvOHdw2tKUKTaefWfPnk3bMT6nPEE+IBAQCAgEBAICAYGAQEAgIBAQCAgEBAIC/wsCfwM3LbhUlkvVLgAAAABJRU5ErkJggg==);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}.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-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-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;-webkit-tap-highlight-color:transparent;-webkit-focus-ring-color:transparent;tap-highlight-color:transparent;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--explained-cover{z-index:12}.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;flex-wrap:wrap;gap:2px;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px;line-height:18px;word-break:break-all}.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{color:#0006;font-size:12px;line-height:14px;text-decoration:line-through;word-break:break-all}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}.plv-product-button,.plv-product-button__render{position:relative}.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:56px;height:36px!important;padding:0 16px;border-radius:4px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s ease-in-out;transition:border-color .35s ease-in-out;position:relative;margin-right:16px;margin-bottom:8px;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 .plv-radio__label{padding-left:0;font-size:12px;float:none;-webkit-transition:color .35s ease-in-out;transition:color .35s ease-in-out}.plv-radio--border:hover{border-color:#3f76fc;-webkit-transition:border-color .35s ease-in-out;transition:border-color .35s ease-in-out}.plv-radio--border:hover .plv-radio__label{-webkit-transition:color .35s ease-in-out;transition:color .35s ease-in-out;color:#3f76fc}.plv-radio--border.plv-radio--checked{border-width:1px;border-color:#3f76fc;background:#3f76fc1a}.plv-radio--border.plv-radio--checked:hover{border-color:#3f76fc}.plv-radio--border.plv-radio--checked .plv-radio__label{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{opacity:.6}.plv-radio--border.plv-radio--disabled:hover{border-color:#e5e5e5}.plv-radio--border.plv-radio--disabled:hover .plv-radio__label{color:#969ba5}.plv-radio--border.plv-radio--disabled.plv-radio--checked:hover{border-color:#3f76fc}.plv-radio--border.plv-radio--disabled.plv-radio--checked:hover .plv-radio__label{color:#3f76fc}.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5;pointer-events:none}.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;min-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-shrink:0;width:100px;height:100px;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;gap:4px;justify-content:space-between;align-items:flex-end;margin-top:auto}.plv-product-item__position-detail-button{position:relative;z-index:12;box-sizing:border-box;width:64px;max-width:64px;height:24px;margin-right:12px;margin-left:auto;padding:0 4px;border:1px solid rgba(0,0,0,.2);border-radius:456px;background:transparent;color:#0009;font-size:12px;line-height:23px;text-align:center;cursor:pointer;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__explained--no-cover-position{margin-left:0}.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 { getCurrentInstance, computed, inject, unref, ref, defineComponent, onBeforeUnmount, onMounted, watch, nextTick, onUnmounted, provide,
|
|
42
|
+
import { getCurrentInstance, computed, inject, unref, ref, defineComponent, onBeforeUnmount, onMounted, watch, nextTick, 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
|
}
|
|
@@ -1040,12 +1040,12 @@ function getCurrentUAInfo() {
|
|
|
1040
1040
|
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
1041
1041
|
}
|
|
1042
1042
|
const ua = navigator.userAgent.toLowerCase();
|
|
1043
|
-
const uaInfo = getCurrentUAInfo();
|
|
1044
|
-
const isAndroid = uaInfo.os.isAndroid;
|
|
1045
|
-
const isIOS = uaInfo.os.isIOS;
|
|
1046
|
-
const weixinVersion = uaInfo.client.version;
|
|
1047
|
-
const isWeixin = uaInfo.client.isWx;
|
|
1048
|
-
const isWorkWeixin = uaInfo.client.isWxWork;
|
|
1043
|
+
const uaInfo$1 = getCurrentUAInfo();
|
|
1044
|
+
const isAndroid$1 = uaInfo$1.os.isAndroid;
|
|
1045
|
+
const isIOS$1 = uaInfo$1.os.isIOS;
|
|
1046
|
+
const weixinVersion = uaInfo$1.client.version;
|
|
1047
|
+
const isWeixin = uaInfo$1.client.isWx;
|
|
1048
|
+
const isWorkWeixin = uaInfo$1.client.isWxWork;
|
|
1049
1049
|
const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
|
|
1050
1050
|
function __isMobile() {
|
|
1051
1051
|
const ua2 = navigator.userAgent;
|
|
@@ -1062,7 +1062,7 @@ function __isMobile() {
|
|
|
1062
1062
|
function __isTablet() {
|
|
1063
1063
|
const ua2 = navigator.userAgent;
|
|
1064
1064
|
if (/(?:iPad|PlayBook)/.test(ua2)) return true;
|
|
1065
|
-
if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1065
|
+
if (uaInfo$1.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1066
1066
|
return false;
|
|
1067
1067
|
}
|
|
1068
1068
|
const isMob = __isMobile();
|
|
@@ -2186,6 +2186,7 @@ const useGlobalInject = () => {
|
|
|
2186
2186
|
};
|
|
2187
2187
|
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": "已确认收货" };
|
|
2188
2188
|
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
2189
|
+
const bigCard$5 = { "title": "商品推荐" };
|
|
2189
2190
|
const zhCNLang = {
|
|
2190
2191
|
"common.confirm": "确认",
|
|
2191
2192
|
"common.cancel": "取消",
|
|
@@ -2212,11 +2213,14 @@ const zhCNLang = {
|
|
|
2212
2213
|
"product.disableBuy": "暂不支持购买",
|
|
2213
2214
|
"product.allProduct": "全部商品",
|
|
2214
2215
|
"product.stock.soldOut": "已抢光",
|
|
2216
|
+
"product.position.detail": "职位详情",
|
|
2215
2217
|
order: order$5,
|
|
2216
|
-
addressEdit: addressEdit$5
|
|
2218
|
+
addressEdit: addressEdit$5,
|
|
2219
|
+
bigCard: bigCard$5
|
|
2217
2220
|
};
|
|
2218
2221
|
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": "已確認收貨" };
|
|
2219
2222
|
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
2223
|
+
const bigCard$4 = { "title": "商品推薦" };
|
|
2220
2224
|
const zhTWLang = {
|
|
2221
2225
|
"common.confirm": "確認",
|
|
2222
2226
|
"common.cancel": "取消",
|
|
@@ -2243,11 +2247,14 @@ const zhTWLang = {
|
|
|
2243
2247
|
"product.disableBuy": "暫不支持購買",
|
|
2244
2248
|
"product.allProduct": "全部商品",
|
|
2245
2249
|
"product.stock.soldOut": "已搶光",
|
|
2250
|
+
"product.position.detail": "職位詳情",
|
|
2246
2251
|
order: order$4,
|
|
2247
|
-
addressEdit: addressEdit$4
|
|
2252
|
+
addressEdit: addressEdit$4,
|
|
2253
|
+
bigCard: bigCard$4
|
|
2248
2254
|
};
|
|
2249
2255
|
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" };
|
|
2250
2256
|
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" };
|
|
2257
|
+
const bigCard$3 = { "title": "Top Picks" };
|
|
2251
2258
|
const enLang = {
|
|
2252
2259
|
"common.confirm": "Confirm",
|
|
2253
2260
|
"common.cancel": "Cancel",
|
|
@@ -2274,11 +2281,14 @@ const enLang = {
|
|
|
2274
2281
|
"product.disableBuy": "Purchase not supported",
|
|
2275
2282
|
"product.allProduct": "Products",
|
|
2276
2283
|
"product.stock.soldOut": "Sold Out",
|
|
2284
|
+
"product.position.detail": "Job Details",
|
|
2277
2285
|
order: order$3,
|
|
2278
|
-
addressEdit: addressEdit$3
|
|
2286
|
+
addressEdit: addressEdit$3,
|
|
2287
|
+
bigCard: bigCard$3
|
|
2279
2288
|
};
|
|
2280
2289
|
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": "確認受け取り完了" };
|
|
2281
2290
|
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
2291
|
+
const bigCard$2 = { "title": "商品推薦" };
|
|
2282
2292
|
const jaLang = {
|
|
2283
2293
|
"common.confirm": "確認",
|
|
2284
2294
|
"common.cancel": "キャンセル",
|
|
@@ -2305,11 +2315,14 @@ const jaLang = {
|
|
|
2305
2315
|
"product.disableBuy": "購入不可",
|
|
2306
2316
|
"product.allProduct": "すべての商品",
|
|
2307
2317
|
"product.stock.soldOut": "売り切れ",
|
|
2318
|
+
"product.position.detail": "職務詳細",
|
|
2308
2319
|
order: order$2,
|
|
2309
|
-
addressEdit: addressEdit$2
|
|
2320
|
+
addressEdit: addressEdit$2,
|
|
2321
|
+
bigCard: bigCard$2
|
|
2310
2322
|
};
|
|
2311
2323
|
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": "확인 받기 완료" };
|
|
2312
2324
|
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
2325
|
+
const bigCard$1 = { "title": "상품 추천" };
|
|
2313
2326
|
const koLang = {
|
|
2314
2327
|
"common.confirm": "확인",
|
|
2315
2328
|
"common.cancel": "취소",
|
|
@@ -2336,11 +2349,14 @@ const koLang = {
|
|
|
2336
2349
|
"product.disableBuy": "구매 불가",
|
|
2337
2350
|
"product.allProduct": "모든 상품",
|
|
2338
2351
|
"product.stock.soldOut": "품절",
|
|
2352
|
+
"product.position.detail": "직무 상세",
|
|
2339
2353
|
order: order$1,
|
|
2340
|
-
addressEdit: addressEdit$1
|
|
2354
|
+
addressEdit: addressEdit$1,
|
|
2355
|
+
bigCard: bigCard$1
|
|
2341
2356
|
};
|
|
2342
2357
|
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": "Получение подтверждено" };
|
|
2343
2358
|
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
2359
|
+
const bigCard = { "title": "Товары" };
|
|
2344
2360
|
const ruLang = {
|
|
2345
2361
|
"common.confirm": "Подтвердить",
|
|
2346
2362
|
"common.cancel": "Отмена",
|
|
@@ -2367,8 +2383,10 @@ const ruLang = {
|
|
|
2367
2383
|
"product.disableBuy": "Покупка временно недоступна",
|
|
2368
2384
|
"product.allProduct": "Все товары",
|
|
2369
2385
|
"product.stock.soldOut": "Распродано",
|
|
2386
|
+
"product.position.detail": "Детали вакансии",
|
|
2370
2387
|
order,
|
|
2371
|
-
addressEdit
|
|
2388
|
+
addressEdit,
|
|
2389
|
+
bigCard
|
|
2372
2390
|
};
|
|
2373
2391
|
const fullI18nData = {
|
|
2374
2392
|
[LangType.ZH_CN]: zhCNLang,
|
|
@@ -2774,7 +2792,8 @@ function getProductTargetExport(productTarget) {
|
|
|
2774
2792
|
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
2775
2793
|
ProductMediaType: productTarget.ProductMediaType,
|
|
2776
2794
|
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
2777
|
-
ProductEvents: productTarget.ProductEvents
|
|
2795
|
+
ProductEvents: productTarget.ProductEvents,
|
|
2796
|
+
ProductPushRule: productTarget.ProductPushRule
|
|
2778
2797
|
};
|
|
2779
2798
|
}
|
|
2780
2799
|
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
@@ -2839,17 +2858,25 @@ const useProductStock = (options) => {
|
|
|
2839
2858
|
ProductBuyType = result.ProductBuyType;
|
|
2840
2859
|
}
|
|
2841
2860
|
function getStock(target) {
|
|
2842
|
-
if (!ProductType || !ProductBuyType) {
|
|
2861
|
+
if (!ProductType || !ProductBuyType || !target) {
|
|
2843
2862
|
return {
|
|
2844
2863
|
enabled: false,
|
|
2845
2864
|
stock: 0
|
|
2846
2865
|
};
|
|
2847
2866
|
}
|
|
2848
|
-
if (
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2867
|
+
if (target.productType === ProductType.Normal) {
|
|
2868
|
+
if (target.buyType === ProductBuyType.Link && target.forceShowSoldOut) {
|
|
2869
|
+
return {
|
|
2870
|
+
enabled: true,
|
|
2871
|
+
stock: 0
|
|
2872
|
+
};
|
|
2873
|
+
}
|
|
2874
|
+
if (target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
|
|
2875
|
+
return {
|
|
2876
|
+
enabled: true,
|
|
2877
|
+
stock: target.stock
|
|
2878
|
+
};
|
|
2879
|
+
}
|
|
2853
2880
|
}
|
|
2854
2881
|
return {
|
|
2855
2882
|
enabled: false,
|
|
@@ -2873,6 +2900,37 @@ const useProductStock = (options) => {
|
|
|
2873
2900
|
isSoldOut
|
|
2874
2901
|
};
|
|
2875
2902
|
};
|
|
2903
|
+
const useProductExplain = (options) => {
|
|
2904
|
+
const { props } = options;
|
|
2905
|
+
const productExplainEnabled = ref(false);
|
|
2906
|
+
function getProductExplainEnabled() {
|
|
2907
|
+
return __async(this, null, function* () {
|
|
2908
|
+
if (!props.productTarget) return;
|
|
2909
|
+
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
2910
|
+
productExplainEnabled.value = enabled;
|
|
2911
|
+
});
|
|
2912
|
+
}
|
|
2913
|
+
function handleClickExplain(product) {
|
|
2914
|
+
return __async(this, null, function* () {
|
|
2915
|
+
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
2916
|
+
props.productConfig.customClickExplainHandler(product);
|
|
2917
|
+
return;
|
|
2918
|
+
}
|
|
2919
|
+
if (!props.productTarget) return;
|
|
2920
|
+
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
2921
|
+
if (url) {
|
|
2922
|
+
window.open(url, "_blank");
|
|
2923
|
+
}
|
|
2924
|
+
});
|
|
2925
|
+
}
|
|
2926
|
+
onMounted(() => {
|
|
2927
|
+
getProductExplainEnabled();
|
|
2928
|
+
});
|
|
2929
|
+
return {
|
|
2930
|
+
productExplainEnabled,
|
|
2931
|
+
handleClickExplain
|
|
2932
|
+
};
|
|
2933
|
+
};
|
|
2876
2934
|
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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";
|
|
2877
2935
|
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
2878
2936
|
__name: "product-explain",
|
|
@@ -3039,12 +3097,22 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
3039
3097
|
if (isFreeProduct.value) return $t("product.price.free");
|
|
3040
3098
|
return props.product.realPrice;
|
|
3041
3099
|
});
|
|
3042
|
-
|
|
3100
|
+
const originPrice = computed(() => {
|
|
3101
|
+
if (!props.product || props.product.productType !== ProductType.Normal) return;
|
|
3102
|
+
if (props.product.originPriceType === ProductPriceType.Amount) {
|
|
3103
|
+
if (!props.product.originPrice) {
|
|
3104
|
+
return;
|
|
3105
|
+
}
|
|
3106
|
+
return `¥${props.product.originPrice}`;
|
|
3107
|
+
}
|
|
3108
|
+
return props.product.customOriginalPrice;
|
|
3109
|
+
});
|
|
3110
|
+
return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice, originPrice };
|
|
3043
3111
|
}
|
|
3044
3112
|
});
|
|
3045
3113
|
var _sfc_render$4 = function render7() {
|
|
3046
3114
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
3047
|
-
return _vm.product ? _c("div", { staticClass: "plv-product-c-item__price-area" }, [_vm.product.productType === _setup.ProductType.Normal ? [_c("span", { staticClass: "plv-product-c-item__price" }, [!_setup.isFreeProduct && _vm.product.priceType === _setup.ProductPriceType.Amount ? _c("span", { staticClass: "plv-product-c-item__price-symbol" }, [_vm._v("¥")]) : _vm._e(), _vm.product.priceVisible || _setup.isFreeProduct ? _c("span", [_vm.product.priceType === _setup.ProductPriceType.Custom ? _c("span", { staticClass: "plv-product-c-item__price-custom" }, [_vm._v(_vm._s(_vm.product.customPrice))]) : _c("span", { staticClass: "plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.displayPrice))])]) : [_c("span", { staticClass: "plv-product-c-item__price-placeholder plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.hiddenPriceMarks))]), _c("span", { staticClass: "plv-product-c-item__placeholder-text plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.$t("product.price.hidden")))])]], 2),
|
|
3115
|
+
return _vm.product ? _c("div", { staticClass: "plv-product-c-item__price-area" }, [_vm.product.productType === _setup.ProductType.Normal ? [_c("span", { staticClass: "plv-product-c-item__price" }, [!_setup.isFreeProduct && _vm.product.priceType === _setup.ProductPriceType.Amount ? _c("span", { staticClass: "plv-product-c-item__price-symbol" }, [_vm._v("¥")]) : _vm._e(), _vm.product.priceVisible || _setup.isFreeProduct ? _c("span", [_vm.product.priceType === _setup.ProductPriceType.Custom ? _c("span", { staticClass: "plv-product-c-item__price-custom" }, [_vm._v(_vm._s(_vm.product.customPrice))]) : _c("span", { staticClass: "plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.displayPrice))])]) : [_c("span", { staticClass: "plv-product-c-item__price-placeholder plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.hiddenPriceMarks))]), _c("span", { staticClass: "plv-product-c-item__placeholder-text plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.$t("product.price.hidden")))])]], 2), _setup.originPrice ? _c("span", { staticClass: "plv-product-c-item__original-price" }, [_vm._v(_vm._s(_setup.originPrice))]) : _vm._e()] : _vm._e(), _vm.product.productType === _setup.ProductType.Finance ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.yield) + " ")])] : _vm._e(), _vm.product.productType === _setup.ProductType.Position ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.treatment) + " ")])] : _vm._e()], 2) : _vm._e();
|
|
3048
3116
|
};
|
|
3049
3117
|
var _sfc_staticRenderFns$4 = [];
|
|
3050
3118
|
var __component__$4 = /* @__PURE__ */ normalizeComponent(
|
|
@@ -3101,6 +3169,104 @@ function concat(i2, r2, t2) {
|
|
|
3101
3169
|
let e = n2.search || "";
|
|
3102
3170
|
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
3103
3171
|
}
|
|
3172
|
+
var __awaiter = function(i2, n2, o2, t2) {
|
|
3173
|
+
return new (o2 || (o2 = Promise))(function(e, a2) {
|
|
3174
|
+
function r2(i3) {
|
|
3175
|
+
try {
|
|
3176
|
+
k2(t2.next(i3));
|
|
3177
|
+
} catch (i4) {
|
|
3178
|
+
a2(i4);
|
|
3179
|
+
}
|
|
3180
|
+
}
|
|
3181
|
+
function l2(i3) {
|
|
3182
|
+
try {
|
|
3183
|
+
k2(t2.throw(i3));
|
|
3184
|
+
} catch (i4) {
|
|
3185
|
+
a2(i4);
|
|
3186
|
+
}
|
|
3187
|
+
}
|
|
3188
|
+
function k2(i3) {
|
|
3189
|
+
var n3;
|
|
3190
|
+
i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
|
|
3191
|
+
i4(n3);
|
|
3192
|
+
})).then(r2, l2);
|
|
3193
|
+
}
|
|
3194
|
+
k2((t2 = t2.apply(i2, n2 || [])).next());
|
|
3195
|
+
});
|
|
3196
|
+
};
|
|
3197
|
+
const uaInfo = getCurrentUAInfo();
|
|
3198
|
+
const isAndroid = uaInfo.os.isAndroid;
|
|
3199
|
+
const isIOS = uaInfo.os.isIOS;
|
|
3200
|
+
var LinkType;
|
|
3201
|
+
!function(i2) {
|
|
3202
|
+
i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
|
|
3203
|
+
}(LinkType || (LinkType = {}));
|
|
3204
|
+
var LinkJumpWay;
|
|
3205
|
+
function getNativeToPointMallFn() {
|
|
3206
|
+
var i2, n2, o2, t2;
|
|
3207
|
+
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;
|
|
3208
|
+
}
|
|
3209
|
+
function toNativeLink(i2) {
|
|
3210
|
+
const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
|
|
3211
|
+
if (e) {
|
|
3212
|
+
let i3 = isAndroid ? n2 : o2;
|
|
3213
|
+
const t3 = encodeURIComponent(location.href);
|
|
3214
|
+
i3 = concat(i3, { plt_back_uri: t3 });
|
|
3215
|
+
e(JSON.stringify({ url: i3 }));
|
|
3216
|
+
} else window.open(t2, "_blank", "noopener=yes");
|
|
3217
|
+
}
|
|
3218
|
+
function toPlvWebviewBridge(i2) {
|
|
3219
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3220
|
+
const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
|
|
3221
|
+
e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
|
|
3222
|
+
});
|
|
3223
|
+
}
|
|
3224
|
+
function toMultiPlatformLink(i2) {
|
|
3225
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3226
|
+
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;
|
|
3227
|
+
let u2 = false;
|
|
3228
|
+
try {
|
|
3229
|
+
u2 = (yield null == o2 ? void 0 : o2()) || false;
|
|
3230
|
+
} catch (i3) {
|
|
3231
|
+
u2 = false;
|
|
3232
|
+
}
|
|
3233
|
+
u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
|
|
3234
|
+
});
|
|
3235
|
+
}
|
|
3236
|
+
!function(i2) {
|
|
3237
|
+
i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
|
|
3238
|
+
}(LinkJumpWay || (LinkJumpWay = {}));
|
|
3239
|
+
function formatLink(i2, n2) {
|
|
3240
|
+
let o2 = {};
|
|
3241
|
+
if (n2) {
|
|
3242
|
+
const t2 = n2(i2);
|
|
3243
|
+
o2 = Object.assign({}, o2, t2);
|
|
3244
|
+
}
|
|
3245
|
+
return concat(i2, o2);
|
|
3246
|
+
}
|
|
3247
|
+
function navigateToLink(i2) {
|
|
3248
|
+
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;
|
|
3249
|
+
if (s2 !== LinkType.Native) {
|
|
3250
|
+
if (u2) {
|
|
3251
|
+
let i3 = "";
|
|
3252
|
+
const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
|
|
3253
|
+
switch (s2) {
|
|
3254
|
+
case LinkType.Normal:
|
|
3255
|
+
i3 = o3;
|
|
3256
|
+
break;
|
|
3257
|
+
case LinkType.MultiPlatform:
|
|
3258
|
+
i3 = r3 || t3;
|
|
3259
|
+
}
|
|
3260
|
+
let u3 = null;
|
|
3261
|
+
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 });
|
|
3262
|
+
}
|
|
3263
|
+
if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
|
|
3264
|
+
else {
|
|
3265
|
+
const { link: i3, jumpWay: t3 } = n2;
|
|
3266
|
+
o2(formatLink(i3, k2), t3);
|
|
3267
|
+
}
|
|
3268
|
+
} else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
|
|
3269
|
+
}
|
|
3104
3270
|
const useTrackEvent = (iarCore) => {
|
|
3105
3271
|
const { injectData } = useGlobalInject();
|
|
3106
3272
|
function trackEvent(data) {
|
|
@@ -3114,7 +3280,7 @@ const useTrackEvent = (iarCore) => {
|
|
|
3114
3280
|
trackEvent
|
|
3115
3281
|
};
|
|
3116
3282
|
};
|
|
3117
|
-
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
3283
|
+
const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = [""", "'", "&", "<", ">", " "], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
3118
3284
|
htmlChars.forEach((n2, e) => {
|
|
3119
3285
|
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
3120
3286
|
});
|
|
@@ -3169,7 +3335,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3169
3335
|
}
|
|
3170
3336
|
const wx = yield injectData.getWeixinSdk();
|
|
3171
3337
|
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
3172
|
-
url
|
|
3338
|
+
url: url.startsWith("/") ? url : `/${url}`
|
|
3173
3339
|
});
|
|
3174
3340
|
return;
|
|
3175
3341
|
});
|
|
@@ -3224,7 +3390,9 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3224
3390
|
watch(
|
|
3225
3391
|
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
3226
3392
|
() => {
|
|
3227
|
-
|
|
3393
|
+
setTimeout(() => {
|
|
3394
|
+
createWxMiniProgramButton();
|
|
3395
|
+
}, 500);
|
|
3228
3396
|
},
|
|
3229
3397
|
{
|
|
3230
3398
|
immediate: true
|
|
@@ -3241,25 +3409,25 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3241
3409
|
};
|
|
3242
3410
|
};
|
|
3243
3411
|
const useAppNative = () => {
|
|
3244
|
-
function
|
|
3412
|
+
function getNativeToPointMallFn2() {
|
|
3245
3413
|
var _a, _b, _c, _d;
|
|
3246
|
-
if (isAndroid) {
|
|
3414
|
+
if (isAndroid$1) {
|
|
3247
3415
|
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
3248
|
-
} else if (isIOS) {
|
|
3416
|
+
} else if (isIOS$1) {
|
|
3249
3417
|
return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
|
|
3250
3418
|
}
|
|
3251
3419
|
}
|
|
3252
3420
|
function supportNativeToPointMall() {
|
|
3253
|
-
return !!
|
|
3421
|
+
return !!getNativeToPointMallFn2();
|
|
3254
3422
|
}
|
|
3255
3423
|
const supportAppNative = computed(() => {
|
|
3256
3424
|
return supportNativeToPointMall();
|
|
3257
3425
|
});
|
|
3258
|
-
function
|
|
3426
|
+
function toNativeLink2(options) {
|
|
3259
3427
|
const { androidLink, iosLink, otherLink } = options;
|
|
3260
|
-
const nativePointMallFn =
|
|
3428
|
+
const nativePointMallFn = getNativeToPointMallFn2();
|
|
3261
3429
|
if (nativePointMallFn) {
|
|
3262
|
-
let url = isAndroid ? androidLink : iosLink;
|
|
3430
|
+
let url = isAndroid$1 ? androidLink : iosLink;
|
|
3263
3431
|
const pltBackUri = encodeURIComponent(location.href);
|
|
3264
3432
|
url = concat(url, {
|
|
3265
3433
|
plt_back_uri: pltBackUri
|
|
@@ -3273,60 +3441,10 @@ const useAppNative = () => {
|
|
|
3273
3441
|
window.open(otherLink, "_blank", "noopener=yes");
|
|
3274
3442
|
}
|
|
3275
3443
|
return {
|
|
3276
|
-
getNativeToPointMallFn,
|
|
3444
|
+
getNativeToPointMallFn: getNativeToPointMallFn2,
|
|
3277
3445
|
supportNativeToPointMall,
|
|
3278
3446
|
supportAppNative,
|
|
3279
|
-
toNativeLink
|
|
3280
|
-
};
|
|
3281
|
-
};
|
|
3282
|
-
const usePolyvWebview = () => {
|
|
3283
|
-
const { injectData } = useGlobalInject();
|
|
3284
|
-
const isPlvWebview = ref(false);
|
|
3285
|
-
const supportPlvWebview = computed(() => {
|
|
3286
|
-
return isPlvWebview.value;
|
|
3287
|
-
});
|
|
3288
|
-
function getPlvWebviewBridge() {
|
|
3289
|
-
return __async(this, null, function* () {
|
|
3290
|
-
if (injectData.getPlvWebviewBridge) {
|
|
3291
|
-
return yield injectData.getPlvWebviewBridge();
|
|
3292
|
-
}
|
|
3293
|
-
});
|
|
3294
|
-
}
|
|
3295
|
-
function toPlvWebviewBridge(options) {
|
|
3296
|
-
return __async(this, null, function* () {
|
|
3297
|
-
if (!supportPlvWebview.value) {
|
|
3298
|
-
return;
|
|
3299
|
-
}
|
|
3300
|
-
let plvWebviewDataSize = {
|
|
3301
|
-
width: 90,
|
|
3302
|
-
height: 160
|
|
3303
|
-
};
|
|
3304
|
-
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
3305
|
-
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
3306
|
-
}
|
|
3307
|
-
const webviewBridge = yield getPlvWebviewBridge();
|
|
3308
|
-
if (!webviewBridge) {
|
|
3309
|
-
return;
|
|
3310
|
-
}
|
|
3311
|
-
webviewBridge.sendData("clickProduct", {
|
|
3312
|
-
width: plvWebviewDataSize.width,
|
|
3313
|
-
height: plvWebviewDataSize.height,
|
|
3314
|
-
newPage: true,
|
|
3315
|
-
link: options.link,
|
|
3316
|
-
data: options.data
|
|
3317
|
-
});
|
|
3318
|
-
});
|
|
3319
|
-
}
|
|
3320
|
-
onMounted(() => {
|
|
3321
|
-
if (injectData.isPlvWebview) {
|
|
3322
|
-
isPlvWebview.value = injectData.isPlvWebview();
|
|
3323
|
-
}
|
|
3324
|
-
});
|
|
3325
|
-
return {
|
|
3326
|
-
isPlvWebview,
|
|
3327
|
-
supportPlvWebview,
|
|
3328
|
-
getPlvWebviewBridge,
|
|
3329
|
-
toPlvWebviewBridge
|
|
3447
|
+
toNativeLink: toNativeLink2
|
|
3330
3448
|
};
|
|
3331
3449
|
};
|
|
3332
3450
|
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
@@ -3345,12 +3463,12 @@ const useProductButton = (options) => {
|
|
|
3345
3463
|
const { isSoldOut } = useProductStock({
|
|
3346
3464
|
product: () => props.productData
|
|
3347
3465
|
});
|
|
3348
|
-
const { getEmitter } = useGlobalInject();
|
|
3466
|
+
const { getEmitter, injectData } = useGlobalInject();
|
|
3349
3467
|
const { $t } = useI18n();
|
|
3350
3468
|
const productConfig = computed(() => {
|
|
3351
3469
|
return props.productConfig;
|
|
3352
3470
|
});
|
|
3353
|
-
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
3471
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
|
|
3354
3472
|
getButtonOptions: () => {
|
|
3355
3473
|
const productData = props.productData;
|
|
3356
3474
|
return {
|
|
@@ -3361,10 +3479,9 @@ const useProductButton = (options) => {
|
|
|
3361
3479
|
},
|
|
3362
3480
|
launchCallback: () => sendClickEvent()
|
|
3363
3481
|
});
|
|
3364
|
-
const { supportAppNative
|
|
3365
|
-
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
3482
|
+
const { supportAppNative } = useAppNative();
|
|
3366
3483
|
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
3367
|
-
const { ProductBuyType, ProductType
|
|
3484
|
+
const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
|
|
3368
3485
|
const isDirectBuy = computed(() => {
|
|
3369
3486
|
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
3370
3487
|
});
|
|
@@ -3391,13 +3508,13 @@ const useProductButton = (options) => {
|
|
|
3391
3508
|
if (isDirectBuy.value) {
|
|
3392
3509
|
return false;
|
|
3393
3510
|
}
|
|
3394
|
-
if (productData.linkType ===
|
|
3511
|
+
if (productData.linkType === LinkType.Normal) {
|
|
3395
3512
|
return !productData.link;
|
|
3396
3513
|
}
|
|
3397
|
-
if (productData.linkType ===
|
|
3514
|
+
if (productData.linkType === LinkType.MultiPlatform) {
|
|
3398
3515
|
return isMultiPlatformDisabled.value;
|
|
3399
3516
|
}
|
|
3400
|
-
if (productData.linkType ===
|
|
3517
|
+
if (productData.linkType === LinkType.Native) {
|
|
3401
3518
|
if (supportAppNative.value) {
|
|
3402
3519
|
return !productData.androidLink && !productData.iosLink;
|
|
3403
3520
|
}
|
|
@@ -3456,9 +3573,26 @@ const useProductButton = (options) => {
|
|
|
3456
3573
|
}
|
|
3457
3574
|
return concat(url, urlParams);
|
|
3458
3575
|
}
|
|
3576
|
+
function getLinkData() {
|
|
3577
|
+
const productData = props.productData;
|
|
3578
|
+
const linkData = {
|
|
3579
|
+
linkType: productData.linkType,
|
|
3580
|
+
jumpWay: productData.jumpWay,
|
|
3581
|
+
link: productData.link,
|
|
3582
|
+
pcLink: productData.pcLink,
|
|
3583
|
+
mobileLink: productData.mobileLink,
|
|
3584
|
+
mobileAppLink: productData.mobileAppLink,
|
|
3585
|
+
androidLink: productData.androidLink,
|
|
3586
|
+
iosLink: productData.iosLink,
|
|
3587
|
+
otherLink: productData.otherLink,
|
|
3588
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
3589
|
+
wxMiniprogramAppId: productData.wxMiniprogramAppId,
|
|
3590
|
+
wxMiniprogramLink: productData.wxMiniprogramLink
|
|
3591
|
+
};
|
|
3592
|
+
return linkData;
|
|
3593
|
+
}
|
|
3459
3594
|
function onClickLinkBtn() {
|
|
3460
3595
|
const productData = props.productData;
|
|
3461
|
-
const { linkType } = productData;
|
|
3462
3596
|
sendClickEvent();
|
|
3463
3597
|
if (productConfig.value.customClickButtonHandler) {
|
|
3464
3598
|
productConfig.value.customClickButtonHandler(productData);
|
|
@@ -3468,70 +3602,28 @@ const useProductButton = (options) => {
|
|
|
3468
3602
|
toDirectBuy();
|
|
3469
3603
|
return;
|
|
3470
3604
|
}
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
case ProductLinkType.Normal:
|
|
3484
|
-
linkTo = link;
|
|
3485
|
-
break;
|
|
3486
|
-
case ProductLinkType.MultiPlatform:
|
|
3487
|
-
linkTo = mobileAppLink || mobileLink;
|
|
3488
|
-
break;
|
|
3489
|
-
}
|
|
3490
|
-
let otherData = null;
|
|
3491
|
-
if (productData.linkType !== ProductLinkType.Normal) {
|
|
3492
|
-
otherData = {
|
|
3493
|
-
mobileLink: formatProductLink(mobileLink),
|
|
3494
|
-
wxMiniprogramOriginalId,
|
|
3495
|
-
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
3496
|
-
mobileAppLink: formatProductLink(mobileAppLink)
|
|
3497
|
-
};
|
|
3498
|
-
}
|
|
3499
|
-
toPlvWebviewBridge({
|
|
3500
|
-
link: formatProductLink(linkTo),
|
|
3501
|
-
data: otherData
|
|
3502
|
-
});
|
|
3503
|
-
return;
|
|
3504
|
-
}
|
|
3505
|
-
if (linkType === ProductLinkType.Normal) {
|
|
3506
|
-
const { link, jumpWay } = productData;
|
|
3507
|
-
openLink(formatProductLink(link), jumpWay);
|
|
3508
|
-
return;
|
|
3509
|
-
}
|
|
3510
|
-
if (linkType === ProductLinkType.MultiPlatform) {
|
|
3511
|
-
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
3512
|
-
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
3513
|
-
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
3514
|
-
return;
|
|
3515
|
-
}
|
|
3516
|
-
if (isMobile) {
|
|
3517
|
-
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
3518
|
-
return;
|
|
3519
|
-
}
|
|
3520
|
-
if (!isMobile) {
|
|
3521
|
-
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
3522
|
-
return;
|
|
3523
|
-
}
|
|
3524
|
-
}
|
|
3605
|
+
const linkData = getLinkData();
|
|
3606
|
+
navigateToLink({
|
|
3607
|
+
linkData,
|
|
3608
|
+
getLinkParams: productConfig.value.getLinkParams,
|
|
3609
|
+
openLink,
|
|
3610
|
+
isPlvWebview: injectData.isPlvWebview,
|
|
3611
|
+
isMobile: injectData.isMobile,
|
|
3612
|
+
getPlvWebviewBridge: injectData.getPlvWebviewBridge,
|
|
3613
|
+
getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
|
|
3614
|
+
isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
|
|
3615
|
+
toWxMiniProgram
|
|
3616
|
+
});
|
|
3525
3617
|
}
|
|
3526
3618
|
function openLink(url, jumpWay) {
|
|
3527
3619
|
switch (jumpWay) {
|
|
3528
|
-
case
|
|
3620
|
+
case LinkJumpWay.NewWindow:
|
|
3529
3621
|
window.open(url, "_blank", "noopener=yes");
|
|
3530
3622
|
break;
|
|
3531
|
-
case
|
|
3623
|
+
case LinkJumpWay.CurrentWindow:
|
|
3532
3624
|
window.location.href = url;
|
|
3533
3625
|
break;
|
|
3534
|
-
case
|
|
3626
|
+
case LinkJumpWay.PopUp:
|
|
3535
3627
|
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
3536
3628
|
break;
|
|
3537
3629
|
default:
|
|
@@ -3554,7 +3646,7 @@ const useProductButton = (options) => {
|
|
|
3554
3646
|
name: productData.name,
|
|
3555
3647
|
productId: productData.productId,
|
|
3556
3648
|
productType: productData.productType,
|
|
3557
|
-
productPushRule: data == null ? void 0 : data.pushRule
|
|
3649
|
+
productPushRule: (data == null ? void 0 : data.pushRule) || ""
|
|
3558
3650
|
}
|
|
3559
3651
|
});
|
|
3560
3652
|
props.productTarget.sendProductClickEvent({
|
|
@@ -3640,10 +3732,10 @@ function requirePopperManager() {
|
|
|
3640
3732
|
return t2.d(n3, "a", n3), n3;
|
|
3641
3733
|
}, t2.o = function(e2, n3) {
|
|
3642
3734
|
return Object.prototype.hasOwnProperty.call(e2, n3);
|
|
3643
|
-
}, t2.p = "", t2(t2.s =
|
|
3644
|
-
}({
|
|
3735
|
+
}, t2.p = "", t2(t2.s = 15);
|
|
3736
|
+
}({ 15: function(e, n2, t2) {
|
|
3645
3737
|
t2.r(n2);
|
|
3646
|
-
t2(
|
|
3738
|
+
t2(48);
|
|
3647
3739
|
var r2 = "@@polyvAdminUIzIndex", o2 = { ctx: r2, openPopper: function(e2) {
|
|
3648
3740
|
o2.zIndex++, e2.style.zIndex = o2.zIndex;
|
|
3649
3741
|
}, install: function(e2) {
|
|
@@ -3655,7 +3747,7 @@ function requirePopperManager() {
|
|
|
3655
3747
|
}, set: function(e2) {
|
|
3656
3748
|
window[r2] = e2;
|
|
3657
3749
|
} }), n2.default = o2;
|
|
3658
|
-
},
|
|
3750
|
+
}, 48: function(e, n2, t2) {
|
|
3659
3751
|
} }).default;
|
|
3660
3752
|
return popperManager;
|
|
3661
3753
|
}
|
|
@@ -3694,31 +3786,31 @@ function requireRadio() {
|
|
|
3694
3786
|
return r2.d(e2, "a", e2), e2;
|
|
3695
3787
|
}, r2.o = function(t3, e2) {
|
|
3696
3788
|
return Object.prototype.hasOwnProperty.call(t3, e2);
|
|
3697
|
-
}, r2.p = "", r2(r2.s =
|
|
3789
|
+
}, r2.p = "", r2(r2.s = 160);
|
|
3698
3790
|
}({ 0: function(t2, e, r2) {
|
|
3699
|
-
function n2(t3, e2, r3, n3, o2, i2,
|
|
3700
|
-
var
|
|
3701
|
-
if (e2 && (c2.render = e2, c2.staticRenderFns = r3, c2._compiled = true), n3 && (c2.functional = true), i2 && (c2._scopeId = "data-v-" + i2),
|
|
3702
|
-
(t4 = t4 || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (t4 = __VUE_SSR_CONTEXT__), o2 && o2.call(this, t4), t4 && t4._registeredComponents && t4._registeredComponents.add(
|
|
3703
|
-
}, c2._ssrRegister =
|
|
3704
|
-
o2.call(this, this.$root.$options.shadowRoot);
|
|
3705
|
-
} : o2),
|
|
3706
|
-
c2._injectStyles =
|
|
3791
|
+
function n2(t3, e2, r3, n3, o2, i2, u2, a2) {
|
|
3792
|
+
var s2, c2 = "function" == typeof t3 ? t3.options : t3;
|
|
3793
|
+
if (e2 && (c2.render = e2, c2.staticRenderFns = r3, c2._compiled = true), n3 && (c2.functional = true), i2 && (c2._scopeId = "data-v-" + i2), u2 ? (s2 = function(t4) {
|
|
3794
|
+
(t4 = t4 || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (t4 = __VUE_SSR_CONTEXT__), o2 && o2.call(this, t4), t4 && t4._registeredComponents && t4._registeredComponents.add(u2);
|
|
3795
|
+
}, c2._ssrRegister = s2) : o2 && (s2 = a2 ? function() {
|
|
3796
|
+
o2.call(this, (c2.functional ? this.parent : this).$root.$options.shadowRoot);
|
|
3797
|
+
} : o2), s2) if (c2.functional) {
|
|
3798
|
+
c2._injectStyles = s2;
|
|
3707
3799
|
var l2 = c2.render;
|
|
3708
3800
|
c2.render = function(t4, e3) {
|
|
3709
|
-
return
|
|
3801
|
+
return s2.call(e3), l2(t4, e3);
|
|
3710
3802
|
};
|
|
3711
3803
|
} else {
|
|
3712
3804
|
var f2 = c2.beforeCreate;
|
|
3713
|
-
c2.beforeCreate = f2 ? [].concat(f2,
|
|
3805
|
+
c2.beforeCreate = f2 ? [].concat(f2, s2) : [s2];
|
|
3714
3806
|
}
|
|
3715
3807
|
return { exports: t3, options: c2 };
|
|
3716
3808
|
}
|
|
3717
3809
|
r2.d(e, "a", function() {
|
|
3718
3810
|
return n2;
|
|
3719
3811
|
});
|
|
3720
|
-
},
|
|
3721
|
-
var n2 = { name: "plv-radio", mixins: [r2(
|
|
3812
|
+
}, 104: function(t2, e, r2) {
|
|
3813
|
+
var n2 = { name: "plv-radio", mixins: [r2(16).a], inject: { radioGroup: { default: "" } }, props: { checked: { type: Boolean, default: false }, value: [String, Number, Boolean], label: String, trueLabel: String, falseLabel: String, type: { type: String, default: "", validator: function(t3) {
|
|
3722
3814
|
return -1 !== ["", "border"].indexOf(t3);
|
|
3723
3815
|
} }, disabled: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, corner: { type: Boolean, default: false } }, model: { prop: "checked", event: "change" }, computed: { inGroup: function() {
|
|
3724
3816
|
return !!this.radioGroup;
|
|
@@ -3738,300 +3830,300 @@ function requireRadio() {
|
|
|
3738
3830
|
this.$emit("change", t3);
|
|
3739
3831
|
}, handleClick: function() {
|
|
3740
3832
|
this.isDisabled || this.isReadonly || (this.inGroup ? this.radioGroup.radioClick(this.value) : this.checked || this.emitChange(true), this.blurToValidateItem());
|
|
3741
|
-
} } }, o2 = (r2(
|
|
3833
|
+
} } }, o2 = (r2(207), r2(208), r2(0)), i2 = Object(o2.a)(n2, function() {
|
|
3742
3834
|
var t3 = this, e2 = t3.$createElement, r3 = t3._self._c || e2;
|
|
3743
3835
|
return r3("label", { staticClass: "plv-radio", class: { "plv-radio--checked": t3.isChecked, "plv-radio--disabled": t3.isDisabled, "plv-radio--readonly": t3.isReadonly, "plv-radio--border": "border" === t3.radioType }, on: { click: t3.handleClick } }, ["border" !== t3.radioType ? r3("span", { staticClass: "plv-radio__inner", class: { "plv-radio__inner--checked": t3.isChecked } }) : t3._e(), t3._v(" "), t3.radioLabel || t3.isHasSlot ? r3("span", { staticClass: "plv-radio__label" }, [t3.isChecked ? [t3.$slots.trueLabel ? [t3._t("trueLabel", [t3._v(t3._s(t3.trueLabel))])] : [t3._t("default", [t3._v(t3._s(t3.radioLabel))])]] : [t3.$slots.falseLabel ? [t3._t("falseLabel", [t3._v(t3._s(t3.falseLabel))])] : [t3._t("default", [t3._v(t3._s(t3.radioLabel))])]]], 2) : t3._e(), t3._v(" "), "border" === t3.type && t3.isChecked && t3.corner ? r3("div", { staticClass: "plv-radio__corner" }) : t3._e()]);
|
|
3744
3836
|
}, [], false, null, null, null);
|
|
3745
3837
|
e.a = i2.exports;
|
|
3746
|
-
},
|
|
3747
|
-
},
|
|
3748
|
-
},
|
|
3838
|
+
}, 156: function(t2, e, r2) {
|
|
3839
|
+
}, 157: function(t2, e, r2) {
|
|
3840
|
+
}, 16: function(t2, e, r2) {
|
|
3749
3841
|
r2.d(e, "a", function() {
|
|
3750
|
-
return
|
|
3842
|
+
return a2;
|
|
3751
3843
|
});
|
|
3752
|
-
var n2 = r2(
|
|
3753
|
-
return !!this.formItem && this.formItem.formItemIsError;
|
|
3844
|
+
var n2 = r2(8), o2 = r2.n(n2), i2 = r2(3), u2 = r2.n(i2), a2 = { inject: { formItem: { default: void 0 } }, props: { forceFormError: { type: Boolean, default: false } }, computed: { formItemIsError: function() {
|
|
3845
|
+
return !!this.forceFormError || !!this.formItem && this.formItem.formItemIsError;
|
|
3754
3846
|
} }, watch: { showPopper: function() {
|
|
3755
3847
|
this.showPopper ? this.focusToRemoveError() : this.blurToValidateItem();
|
|
3756
3848
|
} }, methods: { validateCurrentFormItem: function() {
|
|
3757
3849
|
if (this.formItem) return this.formItem.validate();
|
|
3758
3850
|
}, blurToValidateItem: function() {
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3851
|
+
var t3 = this;
|
|
3852
|
+
return o2()(u2.a.mark(function e2() {
|
|
3853
|
+
var r3;
|
|
3854
|
+
return u2.a.wrap(function(e3) {
|
|
3855
|
+
for (; ; ) switch (e3.prev = e3.next) {
|
|
3856
|
+
case 0:
|
|
3857
|
+
return e3.prev = 0, e3.next = 1, t3.validateCurrentFormItem();
|
|
3858
|
+
case 1:
|
|
3859
|
+
e3.next = 3;
|
|
3860
|
+
break;
|
|
3861
|
+
case 2:
|
|
3862
|
+
e3.prev = 2, r3 = e3.catch(0), console.error("blur-validate", r3.message);
|
|
3863
|
+
case 3:
|
|
3864
|
+
case "end":
|
|
3865
|
+
return e3.stop();
|
|
3866
|
+
}
|
|
3867
|
+
}, e2, null, [[0, 2]]);
|
|
3868
|
+
}))();
|
|
3773
3869
|
}, focusToRemoveError: function() {
|
|
3774
3870
|
this.formItem && this.formItem.removeErrorMessage();
|
|
3775
3871
|
} } };
|
|
3776
|
-
},
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
}
|
|
3791
|
-
function
|
|
3792
|
-
var
|
|
3793
|
-
return
|
|
3794
|
-
var
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3872
|
+
}, 160: function(t2, e, r2) {
|
|
3873
|
+
r2.r(e);
|
|
3874
|
+
var n2 = r2(104);
|
|
3875
|
+
n2.a.install = function(t3) {
|
|
3876
|
+
t3.component(n2.a.name, n2.a);
|
|
3877
|
+
}, e.default = n2.a;
|
|
3878
|
+
}, 19: function(t2, e) {
|
|
3879
|
+
t2.exports = function(t3, e2) {
|
|
3880
|
+
this.v = t3, this.k = e2;
|
|
3881
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
3882
|
+
}, 20: function(t2, e, r2) {
|
|
3883
|
+
var n2 = r2(21);
|
|
3884
|
+
function o2() {
|
|
3885
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
3886
|
+
var e2, r3, i2 = "function" == typeof Symbol ? Symbol : {}, u2 = i2.iterator || "@@iterator", a2 = i2.toStringTag || "@@toStringTag";
|
|
3887
|
+
function s2(t3, o3, i3, u3) {
|
|
3888
|
+
var a3 = o3 && o3.prototype instanceof l2 ? o3 : l2, s3 = Object.create(a3.prototype);
|
|
3889
|
+
return n2(s3, "_invoke", function(t4, n3, o4) {
|
|
3890
|
+
var i4, u4, a4, s4 = 0, l3 = o4 || [], f3 = false, p3 = { p: 0, n: 0, v: e2, a: d3, f: d3.bind(e2, 4), d: function(t5, r4) {
|
|
3891
|
+
return i4 = t5, u4 = 0, a4 = e2, p3.n = r4, c2;
|
|
3892
|
+
} };
|
|
3893
|
+
function d3(t5, n4) {
|
|
3894
|
+
for (u4 = t5, a4 = n4, r3 = 0; !f3 && s4 && !o5 && r3 < l3.length; r3++) {
|
|
3895
|
+
var o5, i5 = l3[r3], d4 = p3.p, h3 = i5[2];
|
|
3896
|
+
t5 > 3 ? (o5 = h3 === n4) && (a4 = i5[(u4 = i5[4]) ? 5 : (u4 = 3, 3)], i5[4] = i5[5] = e2) : i5[0] <= d4 && ((o5 = t5 < 2 && d4 < i5[1]) ? (u4 = 0, p3.v = n4, p3.n = i5[1]) : d4 < h3 && (o5 = t5 < 3 || i5[0] > n4 || n4 > h3) && (i5[4] = t5, i5[5] = n4, p3.n = h3, u4 = 0));
|
|
3800
3897
|
}
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3898
|
+
if (o5 || t5 > 1) return c2;
|
|
3899
|
+
throw f3 = true, n4;
|
|
3900
|
+
}
|
|
3901
|
+
return function(o5, l4, h3) {
|
|
3902
|
+
if (s4 > 1) throw TypeError("Generator is already running");
|
|
3903
|
+
for (f3 && 1 === l4 && d3(l4, h3), u4 = l4, a4 = h3; (r3 = u4 < 2 ? e2 : a4) || !f3; ) {
|
|
3904
|
+
i4 || (u4 ? u4 < 3 ? (u4 > 1 && (p3.n = -1), d3(u4, a4)) : p3.n = a4 : p3.v = a4);
|
|
3905
|
+
try {
|
|
3906
|
+
if (s4 = 2, i4) {
|
|
3907
|
+
if (u4 || (o5 = "next"), r3 = i4[o5]) {
|
|
3908
|
+
if (!(r3 = r3.call(i4, a4))) throw TypeError("iterator result is not an object");
|
|
3909
|
+
if (!r3.done) return r3;
|
|
3910
|
+
a4 = r3.value, u4 < 2 && (u4 = 0);
|
|
3911
|
+
} else 1 === u4 && (r3 = i4.return) && r3.call(i4), u4 < 2 && (a4 = TypeError("The iterator does not provide a '" + o5 + "' method"), u4 = 1);
|
|
3912
|
+
i4 = e2;
|
|
3913
|
+
} else if ((r3 = (f3 = p3.n < 0) ? a4 : t4.call(n3, p3)) !== c2) break;
|
|
3914
|
+
} catch (t5) {
|
|
3915
|
+
i4 = e2, u4 = 1, a4 = t5;
|
|
3916
|
+
} finally {
|
|
3917
|
+
s4 = 1;
|
|
3820
3918
|
}
|
|
3821
|
-
"throw" === u3.type && (n5 = p2, r5.method = "throw", r5.arg = u3.arg);
|
|
3822
3919
|
}
|
|
3920
|
+
return { value: r3, done: f3 };
|
|
3823
3921
|
};
|
|
3824
|
-
}(
|
|
3922
|
+
}(t3, i3, u3), true), s3;
|
|
3825
3923
|
}
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
return { type: "normal", arg: t4.call(e3, r4) };
|
|
3829
|
-
} catch (t5) {
|
|
3830
|
-
return { type: "throw", arg: t5 };
|
|
3831
|
-
}
|
|
3924
|
+
var c2 = {};
|
|
3925
|
+
function l2() {
|
|
3832
3926
|
}
|
|
3833
|
-
|
|
3834
|
-
var f2 = "suspendedStart", h2 = "suspendedYield", d2 = "executing", p2 = "completed", v2 = {};
|
|
3835
|
-
function y2() {
|
|
3927
|
+
function f2() {
|
|
3836
3928
|
}
|
|
3837
|
-
function
|
|
3929
|
+
function p2() {
|
|
3838
3930
|
}
|
|
3839
|
-
|
|
3931
|
+
r3 = Object.getPrototypeOf;
|
|
3932
|
+
var d2 = [][u2] ? r3(r3([][u2]())) : (n2(r3 = {}, u2, function() {
|
|
3933
|
+
return this;
|
|
3934
|
+
}), r3), h2 = p2.prototype = l2.prototype = Object.create(d2);
|
|
3935
|
+
function v2(t3) {
|
|
3936
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(t3, p2) : (t3.__proto__ = p2, n2(t3, a2, "GeneratorFunction")), t3.prototype = Object.create(h2), t3;
|
|
3840
3937
|
}
|
|
3841
|
-
|
|
3842
|
-
u2(b2, i2, function() {
|
|
3938
|
+
return f2.prototype = p2, n2(h2, "constructor", p2), n2(p2, "constructor", f2), f2.displayName = "GeneratorFunction", n2(p2, a2, "GeneratorFunction"), n2(h2), n2(h2, a2, "Generator"), n2(h2, u2, function() {
|
|
3843
3939
|
return this;
|
|
3844
|
-
})
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3940
|
+
}), n2(h2, "toString", function() {
|
|
3941
|
+
return "[object Generator]";
|
|
3942
|
+
}), (t2.exports = o2 = function() {
|
|
3943
|
+
return { w: s2, m: v2 };
|
|
3944
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
|
|
3945
|
+
}
|
|
3946
|
+
t2.exports = o2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
3947
|
+
}, 207: function(t2, e, r2) {
|
|
3948
|
+
r2(156);
|
|
3949
|
+
}, 208: function(t2, e, r2) {
|
|
3950
|
+
r2(157);
|
|
3951
|
+
}, 21: function(t2, e) {
|
|
3952
|
+
function r2(e2, n2, o2, i2) {
|
|
3953
|
+
var u2 = Object.defineProperty;
|
|
3954
|
+
try {
|
|
3955
|
+
u2({}, "", {});
|
|
3956
|
+
} catch (e3) {
|
|
3957
|
+
u2 = 0;
|
|
3854
3958
|
}
|
|
3855
|
-
function
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
function
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
var u3 = l2(t4[o4], t4, i4);
|
|
3862
|
-
if ("throw" !== u3.type) {
|
|
3863
|
-
var c3 = u3.arg, f3 = c3.value;
|
|
3864
|
-
return f3 && "object" == typeof f3 && n3.call(f3, "__await") ? e3.resolve(f3.__await).then(function(t5) {
|
|
3865
|
-
r6("next", t5, a5, s3);
|
|
3866
|
-
}, function(t5) {
|
|
3867
|
-
r6("throw", t5, a5, s3);
|
|
3868
|
-
}) : e3.resolve(f3).then(function(t5) {
|
|
3869
|
-
c3.value = t5, a5(c3);
|
|
3870
|
-
}, function(t5) {
|
|
3871
|
-
return r6("throw", t5, a5, s3);
|
|
3872
|
-
});
|
|
3873
|
-
}
|
|
3874
|
-
s3(u3.arg);
|
|
3875
|
-
}(o3, i3, r5, a4);
|
|
3959
|
+
t2.exports = r2 = function(t3, e3, n3, o3) {
|
|
3960
|
+
if (e3) u2 ? u2(t3, e3, { value: n3, enumerable: !o3, configurable: !o3, writable: !o3 }) : t3[e3] = n3;
|
|
3961
|
+
else {
|
|
3962
|
+
var i3 = function(e4, n4) {
|
|
3963
|
+
r2(t3, e4, function(t4) {
|
|
3964
|
+
return this._invoke(e4, n4, t4);
|
|
3876
3965
|
});
|
|
3877
|
-
}
|
|
3878
|
-
|
|
3879
|
-
};
|
|
3880
|
-
}
|
|
3881
|
-
function k2(t4, r4) {
|
|
3882
|
-
var n4 = t4.iterator[r4.method];
|
|
3883
|
-
if (n4 === e2) {
|
|
3884
|
-
if (r4.delegate = null, "throw" === r4.method) {
|
|
3885
|
-
if (t4.iterator.return && (r4.method = "return", r4.arg = e2, k2(t4, r4), "throw" === r4.method)) return v2;
|
|
3886
|
-
r4.method = "throw", r4.arg = new TypeError("The iterator does not provide a 'throw' method");
|
|
3887
|
-
}
|
|
3888
|
-
return v2;
|
|
3966
|
+
};
|
|
3967
|
+
i3("next", 0), i3("throw", 1), i3("return", 2);
|
|
3889
3968
|
}
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
};
|
|
3916
|
-
return a3.next = a3;
|
|
3917
|
-
}
|
|
3969
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2, n2, o2, i2);
|
|
3970
|
+
}
|
|
3971
|
+
t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
3972
|
+
}, 22: function(t2, e, r2) {
|
|
3973
|
+
var n2 = r2(20), o2 = r2(23);
|
|
3974
|
+
t2.exports = function(t3, e2, r3, i2, u2) {
|
|
3975
|
+
return new o2(n2().w(t3, e2, r3, i2), u2 || Promise);
|
|
3976
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
3977
|
+
}, 23: function(t2, e, r2) {
|
|
3978
|
+
var n2 = r2(19), o2 = r2(21);
|
|
3979
|
+
t2.exports = function t3(e2, r3) {
|
|
3980
|
+
function i2(t4, o3, u3, a2) {
|
|
3981
|
+
try {
|
|
3982
|
+
var s2 = e2[t4](o3), c2 = s2.value;
|
|
3983
|
+
return c2 instanceof n2 ? r3.resolve(c2.v).then(function(t5) {
|
|
3984
|
+
i2("next", t5, u3, a2);
|
|
3985
|
+
}, function(t5) {
|
|
3986
|
+
i2("throw", t5, u3, a2);
|
|
3987
|
+
}) : r3.resolve(c2).then(function(t5) {
|
|
3988
|
+
s2.value = t5, u3(s2);
|
|
3989
|
+
}, function(t5) {
|
|
3990
|
+
return i2("throw", t5, u3, a2);
|
|
3991
|
+
});
|
|
3992
|
+
} catch (t5) {
|
|
3993
|
+
a2(t5);
|
|
3918
3994
|
}
|
|
3919
|
-
return { next: T2 };
|
|
3920
|
-
}
|
|
3921
|
-
function T2() {
|
|
3922
|
-
return { value: e2, done: true };
|
|
3923
3995
|
}
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
return !!e3 && (e3 === m2 || "GeneratorFunction" === (e3.displayName || e3.name));
|
|
3927
|
-
}, t3.mark = function(t4) {
|
|
3928
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(t4, g2) : (t4.__proto__ = g2, u2(t4, s2, "GeneratorFunction")), t4.prototype = Object.create(L2), t4;
|
|
3929
|
-
}, t3.awrap = function(t4) {
|
|
3930
|
-
return { __await: t4 };
|
|
3931
|
-
}, x2(E2.prototype), u2(E2.prototype, a2, function() {
|
|
3932
|
-
return this;
|
|
3933
|
-
}), t3.AsyncIterator = E2, t3.async = function(e3, r4, n4, o3, i3) {
|
|
3934
|
-
void 0 === i3 && (i3 = Promise);
|
|
3935
|
-
var a3 = new E2(c2(e3, r4, n4, o3), i3);
|
|
3936
|
-
return t3.isGeneratorFunction(r4) ? a3 : a3.next().then(function(t4) {
|
|
3937
|
-
return t4.done ? t4.value : a3.next();
|
|
3938
|
-
});
|
|
3939
|
-
}, x2(L2), u2(L2, s2, "Generator"), u2(L2, i2, function() {
|
|
3996
|
+
var u2;
|
|
3997
|
+
this.next || (o2(t3.prototype), o2(t3.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() {
|
|
3940
3998
|
return this;
|
|
3941
|
-
}),
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
return e3.reverse(), function r5() {
|
|
3947
|
-
for (; e3.length; ) {
|
|
3948
|
-
var n4 = e3.pop();
|
|
3949
|
-
if (n4 in t4) return r5.value = n4, r5.done = false, r5;
|
|
3950
|
-
}
|
|
3951
|
-
return r5.done = true, r5;
|
|
3952
|
-
};
|
|
3953
|
-
}, t3.values = S2, O2.prototype = { constructor: O2, reset: function(t4) {
|
|
3954
|
-
if (this.prev = 0, this.next = 0, this.sent = this._sent = e2, this.done = false, this.delegate = null, this.method = "next", this.arg = e2, this.tryEntries.forEach(j2), !t4) for (var r4 in this) "t" === r4.charAt(0) && n3.call(this, r4) && !isNaN(+r4.slice(1)) && (this[r4] = e2);
|
|
3955
|
-
}, stop: function() {
|
|
3956
|
-
this.done = true;
|
|
3957
|
-
var t4 = this.tryEntries[0].completion;
|
|
3958
|
-
if ("throw" === t4.type) throw t4.arg;
|
|
3959
|
-
return this.rval;
|
|
3960
|
-
}, dispatchException: function(t4) {
|
|
3961
|
-
if (this.done) throw t4;
|
|
3962
|
-
var r4 = this;
|
|
3963
|
-
function o3(n4, o4) {
|
|
3964
|
-
return s3.type = "throw", s3.arg = t4, r4.next = n4, o4 && (r4.method = "next", r4.arg = e2), !!o4;
|
|
3965
|
-
}
|
|
3966
|
-
for (var i3 = this.tryEntries.length - 1; i3 >= 0; --i3) {
|
|
3967
|
-
var a3 = this.tryEntries[i3], s3 = a3.completion;
|
|
3968
|
-
if ("root" === a3.tryLoc) return o3("end");
|
|
3969
|
-
if (a3.tryLoc <= this.prev) {
|
|
3970
|
-
var u3 = n3.call(a3, "catchLoc"), c3 = n3.call(a3, "finallyLoc");
|
|
3971
|
-
if (u3 && c3) {
|
|
3972
|
-
if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
|
|
3973
|
-
if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
|
|
3974
|
-
} else if (u3) {
|
|
3975
|
-
if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
|
|
3976
|
-
} else {
|
|
3977
|
-
if (!c3) throw new Error("try statement without catch or finally");
|
|
3978
|
-
if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
|
|
3979
|
-
}
|
|
3980
|
-
}
|
|
3981
|
-
}
|
|
3982
|
-
}, abrupt: function(t4, e3) {
|
|
3983
|
-
for (var r4 = this.tryEntries.length - 1; r4 >= 0; --r4) {
|
|
3984
|
-
var o3 = this.tryEntries[r4];
|
|
3985
|
-
if (o3.tryLoc <= this.prev && n3.call(o3, "finallyLoc") && this.prev < o3.finallyLoc) {
|
|
3986
|
-
var i3 = o3;
|
|
3987
|
-
break;
|
|
3988
|
-
}
|
|
3989
|
-
}
|
|
3990
|
-
i3 && ("break" === t4 || "continue" === t4) && i3.tryLoc <= e3 && e3 <= i3.finallyLoc && (i3 = null);
|
|
3991
|
-
var a3 = i3 ? i3.completion : {};
|
|
3992
|
-
return a3.type = t4, a3.arg = e3, i3 ? (this.method = "next", this.next = i3.finallyLoc, v2) : this.complete(a3);
|
|
3993
|
-
}, complete: function(t4, e3) {
|
|
3994
|
-
if ("throw" === t4.type) throw t4.arg;
|
|
3995
|
-
return "break" === t4.type || "continue" === t4.type ? this.next = t4.arg : "return" === t4.type ? (this.rval = this.arg = t4.arg, this.method = "return", this.next = "end") : "normal" === t4.type && e3 && (this.next = e3), v2;
|
|
3996
|
-
}, finish: function(t4) {
|
|
3997
|
-
for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
|
|
3998
|
-
var r4 = this.tryEntries[e3];
|
|
3999
|
-
if (r4.finallyLoc === t4) return this.complete(r4.completion, r4.afterLoc), j2(r4), v2;
|
|
4000
|
-
}
|
|
4001
|
-
}, catch: function(t4) {
|
|
4002
|
-
for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
|
|
4003
|
-
var r4 = this.tryEntries[e3];
|
|
4004
|
-
if (r4.tryLoc === t4) {
|
|
4005
|
-
var n4 = r4.completion;
|
|
4006
|
-
if ("throw" === n4.type) {
|
|
4007
|
-
var o3 = n4.arg;
|
|
4008
|
-
j2(r4);
|
|
4009
|
-
}
|
|
4010
|
-
return o3;
|
|
4011
|
-
}
|
|
3999
|
+
})), o2(this, "_invoke", function(t4, e3, n3) {
|
|
4000
|
+
function o3() {
|
|
4001
|
+
return new r3(function(e4, r4) {
|
|
4002
|
+
i2(t4, n3, e4, r4);
|
|
4003
|
+
});
|
|
4012
4004
|
}
|
|
4013
|
-
|
|
4014
|
-
},
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4005
|
+
return u2 = u2 ? u2.then(o3, o3) : o3();
|
|
4006
|
+
}, true);
|
|
4007
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4008
|
+
}, 3: function(t2, e, r2) {
|
|
4009
|
+
var n2 = r2(30)();
|
|
4010
|
+
t2.exports = n2;
|
|
4018
4011
|
try {
|
|
4019
4012
|
regeneratorRuntime = n2;
|
|
4020
4013
|
} catch (t3) {
|
|
4021
4014
|
"object" == typeof globalThis ? globalThis.regeneratorRuntime = n2 : Function("r", "regeneratorRuntime = r")(n2);
|
|
4022
4015
|
}
|
|
4023
|
-
},
|
|
4024
|
-
r2
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
t3
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4016
|
+
}, 30: function(t2, e, r2) {
|
|
4017
|
+
var n2 = r2(19), o2 = r2(20), i2 = r2(31), u2 = r2(22), a2 = r2(23), s2 = r2(32), c2 = r2(33);
|
|
4018
|
+
function l2() {
|
|
4019
|
+
var e2 = o2(), r3 = e2.m(l2), f2 = (Object.getPrototypeOf ? Object.getPrototypeOf(r3) : r3.__proto__).constructor;
|
|
4020
|
+
function p2(t3) {
|
|
4021
|
+
var e3 = "function" == typeof t3 && t3.constructor;
|
|
4022
|
+
return !!e3 && (e3 === f2 || "GeneratorFunction" === (e3.displayName || e3.name));
|
|
4023
|
+
}
|
|
4024
|
+
var d2 = { throw: 1, return: 2, break: 3, continue: 3 };
|
|
4025
|
+
function h2(t3) {
|
|
4026
|
+
var e3, r4;
|
|
4027
|
+
return function(n3) {
|
|
4028
|
+
e3 || (e3 = { stop: function() {
|
|
4029
|
+
return r4(n3.a, 2);
|
|
4030
|
+
}, catch: function() {
|
|
4031
|
+
return n3.v;
|
|
4032
|
+
}, abrupt: function(t4, e4) {
|
|
4033
|
+
return r4(n3.a, d2[t4], e4);
|
|
4034
|
+
}, delegateYield: function(t4, o3, i3) {
|
|
4035
|
+
return e3.resultName = o3, r4(n3.d, c2(t4), i3);
|
|
4036
|
+
}, finish: function(t4) {
|
|
4037
|
+
return r4(n3.f, t4);
|
|
4038
|
+
} }, r4 = function(t4, r5, o3) {
|
|
4039
|
+
n3.p = e3.prev, n3.n = e3.next;
|
|
4040
|
+
try {
|
|
4041
|
+
return t4(r5, o3);
|
|
4042
|
+
} finally {
|
|
4043
|
+
e3.next = n3.n;
|
|
4044
|
+
}
|
|
4045
|
+
}), e3.resultName && (e3[e3.resultName] = n3.v, e3.resultName = void 0), e3.sent = n3.v, e3.next = n3.n;
|
|
4046
|
+
try {
|
|
4047
|
+
return t3.call(this, e3);
|
|
4048
|
+
} finally {
|
|
4049
|
+
n3.p = e3.prev, n3.n = e3.next;
|
|
4050
|
+
}
|
|
4051
|
+
};
|
|
4052
|
+
}
|
|
4053
|
+
return (t2.exports = l2 = function() {
|
|
4054
|
+
return { wrap: function(t3, r4, n3, o3) {
|
|
4055
|
+
return e2.w(h2(t3), r4, n3, o3 && o3.reverse());
|
|
4056
|
+
}, isGeneratorFunction: p2, mark: e2.m, awrap: function(t3, e3) {
|
|
4057
|
+
return new n2(t3, e3);
|
|
4058
|
+
}, AsyncIterator: a2, async: function(t3, e3, r4, n3, o3) {
|
|
4059
|
+
return (p2(e3) ? u2 : i2)(h2(t3), e3, r4, n3, o3);
|
|
4060
|
+
}, keys: s2, values: c2 };
|
|
4061
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
|
|
4062
|
+
}
|
|
4063
|
+
t2.exports = l2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4064
|
+
}, 31: function(t2, e, r2) {
|
|
4065
|
+
var n2 = r2(22);
|
|
4066
|
+
t2.exports = function(t3, e2, r3, o2, i2) {
|
|
4067
|
+
var u2 = n2(t3, e2, r3, o2, i2);
|
|
4068
|
+
return u2.next().then(function(t4) {
|
|
4069
|
+
return t4.done ? t4.value : u2.next();
|
|
4070
|
+
});
|
|
4071
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4072
|
+
}, 32: function(t2, e) {
|
|
4073
|
+
t2.exports = function(t3) {
|
|
4074
|
+
var e2 = Object(t3), r2 = [];
|
|
4075
|
+
for (var n2 in e2) r2.unshift(n2);
|
|
4076
|
+
return function t4() {
|
|
4077
|
+
for (; r2.length; ) if ((n2 = r2.pop()) in e2) return t4.value = n2, t4.done = false, t4;
|
|
4078
|
+
return t4.done = true, t4;
|
|
4079
|
+
};
|
|
4080
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4081
|
+
}, 33: function(t2, e, r2) {
|
|
4082
|
+
var n2 = r2(4).default;
|
|
4083
|
+
t2.exports = function(t3) {
|
|
4084
|
+
if (null != t3) {
|
|
4085
|
+
var e2 = t3["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r3 = 0;
|
|
4086
|
+
if (e2) return e2.call(t3);
|
|
4087
|
+
if ("function" == typeof t3.next) return t3;
|
|
4088
|
+
if (!isNaN(t3.length)) return { next: function() {
|
|
4089
|
+
return t3 && r3 >= t3.length && (t3 = void 0), { value: t3 && t3[r3++], done: !t3 };
|
|
4090
|
+
} };
|
|
4091
|
+
}
|
|
4092
|
+
throw new TypeError(n2(t3) + " is not iterable");
|
|
4093
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4094
|
+
}, 4: function(t2, e) {
|
|
4095
|
+
function r2(e2) {
|
|
4096
|
+
return t2.exports = r2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) {
|
|
4097
|
+
return typeof t3;
|
|
4098
|
+
} : function(t3) {
|
|
4099
|
+
return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3;
|
|
4100
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2);
|
|
4101
|
+
}
|
|
4102
|
+
t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4103
|
+
}, 8: function(t2, e) {
|
|
4104
|
+
function r2(t3, e2, r3, n2, o2, i2, u2) {
|
|
4105
|
+
try {
|
|
4106
|
+
var a2 = t3[i2](u2), s2 = a2.value;
|
|
4107
|
+
} catch (t4) {
|
|
4108
|
+
return void r3(t4);
|
|
4109
|
+
}
|
|
4110
|
+
a2.done ? e2(s2) : Promise.resolve(s2).then(n2, o2);
|
|
4111
|
+
}
|
|
4112
|
+
t2.exports = function(t3) {
|
|
4113
|
+
return function() {
|
|
4114
|
+
var e2 = this, n2 = arguments;
|
|
4115
|
+
return new Promise(function(o2, i2) {
|
|
4116
|
+
var u2 = t3.apply(e2, n2);
|
|
4117
|
+
function a2(t4) {
|
|
4118
|
+
r2(u2, o2, i2, a2, s2, "next", t4);
|
|
4119
|
+
}
|
|
4120
|
+
function s2(t4) {
|
|
4121
|
+
r2(u2, o2, i2, a2, s2, "throw", t4);
|
|
4122
|
+
}
|
|
4123
|
+
a2(void 0);
|
|
4124
|
+
});
|
|
4125
|
+
};
|
|
4126
|
+
}, t2.exports.__esModule = true, t2.exports.default = t2.exports;
|
|
4035
4127
|
} }).default;
|
|
4036
4128
|
return radio;
|
|
4037
4129
|
}
|
|
@@ -4071,6 +4163,11 @@ const useAppendTo = (elemRef, parentRef) => {
|
|
|
4071
4163
|
}
|
|
4072
4164
|
});
|
|
4073
4165
|
};
|
|
4166
|
+
var ScreenOrientationMode = /* @__PURE__ */ ((ScreenOrientationMode2) => {
|
|
4167
|
+
ScreenOrientationMode2["Vertical"] = "Vertical";
|
|
4168
|
+
ScreenOrientationMode2["Horizontal"] = "Horizontal";
|
|
4169
|
+
return ScreenOrientationMode2;
|
|
4170
|
+
})(ScreenOrientationMode || {});
|
|
4074
4171
|
const useScreenOrientHook = (params = {}) => {
|
|
4075
4172
|
const { autoListen = true, autoListenCb = () => {
|
|
4076
4173
|
} } = params;
|
|
@@ -4380,7 +4477,7 @@ const useDynamicHeight = (options) => {
|
|
|
4380
4477
|
const props = __props;
|
|
4381
4478
|
const { injectData: globalInjectData } = useGlobalInject();
|
|
4382
4479
|
const popupInjectData = useCommonPopupInject();
|
|
4383
|
-
const { isHorizontalScreenOrientation, pageFullscreen } = useScreenOrientHook();
|
|
4480
|
+
const { isHorizontalScreenOrientation, pageFullscreen, screenOrientationMode } = useScreenOrientHook();
|
|
4384
4481
|
const { isFullscreen } = useFullscreen();
|
|
4385
4482
|
const { dynamicContentHeightPercent, handleScroll, reset: resetContentHeight } = useDynamicHeight(props.dynamicHeightOptions);
|
|
4386
4483
|
function getOriginAppendTo() {
|
|
@@ -4449,7 +4546,7 @@ const useDynamicHeight = (options) => {
|
|
|
4449
4546
|
cls.push(props.horizontalScreenClassName);
|
|
4450
4547
|
}
|
|
4451
4548
|
}
|
|
4452
|
-
if (pageFullscreen.value) {
|
|
4549
|
+
if (pageFullscreen.value && screenOrientationMode.value !== ScreenOrientationMode.Horizontal) {
|
|
4453
4550
|
cls.push("plv-product-common-popup--page-fullscreen");
|
|
4454
4551
|
}
|
|
4455
4552
|
return cls;
|
|
@@ -4495,6 +4592,7 @@ const useDynamicHeight = (options) => {
|
|
|
4495
4592
|
if (props.fillBody) {
|
|
4496
4593
|
return "90%";
|
|
4497
4594
|
}
|
|
4595
|
+
if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
|
|
4498
4596
|
if (props.enableDynamicHeight) {
|
|
4499
4597
|
return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
|
|
4500
4598
|
}
|
|
@@ -4605,88 +4703,214 @@ const useDynamicHeight = (options) => {
|
|
|
4605
4703
|
expose({
|
|
4606
4704
|
resetScroll
|
|
4607
4705
|
});
|
|
4608
|
-
return { __sfc: true, props, emit, globalInjectData, popupInjectData, isHorizontalScreenOrientation, pageFullscreen, isFullscreen, dynamicContentHeightPercent, handleScroll, resetContentHeight, getOriginAppendTo, popupAppendTo, popupShowModal, getOriginPosition, popupPosition, wrapClass, wrapStyle, headerStyle, bodyWidth, bodyHeight, bodyClass, bodyStyle, wrapVisible, bodyVisible, wrapRef, innerRef, topicPopup, onBodyScroll, open, closeBody, close, onClickMask, back, onAfterLeave, resetScroll, ProductIconClose, ProductIconArrowLeft };
|
|
4706
|
+
return { __sfc: true, props, emit, globalInjectData, popupInjectData, isHorizontalScreenOrientation, pageFullscreen, screenOrientationMode, isFullscreen, dynamicContentHeightPercent, handleScroll, resetContentHeight, getOriginAppendTo, popupAppendTo, popupShowModal, getOriginPosition, popupPosition, wrapClass, wrapStyle, headerStyle, bodyWidth, bodyHeight, bodyClass, bodyStyle, wrapVisible, bodyVisible, wrapRef, innerRef, topicPopup, onBodyScroll, open, closeBody, close, onClickMask, back, onAfterLeave, resetScroll, ProductIconClose, ProductIconArrowLeft };
|
|
4609
4707
|
}
|
|
4610
4708
|
});
|
|
4611
4709
|
const supportWebP = /* @__PURE__ */ (() => {
|
|
4612
|
-
let
|
|
4710
|
+
let e;
|
|
4613
4711
|
return () => {
|
|
4614
|
-
if (null ==
|
|
4615
|
-
|
|
4616
|
-
const
|
|
4617
|
-
if (
|
|
4618
|
-
const
|
|
4619
|
-
return 0 ===
|
|
4712
|
+
if (null == e) try {
|
|
4713
|
+
e = function() {
|
|
4714
|
+
const e2 = document.createElement("canvas");
|
|
4715
|
+
if (e2.getContext && e2.getContext("2d")) {
|
|
4716
|
+
const A2 = "image/webp";
|
|
4717
|
+
return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
|
|
4620
4718
|
}
|
|
4621
4719
|
return false;
|
|
4720
|
+
}() || function() {
|
|
4721
|
+
let e2 = false;
|
|
4722
|
+
const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
|
|
4723
|
+
if (t2) e2 = parseInt(t2[1]) >= 14;
|
|
4724
|
+
else {
|
|
4725
|
+
const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
|
|
4726
|
+
t3 && (e2 = parseInt(t3[1]) >= 16);
|
|
4727
|
+
}
|
|
4728
|
+
return e2;
|
|
4622
4729
|
}();
|
|
4623
|
-
} catch (
|
|
4624
|
-
|
|
4730
|
+
} catch (A2) {
|
|
4731
|
+
e = false;
|
|
4625
4732
|
}
|
|
4626
|
-
return
|
|
4733
|
+
return e;
|
|
4627
4734
|
};
|
|
4628
4735
|
})();
|
|
4629
|
-
function getExtname(
|
|
4630
|
-
const
|
|
4736
|
+
function getExtname(e) {
|
|
4737
|
+
const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
|
|
4631
4738
|
return t2 ? t2.toLowerCase() : "";
|
|
4632
4739
|
}
|
|
4633
|
-
function handleCompressOptions(
|
|
4634
|
-
var
|
|
4635
|
-
const
|
|
4636
|
-
return
|
|
4740
|
+
function handleCompressOptions(e) {
|
|
4741
|
+
var A2, t2;
|
|
4742
|
+
const n2 = "number" == typeof e ? { width: e } : e;
|
|
4743
|
+
return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
|
|
4637
4744
|
}
|
|
4638
|
-
function createURLObject(
|
|
4639
|
-
let
|
|
4745
|
+
function createURLObject(e) {
|
|
4746
|
+
let A2;
|
|
4640
4747
|
if ("undefined" != typeof document) {
|
|
4641
4748
|
const t2 = document.createElement("a");
|
|
4642
|
-
t2.href =
|
|
4749
|
+
t2.href = e, A2 = t2;
|
|
4643
4750
|
} else if ("function" == typeof URL) try {
|
|
4644
|
-
|
|
4645
|
-
} catch (
|
|
4751
|
+
A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
|
|
4752
|
+
} catch (e2) {
|
|
4646
4753
|
}
|
|
4647
|
-
return
|
|
4754
|
+
return A2;
|
|
4648
4755
|
}
|
|
4649
|
-
function genOSSCompressParams(
|
|
4756
|
+
function genOSSCompressParams(e, A2) {
|
|
4650
4757
|
let t2 = "";
|
|
4651
|
-
return null ==
|
|
4758
|
+
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;
|
|
4652
4759
|
}
|
|
4653
|
-
function setOSSCompressParams(
|
|
4760
|
+
function setOSSCompressParams(e, A2) {
|
|
4654
4761
|
let t2 = false;
|
|
4655
|
-
return
|
|
4656
|
-
}
|
|
4657
|
-
function ossCompress(
|
|
4658
|
-
const t2 = createURLObject(
|
|
4659
|
-
if (!t2) return
|
|
4660
|
-
|
|
4661
|
-
|
|
4762
|
+
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;
|
|
4763
|
+
}
|
|
4764
|
+
function ossCompress(e, A2) {
|
|
4765
|
+
const t2 = createURLObject(e);
|
|
4766
|
+
if (!t2) return e;
|
|
4767
|
+
const n2 = getExtname(t2.pathname.split("/").pop());
|
|
4768
|
+
if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
|
|
4769
|
+
const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
|
|
4662
4770
|
return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
|
|
4663
4771
|
}
|
|
4772
|
+
var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
|
|
4773
|
+
ProductItemScene2["ProductList"] = "productList";
|
|
4774
|
+
ProductItemScene2["BigCard"] = "bigCard";
|
|
4775
|
+
ProductItemScene2["AggregateStation"] = "aggregateStation";
|
|
4776
|
+
return ProductItemScene2;
|
|
4777
|
+
})(ProductItemScene || {});
|
|
4778
|
+
const useProductTrack = (options) => {
|
|
4779
|
+
const { productTarget } = options;
|
|
4780
|
+
const { ProductType } = getProductTargetExport(productTarget);
|
|
4781
|
+
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4782
|
+
const trackedProductIds = ref({});
|
|
4783
|
+
const productListRef = ref(null);
|
|
4784
|
+
const productItemsRef = shallowRef([]);
|
|
4785
|
+
function setItemRef(el) {
|
|
4786
|
+
if (el) {
|
|
4787
|
+
productItemsRef.value.push(el);
|
|
4788
|
+
}
|
|
4789
|
+
}
|
|
4790
|
+
function trackProductViewEvent(productData) {
|
|
4791
|
+
const specAttrs = {
|
|
4792
|
+
name: productData.name,
|
|
4793
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4794
|
+
productId: productData.productId,
|
|
4795
|
+
productType: productData.productType,
|
|
4796
|
+
productFeature: JSON.stringify(productData.featureTags)
|
|
4797
|
+
};
|
|
4798
|
+
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4799
|
+
specAttrs.price = productData.originPrice;
|
|
4800
|
+
}
|
|
4801
|
+
trackEvent({
|
|
4802
|
+
event_id: "product_list_item_view",
|
|
4803
|
+
event_type: "show",
|
|
4804
|
+
spec_attrs: specAttrs
|
|
4805
|
+
});
|
|
4806
|
+
}
|
|
4807
|
+
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4808
|
+
const offsetTop = element.offsetTop;
|
|
4809
|
+
const offsetHeight = element.offsetHeight;
|
|
4810
|
+
const elementBottom = offsetTop + offsetHeight;
|
|
4811
|
+
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4812
|
+
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4813
|
+
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4814
|
+
}
|
|
4815
|
+
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4816
|
+
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4817
|
+
return;
|
|
4818
|
+
}
|
|
4819
|
+
const element = itemInstance.$el;
|
|
4820
|
+
const productId = itemInstance.product.productId;
|
|
4821
|
+
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4822
|
+
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4823
|
+
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4824
|
+
trackProductViewEvent(itemInstance.product);
|
|
4825
|
+
}
|
|
4826
|
+
}
|
|
4827
|
+
function trackProduct() {
|
|
4828
|
+
return __async(this, null, function* () {
|
|
4829
|
+
yield nextTick();
|
|
4830
|
+
const container = productListRef.value;
|
|
4831
|
+
if (!container || !productItemsRef.value.length) return;
|
|
4832
|
+
const scrollTop = container.scrollTop;
|
|
4833
|
+
const scrollClientHeight = container.clientHeight;
|
|
4834
|
+
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4835
|
+
productItemsRef.value.forEach((itemInstance) => {
|
|
4836
|
+
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4837
|
+
});
|
|
4838
|
+
});
|
|
4839
|
+
}
|
|
4840
|
+
function clearTrackedProducts() {
|
|
4841
|
+
trackedProductIds.value = {};
|
|
4842
|
+
productItemsRef.value = [];
|
|
4843
|
+
}
|
|
4844
|
+
function getCommonSpecAttrs(productData) {
|
|
4845
|
+
return {
|
|
4846
|
+
clickTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4847
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4848
|
+
productName: productData.name,
|
|
4849
|
+
productId: productData.productId,
|
|
4850
|
+
productType: productData.productType,
|
|
4851
|
+
feature: JSON.stringify(productData.featureTags),
|
|
4852
|
+
price: productData.productType === ProductType.Normal ? productData.originPrice : "",
|
|
4853
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
|
|
4854
|
+
};
|
|
4855
|
+
}
|
|
4856
|
+
function trackProductItemClick(productData) {
|
|
4857
|
+
trackEvent({
|
|
4858
|
+
event_id: "product_list_item_click",
|
|
4859
|
+
event_type: "click",
|
|
4860
|
+
spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
|
|
4861
|
+
});
|
|
4862
|
+
}
|
|
4863
|
+
function trackProductPushItemClick(productData) {
|
|
4864
|
+
trackEvent({
|
|
4865
|
+
event_id: "product_push_item_click",
|
|
4866
|
+
event_type: "click",
|
|
4867
|
+
spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
|
|
4868
|
+
pushId: productData.pushLogId || ""
|
|
4869
|
+
})
|
|
4870
|
+
});
|
|
4871
|
+
}
|
|
4872
|
+
function trackProductPushItemView(productData) {
|
|
4873
|
+
trackEvent({
|
|
4874
|
+
event_id: "product_push_item_view",
|
|
4875
|
+
event_type: "show",
|
|
4876
|
+
spec_attrs: {
|
|
4877
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4878
|
+
productId: productData.productId,
|
|
4879
|
+
pushId: productData.pushLogId || ""
|
|
4880
|
+
}
|
|
4881
|
+
});
|
|
4882
|
+
}
|
|
4883
|
+
return {
|
|
4884
|
+
productListRef,
|
|
4885
|
+
setItemRef,
|
|
4886
|
+
trackProduct,
|
|
4887
|
+
clearTrackedProducts,
|
|
4888
|
+
trackProductItemClick,
|
|
4889
|
+
trackProductPushItemClick,
|
|
4890
|
+
trackProductPushItemView
|
|
4891
|
+
};
|
|
4892
|
+
};
|
|
4664
4893
|
const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
4665
|
-
product: PropUtils.object().isRequired
|
|
4894
|
+
product: PropUtils.object().isRequired,
|
|
4895
|
+
scene: PropUtils.enum()
|
|
4666
4896
|
});
|
|
4667
4897
|
const productItemEmits = () => ({
|
|
4668
|
-
"click-explain": emitFunc(),
|
|
4669
4898
|
"click-product-item": emitFunc(),
|
|
4670
|
-
"direct-buy": emitFunc()
|
|
4899
|
+
"direct-buy": emitFunc(),
|
|
4900
|
+
"open-position-detail": emitFunc()
|
|
4671
4901
|
});
|
|
4672
4902
|
const useProductItem = (options) => {
|
|
4673
4903
|
const { props, emit } = options;
|
|
4674
4904
|
const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
|
|
4675
4905
|
const { getEmitter } = useGlobalInject();
|
|
4676
|
-
const productExplainEnabled =
|
|
4906
|
+
const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
|
|
4907
|
+
const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
|
|
4677
4908
|
const isProductRedirectLinkDirectly = ref(false);
|
|
4678
4909
|
const shouldEllipsisTitle = computed(() => {
|
|
4679
4910
|
const { product } = props;
|
|
4680
4911
|
return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
|
|
4681
4912
|
});
|
|
4682
|
-
function
|
|
4683
|
-
return __async(this, null, function* () {
|
|
4684
|
-
if (!props.productTarget) return;
|
|
4685
|
-
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
4686
|
-
productExplainEnabled.value = enabled;
|
|
4687
|
-
});
|
|
4688
|
-
}
|
|
4689
|
-
function setIsProductRedirectLinkDirectly() {
|
|
4913
|
+
function getIsProductRedirectLinkDirectly() {
|
|
4690
4914
|
return __async(this, null, function* () {
|
|
4691
4915
|
const { product, productTarget } = props;
|
|
4692
4916
|
if (!product || !productTarget) return false;
|
|
@@ -4694,11 +4918,13 @@ const useProductItem = (options) => {
|
|
|
4694
4918
|
isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
|
|
4695
4919
|
});
|
|
4696
4920
|
}
|
|
4697
|
-
function onClickExplain(product) {
|
|
4698
|
-
emit("click-explain", product);
|
|
4699
|
-
}
|
|
4700
4921
|
function onClickProductItem() {
|
|
4701
4922
|
emit("click-product-item", props.product);
|
|
4923
|
+
if (props.scene === ProductItemScene.BigCard) {
|
|
4924
|
+
trackProductPushItemClick(props.product);
|
|
4925
|
+
} else {
|
|
4926
|
+
trackProductItemClick(props.product);
|
|
4927
|
+
}
|
|
4702
4928
|
if (props.product.productType !== ProductType.Finance) {
|
|
4703
4929
|
getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
|
|
4704
4930
|
}
|
|
@@ -4706,18 +4932,15 @@ const useProductItem = (options) => {
|
|
|
4706
4932
|
function onDirectBuy(product) {
|
|
4707
4933
|
emit("direct-buy", product);
|
|
4708
4934
|
}
|
|
4709
|
-
onMounted(() => {
|
|
4710
|
-
setProductExplainEnabled();
|
|
4711
|
-
});
|
|
4712
4935
|
watchEffect(() => {
|
|
4713
|
-
|
|
4936
|
+
getIsProductRedirectLinkDirectly();
|
|
4714
4937
|
});
|
|
4715
4938
|
return {
|
|
4716
4939
|
productExplainEnabled,
|
|
4717
4940
|
isProductRedirectLinkDirectly,
|
|
4718
4941
|
shouldEllipsisTitle,
|
|
4719
4942
|
onDirectBuy,
|
|
4720
|
-
|
|
4943
|
+
handleClickExplain,
|
|
4721
4944
|
onClickProductItem
|
|
4722
4945
|
};
|
|
4723
4946
|
};
|
|
@@ -4727,7 +4950,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
4727
4950
|
emits: productItemEmits(),
|
|
4728
4951
|
setup(__props, { emit }) {
|
|
4729
4952
|
const props = __props;
|
|
4730
|
-
const { ProductExplainStatus } = getProductTargetExport(props.productTarget);
|
|
4953
|
+
const { ProductExplainStatus, ProductType } = getProductTargetExport(props.productTarget);
|
|
4731
4954
|
const { $t } = useI18n();
|
|
4732
4955
|
const { isSoldOut } = useProductStock({
|
|
4733
4956
|
product: () => props.product
|
|
@@ -4737,22 +4960,25 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
4737
4960
|
isProductRedirectLinkDirectly,
|
|
4738
4961
|
shouldEllipsisTitle,
|
|
4739
4962
|
onDirectBuy,
|
|
4740
|
-
|
|
4741
|
-
|
|
4963
|
+
onClickProductItem,
|
|
4964
|
+
handleClickExplain
|
|
4742
4965
|
} = useProductItem({
|
|
4743
4966
|
props,
|
|
4744
4967
|
emit
|
|
4745
4968
|
});
|
|
4746
|
-
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy,
|
|
4969
|
+
return { __sfc: true, props, emit, ProductExplainStatus, ProductType, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
|
|
4747
4970
|
}
|
|
4748
4971
|
});
|
|
4749
4972
|
var _sfc_render$2 = function render9() {
|
|
4750
4973
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
4751
|
-
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.
|
|
4974
|
+
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) {
|
|
4752
4975
|
return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
|
|
4753
|
-
}), 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 } }),
|
|
4976
|
+
}), 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 } }), _vm.product.productType === _setup.ProductType.Position && _vm.productConfig.isProductWebview ? _c("div", { staticClass: "plv-product-item__position-detail-button", on: { "click": function($event) {
|
|
4977
|
+
$event.stopPropagation();
|
|
4978
|
+
return _setup.emit("open-position-detail", _vm.product);
|
|
4979
|
+
} } }, [_vm._v(" " + _vm._s(_setup.$t("product.position.detail")) + " ")]) : _vm._e(), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", class: { "plv-product-item__explained--no-cover-position": _vm.product.productType === _setup.ProductType.Position && _vm.productConfig.isProductWebview }, 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 }) {
|
|
4754
4980
|
return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
|
|
4755
|
-
} }]) })], 1)])])]);
|
|
4981
|
+
} }], null, false, 477326030) }) : _vm._e()], 1)])])]);
|
|
4756
4982
|
};
|
|
4757
4983
|
var _sfc_staticRenderFns$2 = [];
|
|
4758
4984
|
var __component__$2 = /* @__PURE__ */ normalizeComponent(
|
|
@@ -4779,79 +5005,6 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
|
|
|
4779
5005
|
_sfc_staticRenderFns$1
|
|
4780
5006
|
);
|
|
4781
5007
|
const ProductEmpty = __component__$1.exports;
|
|
4782
|
-
const useProductTrack = (options) => {
|
|
4783
|
-
const { productTarget, ProductType } = options;
|
|
4784
|
-
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4785
|
-
const trackedProductIds = ref({});
|
|
4786
|
-
const productListRef = ref(null);
|
|
4787
|
-
const productItemsRef = shallowRef([]);
|
|
4788
|
-
function setItemRef(el) {
|
|
4789
|
-
if (el) {
|
|
4790
|
-
productItemsRef.value.push(el);
|
|
4791
|
-
}
|
|
4792
|
-
}
|
|
4793
|
-
function trackProductViewEvent(productData) {
|
|
4794
|
-
const specAttrs = {
|
|
4795
|
-
exposureTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4796
|
-
name: productData.name,
|
|
4797
|
-
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4798
|
-
productId: productData.productId,
|
|
4799
|
-
productType: productData.productType,
|
|
4800
|
-
productFeature: JSON.stringify(productData.featureTags)
|
|
4801
|
-
};
|
|
4802
|
-
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4803
|
-
specAttrs.price = productData.originPrice;
|
|
4804
|
-
}
|
|
4805
|
-
trackEvent({
|
|
4806
|
-
event_id: "product_list_item_view",
|
|
4807
|
-
event_type: "show",
|
|
4808
|
-
spec_attrs: specAttrs
|
|
4809
|
-
});
|
|
4810
|
-
}
|
|
4811
|
-
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4812
|
-
const offsetTop = element.offsetTop;
|
|
4813
|
-
const offsetHeight = element.offsetHeight;
|
|
4814
|
-
const elementBottom = offsetTop + offsetHeight;
|
|
4815
|
-
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4816
|
-
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4817
|
-
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4818
|
-
}
|
|
4819
|
-
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4820
|
-
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4821
|
-
return;
|
|
4822
|
-
}
|
|
4823
|
-
const element = itemInstance.$el;
|
|
4824
|
-
const productId = itemInstance.product.productId;
|
|
4825
|
-
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4826
|
-
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4827
|
-
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4828
|
-
trackProductViewEvent(itemInstance.product);
|
|
4829
|
-
}
|
|
4830
|
-
}
|
|
4831
|
-
function trackProduct() {
|
|
4832
|
-
return __async(this, null, function* () {
|
|
4833
|
-
yield nextTick();
|
|
4834
|
-
const container = productListRef.value;
|
|
4835
|
-
if (!container || !productItemsRef.value.length) return;
|
|
4836
|
-
const scrollTop = container.scrollTop;
|
|
4837
|
-
const scrollClientHeight = container.clientHeight;
|
|
4838
|
-
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4839
|
-
productItemsRef.value.forEach((itemInstance) => {
|
|
4840
|
-
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4841
|
-
});
|
|
4842
|
-
});
|
|
4843
|
-
}
|
|
4844
|
-
function clearTrackedProducts() {
|
|
4845
|
-
trackedProductIds.value = {};
|
|
4846
|
-
productItemsRef.value = [];
|
|
4847
|
-
}
|
|
4848
|
-
return {
|
|
4849
|
-
productListRef,
|
|
4850
|
-
setItemRef,
|
|
4851
|
-
trackProduct,
|
|
4852
|
-
clearTrackedProducts
|
|
4853
|
-
};
|
|
4854
|
-
};
|
|
4855
5008
|
const useTargetEventEmitter = (eventEmitter, listeners) => {
|
|
4856
5009
|
onMounted(() => {
|
|
4857
5010
|
if (!eventEmitter) return;
|
|
@@ -4874,7 +5027,7 @@ const useProductList = (options) => {
|
|
|
4874
5027
|
const { props } = options;
|
|
4875
5028
|
const { getEmitter } = useGlobalInject();
|
|
4876
5029
|
const { ProductStatus, ProductType, ProductEvents } = getProductTargetExport(props.productTarget);
|
|
4877
|
-
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget
|
|
5030
|
+
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget });
|
|
4878
5031
|
const { isSupportPay, getPayProviders } = usePayment({ props });
|
|
4879
5032
|
const pageNumber = ref(1);
|
|
4880
5033
|
const pageSize = ref(10);
|
|
@@ -4935,6 +5088,7 @@ const useProductList = (options) => {
|
|
|
4935
5088
|
page: pageNumber.value,
|
|
4936
5089
|
count: pageSize.value
|
|
4937
5090
|
});
|
|
5091
|
+
console.info("商品列表:", data.contents);
|
|
4938
5092
|
toppingProduct.value = data.toppingProduct;
|
|
4939
5093
|
isNoMore.value = data.contents.length < pageSize.value;
|
|
4940
5094
|
setProductTotal(data.total);
|
|
@@ -4985,18 +5139,6 @@ const useProductList = (options) => {
|
|
|
4985
5139
|
}
|
|
4986
5140
|
});
|
|
4987
5141
|
}
|
|
4988
|
-
function handleClickExplain(product) {
|
|
4989
|
-
return __async(this, null, function* () {
|
|
4990
|
-
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
4991
|
-
props.productConfig.customClickExplainHandler(product);
|
|
4992
|
-
return;
|
|
4993
|
-
}
|
|
4994
|
-
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
4995
|
-
if (url) {
|
|
4996
|
-
window.open(url, "_blank");
|
|
4997
|
-
}
|
|
4998
|
-
});
|
|
4999
|
-
}
|
|
5000
5142
|
function getProductOrderEnabled() {
|
|
5001
5143
|
return __async(this, null, function* () {
|
|
5002
5144
|
if (!props.productTarget) return;
|
|
@@ -5042,10 +5184,24 @@ const useProductList = (options) => {
|
|
|
5042
5184
|
const productTarget = props.productTarget;
|
|
5043
5185
|
if (!productTarget) return;
|
|
5044
5186
|
const ProductEvents2 = productTarget.ProductEvents;
|
|
5187
|
+
productTarget.eventEmitter.on(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5188
|
+
productTarget.eventEmitter.on(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5189
|
+
productTarget.eventEmitter.on(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5190
|
+
productTarget.eventEmitter.on(ProductEvents2.AddProduct, refreshProductList);
|
|
5191
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5192
|
+
productTarget.eventEmitter.on(ProductEvents2.MoveProduct, refreshProductList);
|
|
5193
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5045
5194
|
productTarget.eventEmitter.on(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5046
5195
|
}
|
|
5047
5196
|
function unbindProductEvent() {
|
|
5048
5197
|
const ProductEvents2 = props.productTarget.ProductEvents;
|
|
5198
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5199
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5200
|
+
props.productTarget.eventEmitter.off(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5201
|
+
props.productTarget.eventEmitter.off(ProductEvents2.AddProduct, refreshProductList);
|
|
5202
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5203
|
+
props.productTarget.eventEmitter.off(ProductEvents2.MoveProduct, refreshProductList);
|
|
5204
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5049
5205
|
props.productTarget.eventEmitter.off(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5050
5206
|
}
|
|
5051
5207
|
function init() {
|
|
@@ -5103,7 +5259,8 @@ const useProductList = (options) => {
|
|
|
5103
5259
|
}
|
|
5104
5260
|
});
|
|
5105
5261
|
const instance = {
|
|
5106
|
-
init
|
|
5262
|
+
init,
|
|
5263
|
+
refreshProductList
|
|
5107
5264
|
};
|
|
5108
5265
|
return {
|
|
5109
5266
|
instance,
|
|
@@ -5120,14 +5277,16 @@ const useProductList = (options) => {
|
|
|
5120
5277
|
productList: productList2,
|
|
5121
5278
|
toppingProduct,
|
|
5122
5279
|
onScroll,
|
|
5123
|
-
handleClickExplain,
|
|
5124
5280
|
openOrderList
|
|
5125
5281
|
};
|
|
5126
5282
|
};
|
|
5127
5283
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5128
5284
|
__name: "product-list",
|
|
5129
5285
|
props: productListProps(),
|
|
5130
|
-
|
|
5286
|
+
emits: {
|
|
5287
|
+
"open-position-detail": emitFunc()
|
|
5288
|
+
},
|
|
5289
|
+
setup(__props, { expose, emit }) {
|
|
5131
5290
|
const props = __props;
|
|
5132
5291
|
const { $t } = useI18n();
|
|
5133
5292
|
const closeProductListPopup = inject("closeProductListPopup", () => {
|
|
@@ -5156,11 +5315,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
5156
5315
|
productTotal,
|
|
5157
5316
|
orderEntranceVisible,
|
|
5158
5317
|
onScroll,
|
|
5159
|
-
handleClickExplain,
|
|
5160
5318
|
openOrderList
|
|
5161
5319
|
} = useProductList({ props });
|
|
5162
5320
|
expose(instance);
|
|
5163
|
-
return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList: productList2, productTotal, orderEntranceVisible, onScroll,
|
|
5321
|
+
return { __sfc: true, props, emit, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList: productList2, productTotal, orderEntranceVisible, onScroll, openOrderList, FormInput, FormTheme, Loading, ProductIconClose, ProductIconOrderEnter, ProductIconSearch, ProductIconProduct, ProductTagPanel, isMobile, ProductItem, ProductEmpty };
|
|
5164
5322
|
}
|
|
5165
5323
|
});
|
|
5166
5324
|
var _sfc_render = function render11() {
|
|
@@ -5170,7 +5328,9 @@ var _sfc_render = function render11() {
|
|
|
5170
5328
|
}, 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) {
|
|
5171
5329
|
_setup.activeTagId = $$v;
|
|
5172
5330
|
}, 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) {
|
|
5173
|
-
return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "
|
|
5331
|
+
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, "open-position-detail": function($event) {
|
|
5332
|
+
return _setup.emit("open-position-detail", $event);
|
|
5333
|
+
} } });
|
|
5174
5334
|
}), 1) : _c(_setup.ProductEmpty)] : _vm._e(), _setup.isLoading ? _c("div", { staticClass: "plv-product-list__loading" }, [_c(_setup.Loading)], 1) : _vm._e()], 2);
|
|
5175
5335
|
};
|
|
5176
5336
|
var _sfc_staticRenderFns = [];
|
|
@@ -5185,8 +5345,8 @@ console.log(
|
|
|
5185
5345
|
"%c@polyv/product-ui",
|
|
5186
5346
|
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
5187
5347
|
"[component: product-list]",
|
|
5188
|
-
"[version: 1.
|
|
5189
|
-
"[buildTime: 2025-
|
|
5348
|
+
"[version: 1.2.0-rc-20250724.2]",
|
|
5349
|
+
"[buildTime: 2025-07-24 03:57:10]"
|
|
5190
5350
|
);
|
|
5191
5351
|
export {
|
|
5192
5352
|
productList as default
|