@huyooo/ui 4.0.2 → 4.0.5

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 (64) hide show
  1. package/dist/{AuthkitAppSetting-Cg8j3nES.js → AuthkitAppSetting-B7xyx5Kb.js} +20 -17
  2. package/dist/{CustomTable-C15Dgbks.js → CustomTable-FlfUde4Q.js} +14 -14
  3. package/dist/{FeedbackModal.vue_vue_type_script_setup_true_lang-Ddy1jcdL.js → FeedbackModal.vue_vue_type_script_setup_true_lang-BBmobezM.js} +9 -8
  4. package/dist/LandingPageLinkGroup-DBhikoiz.js +749 -0
  5. package/dist/{LandingPageSectionTabs-BJQeq3V5.js → LandingPageSectionTabs-BwStYRXA.js} +362 -366
  6. package/dist/{LegalDocViewer-BuzKCAfO.js → LegalDocViewer-BPbrJ2tj.js} +24 -21
  7. package/dist/{PaySubscriptions-ZSvRTG2i.js → PaySubscriptions-CPH1wESx.js} +22 -21
  8. package/dist/{PricingPlans-DTGJ-_us.js → PricingPlans-Cb2qrkmu.js} +3 -3
  9. package/dist/{ReferrerReferees-gkKtDau-.js → ReferrerReferees-B2OR30NV.js} +3 -3
  10. package/dist/Report-C5RbZNpM.js +317 -0
  11. package/dist/{Upload.vue_vue_type_script_setup_true_lang-C6B5_Hjo.js → Upload.vue_vue_type_script_setup_true_lang-BygtAblQ.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-DxvHvsQm.js} +6 -6
  13. package/dist/{WidthContainer-DXwIiG2x.js → WidthContainer-DtKLf5Ub.js} +10 -10
  14. package/dist/authkit.js +8 -8
  15. package/dist/common/globalConfig.d.ts +5 -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 +23 -15
  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/Authkit/useLegalDocs.d.ts +1 -1
  25. package/dist/composables.d.ts +2 -0
  26. package/dist/composables.js +60 -54
  27. package/dist/feedback.js +2 -2
  28. package/dist/{fetchAuthPageAboutUs-C-jQ44QK.js → fetchAuthPageAboutUs-DD-MwyiG.js} +2 -2
  29. package/dist/{index-BIxwv9Xs.js → index-ClOjruo3.js} +1 -1
  30. package/dist/{index-5OR_BVTz.js → index-CncbUu-V.js} +1 -1
  31. package/dist/landingPage.d.ts +1 -0
  32. package/dist/landingPage.js +17 -16
  33. package/dist/legalDocs/buildBuiltinUrl.d.ts +1 -1
  34. package/dist/main.js +306 -298
  35. package/dist/pay.js +3 -3
  36. package/dist/privateCom.d.ts +1 -0
  37. package/dist/privateCom.js +3 -2
  38. package/dist/publicReport-ZlMy0xQf.js +32 -0
  39. package/dist/referrer.js +1 -1
  40. package/dist/{runtime-B-tHI8-q.js → runtime-CfbHkmk9.js} +25 -26
  41. package/dist/style.css +1 -1
  42. package/dist/types/api/auth.generated.d.ts +250 -43
  43. package/dist/types/api/ones.generated.d.ts +44 -0
  44. package/dist/types/app.d.ts +9 -0
  45. package/dist/upload.js +2 -2
  46. package/dist/{useAccessPosture-DBNTLWQn.js → useAccessPosture-NSPnmu0I.js} +33 -33
  47. package/dist/{useAuthkitAppsAuthPageInfo-CsivtUQH.js → useAuthkitAppsAuthPageInfo-Cg40bxCJ.js} +25 -23
  48. package/dist/{useAuthkitAuth-CV60Hc3o.js → useAuthkitAuth-C5oUnl8U.js} +1 -1
  49. package/dist/{useAuthkitUsersProfile-CQOLEAxC.js → useAuthkitUsersProfile-BWNVk2UM.js} +1 -1
  50. package/dist/{useEnsureAuthenticated-BYGI2uYZ.js → useEnsureAuthenticated-CQWINiHB.js} +1 -1
  51. package/dist/useLegalDocs-ky2EzBke.js +114 -0
  52. package/dist/{usePageSEO-BHYaXnDU.js → usePageSEO-CWLQAmET.js} +1 -1
  53. package/dist/{useRoutePermission-BkWHsFxN.js → useRoutePermission-K-Eu4pRD.js} +3 -3
  54. package/dist/{useSubscriptionCheckout-QSNro05_.js → useSubscriptionCheckout-BcN8cRMV.js} +1 -1
  55. package/dist/user.js +1 -1
  56. package/dist/utils/company.d.ts +2 -0
  57. package/dist/utils/publicFeedbackSubmit.d.ts +13 -0
  58. package/dist/utils/publicReport.d.ts +26 -0
  59. package/dist/utils/reportForm.d.ts +8 -0
  60. package/dist/utils/requiredFooterLinks.d.ts +11 -0
  61. package/package.json +1 -1
  62. package/dist/Contact-D9NRguTE.js +0 -222
  63. package/dist/LandingPageLinkGroup-B8ERKG5f.js +0 -527
  64. package/dist/useLegalDocs-BrYWCDh3.js +0 -107
