@huyooo/ui 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{FeedbackModal.vue_vue_type_script_setup_true_lang-B9BqGWm8.js → FeedbackModal.vue_vue_type_script_setup_true_lang-DrL_XBqf.js} +512 -511
- package/dist/{UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-zgjpFVln.js → UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-0Td42Nb3.js} +1 -1
- package/dist/{WidthContainer-PeWkCK0p.js → WidthContainer-CFMQRsCy.js} +1 -1
- package/dist/common.js +1 -1
- package/dist/components/Feedback/FeedbackDetails.vue.d.ts +30 -0
- package/dist/feedback.js +1 -1
- package/dist/main.js +3 -3
- package/dist/style.css +1 -1
- package/dist/user.js +1 -1
- package/package.json +2 -2
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
/* empty css */
|
|
2
2
|
/* empty css */
|
|
3
|
-
import { U as
|
|
4
|
-
import { defineComponent as q, useModel as
|
|
5
|
-
import { ImagePreviewGroup as
|
|
6
|
-
import { M as
|
|
3
|
+
import { U as Je } from "./userMenuModal-D-nDaYqM.js";
|
|
4
|
+
import { defineComponent as q, useModel as Ze, openBlock as s, createBlock as B, Teleport as Qe, createElementBlock as u, withKeys as et, createElementVNode as y, toDisplayString as F, withModifiers as G, createCommentVNode as R, mergeModels as tt, ref as g, computed as P, Fragment as L, renderList as N, createVNode as f, unref as a, normalizeStyle as ee, withCtx as v, createTextVNode as V, normalizeClass as re, onBeforeUnmount as at, onUnmounted as st, watch as ve, readonly as nt, nextTick as ae } from "vue";
|
|
5
|
+
import { ImagePreviewGroup as be, Avatar as oe, Space as ue, Descriptions as lt, DescriptionsItem as se, Tag as Z, Spin as it, Empty as rt, Button as me, Message as ce, Form as ot, FormItem as Y, Input as ut, Select as Ue, Option as xe, Textarea as ct, Breadcrumb as dt, BreadcrumbItem as Se, Modal as ft } from "@arco-design/web-vue";
|
|
6
|
+
import { M as vt } from "./Menu-uCexrsKP.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
import { C as
|
|
8
|
+
import { C as de } from "./index-BkLvw1PU.js";
|
|
9
9
|
/* empty css */
|
|
10
10
|
/* empty css */
|
|
11
|
-
import { o as
|
|
11
|
+
import { o as z, g as Ie } from "./apiClients-BcXOLuYu.js";
|
|
12
12
|
/* empty css */
|
|
13
|
-
import { g as
|
|
13
|
+
import { g as pt, u as mt } from "./useUploadCos-C8BqFPkx.js";
|
|
14
14
|
import { _ as W } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
15
|
-
import { r as
|
|
15
|
+
import { r as gt, m as $e, a as bt, M as kt } from "./MessageList-Ce-_LNTk.js";
|
|
16
16
|
import { f as Q } from "./index-D56hUMeD.js";
|
|
17
|
-
import { Bubble as
|
|
18
|
-
import { u as
|
|
19
|
-
import { u as
|
|
17
|
+
import { Bubble as Ae, Sender as yt } from "ant-design-x-vue";
|
|
18
|
+
import { u as _t } from "./useAuthkitUsersProfile-DJlMsftY.js";
|
|
19
|
+
import { u as ht } from "./useUserMenu-ClPBlvaM.js";
|
|
20
20
|
/* empty css */
|
|
21
|
-
import { Icon as
|
|
22
|
-
import { _ as
|
|
23
|
-
const
|
|
21
|
+
import { Icon as wt } from "@iconify/vue";
|
|
22
|
+
import { _ as Ct, g as Ut, i as xt } from "./plugin-vue_export-helper-LjDO2Zua.js";
|
|
23
|
+
const St = {
|
|
24
24
|
class: "video-preview__header"
|
|
25
|
-
}, St = {
|
|
26
|
-
class: "video-preview__title"
|
|
27
25
|
}, $t = {
|
|
26
|
+
class: "video-preview__title"
|
|
27
|
+
}, Ft = {
|
|
28
28
|
class: "video-preview__stage"
|
|
29
|
-
},
|
|
29
|
+
}, It = ["src"], At = /* @__PURE__ */ q({
|
|
30
30
|
__name: "VideoPreview",
|
|
31
|
-
props: /* @__PURE__ */
|
|
31
|
+
props: /* @__PURE__ */ tt({
|
|
32
32
|
src: {
|
|
33
33
|
type: String,
|
|
34
34
|
default: ""
|
|
@@ -46,23 +46,23 @@ const xt = {
|
|
|
46
46
|
}),
|
|
47
47
|
emits: ["update:visible"],
|
|
48
48
|
setup(e) {
|
|
49
|
-
const t =
|
|
49
|
+
const t = Ze(e, "visible"), i = e;
|
|
50
50
|
function o() {
|
|
51
51
|
t.value = !1;
|
|
52
52
|
}
|
|
53
|
-
return (
|
|
53
|
+
return (m, l) => (s(), B(Qe, {
|
|
54
54
|
to: "body"
|
|
55
|
-
}, [t.value ? (s(),
|
|
55
|
+
}, [t.value ? (s(), u("div", {
|
|
56
56
|
key: 0,
|
|
57
57
|
class: "video-preview",
|
|
58
58
|
tabindex: "0",
|
|
59
59
|
onClick: o,
|
|
60
|
-
onKeydown:
|
|
61
|
-
}, [
|
|
60
|
+
onKeydown: et(o, ["esc"])
|
|
61
|
+
}, [y("div", St, [y("div", $t, F(i.title), 1), y("button", {
|
|
62
62
|
type: "button",
|
|
63
63
|
class: "video-preview__close",
|
|
64
64
|
onClick: G(o, ["stop"])
|
|
65
|
-
}, " × ")]),
|
|
65
|
+
}, " × ")]), y("div", Ft, [i.src ? (s(), u("video", {
|
|
66
66
|
key: 0,
|
|
67
67
|
class: "video-preview__video",
|
|
68
68
|
src: i.src,
|
|
@@ -70,18 +70,18 @@ const xt = {
|
|
|
70
70
|
autoplay: "",
|
|
71
71
|
onClick: l[0] || (l[0] = G(() => {
|
|
72
72
|
}, ["stop"]))
|
|
73
|
-
}, null, 8,
|
|
73
|
+
}, null, 8, It)) : R("", !0)])], 32)) : R("", !0)]));
|
|
74
74
|
}
|
|
75
|
-
}),
|
|
75
|
+
}), ke = /* @__PURE__ */ W(At, [["__scopeId", "data-v-3f517bc8"]]), Pt = {
|
|
76
76
|
key: 0,
|
|
77
77
|
class: "message-attachments"
|
|
78
|
-
},
|
|
78
|
+
}, Rt = ["title", "onClick"], Bt = ["src", "alt"], Tt = ["title", "onClick"], Mt = ["src"], Lt = ["href", "title"], Vt = {
|
|
79
79
|
class: "message-attachment-main"
|
|
80
|
-
}, Vt = {
|
|
81
|
-
class: "message-attachment-name"
|
|
82
80
|
}, Et = {
|
|
81
|
+
class: "message-attachment-name"
|
|
82
|
+
}, Dt = {
|
|
83
83
|
class: "message-attachment-meta"
|
|
84
|
-
},
|
|
84
|
+
}, qt = /* @__PURE__ */ q({
|
|
85
85
|
__name: "FeedbackMessageAttachments",
|
|
86
86
|
props: {
|
|
87
87
|
attachments: {
|
|
@@ -90,82 +90,82 @@ const xt = {
|
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
setup(e) {
|
|
93
|
-
const t = e, i =
|
|
94
|
-
function w(
|
|
95
|
-
o.value =
|
|
93
|
+
const t = e, i = g(!1), o = g(0), m = g(!1), l = g(""), k = g(""), x = P(() => t.attachments.filter((p) => p.kind === "image")), _ = P(() => t.attachments.filter((p) => p.kind === "video")), S = P(() => t.attachments.filter((p) => p.kind === "file")), M = P(() => x.value.map((p) => p.url || ""));
|
|
94
|
+
function w(p) {
|
|
95
|
+
o.value = p, i.value = !0;
|
|
96
96
|
}
|
|
97
|
-
function $(
|
|
98
|
-
l.value =
|
|
97
|
+
function $(p) {
|
|
98
|
+
l.value = p.url || "", k.value = p.name, m.value = !0;
|
|
99
99
|
}
|
|
100
|
-
function
|
|
101
|
-
return
|
|
100
|
+
function D(p) {
|
|
101
|
+
return p < 1024 ? `${p} B` : p < 1024 * 1024 ? `${(p / 1024).toFixed(1)} KB` : p < 1024 * 1024 * 1024 ? `${(p / 1024 / 1024).toFixed(1)} MB` : `${(p / 1024 / 1024 / 1024).toFixed(1)} GB`;
|
|
102
102
|
}
|
|
103
|
-
return (
|
|
104
|
-
key:
|
|
103
|
+
return (p, I) => (s(), u(L, null, [t.attachments.length > 0 ? (s(), u("div", Pt, [(s(!0), u(L, null, N(x.value, (c, A) => (s(), u("button", {
|
|
104
|
+
key: c.key,
|
|
105
105
|
type: "button",
|
|
106
106
|
class: "message-media message-media--image",
|
|
107
|
-
title:
|
|
108
|
-
onClick: (
|
|
109
|
-
}, [
|
|
110
|
-
src:
|
|
111
|
-
alt:
|
|
107
|
+
title: c.name,
|
|
108
|
+
onClick: (U) => w(A)
|
|
109
|
+
}, [y("img", {
|
|
110
|
+
src: c.url,
|
|
111
|
+
alt: c.name,
|
|
112
112
|
class: "message-media__content"
|
|
113
|
-
}, null, 8,
|
|
114
|
-
key:
|
|
113
|
+
}, null, 8, Bt)], 8, Rt))), 128)), (s(!0), u(L, null, N(_.value, (c) => (s(), u("button", {
|
|
114
|
+
key: c.key,
|
|
115
115
|
type: "button",
|
|
116
116
|
class: "message-media message-media--video",
|
|
117
|
-
title:
|
|
118
|
-
onClick: (
|
|
119
|
-
}, [
|
|
117
|
+
title: c.name,
|
|
118
|
+
onClick: (A) => $(c)
|
|
119
|
+
}, [y("video", {
|
|
120
120
|
class: "message-media__content",
|
|
121
|
-
src:
|
|
121
|
+
src: c.url,
|
|
122
122
|
muted: "",
|
|
123
123
|
preload: "metadata"
|
|
124
|
-
}, null, 8,
|
|
124
|
+
}, null, 8, Mt), I[3] || (I[3] = y("span", {
|
|
125
125
|
class: "message-video-play"
|
|
126
|
-
}, "播放", -1))], 8,
|
|
127
|
-
key:
|
|
126
|
+
}, "播放", -1))], 8, Tt))), 128)), (s(!0), u(L, null, N(S.value, (c) => (s(), u("a", {
|
|
127
|
+
key: c.key,
|
|
128
128
|
class: "message-file",
|
|
129
|
-
href:
|
|
129
|
+
href: c.url,
|
|
130
130
|
target: "_blank",
|
|
131
131
|
rel: "noopener noreferrer",
|
|
132
|
-
title:
|
|
133
|
-
}, [I[4] || (I[4] =
|
|
132
|
+
title: c.name
|
|
133
|
+
}, [I[4] || (I[4] = y("span", {
|
|
134
134
|
class: "message-file-icon"
|
|
135
|
-
}, "FILE", -1)),
|
|
136
|
-
"src-list":
|
|
135
|
+
}, "FILE", -1)), y("span", Vt, [y("span", Et, F(c.name), 1), y("span", Dt, F(D(c.size)), 1)])], 8, Lt))), 128))])) : R("", !0), f(a(be), {
|
|
136
|
+
"src-list": M.value,
|
|
137
137
|
visible: i.value,
|
|
138
|
-
"onUpdate:visible": I[0] || (I[0] = (
|
|
138
|
+
"onUpdate:visible": I[0] || (I[0] = (c) => i.value = c),
|
|
139
139
|
current: o.value,
|
|
140
|
-
"onUpdate:current": I[1] || (I[1] = (
|
|
141
|
-
}, null, 8, ["src-list", "visible", "current"]), f(
|
|
142
|
-
visible:
|
|
143
|
-
"onUpdate:visible": I[2] || (I[2] = (
|
|
140
|
+
"onUpdate:current": I[1] || (I[1] = (c) => o.value = c)
|
|
141
|
+
}, null, 8, ["src-list", "visible", "current"]), f(ke, {
|
|
142
|
+
visible: m.value,
|
|
143
|
+
"onUpdate:visible": I[2] || (I[2] = (c) => m.value = c),
|
|
144
144
|
title: k.value,
|
|
145
145
|
src: l.value
|
|
146
146
|
}, null, 8, ["visible", "title", "src"])], 64));
|
|
147
147
|
}
|
|
148
|
-
}),
|
|
148
|
+
}), Pe = /* @__PURE__ */ W(qt, [["__scopeId", "data-v-49a094a3"]]), Ot = /* @__PURE__ */ q({
|
|
149
149
|
__name: "FeedbackRefresh",
|
|
150
150
|
setup(e) {
|
|
151
|
-
return (t, i) => (s(), B(a(
|
|
151
|
+
return (t, i) => (s(), B(a(wt), {
|
|
152
152
|
class: "icon",
|
|
153
153
|
icon: "mingcute:refresh-2-line"
|
|
154
154
|
}));
|
|
155
155
|
}
|
|
156
|
-
}),
|
|
156
|
+
}), Fe = /* @__PURE__ */ W(Ot, [["__scopeId", "data-v-64bb6fc2"]]), zt = ["src"], Nt = {
|
|
157
157
|
key: 1
|
|
158
|
-
}, Nt = {
|
|
159
|
-
class: "feedback-message-body"
|
|
160
158
|
}, jt = {
|
|
159
|
+
class: "feedback-message-body"
|
|
160
|
+
}, Kt = {
|
|
161
161
|
key: 0,
|
|
162
162
|
class: "feedback-text-bubble"
|
|
163
|
-
},
|
|
163
|
+
}, Wt = {
|
|
164
164
|
key: 1,
|
|
165
165
|
class: "feedback-bubble-stack feedback-bubble-stack--end"
|
|
166
|
-
},
|
|
166
|
+
}, Ht = ["src"], Gt = {
|
|
167
167
|
key: 1
|
|
168
|
-
},
|
|
168
|
+
}, Xt = /* @__PURE__ */ q({
|
|
169
169
|
__name: "FeedbackBubbleEnd",
|
|
170
170
|
props: {
|
|
171
171
|
text: {
|
|
@@ -204,63 +204,63 @@ const xt = {
|
|
|
204
204
|
emit: t
|
|
205
205
|
}) {
|
|
206
206
|
const i = e, o = t;
|
|
207
|
-
function
|
|
207
|
+
function m(_) {
|
|
208
208
|
return _.startsWith("http://") || _.startsWith("https://") || _.startsWith("data:");
|
|
209
209
|
}
|
|
210
|
-
const l =
|
|
210
|
+
const l = P(() => {
|
|
211
211
|
const _ = i.avatarUrl.trim();
|
|
212
|
-
return
|
|
213
|
-
}), k =
|
|
212
|
+
return m(_) ? _ : "";
|
|
213
|
+
}), k = P(() => i.attachments.length > 0);
|
|
214
214
|
function x() {
|
|
215
215
|
o("refresh");
|
|
216
216
|
}
|
|
217
|
-
return (_, S) => k.value ? (s(),
|
|
217
|
+
return (_, S) => k.value ? (s(), u("div", {
|
|
218
218
|
key: 0,
|
|
219
219
|
class: "feedback-message-group feedback-message-group--end",
|
|
220
220
|
style: ee(i.bubbleStyle)
|
|
221
|
-
}, [f(a(
|
|
221
|
+
}, [f(a(oe), {
|
|
222
222
|
class: "feedback-message-avatar"
|
|
223
223
|
}, {
|
|
224
|
-
default: v(() => [l.value ? (s(),
|
|
224
|
+
default: v(() => [l.value ? (s(), u("img", {
|
|
225
225
|
key: 0,
|
|
226
226
|
alt: "avatar",
|
|
227
227
|
src: l.value
|
|
228
|
-
}, null, 8,
|
|
228
|
+
}, null, 8, zt)) : (s(), u("span", Nt, F(i.avatarText), 1))]),
|
|
229
229
|
_: 1
|
|
230
|
-
}),
|
|
230
|
+
}), y("div", jt, [i.text ? (s(), u("div", Kt, F(i.text), 1)) : R("", !0), i.showClipboard || i.showRefresh ? (s(), B(a(ue), {
|
|
231
231
|
key: 1,
|
|
232
232
|
class: "feedback-message-footer"
|
|
233
233
|
}, {
|
|
234
|
-
default: v(() => [i.showClipboard ? (s(), B(
|
|
234
|
+
default: v(() => [i.showClipboard ? (s(), B(de, {
|
|
235
235
|
key: 0,
|
|
236
236
|
value: i.text
|
|
237
|
-
}, null, 8, ["value"])) : R("", !0), i.showRefresh ? (s(), B(
|
|
237
|
+
}, null, 8, ["value"])) : R("", !0), i.showRefresh ? (s(), B(Fe, {
|
|
238
238
|
key: 1,
|
|
239
239
|
onClick: x
|
|
240
240
|
})) : R("", !0)]),
|
|
241
241
|
_: 1
|
|
242
|
-
})) : R("", !0), f(
|
|
242
|
+
})) : R("", !0), f(Pe, {
|
|
243
243
|
attachments: i.attachments
|
|
244
|
-
}, null, 8, ["attachments"])])], 4)) : (s(),
|
|
244
|
+
}, null, 8, ["attachments"])])], 4)) : (s(), u("div", Wt, [f(a(Ae), {
|
|
245
245
|
placement: "end",
|
|
246
246
|
style: ee(i.bubbleStyle)
|
|
247
247
|
}, {
|
|
248
|
-
avatar: v(() => [f(a(
|
|
249
|
-
default: v(() => [l.value ? (s(),
|
|
248
|
+
avatar: v(() => [f(a(oe), null, {
|
|
249
|
+
default: v(() => [l.value ? (s(), u("img", {
|
|
250
250
|
key: 0,
|
|
251
251
|
alt: "avatar",
|
|
252
252
|
src: l.value
|
|
253
|
-
}, null, 8,
|
|
253
|
+
}, null, 8, Ht)) : (s(), u("span", Gt, F(i.avatarText), 1))]),
|
|
254
254
|
_: 1
|
|
255
255
|
})]),
|
|
256
|
-
message: v(() => [i.text ? (s(),
|
|
256
|
+
message: v(() => [i.text ? (s(), u(L, {
|
|
257
257
|
key: 0
|
|
258
|
-
}, [
|
|
259
|
-
footer: v(() => [f(a(
|
|
260
|
-
default: v(() => [i.showClipboard && i.text ? (s(), B(
|
|
258
|
+
}, [V(F(i.text), 1)], 64)) : R("", !0)]),
|
|
259
|
+
footer: v(() => [f(a(ue), null, {
|
|
260
|
+
default: v(() => [i.showClipboard && i.text ? (s(), B(de, {
|
|
261
261
|
key: 0,
|
|
262
262
|
value: i.text
|
|
263
|
-
}, null, 8, ["value"])) : R("", !0), i.showRefresh ? (s(), B(
|
|
263
|
+
}, null, 8, ["value"])) : R("", !0), i.showRefresh ? (s(), B(Fe, {
|
|
264
264
|
key: 1,
|
|
265
265
|
onClick: x
|
|
266
266
|
})) : R("", !0)]),
|
|
@@ -269,19 +269,19 @@ const xt = {
|
|
|
269
269
|
_: 1
|
|
270
270
|
}, 8, ["style"])]));
|
|
271
271
|
}
|
|
272
|
-
}),
|
|
272
|
+
}), Yt = /* @__PURE__ */ W(Xt, [["__scopeId", "data-v-ed8f32cc"]]), Jt = ["src"], Zt = {
|
|
273
273
|
key: 1
|
|
274
|
-
}, Zt = {
|
|
275
|
-
class: "feedback-message-body"
|
|
276
274
|
}, Qt = {
|
|
275
|
+
class: "feedback-message-body"
|
|
276
|
+
}, ea = {
|
|
277
277
|
key: 0,
|
|
278
278
|
class: "feedback-text-bubble"
|
|
279
|
-
},
|
|
279
|
+
}, ta = {
|
|
280
280
|
key: 1,
|
|
281
281
|
class: "feedback-bubble-stack feedback-bubble-stack--start"
|
|
282
|
-
},
|
|
282
|
+
}, aa = ["src"], sa = {
|
|
283
283
|
key: 1
|
|
284
|
-
},
|
|
284
|
+
}, na = /* @__PURE__ */ q({
|
|
285
285
|
__name: "FeedbackBubbleStart",
|
|
286
286
|
props: {
|
|
287
287
|
text: {
|
|
@@ -316,50 +316,50 @@ const xt = {
|
|
|
316
316
|
function i(l) {
|
|
317
317
|
return l.startsWith("http://") || l.startsWith("https://") || l.startsWith("data:");
|
|
318
318
|
}
|
|
319
|
-
const o =
|
|
319
|
+
const o = P(() => {
|
|
320
320
|
const l = t.avatarUrl.trim();
|
|
321
321
|
return i(l) ? l : "";
|
|
322
|
-
}),
|
|
323
|
-
return (l, k) =>
|
|
322
|
+
}), m = P(() => t.attachments.length > 0);
|
|
323
|
+
return (l, k) => m.value ? (s(), u("div", {
|
|
324
324
|
key: 0,
|
|
325
325
|
class: "feedback-message-group feedback-message-group--start",
|
|
326
326
|
style: ee(t.bubbleStyle)
|
|
327
|
-
}, [f(a(
|
|
327
|
+
}, [f(a(oe), {
|
|
328
328
|
class: "feedback-message-avatar"
|
|
329
329
|
}, {
|
|
330
|
-
default: v(() => [o.value ? (s(),
|
|
330
|
+
default: v(() => [o.value ? (s(), u("img", {
|
|
331
331
|
key: 0,
|
|
332
332
|
alt: "avatar",
|
|
333
333
|
src: o.value
|
|
334
|
-
}, null, 8,
|
|
334
|
+
}, null, 8, Jt)) : (s(), u("span", Zt, F(t.avatarText), 1))]),
|
|
335
335
|
_: 1
|
|
336
|
-
}),
|
|
336
|
+
}), y("div", Qt, [t.text ? (s(), u("div", ea, F(t.text), 1)) : R("", !0), t.showClipboard ? (s(), B(a(ue), {
|
|
337
337
|
key: 1,
|
|
338
338
|
class: "feedback-message-footer"
|
|
339
339
|
}, {
|
|
340
|
-
default: v(() => [f(
|
|
340
|
+
default: v(() => [f(de, {
|
|
341
341
|
value: t.text
|
|
342
342
|
}, null, 8, ["value"])]),
|
|
343
343
|
_: 1
|
|
344
|
-
})) : R("", !0), f(
|
|
344
|
+
})) : R("", !0), f(Pe, {
|
|
345
345
|
attachments: t.attachments
|
|
346
|
-
}, null, 8, ["attachments"])])], 4)) : (s(),
|
|
346
|
+
}, null, 8, ["attachments"])])], 4)) : (s(), u("div", ta, [f(a(Ae), {
|
|
347
347
|
placement: "start",
|
|
348
348
|
style: ee(t.bubbleStyle)
|
|
349
349
|
}, {
|
|
350
|
-
avatar: v(() => [f(a(
|
|
351
|
-
default: v(() => [o.value ? (s(),
|
|
350
|
+
avatar: v(() => [f(a(oe), null, {
|
|
351
|
+
default: v(() => [o.value ? (s(), u("img", {
|
|
352
352
|
key: 0,
|
|
353
353
|
alt: "avatar",
|
|
354
354
|
src: o.value
|
|
355
|
-
}, null, 8,
|
|
355
|
+
}, null, 8, aa)) : (s(), u("span", sa, F(t.avatarText), 1))]),
|
|
356
356
|
_: 1
|
|
357
357
|
})]),
|
|
358
|
-
message: v(() => [t.text ? (s(),
|
|
358
|
+
message: v(() => [t.text ? (s(), u(L, {
|
|
359
359
|
key: 0
|
|
360
|
-
}, [
|
|
361
|
-
footer: v(() => [f(a(
|
|
362
|
-
default: v(() => [t.showClipboard && t.text ? (s(), B(
|
|
360
|
+
}, [V(F(t.text), 1)], 64)) : R("", !0)]),
|
|
361
|
+
footer: v(() => [f(a(ue), null, {
|
|
362
|
+
default: v(() => [t.showClipboard && t.text ? (s(), B(de, {
|
|
363
363
|
key: 0,
|
|
364
364
|
value: t.text
|
|
365
365
|
}, null, 8, ["value"])) : R("", !0)]),
|
|
@@ -368,7 +368,7 @@ const xt = {
|
|
|
368
368
|
_: 1
|
|
369
369
|
}, 8, ["style"])]));
|
|
370
370
|
}
|
|
371
|
-
}),
|
|
371
|
+
}), la = /* @__PURE__ */ W(na, [["__scopeId", "data-v-a88b5650"]]), ia = q({
|
|
372
372
|
name: "IconLink",
|
|
373
373
|
props: {
|
|
374
374
|
size: {
|
|
@@ -397,58 +397,58 @@ const xt = {
|
|
|
397
397
|
setup(e, {
|
|
398
398
|
emit: t
|
|
399
399
|
}) {
|
|
400
|
-
const i =
|
|
400
|
+
const i = Ut("icon"), o = P(() => [i, `${i}-link`, {
|
|
401
401
|
[`${i}-spin`]: e.spin
|
|
402
|
-
}]),
|
|
402
|
+
}]), m = P(() => {
|
|
403
403
|
const k = {};
|
|
404
|
-
return e.size && (k.fontSize =
|
|
404
|
+
return e.size && (k.fontSize = xt(e.size) ? `${e.size}px` : e.size), e.rotate && (k.transform = `rotate(${e.rotate}deg)`), k;
|
|
405
405
|
});
|
|
406
406
|
return {
|
|
407
407
|
cls: o,
|
|
408
|
-
innerStyle:
|
|
408
|
+
innerStyle: m,
|
|
409
409
|
onClick: (k) => {
|
|
410
410
|
t("click", k);
|
|
411
411
|
}
|
|
412
412
|
};
|
|
413
413
|
}
|
|
414
|
-
}),
|
|
415
|
-
function
|
|
416
|
-
return s(),
|
|
414
|
+
}), ra = ["stroke-width", "stroke-linecap", "stroke-linejoin"];
|
|
415
|
+
function oa(e, t, i, o, m, l) {
|
|
416
|
+
return s(), u("svg", {
|
|
417
417
|
viewBox: "0 0 48 48",
|
|
418
418
|
fill: "none",
|
|
419
419
|
xmlns: "http://www.w3.org/2000/svg",
|
|
420
420
|
stroke: "currentColor",
|
|
421
|
-
class:
|
|
421
|
+
class: re(e.cls),
|
|
422
422
|
style: ee(e.innerStyle),
|
|
423
423
|
"stroke-width": e.strokeWidth,
|
|
424
424
|
"stroke-linecap": e.strokeLinecap,
|
|
425
425
|
"stroke-linejoin": e.strokeLinejoin,
|
|
426
426
|
onClick: t[0] || (t[0] = (...k) => e.onClick && e.onClick(...k))
|
|
427
|
-
}, t[1] || (t[1] = [
|
|
427
|
+
}, t[1] || (t[1] = [y("path", {
|
|
428
428
|
d: "m14.1 25.414-4.95 4.95a6 6 0 0 0 8.486 8.485l8.485-8.485a6 6 0 0 0 0-8.485m7.779.707 4.95-4.95a6 6 0 1 0-8.486-8.485l-8.485 8.485a6 6 0 0 0 0 8.485"
|
|
429
|
-
}, null, -1)]), 14,
|
|
429
|
+
}, null, -1)]), 14, ra);
|
|
430
430
|
}
|
|
431
|
-
var
|
|
432
|
-
const
|
|
431
|
+
var pe = /* @__PURE__ */ Ct(ia, [["render", oa]]);
|
|
432
|
+
const ua = Object.assign(pe, {
|
|
433
433
|
install: (e, t) => {
|
|
434
434
|
var i;
|
|
435
435
|
const o = (i = t == null ? void 0 : t.iconPrefix) != null ? i : "";
|
|
436
|
-
e.component(o +
|
|
436
|
+
e.component(o + pe.name, pe);
|
|
437
437
|
}
|
|
438
|
-
}),
|
|
439
|
-
function
|
|
438
|
+
}), Re = [".jpg", ".jpeg", ".png", ".gif", ".webp", ".mp4", ".webm", ".mov", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".txt", ".md", ".csv", ".json", ".zip"], Be = Re.join(","), ca = /* @__PURE__ */ new Set(["image/jpeg", "image/png", "image/gif", "image/webp"]), da = /* @__PURE__ */ new Set(["video/mp4", "video/webm", "video/quicktime"]);
|
|
439
|
+
function fa(e) {
|
|
440
440
|
const t = e.lastIndexOf(".");
|
|
441
441
|
return t < 0 ? "" : e.slice(t).toLowerCase();
|
|
442
442
|
}
|
|
443
|
-
function
|
|
444
|
-
return
|
|
443
|
+
function va(e) {
|
|
444
|
+
return Re.includes(fa(e.name));
|
|
445
445
|
}
|
|
446
|
-
function
|
|
447
|
-
return
|
|
446
|
+
function Te(e, t = e.type) {
|
|
447
|
+
return ca.has(t) ? "image" : da.has(t) ? "video" : "file";
|
|
448
448
|
}
|
|
449
|
-
const
|
|
450
|
-
function
|
|
451
|
-
const t =
|
|
449
|
+
const ne = 9;
|
|
450
|
+
function pa(e) {
|
|
451
|
+
const t = Te(e);
|
|
452
452
|
return {
|
|
453
453
|
id: `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
|
|
454
454
|
file: e,
|
|
@@ -456,8 +456,8 @@ function va(e) {
|
|
|
456
456
|
previewUrl: t === "image" || t === "video" ? URL.createObjectURL(e) : void 0
|
|
457
457
|
};
|
|
458
458
|
}
|
|
459
|
-
function
|
|
460
|
-
const t =
|
|
459
|
+
function Me(e) {
|
|
460
|
+
const t = g([]), i = P(() => t.value.length > 0), o = P(() => t.value.filter((w) => w.kind === "image" && !!w.previewUrl)), m = P(() => t.value.filter((w) => w.kind === "video" && !!w.previewUrl)), l = P(() => t.value.filter((w) => w.kind === "file"));
|
|
461
461
|
function k(w) {
|
|
462
462
|
e == null || e(w);
|
|
463
463
|
}
|
|
@@ -466,78 +466,78 @@ function Te(e) {
|
|
|
466
466
|
}
|
|
467
467
|
function _(w) {
|
|
468
468
|
if (w.length === 0) return;
|
|
469
|
-
const $ = w.filter(
|
|
469
|
+
const $ = w.filter(va);
|
|
470
470
|
if (w.length - $.length > 0 && k("仅支持常见图片、浏览器可预览视频、文档、文本、CSV、JSON 和 ZIP 文件"), $.length === 0) return;
|
|
471
|
-
const
|
|
472
|
-
if (
|
|
473
|
-
k(`最多只能添加 ${
|
|
471
|
+
const p = ne - t.value.length;
|
|
472
|
+
if (p <= 0) {
|
|
473
|
+
k(`最多只能添加 ${ne} 个附件`);
|
|
474
474
|
return;
|
|
475
475
|
}
|
|
476
|
-
const I = $.slice(0,
|
|
477
|
-
$.length >
|
|
476
|
+
const I = $.slice(0, p);
|
|
477
|
+
$.length > p && k(`最多只能添加 ${ne} 个附件,已跳过多余文件`), t.value.push(...I.map(pa));
|
|
478
478
|
}
|
|
479
479
|
function S(w) {
|
|
480
480
|
const $ = t.value[w];
|
|
481
481
|
$ && (x($), t.value.splice(w, 1));
|
|
482
482
|
}
|
|
483
|
-
function
|
|
483
|
+
function M() {
|
|
484
484
|
t.value.forEach(x), t.value = [];
|
|
485
485
|
}
|
|
486
|
-
return
|
|
487
|
-
|
|
486
|
+
return at(() => {
|
|
487
|
+
M();
|
|
488
488
|
}), {
|
|
489
489
|
items: t,
|
|
490
490
|
imageItems: o,
|
|
491
|
-
videoItems:
|
|
491
|
+
videoItems: m,
|
|
492
492
|
fileItems: l,
|
|
493
493
|
hasAttachments: i,
|
|
494
494
|
addFiles: _,
|
|
495
495
|
removeAt: S,
|
|
496
|
-
clear:
|
|
497
|
-
maxAttachments:
|
|
496
|
+
clear: M,
|
|
497
|
+
maxAttachments: ne
|
|
498
498
|
};
|
|
499
499
|
}
|
|
500
|
-
function
|
|
500
|
+
function ma(e, t) {
|
|
501
501
|
const {
|
|
502
502
|
uploadFile: i
|
|
503
|
-
} =
|
|
504
|
-
return new Promise((o,
|
|
503
|
+
} = mt();
|
|
504
|
+
return new Promise((o, m) => {
|
|
505
505
|
i({
|
|
506
506
|
file: e,
|
|
507
507
|
bucketId: t,
|
|
508
508
|
onFileFinish(l, k, x) {
|
|
509
509
|
if (l) {
|
|
510
|
-
|
|
510
|
+
m(l);
|
|
511
511
|
return;
|
|
512
512
|
}
|
|
513
513
|
o(x.Key);
|
|
514
514
|
},
|
|
515
515
|
onError(l) {
|
|
516
|
-
|
|
516
|
+
m(l);
|
|
517
517
|
}
|
|
518
518
|
});
|
|
519
519
|
});
|
|
520
520
|
}
|
|
521
|
-
async function
|
|
521
|
+
async function Le(e, t) {
|
|
522
522
|
const i = [];
|
|
523
523
|
for (const o of e) {
|
|
524
|
-
const
|
|
524
|
+
const m = await ma(o, t), l = pt(o);
|
|
525
525
|
i.push({
|
|
526
|
-
key:
|
|
526
|
+
key: m,
|
|
527
527
|
name: o.name,
|
|
528
528
|
size: o.size,
|
|
529
529
|
mimeType: l,
|
|
530
|
-
kind:
|
|
530
|
+
kind: Te(o, l)
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
return i;
|
|
534
534
|
}
|
|
535
|
-
function
|
|
535
|
+
function ga(e, t = {}) {
|
|
536
536
|
const {
|
|
537
537
|
interval: i = 2e3,
|
|
538
538
|
immediate: o = !1,
|
|
539
|
-
autoStart:
|
|
540
|
-
} = t, l =
|
|
539
|
+
autoStart: m = !1
|
|
540
|
+
} = t, l = g(!1);
|
|
541
541
|
let k = null;
|
|
542
542
|
async function x() {
|
|
543
543
|
try {
|
|
@@ -556,78 +556,78 @@ function ma(e, t = {}) {
|
|
|
556
556
|
function S() {
|
|
557
557
|
k && (clearInterval(k), k = null), l.value = !1;
|
|
558
558
|
}
|
|
559
|
-
function
|
|
559
|
+
function M() {
|
|
560
560
|
S(), _();
|
|
561
561
|
}
|
|
562
|
-
return
|
|
562
|
+
return m && _(), st(() => {
|
|
563
563
|
S();
|
|
564
564
|
}), {
|
|
565
565
|
isPolling: l,
|
|
566
566
|
start: _,
|
|
567
567
|
stop: S,
|
|
568
|
-
restart:
|
|
568
|
+
restart: M
|
|
569
569
|
};
|
|
570
570
|
}
|
|
571
|
-
const
|
|
572
|
-
let J = null,
|
|
573
|
-
function
|
|
574
|
-
|
|
571
|
+
const fe = g(0);
|
|
572
|
+
let J = null, ie = null, ge = !1;
|
|
573
|
+
function ba() {
|
|
574
|
+
fe.value = 0;
|
|
575
575
|
}
|
|
576
|
-
async function
|
|
576
|
+
async function ka() {
|
|
577
577
|
const {
|
|
578
578
|
data: e,
|
|
579
579
|
error: t
|
|
580
|
-
} = await
|
|
580
|
+
} = await z.feedbackCenter.unreadReplyCount.post({});
|
|
581
581
|
return t ? null : typeof (e == null ? void 0 : e.count) == "number" ? e.count : 0;
|
|
582
582
|
}
|
|
583
583
|
async function H() {
|
|
584
584
|
return J || (J = (async () => {
|
|
585
|
-
await
|
|
586
|
-
const e = await
|
|
587
|
-
e !== null && (
|
|
585
|
+
await bt();
|
|
586
|
+
const e = await ka();
|
|
587
|
+
e !== null && (fe.value = e);
|
|
588
588
|
})().finally(() => {
|
|
589
589
|
J = null;
|
|
590
590
|
}), J);
|
|
591
591
|
}
|
|
592
|
-
function
|
|
593
|
-
|
|
592
|
+
function ya() {
|
|
593
|
+
ge || (ge = !0, ie = setInterval(() => {
|
|
594
594
|
H();
|
|
595
595
|
}, 6e4));
|
|
596
596
|
}
|
|
597
|
-
function
|
|
598
|
-
|
|
597
|
+
function _a() {
|
|
598
|
+
ie && (clearInterval(ie), ie = null), ge = !1;
|
|
599
599
|
}
|
|
600
|
-
function
|
|
600
|
+
function Cs() {
|
|
601
601
|
const {
|
|
602
602
|
isLoggedIn: e
|
|
603
|
-
} =
|
|
603
|
+
} = _t(), {
|
|
604
604
|
isOpen: t,
|
|
605
605
|
messagesTrigger: i,
|
|
606
606
|
feedbackTrigger: o
|
|
607
|
-
} =
|
|
608
|
-
return
|
|
609
|
-
if (
|
|
610
|
-
H(),
|
|
607
|
+
} = ht();
|
|
608
|
+
return ve(e, (m) => {
|
|
609
|
+
if (m) {
|
|
610
|
+
H(), ya();
|
|
611
611
|
return;
|
|
612
612
|
}
|
|
613
|
-
|
|
613
|
+
gt(), ba(), _a();
|
|
614
614
|
}, {
|
|
615
615
|
immediate: !0
|
|
616
|
-
}),
|
|
617
|
-
|
|
618
|
-
}),
|
|
616
|
+
}), ve(t, (m) => {
|
|
617
|
+
m && e.value && H();
|
|
618
|
+
}), ve([i, o], () => {
|
|
619
619
|
e.value && window.setTimeout(() => {
|
|
620
620
|
H();
|
|
621
621
|
}, 1500);
|
|
622
622
|
}), {
|
|
623
|
-
messageUnreadCount:
|
|
624
|
-
feedbackUnreadCount:
|
|
625
|
-
hasMessageBadge:
|
|
626
|
-
hasFeedbackBadge:
|
|
623
|
+
messageUnreadCount: $e,
|
|
624
|
+
feedbackUnreadCount: nt(fe),
|
|
625
|
+
hasMessageBadge: P(() => $e.value > 0),
|
|
626
|
+
hasFeedbackBadge: P(() => fe.value > 0),
|
|
627
627
|
refreshUserMenuBadgeCounts: H
|
|
628
628
|
};
|
|
629
629
|
}
|
|
630
|
-
const
|
|
630
|
+
const ye = [{
|
|
631
631
|
key: "bugReports",
|
|
632
632
|
label: "问题报告"
|
|
633
633
|
}, {
|
|
@@ -639,7 +639,7 @@ const ke = [{
|
|
|
639
639
|
}, {
|
|
640
640
|
key: "generalOpinions",
|
|
641
641
|
label: "一般意见"
|
|
642
|
-
}],
|
|
642
|
+
}], Ve = [{
|
|
643
643
|
key: "urgent",
|
|
644
644
|
label: "紧急"
|
|
645
645
|
}, {
|
|
@@ -651,7 +651,7 @@ const ke = [{
|
|
|
651
651
|
}, {
|
|
652
652
|
key: "low",
|
|
653
653
|
label: "低"
|
|
654
|
-
}],
|
|
654
|
+
}], Ee = [{
|
|
655
655
|
key: "newFeedback",
|
|
656
656
|
label: "新反馈"
|
|
657
657
|
}, {
|
|
@@ -667,37 +667,37 @@ const ke = [{
|
|
|
667
667
|
key: "closed",
|
|
668
668
|
label: "已关闭"
|
|
669
669
|
}];
|
|
670
|
-
function
|
|
670
|
+
function ha(e) {
|
|
671
671
|
return e ? e.startsWith("http://") || e.startsWith("https://") || e.startsWith("data:") : !1;
|
|
672
672
|
}
|
|
673
|
-
function
|
|
674
|
-
const t = (e.attachments ?? []).filter((i) =>
|
|
673
|
+
function le(e) {
|
|
674
|
+
const t = (e.attachments ?? []).filter((i) => ha(i.url));
|
|
675
675
|
return {
|
|
676
676
|
text: e.content ?? "",
|
|
677
677
|
attachments: t
|
|
678
678
|
};
|
|
679
679
|
}
|
|
680
|
-
const
|
|
680
|
+
const wa = {
|
|
681
681
|
class: "FeedBackDetails"
|
|
682
|
-
}, wa = {
|
|
683
|
-
class: "scrollable-content__inner"
|
|
684
682
|
}, Ca = {
|
|
685
|
-
class: "
|
|
683
|
+
class: "scrollable-content__inner"
|
|
686
684
|
}, Ua = {
|
|
687
|
-
class: "
|
|
685
|
+
class: "content"
|
|
688
686
|
}, xa = {
|
|
689
|
-
class: "empty-
|
|
687
|
+
class: "empty-title"
|
|
690
688
|
}, Sa = {
|
|
689
|
+
class: "empty-tips"
|
|
690
|
+
}, $a = {
|
|
691
691
|
key: 1,
|
|
692
692
|
class: "Bubbles"
|
|
693
|
-
}, $a = {
|
|
694
|
-
class: "sender-container"
|
|
695
693
|
}, Fa = {
|
|
694
|
+
class: "sender-container"
|
|
695
|
+
}, Ia = {
|
|
696
696
|
key: 0,
|
|
697
697
|
class: "attachments-preview"
|
|
698
|
-
},
|
|
698
|
+
}, Aa = ["onClick"], Pa = ["src"], Ra = ["src"], Ba = {
|
|
699
699
|
class: "attachment-file-name"
|
|
700
|
-
},
|
|
700
|
+
}, Ta = ["onClick"], Ma = ["accept"], La = /* @__PURE__ */ q({
|
|
701
701
|
__name: "FeedbackDetails",
|
|
702
702
|
props: {
|
|
703
703
|
id: {
|
|
@@ -712,33 +712,34 @@ const ha = {
|
|
|
712
712
|
}
|
|
713
713
|
},
|
|
714
714
|
setup(e) {
|
|
715
|
-
|
|
715
|
+
const t = yt;
|
|
716
|
+
function i(r) {
|
|
716
717
|
return r === "inProgress" ? "orangered" : r === "pending" ? "gold" : r === "resolved" ? "green" : r === "closed" ? "gray" : "arcoblue";
|
|
717
718
|
}
|
|
718
|
-
const
|
|
719
|
-
|
|
720
|
-
}),
|
|
719
|
+
const o = g(""), m = g(!1), l = g(null), k = g(null), x = g(null), _ = g(!1), S = g(!1), M = g(0), w = g(!1), $ = g(""), D = g(""), p = Me((r) => {
|
|
720
|
+
ce.warning(r);
|
|
721
|
+
}), I = P(() => p.imageItems.value.map((r) => r.previewUrl || "")), c = P(() => o.value.trim().length > 0 || p.hasAttachments.value), A = () => {
|
|
721
722
|
var r;
|
|
722
|
-
(r =
|
|
723
|
+
(r = l.value) == null || r.focus({
|
|
723
724
|
cursor: "end"
|
|
724
|
-
}),
|
|
725
|
-
|
|
725
|
+
}), ae(() => {
|
|
726
|
+
k.value && (k.value.scrollTop = k.value.scrollHeight);
|
|
726
727
|
});
|
|
727
|
-
}, U = e,
|
|
728
|
-
function
|
|
728
|
+
}, U = e, C = P(() => U.senderRole === "support" ? "暂无沟通记录" : "还没有消息"), h = P(() => U.senderRole === "support" ? ["可在下方输入框回复用户", "支持发送文字、图片和文件附件"] : ["请尽量详细描述问题或需求", "可上传多张图片或文件附件,支持与文字一起发送"]), b = P(() => U.senderRole === "support" ? "输入回复内容,Enter 发送" : "补充问题描述或追问,Enter 发送"), E = g(!1), O = g([]), te = g(void 0);
|
|
729
|
+
function De(r, d) {
|
|
729
730
|
const n = "seq" in r && typeof r.seq == "number" ? r.seq : d;
|
|
730
731
|
return `${r.senderRole}-${n}-${d}`;
|
|
731
732
|
}
|
|
732
|
-
function
|
|
733
|
+
function _e(r) {
|
|
733
734
|
var d;
|
|
734
735
|
return String(((d = r.senderInfo) == null ? void 0 : d.avatarUrl) || "");
|
|
735
736
|
}
|
|
736
|
-
function
|
|
737
|
+
function he(r) {
|
|
737
738
|
var n;
|
|
738
739
|
const d = String(((n = r.senderInfo) == null ? void 0 : n.nickname) || "").trim();
|
|
739
740
|
return d ? d.slice(0, 1).toUpperCase() : r.senderRole === "support" ? "S" : "U";
|
|
740
741
|
}
|
|
741
|
-
const K =
|
|
742
|
+
const K = g({
|
|
742
743
|
id: void 0,
|
|
743
744
|
title: "",
|
|
744
745
|
description: "",
|
|
@@ -747,26 +748,26 @@ const ha = {
|
|
|
747
748
|
reply: "",
|
|
748
749
|
createAt: ""
|
|
749
750
|
});
|
|
750
|
-
function
|
|
751
|
+
function qe() {
|
|
751
752
|
var r;
|
|
752
|
-
(r =
|
|
753
|
+
(r = x.value) == null || r.click();
|
|
753
754
|
}
|
|
754
|
-
function
|
|
755
|
+
function Oe(r) {
|
|
755
756
|
const d = r.target, n = d.files;
|
|
756
|
-
n != null && n.length &&
|
|
757
|
+
n != null && n.length && p.addFiles(Array.from(n)), d.value = "";
|
|
757
758
|
}
|
|
758
|
-
function
|
|
759
|
+
function ze(r) {
|
|
759
760
|
if (r.kind === "image" && r.previewUrl) {
|
|
760
|
-
const d =
|
|
761
|
+
const d = p.imageItems.value.findIndex((n) => n.id === r.id);
|
|
761
762
|
if (d < 0) return;
|
|
762
|
-
|
|
763
|
+
M.value = d, S.value = !0;
|
|
763
764
|
return;
|
|
764
765
|
}
|
|
765
|
-
r.kind === "video" && r.previewUrl && (
|
|
766
|
+
r.kind === "video" && r.previewUrl && ($.value = r.previewUrl, D.value = r.file.name, w.value = !0);
|
|
766
767
|
}
|
|
767
|
-
function
|
|
768
|
-
var
|
|
769
|
-
const d = (
|
|
768
|
+
function Ne(r) {
|
|
769
|
+
var T;
|
|
770
|
+
const d = (T = r.clipboardData) == null ? void 0 : T.items;
|
|
770
771
|
if (!d) return;
|
|
771
772
|
const n = [];
|
|
772
773
|
for (const j of d)
|
|
@@ -774,129 +775,129 @@ const ha = {
|
|
|
774
775
|
const X = j.getAsFile();
|
|
775
776
|
X && n.push(X);
|
|
776
777
|
}
|
|
777
|
-
n.length > 0 && (r.preventDefault(),
|
|
778
|
+
n.length > 0 && (r.preventDefault(), p.addFiles(n));
|
|
778
779
|
}
|
|
779
|
-
function
|
|
780
|
+
function je(r) {
|
|
780
781
|
var d;
|
|
781
|
-
(d = r.dataTransfer) != null && d.types.includes("Files") && (
|
|
782
|
+
(d = r.dataTransfer) != null && d.types.includes("Files") && (_.value = !0);
|
|
782
783
|
}
|
|
783
|
-
function
|
|
784
|
-
|
|
784
|
+
function Ke() {
|
|
785
|
+
_.value = !1;
|
|
785
786
|
}
|
|
786
|
-
function
|
|
787
|
+
function We(r) {
|
|
787
788
|
var n;
|
|
788
|
-
|
|
789
|
+
_.value = !1;
|
|
789
790
|
const d = (n = r.dataTransfer) == null ? void 0 : n.files;
|
|
790
|
-
d &&
|
|
791
|
-
}
|
|
792
|
-
async function We() {
|
|
793
|
-
U.senderRole === "support" && K.value.status === "newFeedback" && await he();
|
|
791
|
+
d && p.addFiles(Array.from(d));
|
|
794
792
|
}
|
|
795
793
|
async function He() {
|
|
796
|
-
|
|
794
|
+
U.senderRole === "support" && K.value.status === "newFeedback" && await we();
|
|
795
|
+
}
|
|
796
|
+
async function Ge() {
|
|
797
|
+
const r = o.value, d = p.items.value.map((n) => n.file);
|
|
797
798
|
if (!(!r.trim() && d.length === 0)) {
|
|
798
|
-
|
|
799
|
+
m.value = !0;
|
|
799
800
|
try {
|
|
800
|
-
const n = d.length > 0 ? await
|
|
801
|
+
const n = d.length > 0 ? await Le(d, Ie.feedbackBucketId) : [], T = r.trim(), {
|
|
801
802
|
data: j
|
|
802
|
-
} = await
|
|
803
|
+
} = await z.feedbackCenter.update.messages.post({
|
|
803
804
|
id: U.id,
|
|
804
805
|
message: {
|
|
805
806
|
type: "text",
|
|
806
|
-
content:
|
|
807
|
+
content: T,
|
|
807
808
|
attachments: n,
|
|
808
809
|
senderRole: U.senderRole
|
|
809
810
|
}
|
|
810
811
|
});
|
|
811
812
|
if (j) {
|
|
812
|
-
|
|
813
|
+
O.value.push(j.message);
|
|
813
814
|
const X = j.message.seq;
|
|
814
|
-
typeof X == "number" && (
|
|
815
|
-
|
|
816
|
-
}), await
|
|
815
|
+
typeof X == "number" && (te.value = X), o.value = "", p.clear(), ae(() => {
|
|
816
|
+
A();
|
|
817
|
+
}), await He();
|
|
817
818
|
}
|
|
818
819
|
} catch {
|
|
819
|
-
|
|
820
|
+
ce.error("发送失败,请稍后重试");
|
|
820
821
|
} finally {
|
|
821
|
-
|
|
822
|
+
m.value = !1;
|
|
822
823
|
}
|
|
823
824
|
}
|
|
824
825
|
}
|
|
825
|
-
async function
|
|
826
|
-
|
|
826
|
+
async function we() {
|
|
827
|
+
E.value = !0;
|
|
827
828
|
const {
|
|
828
829
|
data: r
|
|
829
|
-
} = await
|
|
830
|
+
} = await z.feedbackCenter.findOne.post({
|
|
830
831
|
id: U.id
|
|
831
832
|
});
|
|
832
|
-
|
|
833
|
+
E.value = !1, r && (K.value = r);
|
|
833
834
|
}
|
|
834
|
-
async function
|
|
835
|
-
U.senderRole === "user" && (await
|
|
835
|
+
async function Ce() {
|
|
836
|
+
U.senderRole === "user" && (await z.feedbackCenter.markRead.post({
|
|
836
837
|
id: U.id
|
|
837
838
|
}), H());
|
|
838
839
|
}
|
|
839
|
-
async function
|
|
840
|
+
async function Xe() {
|
|
840
841
|
var d;
|
|
841
842
|
const {
|
|
842
843
|
data: r
|
|
843
|
-
} = await
|
|
844
|
+
} = await z.messages.list.incremental.post({
|
|
844
845
|
id: U.id,
|
|
845
|
-
lastSeq:
|
|
846
|
+
lastSeq: te.value
|
|
846
847
|
});
|
|
847
848
|
if (r && ((d = r.messages) != null && d.length)) {
|
|
848
849
|
const n = r.messages;
|
|
849
|
-
|
|
850
|
-
const
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
}), await
|
|
850
|
+
O.value.push(...n);
|
|
851
|
+
const T = n.at(-1);
|
|
852
|
+
T && "seq" in T && typeof T.seq == "number" && (te.value = T.seq), ae(() => {
|
|
853
|
+
A();
|
|
854
|
+
}), await Ce();
|
|
854
855
|
}
|
|
855
856
|
}
|
|
856
|
-
async function
|
|
857
|
+
async function Ye() {
|
|
857
858
|
var d;
|
|
858
|
-
|
|
859
|
+
E.value = !0;
|
|
859
860
|
const {
|
|
860
861
|
data: r
|
|
861
|
-
} = await
|
|
862
|
+
} = await z.messages.list.post({
|
|
862
863
|
id: U.id
|
|
863
864
|
});
|
|
864
|
-
if (
|
|
865
|
+
if (E.value = !1, r && ((d = r.messages) != null && d.length)) {
|
|
865
866
|
const n = r.messages;
|
|
866
|
-
|
|
867
|
-
const
|
|
868
|
-
|
|
869
|
-
|
|
867
|
+
O.value = n;
|
|
868
|
+
const T = n.at(-1);
|
|
869
|
+
T && "seq" in T && typeof T.seq == "number" && (te.value = T.seq), ae(() => {
|
|
870
|
+
A();
|
|
870
871
|
});
|
|
871
872
|
}
|
|
872
|
-
await
|
|
873
|
+
await Ce();
|
|
873
874
|
}
|
|
874
|
-
return
|
|
875
|
+
return ga(Xe, {
|
|
875
876
|
interval: 2e3,
|
|
876
877
|
autoStart: !0
|
|
877
|
-
}),
|
|
878
|
+
}), we(), Ye(), (r, d) => (s(), u("div", wa, [y("div", {
|
|
878
879
|
ref_key: "scrollableContentRef",
|
|
879
|
-
ref:
|
|
880
|
+
ref: k,
|
|
880
881
|
class: "scrollable-content"
|
|
881
|
-
}, [
|
|
882
|
+
}, [y("div", Ca, [f(a(lt), {
|
|
882
883
|
title: "基本信息"
|
|
883
884
|
}, {
|
|
884
|
-
title: v(() => [...d[4] || (d[4] = [
|
|
885
|
+
title: v(() => [...d[4] || (d[4] = [y("div", {
|
|
885
886
|
class: "title"
|
|
886
887
|
}, "基本信息", -1)])]),
|
|
887
|
-
default: v(() => [f(a(
|
|
888
|
+
default: v(() => [f(a(se), {
|
|
888
889
|
label: "标题:",
|
|
889
890
|
span: 3
|
|
890
891
|
}, {
|
|
891
|
-
default: v(() => [
|
|
892
|
+
default: v(() => [V(F(K.value.title), 1)]),
|
|
892
893
|
_: 1
|
|
893
|
-
}), f(a(
|
|
894
|
+
}), f(a(se), {
|
|
894
895
|
label: "问题描述:",
|
|
895
896
|
span: 3
|
|
896
897
|
}, {
|
|
897
|
-
default: v(() => [
|
|
898
|
+
default: v(() => [V(F(K.value.description || "-"), 1)]),
|
|
898
899
|
_: 1
|
|
899
|
-
}), f(a(
|
|
900
|
+
}), f(a(se), {
|
|
900
901
|
label: "反馈类型:",
|
|
901
902
|
span: 1
|
|
902
903
|
}, {
|
|
@@ -905,209 +906,209 @@ const ha = {
|
|
|
905
906
|
}, {
|
|
906
907
|
default: v(() => {
|
|
907
908
|
var n;
|
|
908
|
-
return [
|
|
909
|
+
return [V(F((n = a(Q)(a(ye), K.value.type)) == null ? void 0 : n.label), 1)];
|
|
909
910
|
}),
|
|
910
911
|
_: 1
|
|
911
912
|
})]),
|
|
912
913
|
_: 1
|
|
913
|
-
}), f(a(
|
|
914
|
+
}), f(a(se), {
|
|
914
915
|
label: "状态:",
|
|
915
916
|
span: 1
|
|
916
917
|
}, {
|
|
917
918
|
default: v(() => [f(a(Z), {
|
|
918
|
-
color:
|
|
919
|
+
color: i(K.value.status)
|
|
919
920
|
}, {
|
|
920
921
|
default: v(() => {
|
|
921
922
|
var n;
|
|
922
|
-
return [
|
|
923
|
+
return [V(F((n = a(Q)(a(Ee), K.value.status)) == null ? void 0 : n.label), 1)];
|
|
923
924
|
}),
|
|
924
925
|
_: 1
|
|
925
926
|
}, 8, ["color"])]),
|
|
926
927
|
_: 1
|
|
927
928
|
})]),
|
|
928
929
|
_: 1
|
|
929
|
-
}),
|
|
930
|
+
}), y("div", Ua, [d[5] || (d[5] = y("div", {
|
|
930
931
|
class: "title"
|
|
931
|
-
}, "沟通记录", -1)), f(a(
|
|
932
|
+
}, "沟通记录", -1)), f(a(it), {
|
|
932
933
|
class: "messageContent",
|
|
933
|
-
loading:
|
|
934
|
+
loading: E.value
|
|
934
935
|
}, {
|
|
935
|
-
default: v(() => [
|
|
936
|
+
default: v(() => [O.value.length === 0 ? (s(), B(a(rt), {
|
|
936
937
|
key: 0,
|
|
937
938
|
class: "message-empty"
|
|
938
939
|
}, {
|
|
939
|
-
description: v(() => [
|
|
940
|
+
description: v(() => [y("div", xa, F(C.value), 1), y("ul", Sa, [(s(!0), u(L, null, N(h.value, (n) => (s(), u("li", {
|
|
940
941
|
key: n
|
|
941
942
|
}, F(n), 1))), 128))])]),
|
|
942
943
|
_: 1
|
|
943
|
-
})) : (s(),
|
|
944
|
-
key:
|
|
945
|
-
}, [n.senderRole !== U.senderRole ? (s(), B(
|
|
944
|
+
})) : (s(), u("div", $a, [(s(!0), u(L, null, N(O.value, (n, T) => (s(), u(L, {
|
|
945
|
+
key: De(n, T)
|
|
946
|
+
}, [n.senderRole !== U.senderRole ? (s(), B(la, {
|
|
946
947
|
key: 0,
|
|
947
|
-
text: a(
|
|
948
|
-
attachments: a(
|
|
949
|
-
"avatar-url":
|
|
950
|
-
"avatar-text":
|
|
951
|
-
}, null, 8, ["text", "attachments", "avatar-url", "avatar-text"])) : (s(), B(
|
|
948
|
+
text: a(le)(n).text,
|
|
949
|
+
attachments: a(le)(n).attachments,
|
|
950
|
+
"avatar-url": _e(n),
|
|
951
|
+
"avatar-text": he(n)
|
|
952
|
+
}, null, 8, ["text", "attachments", "avatar-url", "avatar-text"])) : (s(), B(Yt, {
|
|
952
953
|
key: 1,
|
|
953
|
-
text: a(
|
|
954
|
-
attachments: a(
|
|
955
|
-
"avatar-url":
|
|
956
|
-
"avatar-text":
|
|
954
|
+
text: a(le)(n).text,
|
|
955
|
+
attachments: a(le)(n).attachments,
|
|
956
|
+
"avatar-url": _e(n),
|
|
957
|
+
"avatar-text": he(n)
|
|
957
958
|
}, null, 8, ["text", "attachments", "avatar-url", "avatar-text"]))], 64))), 128))]))]),
|
|
958
959
|
_: 1
|
|
959
|
-
}, 8, ["loading"])])])], 512),
|
|
960
|
-
class:
|
|
961
|
-
"is-drag-over":
|
|
960
|
+
}, 8, ["loading"])])])], 512), y("div", Fa, [y("div", {
|
|
961
|
+
class: re(["sender-panel", {
|
|
962
|
+
"is-drag-over": _.value
|
|
962
963
|
}]),
|
|
963
|
-
onDragover: G(
|
|
964
|
-
onDragleave:
|
|
965
|
-
onDrop: G(
|
|
966
|
-
onPaste:
|
|
967
|
-
}, [a(
|
|
964
|
+
onDragover: G(je, ["prevent"]),
|
|
965
|
+
onDragleave: Ke,
|
|
966
|
+
onDrop: G(We, ["prevent"]),
|
|
967
|
+
onPaste: Ne
|
|
968
|
+
}, [a(p).hasAttachments.value ? (s(), u("div", Ia, [(s(!0), u(L, null, N(a(p).items.value, (n, T) => (s(), u("div", {
|
|
968
969
|
key: n.id,
|
|
969
|
-
class:
|
|
970
|
+
class: re(["attachment-preview-item", {
|
|
970
971
|
"is-image": n.kind === "image",
|
|
971
972
|
"is-video": n.kind === "video"
|
|
972
973
|
}]),
|
|
973
|
-
onClick: (j) =>
|
|
974
|
-
}, [n.kind === "image" && n.previewUrl ? (s(),
|
|
974
|
+
onClick: (j) => ze(n)
|
|
975
|
+
}, [n.kind === "image" && n.previewUrl ? (s(), u("img", {
|
|
975
976
|
key: 0,
|
|
976
977
|
src: n.previewUrl,
|
|
977
978
|
alt: "预览",
|
|
978
979
|
class: "attachment-thumbnail"
|
|
979
|
-
}, null, 8,
|
|
980
|
+
}, null, 8, Pa)) : n.kind === "video" && n.previewUrl ? (s(), u(L, {
|
|
980
981
|
key: 1
|
|
981
|
-
}, [
|
|
982
|
+
}, [y("video", {
|
|
982
983
|
class: "attachment-thumbnail",
|
|
983
984
|
src: n.previewUrl,
|
|
984
985
|
muted: "",
|
|
985
986
|
preload: "metadata"
|
|
986
|
-
}, null, 8,
|
|
987
|
+
}, null, 8, Ra), d[6] || (d[6] = y("span", {
|
|
987
988
|
class: "attachment-video-play"
|
|
988
|
-
}, "播放", -1))], 64)) : (s(),
|
|
989
|
+
}, "播放", -1))], 64)) : (s(), u(L, {
|
|
989
990
|
key: 2
|
|
990
|
-
}, [d[7] || (d[7] =
|
|
991
|
+
}, [d[7] || (d[7] = y("span", {
|
|
991
992
|
class: "attachment-file-icon"
|
|
992
|
-
}, "FILE", -1)),
|
|
993
|
+
}, "FILE", -1)), y("span", Ba, F(n.file.name), 1)], 64)), y("button", {
|
|
993
994
|
type: "button",
|
|
994
995
|
class: "attachment-remove-btn",
|
|
995
996
|
title: "移除附件",
|
|
996
|
-
onClick: G((j) => a(
|
|
997
|
-
}, " × ", 8,
|
|
998
|
-
"src-list":
|
|
999
|
-
visible:
|
|
1000
|
-
"onUpdate:visible": d[0] || (d[0] = (n) =>
|
|
1001
|
-
current:
|
|
1002
|
-
"onUpdate:current": d[1] || (d[1] = (n) =>
|
|
1003
|
-
}, null, 8, ["src-list", "visible", "current"]), f(
|
|
1004
|
-
visible:
|
|
1005
|
-
"onUpdate:visible": d[2] || (d[2] = (n) =>
|
|
1006
|
-
title:
|
|
1007
|
-
src:
|
|
1008
|
-
}, null, 8, ["visible", "title", "src"]), f(a(
|
|
997
|
+
onClick: G((j) => a(p).removeAt(T), ["stop"])
|
|
998
|
+
}, " × ", 8, Ta)], 10, Aa))), 128))])) : R("", !0), f(a(be), {
|
|
999
|
+
"src-list": I.value,
|
|
1000
|
+
visible: S.value,
|
|
1001
|
+
"onUpdate:visible": d[0] || (d[0] = (n) => S.value = n),
|
|
1002
|
+
current: M.value,
|
|
1003
|
+
"onUpdate:current": d[1] || (d[1] = (n) => M.value = n)
|
|
1004
|
+
}, null, 8, ["src-list", "visible", "current"]), f(ke, {
|
|
1005
|
+
visible: w.value,
|
|
1006
|
+
"onUpdate:visible": d[2] || (d[2] = (n) => w.value = n),
|
|
1007
|
+
title: D.value,
|
|
1008
|
+
src: $.value
|
|
1009
|
+
}, null, 8, ["visible", "title", "src"]), f(a(t), {
|
|
1009
1010
|
ref_key: "senderRef",
|
|
1010
|
-
ref:
|
|
1011
|
-
value:
|
|
1012
|
-
"onUpdate:value": d[3] || (d[3] = (n) =>
|
|
1013
|
-
placeholder:
|
|
1014
|
-
loading:
|
|
1011
|
+
ref: l,
|
|
1012
|
+
value: o.value,
|
|
1013
|
+
"onUpdate:value": d[3] || (d[3] = (n) => o.value = n),
|
|
1014
|
+
placeholder: b.value,
|
|
1015
|
+
loading: m.value,
|
|
1015
1016
|
"allow-speech": !1,
|
|
1016
|
-
"read-only":
|
|
1017
|
-
"send-disabled": !
|
|
1018
|
-
onSubmit:
|
|
1017
|
+
"read-only": m.value,
|
|
1018
|
+
"send-disabled": !c.value,
|
|
1019
|
+
onSubmit: Ge
|
|
1019
1020
|
}, {
|
|
1020
|
-
prefix: v(() => [f(a(
|
|
1021
|
+
prefix: v(() => [f(a(me), {
|
|
1021
1022
|
type: "text",
|
|
1022
1023
|
class: "IconLink",
|
|
1023
|
-
disabled:
|
|
1024
|
-
onClick:
|
|
1024
|
+
disabled: m.value,
|
|
1025
|
+
onClick: qe
|
|
1025
1026
|
}, {
|
|
1026
|
-
icon: v(() => [f(a(
|
|
1027
|
+
icon: v(() => [f(a(ua))]),
|
|
1027
1028
|
_: 1
|
|
1028
1029
|
}, 8, ["disabled"])]),
|
|
1029
1030
|
_: 1
|
|
1030
|
-
}, 8, ["value", "placeholder", "loading", "read-only", "send-disabled"]),
|
|
1031
|
+
}, 8, ["value", "placeholder", "loading", "read-only", "send-disabled"]), y("input", {
|
|
1031
1032
|
ref_key: "fileInputRef",
|
|
1032
|
-
ref:
|
|
1033
|
+
ref: x,
|
|
1033
1034
|
type: "file",
|
|
1034
|
-
accept: a(
|
|
1035
|
+
accept: a(Be),
|
|
1035
1036
|
multiple: "",
|
|
1036
1037
|
class: "hidden-file-input",
|
|
1037
|
-
onChange:
|
|
1038
|
-
}, null, 40,
|
|
1038
|
+
onChange: Oe
|
|
1039
|
+
}, null, 40, Ma)], 34)])]));
|
|
1039
1040
|
}
|
|
1040
|
-
}),
|
|
1041
|
+
}), Va = /* @__PURE__ */ W(La, [["__scopeId", "data-v-9f65b533"]]), Ea = {
|
|
1041
1042
|
class: "FeedBackFrom"
|
|
1042
|
-
}, Ea = {
|
|
1043
|
-
class: "feedback-attachments-field"
|
|
1044
1043
|
}, Da = {
|
|
1044
|
+
class: "feedback-attachments-field"
|
|
1045
|
+
}, qa = {
|
|
1045
1046
|
key: 0,
|
|
1046
1047
|
class: "attachments-preview"
|
|
1047
|
-
},
|
|
1048
|
+
}, Oa = ["onClick"], za = ["src"], Na = ["src"], ja = {
|
|
1048
1049
|
class: "attachment-file-name"
|
|
1049
|
-
},
|
|
1050
|
+
}, Ka = ["onClick"], Wa = ["accept"], Ha = /* @__PURE__ */ q({
|
|
1050
1051
|
__name: "FeedbackForm",
|
|
1051
1052
|
emits: ["confirm"],
|
|
1052
1053
|
setup(e, {
|
|
1053
1054
|
emit: t
|
|
1054
1055
|
}) {
|
|
1055
|
-
const i = t, o =
|
|
1056
|
+
const i = t, o = g(), m = g(!1), l = g({
|
|
1056
1057
|
id: void 0,
|
|
1057
1058
|
title: "",
|
|
1058
1059
|
type: "bugReports",
|
|
1059
1060
|
priority: "normal",
|
|
1060
1061
|
description: ""
|
|
1061
|
-
}), k =
|
|
1062
|
-
|
|
1063
|
-
}),
|
|
1064
|
-
function
|
|
1062
|
+
}), k = g(null), x = g(!1), _ = g(0), S = g(!1), M = g(""), w = g(""), $ = Me((C) => {
|
|
1063
|
+
ce.warning(C);
|
|
1064
|
+
}), D = P(() => $.imageItems.value.map((C) => C.previewUrl || ""));
|
|
1065
|
+
function p() {
|
|
1065
1066
|
var C;
|
|
1066
1067
|
(C = k.value) == null || C.click();
|
|
1067
1068
|
}
|
|
1068
1069
|
function I(C) {
|
|
1069
|
-
const
|
|
1070
|
-
|
|
1070
|
+
const h = C.target, b = h.files;
|
|
1071
|
+
b != null && b.length && $.addFiles(Array.from(b)), h.value = "";
|
|
1071
1072
|
}
|
|
1072
|
-
function
|
|
1073
|
+
function c(C) {
|
|
1073
1074
|
if (C.kind === "image" && C.previewUrl) {
|
|
1074
|
-
const
|
|
1075
|
-
if (
|
|
1076
|
-
_.value =
|
|
1075
|
+
const h = $.imageItems.value.findIndex((b) => b.id === C.id);
|
|
1076
|
+
if (h < 0) return;
|
|
1077
|
+
_.value = h, x.value = !0;
|
|
1077
1078
|
return;
|
|
1078
1079
|
}
|
|
1079
|
-
C.kind === "video" && C.previewUrl && (
|
|
1080
|
+
C.kind === "video" && C.previewUrl && (M.value = C.previewUrl, w.value = C.file.name, S.value = !0);
|
|
1080
1081
|
}
|
|
1081
|
-
function
|
|
1082
|
-
var C,
|
|
1082
|
+
function A() {
|
|
1083
|
+
var C, h;
|
|
1083
1084
|
l.value = {
|
|
1084
1085
|
id: void 0,
|
|
1085
1086
|
title: "",
|
|
1086
1087
|
type: "bugReports",
|
|
1087
1088
|
priority: "normal",
|
|
1088
1089
|
description: ""
|
|
1089
|
-
}, $.clear(), (
|
|
1090
|
+
}, $.clear(), (h = (C = o.value) == null ? void 0 : C.resetFields) == null || h.call(C);
|
|
1090
1091
|
}
|
|
1091
|
-
async function
|
|
1092
|
+
async function U() {
|
|
1092
1093
|
if (!await o.value.validate()) {
|
|
1093
|
-
|
|
1094
|
+
m.value = !0;
|
|
1094
1095
|
try {
|
|
1095
|
-
const
|
|
1096
|
-
error:
|
|
1097
|
-
} = await
|
|
1096
|
+
const h = $.items.value.map((O) => O.file), b = h.length > 0 ? await Le(h, Ie.feedbackBucketId) : [], {
|
|
1097
|
+
error: E
|
|
1098
|
+
} = await z.feedbackCenter.create.post({
|
|
1098
1099
|
title: l.value.title,
|
|
1099
1100
|
type: l.value.type,
|
|
1100
1101
|
priority: l.value.priority,
|
|
1101
1102
|
description: l.value.description,
|
|
1102
|
-
attachments:
|
|
1103
|
+
attachments: b
|
|
1103
1104
|
});
|
|
1104
|
-
|
|
1105
|
+
E || (ce.success("新建反馈成功"), A(), i("confirm"));
|
|
1105
1106
|
} finally {
|
|
1106
|
-
|
|
1107
|
+
m.value = !1;
|
|
1107
1108
|
}
|
|
1108
1109
|
}
|
|
1109
1110
|
}
|
|
1110
|
-
return (C,
|
|
1111
|
+
return (C, h) => (s(), u("div", Ea, [f(a(ot), {
|
|
1111
1112
|
ref_key: "formRef",
|
|
1112
1113
|
ref: o,
|
|
1113
1114
|
model: l.value,
|
|
@@ -1122,9 +1123,9 @@ const ha = {
|
|
|
1122
1123
|
message: "请输入标题"
|
|
1123
1124
|
}]
|
|
1124
1125
|
}, {
|
|
1125
|
-
default: v(() => [f(a(
|
|
1126
|
+
default: v(() => [f(a(ut), {
|
|
1126
1127
|
modelValue: l.value.title,
|
|
1127
|
-
"onUpdate:modelValue":
|
|
1128
|
+
"onUpdate:modelValue": h[0] || (h[0] = (b) => l.value.title = b),
|
|
1128
1129
|
placeholder: "请输入标题"
|
|
1129
1130
|
}, null, 8, ["modelValue"])]),
|
|
1130
1131
|
_: 1
|
|
@@ -1136,16 +1137,16 @@ const ha = {
|
|
|
1136
1137
|
message: "请选择反馈类型"
|
|
1137
1138
|
}]
|
|
1138
1139
|
}, {
|
|
1139
|
-
default: v(() => [f(a(
|
|
1140
|
+
default: v(() => [f(a(Ue), {
|
|
1140
1141
|
modelValue: l.value.type,
|
|
1141
|
-
"onUpdate:modelValue":
|
|
1142
|
+
"onUpdate:modelValue": h[1] || (h[1] = (b) => l.value.type = b),
|
|
1142
1143
|
placeholder: "请选择反馈类型"
|
|
1143
1144
|
}, {
|
|
1144
|
-
default: v(() => [(s(!0),
|
|
1145
|
-
key:
|
|
1146
|
-
value:
|
|
1145
|
+
default: v(() => [(s(!0), u(L, null, N(a(ye), (b, E) => (s(), B(a(xe), {
|
|
1146
|
+
key: E,
|
|
1147
|
+
value: b.key
|
|
1147
1148
|
}, {
|
|
1148
|
-
default: v(() => [
|
|
1149
|
+
default: v(() => [V(F(b.label), 1)]),
|
|
1149
1150
|
_: 2
|
|
1150
1151
|
}, 1032, ["value"]))), 128))]),
|
|
1151
1152
|
_: 1
|
|
@@ -1159,16 +1160,16 @@ const ha = {
|
|
|
1159
1160
|
message: "请选择优先级"
|
|
1160
1161
|
}]
|
|
1161
1162
|
}, {
|
|
1162
|
-
default: v(() => [f(a(
|
|
1163
|
+
default: v(() => [f(a(Ue), {
|
|
1163
1164
|
modelValue: l.value.priority,
|
|
1164
|
-
"onUpdate:modelValue":
|
|
1165
|
+
"onUpdate:modelValue": h[2] || (h[2] = (b) => l.value.priority = b),
|
|
1165
1166
|
placeholder: "请选择优先级"
|
|
1166
1167
|
}, {
|
|
1167
|
-
default: v(() => [(s(!0),
|
|
1168
|
-
key:
|
|
1169
|
-
value:
|
|
1168
|
+
default: v(() => [(s(!0), u(L, null, N(a(Ve), (b, E) => (s(), B(a(xe), {
|
|
1169
|
+
key: E,
|
|
1170
|
+
value: b.key
|
|
1170
1171
|
}, {
|
|
1171
|
-
default: v(() => [
|
|
1172
|
+
default: v(() => [V(F(b.label), 1)]),
|
|
1172
1173
|
_: 2
|
|
1173
1174
|
}, 1032, ["value"]))), 128))]),
|
|
1174
1175
|
_: 1
|
|
@@ -1182,9 +1183,9 @@ const ha = {
|
|
|
1182
1183
|
message: "请输入问题描述"
|
|
1183
1184
|
}]
|
|
1184
1185
|
}, {
|
|
1185
|
-
default: v(() => [f(a(
|
|
1186
|
+
default: v(() => [f(a(ct), {
|
|
1186
1187
|
modelValue: l.value.description,
|
|
1187
|
-
"onUpdate:modelValue":
|
|
1188
|
+
"onUpdate:modelValue": h[3] || (h[3] = (b) => l.value.description = b),
|
|
1188
1189
|
placeholder: "请输入问题描述",
|
|
1189
1190
|
"allow-clear": "",
|
|
1190
1191
|
"auto-size": {
|
|
@@ -1196,227 +1197,227 @@ const ha = {
|
|
|
1196
1197
|
field: "attachments",
|
|
1197
1198
|
label: "附件"
|
|
1198
1199
|
}, {
|
|
1199
|
-
default: v(() => [
|
|
1200
|
+
default: v(() => [y("div", Da, [f(a(me), {
|
|
1200
1201
|
type: "outline",
|
|
1201
|
-
disabled:
|
|
1202
|
-
onClick:
|
|
1202
|
+
disabled: m.value,
|
|
1203
|
+
onClick: p
|
|
1203
1204
|
}, {
|
|
1204
|
-
default: v(() => [...
|
|
1205
|
+
default: v(() => [...h[7] || (h[7] = [V(" 添加图片、视频或文件 ", -1)])]),
|
|
1205
1206
|
_: 1
|
|
1206
|
-
}, 8, ["disabled"]), a($).hasAttachments.value ? (s(),
|
|
1207
|
-
key:
|
|
1208
|
-
class:
|
|
1209
|
-
"is-image":
|
|
1210
|
-
"is-video":
|
|
1207
|
+
}, 8, ["disabled"]), a($).hasAttachments.value ? (s(), u("div", qa, [(s(!0), u(L, null, N(a($).items.value, (b, E) => (s(), u("div", {
|
|
1208
|
+
key: b.id,
|
|
1209
|
+
class: re(["attachment-preview-item", {
|
|
1210
|
+
"is-image": b.kind === "image",
|
|
1211
|
+
"is-video": b.kind === "video"
|
|
1211
1212
|
}]),
|
|
1212
|
-
onClick: (
|
|
1213
|
-
}, [
|
|
1213
|
+
onClick: (O) => c(b)
|
|
1214
|
+
}, [b.kind === "image" && b.previewUrl ? (s(), u("img", {
|
|
1214
1215
|
key: 0,
|
|
1215
|
-
src:
|
|
1216
|
+
src: b.previewUrl,
|
|
1216
1217
|
alt: "预览",
|
|
1217
1218
|
class: "attachment-thumbnail"
|
|
1218
|
-
}, null, 8,
|
|
1219
|
+
}, null, 8, za)) : b.kind === "video" && b.previewUrl ? (s(), u(L, {
|
|
1219
1220
|
key: 1
|
|
1220
|
-
}, [
|
|
1221
|
+
}, [y("video", {
|
|
1221
1222
|
class: "attachment-thumbnail",
|
|
1222
|
-
src:
|
|
1223
|
+
src: b.previewUrl,
|
|
1223
1224
|
muted: "",
|
|
1224
1225
|
preload: "metadata"
|
|
1225
|
-
}, null, 8,
|
|
1226
|
+
}, null, 8, Na), h[8] || (h[8] = y("span", {
|
|
1226
1227
|
class: "attachment-video-play"
|
|
1227
|
-
}, "播放", -1))], 64)) : (s(),
|
|
1228
|
+
}, "播放", -1))], 64)) : (s(), u(L, {
|
|
1228
1229
|
key: 2
|
|
1229
|
-
}, [
|
|
1230
|
+
}, [h[9] || (h[9] = y("span", {
|
|
1230
1231
|
class: "attachment-file-icon"
|
|
1231
|
-
}, "FILE", -1)),
|
|
1232
|
+
}, "FILE", -1)), y("span", ja, F(b.file.name), 1)], 64)), y("button", {
|
|
1232
1233
|
type: "button",
|
|
1233
1234
|
class: "attachment-remove-btn",
|
|
1234
1235
|
title: "移除附件",
|
|
1235
|
-
onClick: G((
|
|
1236
|
-
}, " × ", 8,
|
|
1237
|
-
"src-list":
|
|
1236
|
+
onClick: G((O) => a($).removeAt(E), ["stop"])
|
|
1237
|
+
}, " × ", 8, Ka)], 10, Oa))), 128))])) : R("", !0), f(a(be), {
|
|
1238
|
+
"src-list": D.value,
|
|
1238
1239
|
visible: x.value,
|
|
1239
|
-
"onUpdate:visible":
|
|
1240
|
+
"onUpdate:visible": h[4] || (h[4] = (b) => x.value = b),
|
|
1240
1241
|
current: _.value,
|
|
1241
|
-
"onUpdate:current":
|
|
1242
|
-
}, null, 8, ["src-list", "visible", "current"]), f(
|
|
1242
|
+
"onUpdate:current": h[5] || (h[5] = (b) => _.value = b)
|
|
1243
|
+
}, null, 8, ["src-list", "visible", "current"]), f(ke, {
|
|
1243
1244
|
visible: S.value,
|
|
1244
|
-
"onUpdate:visible":
|
|
1245
|
+
"onUpdate:visible": h[6] || (h[6] = (b) => S.value = b),
|
|
1245
1246
|
title: w.value,
|
|
1246
|
-
src:
|
|
1247
|
-
}, null, 8, ["visible", "title", "src"]),
|
|
1247
|
+
src: M.value
|
|
1248
|
+
}, null, 8, ["visible", "title", "src"]), y("input", {
|
|
1248
1249
|
ref_key: "fileInputRef",
|
|
1249
1250
|
ref: k,
|
|
1250
1251
|
type: "file",
|
|
1251
|
-
accept: a(
|
|
1252
|
+
accept: a(Be),
|
|
1252
1253
|
multiple: "",
|
|
1253
1254
|
class: "hidden-file-input",
|
|
1254
1255
|
onChange: I
|
|
1255
|
-
}, null, 40,
|
|
1256
|
+
}, null, 40, Wa)])]),
|
|
1256
1257
|
_: 1
|
|
1257
|
-
}), f(a(
|
|
1258
|
-
loading:
|
|
1258
|
+
}), f(a(me), {
|
|
1259
|
+
loading: m.value,
|
|
1259
1260
|
type: "primary",
|
|
1260
|
-
onClick:
|
|
1261
|
+
onClick: U
|
|
1261
1262
|
}, {
|
|
1262
|
-
default: v(() => [...
|
|
1263
|
+
default: v(() => [...h[10] || (h[10] = [V(" 提交 ", -1)])]),
|
|
1263
1264
|
_: 1
|
|
1264
1265
|
}, 8, ["loading"])]),
|
|
1265
1266
|
_: 1
|
|
1266
1267
|
}, 8, ["model"])]));
|
|
1267
1268
|
}
|
|
1268
|
-
}),
|
|
1269
|
+
}), Ga = /* @__PURE__ */ W(Ha, [["__scopeId", "data-v-a63b0678"]]), Xa = {
|
|
1269
1270
|
class: "message-panel"
|
|
1270
|
-
},
|
|
1271
|
+
}, Ya = {
|
|
1271
1272
|
key: 2,
|
|
1272
1273
|
class: "message-panel__detail"
|
|
1273
|
-
},
|
|
1274
|
+
}, Ja = /* @__PURE__ */ q({
|
|
1274
1275
|
__name: "FeedbackList",
|
|
1275
1276
|
emits: ["toDetail"],
|
|
1276
1277
|
setup(e, {
|
|
1277
1278
|
expose: t,
|
|
1278
1279
|
emit: i
|
|
1279
1280
|
}) {
|
|
1280
|
-
const o =
|
|
1281
|
+
const o = g(!0), m = g([]), l = g(!1), k = g(!1), x = g(""), _ = g({
|
|
1281
1282
|
total: 0,
|
|
1282
1283
|
current: 1,
|
|
1283
1284
|
pageSize: 10
|
|
1284
1285
|
});
|
|
1285
1286
|
function S() {
|
|
1286
|
-
o.value = !0, _.value.current = 1,
|
|
1287
|
+
o.value = !0, _.value.current = 1, p();
|
|
1287
1288
|
}
|
|
1288
|
-
function
|
|
1289
|
-
x.value =
|
|
1289
|
+
function M(c) {
|
|
1290
|
+
x.value = c.id, o.value = !1;
|
|
1290
1291
|
}
|
|
1291
|
-
function w(
|
|
1292
|
-
return
|
|
1292
|
+
function w(c) {
|
|
1293
|
+
return c === "inProgress" ? "orangered" : c === "pending" ? "gold" : c === "resolved" ? "green" : c === "closed" ? "gray" : "arcoblue";
|
|
1293
1294
|
}
|
|
1294
|
-
function $(
|
|
1295
|
-
return
|
|
1295
|
+
function $(c) {
|
|
1296
|
+
return c === "urgent" ? "red" : c === "high" ? "orangered" : c === "low" ? "gray" : "blue";
|
|
1296
1297
|
}
|
|
1297
|
-
function
|
|
1298
|
-
return
|
|
1299
|
-
...
|
|
1300
|
-
read:
|
|
1298
|
+
function D(c) {
|
|
1299
|
+
return c.map((A) => ({
|
|
1300
|
+
...A,
|
|
1301
|
+
read: A.read ?? !0
|
|
1301
1302
|
}));
|
|
1302
1303
|
}
|
|
1303
|
-
async function
|
|
1304
|
+
async function p() {
|
|
1304
1305
|
l.value = !0;
|
|
1305
1306
|
const {
|
|
1306
|
-
data:
|
|
1307
|
-
} = await
|
|
1307
|
+
data: c
|
|
1308
|
+
} = await z.feedbackCenter.own.post({
|
|
1308
1309
|
current: _.value.current,
|
|
1309
1310
|
pageSize: _.value.pageSize
|
|
1310
1311
|
});
|
|
1311
|
-
if (l.value = !1,
|
|
1312
|
-
const
|
|
1313
|
-
|
|
1312
|
+
if (l.value = !1, c) {
|
|
1313
|
+
const A = c, U = D(A.items || []);
|
|
1314
|
+
m.value = U, _.value.total = A.count || 0, k.value = U.length < _.value.pageSize;
|
|
1314
1315
|
}
|
|
1315
1316
|
}
|
|
1316
1317
|
async function I() {
|
|
1317
1318
|
if (l.value || k.value) return;
|
|
1318
1319
|
_.value.current += 1, l.value = !0;
|
|
1319
1320
|
const {
|
|
1320
|
-
data:
|
|
1321
|
-
} = await
|
|
1321
|
+
data: c
|
|
1322
|
+
} = await z.feedbackCenter.own.post({
|
|
1322
1323
|
current: _.value.current,
|
|
1323
1324
|
pageSize: _.value.pageSize
|
|
1324
1325
|
});
|
|
1325
|
-
if (l.value = !1,
|
|
1326
|
-
const
|
|
1327
|
-
|
|
1326
|
+
if (l.value = !1, c) {
|
|
1327
|
+
const U = D(c.items || []);
|
|
1328
|
+
m.value = [...m.value, ...U], k.value = U.length < _.value.pageSize;
|
|
1328
1329
|
}
|
|
1329
1330
|
}
|
|
1330
|
-
return
|
|
1331
|
-
refresh:
|
|
1332
|
-
}), (
|
|
1331
|
+
return p(), t({
|
|
1332
|
+
refresh: p
|
|
1333
|
+
}), (c, A) => (s(), u("div", Xa, [o.value ? R("", !0) : (s(), B(a(dt), {
|
|
1333
1334
|
key: 0,
|
|
1334
1335
|
class: "message-panel__breadcrumb"
|
|
1335
1336
|
}, {
|
|
1336
|
-
default: v(() => [f(a(
|
|
1337
|
+
default: v(() => [f(a(Se), {
|
|
1337
1338
|
onClick: S
|
|
1338
1339
|
}, {
|
|
1339
|
-
default: v(() => [...
|
|
1340
|
+
default: v(() => [...A[0] || (A[0] = [V("我的反馈", -1)])]),
|
|
1340
1341
|
_: 1
|
|
1341
|
-
}), f(a(
|
|
1342
|
-
default: v(() => [...
|
|
1342
|
+
}), f(a(Se), null, {
|
|
1343
|
+
default: v(() => [...A[1] || (A[1] = [V("反馈详情", -1)])]),
|
|
1343
1344
|
_: 1
|
|
1344
1345
|
})]),
|
|
1345
1346
|
_: 1
|
|
1346
|
-
})), o.value ? (s(), B(
|
|
1347
|
+
})), o.value ? (s(), B(kt, {
|
|
1347
1348
|
key: 1,
|
|
1348
|
-
"message-list":
|
|
1349
|
+
"message-list": m.value,
|
|
1349
1350
|
loading: l.value,
|
|
1350
1351
|
finished: k.value,
|
|
1351
1352
|
"show-read-status": !0,
|
|
1352
1353
|
"show-view-button": !1,
|
|
1353
1354
|
"empty-description": "暂无反馈",
|
|
1354
|
-
onItemClick:
|
|
1355
|
+
onItemClick: M,
|
|
1355
1356
|
onLoadMore: I
|
|
1356
1357
|
}, {
|
|
1357
1358
|
tags: v(({
|
|
1358
|
-
item:
|
|
1359
|
+
item: U
|
|
1359
1360
|
}) => [f(a(Z), {
|
|
1360
1361
|
color: "arcoblue",
|
|
1361
1362
|
size: "small"
|
|
1362
1363
|
}, {
|
|
1363
1364
|
default: v(() => {
|
|
1364
1365
|
var C;
|
|
1365
|
-
return [
|
|
1366
|
+
return [V(F((C = a(Q)(a(ye), U.type)) == null ? void 0 : C.label), 1)];
|
|
1366
1367
|
}),
|
|
1367
1368
|
_: 2
|
|
1368
1369
|
}, 1024), f(a(Z), {
|
|
1369
|
-
color: $(
|
|
1370
|
+
color: $(U.priority),
|
|
1370
1371
|
size: "small"
|
|
1371
1372
|
}, {
|
|
1372
1373
|
default: v(() => {
|
|
1373
1374
|
var C;
|
|
1374
|
-
return [
|
|
1375
|
+
return [V(F(((C = a(Q)(a(Ve), U.priority)) == null ? void 0 : C.label) || "普通"), 1)];
|
|
1375
1376
|
}),
|
|
1376
1377
|
_: 2
|
|
1377
1378
|
}, 1032, ["color"]), f(a(Z), {
|
|
1378
|
-
color: w(
|
|
1379
|
+
color: w(U.status),
|
|
1379
1380
|
size: "small"
|
|
1380
1381
|
}, {
|
|
1381
1382
|
default: v(() => {
|
|
1382
1383
|
var C;
|
|
1383
|
-
return [
|
|
1384
|
+
return [V(F((C = a(Q)(a(Ee), U.status)) == null ? void 0 : C.label), 1)];
|
|
1384
1385
|
}),
|
|
1385
1386
|
_: 2
|
|
1386
1387
|
}, 1032, ["color"])]),
|
|
1387
1388
|
description: v(({
|
|
1388
|
-
item:
|
|
1389
|
-
}) => [
|
|
1389
|
+
item: U
|
|
1390
|
+
}) => [V(F(U.description || "暂无描述"), 1)]),
|
|
1390
1391
|
_: 1
|
|
1391
|
-
}, 8, ["message-list", "loading", "finished"])) : (s(),
|
|
1392
|
+
}, 8, ["message-list", "loading", "finished"])) : (s(), u("div", Ya, [f(Va, {
|
|
1392
1393
|
id: x.value,
|
|
1393
1394
|
"sender-role": "user",
|
|
1394
1395
|
class: "feedback-details-panel"
|
|
1395
1396
|
}, null, 8, ["id"])]))]));
|
|
1396
1397
|
}
|
|
1397
|
-
}),
|
|
1398
|
+
}), Za = {
|
|
1398
1399
|
key: 0,
|
|
1399
1400
|
class: "user-menu-modal-content"
|
|
1400
|
-
}, Za = {
|
|
1401
|
-
class: "left"
|
|
1402
1401
|
}, Qa = {
|
|
1402
|
+
class: "left"
|
|
1403
|
+
}, es = {
|
|
1403
1404
|
key: 1,
|
|
1404
1405
|
class: "user-menu-modal-form"
|
|
1405
|
-
},
|
|
1406
|
+
}, Us = /* @__PURE__ */ q({
|
|
1406
1407
|
__name: "FeedbackModal",
|
|
1407
1408
|
emits: ["confirm", "cancel"],
|
|
1408
1409
|
setup(e, {
|
|
1409
1410
|
expose: t,
|
|
1410
1411
|
emit: i
|
|
1411
1412
|
}) {
|
|
1412
|
-
const o =
|
|
1413
|
+
const o = g(!1), m = g(Symbol("feedback-list")), l = g(Symbol("feedback-form")), k = i;
|
|
1413
1414
|
function x() {
|
|
1414
|
-
S.value = ["FeedbackList"],
|
|
1415
|
+
S.value = ["FeedbackList"], m.value = Symbol("feedback-list"), l.value = Symbol("feedback-form");
|
|
1415
1416
|
}
|
|
1416
1417
|
function _() {
|
|
1417
1418
|
x(), k("cancel");
|
|
1418
1419
|
}
|
|
1419
|
-
const S =
|
|
1420
|
+
const S = g(["FeedbackList"]), M = g([{
|
|
1420
1421
|
name: "我的反馈",
|
|
1421
1422
|
path: "FeedbackList",
|
|
1422
1423
|
meta: {
|
|
@@ -1428,38 +1429,38 @@ const ha = {
|
|
|
1428
1429
|
meta: {
|
|
1429
1430
|
icon: "mingcute:cube-3d-fill"
|
|
1430
1431
|
}
|
|
1431
|
-
}]), w =
|
|
1432
|
+
}]), w = P(() => S.value.length !== 0 ? S.value[0] : "");
|
|
1432
1433
|
function $() {
|
|
1433
|
-
S.value = ["FeedbackList"],
|
|
1434
|
+
S.value = ["FeedbackList"], m.value = Symbol("feedback-list");
|
|
1434
1435
|
}
|
|
1435
|
-
function
|
|
1436
|
+
function D(I) {
|
|
1436
1437
|
S.value = [I.path];
|
|
1437
1438
|
}
|
|
1438
|
-
function
|
|
1439
|
+
function p(I) {
|
|
1439
1440
|
o.value = I, I && x();
|
|
1440
1441
|
}
|
|
1441
1442
|
return t({
|
|
1442
|
-
setData:
|
|
1443
|
-
}), (I,
|
|
1443
|
+
setData: p
|
|
1444
|
+
}), (I, c) => (s(), B(a(ft), {
|
|
1444
1445
|
visible: o.value,
|
|
1445
|
-
"onUpdate:visible":
|
|
1446
|
+
"onUpdate:visible": c[1] || (c[1] = (A) => o.value = A),
|
|
1446
1447
|
loading: !1,
|
|
1447
1448
|
"body-class": "AppMessagebodyClass",
|
|
1448
1449
|
"mask-closable": !1,
|
|
1449
1450
|
footer: !1,
|
|
1450
|
-
width: a(
|
|
1451
|
+
width: a(Je),
|
|
1451
1452
|
title: "系统反馈",
|
|
1452
1453
|
"hide-title": !1,
|
|
1453
1454
|
onCancel: _
|
|
1454
1455
|
}, {
|
|
1455
|
-
default: v(() => [o.value ? (s(),
|
|
1456
|
+
default: v(() => [o.value ? (s(), u("div", Za, [y("div", Qa, [f(vt, {
|
|
1456
1457
|
"selected-keys": S.value,
|
|
1457
|
-
"onUpdate:selectedKeys":
|
|
1458
|
-
menus:
|
|
1459
|
-
onChange:
|
|
1460
|
-
}, null, 8, ["selected-keys", "menus"])]), w.value === "FeedbackList" ? (s(), B(
|
|
1461
|
-
key:
|
|
1462
|
-
})) : R("", !0), w.value === "CreateFeedback" ? (s(),
|
|
1458
|
+
"onUpdate:selectedKeys": c[0] || (c[0] = (A) => S.value = A),
|
|
1459
|
+
menus: M.value,
|
|
1460
|
+
onChange: D
|
|
1461
|
+
}, null, 8, ["selected-keys", "menus"])]), w.value === "FeedbackList" ? (s(), B(Ja, {
|
|
1462
|
+
key: m.value
|
|
1463
|
+
})) : R("", !0), w.value === "CreateFeedback" ? (s(), u("div", es, [(s(), B(Ga, {
|
|
1463
1464
|
key: l.value,
|
|
1464
1465
|
onConfirm: $
|
|
1465
1466
|
}))])) : R("", !0)])) : R("", !0)]),
|
|
@@ -1468,13 +1469,13 @@ const ha = {
|
|
|
1468
1469
|
}
|
|
1469
1470
|
});
|
|
1470
1471
|
export {
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1472
|
+
Yt as B,
|
|
1473
|
+
Va as F,
|
|
1474
|
+
Fe as R,
|
|
1475
|
+
ke as V,
|
|
1476
|
+
Ja as _,
|
|
1477
|
+
la as a,
|
|
1478
|
+
Ga as b,
|
|
1479
|
+
Us as c,
|
|
1480
|
+
Cs as u
|
|
1480
1481
|
};
|