@huyooo/ui 4.0.2 → 4.0.3

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.
Files changed (57) hide show
  1. package/dist/{AuthkitAppSetting-Cg8j3nES.js → AuthkitAppSetting-Mt0Npsrg.js} +20 -17
  2. package/dist/{CustomTable-C15Dgbks.js → CustomTable-DWiyrYnW.js} +14 -14
  3. package/dist/{FeedbackModal.vue_vue_type_script_setup_true_lang-Ddy1jcdL.js → FeedbackModal.vue_vue_type_script_setup_true_lang-Cw2KkPEV.js} +9 -8
  4. package/dist/LandingPageLinkGroup-CVktmuZn.js +768 -0
  5. package/dist/{LandingPageSectionTabs-BJQeq3V5.js → LandingPageSectionTabs-dSiKXmAa.js} +6 -6
  6. package/dist/{LegalDocViewer-BuzKCAfO.js → LegalDocViewer-Dg5IUUsW.js} +24 -21
  7. package/dist/{PaySubscriptions-ZSvRTG2i.js → PaySubscriptions-D1jt316F.js} +22 -21
  8. package/dist/{PricingPlans-DTGJ-_us.js → PricingPlans-DuVbKs34.js} +3 -3
  9. package/dist/{ReferrerReferees-gkKtDau-.js → ReferrerReferees-QPRxJ-CP.js} +3 -3
  10. package/dist/Report-DjNFwR2V.js +324 -0
  11. package/dist/{Upload.vue_vue_type_script_setup_true_lang-C6B5_Hjo.js → Upload.vue_vue_type_script_setup_true_lang-BIRnaBoz.js} +1 -1
  12. package/dist/{UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-BH6l-SKs.js → UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-CGWtJ2il.js} +6 -6
  13. package/dist/{WidthContainer-DXwIiG2x.js → WidthContainer-BwYM1SLO.js} +10 -10
  14. package/dist/authkit.js +8 -8
  15. package/dist/common/globalConfig.d.ts +0 -5
  16. package/dist/common.js +2 -2
  17. package/dist/components/LandingPage/LandingPageContact.vue.d.ts +14 -1
  18. package/dist/components/LandingPage/LandingPageContactForm.vue.d.ts +3 -8
  19. package/dist/components/LandingPage/LandingPageFooterContact.vue.d.ts +33 -5
  20. package/dist/components/LandingPage/LandingPageLink.vue.d.ts +7 -2
  21. package/dist/components/LandingPage/LandingPageReportForm.vue.d.ts +4 -0
  22. package/dist/components/PrivateCom/Report.vue.d.ts +2 -0
  23. package/dist/composables/Authkit/useAuthkitAppsAuthPageInfo.d.ts +14 -0
  24. package/dist/composables.js +10 -10
  25. package/dist/feedback.js +2 -2
  26. package/dist/{fetchAuthPageAboutUs-C-jQ44QK.js → fetchAuthPageAboutUs-D_l0X2Xq.js} +2 -2
  27. package/dist/{index-BIxwv9Xs.js → index-C81Mrlvt.js} +1 -1
  28. package/dist/{index-5OR_BVTz.js → index-hjdpP8PD.js} +1 -1
  29. package/dist/landingPage.d.ts +1 -0
  30. package/dist/landingPage.js +17 -16
  31. package/dist/main.js +106 -104
  32. package/dist/pay.js +3 -3
  33. package/dist/privateCom.d.ts +1 -0
  34. package/dist/privateCom.js +3 -2
  35. package/dist/referrer.js +1 -1
  36. package/dist/{runtime-B-tHI8-q.js → runtime-DgASwLjo.js} +23 -25
  37. package/dist/style.css +1 -1
  38. package/dist/types/api/ones.generated.d.ts +44 -0
  39. package/dist/types/app.d.ts +9 -0
  40. package/dist/upload.js +2 -2
  41. package/dist/{useAccessPosture-DBNTLWQn.js → useAccessPosture-DZj1K8tj.js} +33 -33
  42. package/dist/{useAuthkitAppsAuthPageInfo-CsivtUQH.js → useAuthkitAppsAuthPageInfo-Dmm9xVjp.js} +25 -23
  43. package/dist/{useAuthkitAuth-CV60Hc3o.js → useAuthkitAuth-DkP0hwv-.js} +1 -1
  44. package/dist/{useAuthkitUsersProfile-CQOLEAxC.js → useAuthkitUsersProfile-CR4lcY7Y.js} +1 -1
  45. package/dist/{useEnsureAuthenticated-BYGI2uYZ.js → useEnsureAuthenticated-DV2hKAPd.js} +1 -1
  46. package/dist/{useLegalDocs-BrYWCDh3.js → useLegalDocs-DAxt9_gM.js} +2 -2
  47. package/dist/{usePageSEO-BHYaXnDU.js → usePageSEO-DEFnaFKf.js} +1 -1
  48. package/dist/{useRoutePermission-BkWHsFxN.js → useRoutePermission-BicvPoLI.js} +3 -3
  49. package/dist/{useSubscriptionCheckout-QSNro05_.js → useSubscriptionCheckout-BCGpYG5C.js} +1 -1
  50. package/dist/user.js +1 -1
  51. package/dist/utils/company.d.ts +2 -0
  52. package/dist/utils/publicFeedbackSubmit.d.ts +13 -0
  53. package/dist/utils/publicReport.d.ts +26 -0
  54. package/dist/utils/reportForm.d.ts +8 -0
  55. package/package.json +1 -1
  56. package/dist/Contact-D9NRguTE.js +0 -222
  57. package/dist/LandingPageLinkGroup-B8ERKG5f.js +0 -527
