@polyv/product-ui 1.0.0-rc-20250612.3 → 1.1.0-rc-20250703.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address-edit.cjs.js +2 -2
- package/address-edit.es.js +22 -9
- package/address-edit.umd.js +2 -2
- package/address-item.cjs.js +2 -2
- package/address-item.es.js +12 -12
- package/address-item.umd.js +2 -2
- package/address-list.cjs.js +2 -2
- package/address-list.es.js +30 -18
- package/address-list.umd.js +3 -3
- package/big-card-popup.cjs.js +9 -0
- package/big-card-popup.es.d.ts +3 -0
- package/big-card-popup.es.js +4402 -0
- package/big-card-popup.umd.js +9 -0
- package/index.cjs.js +3 -3
- package/index.es.js +1438 -708
- package/index.umd.js +3 -3
- package/mobile-product-pendant.cjs.js +3 -3
- package/mobile-product-pendant.es.js +45 -35
- package/mobile-product-pendant.umd.js +3 -3
- package/order-confirm.cjs.js +2 -2
- package/order-confirm.es.js +30 -18
- package/order-confirm.umd.js +2 -2
- package/order-detail.cjs.js +2 -2
- package/order-detail.es.js +30 -18
- package/order-detail.umd.js +2 -2
- package/order-item.cjs.js +2 -2
- package/order-item.es.js +21 -9
- package/order-item.umd.js +2 -2
- package/order-list-popup.cjs.js +3 -3
- package/order-list-popup.es.js +40 -19
- package/order-list-popup.umd.js +2 -2
- package/order-list.cjs.js +2 -2
- package/order-list.es.js +21 -9
- package/order-list.umd.js +2 -2
- package/order-popup.cjs.js +2 -2
- package/order-popup.es.js +40 -19
- package/order-popup.umd.js +2 -2
- package/package.json +2 -1
- package/pc-product-pendant.cjs.js +3 -3
- package/pc-product-pendant.es.js +21 -9
- package/pc-product-pendant.umd.js +3 -3
- package/product-button.cjs.js +3 -3
- package/product-button.es.js +298 -261
- package/product-button.umd.js +3 -3
- package/product-detail-popup.cjs.js +3 -3
- package/product-detail-popup.es.js +265 -203
- package/product-detail-popup.umd.js +3 -3
- package/product-detail.cjs.js +3 -3
- package/product-detail.es.js +337 -283
- package/product-detail.umd.js +3 -3
- package/product-iframe-link-popup.cjs.js +2 -2
- package/product-iframe-link-popup.es.js +13 -4
- package/product-iframe-link-popup.umd.js +2 -2
- package/product-item.cjs.js +3 -3
- package/product-item.es.js +419 -222
- package/product-item.umd.js +3 -3
- package/product-list-popup.cjs.js +3 -3
- package/product-list-popup.es.js +445 -313
- package/product-list-popup.umd.js +3 -3
- package/product-list.cjs.js +3 -3
- package/product-list.es.js +436 -312
- package/product-list.umd.js +3 -3
- package/small-card.cjs.js +8 -0
- package/small-card.es.d.ts +3 -0
- package/small-card.es.js +4463 -0
- package/small-card.umd.js +9 -0
package/product-button.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode(".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}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defProps = Object.defineProperties;
|
|
4
4
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
@@ -88,6 +88,229 @@ function concat(i2, r2, t2) {
|
|
|
88
88
|
let e = n2.search || "";
|
|
89
89
|
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
90
90
|
}
|
|
91
|
+
function canMatchKeywords(e, t2) {
|
|
92
|
+
e = e.toLowerCase();
|
|
93
|
+
const n2 = /[/\s;_-]/, s2 = /[/\s;_-]/;
|
|
94
|
+
return t2.some((t3) => {
|
|
95
|
+
const o2 = e.indexOf(t3.toLowerCase());
|
|
96
|
+
if (-1 !== o2 && (n2.test(e[o2 - 1]) || 0 === o2) && (s2.test(e[o2 + t3.length]) || o2 + t3.length >= e.length)) return true;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function canMatchModelRule(e, t2) {
|
|
100
|
+
return !!/;\s*([^;)]*?)(?:\s+Build\/[^;)]+)?(?:;(?:\s*wv)?)?\)/.test(e) && t2.test(RegExp.$1);
|
|
101
|
+
}
|
|
102
|
+
function execRules(e, t2) {
|
|
103
|
+
let n2;
|
|
104
|
+
return t2.some((t3) => {
|
|
105
|
+
let s2, o2 = false;
|
|
106
|
+
return t3.regExp ? (o2 = t3.regExp.test(e), o2 && (s2 = RegExp.$1)) : t3.keywords ? o2 = canMatchKeywords(e, t3.keywords) : t3.modelRegExp && (o2 = canMatchModelRule(e, t3.modelRegExp)), o2 && (n2 = { name: t3.name, version: s2 }), o2;
|
|
107
|
+
}), n2;
|
|
108
|
+
}
|
|
109
|
+
const osRules = [{ name: "windows", regExp: /\bWindows\s?NT\s?(([\d.]+))\b/ }, { name: "ios", regExp: /\bOS(?:\s([\d_.]+))?\slike\sMac\sOS\sX\b/ }, { name: "macos", regExp: /\bMac\sOS\sX(?:\s([\d_.]+))?/ }, { name: "openharmony", regExp: /\bOpenHarmony\s([\d.]+)\b/ }, { name: "android", regExp: /\bAndroid;?(?:[-/\s]([\d.]+))?(?:\b|_)/ }, { name: "android", regExp: /\bAdr\s([\d.]+)(?:\b|_)/ }];
|
|
110
|
+
function compareVersions(r2, e) {
|
|
111
|
+
const t2 = /(\.0+)+$/, n2 = String(r2).replace(t2, "").split("."), s2 = String(e).replace(t2, "").split("."), i2 = Math.min(n2.length, s2.length);
|
|
112
|
+
for (let r3 = 0; r3 < i2; r3++) {
|
|
113
|
+
const e2 = parseInt(n2[r3]) - parseInt(s2[r3]);
|
|
114
|
+
if (e2) return e2;
|
|
115
|
+
}
|
|
116
|
+
return n2.length - s2.length;
|
|
117
|
+
}
|
|
118
|
+
class Version {
|
|
119
|
+
constructor(r2) {
|
|
120
|
+
this._ver = (r2 || "").replace(/_/g, ".").replace(/\.+$/, ""), Object.freeze(this);
|
|
121
|
+
}
|
|
122
|
+
_compare(r2, e) {
|
|
123
|
+
if (!this._ver || !r2) return false;
|
|
124
|
+
const t2 = Array.isArray(e) ? e : [e], n2 = compareVersions(this._ver, r2);
|
|
125
|
+
return t2.some(function(r3) {
|
|
126
|
+
return n2 * r3 > 0 || 0 === n2 && 0 === r3;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
gt(r2) {
|
|
130
|
+
return this._compare(r2, 1);
|
|
131
|
+
}
|
|
132
|
+
gte(r2) {
|
|
133
|
+
return this._compare(r2, [1, 0]);
|
|
134
|
+
}
|
|
135
|
+
lt(r2) {
|
|
136
|
+
return this._compare(r2, -1);
|
|
137
|
+
}
|
|
138
|
+
lte(r2) {
|
|
139
|
+
return this._compare(r2, [-1, 0]);
|
|
140
|
+
}
|
|
141
|
+
eq(r2) {
|
|
142
|
+
return this._compare(r2, 0);
|
|
143
|
+
}
|
|
144
|
+
toString() {
|
|
145
|
+
return this._ver;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const propMap$3 = { ios: "isIOS", openharmony: "isOpenHarmony", android: "isAndroid", windows: "isWindows", macos: "isMacOS" };
|
|
149
|
+
function platformToOS(s2) {
|
|
150
|
+
switch (s2) {
|
|
151
|
+
case "Android":
|
|
152
|
+
return "android";
|
|
153
|
+
case "iPad":
|
|
154
|
+
case "iPhone":
|
|
155
|
+
case "iPod":
|
|
156
|
+
return "ios";
|
|
157
|
+
case "MacIntel":
|
|
158
|
+
return "macos";
|
|
159
|
+
case "Win32":
|
|
160
|
+
return "windows";
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
class OSInfo {
|
|
164
|
+
constructor(s2, o2) {
|
|
165
|
+
var i2;
|
|
166
|
+
let e;
|
|
167
|
+
if (this.isIOS = false, this.isAndroid = false, this.isHarmonyOS = false, this.isOpenHarmony = false, this.isWindows = false, this.isMacOS = false, null == o2 ? void 0 : o2.platform) {
|
|
168
|
+
const s3 = platformToOS(o2.platform);
|
|
169
|
+
void 0 !== s3 && (e = { name: s3, version: "" });
|
|
170
|
+
}
|
|
171
|
+
let n2 = null !== (i2 = execRules(s2, osRules)) && void 0 !== i2 ? i2 : e;
|
|
172
|
+
n2 ? (e && e.name !== n2.name && (n2 = e), "macos" === n2.name && (null == o2 ? void 0 : o2.maxTouchPoints) && (n2.name = "ios", n2.version = ""), this[propMap$3[n2.name]] = true, this.version = new Version(n2.version), this.isAndroid && /\bHarmonyOS\b/.test(s2) && (this.isHarmonyOS = true), Object.freeze(this)) : this.version = Object.freeze(new Version(""));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const appleRules = [{ name: "ipad", regExp: /iPad/ }, { name: "ipod", regExp: /iPod/ }, { name: "iphone", regExp: /iPhone/ }];
|
|
176
|
+
const androidRules = [{ name: "huawei", regExp: /\b(?:huawei|honor)/i }, { name: "huawei", keywords: ["ideahub", "figi"] }, { name: "vivo", keywords: ["vivo"] }, { name: "oppo", keywords: ["oppo"] }, { name: "mi", keywords: ["redmi", "hongmi", "shark", "Mi", "MIX", "POCO", "POCOPHONE"] }, { name: "mi", regExp: /\bxiaomi/i }, { name: "samsung", keywords: ["samsung", "galaxy"] }, { name: "oneplus", keywords: ["oneplus", "one"] }, { name: "huawei", modelRegExp: /^Mate\s*\d{2}/i }, { name: "huawei", modelRegExp: /^Nova\s\d$/ }, { name: "huawei", regExp: /\b(?:Hi)?MatePad/i }, { name: "huawei", regExp: /\b(?:Liantong|UNICOMVSENS)VP\d{3}\b/ }, { name: "huawei", regExp: /\bCMDCSP\d{3}\b/ }, { name: "huawei", regExp: /\bTDTECH/i }, { name: "huawei", modelRegExp: /^[A-Z]{3}\d?-W[0-5]9[A-Z]*$/ }, { name: "huawei", modelRegExp: /^[A-Z][A-Za-z]{2,3}-(?:AN|BD|BX|AL|TL)\d{2}[A-Za-z]*$/ }, { name: "huawei", modelRegExp: /^TYH\d+[A-Z]?$/ }, { name: "huawei", modelRegExp: /^H60-L0[12]$/ }, { name: "mi", modelRegExp: /^MI\s?(?:\d|CC|Note|MAX|PLAY|PAD)/i }, { name: "mi", modelRegExp: /^(?:AWM|SKR|SKW|DLT)-/ }, { name: "mi", modelRegExp: /^XIG\d{2}$/ }, { name: "mi", modelRegExp: /^M\d{4}[A-Z]\d{1,2}[A-Z]{1,3}$/ }, { name: "mi", modelRegExp: /^2\d{3}[A-Z0-9]{6}$/ }, { name: "mi", modelRegExp: /^2\d{5}[0-9A-Z]{2}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{6}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{7}[A-Z]{2,3}$/ }, { name: "samsung", modelRegExp: /^S(?:M|[CGP]H)-[A-Za-z0-9]+$/ }, { name: "samsung", modelRegExp: /^SCV3\d$/ }, { name: "samsung", modelRegExp: /^SC-\d{2}[A-Z]$/ }, { name: "samsung", modelRegExp: /^SH[WV]-/ }, { name: "samsung", modelRegExp: /^GT[-_][A-Z][A-Z0-9]{3,}$/i }, { name: "oppo", modelRegExp: /^(?:CPH|OPD|iPA)\d{4}$/ }, { name: "oppo", modelRegExp: /^OPG\d{2}$/ }, { name: "oppo", modelRegExp: /^A[1-5]0[1-9]OP$/ }, { name: "oneplus", modelRegExp: /^(?:KB|HD|IN|GM|NE|LE|MT)\d{4}$/ }, { name: "vivo", modelRegExp: /^V[12]\d{3}[A-Z]{0,2}$/ }];
|
|
177
|
+
const propMap$2 = { ipod: "isIPod", iphone: "isIPhone", ipad: "isIPad", huawei: "isHuawei", mi: "isMi", oppo: "isOppo", vivo: "isVivo", oneplus: "isOnePlus", samsung: "isSamsung" };
|
|
178
|
+
class BrandInfo {
|
|
179
|
+
constructor(i2, s2) {
|
|
180
|
+
let e;
|
|
181
|
+
if (this.isHuawei = false, this.isMi = false, this.isOppo = false, this.isVivo = false, this.isOnePlus = false, this.isSamsung = false, this.isIPod = false, this.isIPhone = false, this.isIPad = false, this.isMac = false, this.isApple = false, s2.isIOS ? (e = appleRules, this.isApple = true) : s2.isMacOS ? (this.isMac = true, this.isApple = true) : (s2.isAndroid || s2.isOpenHarmony) && (e = androidRules), e) {
|
|
182
|
+
const o2 = execRules(i2, e);
|
|
183
|
+
o2 ? this[propMap$2[o2.name]] = true : s2.isIOS && (this.isIPad = true);
|
|
184
|
+
}
|
|
185
|
+
Object.freeze(this);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const browserRules = [{ name: "edge", regExp: /\bEdge\/([\d.]+)/ }, { name: "chrome", regExp: /\b(?:Chrome|CrMo|CriOS)\/([\d.]+)/ }, { name: "safari", regExp: /\b(?:Version\/([\d.]+).*\s?)?Safari\b/ }, { name: "ie", regExp: /\bMSIE\s(\d+)/i }, { name: "ie", regExp: /\bTrident\/.*;\srv:(\d+)/ }, { name: "firefox", regExp: /\bFirefox\/([\d.]+)/ }, { name: "opera-presto", regExp: /\bOpera\/([\d.]+)/ }];
|
|
189
|
+
const propMap$1 = { chrome: "isChrome", safari: "isSafari", edge: "isEdge", ie: "isIE", firefox: "isFirefox", "opera-presto": "isPrestoOpera" };
|
|
190
|
+
class BrowserInfo {
|
|
191
|
+
constructor(e) {
|
|
192
|
+
this.isChrome = false, this.isSafari = false, this.isEdge = false, this.isIE = false, this.isFirefox = false, this.isPrestoOpera = false;
|
|
193
|
+
const s2 = execRules(e, browserRules);
|
|
194
|
+
s2 ? (this[propMap$1[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), Object.freeze(this);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
let clientRules = [{ name: "wxwork", regExp: /\bwxwork\/([\d.]+)/ }, { name: "wx", regExp: /\bMicroMessenger\/([\d.]+)/ }, { name: "ding", regExp: /\bDingTalk\/([\d.]+)/ }, { name: "qq", regExp: /\bQQ\/([\d.]+)/ }, { name: "qq", regExp: /\bIPadQQ\b/ }, { name: "weibo", regExp: /(?:\b|_)Weibo(?:\b|_)/i }, { name: "edge", regExp: /\bEdge?\/([\d.]+)/ }, { name: "opera-blink", regExp: /\bOPR\/([\d.]+)/ }, { name: "qqbrowser", regExp: /\bM?QQBrowser(?:\/([\d.]+))?/i }, { name: "ucbrowser", regExp: /\b(?:UCBrowser|UCWEB)(?:-CMCC)?\/?\s?([\d.]+)/ }, { name: "ucbrowser", regExp: /\bUC\b/ }, { name: "quark", regExp: /\bQuark\/([\d.]+)/ }, { name: "maxthon", regExp: /\b(?:Maxthon|MxBrowser)(?:[/\s]([\d.]+))?/ }, { name: "theworld", regExp: /\bTheWorld(?:\s([\d.]+))?/i }, { name: "baidubrowser", regExp: /\b(?:baidubrowser|bdbrowser_i18n|BIDUBrowser)(?:[/\s]([\d.]+))?/i }, { name: "baidubrowser", regExp: /\bbaidubrowserpad\b/ }, { name: "baiduapp", regExp: /\bbaiduboxapp\b\/([\d.]+)?/i }, { name: "baiduapp", regExp: /\bbaiduboxpad\b/i }];
|
|
198
|
+
clientRules = clientRules.concat(browserRules);
|
|
199
|
+
const propMap = { wxwork: "isWxWork", wx: "isWx", ding: "isDing", qq: "isQQ", weibo: "isWeibo", edge: "isEdge", "opera-blink": "isOpera", "opera-presto": "isOpera", qqbrowser: "isQQBrowser", ucbrowser: "isUCBrowser", quark: "isQuark", maxthon: "isMaxthon", theworld: "isTheWorld", baidubrowser: "isBaiduBrowser", baiduapp: "isBaiduApp", chrome: "isChrome", safari: "isSafari", ie: "isIE", firefox: "isFirefox" };
|
|
200
|
+
class ClientInfo {
|
|
201
|
+
constructor(i2) {
|
|
202
|
+
this.isWxWork = false, this.isWx = false, this.isWxMiniProgram = false, this.isDing = false, this.isQQ = false, this.isWeibo = false, this.isEdge = false, this.isOpera = false, this.isQQBrowser = false, this.isUCBrowser = false, this.isQuark = false, this.isMaxthon = false, this.isTheWorld = false, this.isBaiduBrowser = false, this.isBaiduApp = false, this.isChrome = false, this.isSafari = false, this.isIE = false, this.isFirefox = false;
|
|
203
|
+
const s2 = execRules(i2, clientRules);
|
|
204
|
+
s2 ? (this[propMap[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), this.isWxMiniProgram = (this.isWx || this.isWxWork) && /\bMiniProgramEnv\b/.test(i2), Object.freeze(this);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
class UAInfo {
|
|
208
|
+
constructor(t2, i2) {
|
|
209
|
+
this.os = Object.freeze(new OSInfo(t2, i2)), this.brand = Object.freeze(new BrandInfo(t2, this.os)), this.browser = Object.freeze(new BrowserInfo(t2)), this.client = Object.freeze(new ClientInfo(t2)), this.isTablet = this.brand.isIPad || /\bTablet\b/i.test(t2) || this.os.isAndroid && !/\bMobile\b/i.test(t2), this.os.isIOS || this.os.isAndroid || this.isTablet ? this.isPortable = true : /\(X11[;)]/i.test(t2) || /\b(Windows\sNT|Macintosh)\b/.test(t2) ? this.isPortable = false : this.isPortable = /mobile|android/i.test(t2), Object.freeze(this);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
let currentUAInfo;
|
|
213
|
+
function getCurrentUAInfo() {
|
|
214
|
+
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
215
|
+
}
|
|
216
|
+
var __awaiter = function(i2, n2, o2, t2) {
|
|
217
|
+
return new (o2 || (o2 = Promise))(function(e, a2) {
|
|
218
|
+
function r2(i3) {
|
|
219
|
+
try {
|
|
220
|
+
k2(t2.next(i3));
|
|
221
|
+
} catch (i4) {
|
|
222
|
+
a2(i4);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
function l2(i3) {
|
|
226
|
+
try {
|
|
227
|
+
k2(t2.throw(i3));
|
|
228
|
+
} catch (i4) {
|
|
229
|
+
a2(i4);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function k2(i3) {
|
|
233
|
+
var n3;
|
|
234
|
+
i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
|
|
235
|
+
i4(n3);
|
|
236
|
+
})).then(r2, l2);
|
|
237
|
+
}
|
|
238
|
+
k2((t2 = t2.apply(i2, n2 || [])).next());
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
const uaInfo$1 = getCurrentUAInfo();
|
|
242
|
+
const isAndroid$1 = uaInfo$1.os.isAndroid;
|
|
243
|
+
const isIOS$1 = uaInfo$1.os.isIOS;
|
|
244
|
+
var LinkType;
|
|
245
|
+
!function(i2) {
|
|
246
|
+
i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
|
|
247
|
+
}(LinkType || (LinkType = {}));
|
|
248
|
+
var LinkJumpWay;
|
|
249
|
+
function getNativeToPointMallFn() {
|
|
250
|
+
var i2, n2, o2, t2;
|
|
251
|
+
return isAndroid$1 ? null === (i2 = window.AndroidNative) || void 0 === i2 ? void 0 : i2.toPointMall : isIOS$1 ? 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;
|
|
252
|
+
}
|
|
253
|
+
function toNativeLink(i2) {
|
|
254
|
+
const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
|
|
255
|
+
if (e) {
|
|
256
|
+
let i3 = isAndroid$1 ? n2 : o2;
|
|
257
|
+
const t3 = encodeURIComponent(location.href);
|
|
258
|
+
i3 = concat(i3, { plt_back_uri: t3 });
|
|
259
|
+
e(JSON.stringify({ url: i3 }));
|
|
260
|
+
} else window.open(t2, "_blank", "noopener=yes");
|
|
261
|
+
}
|
|
262
|
+
function toPlvWebviewBridge(i2) {
|
|
263
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
264
|
+
const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
|
|
265
|
+
e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
function toMultiPlatformLink(i2) {
|
|
269
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
+
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;
|
|
271
|
+
let u2 = false;
|
|
272
|
+
try {
|
|
273
|
+
u2 = (yield null == o2 ? void 0 : o2()) || false;
|
|
274
|
+
} catch (i3) {
|
|
275
|
+
u2 = false;
|
|
276
|
+
}
|
|
277
|
+
u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
!function(i2) {
|
|
281
|
+
i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
|
|
282
|
+
}(LinkJumpWay || (LinkJumpWay = {}));
|
|
283
|
+
function formatLink(i2, n2) {
|
|
284
|
+
let o2 = {};
|
|
285
|
+
if (n2) {
|
|
286
|
+
const t2 = n2(i2);
|
|
287
|
+
o2 = Object.assign({}, o2, t2);
|
|
288
|
+
}
|
|
289
|
+
return concat(i2, o2);
|
|
290
|
+
}
|
|
291
|
+
function navigateToLink(i2) {
|
|
292
|
+
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;
|
|
293
|
+
if (s2 !== LinkType.Native) {
|
|
294
|
+
if (u2) {
|
|
295
|
+
let i3 = "";
|
|
296
|
+
const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
|
|
297
|
+
switch (s2) {
|
|
298
|
+
case LinkType.Normal:
|
|
299
|
+
i3 = o3;
|
|
300
|
+
break;
|
|
301
|
+
case LinkType.MultiPlatform:
|
|
302
|
+
i3 = r3 || t3;
|
|
303
|
+
}
|
|
304
|
+
let u3 = null;
|
|
305
|
+
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 });
|
|
306
|
+
}
|
|
307
|
+
if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
|
|
308
|
+
else {
|
|
309
|
+
const { link: i3, jumpWay: t3 } = n2;
|
|
310
|
+
o2(formatLink(i3, k2), t3);
|
|
311
|
+
}
|
|
312
|
+
} else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
|
|
313
|
+
}
|
|
91
314
|
function mitt(n2) {
|
|
92
315
|
return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e) {
|
|
93
316
|
var i2 = n2.get(t2);
|
|
@@ -515,131 +738,6 @@ const useTrackEvent = (iarCore) => {
|
|
|
515
738
|
trackEvent
|
|
516
739
|
};
|
|
517
740
|
};
|
|
518
|
-
function canMatchKeywords(e, t2) {
|
|
519
|
-
e = e.toLowerCase();
|
|
520
|
-
const n2 = /[/\s;_-]/, s2 = /[/\s;_-]/;
|
|
521
|
-
return t2.some((t3) => {
|
|
522
|
-
const o2 = e.indexOf(t3.toLowerCase());
|
|
523
|
-
if (-1 !== o2 && (n2.test(e[o2 - 1]) || 0 === o2) && (s2.test(e[o2 + t3.length]) || o2 + t3.length >= e.length)) return true;
|
|
524
|
-
});
|
|
525
|
-
}
|
|
526
|
-
function canMatchModelRule(e, t2) {
|
|
527
|
-
return !!/;\s*([^;)]*?)(?:\s+Build\/[^;)]+)?(?:;(?:\s*wv)?)?\)/.test(e) && t2.test(RegExp.$1);
|
|
528
|
-
}
|
|
529
|
-
function execRules(e, t2) {
|
|
530
|
-
let n2;
|
|
531
|
-
return t2.some((t3) => {
|
|
532
|
-
let s2, o2 = false;
|
|
533
|
-
return t3.regExp ? (o2 = t3.regExp.test(e), o2 && (s2 = RegExp.$1)) : t3.keywords ? o2 = canMatchKeywords(e, t3.keywords) : t3.modelRegExp && (o2 = canMatchModelRule(e, t3.modelRegExp)), o2 && (n2 = { name: t3.name, version: s2 }), o2;
|
|
534
|
-
}), n2;
|
|
535
|
-
}
|
|
536
|
-
const osRules = [{ name: "windows", regExp: /\bWindows\s?NT\s?(([\d.]+))\b/ }, { name: "ios", regExp: /\bOS(?:\s([\d_.]+))?\slike\sMac\sOS\sX\b/ }, { name: "macos", regExp: /\bMac\sOS\sX(?:\s([\d_.]+))?/ }, { name: "openharmony", regExp: /\bOpenHarmony\s([\d.]+)\b/ }, { name: "android", regExp: /\bAndroid;?(?:[-/\s]([\d.]+))?(?:\b|_)/ }, { name: "android", regExp: /\bAdr\s([\d.]+)(?:\b|_)/ }];
|
|
537
|
-
function compareVersions(r2, e) {
|
|
538
|
-
const t2 = /(\.0+)+$/, n2 = String(r2).replace(t2, "").split("."), s2 = String(e).replace(t2, "").split("."), i2 = Math.min(n2.length, s2.length);
|
|
539
|
-
for (let r3 = 0; r3 < i2; r3++) {
|
|
540
|
-
const e2 = parseInt(n2[r3]) - parseInt(s2[r3]);
|
|
541
|
-
if (e2) return e2;
|
|
542
|
-
}
|
|
543
|
-
return n2.length - s2.length;
|
|
544
|
-
}
|
|
545
|
-
class Version {
|
|
546
|
-
constructor(r2) {
|
|
547
|
-
this._ver = (r2 || "").replace(/_/g, ".").replace(/\.+$/, ""), Object.freeze(this);
|
|
548
|
-
}
|
|
549
|
-
_compare(r2, e) {
|
|
550
|
-
if (!this._ver || !r2) return false;
|
|
551
|
-
const t2 = Array.isArray(e) ? e : [e], n2 = compareVersions(this._ver, r2);
|
|
552
|
-
return t2.some(function(r3) {
|
|
553
|
-
return n2 * r3 > 0 || 0 === n2 && 0 === r3;
|
|
554
|
-
});
|
|
555
|
-
}
|
|
556
|
-
gt(r2) {
|
|
557
|
-
return this._compare(r2, 1);
|
|
558
|
-
}
|
|
559
|
-
gte(r2) {
|
|
560
|
-
return this._compare(r2, [1, 0]);
|
|
561
|
-
}
|
|
562
|
-
lt(r2) {
|
|
563
|
-
return this._compare(r2, -1);
|
|
564
|
-
}
|
|
565
|
-
lte(r2) {
|
|
566
|
-
return this._compare(r2, [-1, 0]);
|
|
567
|
-
}
|
|
568
|
-
eq(r2) {
|
|
569
|
-
return this._compare(r2, 0);
|
|
570
|
-
}
|
|
571
|
-
toString() {
|
|
572
|
-
return this._ver;
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
const propMap$3 = { ios: "isIOS", openharmony: "isOpenHarmony", android: "isAndroid", windows: "isWindows", macos: "isMacOS" };
|
|
576
|
-
function platformToOS(s2) {
|
|
577
|
-
switch (s2) {
|
|
578
|
-
case "Android":
|
|
579
|
-
return "android";
|
|
580
|
-
case "iPad":
|
|
581
|
-
case "iPhone":
|
|
582
|
-
case "iPod":
|
|
583
|
-
return "ios";
|
|
584
|
-
case "MacIntel":
|
|
585
|
-
return "macos";
|
|
586
|
-
case "Win32":
|
|
587
|
-
return "windows";
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
class OSInfo {
|
|
591
|
-
constructor(s2, o2) {
|
|
592
|
-
var i2;
|
|
593
|
-
let e;
|
|
594
|
-
if (this.isIOS = false, this.isAndroid = false, this.isHarmonyOS = false, this.isOpenHarmony = false, this.isWindows = false, this.isMacOS = false, null == o2 ? void 0 : o2.platform) {
|
|
595
|
-
const s3 = platformToOS(o2.platform);
|
|
596
|
-
void 0 !== s3 && (e = { name: s3, version: "" });
|
|
597
|
-
}
|
|
598
|
-
let n2 = null !== (i2 = execRules(s2, osRules)) && void 0 !== i2 ? i2 : e;
|
|
599
|
-
n2 ? (e && e.name !== n2.name && (n2 = e), "macos" === n2.name && (null == o2 ? void 0 : o2.maxTouchPoints) && (n2.name = "ios", n2.version = ""), this[propMap$3[n2.name]] = true, this.version = new Version(n2.version), this.isAndroid && /\bHarmonyOS\b/.test(s2) && (this.isHarmonyOS = true), Object.freeze(this)) : this.version = Object.freeze(new Version(""));
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
const appleRules = [{ name: "ipad", regExp: /iPad/ }, { name: "ipod", regExp: /iPod/ }, { name: "iphone", regExp: /iPhone/ }];
|
|
603
|
-
const androidRules = [{ name: "huawei", regExp: /\b(?:huawei|honor)/i }, { name: "huawei", keywords: ["ideahub", "figi"] }, { name: "vivo", keywords: ["vivo"] }, { name: "oppo", keywords: ["oppo"] }, { name: "mi", keywords: ["redmi", "hongmi", "shark", "Mi", "MIX", "POCO", "POCOPHONE"] }, { name: "mi", regExp: /\bxiaomi/i }, { name: "samsung", keywords: ["samsung", "galaxy"] }, { name: "oneplus", keywords: ["oneplus", "one"] }, { name: "huawei", modelRegExp: /^Mate\s*\d{2}/i }, { name: "huawei", modelRegExp: /^Nova\s\d$/ }, { name: "huawei", regExp: /\b(?:Hi)?MatePad/i }, { name: "huawei", regExp: /\b(?:Liantong|UNICOMVSENS)VP\d{3}\b/ }, { name: "huawei", regExp: /\bCMDCSP\d{3}\b/ }, { name: "huawei", regExp: /\bTDTECH/i }, { name: "huawei", modelRegExp: /^[A-Z]{3}\d?-W[0-5]9[A-Z]*$/ }, { name: "huawei", modelRegExp: /^[A-Z][A-Za-z]{2,3}-(?:AN|BD|BX|AL|TL)\d{2}[A-Za-z]*$/ }, { name: "huawei", modelRegExp: /^TYH\d+[A-Z]?$/ }, { name: "huawei", modelRegExp: /^H60-L0[12]$/ }, { name: "mi", modelRegExp: /^MI\s?(?:\d|CC|Note|MAX|PLAY|PAD)/i }, { name: "mi", modelRegExp: /^(?:AWM|SKR|SKW|DLT)-/ }, { name: "mi", modelRegExp: /^XIG\d{2}$/ }, { name: "mi", modelRegExp: /^M\d{4}[A-Z]\d{1,2}[A-Z]{1,3}$/ }, { name: "mi", modelRegExp: /^2\d{3}[A-Z0-9]{6}$/ }, { name: "mi", modelRegExp: /^2\d{5}[0-9A-Z]{2}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{6}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{7}[A-Z]{2,3}$/ }, { name: "samsung", modelRegExp: /^S(?:M|[CGP]H)-[A-Za-z0-9]+$/ }, { name: "samsung", modelRegExp: /^SCV3\d$/ }, { name: "samsung", modelRegExp: /^SC-\d{2}[A-Z]$/ }, { name: "samsung", modelRegExp: /^SH[WV]-/ }, { name: "samsung", modelRegExp: /^GT[-_][A-Z][A-Z0-9]{3,}$/i }, { name: "oppo", modelRegExp: /^(?:CPH|OPD|iPA)\d{4}$/ }, { name: "oppo", modelRegExp: /^OPG\d{2}$/ }, { name: "oppo", modelRegExp: /^A[1-5]0[1-9]OP$/ }, { name: "oneplus", modelRegExp: /^(?:KB|HD|IN|GM|NE|LE|MT)\d{4}$/ }, { name: "vivo", modelRegExp: /^V[12]\d{3}[A-Z]{0,2}$/ }];
|
|
604
|
-
const propMap$2 = { ipod: "isIPod", iphone: "isIPhone", ipad: "isIPad", huawei: "isHuawei", mi: "isMi", oppo: "isOppo", vivo: "isVivo", oneplus: "isOnePlus", samsung: "isSamsung" };
|
|
605
|
-
class BrandInfo {
|
|
606
|
-
constructor(i2, s2) {
|
|
607
|
-
let e;
|
|
608
|
-
if (this.isHuawei = false, this.isMi = false, this.isOppo = false, this.isVivo = false, this.isOnePlus = false, this.isSamsung = false, this.isIPod = false, this.isIPhone = false, this.isIPad = false, this.isMac = false, this.isApple = false, s2.isIOS ? (e = appleRules, this.isApple = true) : s2.isMacOS ? (this.isMac = true, this.isApple = true) : (s2.isAndroid || s2.isOpenHarmony) && (e = androidRules), e) {
|
|
609
|
-
const o2 = execRules(i2, e);
|
|
610
|
-
o2 ? this[propMap$2[o2.name]] = true : s2.isIOS && (this.isIPad = true);
|
|
611
|
-
}
|
|
612
|
-
Object.freeze(this);
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
const browserRules = [{ name: "edge", regExp: /\bEdge\/([\d.]+)/ }, { name: "chrome", regExp: /\b(?:Chrome|CrMo|CriOS)\/([\d.]+)/ }, { name: "safari", regExp: /\b(?:Version\/([\d.]+).*\s?)?Safari\b/ }, { name: "ie", regExp: /\bMSIE\s(\d+)/i }, { name: "ie", regExp: /\bTrident\/.*;\srv:(\d+)/ }, { name: "firefox", regExp: /\bFirefox\/([\d.]+)/ }, { name: "opera-presto", regExp: /\bOpera\/([\d.]+)/ }];
|
|
616
|
-
const propMap$1 = { chrome: "isChrome", safari: "isSafari", edge: "isEdge", ie: "isIE", firefox: "isFirefox", "opera-presto": "isPrestoOpera" };
|
|
617
|
-
class BrowserInfo {
|
|
618
|
-
constructor(e) {
|
|
619
|
-
this.isChrome = false, this.isSafari = false, this.isEdge = false, this.isIE = false, this.isFirefox = false, this.isPrestoOpera = false;
|
|
620
|
-
const s2 = execRules(e, browserRules);
|
|
621
|
-
s2 ? (this[propMap$1[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), Object.freeze(this);
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
let clientRules = [{ name: "wxwork", regExp: /\bwxwork\/([\d.]+)/ }, { name: "wx", regExp: /\bMicroMessenger\/([\d.]+)/ }, { name: "ding", regExp: /\bDingTalk\/([\d.]+)/ }, { name: "qq", regExp: /\bQQ\/([\d.]+)/ }, { name: "qq", regExp: /\bIPadQQ\b/ }, { name: "weibo", regExp: /(?:\b|_)Weibo(?:\b|_)/i }, { name: "edge", regExp: /\bEdge?\/([\d.]+)/ }, { name: "opera-blink", regExp: /\bOPR\/([\d.]+)/ }, { name: "qqbrowser", regExp: /\bM?QQBrowser(?:\/([\d.]+))?/i }, { name: "ucbrowser", regExp: /\b(?:UCBrowser|UCWEB)(?:-CMCC)?\/?\s?([\d.]+)/ }, { name: "ucbrowser", regExp: /\bUC\b/ }, { name: "quark", regExp: /\bQuark\/([\d.]+)/ }, { name: "maxthon", regExp: /\b(?:Maxthon|MxBrowser)(?:[/\s]([\d.]+))?/ }, { name: "theworld", regExp: /\bTheWorld(?:\s([\d.]+))?/i }, { name: "baidubrowser", regExp: /\b(?:baidubrowser|bdbrowser_i18n|BIDUBrowser)(?:[/\s]([\d.]+))?/i }, { name: "baidubrowser", regExp: /\bbaidubrowserpad\b/ }, { name: "baiduapp", regExp: /\bbaiduboxapp\b\/([\d.]+)?/i }, { name: "baiduapp", regExp: /\bbaiduboxpad\b/i }];
|
|
625
|
-
clientRules = clientRules.concat(browserRules);
|
|
626
|
-
const propMap = { wxwork: "isWxWork", wx: "isWx", ding: "isDing", qq: "isQQ", weibo: "isWeibo", edge: "isEdge", "opera-blink": "isOpera", "opera-presto": "isOpera", qqbrowser: "isQQBrowser", ucbrowser: "isUCBrowser", quark: "isQuark", maxthon: "isMaxthon", theworld: "isTheWorld", baidubrowser: "isBaiduBrowser", baiduapp: "isBaiduApp", chrome: "isChrome", safari: "isSafari", ie: "isIE", firefox: "isFirefox" };
|
|
627
|
-
class ClientInfo {
|
|
628
|
-
constructor(i2) {
|
|
629
|
-
this.isWxWork = false, this.isWx = false, this.isWxMiniProgram = false, this.isDing = false, this.isQQ = false, this.isWeibo = false, this.isEdge = false, this.isOpera = false, this.isQQBrowser = false, this.isUCBrowser = false, this.isQuark = false, this.isMaxthon = false, this.isTheWorld = false, this.isBaiduBrowser = false, this.isBaiduApp = false, this.isChrome = false, this.isSafari = false, this.isIE = false, this.isFirefox = false;
|
|
630
|
-
const s2 = execRules(i2, clientRules);
|
|
631
|
-
s2 ? (this[propMap[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), this.isWxMiniProgram = (this.isWx || this.isWxWork) && /\bMiniProgramEnv\b/.test(i2), Object.freeze(this);
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
class UAInfo {
|
|
635
|
-
constructor(t2, i2) {
|
|
636
|
-
this.os = Object.freeze(new OSInfo(t2, i2)), this.brand = Object.freeze(new BrandInfo(t2, this.os)), this.browser = Object.freeze(new BrowserInfo(t2)), this.client = Object.freeze(new ClientInfo(t2)), this.isTablet = this.brand.isIPad || /\bTablet\b/i.test(t2) || this.os.isAndroid && !/\bMobile\b/i.test(t2), this.os.isIOS || this.os.isAndroid || this.isTablet ? this.isPortable = true : /\(X11[;)]/i.test(t2) || /\b(Windows\sNT|Macintosh)\b/.test(t2) ? this.isPortable = false : this.isPortable = /mobile|android/i.test(t2), Object.freeze(this);
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
let currentUAInfo;
|
|
640
|
-
function getCurrentUAInfo() {
|
|
641
|
-
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
642
|
-
}
|
|
643
741
|
const ua = navigator.userAgent.toLowerCase();
|
|
644
742
|
const uaInfo = getCurrentUAInfo();
|
|
645
743
|
const isAndroid = uaInfo.os.isAndroid;
|
|
@@ -1039,6 +1137,7 @@ function get(object, path, defaultValue) {
|
|
|
1039
1137
|
}
|
|
1040
1138
|
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": "已确认收货" };
|
|
1041
1139
|
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
1140
|
+
const bigCard$5 = { "title": "商品推荐" };
|
|
1042
1141
|
const zhCNLang = {
|
|
1043
1142
|
"common.confirm": "确认",
|
|
1044
1143
|
"common.cancel": "取消",
|
|
@@ -1066,10 +1165,12 @@ const zhCNLang = {
|
|
|
1066
1165
|
"product.allProduct": "全部商品",
|
|
1067
1166
|
"product.stock.soldOut": "已抢光",
|
|
1068
1167
|
order: order$5,
|
|
1069
|
-
addressEdit: addressEdit$5
|
|
1168
|
+
addressEdit: addressEdit$5,
|
|
1169
|
+
bigCard: bigCard$5
|
|
1070
1170
|
};
|
|
1071
1171
|
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": "已確認收貨" };
|
|
1072
1172
|
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
1173
|
+
const bigCard$4 = { "title": "商品推薦" };
|
|
1073
1174
|
const zhTWLang = {
|
|
1074
1175
|
"common.confirm": "確認",
|
|
1075
1176
|
"common.cancel": "取消",
|
|
@@ -1097,10 +1198,12 @@ const zhTWLang = {
|
|
|
1097
1198
|
"product.allProduct": "全部商品",
|
|
1098
1199
|
"product.stock.soldOut": "已搶光",
|
|
1099
1200
|
order: order$4,
|
|
1100
|
-
addressEdit: addressEdit$4
|
|
1201
|
+
addressEdit: addressEdit$4,
|
|
1202
|
+
bigCard: bigCard$4
|
|
1101
1203
|
};
|
|
1102
1204
|
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" };
|
|
1103
1205
|
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" };
|
|
1206
|
+
const bigCard$3 = { "title": "Top Picks" };
|
|
1104
1207
|
const enLang = {
|
|
1105
1208
|
"common.confirm": "Confirm",
|
|
1106
1209
|
"common.cancel": "Cancel",
|
|
@@ -1128,10 +1231,12 @@ const enLang = {
|
|
|
1128
1231
|
"product.allProduct": "Products",
|
|
1129
1232
|
"product.stock.soldOut": "Sold Out",
|
|
1130
1233
|
order: order$3,
|
|
1131
|
-
addressEdit: addressEdit$3
|
|
1234
|
+
addressEdit: addressEdit$3,
|
|
1235
|
+
bigCard: bigCard$3
|
|
1132
1236
|
};
|
|
1133
1237
|
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": "確認受け取り完了" };
|
|
1134
1238
|
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
1239
|
+
const bigCard$2 = { "title": "商品推薦" };
|
|
1135
1240
|
const jaLang = {
|
|
1136
1241
|
"common.confirm": "確認",
|
|
1137
1242
|
"common.cancel": "キャンセル",
|
|
@@ -1159,10 +1264,12 @@ const jaLang = {
|
|
|
1159
1264
|
"product.allProduct": "すべての商品",
|
|
1160
1265
|
"product.stock.soldOut": "売り切れ",
|
|
1161
1266
|
order: order$2,
|
|
1162
|
-
addressEdit: addressEdit$2
|
|
1267
|
+
addressEdit: addressEdit$2,
|
|
1268
|
+
bigCard: bigCard$2
|
|
1163
1269
|
};
|
|
1164
1270
|
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": "확인 받기 완료" };
|
|
1165
1271
|
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
1272
|
+
const bigCard$1 = { "title": "상품 추천" };
|
|
1166
1273
|
const koLang = {
|
|
1167
1274
|
"common.confirm": "확인",
|
|
1168
1275
|
"common.cancel": "취소",
|
|
@@ -1190,10 +1297,12 @@ const koLang = {
|
|
|
1190
1297
|
"product.allProduct": "모든 상품",
|
|
1191
1298
|
"product.stock.soldOut": "품절",
|
|
1192
1299
|
order: order$1,
|
|
1193
|
-
addressEdit: addressEdit$1
|
|
1300
|
+
addressEdit: addressEdit$1,
|
|
1301
|
+
bigCard: bigCard$1
|
|
1194
1302
|
};
|
|
1195
1303
|
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": "Получение подтверждено" };
|
|
1196
1304
|
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
1305
|
+
const bigCard = { "title": "Товары" };
|
|
1197
1306
|
const ruLang = {
|
|
1198
1307
|
"common.confirm": "Подтвердить",
|
|
1199
1308
|
"common.cancel": "Отмена",
|
|
@@ -1221,7 +1330,8 @@ const ruLang = {
|
|
|
1221
1330
|
"product.allProduct": "Все товары",
|
|
1222
1331
|
"product.stock.soldOut": "Распродано",
|
|
1223
1332
|
order,
|
|
1224
|
-
addressEdit
|
|
1333
|
+
addressEdit,
|
|
1334
|
+
bigCard
|
|
1225
1335
|
};
|
|
1226
1336
|
const fullI18nData = {
|
|
1227
1337
|
[LangType.ZH_CN]: zhCNLang,
|
|
@@ -1304,7 +1414,8 @@ function getProductTargetExport(productTarget) {
|
|
|
1304
1414
|
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
1305
1415
|
ProductMediaType: productTarget.ProductMediaType,
|
|
1306
1416
|
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
1307
|
-
ProductEvents: productTarget.ProductEvents
|
|
1417
|
+
ProductEvents: productTarget.ProductEvents,
|
|
1418
|
+
ProductPushRule: productTarget.ProductPushRule
|
|
1308
1419
|
};
|
|
1309
1420
|
}
|
|
1310
1421
|
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
@@ -1364,7 +1475,7 @@ const useProductStock = (options) => {
|
|
|
1364
1475
|
isSoldOut
|
|
1365
1476
|
};
|
|
1366
1477
|
};
|
|
1367
|
-
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
1478
|
+
const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = [""", "'", "&", "<", ">", " "], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
1368
1479
|
htmlChars.forEach((n2, e) => {
|
|
1369
1480
|
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
1370
1481
|
});
|
|
@@ -1419,7 +1530,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
1419
1530
|
}
|
|
1420
1531
|
const wx = yield injectData.getWeixinSdk();
|
|
1421
1532
|
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
1422
|
-
url
|
|
1533
|
+
url: url.startsWith("/") ? url : `/${url}`
|
|
1423
1534
|
});
|
|
1424
1535
|
return;
|
|
1425
1536
|
});
|
|
@@ -1474,7 +1585,9 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
1474
1585
|
watch(
|
|
1475
1586
|
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
1476
1587
|
() => {
|
|
1477
|
-
|
|
1588
|
+
setTimeout(() => {
|
|
1589
|
+
createWxMiniProgramButton();
|
|
1590
|
+
}, 500);
|
|
1478
1591
|
},
|
|
1479
1592
|
{
|
|
1480
1593
|
immediate: true
|
|
@@ -1491,7 +1604,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
1491
1604
|
};
|
|
1492
1605
|
};
|
|
1493
1606
|
const useAppNative = () => {
|
|
1494
|
-
function
|
|
1607
|
+
function getNativeToPointMallFn2() {
|
|
1495
1608
|
var _a, _b, _c, _d;
|
|
1496
1609
|
if (isAndroid) {
|
|
1497
1610
|
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
@@ -1500,14 +1613,14 @@ const useAppNative = () => {
|
|
|
1500
1613
|
}
|
|
1501
1614
|
}
|
|
1502
1615
|
function supportNativeToPointMall() {
|
|
1503
|
-
return !!
|
|
1616
|
+
return !!getNativeToPointMallFn2();
|
|
1504
1617
|
}
|
|
1505
1618
|
const supportAppNative = computed(() => {
|
|
1506
1619
|
return supportNativeToPointMall();
|
|
1507
1620
|
});
|
|
1508
|
-
function
|
|
1621
|
+
function toNativeLink2(options) {
|
|
1509
1622
|
const { androidLink, iosLink, otherLink } = options;
|
|
1510
|
-
const nativePointMallFn =
|
|
1623
|
+
const nativePointMallFn = getNativeToPointMallFn2();
|
|
1511
1624
|
if (nativePointMallFn) {
|
|
1512
1625
|
let url = isAndroid ? androidLink : iosLink;
|
|
1513
1626
|
const pltBackUri = encodeURIComponent(location.href);
|
|
@@ -1523,60 +1636,10 @@ const useAppNative = () => {
|
|
|
1523
1636
|
window.open(otherLink, "_blank", "noopener=yes");
|
|
1524
1637
|
}
|
|
1525
1638
|
return {
|
|
1526
|
-
getNativeToPointMallFn,
|
|
1639
|
+
getNativeToPointMallFn: getNativeToPointMallFn2,
|
|
1527
1640
|
supportNativeToPointMall,
|
|
1528
1641
|
supportAppNative,
|
|
1529
|
-
toNativeLink
|
|
1530
|
-
};
|
|
1531
|
-
};
|
|
1532
|
-
const usePolyvWebview = () => {
|
|
1533
|
-
const { injectData } = useGlobalInject();
|
|
1534
|
-
const isPlvWebview = ref(false);
|
|
1535
|
-
const supportPlvWebview = computed(() => {
|
|
1536
|
-
return isPlvWebview.value;
|
|
1537
|
-
});
|
|
1538
|
-
function getPlvWebviewBridge() {
|
|
1539
|
-
return __async(this, null, function* () {
|
|
1540
|
-
if (injectData.getPlvWebviewBridge) {
|
|
1541
|
-
return yield injectData.getPlvWebviewBridge();
|
|
1542
|
-
}
|
|
1543
|
-
});
|
|
1544
|
-
}
|
|
1545
|
-
function toPlvWebviewBridge(options) {
|
|
1546
|
-
return __async(this, null, function* () {
|
|
1547
|
-
if (!supportPlvWebview.value) {
|
|
1548
|
-
return;
|
|
1549
|
-
}
|
|
1550
|
-
let plvWebviewDataSize = {
|
|
1551
|
-
width: 90,
|
|
1552
|
-
height: 160
|
|
1553
|
-
};
|
|
1554
|
-
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
1555
|
-
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
1556
|
-
}
|
|
1557
|
-
const webviewBridge = yield getPlvWebviewBridge();
|
|
1558
|
-
if (!webviewBridge) {
|
|
1559
|
-
return;
|
|
1560
|
-
}
|
|
1561
|
-
webviewBridge.sendData("clickProduct", {
|
|
1562
|
-
width: plvWebviewDataSize.width,
|
|
1563
|
-
height: plvWebviewDataSize.height,
|
|
1564
|
-
newPage: true,
|
|
1565
|
-
link: options.link,
|
|
1566
|
-
data: options.data
|
|
1567
|
-
});
|
|
1568
|
-
});
|
|
1569
|
-
}
|
|
1570
|
-
onMounted(() => {
|
|
1571
|
-
if (injectData.isPlvWebview) {
|
|
1572
|
-
isPlvWebview.value = injectData.isPlvWebview();
|
|
1573
|
-
}
|
|
1574
|
-
});
|
|
1575
|
-
return {
|
|
1576
|
-
isPlvWebview,
|
|
1577
|
-
supportPlvWebview,
|
|
1578
|
-
getPlvWebviewBridge,
|
|
1579
|
-
toPlvWebviewBridge
|
|
1642
|
+
toNativeLink: toNativeLink2
|
|
1580
1643
|
};
|
|
1581
1644
|
};
|
|
1582
1645
|
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
@@ -1595,12 +1658,12 @@ const useProductButton = (options) => {
|
|
|
1595
1658
|
const { isSoldOut } = useProductStock({
|
|
1596
1659
|
product: () => props.productData
|
|
1597
1660
|
});
|
|
1598
|
-
const { getEmitter } = useGlobalInject();
|
|
1661
|
+
const { getEmitter, injectData } = useGlobalInject();
|
|
1599
1662
|
const { $t } = useI18n();
|
|
1600
1663
|
const productConfig = computed(() => {
|
|
1601
1664
|
return props.productConfig;
|
|
1602
1665
|
});
|
|
1603
|
-
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
1666
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
|
|
1604
1667
|
getButtonOptions: () => {
|
|
1605
1668
|
const productData = props.productData;
|
|
1606
1669
|
return {
|
|
@@ -1611,10 +1674,9 @@ const useProductButton = (options) => {
|
|
|
1611
1674
|
},
|
|
1612
1675
|
launchCallback: () => sendClickEvent()
|
|
1613
1676
|
});
|
|
1614
|
-
const { supportAppNative
|
|
1615
|
-
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
1677
|
+
const { supportAppNative } = useAppNative();
|
|
1616
1678
|
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
1617
|
-
const { ProductBuyType, ProductType
|
|
1679
|
+
const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
|
|
1618
1680
|
const isDirectBuy = computed(() => {
|
|
1619
1681
|
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
1620
1682
|
});
|
|
@@ -1641,13 +1703,13 @@ const useProductButton = (options) => {
|
|
|
1641
1703
|
if (isDirectBuy.value) {
|
|
1642
1704
|
return false;
|
|
1643
1705
|
}
|
|
1644
|
-
if (productData.linkType ===
|
|
1706
|
+
if (productData.linkType === LinkType.Normal) {
|
|
1645
1707
|
return !productData.link;
|
|
1646
1708
|
}
|
|
1647
|
-
if (productData.linkType ===
|
|
1709
|
+
if (productData.linkType === LinkType.MultiPlatform) {
|
|
1648
1710
|
return isMultiPlatformDisabled.value;
|
|
1649
1711
|
}
|
|
1650
|
-
if (productData.linkType ===
|
|
1712
|
+
if (productData.linkType === LinkType.Native) {
|
|
1651
1713
|
if (supportAppNative.value) {
|
|
1652
1714
|
return !productData.androidLink && !productData.iosLink;
|
|
1653
1715
|
}
|
|
@@ -1706,9 +1768,26 @@ const useProductButton = (options) => {
|
|
|
1706
1768
|
}
|
|
1707
1769
|
return concat(url, urlParams);
|
|
1708
1770
|
}
|
|
1771
|
+
function getLinkData() {
|
|
1772
|
+
const productData = props.productData;
|
|
1773
|
+
const linkData = {
|
|
1774
|
+
linkType: productData.linkType,
|
|
1775
|
+
jumpWay: productData.jumpWay,
|
|
1776
|
+
link: productData.link,
|
|
1777
|
+
pcLink: productData.pcLink,
|
|
1778
|
+
mobileLink: productData.mobileLink,
|
|
1779
|
+
mobileAppLink: productData.mobileAppLink,
|
|
1780
|
+
androidLink: productData.androidLink,
|
|
1781
|
+
iosLink: productData.iosLink,
|
|
1782
|
+
otherLink: productData.otherLink,
|
|
1783
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
1784
|
+
wxMiniprogramAppId: productData.wxMiniprogramAppId,
|
|
1785
|
+
wxMiniprogramLink: productData.wxMiniprogramLink
|
|
1786
|
+
};
|
|
1787
|
+
return linkData;
|
|
1788
|
+
}
|
|
1709
1789
|
function onClickLinkBtn() {
|
|
1710
1790
|
const productData = props.productData;
|
|
1711
|
-
const { linkType } = productData;
|
|
1712
1791
|
sendClickEvent();
|
|
1713
1792
|
if (productConfig.value.customClickButtonHandler) {
|
|
1714
1793
|
productConfig.value.customClickButtonHandler(productData);
|
|
@@ -1718,70 +1797,28 @@ const useProductButton = (options) => {
|
|
|
1718
1797
|
toDirectBuy();
|
|
1719
1798
|
return;
|
|
1720
1799
|
}
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
case ProductLinkType.Normal:
|
|
1734
|
-
linkTo = link;
|
|
1735
|
-
break;
|
|
1736
|
-
case ProductLinkType.MultiPlatform:
|
|
1737
|
-
linkTo = mobileAppLink || mobileLink;
|
|
1738
|
-
break;
|
|
1739
|
-
}
|
|
1740
|
-
let otherData = null;
|
|
1741
|
-
if (productData.linkType !== ProductLinkType.Normal) {
|
|
1742
|
-
otherData = {
|
|
1743
|
-
mobileLink: formatProductLink(mobileLink),
|
|
1744
|
-
wxMiniprogramOriginalId,
|
|
1745
|
-
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
1746
|
-
mobileAppLink: formatProductLink(mobileAppLink)
|
|
1747
|
-
};
|
|
1748
|
-
}
|
|
1749
|
-
toPlvWebviewBridge({
|
|
1750
|
-
link: formatProductLink(linkTo),
|
|
1751
|
-
data: otherData
|
|
1752
|
-
});
|
|
1753
|
-
return;
|
|
1754
|
-
}
|
|
1755
|
-
if (linkType === ProductLinkType.Normal) {
|
|
1756
|
-
const { link, jumpWay } = productData;
|
|
1757
|
-
openLink(formatProductLink(link), jumpWay);
|
|
1758
|
-
return;
|
|
1759
|
-
}
|
|
1760
|
-
if (linkType === ProductLinkType.MultiPlatform) {
|
|
1761
|
-
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
1762
|
-
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
1763
|
-
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
1764
|
-
return;
|
|
1765
|
-
}
|
|
1766
|
-
if (isMobile) {
|
|
1767
|
-
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
1768
|
-
return;
|
|
1769
|
-
}
|
|
1770
|
-
if (!isMobile) {
|
|
1771
|
-
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
1772
|
-
return;
|
|
1773
|
-
}
|
|
1774
|
-
}
|
|
1800
|
+
const linkData = getLinkData();
|
|
1801
|
+
navigateToLink({
|
|
1802
|
+
linkData,
|
|
1803
|
+
getLinkParams: productConfig.value.getLinkParams,
|
|
1804
|
+
openLink,
|
|
1805
|
+
isPlvWebview: injectData.isPlvWebview,
|
|
1806
|
+
isMobile: injectData.isMobile,
|
|
1807
|
+
getPlvWebviewBridge: injectData.getPlvWebviewBridge,
|
|
1808
|
+
getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
|
|
1809
|
+
isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
|
|
1810
|
+
toWxMiniProgram
|
|
1811
|
+
});
|
|
1775
1812
|
}
|
|
1776
1813
|
function openLink(url, jumpWay) {
|
|
1777
1814
|
switch (jumpWay) {
|
|
1778
|
-
case
|
|
1815
|
+
case LinkJumpWay.NewWindow:
|
|
1779
1816
|
window.open(url, "_blank", "noopener=yes");
|
|
1780
1817
|
break;
|
|
1781
|
-
case
|
|
1818
|
+
case LinkJumpWay.CurrentWindow:
|
|
1782
1819
|
window.location.href = url;
|
|
1783
1820
|
break;
|
|
1784
|
-
case
|
|
1821
|
+
case LinkJumpWay.PopUp:
|
|
1785
1822
|
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
1786
1823
|
break;
|
|
1787
1824
|
default:
|
|
@@ -1804,7 +1841,7 @@ const useProductButton = (options) => {
|
|
|
1804
1841
|
name: productData.name,
|
|
1805
1842
|
productId: productData.productId,
|
|
1806
1843
|
productType: productData.productType,
|
|
1807
|
-
productPushRule: data == null ? void 0 : data.pushRule
|
|
1844
|
+
productPushRule: (data == null ? void 0 : data.pushRule) || ""
|
|
1808
1845
|
}
|
|
1809
1846
|
});
|
|
1810
1847
|
props.productTarget.sendProductClickEvent({
|
|
@@ -1874,8 +1911,8 @@ console.log(
|
|
|
1874
1911
|
"%c@polyv/product-ui",
|
|
1875
1912
|
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
1876
1913
|
"[component: product-button]",
|
|
1877
|
-
"[version: 1.
|
|
1878
|
-
"[buildTime: 2025-
|
|
1914
|
+
"[version: 1.1.0-rc-20250703.1]",
|
|
1915
|
+
"[buildTime: 2025-07-03 01:48:27]"
|
|
1879
1916
|
);
|
|
1880
1917
|
export {
|
|
1881
1918
|
productButton as default
|