@jctrans-materials/comps-vue3 1.0.0

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.
@@ -0,0 +1,1750 @@
1
+ import { ref as D, computed as G, onMounted as it, onBeforeUnmount as rt, defineComponent as at, toRef as qe, watch as Ye, createElementBlock as V, openBlock as E, createElementVNode as g, createBlock as ct, normalizeClass as Re, createCommentVNode as ee, withDirectives as Ne, Fragment as ue, renderList as Se, toDisplayString as M, withModifiers as se, withKeys as Dt, normalizeStyle as ze, vModelText as ut, unref as h, Teleport as Bt, renderSlot as Me, createTextVNode as Ie, vShow as Lt, reactive as ft, createVNode as O, onUnmounted as Mt, withCtx as T, createApp as Ft } from "vue";
2
+ import { locationSearchV2 as dt, emitter as ie, MODAL_ACTION as re } from "@jctrans-materials/shared";
3
+ import { MODAL_ACTION as Wo, emitter as Jo } from "@jctrans-materials/shared";
4
+ import { ElDialog as _t, ElForm as Nt, ElRow as Fe, ElCol as ge, ElFormItem as ce, ElInput as ve, ElCheckbox as Pt, ElButton as Xe } from "element-plus";
5
+ function Qt(e) {
6
+ const t = D([]), n = "_search_history_cache", o = typeof window < "u" && typeof localStorage < "u", l = G(
7
+ () => (e.value || "") + n
8
+ ), i = G(
9
+ () => e.value && e.value !== ""
10
+ ), r = (u) => {
11
+ if (!u || !o) return;
12
+ const s = t.value.filter(
13
+ (d) => d.id && d.id !== u.id || d.display !== u.display
14
+ );
15
+ s.unshift(u);
16
+ const c = s.slice(0, 4);
17
+ if (t.value = c, i.value)
18
+ try {
19
+ localStorage.setItem(l.value, JSON.stringify(c));
20
+ } catch (d) {
21
+ console.warn("LocalStorage save failed:", d);
22
+ }
23
+ }, a = () => {
24
+ t.value = [], o && localStorage.removeItem(l.value);
25
+ };
26
+ return it(() => {
27
+ if (o && i.value) {
28
+ const u = localStorage.getItem(l.value);
29
+ if (u)
30
+ try {
31
+ t.value = JSON.parse(u);
32
+ } catch {
33
+ t.value = [];
34
+ }
35
+ }
36
+ }), {
37
+ searchHistory: t,
38
+ saveToHistory: r,
39
+ clearHistory: a,
40
+ HasHistory: i
41
+ };
42
+ }
43
+ async function It(e, t = [
44
+ "Continent",
45
+ "Country",
46
+ "City",
47
+ "Seaport",
48
+ "Airport"
49
+ ], n = {}) {
50
+ return dt.searchByName({
51
+ keyword: e,
52
+ displayInfo: t,
53
+ ...n
54
+ });
55
+ }
56
+ const Ut = (e, t) => dt.searchByIdWithType(e, t);
57
+ function Ht(e, t) {
58
+ const n = D([]), o = D(!1), l = D(!1), i = D(1), r = D(0), a = D(10), u = G(() => r.value === 0 ? !1 : n.value.length >= r.value), s = G(() => {
59
+ const f = [...t.value];
60
+ return f.includes("Country") && !f.includes("Region") && f.push("Region"), f;
61
+ }), c = (f) => !f || !Array.isArray(f) ? [] : f.filter(
62
+ (m) => s.value.includes(m.type)
63
+ );
64
+ return {
65
+ searchResults: n,
66
+ loading: o,
67
+ isFetchingMore: l,
68
+ isFinished: u,
69
+ currentPage: i,
70
+ total: r,
71
+ fetchData: async (f = 1, m = !1) => {
72
+ if (!e.value.trim() && !m) {
73
+ n.value = [], r.value = 0;
74
+ return;
75
+ }
76
+ if (!(m && (l.value || u.value)) && !(!m && o.value)) {
77
+ m ? l.value = !0 : (o.value = !0, i.value = 1);
78
+ try {
79
+ const p = await It(
80
+ e.value,
81
+ t.value,
82
+ {
83
+ current: f,
84
+ // 使用传入的 page 参数
85
+ size: a.value
86
+ }
87
+ ), A = p.records || [], v = c(A);
88
+ m ? n.value = [...n.value, ...v] : n.value = v, r.value = p.total || 0, i.value = f;
89
+ } catch (p) {
90
+ console.error("Failed to fetch search results:", p);
91
+ } finally {
92
+ o.value = !1, l.value = !1;
93
+ }
94
+ }
95
+ },
96
+ filterByTypes: c
97
+ };
98
+ }
99
+ const de = Math.min, F = Math.max, ke = Math.round, Ce = Math.floor, K = (e) => ({
100
+ x: e,
101
+ y: e
102
+ }), Wt = {
103
+ left: "right",
104
+ right: "left",
105
+ bottom: "top",
106
+ top: "bottom"
107
+ }, Jt = {
108
+ start: "end",
109
+ end: "start"
110
+ };
111
+ function je(e, t, n) {
112
+ return F(e, de(t, n));
113
+ }
114
+ function Ae(e, t) {
115
+ return typeof e == "function" ? e(t) : e;
116
+ }
117
+ function te(e) {
118
+ return e.split("-")[0];
119
+ }
120
+ function we(e) {
121
+ return e.split("-")[1];
122
+ }
123
+ function mt(e) {
124
+ return e === "x" ? "y" : "x";
125
+ }
126
+ function pt(e) {
127
+ return e === "y" ? "height" : "width";
128
+ }
129
+ const Gt = /* @__PURE__ */ new Set(["top", "bottom"]);
130
+ function j(e) {
131
+ return Gt.has(te(e)) ? "y" : "x";
132
+ }
133
+ function ht(e) {
134
+ return mt(j(e));
135
+ }
136
+ function Kt(e, t, n) {
137
+ n === void 0 && (n = !1);
138
+ const o = we(e), l = ht(e), i = pt(l);
139
+ let r = l === "x" ? o === (n ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
140
+ return t.reference[i] > t.floating[i] && (r = Oe(r)), [r, Oe(r)];
141
+ }
142
+ function qt(e) {
143
+ const t = Oe(e);
144
+ return [Pe(e), t, Pe(t)];
145
+ }
146
+ function Pe(e) {
147
+ return e.replace(/start|end/g, (t) => Jt[t]);
148
+ }
149
+ const Ze = ["left", "right"], $e = ["right", "left"], Yt = ["top", "bottom"], zt = ["bottom", "top"];
150
+ function Xt(e, t, n) {
151
+ switch (e) {
152
+ case "top":
153
+ case "bottom":
154
+ return n ? t ? $e : Ze : t ? Ze : $e;
155
+ case "left":
156
+ case "right":
157
+ return t ? Yt : zt;
158
+ default:
159
+ return [];
160
+ }
161
+ }
162
+ function jt(e, t, n, o) {
163
+ const l = we(e);
164
+ let i = Xt(te(e), n === "start", o);
165
+ return l && (i = i.map((r) => r + "-" + l), t && (i = i.concat(i.map(Pe)))), i;
166
+ }
167
+ function Oe(e) {
168
+ return e.replace(/left|right|bottom|top/g, (t) => Wt[t]);
169
+ }
170
+ function Zt(e) {
171
+ return {
172
+ top: 0,
173
+ right: 0,
174
+ bottom: 0,
175
+ left: 0,
176
+ ...e
177
+ };
178
+ }
179
+ function $t(e) {
180
+ return typeof e != "number" ? Zt(e) : {
181
+ top: e,
182
+ right: e,
183
+ bottom: e,
184
+ left: e
185
+ };
186
+ }
187
+ function Ee(e) {
188
+ const {
189
+ x: t,
190
+ y: n,
191
+ width: o,
192
+ height: l
193
+ } = e;
194
+ return {
195
+ width: o,
196
+ height: l,
197
+ top: n,
198
+ left: t,
199
+ right: t + o,
200
+ bottom: n + l,
201
+ x: t,
202
+ y: n
203
+ };
204
+ }
205
+ function et(e, t, n) {
206
+ let {
207
+ reference: o,
208
+ floating: l
209
+ } = e;
210
+ const i = j(t), r = ht(t), a = pt(r), u = te(t), s = i === "y", c = o.x + o.width / 2 - l.width / 2, d = o.y + o.height / 2 - l.height / 2, f = o[a] / 2 - l[a] / 2;
211
+ let m;
212
+ switch (u) {
213
+ case "top":
214
+ m = {
215
+ x: c,
216
+ y: o.y - l.height
217
+ };
218
+ break;
219
+ case "bottom":
220
+ m = {
221
+ x: c,
222
+ y: o.y + o.height
223
+ };
224
+ break;
225
+ case "right":
226
+ m = {
227
+ x: o.x + o.width,
228
+ y: d
229
+ };
230
+ break;
231
+ case "left":
232
+ m = {
233
+ x: o.x - l.width,
234
+ y: d
235
+ };
236
+ break;
237
+ default:
238
+ m = {
239
+ x: o.x,
240
+ y: o.y
241
+ };
242
+ }
243
+ switch (we(t)) {
244
+ case "start":
245
+ m[r] -= f * (n && s ? -1 : 1);
246
+ break;
247
+ case "end":
248
+ m[r] += f * (n && s ? -1 : 1);
249
+ break;
250
+ }
251
+ return m;
252
+ }
253
+ const en = async (e, t, n) => {
254
+ const {
255
+ placement: o = "bottom",
256
+ strategy: l = "absolute",
257
+ middleware: i = [],
258
+ platform: r
259
+ } = n, a = i.filter(Boolean), u = await (r.isRTL == null ? void 0 : r.isRTL(t));
260
+ let s = await r.getElementRects({
261
+ reference: e,
262
+ floating: t,
263
+ strategy: l
264
+ }), {
265
+ x: c,
266
+ y: d
267
+ } = et(s, o, u), f = o, m = {}, p = 0;
268
+ for (let A = 0; A < a.length; A++) {
269
+ const {
270
+ name: v,
271
+ fn: w
272
+ } = a[A], {
273
+ x,
274
+ y: b,
275
+ data: k,
276
+ reset: S
277
+ } = await w({
278
+ x: c,
279
+ y: d,
280
+ initialPlacement: o,
281
+ placement: f,
282
+ strategy: l,
283
+ middlewareData: m,
284
+ rects: s,
285
+ platform: r,
286
+ elements: {
287
+ reference: e,
288
+ floating: t
289
+ }
290
+ });
291
+ c = x ?? c, d = b ?? d, m = {
292
+ ...m,
293
+ [v]: {
294
+ ...m[v],
295
+ ...k
296
+ }
297
+ }, S && p <= 50 && (p++, typeof S == "object" && (S.placement && (f = S.placement), S.rects && (s = S.rects === !0 ? await r.getElementRects({
298
+ reference: e,
299
+ floating: t,
300
+ strategy: l
301
+ }) : S.rects), {
302
+ x: c,
303
+ y: d
304
+ } = et(s, f, u)), A = -1);
305
+ }
306
+ return {
307
+ x: c,
308
+ y: d,
309
+ placement: f,
310
+ strategy: l,
311
+ middlewareData: m
312
+ };
313
+ };
314
+ async function Ue(e, t) {
315
+ var n;
316
+ t === void 0 && (t = {});
317
+ const {
318
+ x: o,
319
+ y: l,
320
+ platform: i,
321
+ rects: r,
322
+ elements: a,
323
+ strategy: u
324
+ } = e, {
325
+ boundary: s = "clippingAncestors",
326
+ rootBoundary: c = "viewport",
327
+ elementContext: d = "floating",
328
+ altBoundary: f = !1,
329
+ padding: m = 0
330
+ } = Ae(t, e), p = $t(m), v = a[f ? d === "floating" ? "reference" : "floating" : d], w = Ee(await i.getClippingRect({
331
+ element: (n = await (i.isElement == null ? void 0 : i.isElement(v))) == null || n ? v : v.contextElement || await (i.getDocumentElement == null ? void 0 : i.getDocumentElement(a.floating)),
332
+ boundary: s,
333
+ rootBoundary: c,
334
+ strategy: u
335
+ })), x = d === "floating" ? {
336
+ x: o,
337
+ y: l,
338
+ width: r.floating.width,
339
+ height: r.floating.height
340
+ } : r.reference, b = await (i.getOffsetParent == null ? void 0 : i.getOffsetParent(a.floating)), k = await (i.isElement == null ? void 0 : i.isElement(b)) ? await (i.getScale == null ? void 0 : i.getScale(b)) || {
341
+ x: 1,
342
+ y: 1
343
+ } : {
344
+ x: 1,
345
+ y: 1
346
+ }, S = Ee(i.convertOffsetParentRelativeRectToViewportRelativeRect ? await i.convertOffsetParentRelativeRectToViewportRelativeRect({
347
+ elements: a,
348
+ rect: x,
349
+ offsetParent: b,
350
+ strategy: u
351
+ }) : x);
352
+ return {
353
+ top: (w.top - S.top + p.top) / k.y,
354
+ bottom: (S.bottom - w.bottom + p.bottom) / k.y,
355
+ left: (w.left - S.left + p.left) / k.x,
356
+ right: (S.right - w.right + p.right) / k.x
357
+ };
358
+ }
359
+ const tn = function(e) {
360
+ return e === void 0 && (e = {}), {
361
+ name: "flip",
362
+ options: e,
363
+ async fn(t) {
364
+ var n, o;
365
+ const {
366
+ placement: l,
367
+ middlewareData: i,
368
+ rects: r,
369
+ initialPlacement: a,
370
+ platform: u,
371
+ elements: s
372
+ } = t, {
373
+ mainAxis: c = !0,
374
+ crossAxis: d = !0,
375
+ fallbackPlacements: f,
376
+ fallbackStrategy: m = "bestFit",
377
+ fallbackAxisSideDirection: p = "none",
378
+ flipAlignment: A = !0,
379
+ ...v
380
+ } = Ae(e, t);
381
+ if ((n = i.arrow) != null && n.alignmentOffset)
382
+ return {};
383
+ const w = te(l), x = j(a), b = te(a) === a, k = await (u.isRTL == null ? void 0 : u.isRTL(s.floating)), S = f || (b || !A ? [Oe(a)] : qt(a)), H = p !== "none";
384
+ !f && H && S.push(...jt(a, A, p, k));
385
+ const N = [a, ...S], W = await Ue(t, v), z = [];
386
+ let P = ((o = i.flip) == null ? void 0 : o.overflows) || [];
387
+ if (c && z.push(W[w]), d) {
388
+ const X = Kt(l, r, k);
389
+ z.push(W[X[0]], W[X[1]]);
390
+ }
391
+ if (P = [...P, {
392
+ placement: l,
393
+ overflows: z
394
+ }], !z.every((X) => X <= 0)) {
395
+ var oe, Z;
396
+ const X = (((oe = i.flip) == null ? void 0 : oe.index) || 0) + 1, he = N[X];
397
+ if (he && (!(d === "alignment" ? x !== j(he) : !1) || // We leave the current main axis only if every placement on that axis
398
+ // overflows the main axis.
399
+ P.every((L) => j(L.placement) === x ? L.overflows[0] > 0 : !0)))
400
+ return {
401
+ data: {
402
+ index: X,
403
+ overflows: P
404
+ },
405
+ reset: {
406
+ placement: he
407
+ }
408
+ };
409
+ let $ = (Z = P.filter((J) => J.overflows[0] <= 0).sort((J, L) => J.overflows[1] - L.overflows[1])[0]) == null ? void 0 : Z.placement;
410
+ if (!$)
411
+ switch (m) {
412
+ case "bestFit": {
413
+ var B;
414
+ const J = (B = P.filter((L) => {
415
+ if (H) {
416
+ const Q = j(L.placement);
417
+ return Q === x || // Create a bias to the `y` side axis due to horizontal
418
+ // reading directions favoring greater width.
419
+ Q === "y";
420
+ }
421
+ return !0;
422
+ }).map((L) => [L.placement, L.overflows.filter((Q) => Q > 0).reduce((Q, Le) => Q + Le, 0)]).sort((L, Q) => L[1] - Q[1])[0]) == null ? void 0 : B[0];
423
+ J && ($ = J);
424
+ break;
425
+ }
426
+ case "initialPlacement":
427
+ $ = a;
428
+ break;
429
+ }
430
+ if (l !== $)
431
+ return {
432
+ reset: {
433
+ placement: $
434
+ }
435
+ };
436
+ }
437
+ return {};
438
+ }
439
+ };
440
+ }, nn = /* @__PURE__ */ new Set(["left", "top"]);
441
+ async function on(e, t) {
442
+ const {
443
+ placement: n,
444
+ platform: o,
445
+ elements: l
446
+ } = e, i = await (o.isRTL == null ? void 0 : o.isRTL(l.floating)), r = te(n), a = we(n), u = j(n) === "y", s = nn.has(r) ? -1 : 1, c = i && u ? -1 : 1, d = Ae(t, e);
447
+ let {
448
+ mainAxis: f,
449
+ crossAxis: m,
450
+ alignmentAxis: p
451
+ } = typeof d == "number" ? {
452
+ mainAxis: d,
453
+ crossAxis: 0,
454
+ alignmentAxis: null
455
+ } : {
456
+ mainAxis: d.mainAxis || 0,
457
+ crossAxis: d.crossAxis || 0,
458
+ alignmentAxis: d.alignmentAxis
459
+ };
460
+ return a && typeof p == "number" && (m = a === "end" ? p * -1 : p), u ? {
461
+ x: m * c,
462
+ y: f * s
463
+ } : {
464
+ x: f * s,
465
+ y: m * c
466
+ };
467
+ }
468
+ const ln = function(e) {
469
+ return e === void 0 && (e = 0), {
470
+ name: "offset",
471
+ options: e,
472
+ async fn(t) {
473
+ var n, o;
474
+ const {
475
+ x: l,
476
+ y: i,
477
+ placement: r,
478
+ middlewareData: a
479
+ } = t, u = await on(t, e);
480
+ return r === ((n = a.offset) == null ? void 0 : n.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
481
+ x: l + u.x,
482
+ y: i + u.y,
483
+ data: {
484
+ ...u,
485
+ placement: r
486
+ }
487
+ };
488
+ }
489
+ };
490
+ }, sn = function(e) {
491
+ return e === void 0 && (e = {}), {
492
+ name: "shift",
493
+ options: e,
494
+ async fn(t) {
495
+ const {
496
+ x: n,
497
+ y: o,
498
+ placement: l
499
+ } = t, {
500
+ mainAxis: i = !0,
501
+ crossAxis: r = !1,
502
+ limiter: a = {
503
+ fn: (v) => {
504
+ let {
505
+ x: w,
506
+ y: x
507
+ } = v;
508
+ return {
509
+ x: w,
510
+ y: x
511
+ };
512
+ }
513
+ },
514
+ ...u
515
+ } = Ae(e, t), s = {
516
+ x: n,
517
+ y: o
518
+ }, c = await Ue(t, u), d = j(te(l)), f = mt(d);
519
+ let m = s[f], p = s[d];
520
+ if (i) {
521
+ const v = f === "y" ? "top" : "left", w = f === "y" ? "bottom" : "right", x = m + c[v], b = m - c[w];
522
+ m = je(x, m, b);
523
+ }
524
+ if (r) {
525
+ const v = d === "y" ? "top" : "left", w = d === "y" ? "bottom" : "right", x = p + c[v], b = p - c[w];
526
+ p = je(x, p, b);
527
+ }
528
+ const A = a.fn({
529
+ ...t,
530
+ [f]: m,
531
+ [d]: p
532
+ });
533
+ return {
534
+ ...A,
535
+ data: {
536
+ x: A.x - n,
537
+ y: A.y - o,
538
+ enabled: {
539
+ [f]: i,
540
+ [d]: r
541
+ }
542
+ }
543
+ };
544
+ }
545
+ };
546
+ }, rn = function(e) {
547
+ return e === void 0 && (e = {}), {
548
+ name: "size",
549
+ options: e,
550
+ async fn(t) {
551
+ var n, o;
552
+ const {
553
+ placement: l,
554
+ rects: i,
555
+ platform: r,
556
+ elements: a
557
+ } = t, {
558
+ apply: u = () => {
559
+ },
560
+ ...s
561
+ } = Ae(e, t), c = await Ue(t, s), d = te(l), f = we(l), m = j(l) === "y", {
562
+ width: p,
563
+ height: A
564
+ } = i.floating;
565
+ let v, w;
566
+ d === "top" || d === "bottom" ? (v = d, w = f === (await (r.isRTL == null ? void 0 : r.isRTL(a.floating)) ? "start" : "end") ? "left" : "right") : (w = d, v = f === "end" ? "top" : "bottom");
567
+ const x = A - c.top - c.bottom, b = p - c.left - c.right, k = de(A - c[v], x), S = de(p - c[w], b), H = !t.middlewareData.shift;
568
+ let N = k, W = S;
569
+ if ((n = t.middlewareData.shift) != null && n.enabled.x && (W = b), (o = t.middlewareData.shift) != null && o.enabled.y && (N = x), H && !f) {
570
+ const P = F(c.left, 0), oe = F(c.right, 0), Z = F(c.top, 0), B = F(c.bottom, 0);
571
+ m ? W = p - 2 * (P !== 0 || oe !== 0 ? P + oe : F(c.left, c.right)) : N = A - 2 * (Z !== 0 || B !== 0 ? Z + B : F(c.top, c.bottom));
572
+ }
573
+ await u({
574
+ ...t,
575
+ availableWidth: W,
576
+ availableHeight: N
577
+ });
578
+ const z = await r.getDimensions(a.floating);
579
+ return p !== z.width || A !== z.height ? {
580
+ reset: {
581
+ rects: !0
582
+ }
583
+ } : {};
584
+ }
585
+ };
586
+ };
587
+ function Ve() {
588
+ return typeof window < "u";
589
+ }
590
+ function pe(e) {
591
+ return gt(e) ? (e.nodeName || "").toLowerCase() : "#document";
592
+ }
593
+ function _(e) {
594
+ var t;
595
+ return (e == null || (t = e.ownerDocument) == null ? void 0 : t.defaultView) || window;
596
+ }
597
+ function Y(e) {
598
+ var t;
599
+ return (t = (gt(e) ? e.ownerDocument : e.document) || window.document) == null ? void 0 : t.documentElement;
600
+ }
601
+ function gt(e) {
602
+ return Ve() ? e instanceof Node || e instanceof _(e).Node : !1;
603
+ }
604
+ function I(e) {
605
+ return Ve() ? e instanceof Element || e instanceof _(e).Element : !1;
606
+ }
607
+ function q(e) {
608
+ return Ve() ? e instanceof HTMLElement || e instanceof _(e).HTMLElement : !1;
609
+ }
610
+ function tt(e) {
611
+ return !Ve() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof _(e).ShadowRoot;
612
+ }
613
+ const an = /* @__PURE__ */ new Set(["inline", "contents"]);
614
+ function xe(e) {
615
+ const {
616
+ overflow: t,
617
+ overflowX: n,
618
+ overflowY: o,
619
+ display: l
620
+ } = U(e);
621
+ return /auto|scroll|overlay|hidden|clip/.test(t + o + n) && !an.has(l);
622
+ }
623
+ const cn = /* @__PURE__ */ new Set(["table", "td", "th"]);
624
+ function un(e) {
625
+ return cn.has(pe(e));
626
+ }
627
+ const fn = [":popover-open", ":modal"];
628
+ function Te(e) {
629
+ return fn.some((t) => {
630
+ try {
631
+ return e.matches(t);
632
+ } catch {
633
+ return !1;
634
+ }
635
+ });
636
+ }
637
+ const dn = ["transform", "translate", "scale", "rotate", "perspective"], mn = ["transform", "translate", "scale", "rotate", "perspective", "filter"], pn = ["paint", "layout", "strict", "content"];
638
+ function He(e) {
639
+ const t = We(), n = I(e) ? U(e) : e;
640
+ return dn.some((o) => n[o] ? n[o] !== "none" : !1) || (n.containerType ? n.containerType !== "normal" : !1) || !t && (n.backdropFilter ? n.backdropFilter !== "none" : !1) || !t && (n.filter ? n.filter !== "none" : !1) || mn.some((o) => (n.willChange || "").includes(o)) || pn.some((o) => (n.contain || "").includes(o));
641
+ }
642
+ function hn(e) {
643
+ let t = ne(e);
644
+ for (; q(t) && !me(t); ) {
645
+ if (He(t))
646
+ return t;
647
+ if (Te(t))
648
+ return null;
649
+ t = ne(t);
650
+ }
651
+ return null;
652
+ }
653
+ function We() {
654
+ return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
655
+ }
656
+ const gn = /* @__PURE__ */ new Set(["html", "body", "#document"]);
657
+ function me(e) {
658
+ return gn.has(pe(e));
659
+ }
660
+ function U(e) {
661
+ return _(e).getComputedStyle(e);
662
+ }
663
+ function De(e) {
664
+ return I(e) ? {
665
+ scrollLeft: e.scrollLeft,
666
+ scrollTop: e.scrollTop
667
+ } : {
668
+ scrollLeft: e.scrollX,
669
+ scrollTop: e.scrollY
670
+ };
671
+ }
672
+ function ne(e) {
673
+ if (pe(e) === "html")
674
+ return e;
675
+ const t = (
676
+ // Step into the shadow DOM of the parent of a slotted node.
677
+ e.assignedSlot || // DOM Element detected.
678
+ e.parentNode || // ShadowRoot detected.
679
+ tt(e) && e.host || // Fallback.
680
+ Y(e)
681
+ );
682
+ return tt(t) ? t.host : t;
683
+ }
684
+ function vt(e) {
685
+ const t = ne(e);
686
+ return me(t) ? e.ownerDocument ? e.ownerDocument.body : e.body : q(t) && xe(t) ? t : vt(t);
687
+ }
688
+ function ye(e, t, n) {
689
+ var o;
690
+ t === void 0 && (t = []), n === void 0 && (n = !0);
691
+ const l = vt(e), i = l === ((o = e.ownerDocument) == null ? void 0 : o.body), r = _(l);
692
+ if (i) {
693
+ const a = Qe(r);
694
+ return t.concat(r, r.visualViewport || [], xe(l) ? l : [], a && n ? ye(a) : []);
695
+ }
696
+ return t.concat(l, ye(l, [], n));
697
+ }
698
+ function Qe(e) {
699
+ return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
700
+ }
701
+ function yt(e) {
702
+ const t = U(e);
703
+ let n = parseFloat(t.width) || 0, o = parseFloat(t.height) || 0;
704
+ const l = q(e), i = l ? e.offsetWidth : n, r = l ? e.offsetHeight : o, a = ke(n) !== i || ke(o) !== r;
705
+ return a && (n = i, o = r), {
706
+ width: n,
707
+ height: o,
708
+ $: a
709
+ };
710
+ }
711
+ function Je(e) {
712
+ return I(e) ? e : e.contextElement;
713
+ }
714
+ function fe(e) {
715
+ const t = Je(e);
716
+ if (!q(t))
717
+ return K(1);
718
+ const n = t.getBoundingClientRect(), {
719
+ width: o,
720
+ height: l,
721
+ $: i
722
+ } = yt(t);
723
+ let r = (i ? ke(n.width) : n.width) / o, a = (i ? ke(n.height) : n.height) / l;
724
+ return (!r || !Number.isFinite(r)) && (r = 1), (!a || !Number.isFinite(a)) && (a = 1), {
725
+ x: r,
726
+ y: a
727
+ };
728
+ }
729
+ const vn = /* @__PURE__ */ K(0);
730
+ function At(e) {
731
+ const t = _(e);
732
+ return !We() || !t.visualViewport ? vn : {
733
+ x: t.visualViewport.offsetLeft,
734
+ y: t.visualViewport.offsetTop
735
+ };
736
+ }
737
+ function yn(e, t, n) {
738
+ return t === void 0 && (t = !1), !n || t && n !== _(e) ? !1 : t;
739
+ }
740
+ function ae(e, t, n, o) {
741
+ t === void 0 && (t = !1), n === void 0 && (n = !1);
742
+ const l = e.getBoundingClientRect(), i = Je(e);
743
+ let r = K(1);
744
+ t && (o ? I(o) && (r = fe(o)) : r = fe(e));
745
+ const a = yn(i, n, o) ? At(i) : K(0);
746
+ let u = (l.left + a.x) / r.x, s = (l.top + a.y) / r.y, c = l.width / r.x, d = l.height / r.y;
747
+ if (i) {
748
+ const f = _(i), m = o && I(o) ? _(o) : o;
749
+ let p = f, A = Qe(p);
750
+ for (; A && o && m !== p; ) {
751
+ const v = fe(A), w = A.getBoundingClientRect(), x = U(A), b = w.left + (A.clientLeft + parseFloat(x.paddingLeft)) * v.x, k = w.top + (A.clientTop + parseFloat(x.paddingTop)) * v.y;
752
+ u *= v.x, s *= v.y, c *= v.x, d *= v.y, u += b, s += k, p = _(A), A = Qe(p);
753
+ }
754
+ }
755
+ return Ee({
756
+ width: c,
757
+ height: d,
758
+ x: u,
759
+ y: s
760
+ });
761
+ }
762
+ function Be(e, t) {
763
+ const n = De(e).scrollLeft;
764
+ return t ? t.left + n : ae(Y(e)).left + n;
765
+ }
766
+ function wt(e, t) {
767
+ const n = e.getBoundingClientRect(), o = n.left + t.scrollLeft - Be(e, n), l = n.top + t.scrollTop;
768
+ return {
769
+ x: o,
770
+ y: l
771
+ };
772
+ }
773
+ function An(e) {
774
+ let {
775
+ elements: t,
776
+ rect: n,
777
+ offsetParent: o,
778
+ strategy: l
779
+ } = e;
780
+ const i = l === "fixed", r = Y(o), a = t ? Te(t.floating) : !1;
781
+ if (o === r || a && i)
782
+ return n;
783
+ let u = {
784
+ scrollLeft: 0,
785
+ scrollTop: 0
786
+ }, s = K(1);
787
+ const c = K(0), d = q(o);
788
+ if ((d || !d && !i) && ((pe(o) !== "body" || xe(r)) && (u = De(o)), q(o))) {
789
+ const m = ae(o);
790
+ s = fe(o), c.x = m.x + o.clientLeft, c.y = m.y + o.clientTop;
791
+ }
792
+ const f = r && !d && !i ? wt(r, u) : K(0);
793
+ return {
794
+ width: n.width * s.x,
795
+ height: n.height * s.y,
796
+ x: n.x * s.x - u.scrollLeft * s.x + c.x + f.x,
797
+ y: n.y * s.y - u.scrollTop * s.y + c.y + f.y
798
+ };
799
+ }
800
+ function wn(e) {
801
+ return Array.from(e.getClientRects());
802
+ }
803
+ function xn(e) {
804
+ const t = Y(e), n = De(e), o = e.ownerDocument.body, l = F(t.scrollWidth, t.clientWidth, o.scrollWidth, o.clientWidth), i = F(t.scrollHeight, t.clientHeight, o.scrollHeight, o.clientHeight);
805
+ let r = -n.scrollLeft + Be(e);
806
+ const a = -n.scrollTop;
807
+ return U(o).direction === "rtl" && (r += F(t.clientWidth, o.clientWidth) - l), {
808
+ width: l,
809
+ height: i,
810
+ x: r,
811
+ y: a
812
+ };
813
+ }
814
+ const nt = 25;
815
+ function bn(e, t) {
816
+ const n = _(e), o = Y(e), l = n.visualViewport;
817
+ let i = o.clientWidth, r = o.clientHeight, a = 0, u = 0;
818
+ if (l) {
819
+ i = l.width, r = l.height;
820
+ const c = We();
821
+ (!c || c && t === "fixed") && (a = l.offsetLeft, u = l.offsetTop);
822
+ }
823
+ const s = Be(o);
824
+ if (s <= 0) {
825
+ const c = o.ownerDocument, d = c.body, f = getComputedStyle(d), m = c.compatMode === "CSS1Compat" && parseFloat(f.marginLeft) + parseFloat(f.marginRight) || 0, p = Math.abs(o.clientWidth - d.clientWidth - m);
826
+ p <= nt && (i -= p);
827
+ } else s <= nt && (i += s);
828
+ return {
829
+ width: i,
830
+ height: r,
831
+ x: a,
832
+ y: u
833
+ };
834
+ }
835
+ const Cn = /* @__PURE__ */ new Set(["absolute", "fixed"]);
836
+ function Rn(e, t) {
837
+ const n = ae(e, !0, t === "fixed"), o = n.top + e.clientTop, l = n.left + e.clientLeft, i = q(e) ? fe(e) : K(1), r = e.clientWidth * i.x, a = e.clientHeight * i.y, u = l * i.x, s = o * i.y;
838
+ return {
839
+ width: r,
840
+ height: a,
841
+ x: u,
842
+ y: s
843
+ };
844
+ }
845
+ function ot(e, t, n) {
846
+ let o;
847
+ if (t === "viewport")
848
+ o = bn(e, n);
849
+ else if (t === "document")
850
+ o = xn(Y(e));
851
+ else if (I(t))
852
+ o = Rn(t, n);
853
+ else {
854
+ const l = At(e);
855
+ o = {
856
+ x: t.x - l.x,
857
+ y: t.y - l.y,
858
+ width: t.width,
859
+ height: t.height
860
+ };
861
+ }
862
+ return Ee(o);
863
+ }
864
+ function xt(e, t) {
865
+ const n = ne(e);
866
+ return n === t || !I(n) || me(n) ? !1 : U(n).position === "fixed" || xt(n, t);
867
+ }
868
+ function Sn(e, t) {
869
+ const n = t.get(e);
870
+ if (n)
871
+ return n;
872
+ let o = ye(e, [], !1).filter((a) => I(a) && pe(a) !== "body"), l = null;
873
+ const i = U(e).position === "fixed";
874
+ let r = i ? ne(e) : e;
875
+ for (; I(r) && !me(r); ) {
876
+ const a = U(r), u = He(r);
877
+ !u && a.position === "fixed" && (l = null), (i ? !u && !l : !u && a.position === "static" && !!l && Cn.has(l.position) || xe(r) && !u && xt(e, r)) ? o = o.filter((c) => c !== r) : l = a, r = ne(r);
878
+ }
879
+ return t.set(e, o), o;
880
+ }
881
+ function kn(e) {
882
+ let {
883
+ element: t,
884
+ boundary: n,
885
+ rootBoundary: o,
886
+ strategy: l
887
+ } = e;
888
+ const r = [...n === "clippingAncestors" ? Te(t) ? [] : Sn(t, this._c) : [].concat(n), o], a = r[0], u = r.reduce((s, c) => {
889
+ const d = ot(t, c, l);
890
+ return s.top = F(d.top, s.top), s.right = de(d.right, s.right), s.bottom = de(d.bottom, s.bottom), s.left = F(d.left, s.left), s;
891
+ }, ot(t, a, l));
892
+ return {
893
+ width: u.right - u.left,
894
+ height: u.bottom - u.top,
895
+ x: u.left,
896
+ y: u.top
897
+ };
898
+ }
899
+ function On(e) {
900
+ const {
901
+ width: t,
902
+ height: n
903
+ } = yt(e);
904
+ return {
905
+ width: t,
906
+ height: n
907
+ };
908
+ }
909
+ function En(e, t, n) {
910
+ const o = q(t), l = Y(t), i = n === "fixed", r = ae(e, !0, i, t);
911
+ let a = {
912
+ scrollLeft: 0,
913
+ scrollTop: 0
914
+ };
915
+ const u = K(0);
916
+ function s() {
917
+ u.x = Be(l);
918
+ }
919
+ if (o || !o && !i)
920
+ if ((pe(t) !== "body" || xe(l)) && (a = De(t)), o) {
921
+ const m = ae(t, !0, i, t);
922
+ u.x = m.x + t.clientLeft, u.y = m.y + t.clientTop;
923
+ } else l && s();
924
+ i && !o && l && s();
925
+ const c = l && !o && !i ? wt(l, a) : K(0), d = r.left + a.scrollLeft - u.x - c.x, f = r.top + a.scrollTop - u.y - c.y;
926
+ return {
927
+ x: d,
928
+ y: f,
929
+ width: r.width,
930
+ height: r.height
931
+ };
932
+ }
933
+ function _e(e) {
934
+ return U(e).position === "static";
935
+ }
936
+ function lt(e, t) {
937
+ if (!q(e) || U(e).position === "fixed")
938
+ return null;
939
+ if (t)
940
+ return t(e);
941
+ let n = e.offsetParent;
942
+ return Y(e) === n && (n = n.ownerDocument.body), n;
943
+ }
944
+ function bt(e, t) {
945
+ const n = _(e);
946
+ if (Te(e))
947
+ return n;
948
+ if (!q(e)) {
949
+ let l = ne(e);
950
+ for (; l && !me(l); ) {
951
+ if (I(l) && !_e(l))
952
+ return l;
953
+ l = ne(l);
954
+ }
955
+ return n;
956
+ }
957
+ let o = lt(e, t);
958
+ for (; o && un(o) && _e(o); )
959
+ o = lt(o, t);
960
+ return o && me(o) && _e(o) && !He(o) ? n : o || hn(e) || n;
961
+ }
962
+ const Vn = async function(e) {
963
+ const t = this.getOffsetParent || bt, n = this.getDimensions, o = await n(e.floating);
964
+ return {
965
+ reference: En(e.reference, await t(e.floating), e.strategy),
966
+ floating: {
967
+ x: 0,
968
+ y: 0,
969
+ width: o.width,
970
+ height: o.height
971
+ }
972
+ };
973
+ };
974
+ function Tn(e) {
975
+ return U(e).direction === "rtl";
976
+ }
977
+ const Dn = {
978
+ convertOffsetParentRelativeRectToViewportRelativeRect: An,
979
+ getDocumentElement: Y,
980
+ getClippingRect: kn,
981
+ getOffsetParent: bt,
982
+ getElementRects: Vn,
983
+ getClientRects: wn,
984
+ getDimensions: On,
985
+ getScale: fe,
986
+ isElement: I,
987
+ isRTL: Tn
988
+ };
989
+ function Ct(e, t) {
990
+ return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
991
+ }
992
+ function Bn(e, t) {
993
+ let n = null, o;
994
+ const l = Y(e);
995
+ function i() {
996
+ var a;
997
+ clearTimeout(o), (a = n) == null || a.disconnect(), n = null;
998
+ }
999
+ function r(a, u) {
1000
+ a === void 0 && (a = !1), u === void 0 && (u = 1), i();
1001
+ const s = e.getBoundingClientRect(), {
1002
+ left: c,
1003
+ top: d,
1004
+ width: f,
1005
+ height: m
1006
+ } = s;
1007
+ if (a || t(), !f || !m)
1008
+ return;
1009
+ const p = Ce(d), A = Ce(l.clientWidth - (c + f)), v = Ce(l.clientHeight - (d + m)), w = Ce(c), b = {
1010
+ rootMargin: -p + "px " + -A + "px " + -v + "px " + -w + "px",
1011
+ threshold: F(0, de(1, u)) || 1
1012
+ };
1013
+ let k = !0;
1014
+ function S(H) {
1015
+ const N = H[0].intersectionRatio;
1016
+ if (N !== u) {
1017
+ if (!k)
1018
+ return r();
1019
+ N ? r(!1, N) : o = setTimeout(() => {
1020
+ r(!1, 1e-7);
1021
+ }, 1e3);
1022
+ }
1023
+ N === 1 && !Ct(s, e.getBoundingClientRect()) && r(), k = !1;
1024
+ }
1025
+ try {
1026
+ n = new IntersectionObserver(S, {
1027
+ ...b,
1028
+ // Handle <iframe>s
1029
+ root: l.ownerDocument
1030
+ });
1031
+ } catch {
1032
+ n = new IntersectionObserver(S, b);
1033
+ }
1034
+ n.observe(e);
1035
+ }
1036
+ return r(!0), i;
1037
+ }
1038
+ function Ln(e, t, n, o) {
1039
+ o === void 0 && (o = {});
1040
+ const {
1041
+ ancestorScroll: l = !0,
1042
+ ancestorResize: i = !0,
1043
+ elementResize: r = typeof ResizeObserver == "function",
1044
+ layoutShift: a = typeof IntersectionObserver == "function",
1045
+ animationFrame: u = !1
1046
+ } = o, s = Je(e), c = l || i ? [...s ? ye(s) : [], ...ye(t)] : [];
1047
+ c.forEach((w) => {
1048
+ l && w.addEventListener("scroll", n, {
1049
+ passive: !0
1050
+ }), i && w.addEventListener("resize", n);
1051
+ });
1052
+ const d = s && a ? Bn(s, n) : null;
1053
+ let f = -1, m = null;
1054
+ r && (m = new ResizeObserver((w) => {
1055
+ let [x] = w;
1056
+ x && x.target === s && m && (m.unobserve(t), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
1057
+ var b;
1058
+ (b = m) == null || b.observe(t);
1059
+ })), n();
1060
+ }), s && !u && m.observe(s), m.observe(t));
1061
+ let p, A = u ? ae(e) : null;
1062
+ u && v();
1063
+ function v() {
1064
+ const w = ae(e);
1065
+ A && !Ct(A, w) && n(), A = w, p = requestAnimationFrame(v);
1066
+ }
1067
+ return n(), () => {
1068
+ var w;
1069
+ c.forEach((x) => {
1070
+ l && x.removeEventListener("scroll", n), i && x.removeEventListener("resize", n);
1071
+ }), d?.(), (w = m) == null || w.disconnect(), m = null, u && cancelAnimationFrame(p);
1072
+ };
1073
+ }
1074
+ const Mn = ln, Fn = sn, _n = tn, Nn = rn, Pn = (e, t, n) => {
1075
+ const o = /* @__PURE__ */ new Map(), l = {
1076
+ platform: Dn,
1077
+ ...n
1078
+ }, i = {
1079
+ ...l.platform,
1080
+ _c: o
1081
+ };
1082
+ return en(e, t, {
1083
+ ...l,
1084
+ platform: i
1085
+ });
1086
+ };
1087
+ function Qn(e, t) {
1088
+ const n = D({
1089
+ position: "fixed",
1090
+ left: "0",
1091
+ top: "0",
1092
+ zIndex: 3e3
1093
+ // 确保在 Modal 之上
1094
+ });
1095
+ let o = null;
1096
+ const l = () => {
1097
+ !e.value || !t.value || Pn(e.value, t.value, {
1098
+ placement: "bottom-start",
1099
+ strategy: "fixed",
1100
+ middleware: [
1101
+ Mn(6),
1102
+ // 输入框与下拉列表的间距
1103
+ _n(),
1104
+ // 空间不足自动翻转到上方
1105
+ Fn({ padding: 10 }),
1106
+ // 靠近屏幕边缘时自动位移
1107
+ Nn({
1108
+ apply({ rects: a, elements: u }) {
1109
+ const s = `${a.reference.width}px`;
1110
+ Object.assign(u.floating.style, {
1111
+ width: s,
1112
+ // 必须锁定,否则在 body 下它可能由于内容过多撑开到 100vw
1113
+ minWidth: s,
1114
+ maxWidth: s
1115
+ });
1116
+ }
1117
+ })
1118
+ ]
1119
+ }).then(({ x: a, y: u }) => {
1120
+ Object.assign(n.value, {
1121
+ left: `${a}px`,
1122
+ top: `${u}px`
1123
+ });
1124
+ });
1125
+ }, i = () => {
1126
+ e.value && t.value && (o = Ln(e.value, t.value, l));
1127
+ }, r = () => {
1128
+ o && (o(), o = null);
1129
+ };
1130
+ return rt(r), { floatingStyles: n, startTrack: i, stopTrack: r };
1131
+ }
1132
+ const In = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACT0lEQVR4AaRSO2hTYRT+zn9v2g6CiktFJYoVHXQoOljM2EIEh0orbRKa5qUuDoIZAnXI4FBwcRDikMcNkoQMQjcVESo4OASsW2kLBi3oUKiD1OZx7/H811wJZFF6uOee85/H93/3nKtwQPkvgFKpdKRgVR+UrFrOsurX9N3/DJCvVPxMwx+lKcbgKzbstPhwAXSyWK7eLZZrc4VCNZDPPx/Tt+kCrTqvOrQqfuNrc2OcgW0CduQM9TfJyIB5mQy8UaaxKbftFq3qL9HP1KGGFDe+NDdC/jPnlwgcZEM9lRiU2VFjgngI4FGxa0IvZXecU07XPsc2pkCUIULaa2Z2MsJ7Orkw/8kFiMVCb4XWcQV14w8temL4aJNM47Fh0OHEYqieWAyXT/jPBhzmh7o5EY28Rk/cGWSz2a4GSsTCt3tgs5qmDc726sTQvsS6/c0SFDz97lO/329K4z2Amm1u3ZK11SyrOmNC/ZDYSElWiT5R2resymUZ1pIUv2Qa+iafcrrFretDNJwTf94GUnt7u9u6to3hUW09dQEcIC+BR0LxqgztPnFrotd8wWHclNykaR4dYeCngj0IQNyekOQshLas8hmzLyA3B2UTU6l4eEX8Ld8IZsTu+Mg4hj5xGcTj8f1kLPxChjgO0AdWlAOwnkotbImFrHGFGdOy6u82aJAB+kUZywQ6KaH3ou7TcbguziRApiLWOXjiMvAO2iaic3rH6wxe1Wetd+KRNQKEDV9kwisd83QAQCfkr7uUjEUq2vdUgdJQFExEw++8mLa/AQAA//9h0VsEAAAABklEQVQDAKhs6Pxd3K8TAAAAAElFTkSuQmCC", Un = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgUlEQVR4AXRST0hUYRD/zbfbrqahQpAHlQ3dSurYoaBAwWNQkIT7J/ve09DQsOigkNCha4ckl4Lct0/S3QI7REFEBB08FBHRIYLwIJEodOlUurnfNN+6mq9weMPM+818v2/mm1HYQXK5XH02mz9h1fo7pOE/gkwmU+v5+fuGot8phJdWmSLLnl+4I0RV/xIFCGxCdU3DUwaOkULX18Uve1ydrC4xdwLcwRR9bnO2kwQIoCIDEowpXjsZ4vBCSyx+w/Nnb1KElkkwG4OqGhG79QUImEkT0T2JrpZ4fV5sF0Ad6je9BrBKxLeZuVv8rS9IAG4qGf5oTPSolNxIXOyUNjqlpb0W4xI+Cd62dVqcAAGBVqSCVmPMIoPCttzm2MEBAoeLir4hRK2AWPyVIAHRHMH0Ly0tCBF3M5t+Aq6A0HPJSSyCeZAIz7BNAgQwqxNyc1NL7MCoeyH1xNWpuKsTcet7fv46QI0/zdoEtkmAwHGcHyFQj/Q57vuPzm7m+X5efB6HYj3kOCubuLVlApltfdbPX5uaetCmdeKVAqUN1mdy04XR3PTsqAHPWMztTb24myvEBBuRM+WlUnbzDEXeya2D4XC0zrJqnXwsO3pG3mCMGWMK6lQZk2A0hH2GMSxL9VlI6lVkd90RgGKkVFrrc+9REXubjLH9FxfbbVUVGG5v4i2p8LD8x9ax65C66KTfKGCSDc97fv6DJzuf9QtDtm+iqsM1ot70w9O+YDbmSQ6bkkyCJitnAUcnryqmuExgSsZYKypvgFvS+5xVsJk0MGlps97mFCVXpnNZqoBcbo2QyJz7dCLj6JTj6tRxVyf3izZUtNndwM73SU55JzaO4Q8AAAD//54At5MAAAAGSURBVAMAh2IbMAJQAZQAAAAASUVORK5CYII=", Hn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACC0lEQVR4AXxRv2tTURT+zk1iIjgoOMShkIJVNwf/gQYULOjQwaGvGl8TBMEMDg4ODgF17likvL4HIYm4OLg61K2CooWKDoKCDoJDHASb9N17POf5Enwk6eN+9/z+3nfvNZjxbYS9ymbYXlQ8CbvnZrRhKoEOFMl9zFHuuaJA/E4Jp5FMJTCwZWner/veCYX6ecQVsRNrKsFE1yGJDMFW1Hm4FXX7hnIvADquvkJ9zYn/U3vw35chYOA2Ebcc26uWbVWwnKKqOak9ktmmYLwyBATkY+d2b63d2FYgps9umNtTX6G18WTqmNRmTNB+djaIOqEpmC+FIn8Lom4vaD89n2lKgwkCebYNsvEnAlXI4CIMXSagTNa9l9p6Ojc2CUEYhiW5oE3IxQH4AYNFeb5qvea9SuB7Vc1J7ReDjomidZ2RWNKysyneFHNFovGgxIiizoWR9BGRqiKw76i0qj2JAo7jtwycJDvY1eQIDNM0lu+OYrUHf/BBbEmI9sTKP2VvNGpvAP4Kc1SVSGb2OlLiVQa+12srr7UrUZA6Lx27e0HUu6PnU/kOXGbwaT1Gq9XKa80xmgTa1hlFQiBP1hNWn4AdOd8DpmLfgnakYV/yv/UF5ipn+qLyvgGp2us6I/V/R+DYPiYenpKbv0Y8mGeLS0OmhYbvLQuWiGkeFkuGBwtrvrdyMKA5nVGCvwAAAP//q4xnOgAAAAZJREFUAwCH2O8KfEWHWQAAAABJRU5ErkJggg==", Wn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACmklEQVR4AXRTT0jUQRT+3uyqGxgYeCiy1JAo6JBUp4Q81EEiKKiDa+H+/ENGHgPpZtChQ4EHL+Ku+9t0V7EkQSGPBYGHBIU6RAqt2cFDBw9C+3de3yy7hobDvHm/+d4337x58xuDQ9r4+FRDLJZqG49PtrvvQ2j4TyDmJ7sm/NRqoMpsIYD3RgIL7pvY54lEqvug0J5APB4PxfzUOwFGRWReVJp7I+GjW+nvxxQo0DagOjLhJxcctyK0J6BS/UaAc1nNtXrdnc88rzPtSMPDwwXiM7R2WNwDpMVKzTTKrSRQTq0tq9mOR55XWliOY2wsVQ+RRWZQiyACjiPQ9pg/0+U4JQEoBkXMi4OLmWpdsEZXofY5yYtSzH10HHJHBPYJMZhyhS8X84U5B+y36iaBNPxMr59nPTo9z8uU4jaToL8Yj88eN2xNTG+3r+/BBncMuSLRln1/+iZgdkhEY2NjvfMVo1DarbG20GIqoPMaqL5G38Zb+GBh36roMufpzc3N3xSvi0ZfX6APEYNAg86bjMluCFDr+7OX1JoWQNJed/ipaK6Z6oOi2dbTZ85eVan+YYLBL7yBdRb9IXkha23aPPa8bQBrFoUVqo4qMMU5mOZ2JBKeo98RiwHi8xQ7Qo6vCsdb6e+//4ubgJegLzlmDOQ6i/XKCVQskZg9aaFtRrBGsYytQpQiu+SPOI5xQ2+kK6mQJRJHo8lko8MqxswGhceCzY25mMnLEmOf3Br6f2/BaLaTqhuSl6/xxPRQNDrJehBRrSWxABMaMnmsKfCN9eEfSZS9lAG9O3OmJ9J1C9ABVb1rgoF1PqA/Cokw3k7stgKDvZHwHXcUYqW+J1CacejlcXoi4SvFvD2lRdxAER0s3glirS5Gyr7+FwAA//8Pj6q2AAAABklEQVQDAJPeLlNn5TR8AAAAAElFTkSuQmCC", Jn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABFUlEQVR4AaRQO07DQBCdWe8B4B5IFFyAK9ARkIVNhIQEEiVtJLgABRVRvIBCJBquwBVyDgoaSnuHeZY3MlYcNsnIb8fze6M3hra0XoKJm95N3Nv3EnyhFvb2EgjRJbOMKqmO2tDcvQ5fK+qvl4CJbOn9/CJPP9tArp5sHtP4lc652VXxPL1Z1hRFIOytF1NuTJCfnT4Ms8HjSgJctn1xIt6hxqIkdK+u8U8zT1ESmP5enUkWmqMkhG2FmxXOvR+EGD5KAhoDqsQvtiMXJQGNQJ4N8mF6PMd/wL8SxuOXPSG21pj9p+L1EOjGyAHoQQ0zWGDqx9pbPWIpwqOEkw+gGyMHoAc1ozOkVhOcZyepYndNpDpPvwAAAP//BVQJHAAAAAZJREFUAwDZWL4hub5xHQAAAABJRU5ErkJggg==", Gn = "data:image/svg+xml,%3csvg%20t='1695277594902'%20fill='%23fff'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2534'%20width='200'%20height='200'%3e%3cpath%20d='M448%2085.333333a362.666667%20362.666667%200%201%200%20224.512%20647.509334l155.818667%20155.818666a42.666667%2042.666667%200%200%200%2060.330666-60.330666l-155.818666-155.818667A362.666667%20362.666667%200%200%200%20448%2085.333333zM170.666667%20448a277.333333%20277.333333%200%201%201%20554.666666%200%20277.333333%20277.333333%200%200%201-554.666666%200z'%20p-id='2535'%3e%3c/path%3e%3c/svg%3e", Kn = { class: "search-container" }, qn = { class: "selection-wrapper" }, Yn = { class: "tag-text" }, zn = ["onClick"], Xn = {
1133
+ key: 0,
1134
+ class: "search-tag collapse"
1135
+ }, jn = ["placeholder"], Zn = { class: "suffix-area" }, $n = {
1136
+ key: 1,
1137
+ class: "loading-spinner"
1138
+ }, eo = { class: "search-icon" }, to = ["src"], no = {
1139
+ key: 0,
1140
+ class: "history-section"
1141
+ }, oo = { class: "history-header" }, lo = ["onMousedown"], so = { class: "category-tag" }, io = ["src"], ro = { class: "type-text" }, ao = { class: "result-text" }, co = {
1142
+ key: 0,
1143
+ class: "status-msg"
1144
+ }, uo = ["onMousedown"], fo = { class: "category-tag" }, mo = ["src"], po = { class: "type-text" }, ho = { class: "result-text" }, go = {
1145
+ key: 0,
1146
+ class: "load-more-msg"
1147
+ }, vo = {
1148
+ key: 1,
1149
+ class: "load-more-msg no-more"
1150
+ }, yo = {
1151
+ key: 2,
1152
+ class: "status-msg"
1153
+ }, Ao = /* @__PURE__ */ at({
1154
+ __name: "index",
1155
+ props: {
1156
+ modelValue: { default: null },
1157
+ multiple: { type: Boolean, default: !1 },
1158
+ collapseTags: { type: Boolean, default: !1 },
1159
+ searchTypeList: { default: () => [
1160
+ "Continent",
1161
+ "Country",
1162
+ "Region",
1163
+ "City",
1164
+ "Seaport",
1165
+ "Airport"
1166
+ ] },
1167
+ historyKey: { default: "" }
1168
+ },
1169
+ emits: [
1170
+ "update:modelValue",
1171
+ "select",
1172
+ "change",
1173
+ "submit-search",
1174
+ "remove"
1175
+ ],
1176
+ setup(e, { emit: t }) {
1177
+ const n = e, o = t, l = D(null), i = D(null), r = D(null), a = D(""), u = D(""), s = D(!1), c = D(!1);
1178
+ let d = null;
1179
+ const f = G(() => n.modelValue ? Array.isArray(n.modelValue) ? n.modelValue : [n.modelValue] : []), m = G(() => n.multiple ? n.collapseTags ? f.value.slice(0, 1) : f.value : []), p = G(() => a.value || f.value.length > 0), A = G(() => n.multiple ? a.value ? `${a.value.length * 10 + 20}px` : "10px" : "100%"), { searchHistory: v, saveToHistory: w, clearHistory: x } = Qt(
1180
+ qe(n, "historyKey")
1181
+ ), {
1182
+ searchResults: b,
1183
+ loading: k,
1184
+ isFetchingMore: S,
1185
+ isFinished: H,
1186
+ currentPage: N,
1187
+ fetchData: W,
1188
+ filterByTypes: z
1189
+ } = Ht(a, qe(n, "searchTypeList")), { floatingStyles: P, startTrack: oe, stopTrack: Z } = Qn(
1190
+ i,
1191
+ r
1192
+ ), B = G(() => {
1193
+ let y = "";
1194
+ try {
1195
+ if (typeof useCookie == "function") {
1196
+ const C = useCookie("jc-language").value;
1197
+ if (C) return /en/.test(C) || /en-US/.test(C);
1198
+ }
1199
+ } catch {
1200
+ }
1201
+ return process.client ? y = document.cookie || "" : process.server && (y = useNuxtApp?.()?.ssrContext?.event.node.req.headers.cookie || ""), /jc-language=en-US/.test(y) || /jc-language=en/.test(y);
1202
+ }), X = G(() => n.multiple && f.value.length > 0 ? "" : s.value && !n.multiple ? u.value : B.value ? "Please enter..." : "请输入..."), he = () => l.value?.focus(), $ = (y) => {
1203
+ if (w(y), n.multiple) {
1204
+ if (!f.value.some((R) => R.id === y.id)) {
1205
+ const R = [...f.value, y];
1206
+ o("update:modelValue", R);
1207
+ }
1208
+ a.value = "";
1209
+ } else
1210
+ u.value = be(y), s.value = !0, a.value = "", c.value = !1, o("update:modelValue", y);
1211
+ o("select", y);
1212
+ }, J = (y) => {
1213
+ const C = f.value.filter((R) => R.id !== y.id);
1214
+ o("update:modelValue", C), o("remove", y);
1215
+ }, L = () => {
1216
+ n.multiple && !a.value && f.value.length > 0 && J(
1217
+ f.value[f.value.length - 1]
1218
+ );
1219
+ }, Q = () => {
1220
+ a.value = "", s.value = !1, u.value = "", o("update:modelValue", n.multiple ? [] : null);
1221
+ }, Le = async () => {
1222
+ if (c.value = !0, !n.multiple && s.value && b.value.length === 0) {
1223
+ const y = n.modelValue;
1224
+ if (y?.id) {
1225
+ k.value = !0;
1226
+ try {
1227
+ const C = await Ut(
1228
+ y.id,
1229
+ y.type
1230
+ );
1231
+ b.value = z(C.records);
1232
+ } finally {
1233
+ k.value = !1;
1234
+ }
1235
+ }
1236
+ }
1237
+ }, kt = () => setTimeout(() => c.value = !1, 200), Ot = (y) => {
1238
+ y.target.value === "" && !n.multiple && Q();
1239
+ }, Et = () => {
1240
+ n.multiple ? o("submit-search", f.value) : s.value ? o("submit-search", n.modelValue) : o("submit-search", { nameCn: a.value, type: "Manual" }), c.value = !1;
1241
+ }, Vt = (y) => {
1242
+ const { scrollTop: C, scrollHeight: R, clientHeight: le } = y.target;
1243
+ C + le >= R - 20 && !k.value && !S.value && !H.value && a.value && W(N.value + 1, !0);
1244
+ };
1245
+ Ye(c, (y) => {
1246
+ y ? oe() : Z();
1247
+ }), Ye(a, (y) => {
1248
+ if (!y.trim()) {
1249
+ b.value = [];
1250
+ return;
1251
+ }
1252
+ d && clearTimeout(d), d = setTimeout(() => W(1, !1), 300);
1253
+ });
1254
+ const Ge = (y) => ({
1255
+ City: Jn,
1256
+ Country: Wn,
1257
+ Airport: In,
1258
+ Seaport: Hn
1259
+ })[y] || Un, be = (y) => y.display || y.nameEn || y.nameCn || "", Tt = (y) => f.value.some((C) => C.id === y.id);
1260
+ return rt(Z), (y, C) => (E(), V("div", Kn, [
1261
+ g("div", {
1262
+ class: Re(["search-input-wrapper", { "is-multiple": e.multiple }]),
1263
+ ref_key: "referenceRef",
1264
+ ref: i,
1265
+ onClick: he
1266
+ }, [
1267
+ g("div", qn, [
1268
+ e.multiple && f.value.length > 0 ? (E(), V(ue, { key: 0 }, [
1269
+ (E(!0), V(ue, null, Se(m.value, (R, le) => (E(), V("div", {
1270
+ key: R.id || le,
1271
+ class: "search-tag"
1272
+ }, [
1273
+ g("span", Yn, M(be(R)), 1),
1274
+ g("span", {
1275
+ class: "tag-close",
1276
+ onClick: se((Ke) => J(R), ["stop"])
1277
+ }, "×", 8, zn)
1278
+ ]))), 128)),
1279
+ e.collapseTags && f.value.length > 1 ? (E(), V("div", Xn, " + " + M(f.value.length - 1), 1)) : ee("", !0)
1280
+ ], 64)) : ee("", !0),
1281
+ Ne(g("input", {
1282
+ ref_key: "inputRef",
1283
+ ref: l,
1284
+ class: Re({ "is-selected-state": s.value && !e.multiple }),
1285
+ "onUpdate:modelValue": C[0] || (C[0] = (R) => a.value = R),
1286
+ type: "text",
1287
+ placeholder: X.value,
1288
+ style: ze({ width: A.value }),
1289
+ onFocus: Le,
1290
+ onBlur: kt,
1291
+ onInput: Ot,
1292
+ onKeydown: Dt(L, ["delete"])
1293
+ }, null, 46, jn), [
1294
+ [ut, a.value]
1295
+ ])
1296
+ ]),
1297
+ g("div", Zn, [
1298
+ p.value ? (E(), V("span", {
1299
+ key: 0,
1300
+ class: "clear-icon",
1301
+ onMousedown: C[1] || (C[1] = se(() => {
1302
+ }, ["prevent"])),
1303
+ onClick: se(Q, ["stop"])
1304
+ }, "ⓧ", 32)) : ee("", !0),
1305
+ h(k) && !h(S) ? (E(), V("div", $n)) : (E(), V("button", {
1306
+ key: 2,
1307
+ class: "search-btn",
1308
+ onClick: Et
1309
+ }, [
1310
+ g("span", eo, [
1311
+ g("img", {
1312
+ src: h(Gn),
1313
+ alt: "search"
1314
+ }, null, 8, to)
1315
+ ])
1316
+ ]))
1317
+ ])
1318
+ ], 2),
1319
+ (E(), ct(Bt, { to: "body" }, [
1320
+ Ne(g("div", {
1321
+ ref_key: "floatingRef",
1322
+ ref: r,
1323
+ class: "dropdown-list",
1324
+ style: ze(h(P)),
1325
+ onScroll: Vt
1326
+ }, [
1327
+ Me(y.$slots, "history", { searchHistory: h(v) }, () => [
1328
+ h(v).length > 0 && !a.value ? (E(), V("div", no, [
1329
+ g("div", oo, [
1330
+ g("span", null, M(B.value ? "Recent search" : "最近搜索"), 1),
1331
+ g("span", {
1332
+ class: "clear-btn",
1333
+ onMousedown: C[2] || (C[2] = se(() => {
1334
+ }, ["prevent"])),
1335
+ onClick: C[3] || (C[3] = se(
1336
+ //@ts-ignore
1337
+ (...R) => h(x) && h(x)(...R),
1338
+ ["stop"]
1339
+ ))
1340
+ }, M(B.value ? "Clear" : "清空"), 33)
1341
+ ]),
1342
+ (E(!0), V(ue, null, Se(h(v), (R, le) => (E(), V("div", {
1343
+ key: "hist-" + le,
1344
+ class: "dropdown-item",
1345
+ onMousedown: (Ke) => $(R)
1346
+ }, [
1347
+ g("div", so, [
1348
+ g("img", {
1349
+ class: "type-icon",
1350
+ src: Ge(R.type),
1351
+ alt: ""
1352
+ }, null, 8, io),
1353
+ g("span", ro, M(R.type), 1)
1354
+ ]),
1355
+ g("div", ao, M(be(R)), 1)
1356
+ ], 40, lo))), 128)),
1357
+ C[4] || (C[4] = g("hr", { class: "divider" }, null, -1))
1358
+ ])) : ee("", !0)
1359
+ ], !0),
1360
+ h(k) && !h(S) ? (E(), V("div", co, M(B.value ? "Searching..." : "正在搜索中..."), 1)) : h(b).length > 0 ? (E(), V(ue, { key: 1 }, [
1361
+ Me(y.$slots, "results", { searchResults: h(b) }, () => [
1362
+ (E(!0), V(ue, null, Se(h(b), (R, le) => (E(), V("div", {
1363
+ key: le,
1364
+ class: Re(["dropdown-item", { "is-active": Tt(R) }]),
1365
+ onMousedown: (Ke) => $(R)
1366
+ }, [
1367
+ g("div", fo, [
1368
+ g("img", {
1369
+ class: "type-icon",
1370
+ src: Ge(R.type),
1371
+ alt: ""
1372
+ }, null, 8, mo),
1373
+ g("span", po, M(R.type), 1)
1374
+ ]),
1375
+ g("div", ho, M(be(R)), 1)
1376
+ ], 42, uo))), 128))
1377
+ ], !0),
1378
+ h(S) ? (E(), V("div", go, M(B.value ? "Loading more..." : "正在加载更多..."), 1)) : h(H) && a.value ? (E(), V("div", vo, M(B.value ? "All results have been loaded" : "已加载全部结果"), 1)) : ee("", !0)
1379
+ ], 64)) : a.value && !h(k) ? (E(), V("div", yo, [
1380
+ Me(y.$slots, "noData", {}, () => [
1381
+ Ie(M(B.value ? `No results found related to "${a.value}".` : `未找到与 "${a.value}" 相关的结果`), 1)
1382
+ ], !0)
1383
+ ])) : ee("", !0)
1384
+ ], 36), [
1385
+ [
1386
+ Lt,
1387
+ c.value && (h(b).length > 0 || h(k) || a.value || h(v).length > 0)
1388
+ ]
1389
+ ])
1390
+ ]))
1391
+ ]));
1392
+ }
1393
+ }), Rt = (e, t) => {
1394
+ const n = e.__vccOpts || e;
1395
+ for (const [o, l] of t)
1396
+ n[o] = l;
1397
+ return n;
1398
+ }, St = /* @__PURE__ */ Rt(Ao, [["__scopeId", "data-v-b4ec2a47"]]), wo = { class: "modal-container" }, xo = { class: "modal-body" }, bo = { class: "form-item" }, Co = { class: "input-box" }, Ro = { class: "form-item" }, So = { class: "type-group" }, ko = ["onClick"], Oo = {
1399
+ key: 0,
1400
+ class: "check-mark"
1401
+ }, Eo = { class: "form-item" }, Vo = {
1402
+ __name: "ApplyDataDialog",
1403
+ props: {
1404
+ value: Boolean
1405
+ // Vue 2.7 v-model 绑定
1406
+ },
1407
+ emits: ["update:value", "confirm"],
1408
+ setup(e, { emit: t }) {
1409
+ const n = t, o = ["City", "Port", "Airport"], l = D(null), i = ft({
1410
+ name: "",
1411
+ type: "City",
1412
+ selectedCountry: null
1413
+ }), r = () => {
1414
+ n("update:value", !1);
1415
+ }, a = () => {
1416
+ if (!i.name || !l.value) {
1417
+ alert("Please fill in all fields");
1418
+ return;
1419
+ }
1420
+ n("confirm", { ...i, country: l.value });
1421
+ };
1422
+ return (u, s) => e.value ? (E(), V("div", {
1423
+ key: 0,
1424
+ class: "modal-mask",
1425
+ onClick: se(r, ["self"])
1426
+ }, [
1427
+ g("div", wo, [
1428
+ g("div", { class: "modal-header" }, [
1429
+ s[2] || (s[2] = g("span", { class: "header-title" }, "Apply for data addition", -1)),
1430
+ g("div", {
1431
+ class: "close-btn",
1432
+ onClick: r
1433
+ }, "×")
1434
+ ]),
1435
+ g("div", xo, [
1436
+ g("div", bo, [
1437
+ s[3] || (s[3] = g("label", { class: "required" }, "Data To Add", -1)),
1438
+ g("div", Co, [
1439
+ Ne(g("input", {
1440
+ "onUpdate:modelValue": s[0] || (s[0] = (c) => i.name = c),
1441
+ type: "text",
1442
+ placeholder: "Please enter your data",
1443
+ class: "custom-input"
1444
+ }, null, 512), [
1445
+ [ut, i.name]
1446
+ ])
1447
+ ])
1448
+ ]),
1449
+ g("div", Ro, [
1450
+ s[4] || (s[4] = g("label", { class: "required" }, "Type", -1)),
1451
+ g("div", So, [
1452
+ (E(), V(ue, null, Se(o, (c) => g("div", {
1453
+ key: c,
1454
+ class: Re(["type-btn", { active: i.type === c }]),
1455
+ onClick: (d) => i.type = c
1456
+ }, [
1457
+ Ie(M(c) + " ", 1),
1458
+ i.type === c ? (E(), V("div", Oo)) : ee("", !0)
1459
+ ], 10, ko)), 64))
1460
+ ])
1461
+ ]),
1462
+ g("div", Eo, [
1463
+ s[5] || (s[5] = g("label", { class: "required" }, "Country", -1)),
1464
+ O(St, {
1465
+ "search-type-list": ["Country"],
1466
+ "model-value": l.value,
1467
+ "onUpdate:modelValue": s[1] || (s[1] = (c) => l.value = c),
1468
+ style: {
1469
+ margin: "0 auto"
1470
+ }
1471
+ }, null, 8, ["model-value"])
1472
+ ])
1473
+ ]),
1474
+ g("div", { class: "modal-footer" }, [
1475
+ g("button", {
1476
+ class: "confirm-btn",
1477
+ onClick: a
1478
+ }, "Confirm")
1479
+ ])
1480
+ ])
1481
+ ])) : ee("", !0);
1482
+ }
1483
+ }, To = /* @__PURE__ */ Rt(Vo, [["__scopeId", "data-v-6ca2ec8d"]]), Do = { class: "global-modal-header-custom" }, Bo = { class: "global-modal-body-custom" }, Lo = { class: "global-modal-footer-custom" }, Mo = /* @__PURE__ */ at({
1484
+ __name: "GlobalModal",
1485
+ setup(e) {
1486
+ const t = D(), n = D(!1), o = D({
1487
+ city: "",
1488
+ company: "",
1489
+ email: "",
1490
+ phone: "",
1491
+ name: "",
1492
+ agreement: !1
1493
+ }), l = ft({
1494
+ city: [{ required: !0, message: "请输入所在地城市", trigger: "blur" }],
1495
+ company: [{ required: !0, message: "请输入公司名称", trigger: "blur" }],
1496
+ email: [
1497
+ { required: !0, message: "请输入邮箱", trigger: "blur" },
1498
+ { type: "email", message: "请输入有效的邮箱地址", trigger: "blur" }
1499
+ ],
1500
+ agreement: [
1501
+ {
1502
+ validator: (u, s, c) => {
1503
+ s ? c() : c(new Error("请同意隐私政策"));
1504
+ },
1505
+ trigger: "change"
1506
+ }
1507
+ ]
1508
+ }), i = () => {
1509
+ n.value = !1, ie.emit(re.Close, void 0), t.value?.resetFields();
1510
+ }, r = async () => {
1511
+ t.value && await t.value.validate((u) => {
1512
+ u && (ie.emit(re.Submit, o.value), i(), o.value = {
1513
+ city: "",
1514
+ company: "",
1515
+ email: "",
1516
+ phone: "",
1517
+ name: "",
1518
+ agreement: !1
1519
+ });
1520
+ });
1521
+ }, a = (u) => {
1522
+ n.value = !0;
1523
+ };
1524
+ return it(() => {
1525
+ ie.on(re.Open, a);
1526
+ }), Mt(() => {
1527
+ ie.off(re.Open, a);
1528
+ }), (u, s) => (E(), ct(h(_t), {
1529
+ modelValue: n.value,
1530
+ "onUpdate:modelValue": s[7] || (s[7] = (c) => n.value = c),
1531
+ "before-close": i,
1532
+ "show-close": !1,
1533
+ "close-on-click-modal": !0,
1534
+ width: 500,
1535
+ class: "global-modal-custom"
1536
+ }, {
1537
+ header: T(() => [
1538
+ g("div", Do, [
1539
+ s[9] || (s[9] = g("h2", null, "即刻链接全球货代", -1)),
1540
+ O(h(Xe), {
1541
+ link: "",
1542
+ onClick: i,
1543
+ class: "close-button-custom",
1544
+ "aria-label": "Close"
1545
+ }, {
1546
+ default: T(() => [...s[8] || (s[8] = [
1547
+ g("span", { style: { "font-size": "2rem" } }, "×", -1)
1548
+ ])]),
1549
+ _: 1
1550
+ })
1551
+ ])
1552
+ ]),
1553
+ footer: T(() => [
1554
+ g("div", Lo, [
1555
+ O(h(Xe), {
1556
+ type: "primary",
1557
+ class: "submit-button-custom",
1558
+ onClick: r
1559
+ }, {
1560
+ default: T(() => [...s[11] || (s[11] = [
1561
+ Ie(" 加入会员 ", -1)
1562
+ ])]),
1563
+ _: 1
1564
+ })
1565
+ ])
1566
+ ]),
1567
+ default: T(() => [
1568
+ g("div", Bo, [
1569
+ O(h(Nt), {
1570
+ model: o.value,
1571
+ rules: l,
1572
+ ref_key: "formRef",
1573
+ ref: t,
1574
+ "label-position": "top",
1575
+ onSubmit: s[6] || (s[6] = se(() => {
1576
+ }, ["prevent"]))
1577
+ }, {
1578
+ default: T(() => [
1579
+ O(h(Fe), { gutter: 20 }, {
1580
+ default: T(() => [
1581
+ O(h(ge), { span: 12 }, {
1582
+ default: T(() => [
1583
+ O(h(ce), {
1584
+ label: "所在地(城市)",
1585
+ prop: "city"
1586
+ }, {
1587
+ default: T(() => [
1588
+ O(h(ve), {
1589
+ modelValue: o.value.city,
1590
+ "onUpdate:modelValue": s[0] || (s[0] = (c) => o.value.city = c),
1591
+ placeholder: "请输入城市"
1592
+ }, null, 8, ["modelValue"])
1593
+ ]),
1594
+ _: 1
1595
+ })
1596
+ ]),
1597
+ _: 1
1598
+ }),
1599
+ O(h(ge), { span: 12 }, {
1600
+ default: T(() => [
1601
+ O(h(ce), {
1602
+ label: "公司名称",
1603
+ prop: "company"
1604
+ }, {
1605
+ default: T(() => [
1606
+ O(h(ve), {
1607
+ modelValue: o.value.company,
1608
+ "onUpdate:modelValue": s[1] || (s[1] = (c) => o.value.company = c),
1609
+ placeholder: "请输入公司名称"
1610
+ }, null, 8, ["modelValue"])
1611
+ ]),
1612
+ _: 1
1613
+ })
1614
+ ]),
1615
+ _: 1
1616
+ })
1617
+ ]),
1618
+ _: 1
1619
+ }),
1620
+ O(h(Fe), { gutter: 20 }, {
1621
+ default: T(() => [
1622
+ O(h(ge), { span: 12 }, {
1623
+ default: T(() => [
1624
+ O(h(ce), {
1625
+ label: "邮箱",
1626
+ prop: "email"
1627
+ }, {
1628
+ default: T(() => [
1629
+ O(h(ve), {
1630
+ modelValue: o.value.email,
1631
+ "onUpdate:modelValue": s[2] || (s[2] = (c) => o.value.email = c),
1632
+ placeholder: "请输入邮箱"
1633
+ }, null, 8, ["modelValue"])
1634
+ ]),
1635
+ _: 1
1636
+ })
1637
+ ]),
1638
+ _: 1
1639
+ }),
1640
+ O(h(ge), { span: 12 }, {
1641
+ default: T(() => [
1642
+ O(h(ce), {
1643
+ label: "电话",
1644
+ prop: "phone"
1645
+ }, {
1646
+ default: T(() => [
1647
+ O(h(ve), {
1648
+ modelValue: o.value.phone,
1649
+ "onUpdate:modelValue": s[3] || (s[3] = (c) => o.value.phone = c),
1650
+ placeholder: "请输入电话"
1651
+ }, null, 8, ["modelValue"])
1652
+ ]),
1653
+ _: 1
1654
+ })
1655
+ ]),
1656
+ _: 1
1657
+ })
1658
+ ]),
1659
+ _: 1
1660
+ }),
1661
+ O(h(Fe), null, {
1662
+ default: T(() => [
1663
+ O(h(ge), { span: 24 }, {
1664
+ default: T(() => [
1665
+ O(h(ce), {
1666
+ label: "姓名",
1667
+ prop: "name"
1668
+ }, {
1669
+ default: T(() => [
1670
+ O(h(ve), {
1671
+ modelValue: o.value.name,
1672
+ "onUpdate:modelValue": s[4] || (s[4] = (c) => o.value.name = c),
1673
+ placeholder: "请输入您的全名"
1674
+ }, null, 8, ["modelValue"])
1675
+ ]),
1676
+ _: 1
1677
+ })
1678
+ ]),
1679
+ _: 1
1680
+ })
1681
+ ]),
1682
+ _: 1
1683
+ }),
1684
+ O(h(ce), {
1685
+ prop: "agreement",
1686
+ class: "agreement-item"
1687
+ }, {
1688
+ default: T(() => [
1689
+ O(h(Pt), {
1690
+ modelValue: o.value.agreement,
1691
+ "onUpdate:modelValue": s[5] || (s[5] = (c) => o.value.agreement = c),
1692
+ label: "我同意"
1693
+ }, null, 8, ["modelValue"]),
1694
+ s[10] || (s[10] = g("a", {
1695
+ href: "#",
1696
+ class: "privacy-link"
1697
+ }, "隐私政策", -1))
1698
+ ]),
1699
+ _: 1
1700
+ })
1701
+ ]),
1702
+ _: 1
1703
+ }, 8, ["model", "rules"])
1704
+ ])
1705
+ ]),
1706
+ _: 1
1707
+ }, 8, ["modelValue"]));
1708
+ }
1709
+ });
1710
+ let Fo = {
1711
+ open() {
1712
+ ie.emit(re.Open);
1713
+ },
1714
+ close() {
1715
+ ie.emit(re.Close);
1716
+ },
1717
+ onSubmit(e) {
1718
+ ie.on(re.Submit, e);
1719
+ }
1720
+ };
1721
+ function Qo() {
1722
+ let e = !1;
1723
+ return {
1724
+ install(t) {
1725
+ if (typeof window < "u" && !e) {
1726
+ const n = document.createElement("div");
1727
+ n.setAttribute("id", "global-modal-root"), document.body.appendChild(n), Ft(Mo).mount(n), e = !0;
1728
+ }
1729
+ t.config.globalProperties.$globalModal = Fo;
1730
+ }
1731
+ };
1732
+ }
1733
+ const st = {
1734
+ ApplyDataDialog: To,
1735
+ JcSearch: St
1736
+ }, Io = {
1737
+ install(e) {
1738
+ for (const t in st)
1739
+ e.component(t, st[t]);
1740
+ }
1741
+ };
1742
+ export {
1743
+ To as ApplyDataDialog,
1744
+ Mo as GlobalModal,
1745
+ St as JcSearch,
1746
+ Wo as MODAL_ACTION,
1747
+ Qo as createGlobalModalPlugin,
1748
+ Io as default,
1749
+ Jo as emitter
1750
+ };