@@ -0,0 +1,749 @@
1
+ import { defineComponent as L, 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 S, withCtx as v, createTextVNode as D, renderSlot as C, ref as k, createCommentVNode as T, 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-ClOjruo3.js";
9
+ /* empty css */
10
+ import { Form as q, FormItem as w, Input as F, Textarea as N, Button as E, 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 = /^1[3-9]\d{9}$/, K = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
15
+ function Q(e) {
16
+ return K.test(e.trim());
17
+ }
18
+ function X(e) {
19
+ return J.test(e.trim());
20
+ }
21
+ function Z(e) {
22
+ const t = e.trim();
23
+ return t ? Q(t) || X(t) : !0;
24
+ }
25
+ const ee = {
26
+ description: "",
27
+ class: "mission-list-item"
28
+ }, te = {
29
+ class: "mission-list-text"
30
+ }, ae = /* @__PURE__ */ L({
31
+ __name: "LandingPageListItem",
32
+ props: {
33
+ description: {
34
+ default: ""
35
+ }
36
+ },
37
+ setup(e) {
38
+ const t = e;
39
+ return (a, r) => (o(), i("div", ee, [d(m(P), {
40
+ icon: "mingcute:check-circle-fill",
41
+ class: "mission-list-icon"
42
+ }), s("span", te, f(t.description), 1)]));
43
+ }
44
+ }), oe = /* @__PURE__ */ y(ae, [["__scopeId", "data-v-60bfd053"]]), ne = {
45
+ class: "mission-container"
46
+ }, se = {
47
+ class: "mission-image-wrapper"
48
+ }, ie = ["src", "alt"], le = {
49
+ class: "mission-content"
50
+ }, re = {
51
+ class: "mission-title"
52
+ }, ce = {
53
+ class: "mission-title-highlight"
54
+ }, de = {
55
+ class: "mission-desc"
56
+ }, ue = {
57
+ class: "mission-list"
58
+ }, me = {
59
+ style: {
60
+ display: "none"
61
+ }
62
+ }, fe = /* @__PURE__ */ L({
63
+ __name: "LandingPageMission",
64
+ props: {
65
+ image: {},
66
+ imageAlt: {},
67
+ title: {},
68
+ highlight: {},
69
+ description: {},
70
+ features: {}
71
+ },
72
+ setup(e) {
73
+ return (t, a) => (o(), i("div", ne, [s("div", se, [a[0] || (a[0] = s("div", {
74
+ class: "mission-bg1"
75
+ }, null, -1)), s("img", {
76
+ src: e.image,
77
+ alt: e.imageAlt,
78
+ loading: "lazy",
79
+ width: "1270",
80
+ decoding: "async",
81
+ class: "mission-img"
82
+ }, null, 8, ie)]), s("div", le, [s("h2", re, [s("span", ce, f(e.highlight), 1), s("strong", null, f(e.title), 1)]), s("p", de, f(e.description), 1), s("div", ue, [(o(!0), i(x, null, V(e.features, (r, $) => (o(), z(oe, {
83
+ key: $,
84
+ description: r
85
+ }, null, 8, ["description"]))), 128))])]), (o(), i("svg", me, [...a[1] || (a[1] = [s("symbol", {
86
+ id: "ai:ph:check-circle-fill"
87
+ }, [s("path", {
88
+ fill: "currentColor",
89
+ 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"
90
+ })], -1)])]))]));
91
+ }
92
+ }), Pt = /* @__PURE__ */ y(fe, [["__scopeId", "data-v-8d215ca2"]]), pe = {
93
+ class: "team-info-container"
94
+ }, _e = {
95
+ class: "team-info-title"
96
+ }, ge = {
97
+ class: "team-info-desc"
98
+ }, he = /* @__PURE__ */ L({
99
+ __name: "LandingPageTeamInfo",
100
+ props: {
101
+ title: {},
102
+ description: {}
103
+ },
104
+ setup(e) {
105
+ const t = e;
106
+ return (a, r) => (o(), i("div", pe, [s("div", _e, f(t.title), 1), s("p", ge, f(t.description), 1)]));
107
+ }
108
+ }), Vt = /* @__PURE__ */ y(he, [["__scopeId", "data-v-b6a418e6"]]), ve = {
109
+ class: "grid-container"
110
+ }, ye = {
111
+ class: "square"
112
+ }, $e = ["src", "alt", "sizes", "width", "height"], Le = {
113
+ class: "footer"
114
+ }, be = {
115
+ class: "name"
116
+ }, ke = /* @__PURE__ */ L({
117
+ __name: "LandingPageTeamList",
118
+ props: {
119
+ publishedTeamMembers: {},
120
+ sizes: {},
121
+ width: {},
122
+ height: {},
123
+ pictureClass: {}
124
+ },
125
+ setup(e) {
126
+ return (t, a) => (o(), i("div", ve, [(o(!0), i(x, null, V(e.publishedTeamMembers, (r) => (o(), i("div", {
127
+ key: r.data.name,
128
+ class: "group"
129
+ }, [s("div", ye, [s("img", {
130
+ src: r.data.avatar.src,
131
+ alt: r.data.avatar.alt,
132
+ sizes: e.sizes,
133
+ width: e.width,
134
+ height: e.height,
135
+ class: S(e.pictureClass ? `${e.pictureClass} picture-img` : "picture-img")
136
+ }, null, 10, $e)]), s("div", Le, [s("h2", be, f(r.data.name), 1), d(R, null, {
137
+ default: v(() => [D(f(r.data.title), 1)]),
138
+ _: 2
139
+ }, 1024)])]))), 128))]));
140
+ }
141
+ }), Dt = /* @__PURE__ */ y(ke, [["__scopeId", "data-v-89ca8f8c"]]), Ie = {
142
+ class: "BrandInfo"
143
+ }, Ce = /* @__PURE__ */ L({
144
+ __name: "LandingPageBrandInfo",
145
+ props: {
146
+ icon: {
147
+ type: String,
148
+ required: !0
149
+ },
150
+ name: {
151
+ type: String,
152
+ required: !0
153
+ },
154
+ description: {
155
+ type: String,
156
+ required: !0
157
+ },
158
+ /** 不传则 Logo 使用自身主题色 */
159
+ color: {
160
+ type: String,
161
+ default: ""
162
+ },
163
+ fontSize: {
164
+ type: String,
165
+ default: ""
166
+ },
167
+ iconSize: {
168
+ type: String,
169
+ default: "32px"
170
+ }
171
+ },
172
+ setup(e) {
173
+ const t = e;
174
+ return (a, r) => (o(), i("div", Ie, [d(G, {
175
+ icon: t.icon,
176
+ name: t.name,
177
+ color: t.color,
178
+ "font-size": t.fontSize,
179
+ "icon-size": t.iconSize
180
+ }, null, 8, ["icon", "name", "color", "font-size", "icon-size"]), d(R, null, {
181
+ default: v(() => [D(f(t.description), 1)]),
182
+ _: 1
183
+ })]));
184
+ }
185
+ }), Tt = /* @__PURE__ */ y(Ce, [["__scopeId", "data-v-9f0b94b0"]]), xe = {
186
+ class: "contact-container"
187
+ }, we = {
188
+ class: "contact-info-section"
189
+ }, Pe = {
190
+ class: "contact-title"
191
+ }, Ve = {
192
+ class: "contact-info"
193
+ }, De = {
194
+ class: "contact-info-item"
195
+ }, Te = {
196
+ class: "contact-info-item"
197
+ }, Fe = ["href"], Se = {
198
+ class: "contact-info-item"
199
+ }, ze = ["href"], Re = ["href", "target", "rel"], Ae = ["onClick"], Be = {
200
+ class: "contact-form-section"
201
+ }, Me = /* @__PURE__ */ L({
202
+ __name: "LandingPageContact",
203
+ props: {
204
+ title: {
205
+ default: ""
206
+ },
207
+ subTitle: {
208
+ default: ""
209
+ },
210
+ contact: {
211
+ default: () => ({
212
+ title: "联系我们",
213
+ description: "有什么想说的吗?我们随时为您提供帮助。请填写表单或发送邮件或拨打电话。"
214
+ })
215
+ },
216
+ address: {
217
+ default: "北京市朝阳区建国门外大街1号"
218
+ },
219
+ email: {
220
+ default: "hello@example.com"
221
+ },
222
+ phone: {
223
+ default: "+86 138 0000 0000"
224
+ },
225
+ mapIcon: {
226
+ default: "uil:map-marker"
227
+ },
228
+ emailIcon: {
229
+ default: "uil:envelope"
230
+ },
231
+ phoneIcon: {
232
+ default: "uil:phone"
233
+ },
234
+ extraItems: {
235
+ default: () => []
236
+ }
237
+ },
238
+ emits: ["extraClick"],
239
+ setup(e, {
240
+ emit: t
241
+ }) {
242
+ const a = e, r = t;
243
+ return ($, l) => (o(), i("div", xe, [s("div", we, [s("h2", Pe, f(a.contact.title), 1), d(R, null, {
244
+ default: v(() => [D(f(a.contact.description), 1)]),
245
+ _: 1
246
+ }), s("div", Ve, [s("div", De, [d(m(P), {
247
+ class: "contact-info-icon",
248
+ icon: e.mapIcon
249
+ }, null, 8, ["icon"]), s("span", null, f(a.address), 1)]), s("div", Te, [d(m(P), {
250
+ class: "contact-info-icon",
251
+ icon: a.emailIcon
252
+ }, null, 8, ["icon"]), s("a", {
253
+ href: `mailto:${e.email}`
254
+ }, f(a.email), 9, Fe)]), s("div", Se, [d(m(P), {
255
+ class: "contact-info-icon",
256
+ icon: a.phoneIcon
257
+ }, null, 8, ["icon"]), s("a", {
258
+ href: `tel:${e.phone}`
259
+ }, f(a.phone), 9, ze)]), (o(!0), i(x, null, V(e.extraItems, (p) => (o(), i("div", {
260
+ key: p.id,
261
+ class: "contact-info-item"
262
+ }, [d(m(P), {
263
+ class: "contact-info-icon",
264
+ icon: p.icon
265
+ }, null, 8, ["icon"]), p.href ? (o(), i("a", {
266
+ key: 0,
267
+ href: p.href,
268
+ target: p.target,
269
+ rel: p.target === "_blank" ? "noopener noreferrer" : void 0
270
+ }, f(p.label), 9, Re)) : (o(), i("button", {
271
+ key: 1,
272
+ type: "button",
273
+ class: "contact-info-action",
274
+ onClick: (_) => r("extraClick", p.id)
275
+ }, f(p.label), 9, Ae))]))), 128))])]), s("div", Be, [C($.$slots, "contact-form", {}, void 0, !0)])]));
276
+ }
277
+ }), Ft = /* @__PURE__ */ y(Me, [["__scopeId", "data-v-e3766943"]]), U = {
278
+ meta: {
279
+ silentError: !0
280
+ }
281
+ };
282
+ async function qe(e) {
283
+ return M().ones.feedbackCenter.public.contact.post(e, U);
284
+ }
285
+ async function Ne(e) {
286
+ return M().ones.feedbackCenter.public.report.post(e, U);
287
+ }
288
+ const Ee = /* @__PURE__ */ L({
289
+ __name: "LandingPageContactForm",
290
+ setup(e) {
291
+ const t = k(), a = k(!1), r = k(""), $ = k(""), l = k({
292
+ name: "",
293
+ email: "",
294
+ message: ""
295
+ });
296
+ function p() {
297
+ var n, u;
298
+ l.value = {
299
+ name: "",
300
+ email: "",
301
+ message: ""
302
+ }, (u = (n = t.value) == null ? void 0 : n.resetFields) == null || u.call(n);
303
+ }
304
+ function _(n, u) {
305
+ $.value = n ? "text-green" : "text-red", r.value = u, window.setTimeout(() => {
306
+ r.value = "";
307
+ }, 5e3);
308
+ }
309
+ async function I() {
310
+ var u;
311
+ if (!await ((u = t.value) == null ? void 0 : u.validate())) {
312
+ a.value = !0;
313
+ try {
314
+ const {
315
+ error: b
316
+ } = await qe({
317
+ name: l.value.name.trim(),
318
+ email: l.value.email.trim(),
319
+ message: l.value.message.trim()
320
+ });
321
+ if (!b) {
322
+ _(!0, "消息发送成功!我们会尽快回复您。"), p();
323
+ return;
324
+ }
325
+ _(!1, b.message || "发送失败,请检查网络连接后重试。");
326
+ } catch {
327
+ _(!1, "发送失败,请稍后再试!");
328
+ } finally {
329
+ a.value = !1;
330
+ }
331
+ }
332
+ }
333
+ return (n, u) => (o(), z(m(q), {
334
+ ref_key: "formRef",
335
+ ref: t,
336
+ class: "contact-form",
337
+ model: l.value,
338
+ layout: "vertical"
339
+ }, {
340
+ default: v(() => [d(m(w), {
341
+ field: "name",
342
+ label: "姓名",
343
+ rules: [{
344
+ required: !0,
345
+ message: "请输入您的姓名"
346
+ }]
347
+ }, {
348
+ default: v(() => [d(m(F), {
349
+ modelValue: l.value.name,
350
+ "onUpdate:modelValue": u[0] || (u[0] = (b) => l.value.name = b),
351
+ placeholder: "请输入您的姓名",
352
+ "allow-clear": ""
353
+ }, null, 8, ["modelValue"])]),
354
+ _: 1
355
+ }), d(m(w), {
356
+ field: "email",
357
+ label: "邮箱地址",
358
+ rules: [{
359
+ required: !0,
360
+ message: "请输入您的邮箱地址"
361
+ }, {
362
+ type: "email",
363
+ message: "请输入有效的邮箱地址"
364
+ }]
365
+ }, {
366
+ default: v(() => [d(m(F), {
367
+ modelValue: l.value.email,
368
+ "onUpdate:modelValue": u[1] || (u[1] = (b) => l.value.email = b),
369
+ placeholder: "请输入您的邮箱地址",
370
+ "allow-clear": ""
371
+ }, null, 8, ["modelValue"])]),
372
+ _: 1
373
+ }), d(m(w), {
374
+ field: "message",
375
+ label: "留言内容",
376
+ rules: [{
377
+ required: !0,
378
+ message: "请输入您的留言内容"
379
+ }]
380
+ }, {
381
+ default: v(() => [d(m(N), {
382
+ modelValue: l.value.message,
383
+ "onUpdate:modelValue": u[2] || (u[2] = (b) => l.value.message = b),
384
+ placeholder: "请输入您的留言内容",
385
+ "auto-size": {
386
+ minRows: 4
387
+ },
388
+ "allow-clear": ""
389
+ }, null, 8, ["modelValue"])]),
390
+ _: 1
391
+ }), d(m(E), {
392
+ type: "primary",
393
+ loading: a.value,
394
+ onClick: I
395
+ }, {
396
+ default: v(() => [...u[3] || (u[3] = [D(" 发送信息 ", -1)])]),
397
+ _: 1
398
+ }, 8, ["loading"]), r.value ? (o(), i("div", {
399
+ key: 0,
400
+ class: S(["form-result", $.value])
401
+ }, f(r.value), 3)) : T("", !0)]),
402
+ _: 1
403
+ }, 8, ["model"]));
404
+ }
405
+ }), St = /* @__PURE__ */ y(Ee, [["__scopeId", "data-v-7ef1c29b"]]), Ue = /* @__PURE__ */ L({
406
+ __name: "LandingPageReportForm",
407
+ setup(e) {
408
+ const t = k(), a = k(!1), r = k(""), $ = k(""), l = k({
409
+ location: "",
410
+ occurredAt: "",
411
+ detail: "",
412
+ contact: ""
413
+ });
414
+ function p(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 _(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" && Z(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 = t.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 b() {
454
+ var c;
455
+ if (!await ((c = t.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 Ne({
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: t,
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(F), {
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: _
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": p,
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(F), {
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(E), {
555
+ type: "primary",
556
+ loading: a.value,
557
+ onClick: b
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: S(["form-result", $.value])
564
+ }, f(r.value), 3)) : T("", !0)]),
565
+ _: 1
566
+ }, 8, ["model"]));
567
+ }
568
+ }), zt = /* @__PURE__ */ y(Ue, [["__scopeId", "data-v-4e6e6216"]]), He = /* @__PURE__ */ L({
569
+ __name: "LandingPageContainer",
570
+ props: {
571
+ flexDirection: {
572
+ default: "column"
573
+ },
574
+ gap: {
575
+ default: ""
576
+ },
577
+ padding: {
578
+ default: ""
579
+ }
580
+ },
581
+ setup(e) {
582
+ const t = e;
583
+ return (a, r) => (o(), i("div", {
584
+ class: "landing-page-container",
585
+ style: Y({
586
+ flexDirection: t.flexDirection,
587
+ ...t.gap ? {
588
+ gap: t.gap
589
+ } : {},
590
+ ...t.padding ? {
591
+ padding: t.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(e, t) {
601
+ return o(), i("div", Oe);
602
+ }
603
+ const B = /* @__PURE__ */ y(Ye, [["render", Ge], ["__scopeId", "data-v-fc6caeb0"]]);
604
+ function At(e, t, a = (/* @__PURE__ */ new Date()).getFullYear()) {
605
+ return `Copyright © ${a > t ? `${t}-${a}` : `${t}`} ${e}`;
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__ */ L({
623
+ __name: "LandingPageFooterContact",
624
+ props: {
625
+ filings: {
626
+ type: Array,
627
+ default: () => []
628
+ },
629
+ copyrightText: {
630
+ type: String,
631
+ required: !0
632
+ },
633
+ links: {
634
+ type: Array,
635
+ required: !0
636
+ },
637
+ extraLinks: {
638
+ type: Array,
639
+ default: () => []
640
+ }
641
+ },
642
+ setup(e) {
643
+ const t = e, a = W(), r = O(() => t.filings);
644
+ function $(_) {
645
+ return /^(https?:|mailto:)/i.test(_);
646
+ }
647
+ function l(_, I) {
648
+ $(I) || (_.preventDefault(), _.stopPropagation(), a.push(I));
649
+ }
650
+ function p(_) {
651
+ if (_.type === "image")
652
+ return "";
653
+ const n = ([_.content, _.url, _.kind === "email" ? _.label : ""].map((u) => typeof u == "string" ? u.trim() : "").find(Boolean) || "").replace(/^mailto:/i, "");
654
+ return n.includes("@") && !n.startsWith("http") ? n : "";
655
+ }
656
+ return (_, I) => (o(), i("div", je, [s("div", We, [(o(!0), i(x, null, V(r.value, (n) => (o(), i(x, {
657
+ key: n.key
658
+ }, [n.href ? (o(), i("a", {
659
+ key: 0,
660
+ class: "filing-item",
661
+ href: n.href,
662
+ target: "_blank",
663
+ rel: "noopener noreferrer"
664
+ }, f(n.value), 9, Je)) : (o(), i("span", Ke, f(n.value), 1))], 64))), 128)), (o(!0), i(x, null, V(e.extraLinks, (n) => (o(), i("a", {
665
+ key: n.label,
666
+ class: "extra-link",
667
+ href: n.href,
668
+ target: $(n.href) ? "_blank" : void 0,
669
+ rel: $(n.href) ? "noopener noreferrer" : void 0,
670
+ onClick: (u) => l(u, n.href)
671
+ }, f(n.label), 9, Qe))), 128)), s("span", Xe, f(t.copyrightText), 1)]), e.links.length ? (o(), i("div", Ze, [(o(!0), i(x, null, V(e.links, (n, u) => (o(), i("div", {
672
+ key: u,
673
+ class: S(["socialItem", {
674
+ socialItemText: !!p(n)
675
+ }]),
676
+ title: n.label || p(n) || void 0,
677
+ onClick: n.select
678
+ }, [d(m(P), {
679
+ icon: n.icon,
680
+ class: "socialIcon"
681
+ }, null, 8, ["icon"]), p(n) ? (o(), i("span", tt, f(p(n)), 1)) : T("", !0)], 10, et))), 128))])) : T("", !0)]));
682
+ }
683
+ }), Bt = /* @__PURE__ */ y(at, [["__scopeId", "data-v-80b5c341"]]), ot = {
684
+ class: "FooterLayout"
685
+ }, nt = {
686
+ class: "body"
687
+ }, st = {
688
+ class: "logo"
689
+ }, it = {
690
+ class: "links"
691
+ }, lt = /* @__PURE__ */ L({
692
+ __name: "LandingPageFooterLayout",
693
+ setup(e) {
694
+ return (t, a) => (o(), i("div", ot, [d(B), s("div", nt, [s("div", st, [C(t.$slots, "LandingPageBrandInfo", {}, void 0, !0)]), s("div", it, [C(t.$slots, "LandingPageLinkGroup", {}, void 0, !0)])]), d(B), C(t.$slots, "LandingPageFooterContact", {}, void 0, !0)]));
695
+ }
696
+ }), Mt = /* @__PURE__ */ y(lt, [["__scopeId", "data-v-4beca0b2"]]), rt = ["href", "target", "rel"], ct = {
697
+ key: 1,
698
+ class: "Description"
699
+ }, dt = /* @__PURE__ */ L({
700
+ __name: "LandingPageLink",
701
+ props: {
702
+ href: {},
703
+ target: {}
704
+ },
705
+ setup(e) {
706
+ const t = e;
707
+ return (a, r) => t.href ? (o(), i("a", {
708
+ key: 0,
709
+ class: "Description",
710
+ href: t.href,
711
+ target: t.target,
712
+ rel: t.target === "_blank" ? "noopener noreferrer" : void 0
713
+ }, [C(a.$slots, "default", {}, void 0, !0)], 8, rt)) : (o(), i("div", ct, [C(a.$slots, "default", {}, void 0, !0)]));
714
+ }
715
+ }), qt = /* @__PURE__ */ y(dt, [["__scopeId", "data-v-160922db"]]), ut = {
716
+ class: "list"
717
+ }, mt = {
718
+ class: "title"
719
+ }, ft = {
720
+ class: "listItemContent"
721
+ }, pt = /* @__PURE__ */ L({
722
+ __name: "LandingPageLinkGroup",
723
+ props: {
724
+ title: {
725
+ default: ""
726
+ }
727
+ },
728
+ setup(e) {
729
+ const t = e;
730
+ return (a, r) => (o(), i("div", ut, [s("div", mt, f(t.title), 1), s("div", ft, [C(a.$slots, "item", {}, void 0, !0)])]));
731
+ }
732
+ }), Nt = /* @__PURE__ */ y(pt, [["__scopeId", "data-v-4f6d9dca"]]);
733
+ export {
734
+ B as D,
735
+ Tt as L,
736
+ Ft as a,
737
+ St as b,
738
+ Rt as c,
739
+ Bt as d,
740
+ Mt as e,
741
+ qt as f,
742
+ Nt as g,
743
+ oe as h,
744
+ Pt as i,
745
+ zt as j,
746
+ Vt as k,
747
+ Dt as l,
748
+ At as m
749
+ };