@@ -0,0 +1,768 @@
1
+ import { defineComponent as b, openBlock as o, createElementBlock as i, createVNode as d, unref as m, createElementVNode as s, toDisplayString as f, Fragment as x, renderList as V, createBlock as z, normalizeClass as F, withCtx as v, createTextVNode as D, renderSlot as C, ref as k, createCommentVNode as S, normalizeStyle as Y, computed as O } from "vue";
2
+ import { Icon as P } from "@iconify/vue";
3
+ import { _ as y } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
+ import { D as R } from "./LandingPageDescription-BczWZHKy.js";
5
+ import { L as G } from "./Logo-B9DFBxDU.js";
6
+ import { g as M } from "./apiClients-5u4_uxFE.js";
7
+ /* empty css */
8
+ import "./index-C81Mrlvt.js";
9
+ /* empty css */
10
+ import { Form as q, FormItem as w, Input as T, Textarea as N, Button as U, DatePicker as j } from "@arco-design/web-vue";
11
+ /* empty css */
12
+ /* empty css */
13
+ import { useRouter as W } from "vue-router";
14
+ const J = {
15
+ description: "",
16
+ class: "mission-list-item"
17
+ }, K = {
18
+ class: "mission-list-text"
19
+ }, Q = /* @__PURE__ */ b({
20
+ __name: "LandingPageListItem",
21
+ props: {
22
+ description: {
23
+ default: ""
24
+ }
25
+ },
26
+ setup(t) {
27
+ const e = t;
28
+ return (a, r) => (o(), i("div", J, [d(m(P), {
29
+ icon: "mingcute:check-circle-fill",
30
+ class: "mission-list-icon"
31
+ }), s("span", K, f(e.description), 1)]));
32
+ }
33
+ }), X = /* @__PURE__ */ y(Q, [["__scopeId", "data-v-60bfd053"]]), Z = {
34
+ class: "mission-container"
35
+ }, ee = {
36
+ class: "mission-image-wrapper"
37
+ }, te = ["src", "alt"], ae = {
38
+ class: "mission-content"
39
+ }, oe = {
40
+ class: "mission-title"
41
+ }, ne = {
42
+ class: "mission-title-highlight"
43
+ }, se = {
44
+ class: "mission-desc"
45
+ }, ie = {
46
+ class: "mission-list"
47
+ }, le = {
48
+ style: {
49
+ display: "none"
50
+ }
51
+ }, re = /* @__PURE__ */ b({
52
+ __name: "LandingPageMission",
53
+ props: {
54
+ image: {},
55
+ imageAlt: {},
56
+ title: {},
57
+ highlight: {},
58
+ description: {},
59
+ features: {}
60
+ },
61
+ setup(t) {
62
+ return (e, a) => (o(), i("div", Z, [s("div", ee, [a[0] || (a[0] = s("div", {
63
+ class: "mission-bg1"
64
+ }, null, -1)), s("img", {
65
+ src: t.image,
66
+ alt: t.imageAlt,
67
+ loading: "lazy",
68
+ width: "1270",
69
+ decoding: "async",
70
+ class: "mission-img"
71
+ }, null, 8, te)]), s("div", ae, [s("h2", oe, [s("span", ne, f(t.highlight), 1), s("strong", null, f(t.title), 1)]), s("p", se, f(t.description), 1), s("div", ie, [(o(!0), i(x, null, V(t.features, (r, $) => (o(), z(X, {
72
+ key: $,
73
+ description: r
74
+ }, null, 8, ["description"]))), 128))])]), (o(), i("svg", le, [...a[1] || (a[1] = [s("symbol", {
75
+ id: "ai:ph:check-circle-fill"
76
+ }, [s("path", {
77
+ fill: "currentColor",
78
+ d: "M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m45.66 85.66l-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 11.32"
79
+ })], -1)])]))]));
80
+ }
81
+ }), Pt = /* @__PURE__ */ y(re, [["__scopeId", "data-v-8d215ca2"]]), ce = {
82
+ class: "team-info-container"
83
+ }, de = {
84
+ class: "team-info-title"
85
+ }, ue = {
86
+ class: "team-info-desc"
87
+ }, me = /* @__PURE__ */ b({
88
+ __name: "LandingPageTeamInfo",
89
+ props: {
90
+ title: {},
91
+ description: {}
92
+ },
93
+ setup(t) {
94
+ const e = t;
95
+ return (a, r) => (o(), i("div", ce, [s("div", de, f(e.title), 1), s("p", ue, f(e.description), 1)]));
96
+ }
97
+ }), Vt = /* @__PURE__ */ y(me, [["__scopeId", "data-v-b6a418e6"]]), fe = {
98
+ class: "grid-container"
99
+ }, pe = {
100
+ class: "square"
101
+ }, _e = ["src", "alt", "sizes", "width", "height"], ge = {
102
+ class: "footer"
103
+ }, he = {
104
+ class: "name"
105
+ }, ve = /* @__PURE__ */ b({
106
+ __name: "LandingPageTeamList",
107
+ props: {
108
+ publishedTeamMembers: {},
109
+ sizes: {},
110
+ width: {},
111
+ height: {},
112
+ pictureClass: {}
113
+ },
114
+ setup(t) {
115
+ return (e, a) => (o(), i("div", fe, [(o(!0), i(x, null, V(t.publishedTeamMembers, (r) => (o(), i("div", {
116
+ key: r.data.name,
117
+ class: "group"
118
+ }, [s("div", pe, [s("img", {
119
+ src: r.data.avatar.src,
120
+ alt: r.data.avatar.alt,
121
+ sizes: t.sizes,
122
+ width: t.width,
123
+ height: t.height,
124
+ class: F(t.pictureClass ? `${t.pictureClass} picture-img` : "picture-img")
125
+ }, null, 10, _e)]), s("div", ge, [s("h2", he, f(r.data.name), 1), d(R, null, {
126
+ default: v(() => [D(f(r.data.title), 1)]),
127
+ _: 2
128
+ }, 1024)])]))), 128))]));
129
+ }
130
+ }), Dt = /* @__PURE__ */ y(ve, [["__scopeId", "data-v-89ca8f8c"]]), ye = {
131
+ class: "BrandInfo"
132
+ }, $e = /* @__PURE__ */ b({
133
+ __name: "LandingPageBrandInfo",
134
+ props: {
135
+ icon: {
136
+ type: String,
137
+ required: !0
138
+ },
139
+ name: {
140
+ type: String,
141
+ required: !0
142
+ },
143
+ description: {
144
+ type: String,
145
+ required: !0
146
+ },
147
+ /** 不传则 Logo 使用自身主题色 */
148
+ color: {
149
+ type: String,
150
+ default: ""
151
+ },
152
+ fontSize: {
153
+ type: String,
154
+ default: ""
155
+ },
156
+ iconSize: {
157
+ type: String,
158
+ default: "32px"
159
+ }
160
+ },
161
+ setup(t) {
162
+ const e = t;
163
+ return (a, r) => (o(), i("div", ye, [d(G, {
164
+ icon: e.icon,
165
+ name: e.name,
166
+ color: e.color,
167
+ "font-size": e.fontSize,
168
+ "icon-size": e.iconSize
169
+ }, null, 8, ["icon", "name", "color", "font-size", "icon-size"]), d(R, null, {
170
+ default: v(() => [D(f(e.description), 1)]),
171
+ _: 1
172
+ })]));
173
+ }
174
+ }), St = /* @__PURE__ */ y($e, [["__scopeId", "data-v-9f0b94b0"]]), be = {
175
+ class: "contact-container"
176
+ }, Le = {
177
+ class: "contact-info-section"
178
+ }, ke = {
179
+ class: "contact-title"
180
+ }, Ie = {
181
+ class: "contact-info"
182
+ }, Ce = {
183
+ class: "contact-info-item"
184
+ }, xe = {
185
+ class: "contact-info-item"
186
+ }, we = ["href"], Pe = {
187
+ class: "contact-info-item"
188
+ }, Ve = ["href"], De = ["href", "target", "rel"], Se = ["onClick"], Te = {
189
+ class: "contact-form-section"
190
+ }, Fe = /* @__PURE__ */ b({
191
+ __name: "LandingPageContact",
192
+ props: {
193
+ title: {
194
+ default: ""
195
+ },
196
+ subTitle: {
197
+ default: ""
198
+ },
199
+ contact: {
200
+ default: () => ({
201
+ title: "联系我们",
202
+ description: "有什么想说的吗?我们随时为您提供帮助。请填写表单或发送邮件或拨打电话。"
203
+ })
204
+ },
205
+ address: {
206
+ default: "北京市朝阳区建国门外大街1号"
207
+ },
208
+ email: {
209
+ default: "hello@example.com"
210
+ },
211
+ phone: {
212
+ default: "+86 138 0000 0000"
213
+ },
214
+ mapIcon: {
215
+ default: "uil:map-marker"
216
+ },
217
+ emailIcon: {
218
+ default: "uil:envelope"
219
+ },
220
+ phoneIcon: {
221
+ default: "uil:phone"
222
+ },
223
+ extraItems: {
224
+ default: () => []
225
+ }
226
+ },
227
+ emits: ["extraClick"],
228
+ setup(t, {
229
+ emit: e
230
+ }) {
231
+ const a = t, r = e;
232
+ return ($, l) => (o(), i("div", be, [s("div", Le, [s("h2", ke, f(a.contact.title), 1), d(R, null, {
233
+ default: v(() => [D(f(a.contact.description), 1)]),
234
+ _: 1
235
+ }), s("div", Ie, [s("div", Ce, [d(m(P), {
236
+ class: "contact-info-icon",
237
+ icon: t.mapIcon
238
+ }, null, 8, ["icon"]), s("span", null, f(a.address), 1)]), s("div", xe, [d(m(P), {
239
+ class: "contact-info-icon",
240
+ icon: a.emailIcon
241
+ }, null, 8, ["icon"]), s("a", {
242
+ href: `mailto:${t.email}`
243
+ }, f(a.email), 9, we)]), s("div", Pe, [d(m(P), {
244
+ class: "contact-info-icon",
245
+ icon: a.phoneIcon
246
+ }, null, 8, ["icon"]), s("a", {
247
+ href: `tel:${t.phone}`
248
+ }, f(a.phone), 9, Ve)]), (o(!0), i(x, null, V(t.extraItems, (_) => (o(), i("div", {
249
+ key: _.id,
250
+ class: "contact-info-item"
251
+ }, [d(m(P), {
252
+ class: "contact-info-icon",
253
+ icon: _.icon
254
+ }, null, 8, ["icon"]), _.href ? (o(), i("a", {
255
+ key: 0,
256
+ href: _.href,
257
+ target: _.target,
258
+ rel: _.target === "_blank" ? "noopener noreferrer" : void 0
259
+ }, f(_.label), 9, De)) : (o(), i("button", {
260
+ key: 1,
261
+ type: "button",
262
+ class: "contact-info-action",
263
+ onClick: (p) => r("extraClick", _.id)
264
+ }, f(_.label), 9, Se))]))), 128))])]), s("div", Te, [C($.$slots, "contact-form", {}, void 0, !0)])]));
265
+ }
266
+ }), Tt = /* @__PURE__ */ y(Fe, [["__scopeId", "data-v-e3766943"]]), E = {
267
+ meta: {
268
+ silentError: !0
269
+ }
270
+ };
271
+ async function ze(t) {
272
+ return M().ones.feedbackCenter.public.contact.post(t, E);
273
+ }
274
+ async function Re(t) {
275
+ return M().ones.feedbackCenter.public.report.post(t, E);
276
+ }
277
+ const Ae = /* @__PURE__ */ b({
278
+ __name: "LandingPageContactForm",
279
+ setup(t) {
280
+ const e = k(), a = k(!1), r = k(""), $ = k(""), l = k({
281
+ name: "",
282
+ email: "",
283
+ message: ""
284
+ });
285
+ function _() {
286
+ var n, u;
287
+ l.value = {
288
+ name: "",
289
+ email: "",
290
+ message: ""
291
+ }, (u = (n = e.value) == null ? void 0 : n.resetFields) == null || u.call(n);
292
+ }
293
+ function p(n, u) {
294
+ $.value = n ? "text-green" : "text-red", r.value = u, window.setTimeout(() => {
295
+ r.value = "";
296
+ }, 5e3);
297
+ }
298
+ async function I() {
299
+ var u;
300
+ if (!await ((u = e.value) == null ? void 0 : u.validate())) {
301
+ a.value = !0;
302
+ try {
303
+ const {
304
+ error: L
305
+ } = await ze({
306
+ name: l.value.name.trim(),
307
+ email: l.value.email.trim(),
308
+ message: l.value.message.trim()
309
+ });
310
+ if (!L) {
311
+ p(!0, "消息发送成功!我们会尽快回复您。"), _();
312
+ return;
313
+ }
314
+ p(!1, L.message || "发送失败,请检查网络连接后重试。");
315
+ } catch {
316
+ p(!1, "发送失败,请稍后再试!");
317
+ } finally {
318
+ a.value = !1;
319
+ }
320
+ }
321
+ }
322
+ return (n, u) => (o(), z(m(q), {
323
+ ref_key: "formRef",
324
+ ref: e,
325
+ class: "contact-form",
326
+ model: l.value,
327
+ layout: "vertical"
328
+ }, {
329
+ default: v(() => [d(m(w), {
330
+ field: "name",
331
+ label: "姓名",
332
+ rules: [{
333
+ required: !0,
334
+ message: "请输入您的姓名"
335
+ }]
336
+ }, {
337
+ default: v(() => [d(m(T), {
338
+ modelValue: l.value.name,
339
+ "onUpdate:modelValue": u[0] || (u[0] = (L) => l.value.name = L),
340
+ placeholder: "请输入您的姓名",
341
+ "allow-clear": ""
342
+ }, null, 8, ["modelValue"])]),
343
+ _: 1
344
+ }), d(m(w), {
345
+ field: "email",
346
+ label: "邮箱地址",
347
+ rules: [{
348
+ required: !0,
349
+ message: "请输入您的邮箱地址"
350
+ }, {
351
+ type: "email",
352
+ message: "请输入有效的邮箱地址"
353
+ }]
354
+ }, {
355
+ default: v(() => [d(m(T), {
356
+ modelValue: l.value.email,
357
+ "onUpdate:modelValue": u[1] || (u[1] = (L) => l.value.email = L),
358
+ placeholder: "请输入您的邮箱地址",
359
+ "allow-clear": ""
360
+ }, null, 8, ["modelValue"])]),
361
+ _: 1
362
+ }), d(m(w), {
363
+ field: "message",
364
+ label: "留言内容",
365
+ rules: [{
366
+ required: !0,
367
+ message: "请输入您的留言内容"
368
+ }]
369
+ }, {
370
+ default: v(() => [d(m(N), {
371
+ modelValue: l.value.message,
372
+ "onUpdate:modelValue": u[2] || (u[2] = (L) => l.value.message = L),
373
+ placeholder: "请输入您的留言内容",
374
+ "auto-size": {
375
+ minRows: 4
376
+ },
377
+ "allow-clear": ""
378
+ }, null, 8, ["modelValue"])]),
379
+ _: 1
380
+ }), d(m(U), {
381
+ type: "primary",
382
+ loading: a.value,
383
+ onClick: I
384
+ }, {
385
+ default: v(() => [...u[3] || (u[3] = [D(" 发送信息 ", -1)])]),
386
+ _: 1
387
+ }, 8, ["loading"]), r.value ? (o(), i("div", {
388
+ key: 0,
389
+ class: F(["form-result", $.value])
390
+ }, f(r.value), 3)) : S("", !0)]),
391
+ _: 1
392
+ }, 8, ["model"]));
393
+ }
394
+ }), Ft = /* @__PURE__ */ y(Ae, [["__scopeId", "data-v-7ef1c29b"]]), Be = /^1[3-9]\d{9}$/, Me = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
395
+ function qe(t) {
396
+ return Me.test(t.trim());
397
+ }
398
+ function Ne(t) {
399
+ return Be.test(t.trim());
400
+ }
401
+ function Ue(t) {
402
+ const e = t.trim();
403
+ return e ? qe(e) || Ne(e) : !0;
404
+ }
405
+ const Ee = /* @__PURE__ */ b({
406
+ __name: "LandingPageReportForm",
407
+ setup(t) {
408
+ const e = k(), a = k(!1), r = k(""), $ = k(""), l = k({
409
+ location: "",
410
+ occurredAt: "",
411
+ detail: "",
412
+ contact: ""
413
+ });
414
+ function _(g) {
415
+ const c = /* @__PURE__ */ new Date();
416
+ c.setHours(0, 0, 0, 0);
417
+ const h = new Date(g);
418
+ return h.setHours(0, 0, 0, 0), h.getTime() > c.getTime();
419
+ }
420
+ function p(g, c) {
421
+ if (!g) {
422
+ c();
423
+ return;
424
+ }
425
+ const h = Date.parse(String(g).replace(" ", "T"));
426
+ if (Number.isNaN(h) || h > Date.now()) {
427
+ c("出现时间不能晚于现在");
428
+ return;
429
+ }
430
+ c();
431
+ }
432
+ function I(g, c) {
433
+ if (typeof g == "string" && Ue(g)) {
434
+ c();
435
+ return;
436
+ }
437
+ c("请填写有效的邮箱或 11 位大陆手机号");
438
+ }
439
+ function n() {
440
+ var g, c;
441
+ l.value = {
442
+ location: "",
443
+ occurredAt: "",
444
+ detail: "",
445
+ contact: ""
446
+ }, (c = (g = e.value) == null ? void 0 : g.resetFields) == null || c.call(g);
447
+ }
448
+ function u(g, c) {
449
+ $.value = g ? "text-green" : "text-red", r.value = c, window.setTimeout(() => {
450
+ r.value = "";
451
+ }, 5e3);
452
+ }
453
+ async function L() {
454
+ var c;
455
+ if (!await ((c = e.value) == null ? void 0 : c.validate())) {
456
+ a.value = !0;
457
+ try {
458
+ const h = l.value.contact.trim(), H = l.value.occurredAt.trim(), {
459
+ error: A
460
+ } = await Re({
461
+ location: l.value.location.trim(),
462
+ occurredAt: H || void 0,
463
+ detail: l.value.detail.trim(),
464
+ contact: h || void 0
465
+ });
466
+ if (!A) {
467
+ u(!0, "举报已提交,我们会按公示时限核查并反馈。"), n();
468
+ return;
469
+ }
470
+ u(!1, A.message || "提交失败,请检查网络后重试。");
471
+ } catch {
472
+ u(!1, "提交失败,请稍后再试。");
473
+ } finally {
474
+ a.value = !1;
475
+ }
476
+ }
477
+ }
478
+ return (g, c) => (o(), z(m(q), {
479
+ ref_key: "formRef",
480
+ ref: e,
481
+ class: "contact-form",
482
+ model: l.value,
483
+ layout: "vertical"
484
+ }, {
485
+ default: v(() => [d(m(w), {
486
+ field: "location",
487
+ label: "内容位置",
488
+ rules: [{
489
+ required: !0,
490
+ message: "请填写被举报内容出现的位置"
491
+ }]
492
+ }, {
493
+ default: v(() => [d(m(T), {
494
+ modelValue: l.value.location,
495
+ "onUpdate:modelValue": c[0] || (c[0] = (h) => l.value.location = h),
496
+ placeholder: "页面地址、会话链接或功能名称",
497
+ "allow-clear": ""
498
+ }, null, 8, ["modelValue"])]),
499
+ _: 1
500
+ }), d(m(w), {
501
+ field: "occurredAt",
502
+ label: "出现时间",
503
+ extra: "选填,精确到分钟",
504
+ rules: [{
505
+ validator: p
506
+ }]
507
+ }, {
508
+ default: v(() => [d(m(j), {
509
+ modelValue: l.value.occurredAt,
510
+ "onUpdate:modelValue": c[1] || (c[1] = (h) => l.value.occurredAt = h),
511
+ "show-time": "",
512
+ format: "YYYY-MM-DD HH:mm",
513
+ "value-format": "YYYY-MM-DD HH:mm",
514
+ placeholder: "请选择出现时间",
515
+ "disabled-date": _,
516
+ style: {
517
+ width: "100%"
518
+ }
519
+ }, null, 8, ["modelValue"])]),
520
+ _: 1
521
+ }, 8, ["rules"]), d(m(w), {
522
+ field: "detail",
523
+ label: "情况说明",
524
+ rules: [{
525
+ required: !0,
526
+ message: "请填写情况说明"
527
+ }]
528
+ }, {
529
+ default: v(() => [d(m(N), {
530
+ modelValue: l.value.detail,
531
+ "onUpdate:modelValue": c[2] || (c[2] = (h) => l.value.detail = h),
532
+ placeholder: "违规情形说明。截图请发至 support@huyooo.com,或登录后在系统反馈中上传附件",
533
+ "auto-size": {
534
+ minRows: 4
535
+ },
536
+ "allow-clear": ""
537
+ }, null, 8, ["modelValue"])]),
538
+ _: 1
539
+ }), d(m(w), {
540
+ field: "contact",
541
+ label: "联系方式",
542
+ extra: "选填,便于反馈结果,可匿名",
543
+ rules: [{
544
+ validator: I
545
+ }]
546
+ }, {
547
+ default: v(() => [d(m(T), {
548
+ modelValue: l.value.contact,
549
+ "onUpdate:modelValue": c[3] || (c[3] = (h) => l.value.contact = h),
550
+ placeholder: "邮箱或 11 位手机号",
551
+ "allow-clear": ""
552
+ }, null, 8, ["modelValue"])]),
553
+ _: 1
554
+ }, 8, ["rules"]), d(m(U), {
555
+ type: "primary",
556
+ loading: a.value,
557
+ onClick: L
558
+ }, {
559
+ default: v(() => [...c[4] || (c[4] = [D(" 提交举报 ", -1)])]),
560
+ _: 1
561
+ }, 8, ["loading"]), r.value ? (o(), i("div", {
562
+ key: 0,
563
+ class: F(["form-result", $.value])
564
+ }, f(r.value), 3)) : S("", !0)]),
565
+ _: 1
566
+ }, 8, ["model"]));
567
+ }
568
+ }), zt = /* @__PURE__ */ y(Ee, [["__scopeId", "data-v-4e6e6216"]]), He = /* @__PURE__ */ b({
569
+ __name: "LandingPageContainer",
570
+ props: {
571
+ flexDirection: {
572
+ default: "column"
573
+ },
574
+ gap: {
575
+ default: ""
576
+ },
577
+ padding: {
578
+ default: ""
579
+ }
580
+ },
581
+ setup(t) {
582
+ const e = t;
583
+ return (a, r) => (o(), i("div", {
584
+ class: "landing-page-container",
585
+ style: Y({
586
+ flexDirection: e.flexDirection,
587
+ ...e.gap ? {
588
+ gap: e.gap
589
+ } : {},
590
+ ...e.padding ? {
591
+ padding: e.padding
592
+ } : {}
593
+ })
594
+ }, [C(a.$slots, "default", {}, void 0, !0)], 4));
595
+ }
596
+ }), Rt = /* @__PURE__ */ y(He, [["__scopeId", "data-v-d10fd5c6"]]), Ye = {}, Oe = {
597
+ role: "separator",
598
+ class: "divider divider-horizontal"
599
+ };
600
+ function Ge(t, e) {
601
+ return o(), i("div", Oe);
602
+ }
603
+ const B = /* @__PURE__ */ y(Ye, [["render", Ge], ["__scopeId", "data-v-fc6caeb0"]]);
604
+ function At(t, e, a = (/* @__PURE__ */ new Date()).getFullYear()) {
605
+ return `Copyright © ${a > e ? `${e}-${a}` : `${e}`} ${t}`;
606
+ }
607
+ const je = {
608
+ class: "bottom"
609
+ }, We = {
610
+ class: "beian-text-wrapper"
611
+ }, Je = ["href"], Ke = {
612
+ key: 1,
613
+ class: "filing-item"
614
+ }, Qe = ["href", "target", "rel", "onClick"], Xe = {
615
+ class: "copyright-text"
616
+ }, Ze = {
617
+ key: 0,
618
+ class: "socials"
619
+ }, et = ["title", "onClick"], tt = {
620
+ key: 0,
621
+ class: "socialLabel"
622
+ }, at = /* @__PURE__ */ b({
623
+ __name: "LandingPageFooterContact",
624
+ props: {
625
+ filings: {
626
+ type: Array,
627
+ default: () => []
628
+ },
629
+ /** @deprecated 仅兼容旧调用;优先用 filings */
630
+ beianNumber: {
631
+ type: String,
632
+ default: ""
633
+ },
634
+ copyrightText: {
635
+ type: String,
636
+ required: !0
637
+ },
638
+ beianUrl: {
639
+ type: String,
640
+ default: ""
641
+ },
642
+ links: {
643
+ type: Array,
644
+ required: !0
645
+ },
646
+ extraLinks: {
647
+ type: Array,
648
+ default: () => []
649
+ }
650
+ },
651
+ setup(t) {
652
+ const e = t, a = W(), r = O(() => {
653
+ if (e.filings.length)
654
+ return e.filings;
655
+ const p = e.beianNumber.trim();
656
+ return p ? [{
657
+ key: "icp",
658
+ label: "ICP备案",
659
+ value: p,
660
+ href: e.beianUrl || void 0
661
+ }] : [];
662
+ });
663
+ function $(p) {
664
+ return /^(https?:|mailto:)/i.test(p);
665
+ }
666
+ function l(p, I) {
667
+ $(I) || (p.preventDefault(), p.stopPropagation(), a.push(I));
668
+ }
669
+ function _(p) {
670
+ if (p.type === "image")
671
+ return "";
672
+ const n = ([p.content, p.url, p.kind === "email" ? p.label : ""].map((u) => typeof u == "string" ? u.trim() : "").find(Boolean) || "").replace(/^mailto:/i, "");
673
+ return n.includes("@") && !n.startsWith("http") ? n : "";
674
+ }
675
+ return (p, I) => (o(), i("div", je, [s("div", We, [(o(!0), i(x, null, V(r.value, (n) => (o(), i(x, {
676
+ key: n.key
677
+ }, [n.href ? (o(), i("a", {
678
+ key: 0,
679
+ class: "filing-item",
680
+ href: n.href,
681
+ target: "_blank",
682
+ rel: "noopener noreferrer"
683
+ }, f(n.value), 9, Je)) : (o(), i("span", Ke, f(n.value), 1))], 64))), 128)), (o(!0), i(x, null, V(t.extraLinks, (n) => (o(), i("a", {
684
+ key: n.label,
685
+ class: "extra-link",
686
+ href: n.href,
687
+ target: $(n.href) ? "_blank" : void 0,
688
+ rel: $(n.href) ? "noopener noreferrer" : void 0,
689
+ onClick: (u) => l(u, n.href)
690
+ }, f(n.label), 9, Qe))), 128)), s("span", Xe, f(e.copyrightText), 1)]), t.links.length ? (o(), i("div", Ze, [(o(!0), i(x, null, V(t.links, (n, u) => (o(), i("div", {
691
+ key: u,
692
+ class: F(["socialItem", {
693
+ socialItemText: !!_(n)
694
+ }]),
695
+ title: n.label || _(n) || void 0,
696
+ onClick: n.select
697
+ }, [d(m(P), {
698
+ icon: n.icon,
699
+ class: "socialIcon"
700
+ }, null, 8, ["icon"]), _(n) ? (o(), i("span", tt, f(_(n)), 1)) : S("", !0)], 10, et))), 128))])) : S("", !0)]));
701
+ }
702
+ }), Bt = /* @__PURE__ */ y(at, [["__scopeId", "data-v-c0652711"]]), ot = {
703
+ class: "FooterLayout"
704
+ }, nt = {
705
+ class: "body"
706
+ }, st = {
707
+ class: "logo"
708
+ }, it = {
709
+ class: "links"
710
+ }, lt = /* @__PURE__ */ b({
711
+ __name: "LandingPageFooterLayout",
712
+ setup(t) {
713
+ return (e, a) => (o(), i("div", ot, [d(B), s("div", nt, [s("div", st, [C(e.$slots, "LandingPageBrandInfo", {}, void 0, !0)]), s("div", it, [C(e.$slots, "LandingPageLinkGroup", {}, void 0, !0)])]), d(B), C(e.$slots, "LandingPageFooterContact", {}, void 0, !0)]));
714
+ }
715
+ }), Mt = /* @__PURE__ */ y(lt, [["__scopeId", "data-v-425841c7"]]), rt = ["href", "target", "rel"], ct = {
716
+ key: 1,
717
+ class: "Description"
718
+ }, dt = /* @__PURE__ */ b({
719
+ __name: "LandingPageLink",
720
+ props: {
721
+ href: {},
722
+ target: {}
723
+ },
724
+ setup(t) {
725
+ const e = t;
726
+ return (a, r) => e.href ? (o(), i("a", {
727
+ key: 0,
728
+ class: "Description",
729
+ href: e.href,
730
+ target: e.target,
731
+ rel: e.target === "_blank" ? "noopener noreferrer" : void 0
732
+ }, [C(a.$slots, "default", {}, void 0, !0)], 8, rt)) : (o(), i("div", ct, [C(a.$slots, "default", {}, void 0, !0)]));
733
+ }
734
+ }), qt = /* @__PURE__ */ y(dt, [["__scopeId", "data-v-160922db"]]), ut = {
735
+ class: "list"
736
+ }, mt = {
737
+ class: "title"
738
+ }, ft = {
739
+ class: "listItemContent"
740
+ }, pt = /* @__PURE__ */ b({
741
+ __name: "LandingPageLinkGroup",
742
+ props: {
743
+ title: {
744
+ default: ""
745
+ }
746
+ },
747
+ setup(t) {
748
+ const e = t;
749
+ return (a, r) => (o(), i("div", ut, [s("div", mt, f(e.title), 1), s("div", ft, [C(a.$slots, "item", {}, void 0, !0)])]));
750
+ }
751
+ }), Nt = /* @__PURE__ */ y(pt, [["__scopeId", "data-v-4f6d9dca"]]);
752
+ export {
753
+ B as D,
754
+ St as L,
755
+ Tt as a,
756
+ Ft as b,
757
+ Rt as c,
758
+ Bt as d,
759
+ Mt as e,
760
+ qt as f,
761
+ Nt as g,
762
+ X as h,
763
+ Pt as i,
764
+ zt as j,
765
+ Vt as k,
766
+ Dt as l,
767
+ At as m
768
+ };