@marktowin/prototype-core 1.0.7 → 1.0.8
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as kn, computed as k, openBlock as v, createBlock as st, resolveDynamicComponent as Bo, createElementBlock as f, Fragment as
|
|
1
|
+
import { defineComponent as kn, computed as k, openBlock as v, createBlock as st, resolveDynamicComponent as Bo, createElementBlock as f, Fragment as _, renderList as N, normalizeClass as P, createTextVNode as H, toDisplayString as p, createElementVNode as e, createCommentVNode as w, ref as b, watch as Ae, createVNode as X, Transition as os, withCtx as as, unref as l, withModifiers as re, withDirectives as A, vModelText as z, normalizeStyle as Pe, createStaticVNode as Kl, reactive as Fn, onBeforeUnmount as ls, vModelSelect as _e, nextTick as ma, onMounted as Ur, isRef as yn, vModelCheckbox as jr } from "vue";
|
|
2
2
|
import { Save as Vr, CloudUpload as Lr, Download as Fr, X as Ao, Plus as Kn, ChevronDown as Kr, ChevronRight as zr, Trash2 as hn, RefreshCw as Gr, AlertTriangle as Hr, CheckCircle2 as Wr, CircleDot as zl, Bug as Yr, ImagePlus as Gl, Filter as Jr, Search as Xr, SunMedium as Zr, RotateCcw as qr, PanelTop as ss, Keyboard as Qr } from "@lucide/vue";
|
|
3
|
-
import { g as Yn, a as eu, s as tu } from "./index-
|
|
3
|
+
import { g as Yn, a as eu, s as tu } from "./index-Rlo9gWPV.js";
|
|
4
4
|
const zn = /* @__PURE__ */ kn({
|
|
5
5
|
__name: "ScreenRenderer",
|
|
6
6
|
props: {
|
|
@@ -19,24 +19,24 @@ const zn = /* @__PURE__ */ kn({
|
|
|
19
19
|
emits: ["change"],
|
|
20
20
|
setup(t) {
|
|
21
21
|
return (n, s) => (v(), f("div", nu, [
|
|
22
|
-
(v(!0), f(
|
|
22
|
+
(v(!0), f(_, null, N(t.items, (r) => (v(), f("button", {
|
|
23
23
|
key: r.id,
|
|
24
24
|
class: P(["flex flex-col items-center gap-1 rounded-full py-2 text-xs font-normal transition active:scale-95", t.active === r.id ? "bg-soft text-ocean" : "text-muted"]),
|
|
25
25
|
onClick: (u) => n.$emit("change", r.id)
|
|
26
26
|
}, [
|
|
27
27
|
(v(), st(Bo(r.icon), { class: "h-5 w-5" })),
|
|
28
|
-
|
|
28
|
+
H(" " + p(r.label), 1)
|
|
29
29
|
], 10, ou))), 128))
|
|
30
30
|
]));
|
|
31
31
|
}
|
|
32
|
-
}), lu = { class: "prototype-state-switcher" }, su = ["onClick"], iu = {
|
|
32
|
+
}), lu = { class: "prototype-state-switcher" }, su = ["onClick"], iu = { class: "min-w-0 flex-1 truncate text-left" }, ru = { class: "ml-auto flex items-center gap-2" }, uu = {
|
|
33
33
|
key: 0,
|
|
34
34
|
class: "prototype-state-annotation-count"
|
|
35
|
-
},
|
|
35
|
+
}, cu = {
|
|
36
36
|
key: 1,
|
|
37
37
|
class: "prototype-state-highlight-dot",
|
|
38
38
|
"aria-hidden": "true"
|
|
39
|
-
},
|
|
39
|
+
}, du = /* @__PURE__ */ kn({
|
|
40
40
|
__name: "PrototypeStateSwitcher",
|
|
41
41
|
props: {
|
|
42
42
|
title: {},
|
|
@@ -50,63 +50,65 @@ const zn = /* @__PURE__ */ kn({
|
|
|
50
50
|
const s = n;
|
|
51
51
|
return (r, u) => (v(), f("aside", lu, [
|
|
52
52
|
e("p", null, p(t.title), 1),
|
|
53
|
-
(v(!0), f(
|
|
53
|
+
(v(!0), f(_, null, N(t.options, (m) => {
|
|
54
54
|
var g, C;
|
|
55
55
|
return v(), f("button", {
|
|
56
56
|
key: m.id,
|
|
57
57
|
type: "button",
|
|
58
58
|
class: P({ active: t.activeId === m.id }),
|
|
59
|
-
onClick: (
|
|
59
|
+
onClick: (I) => s("change", m.id)
|
|
60
60
|
}, [
|
|
61
61
|
u[0] || (u[0] = e("span", null, null, -1)),
|
|
62
|
-
|
|
63
|
-
(
|
|
64
|
-
|
|
62
|
+
e("span", iu, p(m.label), 1),
|
|
63
|
+
e("span", ru, [
|
|
64
|
+
(g = t.countForState) != null && g.call(t, m.id) ? (v(), f("b", uu, p(t.countForState(m.id)), 1)) : w("", !0),
|
|
65
|
+
(C = t.highlightedIds) != null && C.has(m.id) ? (v(), f("span", cu)) : w("", !0)
|
|
66
|
+
])
|
|
65
67
|
], 10, su);
|
|
66
68
|
}), 128))
|
|
67
69
|
]));
|
|
68
70
|
}
|
|
69
|
-
}),
|
|
71
|
+
}), pu = { class: "fixed inset-0 z-[200] bg-canvas flex flex-col" }, vu = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel relative" }, fu = { class: "flex items-center gap-3" }, mu = { class: "text-xs text-muted" }, gu = { class: "flex items-center gap-2" }, bu = ["disabled"], yu = ["disabled", "title"], hu = { class: "grid grid-cols-[1fr_3fr_1fr] flex-1 overflow-hidden" }, wu = { class: "min-w-[200px] border-r border-line bg-panel flex flex-col overflow-hidden" }, xu = { class: "p-4 border-b border-line" }, Su = { class: "flex-1 overflow-y-auto p-3 space-y-2" }, ku = ["onClick"], Cu = ["value", "onInput"], $u = ["onClick"], _u = {
|
|
70
72
|
key: 0,
|
|
71
73
|
class: "border-t border-line"
|
|
72
|
-
},
|
|
74
|
+
}, Iu = ["onClick"], Pu = ["onClick"], Du = ["onClick"], Au = { class: "flex-1 flex flex-col bg-canvas min-w-0" }, Nu = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel" }, Tu = { class: "flex items-center gap-3" }, Ru = ["value"], Eu = { class: "flex items-center gap-4" }, Ou = { class: "flex items-center gap-2" }, Bu = { class: "text-xs text-muted w-8 text-right" }, Mu = { class: "flex flex-wrap gap-4 content-start min-h-full" }, Uu = ["onDragstart", "onDragover", "onDrop"], ju = {
|
|
73
75
|
key: 0,
|
|
74
76
|
class: "absolute -left-2 top-1/2 -translate-y-1/2 h-[72%] w-[3px] rounded-full bg-ocean pointer-events-none z-20",
|
|
75
77
|
style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
|
|
76
|
-
},
|
|
78
|
+
}, Vu = {
|
|
77
79
|
key: 1,
|
|
78
80
|
class: "absolute -right-2 top-1/2 -translate-y-1/2 h-[72%] w-[3px] rounded-full bg-ocean pointer-events-none z-20",
|
|
79
81
|
style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
|
|
80
|
-
},
|
|
82
|
+
}, Lu = { class: "relative cursor-grab active:cursor-grabbing" }, Fu = {
|
|
81
83
|
key: 0,
|
|
82
84
|
class: "desktop-frame-thumb"
|
|
83
|
-
},
|
|
85
|
+
}, Ku = { class: "desktop-screen-content-thumb" }, zu = {
|
|
84
86
|
key: 1,
|
|
85
87
|
class: "phone-screen",
|
|
86
88
|
style: { width: "393px", height: "852px" }
|
|
87
|
-
},
|
|
89
|
+
}, Gu = {
|
|
88
90
|
class: "screen-content",
|
|
89
91
|
style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
|
|
90
|
-
},
|
|
92
|
+
}, Hu = ["onClick"], Wu = { class: "flex items-center justify-center gap-1 max-w-full" }, Yu = { class: "text-center text-[11px] text-ink leading-tight truncate" }, Ju = { class: "text-center text-[10px] text-muted" }, Xu = {
|
|
91
93
|
key: 1,
|
|
92
94
|
class: "flex flex-col items-center justify-center w-full h-48 text-muted relative"
|
|
93
|
-
},
|
|
95
|
+
}, Zu = {
|
|
94
96
|
key: 0,
|
|
95
97
|
class: "absolute inset-x-6 top-0 h-[3px] rounded-full bg-ocean pointer-events-none z-20",
|
|
96
98
|
style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
|
|
97
|
-
},
|
|
99
|
+
}, qu = { class: "h-16 w-16 rounded-full border-2 border-dashed border-line flex items-center justify-center mb-3" }, Qu = { class: "min-w-[200px] border-l border-line bg-panel flex flex-col overflow-hidden" }, ec = { class: "flex-1 overflow-y-auto p-3 space-y-4" }, tc = { key: 0 }, nc = { class: "grid grid-cols-2 gap-3" }, oc = ["onDragstart"], ac = {
|
|
98
100
|
class: "phone-screen",
|
|
99
101
|
style: { width: "393px", height: "852px" }
|
|
100
|
-
},
|
|
102
|
+
}, lc = {
|
|
101
103
|
class: "screen-content",
|
|
102
104
|
style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
|
|
103
|
-
},
|
|
105
|
+
}, sc = { class: "flex items-center gap-1 px-0.5" }, ic = { class: "text-[10px] font-mono text-muted" }, rc = { class: "text-[10px] text-ink leading-tight truncate" }, uc = {
|
|
104
106
|
key: 0,
|
|
105
107
|
class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
|
|
106
|
-
},
|
|
108
|
+
}, cc = { key: 1 }, dc = { class: "grid grid-cols-2 gap-3" }, pc = ["onDragstart"], vc = { class: "desktop-frame-thumb" }, fc = { class: "desktop-screen-content-thumb" }, mc = { class: "flex items-center gap-1 px-0.5" }, gc = { class: "text-[10px] font-mono text-muted" }, bc = { class: "text-[10px] text-ink leading-tight truncate" }, yc = {
|
|
107
109
|
key: 0,
|
|
108
110
|
class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
|
|
109
|
-
},
|
|
111
|
+
}, hc = 0.18, wc = 0.38, Hl = 393, xc = 852, Un = 640, Wl = 360, Yl = 1920, Sc = /* @__PURE__ */ kn({
|
|
110
112
|
__name: "FlowEditor",
|
|
111
113
|
props: {
|
|
112
114
|
flows: {},
|
|
@@ -120,7 +122,7 @@ const zn = /* @__PURE__ */ kn({
|
|
|
120
122
|
Ae(() => s.flows, (x) => {
|
|
121
123
|
u.value = JSON.parse(JSON.stringify(x));
|
|
122
124
|
}, { deep: !0 });
|
|
123
|
-
const m = b(0), g = b(0), C = k(() => u.value[m.value]),
|
|
125
|
+
const m = b(0), g = b(0), C = k(() => u.value[m.value]), I = k(() => {
|
|
124
126
|
var x;
|
|
125
127
|
return ((x = C.value) == null ? void 0 : x.rows[g.value]) ?? [];
|
|
126
128
|
}), M = b(0.28);
|
|
@@ -128,7 +130,7 @@ const zn = /* @__PURE__ */ kn({
|
|
|
128
130
|
return x === "pc" ? M.value * Un / Yl : M.value;
|
|
129
131
|
}
|
|
130
132
|
function xe(x) {
|
|
131
|
-
const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl :
|
|
133
|
+
const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl : xc;
|
|
132
134
|
return {
|
|
133
135
|
width: `${Math.ceil(S * M.value) + 2}px`,
|
|
134
136
|
height: `${Math.ceil(T * M.value) + 2}px`
|
|
@@ -250,17 +252,17 @@ const zn = /* @__PURE__ */ kn({
|
|
|
250
252
|
} catch {
|
|
251
253
|
return;
|
|
252
254
|
}
|
|
253
|
-
const
|
|
254
|
-
if (!
|
|
255
|
+
const G = Ee();
|
|
256
|
+
if (!G) return;
|
|
255
257
|
const le = T === "before" ? S : S + 1;
|
|
256
258
|
if (D.type === "palette" && D.screenId) {
|
|
257
259
|
const $ = { screenId: D.screenId, stateId: D.stateId };
|
|
258
|
-
|
|
260
|
+
G.splice(le, 0, $);
|
|
259
261
|
} else if (D.type === "sort" && typeof D.fromIndex == "number") {
|
|
260
262
|
const $ = D.fromIndex;
|
|
261
263
|
if ($ === le) return;
|
|
262
|
-
const [$n] =
|
|
263
|
-
|
|
264
|
+
const [$n] = G.splice($, 1), Wt = $ < le ? le - 1 : le;
|
|
265
|
+
G.splice(Wt, 0, $n);
|
|
264
266
|
}
|
|
265
267
|
}
|
|
266
268
|
function Dt(x) {
|
|
@@ -314,11 +316,11 @@ const zn = /* @__PURE__ */ kn({
|
|
|
314
316
|
}
|
|
315
317
|
return (x, S) => {
|
|
316
318
|
var T, R;
|
|
317
|
-
return v(), f("div",
|
|
318
|
-
e("header",
|
|
319
|
-
e("div",
|
|
319
|
+
return v(), f("div", pu, [
|
|
320
|
+
e("header", vu, [
|
|
321
|
+
e("div", fu, [
|
|
320
322
|
S[4] || (S[4] = e("h2", { class: "text-lg font-semibold text-ink" }, "流程编排", -1)),
|
|
321
|
-
e("span",
|
|
323
|
+
e("span", mu, p((T = C.value) == null ? void 0 : T.title) + " · 子流程 " + p(g.value + 1) + " / " + p((R = C.value) == null ? void 0 : R.rows.length), 1)
|
|
322
324
|
]),
|
|
323
325
|
X(os, { name: "toast" }, {
|
|
324
326
|
default: as(() => [
|
|
@@ -329,15 +331,15 @@ const zn = /* @__PURE__ */ kn({
|
|
|
329
331
|
]),
|
|
330
332
|
_: 1
|
|
331
333
|
}),
|
|
332
|
-
e("div",
|
|
334
|
+
e("div", gu, [
|
|
333
335
|
e("button", {
|
|
334
336
|
class: "flex items-center gap-1.5 rounded-lg bg-soft px-3 py-1.5 text-sm font-medium text-ink hover:bg-canvas transition",
|
|
335
337
|
disabled: Fe.value,
|
|
336
338
|
onClick: Ze
|
|
337
339
|
}, [
|
|
338
340
|
X(l(Vr), { class: "h-4 w-4" }),
|
|
339
|
-
|
|
340
|
-
], 8,
|
|
341
|
+
H(" " + p(Fe.value ? "保存中…" : "保存到当前会话"), 1)
|
|
342
|
+
], 8, bu),
|
|
341
343
|
e("button", {
|
|
342
344
|
class: "flex items-center gap-1.5 rounded-lg bg-ink px-3 py-1.5 text-sm font-medium text-white transition hover:bg-ocean disabled:cursor-not-allowed disabled:opacity-40",
|
|
343
345
|
disabled: Ye.value || !t.canPushRemote,
|
|
@@ -345,14 +347,14 @@ const zn = /* @__PURE__ */ kn({
|
|
|
345
347
|
onClick: At
|
|
346
348
|
}, [
|
|
347
349
|
X(l(Lr), { class: "h-4 w-4" }),
|
|
348
|
-
|
|
349
|
-
], 8,
|
|
350
|
+
H(" " + p(Ye.value ? "推送中…" : "推送到 Gitee"), 1)
|
|
351
|
+
], 8, yu),
|
|
350
352
|
e("button", {
|
|
351
353
|
class: "flex items-center gap-1.5 rounded-lg bg-ocean px-3 py-1.5 text-sm font-medium text-white hover:opacity-90 transition",
|
|
352
354
|
onClick: Cn
|
|
353
355
|
}, [
|
|
354
356
|
X(l(Fr), { class: "h-4 w-4" }),
|
|
355
|
-
S[5] || (S[5] =
|
|
357
|
+
S[5] || (S[5] = H(" 导出 JSON ", -1))
|
|
356
358
|
]),
|
|
357
359
|
e("button", {
|
|
358
360
|
class: "flex h-8 w-8 items-center justify-center rounded-full bg-soft text-ink hover:bg-canvas transition",
|
|
@@ -362,97 +364,97 @@ const zn = /* @__PURE__ */ kn({
|
|
|
362
364
|
])
|
|
363
365
|
])
|
|
364
366
|
]),
|
|
365
|
-
e("div",
|
|
366
|
-
e("aside",
|
|
367
|
-
e("div",
|
|
367
|
+
e("div", hu, [
|
|
368
|
+
e("aside", wu, [
|
|
369
|
+
e("div", xu, [
|
|
368
370
|
e("button", {
|
|
369
371
|
class: "flex w-full items-center justify-center gap-2 rounded-xl bg-ocean py-2.5 text-sm font-medium text-white hover:opacity-90 transition",
|
|
370
372
|
onClick: ln
|
|
371
373
|
}, [
|
|
372
374
|
X(l(Kn), { class: "h-4 w-4" }),
|
|
373
|
-
S[6] || (S[6] =
|
|
375
|
+
S[6] || (S[6] = H(" 新建主流程 ", -1))
|
|
374
376
|
])
|
|
375
377
|
]),
|
|
376
|
-
e("div",
|
|
377
|
-
(v(!0), f(
|
|
378
|
+
e("div", Su, [
|
|
379
|
+
(v(!0), f(_, null, N(u.value, (D, G) => (v(), f("div", {
|
|
378
380
|
key: D.id,
|
|
379
|
-
class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value ===
|
|
381
|
+
class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value === G }])
|
|
380
382
|
}, [
|
|
381
383
|
e("div", {
|
|
382
384
|
class: "flex items-center gap-2 px-3 py-2.5 cursor-pointer hover:bg-canvas transition",
|
|
383
|
-
onClick: (le) => Ne(
|
|
385
|
+
onClick: (le) => Ne(G)
|
|
384
386
|
}, [
|
|
385
|
-
(v(), st(Bo(Ce.value.has(
|
|
387
|
+
(v(), st(Bo(Ce.value.has(G) ? l(Kr) : l(zr)), { class: "h-4 w-4 text-muted" })),
|
|
386
388
|
e("input", {
|
|
387
389
|
value: D.title,
|
|
388
390
|
class: "flex-1 min-w-0 bg-transparent text-sm font-semibold text-ink outline-none",
|
|
389
391
|
onClick: S[0] || (S[0] = re(() => {
|
|
390
392
|
}, ["stop"])),
|
|
391
|
-
onInput: (le) => vt(
|
|
392
|
-
}, null, 40,
|
|
393
|
+
onInput: (le) => vt(G, le.target.value)
|
|
394
|
+
}, null, 40, Cu),
|
|
393
395
|
e("button", {
|
|
394
396
|
class: "text-muted hover:text-danger transition",
|
|
395
397
|
title: "删除主流程",
|
|
396
|
-
onClick: re((le) => pt(
|
|
398
|
+
onClick: re((le) => pt(G), ["stop"])
|
|
397
399
|
}, [
|
|
398
400
|
X(l(hn), { class: "h-3.5 w-3.5" })
|
|
399
|
-
], 8,
|
|
400
|
-
], 8,
|
|
401
|
-
Ce.value.has(
|
|
402
|
-
(v(!0), f(
|
|
401
|
+
], 8, $u)
|
|
402
|
+
], 8, ku),
|
|
403
|
+
Ce.value.has(G) ? (v(), f("div", _u, [
|
|
404
|
+
(v(!0), f(_, null, N(D.rows, (le, ge) => (v(), f("div", {
|
|
403
405
|
key: ge,
|
|
404
406
|
class: P(["group/row flex items-center gap-2 py-2 text-xs cursor-pointer hover:bg-canvas transition", [
|
|
405
|
-
m.value ===
|
|
407
|
+
m.value === G && g.value === ge ? "pl-[9px] pr-3 bg-ocean/5 border-l-[3px] border-ocean" : "px-3"
|
|
406
408
|
]]),
|
|
407
|
-
onClick: ($) => Ue(
|
|
409
|
+
onClick: ($) => Ue(G, ge)
|
|
408
410
|
}, [
|
|
409
411
|
e("span", {
|
|
410
|
-
class: P(["h-1.5 w-1.5 rounded-full", m.value ===
|
|
412
|
+
class: P(["h-1.5 w-1.5 rounded-full", m.value === G && g.value === ge ? "bg-ocean" : "bg-muted"])
|
|
411
413
|
}, null, 2),
|
|
412
414
|
e("span", {
|
|
413
|
-
class: P(["flex-1 min-w-0 truncate", m.value ===
|
|
415
|
+
class: P(["flex-1 min-w-0 truncate", m.value === G && g.value === ge ? "text-ink font-medium" : "text-muted"])
|
|
414
416
|
}, p(Xe(D, ge)), 3),
|
|
415
417
|
e("span", {
|
|
416
|
-
class: P(["", m.value ===
|
|
418
|
+
class: P(["", m.value === G && g.value === ge ? "text-ocean" : "text-muted/60"])
|
|
417
419
|
}, p(le.length) + " 页", 3),
|
|
418
420
|
e("button", {
|
|
419
421
|
class: "text-muted hover:text-danger transition opacity-0 group-hover/row:opacity-100",
|
|
420
422
|
title: "删除子流程",
|
|
421
|
-
onClick: re(($) => J(
|
|
423
|
+
onClick: re(($) => J(G, ge), ["stop"])
|
|
422
424
|
}, [
|
|
423
425
|
X(l(hn), { class: "h-3 w-3" })
|
|
424
|
-
], 8,
|
|
425
|
-
], 10,
|
|
426
|
+
], 8, Pu)
|
|
427
|
+
], 10, Iu))), 128)),
|
|
426
428
|
e("button", {
|
|
427
429
|
class: "flex w-full items-center gap-1.5 px-3 py-2 text-xs text-ocean hover:bg-canvas transition",
|
|
428
|
-
onClick: (le) => ft(
|
|
430
|
+
onClick: (le) => ft(G)
|
|
429
431
|
}, [
|
|
430
432
|
X(l(Kn), { class: "h-3 w-3" }),
|
|
431
|
-
S[7] || (S[7] =
|
|
432
|
-
], 8,
|
|
433
|
+
S[7] || (S[7] = H(" 添加子流程 ", -1))
|
|
434
|
+
], 8, Du)
|
|
433
435
|
])) : w("", !0)
|
|
434
436
|
], 2))), 128))
|
|
435
437
|
])
|
|
436
438
|
]),
|
|
437
|
-
e("section",
|
|
438
|
-
e("div",
|
|
439
|
-
e("div",
|
|
439
|
+
e("section", Au, [
|
|
440
|
+
e("div", Nu, [
|
|
441
|
+
e("div", Tu, [
|
|
440
442
|
S[8] || (S[8] = e("span", { class: "text-sm text-muted" }, "当前子流程名称", -1)),
|
|
441
443
|
e("input", {
|
|
442
444
|
value: Xe(C.value, g.value),
|
|
443
445
|
class: "rounded-lg border border-line bg-canvas px-3 py-1.5 text-sm text-ink outline-none focus:border-ocean",
|
|
444
446
|
placeholder: "输入子流程名称...",
|
|
445
447
|
onInput: S[1] || (S[1] = (D) => je(g.value, D.target.value))
|
|
446
|
-
}, null, 40,
|
|
448
|
+
}, null, 40, Ru)
|
|
447
449
|
]),
|
|
448
|
-
e("div",
|
|
449
|
-
e("div",
|
|
450
|
+
e("div", Eu, [
|
|
451
|
+
e("div", Ou, [
|
|
450
452
|
S[9] || (S[9] = e("span", { class: "text-xs text-muted" }, "缩略图", -1)),
|
|
451
453
|
A(e("input", {
|
|
452
454
|
"onUpdate:modelValue": S[2] || (S[2] = (D) => M.value = D),
|
|
453
455
|
type: "range",
|
|
454
|
-
min:
|
|
455
|
-
max:
|
|
456
|
+
min: hc,
|
|
457
|
+
max: wc,
|
|
456
458
|
step: "0.01",
|
|
457
459
|
class: "w-20 h-1 accent-ocean cursor-pointer",
|
|
458
460
|
"aria-label": "缩略图缩放"
|
|
@@ -464,7 +466,7 @@ const zn = /* @__PURE__ */ kn({
|
|
|
464
466
|
{ number: !0 }
|
|
465
467
|
]
|
|
466
468
|
]),
|
|
467
|
-
e("span",
|
|
469
|
+
e("span", Bu, p(Math.round(M.value * 100)) + "%", 1)
|
|
468
470
|
]),
|
|
469
471
|
C.value ? (v(), f("button", {
|
|
470
472
|
key: 0,
|
|
@@ -472,7 +474,7 @@ const zn = /* @__PURE__ */ kn({
|
|
|
472
474
|
onClick: ee
|
|
473
475
|
}, [
|
|
474
476
|
X(l(Kn), { class: "h-3.5 w-3.5" }),
|
|
475
|
-
S[10] || (S[10] =
|
|
477
|
+
S[10] || (S[10] = H(" 新增空行 ", -1))
|
|
476
478
|
])) : w("", !0)
|
|
477
479
|
])
|
|
478
480
|
]),
|
|
@@ -482,25 +484,25 @@ const zn = /* @__PURE__ */ kn({
|
|
|
482
484
|
}, ["prevent"])),
|
|
483
485
|
onDrop: Dt
|
|
484
486
|
}, [
|
|
485
|
-
e("div",
|
|
486
|
-
|
|
487
|
+
e("div", Mu, [
|
|
488
|
+
I.value.length > 0 ? (v(!0), f(_, { key: 0 }, N(I.value, (D, G) => {
|
|
487
489
|
var le, ge;
|
|
488
490
|
return v(), f("div", {
|
|
489
|
-
key: `${D.screenId}-${
|
|
491
|
+
key: `${D.screenId}-${G}`,
|
|
490
492
|
class: P(["group relative flex flex-col items-center gap-2", {
|
|
491
|
-
"opacity-40 scale-[0.96]": V.value ===
|
|
493
|
+
"opacity-40 scale-[0.96]": V.value === G,
|
|
492
494
|
"transition-all duration-150": !0
|
|
493
495
|
}]),
|
|
494
496
|
style: Pe({ width: `${oe(D) === "pc" ? Se.value : q.value}px` }),
|
|
495
497
|
draggable: "true",
|
|
496
|
-
onDragstart: ($) => ve($,
|
|
498
|
+
onDragstart: ($) => ve($, G),
|
|
497
499
|
onDragend: fe,
|
|
498
|
-
onDragover: re(($) => Pt($,
|
|
499
|
-
onDrop: ($) => W($,
|
|
500
|
+
onDragover: re(($) => Pt($, G), ["prevent"]),
|
|
501
|
+
onDrop: ($) => W($, G)
|
|
500
502
|
}, [
|
|
501
|
-
ot.value ===
|
|
502
|
-
|
|
503
|
-
e("div",
|
|
503
|
+
ot.value === G ? (v(), f("div", ju)) : w("", !0),
|
|
504
|
+
G === I.value.length - 1 && ot.value === I.value.length ? (v(), f("div", Vu)) : w("", !0),
|
|
505
|
+
e("div", Lu, [
|
|
504
506
|
e("div", {
|
|
505
507
|
class: P(["thumb-frame", { "pc-thumb-frame": oe(D) === "pc" }]),
|
|
506
508
|
style: Pe(xe(oe(D)))
|
|
@@ -509,16 +511,16 @@ const zn = /* @__PURE__ */ kn({
|
|
|
509
511
|
class: "thumb-scale",
|
|
510
512
|
style: Pe({ transform: `scale(${se(oe(D))})` })
|
|
511
513
|
}, [
|
|
512
|
-
oe(D) === "pc" ? (v(), f("div",
|
|
513
|
-
e("div",
|
|
514
|
+
oe(D) === "pc" ? (v(), f("div", Fu, [
|
|
515
|
+
e("div", Ku, [
|
|
514
516
|
D.screenId ? (v(), st(zn, {
|
|
515
517
|
key: 0,
|
|
516
518
|
screen: Le(D)
|
|
517
519
|
}, null, 8, ["screen"])) : w("", !0)
|
|
518
520
|
])
|
|
519
|
-
])) : (v(), f("div",
|
|
521
|
+
])) : (v(), f("div", zu, [
|
|
520
522
|
S[11] || (S[11] = Kl('<div class="status-bar" data-v-0f3d8899><span data-v-0f3d8899>9:41</span><span class="flex items-center gap-1" data-v-0f3d8899><svg class="h-3 w-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-0f3d8899><path d="M12 2a4 4 0 0 0-4 4c0 2.5 3 5.5 4 9 1-3.5 4-6.5 4-9a4 4 0 0 0-4-4Z" data-v-0f3d8899></path><circle cx="12" cy="6" r="1.5" data-v-0f3d8899></circle></svg> 86% </span></div>', 1)),
|
|
521
|
-
e("div",
|
|
523
|
+
e("div", Gu, [
|
|
522
524
|
D.screenId ? (v(), st(zn, {
|
|
523
525
|
key: 0,
|
|
524
526
|
screen: Le(D)
|
|
@@ -529,27 +531,27 @@ const zn = /* @__PURE__ */ kn({
|
|
|
529
531
|
], 6),
|
|
530
532
|
e("button", {
|
|
531
533
|
class: "absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-danger text-white shadow-sm transition hover:scale-110",
|
|
532
|
-
onClick: ($) => mt(g.value,
|
|
534
|
+
onClick: ($) => mt(g.value, G)
|
|
533
535
|
}, [
|
|
534
536
|
X(l(Ao), { class: "h-3 w-3" })
|
|
535
|
-
], 8,
|
|
537
|
+
], 8, Hu)
|
|
536
538
|
]),
|
|
537
|
-
e("div",
|
|
539
|
+
e("div", Wu, [
|
|
538
540
|
e("span", {
|
|
539
541
|
class: P(["platform-badge is-small", oe(D) === "pc" ? "is-pc" : "is-mobile"])
|
|
540
542
|
}, p(oe(D) === "pc" ? "P" : "M"), 3),
|
|
541
|
-
e("span",
|
|
543
|
+
e("span", Yu, p(((le = dt(D.screenId)) == null ? void 0 : le.title) ?? D.screenId), 1)
|
|
542
544
|
]),
|
|
543
|
-
e("span",
|
|
544
|
-
|
|
545
|
-
D.stateId ? (v(), f(
|
|
546
|
-
|
|
545
|
+
e("span", Ju, [
|
|
546
|
+
H(p(((ge = dt(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
|
|
547
|
+
D.stateId ? (v(), f(_, { key: 0 }, [
|
|
548
|
+
H(" · " + p(Le(D).stateLabel), 1)
|
|
547
549
|
], 64)) : w("", !0)
|
|
548
550
|
])
|
|
549
|
-
], 46,
|
|
550
|
-
}), 128)) : (v(), f("div",
|
|
551
|
-
ae.value ? (v(), f("div",
|
|
552
|
-
e("div",
|
|
551
|
+
], 46, Uu);
|
|
552
|
+
}), 128)) : (v(), f("div", Xu, [
|
|
553
|
+
ae.value ? (v(), f("div", Zu)) : w("", !0),
|
|
554
|
+
e("div", qu, [
|
|
553
555
|
X(l(Kn), { class: "h-6 w-6" })
|
|
554
556
|
]),
|
|
555
557
|
S[12] || (S[12] = e("p", { class: "text-sm" }, "从右侧拖拽页面到此处", -1))
|
|
@@ -557,22 +559,22 @@ const zn = /* @__PURE__ */ kn({
|
|
|
557
559
|
])
|
|
558
560
|
], 32)
|
|
559
561
|
]),
|
|
560
|
-
e("aside",
|
|
562
|
+
e("aside", Qu, [
|
|
561
563
|
S[18] || (S[18] = e("div", { class: "p-4 border-b border-line" }, [
|
|
562
564
|
e("h3", { class: "text-sm font-semibold text-ink" }, "状态库"),
|
|
563
565
|
e("p", { class: "text-xs text-muted mt-1" }, "拖拽页面状态到中间画布")
|
|
564
566
|
], -1)),
|
|
565
|
-
e("div",
|
|
566
|
-
Ve.value.length ? (v(), f("div",
|
|
567
|
+
e("div", ec, [
|
|
568
|
+
Ve.value.length ? (v(), f("div", tc, [
|
|
567
569
|
S[15] || (S[15] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "移动端", -1)),
|
|
568
|
-
e("div",
|
|
569
|
-
(v(!0), f(
|
|
570
|
+
e("div", nc, [
|
|
571
|
+
(v(!0), f(_, null, N(Ve.value, (D) => (v(), f("div", {
|
|
570
572
|
key: D.key,
|
|
571
573
|
class: P(["group flex flex-col gap-1 p-2 rounded-xl border border-line bg-soft hover:border-ocean hover:shadow-sm transition cursor-grab active:cursor-grabbing", {
|
|
572
574
|
"opacity-40 ring-2 ring-ocean/40": U.value === D.key
|
|
573
575
|
}]),
|
|
574
576
|
draggable: "true",
|
|
575
|
-
onDragstart: (
|
|
577
|
+
onDragstart: (G) => ie(G, D),
|
|
576
578
|
onDragend: fe
|
|
577
579
|
}, [
|
|
578
580
|
e("div", {
|
|
@@ -583,9 +585,9 @@ const zn = /* @__PURE__ */ kn({
|
|
|
583
585
|
class: "thumb-scale",
|
|
584
586
|
style: Pe({ transform: `scale(${M.value})` })
|
|
585
587
|
}, [
|
|
586
|
-
e("div",
|
|
588
|
+
e("div", ac, [
|
|
587
589
|
S[13] || (S[13] = Kl('<div class="status-bar" data-v-0f3d8899><span data-v-0f3d8899>9:41</span><span class="flex items-center gap-1" data-v-0f3d8899><svg class="h-3 w-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-0f3d8899><path d="M12 2a4 4 0 0 0-4 4c0 2.5 3 5.5 4 9 1-3.5 4-6.5 4-9a4 4 0 0 0-4-4Z" data-v-0f3d8899></path><circle cx="12" cy="6" r="1.5" data-v-0f3d8899></circle></svg> 86% </span></div>', 1)),
|
|
588
|
-
e("div",
|
|
590
|
+
e("div", lc, [
|
|
589
591
|
X(zn, {
|
|
590
592
|
screen: Z(D)
|
|
591
593
|
}, null, 8, ["screen"])
|
|
@@ -593,25 +595,25 @@ const zn = /* @__PURE__ */ kn({
|
|
|
593
595
|
])
|
|
594
596
|
], 4)
|
|
595
597
|
], 4),
|
|
596
|
-
e("div",
|
|
598
|
+
e("div", sc, [
|
|
597
599
|
S[14] || (S[14] = e("span", { class: "platform-badge is-small is-mobile" }, "M", -1)),
|
|
598
|
-
e("span",
|
|
599
|
-
e("span",
|
|
600
|
+
e("span", ic, p(D.screen.code), 1),
|
|
601
|
+
e("span", rc, p(D.screen.title), 1)
|
|
600
602
|
]),
|
|
601
|
-
D.stateLabel ? (v(), f("span",
|
|
602
|
-
], 42,
|
|
603
|
+
D.stateLabel ? (v(), f("span", uc, p(D.stateLabel), 1)) : w("", !0)
|
|
604
|
+
], 42, oc))), 128))
|
|
603
605
|
])
|
|
604
606
|
])) : w("", !0),
|
|
605
|
-
ce.value.length ? (v(), f("div",
|
|
607
|
+
ce.value.length ? (v(), f("div", cc, [
|
|
606
608
|
S[17] || (S[17] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "PC 端", -1)),
|
|
607
|
-
e("div",
|
|
608
|
-
(v(!0), f(
|
|
609
|
+
e("div", dc, [
|
|
610
|
+
(v(!0), f(_, null, N(ce.value, (D) => (v(), f("div", {
|
|
609
611
|
key: D.key,
|
|
610
612
|
class: P(["group flex flex-col gap-1 p-2 rounded-xl border border-line bg-soft hover:border-ocean hover:shadow-sm transition cursor-grab active:cursor-grabbing", {
|
|
611
613
|
"opacity-40 ring-2 ring-ocean/40": U.value === D.key
|
|
612
614
|
}]),
|
|
613
615
|
draggable: "true",
|
|
614
|
-
onDragstart: (
|
|
616
|
+
onDragstart: (G) => ie(G, D),
|
|
615
617
|
onDragend: fe
|
|
616
618
|
}, [
|
|
617
619
|
e("div", {
|
|
@@ -622,8 +624,8 @@ const zn = /* @__PURE__ */ kn({
|
|
|
622
624
|
class: "thumb-scale",
|
|
623
625
|
style: Pe({ transform: `scale(${Je.value})` })
|
|
624
626
|
}, [
|
|
625
|
-
e("div",
|
|
626
|
-
e("div",
|
|
627
|
+
e("div", vc, [
|
|
628
|
+
e("div", fc, [
|
|
627
629
|
X(zn, {
|
|
628
630
|
screen: Z(D)
|
|
629
631
|
}, null, 8, ["screen"])
|
|
@@ -631,13 +633,13 @@ const zn = /* @__PURE__ */ kn({
|
|
|
631
633
|
])
|
|
632
634
|
], 4)
|
|
633
635
|
], 4),
|
|
634
|
-
e("div",
|
|
636
|
+
e("div", mc, [
|
|
635
637
|
S[16] || (S[16] = e("span", { class: "platform-badge is-small is-pc" }, "P", -1)),
|
|
636
|
-
e("span",
|
|
637
|
-
e("span",
|
|
638
|
+
e("span", gc, p(D.screen.code), 1),
|
|
639
|
+
e("span", bc, p(D.screen.title), 1)
|
|
638
640
|
]),
|
|
639
|
-
D.stateLabel ? (v(), f("span",
|
|
640
|
-
], 42,
|
|
641
|
+
D.stateLabel ? (v(), f("span", yc, p(D.stateLabel), 1)) : w("", !0)
|
|
642
|
+
], 42, pc))), 128))
|
|
641
643
|
])
|
|
642
644
|
])) : w("", !0)
|
|
643
645
|
])
|
|
@@ -651,8 +653,8 @@ const zn = /* @__PURE__ */ kn({
|
|
|
651
653
|
for (const [r, u] of n)
|
|
652
654
|
s[r] = u;
|
|
653
655
|
return s;
|
|
654
|
-
},
|
|
655
|
-
function
|
|
656
|
+
}, kc = /* @__PURE__ */ is(Sc, [["__scopeId", "data-v-0f3d8899"]]);
|
|
657
|
+
function Cc(t) {
|
|
656
658
|
if (t === "main") return "main";
|
|
657
659
|
let n = 2166136261;
|
|
658
660
|
for (const r of t)
|
|
@@ -699,8 +701,8 @@ function ds(t, n) {
|
|
|
699
701
|
}
|
|
700
702
|
const ps = 2;
|
|
701
703
|
function ye() {
|
|
702
|
-
var
|
|
703
|
-
const t = Yn().collaboration ?? {}, n = ((
|
|
704
|
+
var I, M, se, xe, q, Se, ke;
|
|
705
|
+
const t = Yn().collaboration ?? {}, n = ((I = t.provider) == null ? void 0 : I.trim()) ?? "", s = ((M = t.owner) == null ? void 0 : M.trim()) ?? "", r = ((se = t.repo) == null ? void 0 : se.trim()) ?? "", u = ((xe = t.token) == null ? void 0 : xe.trim()) ?? "", m = ((q = t.codeBranch) == null ? void 0 : q.trim()) ?? "", g = n !== "gitee" || !s || !r || !u, C = !m;
|
|
704
706
|
return {
|
|
705
707
|
provider: n,
|
|
706
708
|
owner: s,
|
|
@@ -709,7 +711,7 @@ function ye() {
|
|
|
709
711
|
remoteBranch: ((Se = t.remoteBranch) == null ? void 0 : Se.trim()) || "master",
|
|
710
712
|
projectId: ((ke = t.projectId) == null ? void 0 : ke.trim()) || "prototype-core",
|
|
711
713
|
codeBranch: m,
|
|
712
|
-
branchKey: m ?
|
|
714
|
+
branchKey: m ? Cc(m) : "unknown",
|
|
713
715
|
remoteReadable: !g && !C,
|
|
714
716
|
remoteWritable: !g && !C,
|
|
715
717
|
unavailableReason: C ? "无法识别代码分支,当前无法推送" : g ? "Gitee 未配置,当前无法推送" : ""
|
|
@@ -745,14 +747,14 @@ function We(t, n, s, r) {
|
|
|
745
747
|
};
|
|
746
748
|
return (m = vs()) == null || m.setItem(fs(t), JSON.stringify(u)), u;
|
|
747
749
|
}
|
|
748
|
-
const ms = "https://gitee.com/api/v5",
|
|
750
|
+
const ms = "https://gitee.com/api/v5", $c = us(), gs = ye().remoteReadable;
|
|
749
751
|
function bs(t) {
|
|
750
752
|
return t.split("/").map(encodeURIComponent).join("/");
|
|
751
753
|
}
|
|
752
|
-
function
|
|
754
|
+
function _c(t) {
|
|
753
755
|
return btoa(unescape(encodeURIComponent(t)));
|
|
754
756
|
}
|
|
755
|
-
function
|
|
757
|
+
function Ic(t) {
|
|
756
758
|
return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
|
|
757
759
|
}
|
|
758
760
|
function ys() {
|
|
@@ -762,7 +764,7 @@ function ys() {
|
|
|
762
764
|
function hs() {
|
|
763
765
|
return `projects/${ye().projectId}/bugs/bugs.json`;
|
|
764
766
|
}
|
|
765
|
-
function
|
|
767
|
+
function Pc(t, n) {
|
|
766
768
|
const s = ye();
|
|
767
769
|
return ["docs: update product bugs", "", `提交人:${t}`, `代码分支:${s.codeBranch}`, `数据分支:${s.branchKey}`, `操作:${n}`].join(`
|
|
768
770
|
`);
|
|
@@ -781,7 +783,7 @@ async function Jl(t) {
|
|
|
781
783
|
const u = await r.json(), m = ds(u, t);
|
|
782
784
|
if (m)
|
|
783
785
|
return {
|
|
784
|
-
value: JSON.parse(
|
|
786
|
+
value: JSON.parse(Ic(m.content)),
|
|
785
787
|
sha: m.sha,
|
|
786
788
|
exists: !0,
|
|
787
789
|
legacy: t === hs()
|
|
@@ -793,11 +795,11 @@ async function ws() {
|
|
|
793
795
|
const t = await Jl(ys());
|
|
794
796
|
return t || (ye().codeBranch !== "main" ? null : Jl(hs()));
|
|
795
797
|
}
|
|
796
|
-
async function
|
|
798
|
+
async function Dc(t, n, s, r) {
|
|
797
799
|
const u = ye();
|
|
798
800
|
if (!u.remoteWritable) return;
|
|
799
801
|
const m = `${ms}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${bs(t)}`, g = new URLSearchParams();
|
|
800
|
-
g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content",
|
|
802
|
+
g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", _c(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
|
|
801
803
|
const C = await fetch(m, {
|
|
802
804
|
method: s ? "PUT" : "POST",
|
|
803
805
|
headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
|
|
@@ -806,20 +808,20 @@ async function _c(t, n, s, r) {
|
|
|
806
808
|
if (C.status === 409 || C.status === 422) throw new Error("远端已有新的 Bug 数据,请刷新后再提交");
|
|
807
809
|
if (!C.ok) throw new Error(`提交 Gitee Bug 文件失败:${C.status}`);
|
|
808
810
|
}
|
|
809
|
-
async function
|
|
811
|
+
async function Ac() {
|
|
810
812
|
const t = await ws();
|
|
811
813
|
return t ? {
|
|
812
814
|
...t,
|
|
813
815
|
value: Array.isArray(t.value) ? t.value : []
|
|
814
816
|
} : null;
|
|
815
817
|
}
|
|
816
|
-
async function
|
|
817
|
-
return
|
|
818
|
+
async function Nc(t, n, s) {
|
|
819
|
+
return $c("bugs:all", async () => {
|
|
818
820
|
const r = await ws(), u = s(Array.isArray(r == null ? void 0 : r.value) ? r.value : []);
|
|
819
|
-
return await
|
|
821
|
+
return await Dc(ys(), u, r != null && r.legacy ? null : (r == null ? void 0 : r.sha) ?? null, Pc(t, n)), u;
|
|
820
822
|
});
|
|
821
823
|
}
|
|
822
|
-
const xs = ["功能异常", "UI/文案", "流程阻塞", "数据/报告", "设备/蓝牙", "性能/稳定性", "兼容性", "其他"], Ss = ["P0", "P1", "P2", "P3", "P4"], ks = ["安卓侧", "iOS 侧", "后端"], Cs = ["后端开发", "iOS 开发", "安卓开发", "产品经理", "算法开发", "硬件嵌入式开发"], $s = ["待处理", "已确认", "修复中", "已修复", "已验证", "无需处理"],
|
|
824
|
+
const xs = ["功能异常", "UI/文案", "流程阻塞", "数据/报告", "设备/蓝牙", "性能/稳定性", "兼容性", "其他"], Ss = ["P0", "P1", "P2", "P3", "P4"], ks = ["安卓侧", "iOS 侧", "后端"], Cs = ["后端开发", "iOS 开发", "安卓开发", "产品经理", "算法开发", "硬件嵌入式开发"], $s = ["待处理", "已确认", "修复中", "已修复", "已验证", "无需处理"], _s = ["待处理", "已确认", "修复中"], Ge = b([]), To = b(gs), Is = b(gs ? "loading" : "idle"), Oa = b("");
|
|
823
825
|
let Xl = !1;
|
|
824
826
|
function Ps() {
|
|
825
827
|
try {
|
|
@@ -835,22 +837,22 @@ function ka() {
|
|
|
835
837
|
"bugs"
|
|
836
838
|
);
|
|
837
839
|
}
|
|
838
|
-
function
|
|
840
|
+
function Tc(t) {
|
|
839
841
|
return typeof t == "string" && xs.includes(t);
|
|
840
842
|
}
|
|
841
|
-
function
|
|
843
|
+
function Rc(t) {
|
|
842
844
|
return typeof t == "string" && Ss.includes(t);
|
|
843
845
|
}
|
|
844
|
-
function
|
|
846
|
+
function Ec(t) {
|
|
845
847
|
return typeof t == "string" && ks.includes(t);
|
|
846
848
|
}
|
|
847
|
-
function
|
|
849
|
+
function Oc(t) {
|
|
848
850
|
return typeof t == "string" && Cs.includes(t);
|
|
849
851
|
}
|
|
850
852
|
function ba(t) {
|
|
851
853
|
return typeof t == "string" && $s.includes(t);
|
|
852
854
|
}
|
|
853
|
-
function
|
|
855
|
+
function Bc(t) {
|
|
854
856
|
if (!t || typeof t != "object") return null;
|
|
855
857
|
const n = t;
|
|
856
858
|
return typeof n.id != "string" || !n.id.trim() || typeof n.name != "string" || !n.name.trim() || typeof n.objectKey != "string" || !n.objectKey.trim() || typeof n.url != "string" || !n.url.trim() || typeof n.mimeType != "string" || !n.mimeType.startsWith("image/") || typeof n.uploaderName != "string" || !n.uploaderName.trim() ? null : {
|
|
@@ -865,17 +867,17 @@ function Ec(t) {
|
|
|
865
867
|
createdAt: typeof n.createdAt == "string" && n.createdAt ? n.createdAt : (/* @__PURE__ */ new Date()).toISOString()
|
|
866
868
|
};
|
|
867
869
|
}
|
|
868
|
-
function
|
|
870
|
+
function Mc(t) {
|
|
869
871
|
if (!t || typeof t != "object") return null;
|
|
870
872
|
const n = t;
|
|
871
|
-
if (typeof n.id != "string" || !n.id.trim() || typeof n.title != "string" || !n.title.trim() || !
|
|
873
|
+
if (typeof n.id != "string" || !n.id.trim() || typeof n.title != "string" || !n.title.trim() || !Tc(n.type) || !Oc(n.ownerRole) || !ba(n.status) || typeof n.description != "string" || !n.description.trim() || typeof n.reporterName != "string" || !n.reporterName.trim()) return null;
|
|
872
874
|
const s = typeof n.createdAt == "string" && n.createdAt ? n.createdAt : (/* @__PURE__ */ new Date()).toISOString(), r = typeof n.updatedAt == "string" && n.updatedAt ? n.updatedAt : s;
|
|
873
875
|
return {
|
|
874
876
|
id: n.id,
|
|
875
877
|
title: n.title.trim(),
|
|
876
878
|
type: n.type,
|
|
877
|
-
severity:
|
|
878
|
-
sourceSide:
|
|
879
|
+
severity: Rc(n.severity) ? n.severity : "P2",
|
|
880
|
+
sourceSide: Ec(n.sourceSide) ? n.sourceSide : "后端",
|
|
879
881
|
sourceSideVersion: typeof n.sourceSideVersion == "string" && n.sourceSideVersion.trim() ? n.sourceSideVersion.trim() : void 0,
|
|
880
882
|
ownerRole: n.ownerRole,
|
|
881
883
|
status: n.status,
|
|
@@ -884,25 +886,25 @@ function Oc(t) {
|
|
|
884
886
|
fixerName: typeof n.fixerName == "string" ? n.fixerName.trim() : void 0,
|
|
885
887
|
createdAt: s,
|
|
886
888
|
updatedAt: r,
|
|
887
|
-
attachments: Array.isArray(n.attachments) ? n.attachments.map(
|
|
889
|
+
attachments: Array.isArray(n.attachments) ? n.attachments.map(Bc).filter((u) => !!u) : [],
|
|
888
890
|
history: Array.isArray(n.history) ? n.history.filter((u) => u && typeof u == "object").map((u) => u).filter((u) => typeof u.id == "string" && ba(u.fromStatus) && ba(u.toStatus) && typeof u.operatorName == "string" && typeof u.createdAt == "string") : []
|
|
889
891
|
};
|
|
890
892
|
}
|
|
891
893
|
function wn(t) {
|
|
892
|
-
return Array.isArray(t) ? t.map(
|
|
894
|
+
return Array.isArray(t) ? t.map(Mc).filter((n) => !!n).sort((n, s) => s.updatedAt.localeCompare(n.updatedAt)) : [];
|
|
893
895
|
}
|
|
894
896
|
function Ca(t) {
|
|
895
897
|
var n;
|
|
896
898
|
(n = Ps()) == null || n.setItem(ka(), JSON.stringify(t));
|
|
897
899
|
}
|
|
898
900
|
function $t(t, n = "") {
|
|
899
|
-
|
|
901
|
+
Is.value = t, Oa.value = n;
|
|
900
902
|
}
|
|
901
903
|
async function Ds() {
|
|
902
904
|
if (To.value)
|
|
903
905
|
try {
|
|
904
906
|
$t("loading", "正在同步 Gitee Bug 数据");
|
|
905
|
-
const s = await
|
|
907
|
+
const s = await Ac();
|
|
906
908
|
Ge.value = wn((s == null ? void 0 : s.value) ?? []), Ca(Ge.value), $t("success", "已同步 Gitee Bug 数据");
|
|
907
909
|
return;
|
|
908
910
|
} catch (s) {
|
|
@@ -919,7 +921,7 @@ async function Ds() {
|
|
|
919
921
|
Ge.value = [];
|
|
920
922
|
Oa.value || $t("idle", "当前使用本地 Bug 数据");
|
|
921
923
|
}
|
|
922
|
-
async function
|
|
924
|
+
async function Uc() {
|
|
923
925
|
if (!Xl) {
|
|
924
926
|
Xl = !0;
|
|
925
927
|
try {
|
|
@@ -929,22 +931,22 @@ async function Bc() {
|
|
|
929
931
|
}
|
|
930
932
|
}
|
|
931
933
|
}
|
|
932
|
-
async function
|
|
934
|
+
async function jc(t, n, s) {
|
|
933
935
|
const r = () => {
|
|
934
936
|
Ge.value = wn(s(Ge.value)), Ca(Ge.value);
|
|
935
937
|
};
|
|
936
938
|
if (To.value)
|
|
937
939
|
try {
|
|
938
940
|
$t("loading", "正在提交 Gitee Bug 数据");
|
|
939
|
-
const u = await
|
|
941
|
+
const u = await Nc(t, n, (m) => wn(s(wn(m))));
|
|
940
942
|
return Ge.value = wn(u ?? []), Ca(Ge.value), $t("success", "Bug 数据已提交"), !0;
|
|
941
943
|
} catch (u) {
|
|
942
944
|
return $t("error", u instanceof Error ? u.message : "Bug 数据提交失败"), !1;
|
|
943
945
|
}
|
|
944
946
|
return r(), $t("success", "Bug 数据已保存到本地"), !0;
|
|
945
947
|
}
|
|
946
|
-
const
|
|
947
|
-
function
|
|
948
|
+
const Vc = k(() => Ge.value.filter((t) => _s.includes(t.status)).length);
|
|
949
|
+
function Lc(t) {
|
|
948
950
|
const n = t.reduce((s, r) => {
|
|
949
951
|
const u = /^BUG-(\d+)$/i.exec(r.id.trim());
|
|
950
952
|
return u ? Math.max(s, Number.parseInt(u[1], 10) || 0) : s;
|
|
@@ -959,34 +961,34 @@ function As() {
|
|
|
959
961
|
bugSourceSides: ks,
|
|
960
962
|
bugOwnerRoles: Cs,
|
|
961
963
|
bugStatuses: $s,
|
|
962
|
-
unresolvedBugStatuses:
|
|
963
|
-
unresolvedBugCount:
|
|
964
|
+
unresolvedBugStatuses: _s,
|
|
965
|
+
unresolvedBugCount: Vc,
|
|
964
966
|
bugRemoteReady: To,
|
|
965
|
-
bugSyncStatus:
|
|
967
|
+
bugSyncStatus: Is,
|
|
966
968
|
bugSyncMessage: Oa,
|
|
967
|
-
initializeBugs:
|
|
969
|
+
initializeBugs: Uc,
|
|
968
970
|
refreshBugs: Ds,
|
|
969
|
-
persistBugs:
|
|
970
|
-
nextBugId:
|
|
971
|
+
persistBugs: jc,
|
|
972
|
+
nextBugId: Lc
|
|
971
973
|
};
|
|
972
974
|
}
|
|
973
|
-
const
|
|
975
|
+
const Fc = "x-oss-process=image/resize,w_240/quality,q_75";
|
|
974
976
|
function Ba() {
|
|
975
|
-
var m, g, C,
|
|
976
|
-
const t = Yn().oss ?? {}, n = ((m = t.bucket) == null ? void 0 : m.trim()) ?? "", s = (((g = t.baseUrl) == null ? void 0 : g.trim()) ?? "").replace(/\/$/, ""), r = ((C = t.accessKeyId) == null ? void 0 : C.trim()) ?? "", u = ((
|
|
977
|
+
var m, g, C, I;
|
|
978
|
+
const t = Yn().oss ?? {}, n = ((m = t.bucket) == null ? void 0 : m.trim()) ?? "", s = (((g = t.baseUrl) == null ? void 0 : g.trim()) ?? "").replace(/\/$/, ""), r = ((C = t.accessKeyId) == null ? void 0 : C.trim()) ?? "", u = ((I = t.accessKeySecret) == null ? void 0 : I.trim()) ?? "";
|
|
977
979
|
return !n || !s || !r || !u ? null : { bucket: n, baseUrl: s, accessKeyId: r, accessKeySecret: u };
|
|
978
980
|
}
|
|
979
|
-
function
|
|
981
|
+
function Kc(t) {
|
|
980
982
|
let n = "";
|
|
981
983
|
return new Uint8Array(t).forEach((r) => {
|
|
982
984
|
n += String.fromCharCode(r);
|
|
983
985
|
}), btoa(n);
|
|
984
986
|
}
|
|
985
|
-
async function
|
|
987
|
+
async function zc(t, n) {
|
|
986
988
|
const s = new TextEncoder(), r = await crypto.subtle.importKey("raw", s.encode(n), { name: "HMAC", hash: "SHA-1" }, !1, ["sign"]), u = await crypto.subtle.sign("HMAC", r, s.encode(t));
|
|
987
|
-
return
|
|
989
|
+
return Kc(u);
|
|
988
990
|
}
|
|
989
|
-
function
|
|
991
|
+
function Gc(t, n) {
|
|
990
992
|
const s = new Date(Date.now() + 6e5).toISOString();
|
|
991
993
|
return btoa(
|
|
992
994
|
JSON.stringify({
|
|
@@ -999,20 +1001,20 @@ function Kc(t, n) {
|
|
|
999
1001
|
})
|
|
1000
1002
|
);
|
|
1001
1003
|
}
|
|
1002
|
-
function
|
|
1004
|
+
function Hc() {
|
|
1003
1005
|
return !!Ba();
|
|
1004
1006
|
}
|
|
1005
|
-
function
|
|
1007
|
+
function Wc(t) {
|
|
1006
1008
|
const n = Ba();
|
|
1007
1009
|
return n ? `${n.baseUrl}/${t.split("/").map(encodeURIComponent).join("/")}` : "";
|
|
1008
1010
|
}
|
|
1009
1011
|
function ya(t) {
|
|
1010
|
-
return t ? `${t}${t.includes("?") ? "&" : "?"}${
|
|
1012
|
+
return t ? `${t}${t.includes("?") ? "&" : "?"}${Fc}` : "";
|
|
1011
1013
|
}
|
|
1012
|
-
async function
|
|
1014
|
+
async function Yc(t, n) {
|
|
1013
1015
|
const s = Ba();
|
|
1014
1016
|
if (!s) throw new Error("缺少 OSS 上传配置");
|
|
1015
|
-
const r =
|
|
1017
|
+
const r = Gc(t, n.size), u = await zc(r, s.accessKeySecret), m = new FormData();
|
|
1016
1018
|
m.set("key", t), m.set("policy", r), m.set("OSSAccessKeyId", s.accessKeyId), m.set("signature", u), m.set("success_action_status", "201"), m.set("Content-Type", n.type || "application/octet-stream"), m.set("file", n);
|
|
1017
1019
|
const g = await fetch(s.baseUrl, {
|
|
1018
1020
|
method: "POST",
|
|
@@ -1021,66 +1023,66 @@ async function Hc(t, n) {
|
|
|
1021
1023
|
if (!g.ok) throw new Error(`OSS 图片上传失败:${g.status}`);
|
|
1022
1024
|
return {
|
|
1023
1025
|
objectKey: t,
|
|
1024
|
-
url:
|
|
1026
|
+
url: Wc(t)
|
|
1025
1027
|
};
|
|
1026
1028
|
}
|
|
1027
|
-
const
|
|
1029
|
+
const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabled"], qc = { class: "bug-refresh-main" }, Qc = { class: "bug-stat-grid" }, ed = { class: "bug-stat-card danger" }, td = { class: "bug-stat-card success" }, nd = { class: "bug-stat-card muted" }, od = { class: "bug-workspace" }, ad = { id: "bug-source-side-version-options" }, ld = ["value"], sd = { class: "bug-section-title" }, id = { class: "bug-form-row" }, rd = ["value"], ud = ["value"], cd = ["value"], dd = ["value"], pd = { class: "bug-image-uploader" }, vd = { class: "bug-section-title" }, fd = ["disabled"], md = {
|
|
1028
1030
|
key: 0,
|
|
1029
1031
|
class: "bug-pending-images"
|
|
1030
|
-
},
|
|
1032
|
+
}, gd = ["src", "alt"], bd = { key: 0 }, yd = ["disabled", "onClick"], hd = {
|
|
1031
1033
|
key: 1,
|
|
1032
1034
|
class: "bug-form-error"
|
|
1033
|
-
},
|
|
1035
|
+
}, wd = {
|
|
1034
1036
|
key: 0,
|
|
1035
1037
|
class: "bug-form-error"
|
|
1036
|
-
},
|
|
1038
|
+
}, xd = ["disabled"], Sd = { class: "bug-list-panel" }, kd = { class: "bug-filter-bar" }, Cd = { class: "bug-section-title" }, $d = { class: "bug-filter-grid" }, _d = ["value"], Id = ["value"], Pd = ["value"], Dd = ["value"], Ad = ["value"], Nd = ["value"], Td = { class: "bug-search-field" }, Rd = { class: "bug-list-controls" }, Ed = ["value"], Od = ["value"], Bd = { class: "bug-list" }, Md = {
|
|
1037
1039
|
key: 0,
|
|
1038
1040
|
class: "bug-empty"
|
|
1039
|
-
},
|
|
1041
|
+
}, Ud = { class: "bug-list-main" }, jd = { class: "bug-list-meta" }, Vd = { key: 0 }, Ld = {
|
|
1040
1042
|
key: 0,
|
|
1041
1043
|
class: "bug-list-images"
|
|
1042
|
-
},
|
|
1044
|
+
}, Fd = ["onClick"], Kd = ["src", "alt"], zd = { key: 0 }, Gd = ["onClick"], Hd = {
|
|
1043
1045
|
key: 0,
|
|
1044
1046
|
class: "bug-pagination"
|
|
1045
|
-
},
|
|
1047
|
+
}, Wd = ["disabled"], Yd = ["disabled"], Jd = { class: "bug-detail-panel" }, Xd = { class: "bug-detail-head" }, Zd = { class: "bug-detail-summary" }, qd = { key: 0 }, Qd = { class: "bug-detail-actions" }, ep = { key: 1 }, tp = {
|
|
1046
1048
|
key: 0,
|
|
1047
1049
|
class: "bug-form-error"
|
|
1048
|
-
},
|
|
1050
|
+
}, np = ["disabled"], op = { class: "bug-form-row" }, ap = ["value"], lp = ["value"], sp = ["value"], ip = ["value"], rp = { class: "bug-edit-images" }, up = { class: "bug-section-title" }, cp = ["disabled"], dp = {
|
|
1049
1051
|
key: 0,
|
|
1050
1052
|
class: "bug-edit-existing-images"
|
|
1051
|
-
},
|
|
1053
|
+
}, pp = ["onClick"], vp = ["src", "alt"], fp = ["onClick"], mp = {
|
|
1052
1054
|
key: 1,
|
|
1053
1055
|
class: "bug-pending-images"
|
|
1054
|
-
},
|
|
1056
|
+
}, gp = ["src", "alt"], bp = { key: 0 }, yp = ["disabled", "onClick"], hp = {
|
|
1055
1057
|
key: 2,
|
|
1056
1058
|
class: "bug-image-hint"
|
|
1057
|
-
},
|
|
1059
|
+
}, wp = {
|
|
1058
1060
|
key: 0,
|
|
1059
1061
|
class: "bug-form-error"
|
|
1060
|
-
},
|
|
1062
|
+
}, xp = { class: "bug-edit-actions" }, Sp = ["disabled"], kp = {
|
|
1061
1063
|
key: 2,
|
|
1062
1064
|
class: "bug-detail-description"
|
|
1063
|
-
},
|
|
1065
|
+
}, Cp = { class: "bug-detail-meta" }, $p = {
|
|
1064
1066
|
key: 3,
|
|
1065
1067
|
class: "bug-detail-images"
|
|
1066
|
-
},
|
|
1068
|
+
}, _p = ["onClick"], Ip = ["src", "alt"], Pp = { class: "bug-section-title" }, Dp = ["value"], Ap = { class: "bug-form-row" }, Np = ["placeholder"], Tp = {
|
|
1067
1069
|
key: 0,
|
|
1068
1070
|
class: "bug-form-error"
|
|
1069
|
-
},
|
|
1071
|
+
}, Rp = ["disabled"], Ep = { class: "bug-history" }, Op = {
|
|
1070
1072
|
key: 0,
|
|
1071
1073
|
class: "bug-empty"
|
|
1072
|
-
},
|
|
1074
|
+
}, Bp = { key: 0 }, Mp = { key: 1 }, Up = { class: "bug-image-preview-dialog" }, jp = ["src", "alt"], Zl = "prototype-core-annotation-author", jn = 10, Vp = /* @__PURE__ */ kn({
|
|
1073
1075
|
__name: "BugReportPage",
|
|
1074
1076
|
emits: ["close"],
|
|
1075
1077
|
setup(t, { emit: n }) {
|
|
1076
|
-
var
|
|
1078
|
+
var In, sn;
|
|
1077
1079
|
const s = n, {
|
|
1078
1080
|
bugs: r,
|
|
1079
1081
|
bugTypes: u,
|
|
1080
1082
|
bugSeverities: m,
|
|
1081
1083
|
bugSourceSides: g,
|
|
1082
1084
|
bugOwnerRoles: C,
|
|
1083
|
-
bugStatuses:
|
|
1085
|
+
bugStatuses: I,
|
|
1084
1086
|
unresolvedBugStatuses: M,
|
|
1085
1087
|
unresolvedBugCount: se,
|
|
1086
1088
|
bugRemoteReady: xe,
|
|
@@ -1115,7 +1117,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1115
1117
|
{ value: "updatedAsc", label: "更新时间 旧→新" },
|
|
1116
1118
|
{ value: "severityAsc", label: "等级 P0→P4" },
|
|
1117
1119
|
{ value: "severityDesc", label: "等级 P4→P0" }
|
|
1118
|
-
], ln = [10, 20, 50, 100], pt = ((sn = (
|
|
1120
|
+
], ln = [10, 20, 50, 100], pt = ((sn = (In = Yn().tools) == null ? void 0 : In.bugDeleteCode) == null ? void 0 : sn.trim()) ?? "";
|
|
1119
1121
|
function vt() {
|
|
1120
1122
|
var h;
|
|
1121
1123
|
try {
|
|
@@ -1162,7 +1164,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1162
1164
|
sourceSideVersion: "",
|
|
1163
1165
|
ownerRole: "后端开发",
|
|
1164
1166
|
description: ""
|
|
1165
|
-
}), U = b([]), ot = b(null), ie = b([]), ve = b(""), fe = b(null), Pt =
|
|
1167
|
+
}), U = b([]), ot = b(null), ie = b([]), ve = b(""), fe = b(null), Pt = Hc(), W = k(() => r.value.find((h) => h.id === je.value) ?? null), Dt = k(() => !!(W.value && !["已验证", "无需处理"].includes(W.value.status))), mt = k(() => r.value.filter((h) => h.status === "已修复" || h.status === "已验证").length), gt = k(() => r.value.filter((h) => h.status === "无需处理").length), bt = k(
|
|
1166
1168
|
() => Array.from(new Set(r.value.map((h) => {
|
|
1167
1169
|
var d;
|
|
1168
1170
|
return (d = h.sourceSideVersion) == null ? void 0 : d.trim();
|
|
@@ -1210,7 +1212,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1210
1212
|
status: "ready"
|
|
1211
1213
|
};
|
|
1212
1214
|
}
|
|
1213
|
-
async function
|
|
1215
|
+
async function G(h) {
|
|
1214
1216
|
ve.value = "";
|
|
1215
1217
|
const d = h.filter((L) => L.type.startsWith("image/"));
|
|
1216
1218
|
if (!d.length) return;
|
|
@@ -1229,12 +1231,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1229
1231
|
}
|
|
1230
1232
|
function le(h) {
|
|
1231
1233
|
const d = h.target;
|
|
1232
|
-
|
|
1234
|
+
G(Array.from(d.files ?? [])), d.value = "";
|
|
1233
1235
|
}
|
|
1234
1236
|
function ge(h) {
|
|
1235
1237
|
var O;
|
|
1236
1238
|
const d = Array.from(((O = h.clipboardData) == null ? void 0 : O.items) ?? []).filter((c) => c.kind === "file" && c.type.startsWith("image/")).map((c) => c.getAsFile()).filter((c) => !!c);
|
|
1237
|
-
d.length && (h.preventDefault(),
|
|
1239
|
+
d.length && (h.preventDefault(), G(d));
|
|
1238
1240
|
}
|
|
1239
1241
|
function $(h) {
|
|
1240
1242
|
const d = ie.value.find((O) => O.id === h);
|
|
@@ -1250,7 +1252,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1250
1252
|
for (const c of ie.value) {
|
|
1251
1253
|
c.status = "uploading", c.error = "";
|
|
1252
1254
|
try {
|
|
1253
|
-
const L = await
|
|
1255
|
+
const L = await Yc(R(h, c), c.file);
|
|
1254
1256
|
c.status = "uploaded", O.push({
|
|
1255
1257
|
id: `att-${Date.now()}-${Math.random().toString(16).slice(2)}`,
|
|
1256
1258
|
name: c.name,
|
|
@@ -1327,7 +1329,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1327
1329
|
function Ho() {
|
|
1328
1330
|
De.value = !1, ee.value = "", U.value = [], lt(), ve.value = "", Ee.value = "", ne.value = "", ae.value = !0;
|
|
1329
1331
|
}
|
|
1330
|
-
function
|
|
1332
|
+
function _n() {
|
|
1331
1333
|
Ee.value = "", ne.value = "", ae.value = !1;
|
|
1332
1334
|
}
|
|
1333
1335
|
async function Jt() {
|
|
@@ -1414,8 +1416,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1414
1416
|
}
|
|
1415
1417
|
return (h, d) => {
|
|
1416
1418
|
var O;
|
|
1417
|
-
return v(), f("main",
|
|
1418
|
-
e("header",
|
|
1419
|
+
return v(), f("main", Jc, [
|
|
1420
|
+
e("header", Xc, [
|
|
1419
1421
|
e("div", null, [
|
|
1420
1422
|
e("button", {
|
|
1421
1423
|
class: "bug-back-btn",
|
|
@@ -1432,27 +1434,27 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1432
1434
|
onClick: d[1] || (d[1] = //@ts-ignore
|
|
1433
1435
|
(...c) => l(ke) && l(ke)(...c))
|
|
1434
1436
|
}, [
|
|
1435
|
-
e("span",
|
|
1437
|
+
e("span", qc, [
|
|
1436
1438
|
X(l(Gr), { class: "h-4 w-4" }),
|
|
1437
1439
|
d[39] || (d[39] = e("span", null, "刷新", -1))
|
|
1438
1440
|
]),
|
|
1439
1441
|
e("span", {
|
|
1440
1442
|
class: P(["bug-refresh-status", `is-${l(q)}`])
|
|
1441
1443
|
}, p(l(Se) || "Bug 数据已就绪"), 3)
|
|
1442
|
-
], 8,
|
|
1444
|
+
], 8, Zc)
|
|
1443
1445
|
]),
|
|
1444
|
-
e("section",
|
|
1445
|
-
e("article",
|
|
1446
|
+
e("section", Qc, [
|
|
1447
|
+
e("article", ed, [
|
|
1446
1448
|
X(l(Hr), { class: "h-5 w-5" }),
|
|
1447
1449
|
d[40] || (d[40] = e("span", null, "未修复", -1)),
|
|
1448
1450
|
e("strong", null, p(l(se)), 1)
|
|
1449
1451
|
]),
|
|
1450
|
-
e("article",
|
|
1452
|
+
e("article", td, [
|
|
1451
1453
|
X(l(Wr), { class: "h-5 w-5" }),
|
|
1452
1454
|
d[41] || (d[41] = e("span", null, "已修复/验证", -1)),
|
|
1453
1455
|
e("strong", null, p(mt.value), 1)
|
|
1454
1456
|
]),
|
|
1455
|
-
e("article",
|
|
1457
|
+
e("article", nd, [
|
|
1456
1458
|
X(l(zl), { class: "h-5 w-5" }),
|
|
1457
1459
|
d[42] || (d[42] = e("span", null, "无需处理", -1)),
|
|
1458
1460
|
e("strong", null, p(gt.value), 1)
|
|
@@ -1465,19 +1467,19 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1465
1467
|
e("strong", null, p(l(q) === "loading" ? "同步中" : l(r).length), 1)
|
|
1466
1468
|
], 2)
|
|
1467
1469
|
]),
|
|
1468
|
-
e("section",
|
|
1470
|
+
e("section", od, [
|
|
1469
1471
|
e("form", {
|
|
1470
1472
|
class: "bug-submit-panel",
|
|
1471
1473
|
onSubmit: re(no, ["prevent"]),
|
|
1472
1474
|
onPaste: ge
|
|
1473
1475
|
}, [
|
|
1474
|
-
e("datalist",
|
|
1475
|
-
(v(!0), f(
|
|
1476
|
+
e("datalist", ad, [
|
|
1477
|
+
(v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
|
|
1476
1478
|
key: c,
|
|
1477
1479
|
value: c
|
|
1478
|
-
}, null, 8,
|
|
1480
|
+
}, null, 8, ld))), 128))
|
|
1479
1481
|
]),
|
|
1480
|
-
e("div",
|
|
1482
|
+
e("div", sd, [
|
|
1481
1483
|
X(l(Kn), { class: "h-4 w-4" }),
|
|
1482
1484
|
d[43] || (d[43] = e("span", null, "提报 Bug", -1))
|
|
1483
1485
|
]),
|
|
@@ -1501,18 +1503,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1501
1503
|
[z, J.title]
|
|
1502
1504
|
])
|
|
1503
1505
|
]),
|
|
1504
|
-
e("div",
|
|
1506
|
+
e("div", id, [
|
|
1505
1507
|
e("label", null, [
|
|
1506
1508
|
d[46] || (d[46] = e("span", null, "类型", -1)),
|
|
1507
1509
|
A(e("select", {
|
|
1508
1510
|
"onUpdate:modelValue": d[4] || (d[4] = (c) => J.type = c)
|
|
1509
1511
|
}, [
|
|
1510
|
-
(v(!0), f(
|
|
1512
|
+
(v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
|
|
1511
1513
|
key: c,
|
|
1512
1514
|
value: c
|
|
1513
|
-
}, p(c), 9,
|
|
1515
|
+
}, p(c), 9, rd))), 128))
|
|
1514
1516
|
], 512), [
|
|
1515
|
-
[
|
|
1517
|
+
[_e, J.type]
|
|
1516
1518
|
])
|
|
1517
1519
|
]),
|
|
1518
1520
|
e("label", null, [
|
|
@@ -1520,12 +1522,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1520
1522
|
A(e("select", {
|
|
1521
1523
|
"onUpdate:modelValue": d[5] || (d[5] = (c) => J.severity = c)
|
|
1522
1524
|
}, [
|
|
1523
|
-
(v(!0), f(
|
|
1525
|
+
(v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
|
|
1524
1526
|
key: c,
|
|
1525
1527
|
value: c
|
|
1526
|
-
}, p(c), 9,
|
|
1528
|
+
}, p(c), 9, ud))), 128))
|
|
1527
1529
|
], 512), [
|
|
1528
|
-
[
|
|
1530
|
+
[_e, J.severity]
|
|
1529
1531
|
])
|
|
1530
1532
|
]),
|
|
1531
1533
|
e("label", null, [
|
|
@@ -1533,12 +1535,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1533
1535
|
A(e("select", {
|
|
1534
1536
|
"onUpdate:modelValue": d[6] || (d[6] = (c) => J.sourceSide = c)
|
|
1535
1537
|
}, [
|
|
1536
|
-
(v(!0), f(
|
|
1538
|
+
(v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
|
|
1537
1539
|
key: c,
|
|
1538
1540
|
value: c
|
|
1539
|
-
}, p(c), 9,
|
|
1541
|
+
}, p(c), 9, cd))), 128))
|
|
1540
1542
|
], 512), [
|
|
1541
|
-
[
|
|
1543
|
+
[_e, J.sourceSide]
|
|
1542
1544
|
])
|
|
1543
1545
|
]),
|
|
1544
1546
|
e("label", null, [
|
|
@@ -1557,12 +1559,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1557
1559
|
A(e("select", {
|
|
1558
1560
|
"onUpdate:modelValue": d[8] || (d[8] = (c) => J.ownerRole = c)
|
|
1559
1561
|
}, [
|
|
1560
|
-
(v(!0), f(
|
|
1562
|
+
(v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
|
|
1561
1563
|
key: c,
|
|
1562
1564
|
value: c
|
|
1563
|
-
}, p(c), 9,
|
|
1565
|
+
}, p(c), 9, dd))), 128))
|
|
1564
1566
|
], 512), [
|
|
1565
|
-
[
|
|
1567
|
+
[_e, J.ownerRole]
|
|
1566
1568
|
])
|
|
1567
1569
|
])
|
|
1568
1570
|
]),
|
|
@@ -1575,8 +1577,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1575
1577
|
[z, J.description]
|
|
1576
1578
|
])
|
|
1577
1579
|
]),
|
|
1578
|
-
e("section",
|
|
1579
|
-
e("div",
|
|
1580
|
+
e("section", pd, [
|
|
1581
|
+
e("div", vd, [
|
|
1580
1582
|
X(l(Gl), { class: "h-4 w-4" }),
|
|
1581
1583
|
d[52] || (d[52] = e("span", null, "问题截图", -1))
|
|
1582
1584
|
]),
|
|
@@ -1588,7 +1590,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1588
1590
|
var L;
|
|
1589
1591
|
return (L = ot.value) == null ? void 0 : L.click();
|
|
1590
1592
|
})
|
|
1591
|
-
}, " 选择图片 / 粘贴截图 ", 8,
|
|
1593
|
+
}, " 选择图片 / 粘贴截图 ", 8, fd),
|
|
1592
1594
|
e("input", {
|
|
1593
1595
|
ref_key: "imageInputRef",
|
|
1594
1596
|
ref: ot,
|
|
@@ -1599,24 +1601,24 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1599
1601
|
onChange: le
|
|
1600
1602
|
}, null, 544),
|
|
1601
1603
|
d[53] || (d[53] = e("p", { class: "bug-image-hint" }, "支持 png、jpg、webp;最多 10 张;图片将按原文件直接上传 OSS。", -1)),
|
|
1602
|
-
ie.value.length ? (v(), f("div",
|
|
1603
|
-
(v(!0), f(
|
|
1604
|
+
ie.value.length ? (v(), f("div", md, [
|
|
1605
|
+
(v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
|
|
1604
1606
|
key: c.id,
|
|
1605
1607
|
class: P(`is-${c.status}`)
|
|
1606
1608
|
}, [
|
|
1607
1609
|
e("img", {
|
|
1608
1610
|
src: c.previewUrl,
|
|
1609
1611
|
alt: c.name
|
|
1610
|
-
}, null, 8,
|
|
1612
|
+
}, null, 8, gd),
|
|
1611
1613
|
e("div", null, [
|
|
1612
1614
|
e("b", null, p(c.name), 1),
|
|
1613
1615
|
e("span", null, [
|
|
1614
|
-
|
|
1615
|
-
c.originalSize !== c.size ? (v(), f(
|
|
1616
|
-
|
|
1616
|
+
H(p(x(c.size)), 1),
|
|
1617
|
+
c.originalSize !== c.size ? (v(), f(_, { key: 0 }, [
|
|
1618
|
+
H(" / 原图 " + p(x(c.originalSize)), 1)
|
|
1617
1619
|
], 64)) : w("", !0)
|
|
1618
1620
|
]),
|
|
1619
|
-
c.error ? (v(), f("small",
|
|
1621
|
+
c.error ? (v(), f("small", bd, p(c.error), 1)) : w("", !0)
|
|
1620
1622
|
]),
|
|
1621
1623
|
e("button", {
|
|
1622
1624
|
type: "button",
|
|
@@ -1624,93 +1626,93 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1624
1626
|
onClick: (L) => $(c.id)
|
|
1625
1627
|
}, [
|
|
1626
1628
|
X(l(hn), { class: "h-4 w-4" })
|
|
1627
|
-
], 8,
|
|
1629
|
+
], 8, yd)
|
|
1628
1630
|
], 2))), 128))
|
|
1629
1631
|
])) : w("", !0),
|
|
1630
|
-
ve.value ? (v(), f("p",
|
|
1632
|
+
ve.value ? (v(), f("p", hd, p(ve.value), 1)) : w("", !0)
|
|
1631
1633
|
]),
|
|
1632
|
-
Xe.value ? (v(), f("p",
|
|
1634
|
+
Xe.value ? (v(), f("p", wd, p(Xe.value), 1)) : w("", !0),
|
|
1633
1635
|
e("button", {
|
|
1634
1636
|
class: "bug-primary-btn",
|
|
1635
1637
|
type: "submit",
|
|
1636
1638
|
disabled: l(q) === "loading"
|
|
1637
|
-
}, "提交 Bug", 8,
|
|
1639
|
+
}, "提交 Bug", 8, xd)
|
|
1638
1640
|
], 32),
|
|
1639
|
-
e("section",
|
|
1640
|
-
e("div",
|
|
1641
|
-
e("div",
|
|
1641
|
+
e("section", Sd, [
|
|
1642
|
+
e("div", kd, [
|
|
1643
|
+
e("div", Cd, [
|
|
1642
1644
|
X(l(Jr), { class: "h-4 w-4" }),
|
|
1643
1645
|
d[54] || (d[54] = e("span", null, "筛选", -1))
|
|
1644
1646
|
]),
|
|
1645
|
-
e("div",
|
|
1647
|
+
e("div", $d, [
|
|
1646
1648
|
A(e("select", {
|
|
1647
1649
|
"onUpdate:modelValue": d[11] || (d[11] = (c) => E.status = c)
|
|
1648
1650
|
}, [
|
|
1649
1651
|
d[55] || (d[55] = e("option", { value: "未修复" }, "未修复", -1)),
|
|
1650
1652
|
d[56] || (d[56] = e("option", { value: "全部" }, "全部状态", -1)),
|
|
1651
|
-
(v(!0), f(
|
|
1653
|
+
(v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
|
|
1652
1654
|
key: c,
|
|
1653
1655
|
value: c
|
|
1654
|
-
}, p(c), 9,
|
|
1656
|
+
}, p(c), 9, _d))), 128))
|
|
1655
1657
|
], 512), [
|
|
1656
|
-
[
|
|
1658
|
+
[_e, E.status]
|
|
1657
1659
|
]),
|
|
1658
1660
|
A(e("select", {
|
|
1659
1661
|
"onUpdate:modelValue": d[12] || (d[12] = (c) => E.type = c)
|
|
1660
1662
|
}, [
|
|
1661
1663
|
d[57] || (d[57] = e("option", { value: "全部" }, "全部类型", -1)),
|
|
1662
|
-
(v(!0), f(
|
|
1664
|
+
(v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
|
|
1663
1665
|
key: c,
|
|
1664
1666
|
value: c
|
|
1665
|
-
}, p(c), 9,
|
|
1667
|
+
}, p(c), 9, Id))), 128))
|
|
1666
1668
|
], 512), [
|
|
1667
|
-
[
|
|
1669
|
+
[_e, E.type]
|
|
1668
1670
|
]),
|
|
1669
1671
|
A(e("select", {
|
|
1670
1672
|
"onUpdate:modelValue": d[13] || (d[13] = (c) => E.severity = c)
|
|
1671
1673
|
}, [
|
|
1672
1674
|
d[58] || (d[58] = e("option", { value: "全部" }, "全部等级", -1)),
|
|
1673
|
-
(v(!0), f(
|
|
1675
|
+
(v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
|
|
1674
1676
|
key: c,
|
|
1675
1677
|
value: c
|
|
1676
|
-
}, p(c), 9,
|
|
1678
|
+
}, p(c), 9, Pd))), 128))
|
|
1677
1679
|
], 512), [
|
|
1678
|
-
[
|
|
1680
|
+
[_e, E.severity]
|
|
1679
1681
|
]),
|
|
1680
1682
|
A(e("select", {
|
|
1681
1683
|
"onUpdate:modelValue": d[14] || (d[14] = (c) => E.ownerRole = c)
|
|
1682
1684
|
}, [
|
|
1683
1685
|
d[59] || (d[59] = e("option", { value: "全部" }, "全部归属", -1)),
|
|
1684
|
-
(v(!0), f(
|
|
1686
|
+
(v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
|
|
1685
1687
|
key: c,
|
|
1686
1688
|
value: c
|
|
1687
|
-
}, p(c), 9,
|
|
1689
|
+
}, p(c), 9, Dd))), 128))
|
|
1688
1690
|
], 512), [
|
|
1689
|
-
[
|
|
1691
|
+
[_e, E.ownerRole]
|
|
1690
1692
|
]),
|
|
1691
1693
|
A(e("select", {
|
|
1692
1694
|
"onUpdate:modelValue": d[15] || (d[15] = (c) => E.sourceSide = c)
|
|
1693
1695
|
}, [
|
|
1694
1696
|
d[60] || (d[60] = e("option", { value: "全部" }, "全部发生侧", -1)),
|
|
1695
|
-
(v(!0), f(
|
|
1697
|
+
(v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
|
|
1696
1698
|
key: c,
|
|
1697
1699
|
value: c
|
|
1698
|
-
}, p(c), 9,
|
|
1700
|
+
}, p(c), 9, Ad))), 128))
|
|
1699
1701
|
], 512), [
|
|
1700
|
-
[
|
|
1702
|
+
[_e, E.sourceSide]
|
|
1701
1703
|
]),
|
|
1702
1704
|
A(e("select", {
|
|
1703
1705
|
"onUpdate:modelValue": d[16] || (d[16] = (c) => E.sourceSideVersion = c)
|
|
1704
1706
|
}, [
|
|
1705
1707
|
d[61] || (d[61] = e("option", { value: "全部" }, "全部发生侧版本", -1)),
|
|
1706
|
-
(v(!0), f(
|
|
1708
|
+
(v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
|
|
1707
1709
|
key: c,
|
|
1708
1710
|
value: c
|
|
1709
|
-
}, p(c), 9,
|
|
1711
|
+
}, p(c), 9, Nd))), 128))
|
|
1710
1712
|
], 512), [
|
|
1711
|
-
[
|
|
1713
|
+
[_e, E.sourceSideVersion]
|
|
1712
1714
|
]),
|
|
1713
|
-
e("label",
|
|
1715
|
+
e("label", Td, [
|
|
1714
1716
|
X(l(Xr), { class: "h-4 w-4" }),
|
|
1715
1717
|
A(e("input", {
|
|
1716
1718
|
"onUpdate:modelValue": d[17] || (d[17] = (c) => E.keyword = c),
|
|
@@ -1721,18 +1723,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1721
1723
|
])
|
|
1722
1724
|
])
|
|
1723
1725
|
]),
|
|
1724
|
-
e("div",
|
|
1726
|
+
e("div", Rd, [
|
|
1725
1727
|
e("label", null, [
|
|
1726
1728
|
d[62] || (d[62] = e("span", null, "排序", -1)),
|
|
1727
1729
|
A(e("select", {
|
|
1728
1730
|
"onUpdate:modelValue": d[18] || (d[18] = (c) => Ve.value = c)
|
|
1729
1731
|
}, [
|
|
1730
|
-
(v(), f(
|
|
1732
|
+
(v(), f(_, null, N(dt, (c) => e("option", {
|
|
1731
1733
|
key: c.value,
|
|
1732
1734
|
value: c.value
|
|
1733
|
-
}, p(c.label), 9,
|
|
1735
|
+
}, p(c.label), 9, Ed)), 64))
|
|
1734
1736
|
], 512), [
|
|
1735
|
-
[
|
|
1737
|
+
[_e, Ve.value]
|
|
1736
1738
|
])
|
|
1737
1739
|
]),
|
|
1738
1740
|
e("label", null, [
|
|
@@ -1740,13 +1742,13 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1740
1742
|
A(e("select", {
|
|
1741
1743
|
"onUpdate:modelValue": d[19] || (d[19] = (c) => ce.value = c)
|
|
1742
1744
|
}, [
|
|
1743
|
-
(v(), f(
|
|
1745
|
+
(v(), f(_, null, N(ln, (c) => e("option", {
|
|
1744
1746
|
key: c,
|
|
1745
1747
|
value: c
|
|
1746
|
-
}, p(c) + " 条", 9,
|
|
1748
|
+
}, p(c) + " 条", 9, Od)), 64))
|
|
1747
1749
|
], 512), [
|
|
1748
1750
|
[
|
|
1749
|
-
|
|
1751
|
+
_e,
|
|
1750
1752
|
ce.value,
|
|
1751
1753
|
void 0,
|
|
1752
1754
|
{ number: !0 }
|
|
@@ -1755,23 +1757,23 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1755
1757
|
])
|
|
1756
1758
|
])
|
|
1757
1759
|
]),
|
|
1758
|
-
e("div",
|
|
1759
|
-
at.value.length ? w("", !0) : (v(), f("p",
|
|
1760
|
-
(v(!0), f(
|
|
1760
|
+
e("div", Bd, [
|
|
1761
|
+
at.value.length ? w("", !0) : (v(), f("p", Md, "当前筛选条件下暂无 Bug。")),
|
|
1762
|
+
(v(!0), f(_, null, N(Ze.value, (c) => {
|
|
1761
1763
|
var L;
|
|
1762
1764
|
return v(), f("article", {
|
|
1763
1765
|
key: c.id,
|
|
1764
1766
|
class: P(["bug-list-item", `is-${Ce[c.status]}`])
|
|
1765
1767
|
}, [
|
|
1766
|
-
e("div",
|
|
1767
|
-
e("div",
|
|
1768
|
+
e("div", Ud, [
|
|
1769
|
+
e("div", jd, [
|
|
1768
1770
|
e("b", null, "#" + p(c.id), 1),
|
|
1769
1771
|
e("span", null, p(c.type), 1),
|
|
1770
1772
|
e("span", {
|
|
1771
1773
|
class: P(`severity-${Ne[c.severity]}`)
|
|
1772
1774
|
}, p(c.severity), 3),
|
|
1773
1775
|
e("span", null, "发生侧:" + p(c.sourceSide), 1),
|
|
1774
|
-
c.sourceSideVersion ? (v(), f("span",
|
|
1776
|
+
c.sourceSideVersion ? (v(), f("span", Vd, "版本:" + p(c.sourceSideVersion), 1)) : w("", !0),
|
|
1775
1777
|
e("span", null, "归属:" + p(c.ownerRole), 1),
|
|
1776
1778
|
e("i", {
|
|
1777
1779
|
class: P(`status-${Ce[c.status]}`)
|
|
@@ -1779,8 +1781,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1779
1781
|
]),
|
|
1780
1782
|
e("h2", null, p(c.title), 1),
|
|
1781
1783
|
e("p", null, p(c.description), 1),
|
|
1782
|
-
(L = c.attachments) != null && L.length ? (v(), f("div",
|
|
1783
|
-
(v(!0), f(
|
|
1784
|
+
(L = c.attachments) != null && L.length ? (v(), f("div", Ld, [
|
|
1785
|
+
(v(!0), f(_, null, N(c.attachments.slice(0, 3), (be) => (v(), f("button", {
|
|
1784
1786
|
key: be.id,
|
|
1785
1787
|
type: "button",
|
|
1786
1788
|
onClick: (yt) => fe.value = be
|
|
@@ -1789,38 +1791,38 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1789
1791
|
src: l(ya)(be.url),
|
|
1790
1792
|
alt: be.name,
|
|
1791
1793
|
loading: "lazy"
|
|
1792
|
-
}, null, 8,
|
|
1793
|
-
], 8,
|
|
1794
|
-
c.attachments.length > 3 ? (v(), f("span",
|
|
1794
|
+
}, null, 8, Kd)
|
|
1795
|
+
], 8, Fd))), 128)),
|
|
1796
|
+
c.attachments.length > 3 ? (v(), f("span", zd, "+" + p(c.attachments.length - 3), 1)) : w("", !0)
|
|
1795
1797
|
])) : w("", !0),
|
|
1796
1798
|
e("small", null, [
|
|
1797
|
-
|
|
1798
|
-
c.fixerName ? (v(), f(
|
|
1799
|
-
|
|
1799
|
+
H("提报人:" + p(c.reporterName) + " · " + p(Ht(c.createdAt)), 1),
|
|
1800
|
+
c.fixerName ? (v(), f(_, { key: 0 }, [
|
|
1801
|
+
H(" · 修复人:" + p(c.fixerName), 1)
|
|
1800
1802
|
], 64)) : w("", !0)
|
|
1801
1803
|
])
|
|
1802
1804
|
]),
|
|
1803
1805
|
e("button", {
|
|
1804
1806
|
type: "button",
|
|
1805
1807
|
onClick: (be) => oo(c)
|
|
1806
|
-
}, "查看/变更状态", 8,
|
|
1808
|
+
}, "查看/变更状态", 8, Gd)
|
|
1807
1809
|
], 2);
|
|
1808
1810
|
}), 128))
|
|
1809
1811
|
]),
|
|
1810
|
-
at.value.length ? (v(), f("div",
|
|
1812
|
+
at.value.length ? (v(), f("div", Hd, [
|
|
1811
1813
|
e("span", null, "第 " + p(At.value) + "-" + p(Cn.value) + " 条,共 " + p(Fe.value.length) + " 条", 1),
|
|
1812
1814
|
e("div", null, [
|
|
1813
1815
|
e("button", {
|
|
1814
1816
|
type: "button",
|
|
1815
1817
|
disabled: oe.value <= 1,
|
|
1816
1818
|
onClick: d[20] || (d[20] = (c) => oe.value -= 1)
|
|
1817
|
-
}, "上一页", 8,
|
|
1819
|
+
}, "上一页", 8, Wd),
|
|
1818
1820
|
e("strong", null, p(oe.value) + " / " + p(Ye.value), 1),
|
|
1819
1821
|
e("button", {
|
|
1820
1822
|
type: "button",
|
|
1821
1823
|
disabled: oe.value >= Ye.value,
|
|
1822
1824
|
onClick: d[21] || (d[21] = (c) => oe.value += 1)
|
|
1823
|
-
}, "下一页", 8,
|
|
1825
|
+
}, "下一页", 8, Yd)
|
|
1824
1826
|
])
|
|
1825
1827
|
])) : w("", !0)
|
|
1826
1828
|
])
|
|
@@ -1830,8 +1832,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1830
1832
|
class: "bug-detail-backdrop",
|
|
1831
1833
|
onClick: re(Yt, ["self"])
|
|
1832
1834
|
}, [
|
|
1833
|
-
e("aside",
|
|
1834
|
-
e("div",
|
|
1835
|
+
e("aside", Jd, [
|
|
1836
|
+
e("div", Xd, [
|
|
1835
1837
|
e("div", null, [
|
|
1836
1838
|
e("span", null, "#" + p(W.value.id), 1),
|
|
1837
1839
|
e("h2", null, p(W.value.title), 1)
|
|
@@ -1844,26 +1846,26 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1844
1846
|
X(l(Ao), { class: "h-5 w-5" })
|
|
1845
1847
|
])
|
|
1846
1848
|
]),
|
|
1847
|
-
e("div",
|
|
1849
|
+
e("div", Zd, [
|
|
1848
1850
|
e("span", null, p(W.value.type), 1),
|
|
1849
1851
|
e("span", {
|
|
1850
1852
|
class: P(`severity-${Ne[W.value.severity]}`)
|
|
1851
1853
|
}, p(W.value.severity), 3),
|
|
1852
1854
|
e("span", null, "发生侧:" + p(W.value.sourceSide), 1),
|
|
1853
|
-
W.value.sourceSideVersion ? (v(), f("span",
|
|
1855
|
+
W.value.sourceSideVersion ? (v(), f("span", qd, "版本:" + p(W.value.sourceSideVersion), 1)) : w("", !0),
|
|
1854
1856
|
e("span", null, "归属:" + p(W.value.ownerRole), 1),
|
|
1855
1857
|
e("span", {
|
|
1856
1858
|
class: P(`status-${Ce[W.value.status]}`)
|
|
1857
1859
|
}, p(W.value.status), 3)
|
|
1858
1860
|
]),
|
|
1859
|
-
e("div",
|
|
1861
|
+
e("div", Qd, [
|
|
1860
1862
|
e("div", null, [
|
|
1861
1863
|
Dt.value && !De.value ? (v(), f("button", {
|
|
1862
1864
|
key: 0,
|
|
1863
1865
|
class: "bug-edit-entry-btn",
|
|
1864
1866
|
type: "button",
|
|
1865
1867
|
onClick: ao
|
|
1866
|
-
}, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span",
|
|
1868
|
+
}, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span", ep, "已完结 Bug 不支持编辑"))
|
|
1867
1869
|
]),
|
|
1868
1870
|
De.value ? w("", !0) : (v(), f("button", {
|
|
1869
1871
|
key: 0,
|
|
@@ -1872,7 +1874,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1872
1874
|
onClick: Ho
|
|
1873
1875
|
}, [
|
|
1874
1876
|
X(l(hn), { class: "h-4 w-4" }),
|
|
1875
|
-
d[64] || (d[64] =
|
|
1877
|
+
d[64] || (d[64] = H(" 删除 Bug ", -1))
|
|
1876
1878
|
]))
|
|
1877
1879
|
]),
|
|
1878
1880
|
ae.value ? (v(), f("form", {
|
|
@@ -1895,16 +1897,16 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1895
1897
|
[z, ne.value]
|
|
1896
1898
|
])
|
|
1897
1899
|
]),
|
|
1898
|
-
Ee.value ? (v(), f("p",
|
|
1900
|
+
Ee.value ? (v(), f("p", tp, p(Ee.value), 1)) : w("", !0),
|
|
1899
1901
|
e("div", null, [
|
|
1900
1902
|
e("button", {
|
|
1901
1903
|
type: "button",
|
|
1902
|
-
onClick:
|
|
1904
|
+
onClick: _n
|
|
1903
1905
|
}, "取消"),
|
|
1904
1906
|
e("button", {
|
|
1905
1907
|
type: "submit",
|
|
1906
1908
|
disabled: l(q) === "loading"
|
|
1907
|
-
}, "确认删除", 8,
|
|
1909
|
+
}, "确认删除", 8, np)
|
|
1908
1910
|
])
|
|
1909
1911
|
], 32)) : w("", !0),
|
|
1910
1912
|
De.value ? (v(), f("form", {
|
|
@@ -1922,18 +1924,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1922
1924
|
[z, V.title]
|
|
1923
1925
|
])
|
|
1924
1926
|
]),
|
|
1925
|
-
e("div",
|
|
1927
|
+
e("div", op, [
|
|
1926
1928
|
e("label", null, [
|
|
1927
1929
|
d[68] || (d[68] = e("span", null, "类型", -1)),
|
|
1928
1930
|
A(e("select", {
|
|
1929
1931
|
"onUpdate:modelValue": d[24] || (d[24] = (c) => V.type = c)
|
|
1930
1932
|
}, [
|
|
1931
|
-
(v(!0), f(
|
|
1933
|
+
(v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
|
|
1932
1934
|
key: c,
|
|
1933
1935
|
value: c
|
|
1934
|
-
}, p(c), 9,
|
|
1936
|
+
}, p(c), 9, ap))), 128))
|
|
1935
1937
|
], 512), [
|
|
1936
|
-
[
|
|
1938
|
+
[_e, V.type]
|
|
1937
1939
|
])
|
|
1938
1940
|
]),
|
|
1939
1941
|
e("label", null, [
|
|
@@ -1941,12 +1943,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1941
1943
|
A(e("select", {
|
|
1942
1944
|
"onUpdate:modelValue": d[25] || (d[25] = (c) => V.severity = c)
|
|
1943
1945
|
}, [
|
|
1944
|
-
(v(!0), f(
|
|
1946
|
+
(v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
|
|
1945
1947
|
key: c,
|
|
1946
1948
|
value: c
|
|
1947
|
-
}, p(c), 9,
|
|
1949
|
+
}, p(c), 9, lp))), 128))
|
|
1948
1950
|
], 512), [
|
|
1949
|
-
[
|
|
1951
|
+
[_e, V.severity]
|
|
1950
1952
|
])
|
|
1951
1953
|
]),
|
|
1952
1954
|
e("label", null, [
|
|
@@ -1954,12 +1956,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1954
1956
|
A(e("select", {
|
|
1955
1957
|
"onUpdate:modelValue": d[26] || (d[26] = (c) => V.sourceSide = c)
|
|
1956
1958
|
}, [
|
|
1957
|
-
(v(!0), f(
|
|
1959
|
+
(v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
|
|
1958
1960
|
key: c,
|
|
1959
1961
|
value: c
|
|
1960
|
-
}, p(c), 9,
|
|
1962
|
+
}, p(c), 9, sp))), 128))
|
|
1961
1963
|
], 512), [
|
|
1962
|
-
[
|
|
1964
|
+
[_e, V.sourceSide]
|
|
1963
1965
|
])
|
|
1964
1966
|
]),
|
|
1965
1967
|
e("label", null, [
|
|
@@ -1978,12 +1980,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1978
1980
|
A(e("select", {
|
|
1979
1981
|
"onUpdate:modelValue": d[28] || (d[28] = (c) => V.ownerRole = c)
|
|
1980
1982
|
}, [
|
|
1981
|
-
(v(!0), f(
|
|
1983
|
+
(v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
|
|
1982
1984
|
key: c,
|
|
1983
1985
|
value: c
|
|
1984
|
-
}, p(c), 9,
|
|
1986
|
+
}, p(c), 9, ip))), 128))
|
|
1985
1987
|
], 512), [
|
|
1986
|
-
[
|
|
1988
|
+
[_e, V.ownerRole]
|
|
1987
1989
|
])
|
|
1988
1990
|
])
|
|
1989
1991
|
]),
|
|
@@ -1995,8 +1997,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
1995
1997
|
[z, V.description]
|
|
1996
1998
|
])
|
|
1997
1999
|
]),
|
|
1998
|
-
e("section",
|
|
1999
|
-
e("div",
|
|
2000
|
+
e("section", rp, [
|
|
2001
|
+
e("div", up, [
|
|
2000
2002
|
X(l(Gl), { class: "h-4 w-4" }),
|
|
2001
2003
|
d[74] || (d[74] = e("span", null, "问题截图", -1))
|
|
2002
2004
|
]),
|
|
@@ -2008,9 +2010,9 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2008
2010
|
var L;
|
|
2009
2011
|
return (L = ot.value) == null ? void 0 : L.click();
|
|
2010
2012
|
})
|
|
2011
|
-
}, " 添加图片 / 粘贴截图 ", 8,
|
|
2012
|
-
U.value.length ? (v(), f("div",
|
|
2013
|
-
(v(!0), f(
|
|
2013
|
+
}, " 添加图片 / 粘贴截图 ", 8, cp),
|
|
2014
|
+
U.value.length ? (v(), f("div", dp, [
|
|
2015
|
+
(v(!0), f(_, null, N(U.value, (c) => (v(), f("article", {
|
|
2014
2016
|
key: c.id
|
|
2015
2017
|
}, [
|
|
2016
2018
|
e("button", {
|
|
@@ -2022,8 +2024,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2022
2024
|
src: l(ya)(c.url),
|
|
2023
2025
|
alt: c.name,
|
|
2024
2026
|
loading: "lazy"
|
|
2025
|
-
}, null, 8,
|
|
2026
|
-
], 8,
|
|
2027
|
+
}, null, 8, vp)
|
|
2028
|
+
], 8, pp),
|
|
2027
2029
|
e("div", null, [
|
|
2028
2030
|
e("b", null, p(c.name), 1),
|
|
2029
2031
|
e("span", null, p(x(c.size)), 1)
|
|
@@ -2034,22 +2036,22 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2034
2036
|
onClick: (L) => $n(c.id)
|
|
2035
2037
|
}, [
|
|
2036
2038
|
X(l(hn), { class: "h-4 w-4" })
|
|
2037
|
-
], 8,
|
|
2039
|
+
], 8, fp)
|
|
2038
2040
|
]))), 128))
|
|
2039
2041
|
])) : w("", !0),
|
|
2040
|
-
ie.value.length ? (v(), f("div",
|
|
2041
|
-
(v(!0), f(
|
|
2042
|
+
ie.value.length ? (v(), f("div", mp, [
|
|
2043
|
+
(v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
|
|
2042
2044
|
key: c.id,
|
|
2043
2045
|
class: P(`is-${c.status}`)
|
|
2044
2046
|
}, [
|
|
2045
2047
|
e("img", {
|
|
2046
2048
|
src: c.previewUrl,
|
|
2047
2049
|
alt: c.name
|
|
2048
|
-
}, null, 8,
|
|
2050
|
+
}, null, 8, gp),
|
|
2049
2051
|
e("div", null, [
|
|
2050
2052
|
e("b", null, p(c.name), 1),
|
|
2051
2053
|
e("span", null, p(x(c.size)), 1),
|
|
2052
|
-
c.error ? (v(), f("small",
|
|
2054
|
+
c.error ? (v(), f("small", bp, p(c.error), 1)) : w("", !0)
|
|
2053
2055
|
]),
|
|
2054
2056
|
e("button", {
|
|
2055
2057
|
type: "button",
|
|
@@ -2057,13 +2059,13 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2057
2059
|
onClick: (L) => $(c.id)
|
|
2058
2060
|
}, [
|
|
2059
2061
|
X(l(hn), { class: "h-4 w-4" })
|
|
2060
|
-
], 8,
|
|
2062
|
+
], 8, yp)
|
|
2061
2063
|
], 2))), 128))
|
|
2062
2064
|
])) : w("", !0),
|
|
2063
|
-
ve.value ? (v(), f("p",
|
|
2065
|
+
ve.value ? (v(), f("p", hp, p(ve.value), 1)) : w("", !0)
|
|
2064
2066
|
]),
|
|
2065
|
-
ee.value ? (v(), f("p",
|
|
2066
|
-
e("div",
|
|
2067
|
+
ee.value ? (v(), f("p", wp, p(ee.value), 1)) : w("", !0),
|
|
2068
|
+
e("div", xp, [
|
|
2067
2069
|
e("button", {
|
|
2068
2070
|
type: "button",
|
|
2069
2071
|
onClick: Go
|
|
@@ -2071,14 +2073,14 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2071
2073
|
e("button", {
|
|
2072
2074
|
type: "submit",
|
|
2073
2075
|
disabled: l(q) === "loading"
|
|
2074
|
-
}, "保存修改", 8,
|
|
2076
|
+
}, "保存修改", 8, Sp)
|
|
2075
2077
|
])
|
|
2076
|
-
], 32)) : (v(), f("p",
|
|
2077
|
-
e("p",
|
|
2078
|
-
!De.value && ((O = W.value.attachments) != null && O.length) ? (v(), f("section",
|
|
2078
|
+
], 32)) : (v(), f("p", kp, p(W.value.description), 1)),
|
|
2079
|
+
e("p", Cp, "提报人:" + p(W.value.reporterName) + " · " + p(Ht(W.value.createdAt)), 1),
|
|
2080
|
+
!De.value && ((O = W.value.attachments) != null && O.length) ? (v(), f("section", $p, [
|
|
2079
2081
|
d[75] || (d[75] = e("h3", null, "问题截图", -1)),
|
|
2080
2082
|
e("div", null, [
|
|
2081
|
-
(v(!0), f(
|
|
2083
|
+
(v(!0), f(_, null, N(W.value.attachments, (c) => (v(), f("button", {
|
|
2082
2084
|
key: c.id,
|
|
2083
2085
|
type: "button",
|
|
2084
2086
|
onClick: (L) => fe.value = c
|
|
@@ -2087,16 +2089,16 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2087
2089
|
src: l(ya)(c.url),
|
|
2088
2090
|
alt: c.name,
|
|
2089
2091
|
loading: "lazy"
|
|
2090
|
-
}, null, 8,
|
|
2092
|
+
}, null, 8, Ip),
|
|
2091
2093
|
e("span", null, p(c.name), 1)
|
|
2092
|
-
], 8,
|
|
2094
|
+
], 8, _p))), 128))
|
|
2093
2095
|
])
|
|
2094
2096
|
])) : w("", !0),
|
|
2095
2097
|
e("form", {
|
|
2096
2098
|
class: "bug-status-form",
|
|
2097
2099
|
onSubmit: re(lo, ["prevent"])
|
|
2098
2100
|
}, [
|
|
2099
|
-
e("div",
|
|
2101
|
+
e("div", Pp, [
|
|
2100
2102
|
X(l(zl), { class: "h-4 w-4" }),
|
|
2101
2103
|
d[76] || (d[76] = e("span", null, "状态变更", -1))
|
|
2102
2104
|
]),
|
|
@@ -2105,15 +2107,15 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2105
2107
|
A(e("select", {
|
|
2106
2108
|
"onUpdate:modelValue": d[31] || (d[31] = (c) => Z.status = c)
|
|
2107
2109
|
}, [
|
|
2108
|
-
(v(!0), f(
|
|
2110
|
+
(v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
|
|
2109
2111
|
key: c,
|
|
2110
2112
|
value: c
|
|
2111
|
-
}, p(c), 9,
|
|
2113
|
+
}, p(c), 9, Dp))), 128))
|
|
2112
2114
|
], 512), [
|
|
2113
|
-
[
|
|
2115
|
+
[_e, Z.status]
|
|
2114
2116
|
])
|
|
2115
2117
|
]),
|
|
2116
|
-
e("div",
|
|
2118
|
+
e("div", Ap, [
|
|
2117
2119
|
e("label", null, [
|
|
2118
2120
|
d[78] || (d[78] = e("span", null, "操作人姓名", -1)),
|
|
2119
2121
|
A(e("input", {
|
|
@@ -2130,7 +2132,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2130
2132
|
"onUpdate:modelValue": d[33] || (d[33] = (c) => Z.fixerName = c),
|
|
2131
2133
|
type: "text",
|
|
2132
2134
|
placeholder: Z.status === "已修复" ? "已修复时必填" : "选填"
|
|
2133
|
-
}, null, 8,
|
|
2135
|
+
}, null, 8, Np), [
|
|
2134
2136
|
[z, Z.fixerName]
|
|
2135
2137
|
])
|
|
2136
2138
|
])
|
|
@@ -2144,23 +2146,23 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2144
2146
|
[z, Z.note]
|
|
2145
2147
|
])
|
|
2146
2148
|
]),
|
|
2147
|
-
Le.value ? (v(), f("p",
|
|
2149
|
+
Le.value ? (v(), f("p", Tp, p(Le.value), 1)) : w("", !0),
|
|
2148
2150
|
e("button", {
|
|
2149
2151
|
class: "bug-primary-btn",
|
|
2150
2152
|
type: "submit",
|
|
2151
2153
|
disabled: l(q) === "loading"
|
|
2152
|
-
}, "提交状态变更", 8,
|
|
2154
|
+
}, "提交状态变更", 8, Rp)
|
|
2153
2155
|
], 32),
|
|
2154
|
-
e("section",
|
|
2156
|
+
e("section", Ep, [
|
|
2155
2157
|
d[81] || (d[81] = e("h3", null, "处理记录", -1)),
|
|
2156
|
-
W.value.history.length ? w("", !0) : (v(), f("p",
|
|
2157
|
-
(v(!0), f(
|
|
2158
|
+
W.value.history.length ? w("", !0) : (v(), f("p", Op, "暂无状态变更记录。")),
|
|
2159
|
+
(v(!0), f(_, null, N(W.value.history, (c) => (v(), f("article", {
|
|
2158
2160
|
key: c.id
|
|
2159
2161
|
}, [
|
|
2160
2162
|
e("b", null, p(c.fromStatus) + " → " + p(c.toStatus), 1),
|
|
2161
2163
|
e("span", null, p(c.operatorName) + " · " + p(Ht(c.createdAt)), 1),
|
|
2162
|
-
c.fixerName ? (v(), f("p",
|
|
2163
|
-
c.note ? (v(), f("p",
|
|
2164
|
+
c.fixerName ? (v(), f("p", Bp, "修复人:" + p(c.fixerName), 1)) : w("", !0),
|
|
2165
|
+
c.note ? (v(), f("p", Mp, p(c.note), 1)) : w("", !0)
|
|
2164
2166
|
]))), 128))
|
|
2165
2167
|
])
|
|
2166
2168
|
])
|
|
@@ -2170,7 +2172,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2170
2172
|
class: "bug-image-preview-backdrop",
|
|
2171
2173
|
onClick: d[36] || (d[36] = re((c) => fe.value = null, ["self"]))
|
|
2172
2174
|
}, [
|
|
2173
|
-
e("section",
|
|
2175
|
+
e("section", Up, [
|
|
2174
2176
|
e("div", null, [
|
|
2175
2177
|
e("p", null, p(fe.value.name), 1),
|
|
2176
2178
|
e("button", {
|
|
@@ -2184,7 +2186,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
|
|
|
2184
2186
|
e("img", {
|
|
2185
2187
|
src: fe.value.url,
|
|
2186
2188
|
alt: fe.value.name
|
|
2187
|
-
}, null, 8,
|
|
2189
|
+
}, null, 8, jp)
|
|
2188
2190
|
])
|
|
2189
2191
|
])) : w("", !0)
|
|
2190
2192
|
]);
|
|
@@ -2200,20 +2202,20 @@ const Ts = ye().remoteReadable;
|
|
|
2200
2202
|
function Rs(t) {
|
|
2201
2203
|
return t.split("/").map(encodeURIComponent).join("/");
|
|
2202
2204
|
}
|
|
2203
|
-
function
|
|
2205
|
+
function Lp(t) {
|
|
2204
2206
|
return btoa(unescape(encodeURIComponent(t)));
|
|
2205
2207
|
}
|
|
2206
|
-
function
|
|
2208
|
+
function Fp(t) {
|
|
2207
2209
|
return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
|
|
2208
2210
|
}
|
|
2209
|
-
function
|
|
2211
|
+
function Kp(t) {
|
|
2210
2212
|
return t === "pageDescriptions" ? "page-descriptions" : t;
|
|
2211
2213
|
}
|
|
2212
2214
|
function jt(t, n) {
|
|
2213
2215
|
const s = ye(), r = `projects/${s.projectId}/branches/${s.branchKey}`;
|
|
2214
|
-
return t === "flows" ? `${r}/flows.json` : `${r}/${
|
|
2216
|
+
return t === "flows" ? `${r}/flows.json` : `${r}/${Kp(t)}/${n ?? "manifest"}.json`;
|
|
2215
2217
|
}
|
|
2216
|
-
function
|
|
2218
|
+
function zp(t, n) {
|
|
2217
2219
|
const s = ye();
|
|
2218
2220
|
return t === "flows" ? null : t === "annotations" && !n ? `projects/${s.projectId}/manifest.json` : t === "annotations" ? `projects/${s.projectId}/annotations/${n}.json` : n ? `projects/${s.projectId}/page-descriptions/${n}.json` : `projects/${s.projectId}/page-descriptions/manifest.json`;
|
|
2219
2221
|
}
|
|
@@ -2235,7 +2237,7 @@ async function Vt(t) {
|
|
|
2235
2237
|
if (u.status === 404) return null;
|
|
2236
2238
|
if (!u.ok) throw new Error(`读取 Gitee 文件失败:${u.status}`);
|
|
2237
2239
|
const m = await u.json(), g = ds(m, t);
|
|
2238
|
-
if (g) return { value: JSON.parse(
|
|
2240
|
+
if (g) return { value: JSON.parse(Fp(g.content)), sha: g.sha, legacy: !1 };
|
|
2239
2241
|
if (Array.isArray(m)) return null;
|
|
2240
2242
|
const C = m && typeof m == "object" ? Object.keys(m).join(",") || "empty" : typeof m;
|
|
2241
2243
|
throw new Error(`Gitee 文件响应格式异常:${u.status} / ${C}`);
|
|
@@ -2246,7 +2248,7 @@ async function Lt(t, n) {
|
|
|
2246
2248
|
const s = await Vt(jt(t, n));
|
|
2247
2249
|
if (s) return s;
|
|
2248
2250
|
if (ye().codeBranch !== "main") return null;
|
|
2249
|
-
const u =
|
|
2251
|
+
const u = zp(t, n);
|
|
2250
2252
|
if (!u) return null;
|
|
2251
2253
|
const m = await Vt(u);
|
|
2252
2254
|
return m ? { ...m, legacy: !0 } : null;
|
|
@@ -2255,7 +2257,7 @@ async function Zn(t, n, s, r) {
|
|
|
2255
2257
|
const u = ye();
|
|
2256
2258
|
if (!u.remoteWritable) return;
|
|
2257
2259
|
const m = `${Ns}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${Rs(t)}`, g = new URLSearchParams();
|
|
2258
|
-
g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content",
|
|
2260
|
+
g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", Lp(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
|
|
2259
2261
|
const C = await fetch(m, {
|
|
2260
2262
|
method: s ? "PUT" : "POST",
|
|
2261
2263
|
headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
|
|
@@ -2281,10 +2283,10 @@ function Vn(t, n, s, r) {
|
|
|
2281
2283
|
return g ? cs(g.value, s) : (await Zn(m, s, null, qn(n ?? "all", r, "初始化", t)), "created");
|
|
2282
2284
|
});
|
|
2283
2285
|
}
|
|
2284
|
-
async function
|
|
2286
|
+
async function Gp() {
|
|
2285
2287
|
return !!await Vt(Es());
|
|
2286
2288
|
}
|
|
2287
|
-
function
|
|
2289
|
+
function Hp(t, n) {
|
|
2288
2290
|
return Jn("initialization:marker", async () => {
|
|
2289
2291
|
const s = Es(), r = await Vt(s);
|
|
2290
2292
|
return r ? cs(r.value, t) : (await Zn(s, t, null, qn("all", n, "初始化完成", "flows")), "created");
|
|
@@ -2294,7 +2296,7 @@ async function Bs(t, n, s, r) {
|
|
|
2294
2296
|
return Jn(`${t}:manifest`, async () => {
|
|
2295
2297
|
var u, m;
|
|
2296
2298
|
for (let g = 0; g < 2; g += 1) {
|
|
2297
|
-
const C = await Vt(jt(t)),
|
|
2299
|
+
const C = await Vt(jt(t)), I = !C && ye().codeBranch === "main" ? await Lt(t) : null, M = (u = C ?? I) == null ? void 0 : u.value, se = r.split("__")[0], xe = {
|
|
2298
2300
|
...M ?? n,
|
|
2299
2301
|
projectId: n.projectId,
|
|
2300
2302
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -2310,50 +2312,50 @@ async function Bs(t, n, s, r) {
|
|
|
2310
2312
|
return null;
|
|
2311
2313
|
});
|
|
2312
2314
|
}
|
|
2313
|
-
function
|
|
2315
|
+
function Wp() {
|
|
2314
2316
|
return Lt("annotations");
|
|
2315
2317
|
}
|
|
2316
2318
|
function $a(t) {
|
|
2317
2319
|
return Lt("annotations", t);
|
|
2318
2320
|
}
|
|
2319
|
-
async function
|
|
2321
|
+
async function Yp(t, n, s, r) {
|
|
2320
2322
|
return Jn(`annotations:${t}`, async () => {
|
|
2321
|
-
var
|
|
2322
|
-
const u = await Vt(jt("annotations", t)), m = !u && ye().codeBranch === "main" ? await $a(t) : null, g = (
|
|
2323
|
+
var I;
|
|
2324
|
+
const u = await Vt(jt("annotations", t)), m = !u && ye().codeBranch === "main" ? await $a(t) : null, g = (I = u ?? m) == null ? void 0 : I.value, C = r(Array.isArray(g) ? g : []);
|
|
2323
2325
|
return await Zn(jt("annotations", t), C, (u == null ? void 0 : u.sha) ?? null, qn(t, n, s, "annotations")), $a(t);
|
|
2324
2326
|
});
|
|
2325
2327
|
}
|
|
2326
|
-
async function
|
|
2328
|
+
async function Jp(t, n, s) {
|
|
2327
2329
|
return Bs("annotations", t, n, s);
|
|
2328
2330
|
}
|
|
2329
|
-
function
|
|
2331
|
+
function Xp() {
|
|
2330
2332
|
return Lt("pageDescriptions");
|
|
2331
2333
|
}
|
|
2332
|
-
function
|
|
2334
|
+
function Zp(t) {
|
|
2333
2335
|
return Lt("pageDescriptions", t);
|
|
2334
2336
|
}
|
|
2335
|
-
function
|
|
2337
|
+
function qp(t, n, s) {
|
|
2336
2338
|
return Os("pageDescriptions", s, t, n, "保存");
|
|
2337
2339
|
}
|
|
2338
|
-
function
|
|
2340
|
+
function Qp(t, n, s) {
|
|
2339
2341
|
return Bs("pageDescriptions", t, n, s);
|
|
2340
2342
|
}
|
|
2341
|
-
function
|
|
2343
|
+
function ev() {
|
|
2342
2344
|
return Lt("flows");
|
|
2343
2345
|
}
|
|
2344
|
-
function
|
|
2346
|
+
function tv(t, n) {
|
|
2345
2347
|
return Os("flows", { version: "1.0.0", flows: n }, "", t, "保存");
|
|
2346
2348
|
}
|
|
2347
|
-
const
|
|
2348
|
-
function
|
|
2349
|
-
return v(), f("section",
|
|
2349
|
+
const nv = {}, ov = { class: "flex min-h-full flex-col items-center justify-center bg-canvas px-8 text-center text-ink" };
|
|
2350
|
+
function av(t, n) {
|
|
2351
|
+
return v(), f("section", ov, [...n[0] || (n[0] = [
|
|
2350
2352
|
e("div", { class: "rounded-[28px] border border-line bg-panel px-7 py-8 shadow-sm" }, [
|
|
2351
2353
|
e("p", { class: "text-lg font-semibold" }, "暂无原型页面"),
|
|
2352
2354
|
e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请先在产品注册表中配置页面、状态与流程。")
|
|
2353
2355
|
], -1)
|
|
2354
2356
|
])]);
|
|
2355
2357
|
}
|
|
2356
|
-
const
|
|
2358
|
+
const lv = /* @__PURE__ */ is(nv, [["render", av]]), { copy: sv, pages: Ms, states: Us, flows: iv, extendContext: ha } = eu(), tt = {
|
|
2357
2359
|
ocean: "#1d1d1f",
|
|
2358
2360
|
ink: "#1d1d1f",
|
|
2359
2361
|
muted: "#747579",
|
|
@@ -2367,7 +2369,7 @@ const ov = /* @__PURE__ */ is(ev, [["render", nv]]), { copy: av, pages: Ms, stat
|
|
|
2367
2369
|
dark: "#232326",
|
|
2368
2370
|
device: "#1d1d1f",
|
|
2369
2371
|
head: "#f5f5f7"
|
|
2370
|
-
},
|
|
2372
|
+
}, rv = [
|
|
2371
2373
|
{ id: "default", nameKey: "themeDefault", descriptionKey: "themeDefaultDesc", colors: tt },
|
|
2372
2374
|
{
|
|
2373
2375
|
id: "warm",
|
|
@@ -2413,11 +2415,11 @@ const ov = /* @__PURE__ */ is(ev, [["render", nv]]), { copy: av, pages: Ms, stat
|
|
|
2413
2415
|
{ key: "dark", labelKey: "themeColorDark", descKey: "themeColorDarkDesc" },
|
|
2414
2416
|
{ key: "device", labelKey: "themeColorDevice", descKey: "themeColorDeviceDesc" },
|
|
2415
2417
|
{ key: "head", labelKey: "themeColorHead", descKey: "themeColorHeadDesc" }
|
|
2416
|
-
],
|
|
2418
|
+
], _a = "prototype-core-custom-theme", Vs = "prototype-core-annotation-author", Ls = "prototype-core-collaboration-polling-interval-v2", Fs = 60, Ks = 10, zs = 300, Gs = b("zh"), Ia = b("interactive"), Re = b("splash"), ut = b(""), ct = b("default"), _t = b({ ...tt }), uv = b(!1), cv = b(null), Te = b(0.42), nn = b(360), on = b(150), Mo = b(!1), Gn = b({ x: 0, y: 0, panX: 0, panY: 0 }), wa = Ms.find((t) => t.platform === "mobile" && t.hasTabBar), Ma = b((wa == null ? void 0 : wa.id) ?? ""), Ua = Fn({});
|
|
2417
2419
|
Object.entries(Us).forEach(([t, n]) => {
|
|
2418
2420
|
n.length && (Ua[t] = n[0].id);
|
|
2419
2421
|
});
|
|
2420
|
-
const
|
|
2422
|
+
const dv = b("annotations"), It = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协作已启用" : "本地兜底模式"), nt = b(""), xn = b(Fs), Ro = b(String(Fs)), Pa = b(""), pv = b(!1), vv = b(!0), Uo = b(!1), jo = b(""), Qn = b(null), ja = b(""), eo = b("view"), Sn = b({ featureName: "", featureDescription: "", specialNote: "" }), Y = b([]), Kt = b(null), Me = b([]), zt = b(null), Va = b({
|
|
2421
2423
|
highlighted: !1,
|
|
2422
2424
|
purpose: "",
|
|
2423
2425
|
structure: "",
|
|
@@ -2432,7 +2434,7 @@ const uv = b("annotations"), _t = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协
|
|
|
2432
2434
|
annotations: { source: "local-seed", status: "idle" },
|
|
2433
2435
|
pageDescriptions: { source: "local-seed", status: "idle" },
|
|
2434
2436
|
flows: { source: "local-seed", status: "idle" }
|
|
2435
|
-
}), Mt = b("idle"),
|
|
2437
|
+
}), Mt = b("idle"), Ie = b({ current: 0, total: 0, label: "" }), tn = b(""), fv = b(!1), Ws = k(() => It.value && we.remoteWritable), mv = b(1), gv = b(3), Wn = b(null), an = Ms;
|
|
2436
2438
|
function it() {
|
|
2437
2439
|
return typeof window > "u" ? null : window.localStorage;
|
|
2438
2440
|
}
|
|
@@ -2443,7 +2445,7 @@ function Js(t) {
|
|
|
2443
2445
|
var n, s;
|
|
2444
2446
|
Ys.value = t, t ? (n = it()) == null || n.setItem(Da, "true") : (s = it()) == null || s.removeItem(Da);
|
|
2445
2447
|
}
|
|
2446
|
-
const
|
|
2448
|
+
const bv = k(() => {
|
|
2447
2449
|
var r;
|
|
2448
2450
|
const t = Object.values(me.value);
|
|
2449
2451
|
if (t.some((u) => u.status === "conflict")) return "数据冲突";
|
|
@@ -2454,17 +2456,17 @@ const mv = k(() => {
|
|
|
2454
2456
|
}), Xs = k(() => {
|
|
2455
2457
|
const t = Object.values(me.value);
|
|
2456
2458
|
return t.some((n) => n.status === "conflict") ? "conflict" : !we.remoteWritable || t.some((n) => n.status === "error") ? "warning" : t.some((n) => n.status === "syncing") ? "syncing" : t.every((n) => n.source === "gitee") ? "remote" : "local";
|
|
2457
|
-
}),
|
|
2459
|
+
}), yv = k(() => {
|
|
2458
2460
|
const t = Object.values(me.value).map((n) => n.syncedAt).filter((n) => !!n).sort();
|
|
2459
2461
|
return t[t.length - 1] ?? "";
|
|
2460
|
-
}),
|
|
2461
|
-
if (Mt.value === "running") return `正在初始化 Gitee · ${
|
|
2462
|
+
}), hv = k(() => {
|
|
2463
|
+
if (Mt.value === "running") return `正在初始化 Gitee · ${Ie.value.current} / ${Ie.value.total}`;
|
|
2462
2464
|
if (tn.value) return tn.value;
|
|
2463
2465
|
if (!we.remoteWritable) return we.unavailableReason;
|
|
2464
2466
|
if (Xs.value === "conflict") return "远端已更新,请处理本地草稿";
|
|
2465
2467
|
const t = Object.values(me.value).find((n) => n.status === "error");
|
|
2466
2468
|
return (t == null ? void 0 : t.message) || "注释 / 页面描述 / 流程";
|
|
2467
|
-
}),
|
|
2469
|
+
}), wv = k(() => we.remoteWritable && Mt.value !== "running");
|
|
2468
2470
|
function te(t, n, s, r = "", u) {
|
|
2469
2471
|
me.value = {
|
|
2470
2472
|
...me.value,
|
|
@@ -2474,42 +2476,42 @@ function te(t, n, s, r = "", u) {
|
|
|
2474
2476
|
function La(t, n) {
|
|
2475
2477
|
te(t, me.value[t].source, "conflict", n), Ut.value = "error", Ft.value = n;
|
|
2476
2478
|
}
|
|
2477
|
-
function
|
|
2479
|
+
function xv(t, n) {
|
|
2478
2480
|
Hn.value = { ...Hn.value, [t]: n };
|
|
2479
2481
|
}
|
|
2480
2482
|
function Zs(t) {
|
|
2481
|
-
return
|
|
2483
|
+
return sv[Gs.value][t] ?? t;
|
|
2482
2484
|
}
|
|
2483
2485
|
function Fa(t) {
|
|
2484
2486
|
return /^#[0-9a-fA-F]{6}$/.test(t);
|
|
2485
2487
|
}
|
|
2486
|
-
function
|
|
2488
|
+
function Sv(t) {
|
|
2487
2489
|
const n = t.replace("#", ""), s = Number.parseInt(n, 16);
|
|
2488
2490
|
return Number.isNaN(s) ? "0 0 0" : `${s >> 16 & 255} ${s >> 8 & 255} ${s & 255}`;
|
|
2489
2491
|
}
|
|
2490
2492
|
const qs = k(() => [
|
|
2491
|
-
...
|
|
2492
|
-
{ id: "custom", nameKey: "themeCustom", descriptionKey: "themeCustomDesc", colors:
|
|
2493
|
+
...rv,
|
|
2494
|
+
{ id: "custom", nameKey: "themeCustom", descriptionKey: "themeCustomDesc", colors: _t.value }
|
|
2493
2495
|
]), Qs = k(() => {
|
|
2494
2496
|
var t;
|
|
2495
2497
|
return ((t = qs.value.find((n) => n.id === ct.value)) == null ? void 0 : t.colors) ?? tt;
|
|
2496
|
-
}),
|
|
2497
|
-
() => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`,
|
|
2498
|
+
}), kv = k(
|
|
2499
|
+
() => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`, Sv(n)]))
|
|
2498
2500
|
);
|
|
2499
|
-
function
|
|
2501
|
+
function Cv(t) {
|
|
2500
2502
|
ct.value = t;
|
|
2501
2503
|
}
|
|
2502
|
-
function
|
|
2503
|
-
Fa(n) && (
|
|
2504
|
+
function $v(t, n) {
|
|
2505
|
+
Fa(n) && (_t.value = { ..._t.value, [t]: n }, ct.value = "custom");
|
|
2504
2506
|
}
|
|
2505
|
-
function
|
|
2506
|
-
|
|
2507
|
+
function _v() {
|
|
2508
|
+
_t.value = { ...tt }, ct.value = "default";
|
|
2507
2509
|
}
|
|
2508
|
-
function
|
|
2509
|
-
const t = new Blob([JSON.stringify({ selectedThemeId: "custom", colors:
|
|
2510
|
+
function Iv() {
|
|
2511
|
+
const t = new Blob([JSON.stringify({ selectedThemeId: "custom", colors: _t.value }, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
|
|
2510
2512
|
n.href = URL.createObjectURL(t), n.download = "prototype-core-theme.json", n.click(), URL.revokeObjectURL(n.href);
|
|
2511
2513
|
}
|
|
2512
|
-
function
|
|
2514
|
+
function Pv(t) {
|
|
2513
2515
|
var r;
|
|
2514
2516
|
const n = (r = t.target.files) == null ? void 0 : r[0];
|
|
2515
2517
|
if (!n) return;
|
|
@@ -2518,8 +2520,8 @@ function Iv(t) {
|
|
|
2518
2520
|
try {
|
|
2519
2521
|
const u = JSON.parse(String(s.result)), m = { ...tt };
|
|
2520
2522
|
Object.entries(u.colors ?? {}).forEach(([g, C]) => {
|
|
2521
|
-
js.some((
|
|
2522
|
-
}),
|
|
2523
|
+
js.some((I) => I.key === g) && typeof C == "string" && Fa(C) && (m[g] = C);
|
|
2524
|
+
}), _t.value = m, ct.value = "custom";
|
|
2523
2525
|
} catch {
|
|
2524
2526
|
Ft.value = "主题文件解析失败";
|
|
2525
2527
|
}
|
|
@@ -2532,7 +2534,7 @@ const ei = {
|
|
|
2532
2534
|
title: "暂无原型页面",
|
|
2533
2535
|
subtitle: "等待产品注册",
|
|
2534
2536
|
icon: ss,
|
|
2535
|
-
component:
|
|
2537
|
+
component: lv,
|
|
2536
2538
|
hasTabBar: !1
|
|
2537
2539
|
}, Ka = k(() => an.find((t) => t.id === Re.value) ?? an[0] ?? ei), Aa = k(() => he.value.find((t) => t.id === ut.value) ?? he.value[0] ?? null), za = k(
|
|
2538
2540
|
() => {
|
|
@@ -2572,7 +2574,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
|
|
|
2572
2574
|
...Ka.value,
|
|
2573
2575
|
stateId: He.value,
|
|
2574
2576
|
stateLabel: He.value ? Ga(Re.value, He.value) : void 0
|
|
2575
|
-
})),
|
|
2577
|
+
})), Dv = k(() => Ka.value.platform), Av = k(
|
|
2576
2578
|
() => an.flatMap((t) => {
|
|
2577
2579
|
const n = Gt(t.id);
|
|
2578
2580
|
return n.length ? n.map((s) => ({
|
|
@@ -2581,7 +2583,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
|
|
|
2581
2583
|
stateLabel: s.label
|
|
2582
2584
|
})) : [{ ...t }];
|
|
2583
2585
|
})
|
|
2584
|
-
),
|
|
2586
|
+
), Nv = k(() => Ia.value === "overview" ? Av.value : Ia.value === "flow" ? za.value : [ni.value]), Tv = k(() => Gt(Re.value));
|
|
2585
2587
|
function Na(t, n) {
|
|
2586
2588
|
const s = n === void 0 ? Re.value : t, r = n ?? t;
|
|
2587
2589
|
Ua[s] = r;
|
|
@@ -2591,7 +2593,7 @@ function Eo(t) {
|
|
|
2591
2593
|
const n = an.find((s) => s.id === t);
|
|
2592
2594
|
n != null && n.hasTabBar && (Ma.value = t);
|
|
2593
2595
|
}
|
|
2594
|
-
function
|
|
2596
|
+
function Rv(t) {
|
|
2595
2597
|
Eo(t);
|
|
2596
2598
|
const n = He.value, s = n ? Ra(t, n) : di(t), r = Gt(t).find((u) => Ra(t, u.id) > 0);
|
|
2597
2599
|
s <= 0 && r && Na(t, r.id);
|
|
@@ -2618,14 +2620,14 @@ function Fo(t) {
|
|
|
2618
2620
|
function li(t) {
|
|
2619
2621
|
return Vo(t).some((n) => Fo(n));
|
|
2620
2622
|
}
|
|
2621
|
-
function
|
|
2623
|
+
function Ev(t) {
|
|
2622
2624
|
const n = Gt(t), s = /* @__PURE__ */ new Set();
|
|
2623
2625
|
return n.forEach((r) => {
|
|
2624
2626
|
Fo(B(t, r.id)) && s.add(r.id);
|
|
2625
2627
|
}), s;
|
|
2626
2628
|
}
|
|
2627
|
-
const
|
|
2628
|
-
function
|
|
2629
|
+
const Ov = k(() => Ev(Re.value)), Bv = k(() => li(Re.value)), Mv = k(() => Fo(Lo())), si = k(() => Y.value.find((t) => t.id === ja.value) ?? null), Uv = k(() => Y.value.find((t) => t.id === jo.value) ?? null);
|
|
2630
|
+
function jv(t) {
|
|
2629
2631
|
return { left: `${t.x}%`, top: `${t.y}%` };
|
|
2630
2632
|
}
|
|
2631
2633
|
function Ha() {
|
|
@@ -2693,17 +2695,17 @@ async function xa(t, n) {
|
|
|
2693
2695
|
return n;
|
|
2694
2696
|
}
|
|
2695
2697
|
}
|
|
2696
|
-
async function
|
|
2698
|
+
async function Vv() {
|
|
2697
2699
|
var Se, ke, Je, ue, Ce;
|
|
2698
2700
|
const t = (Se = it()) == null ? void 0 : Se.getItem(Vs);
|
|
2699
2701
|
t && (nt.value = t);
|
|
2700
2702
|
const n = (ke = it()) == null ? void 0 : ke.getItem(Ls), s = n == null ? Number.NaN : Number(n);
|
|
2701
2703
|
Number.isFinite(s) && (xn.value = Math.min(zs, Math.max(Ks, s)), Ro.value = String(xn.value));
|
|
2702
2704
|
try {
|
|
2703
|
-
const Ne = JSON.parse(((Je = it()) == null ? void 0 : Je.getItem(
|
|
2704
|
-
Ne != null && Ne.colors && (
|
|
2705
|
+
const Ne = JSON.parse(((Je = it()) == null ? void 0 : Je.getItem(_a)) ?? "null");
|
|
2706
|
+
Ne != null && Ne.colors && (_t.value = { ...tt, ...Object.fromEntries(Object.entries(Ne.colors).filter(([, Ue]) => typeof Ue == "string" && Fa(Ue))) }, ct.value = Ne.selectedThemeId ?? ct.value);
|
|
2705
2707
|
} catch {
|
|
2706
|
-
(ue = it()) == null || ue.removeItem(
|
|
2708
|
+
(ue = it()) == null || ue.removeItem(_a);
|
|
2707
2709
|
}
|
|
2708
2710
|
const [r, u, m] = await Promise.all([
|
|
2709
2711
|
xa("flows.json", { flows: [] }),
|
|
@@ -2712,20 +2714,20 @@ async function Uv() {
|
|
|
2712
2714
|
]), g = {
|
|
2713
2715
|
annotations: Wa(m),
|
|
2714
2716
|
pageDescriptions: ii(u),
|
|
2715
|
-
flows: Array.isArray(r.flows) && r.flows.length ? r.flows :
|
|
2716
|
-
}, C = rt("annotations"),
|
|
2717
|
-
Y.value = se.value, Me.value = xe.value, he.value = q.value, te("annotations", se.source, "idle"), te("pageDescriptions", xe.source, "idle"), te("flows", q.source, "idle"), ut.value = ((Ce = he.value[0]) == null ? void 0 : Ce.id) ?? "",
|
|
2717
|
+
flows: Array.isArray(r.flows) && r.flows.length ? r.flows : iv.flows
|
|
2718
|
+
}, C = rt("annotations"), I = rt("pageDescriptions"), M = rt("flows"), se = ga(C, g.annotations), xe = ga(I, g.pageDescriptions), q = ga(M, g.flows);
|
|
2719
|
+
Y.value = se.value, Me.value = xe.value, he.value = q.value, te("annotations", se.source, "idle"), te("pageDescriptions", xe.source, "idle"), te("flows", q.source, "idle"), ut.value = ((Ce = he.value[0]) == null ? void 0 : Ce.id) ?? "", It.value ? await Oo(!1) : Ft.value = we.unavailableReason, Ha(), Hs.value = !0;
|
|
2718
2720
|
}
|
|
2719
|
-
Ae([
|
|
2721
|
+
Ae([_t, ct], () => {
|
|
2720
2722
|
var t;
|
|
2721
|
-
(t = it()) == null || t.setItem(
|
|
2723
|
+
(t = it()) == null || t.setItem(_a, JSON.stringify({ selectedThemeId: ct.value, colors: _t.value }));
|
|
2722
2724
|
}, { deep: !0 });
|
|
2723
2725
|
Ae(nt, (t) => {
|
|
2724
2726
|
var n;
|
|
2725
2727
|
t.trim() && ((n = it()) == null || n.setItem(Vs, t.trim()));
|
|
2726
2728
|
});
|
|
2727
2729
|
Ae([Re, He], () => {
|
|
2728
|
-
Ha(),
|
|
2730
|
+
Ha(), It.value && (Ya(!1), Ja(!1));
|
|
2729
2731
|
});
|
|
2730
2732
|
function Ko(t, n, s) {
|
|
2731
2733
|
const r = (/* @__PURE__ */ new Date()).toISOString(), u = B(t, n), m = Kt.value ?? {
|
|
@@ -2735,9 +2737,9 @@ function Ko(t, n, s) {
|
|
|
2735
2737
|
screens: {}
|
|
2736
2738
|
};
|
|
2737
2739
|
m.scopes = { ...m.scopes ?? {}, [u]: { count: s, updatedAt: r } };
|
|
2738
|
-
const g = Vo(t).reduce((C,
|
|
2740
|
+
const g = Vo(t).reduce((C, I) => {
|
|
2739
2741
|
var M, se;
|
|
2740
|
-
return C + (((se = (M = m.scopes) == null ? void 0 : M[
|
|
2742
|
+
return C + (((se = (M = m.scopes) == null ? void 0 : M[I]) == null ? void 0 : se.count) ?? 0);
|
|
2741
2743
|
}, 0);
|
|
2742
2744
|
m.screens = { ...m.screens, [t]: { count: g, updatedAt: r } }, m.updatedAt = r, Kt.value = m;
|
|
2743
2745
|
}
|
|
@@ -2752,42 +2754,42 @@ function Ta(t, n, s, r) {
|
|
|
2752
2754
|
...g.scopes ?? {},
|
|
2753
2755
|
[m]: r === !0 ? { count: s, updatedAt: u, highlighted: !0 } : { count: s, updatedAt: u }
|
|
2754
2756
|
};
|
|
2755
|
-
const C = Vo(t).reduce((
|
|
2757
|
+
const C = Vo(t).reduce((I, M) => {
|
|
2756
2758
|
var se, xe;
|
|
2757
|
-
return
|
|
2759
|
+
return I + (((xe = (se = g.scopes) == null ? void 0 : se[M]) == null ? void 0 : xe.count) ?? 0);
|
|
2758
2760
|
}, 0);
|
|
2759
2761
|
g.screens = { ...g.screens, [t]: { count: C, updatedAt: u } }, g.updatedAt = u, zt.value = g;
|
|
2760
2762
|
}
|
|
2761
|
-
async function
|
|
2763
|
+
async function Lv(t, n = to(t, He.value)) {
|
|
2762
2764
|
var g;
|
|
2763
2765
|
const s = await $a(B(t, n));
|
|
2764
2766
|
if (!s) return !1;
|
|
2765
2767
|
const r = Wa(s.value).map((C) => ({ ...C, screenId: t, stateId: n })), u = [...Y.value.filter((C) => B(C.screenId, C.stateId) !== B(t, n)), ...r], m = (/* @__PURE__ */ new Date()).toISOString();
|
|
2766
2768
|
return We("annotations", u, s.sha, m), Y.value = ((g = rt("annotations")) == null ? void 0 : g.value) ?? u, Ko(t, n, r.length), te("annotations", "gitee", "success", s.legacy ? "已读取主分支旧目录" : "", m), !0;
|
|
2767
2769
|
}
|
|
2768
|
-
async function
|
|
2770
|
+
async function Fv() {
|
|
2769
2771
|
var C;
|
|
2770
|
-
const t = Re.value, n = He.value, s = B(t, n), r = await
|
|
2772
|
+
const t = Re.value, n = He.value, s = B(t, n), r = await Zp(B(t, n));
|
|
2771
2773
|
if (!r) return !1;
|
|
2772
2774
|
const u = ii([{ ...r.value, screenId: t, stateId: n }])[0];
|
|
2773
2775
|
if (!u) return;
|
|
2774
|
-
const m = [...Me.value.filter((
|
|
2776
|
+
const m = [...Me.value.filter((I) => B(I.screenId, I.stateId) !== s), u], g = (/* @__PURE__ */ new Date()).toISOString();
|
|
2775
2777
|
return We("pageDescriptions", m, r.sha, g), Me.value = ((C = rt("pageDescriptions")) == null ? void 0 : C.value) ?? m, Ta(t, n, 1, u.highlighted), s === Lo() && Ha(), te("pageDescriptions", "gitee", "success", r.legacy ? "已读取主分支旧目录" : "", g), !0;
|
|
2776
2778
|
}
|
|
2777
2779
|
async function Ya(t = !1) {
|
|
2778
2780
|
var n, s;
|
|
2779
|
-
if (
|
|
2781
|
+
if (It.value) {
|
|
2780
2782
|
if (Ea(t, Hn.value.annotations)) {
|
|
2781
2783
|
te("annotations", me.value.annotations.source, "idle", "检测到本地编辑,已暂缓轮询覆盖");
|
|
2782
2784
|
return;
|
|
2783
2785
|
}
|
|
2784
2786
|
Ut.value = "syncing", te("annotations", me.value.annotations.source, "syncing");
|
|
2785
2787
|
try {
|
|
2786
|
-
const r = await
|
|
2788
|
+
const r = await Wp();
|
|
2787
2789
|
Kt.value = (r == null ? void 0 : r.value) ?? Kt.value;
|
|
2788
|
-
const u = await
|
|
2790
|
+
const u = await Lv(Re.value, He.value), m = B(Re.value, He.value);
|
|
2789
2791
|
if (!u && r && !((n = r.value.scopes) != null && n[m])) {
|
|
2790
|
-
const g = Y.value.filter((
|
|
2792
|
+
const g = Y.value.filter((I) => B(I.screenId, I.stateId) !== m), C = (/* @__PURE__ */ new Date()).toISOString();
|
|
2791
2793
|
We("annotations", g, r.sha, C), Y.value = ((s = rt("annotations")) == null ? void 0 : s.value) ?? g, te("annotations", "gitee", "success", "", C);
|
|
2792
2794
|
} else if (!u)
|
|
2793
2795
|
throw new Error("Gitee 当前注释文件不存在");
|
|
@@ -2798,15 +2800,15 @@ async function Ya(t = !1) {
|
|
|
2798
2800
|
}
|
|
2799
2801
|
}
|
|
2800
2802
|
async function Ja(t = !1) {
|
|
2801
|
-
if (
|
|
2803
|
+
if (It.value) {
|
|
2802
2804
|
if (Ea(t, Hn.value.pageDescriptions)) {
|
|
2803
2805
|
te("pageDescriptions", me.value.pageDescriptions.source, "idle", "检测到本地编辑,已暂缓轮询覆盖");
|
|
2804
2806
|
return;
|
|
2805
2807
|
}
|
|
2806
2808
|
Ut.value = "syncing", te("pageDescriptions", me.value.pageDescriptions.source, "syncing");
|
|
2807
2809
|
try {
|
|
2808
|
-
const n = await
|
|
2809
|
-
if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await
|
|
2810
|
+
const n = await Xp();
|
|
2811
|
+
if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await Fv()) throw new Error("Gitee 当前页面描述不存在");
|
|
2810
2812
|
Ut.value = "success", Ft.value = "页面说明已同步";
|
|
2811
2813
|
} catch (n) {
|
|
2812
2814
|
Ut.value = "error", Ft.value = "页面说明同步失败", te("pageDescriptions", me.value.pageDescriptions.source, "error", n instanceof Error ? n.message : "页面描述同步失败");
|
|
@@ -2815,7 +2817,7 @@ async function Ja(t = !1) {
|
|
|
2815
2817
|
}
|
|
2816
2818
|
async function ri(t = !1) {
|
|
2817
2819
|
var n, s, r, u;
|
|
2818
|
-
if (
|
|
2820
|
+
if (It.value) {
|
|
2819
2821
|
if (Ys.value) {
|
|
2820
2822
|
he.value = ((n = rt("flows")) == null ? void 0 : n.value) ?? he.value, te("flows", "local-cache", "idle", "存在未推送到 Gitee 的本地流程");
|
|
2821
2823
|
return;
|
|
@@ -2826,10 +2828,10 @@ async function ri(t = !1) {
|
|
|
2826
2828
|
}
|
|
2827
2829
|
te("flows", me.value.flows.source, "syncing");
|
|
2828
2830
|
try {
|
|
2829
|
-
const m = await
|
|
2831
|
+
const m = await ev(), g = Array.isArray((s = m == null ? void 0 : m.value) == null ? void 0 : s.flows) ? m.value.flows : null;
|
|
2830
2832
|
if (!m || !g) throw new Error("Gitee 流程文件不存在");
|
|
2831
2833
|
const C = (/* @__PURE__ */ new Date()).toISOString();
|
|
2832
|
-
We("flows", g, m.sha, C), he.value = ((r = rt("flows")) == null ? void 0 : r.value) ?? g, he.value.some((
|
|
2834
|
+
We("flows", g, m.sha, C), he.value = ((r = rt("flows")) == null ? void 0 : r.value) ?? g, he.value.some((I) => I.id === ut.value) || (ut.value = ((u = he.value[0]) == null ? void 0 : u.id) ?? ""), te("flows", "gitee", "success", "", C);
|
|
2833
2835
|
} catch (m) {
|
|
2834
2836
|
te("flows", me.value.flows.source, "error", m instanceof Error ? m.message : "流程同步失败");
|
|
2835
2837
|
}
|
|
@@ -2841,30 +2843,30 @@ async function Oo(t = !1) {
|
|
|
2841
2843
|
function Ql(t) {
|
|
2842
2844
|
const n = (/* @__PURE__ */ new Date()).toISOString(), s = t === "annotations" ? Y.value : Me.value, r = /* @__PURE__ */ new Map();
|
|
2843
2845
|
s.forEach((g) => {
|
|
2844
|
-
const C = B(g.screenId, g.stateId),
|
|
2846
|
+
const C = B(g.screenId, g.stateId), I = r.get(C), M = t === "pageDescriptions" && g.highlighted === !0;
|
|
2845
2847
|
r.set(C, {
|
|
2846
2848
|
screenId: g.screenId,
|
|
2847
|
-
count: ((
|
|
2848
|
-
highlighted: (
|
|
2849
|
+
count: ((I == null ? void 0 : I.count) ?? 0) + 1,
|
|
2850
|
+
highlighted: (I == null ? void 0 : I.highlighted) === !0 || M
|
|
2849
2851
|
});
|
|
2850
2852
|
});
|
|
2851
2853
|
const u = {}, m = {};
|
|
2852
|
-
return r.forEach(({ screenId: g, count: C, highlighted:
|
|
2854
|
+
return r.forEach(({ screenId: g, count: C, highlighted: I }, M) => {
|
|
2853
2855
|
var se;
|
|
2854
|
-
u[M] =
|
|
2856
|
+
u[M] = I === !0 ? { count: C, updatedAt: n, highlighted: !0 } : { count: C, updatedAt: n }, m[g] = { count: (((se = m[g]) == null ? void 0 : se.count) ?? 0) + C, updatedAt: n };
|
|
2855
2857
|
}), { projectId: we.projectId, updatedAt: n, scopes: u, screens: m };
|
|
2856
2858
|
}
|
|
2857
|
-
async function
|
|
2859
|
+
async function Kv() {
|
|
2858
2860
|
if (!we.remoteWritable || Mt.value === "running") return;
|
|
2859
2861
|
const t = nt.value.trim() || "初始化工具";
|
|
2860
|
-
Mt.value = "running", tn.value = "",
|
|
2862
|
+
Mt.value = "running", tn.value = "", Ie.value = { current: 0, total: 1, label: "检查初始化状态" };
|
|
2861
2863
|
try {
|
|
2862
|
-
if (await
|
|
2863
|
-
Mt.value = "success",
|
|
2864
|
+
if (await Gp()) {
|
|
2865
|
+
Mt.value = "success", Ie.value = { current: 1, total: 1, label: "远端已初始化" }, tn.value = "远端已初始化:未逐文件检查,未产生重复提交", await Oo(!1);
|
|
2864
2866
|
return;
|
|
2865
2867
|
}
|
|
2866
2868
|
} catch (u) {
|
|
2867
|
-
Mt.value = "partial",
|
|
2869
|
+
Mt.value = "partial", Ie.value = { current: 1, total: 1, label: "初始化状态检查失败" }, tn.value = u instanceof Error ? u.message : "无法检查 Gitee 初始化状态", console.error("❌ [Gitee 初始化] 初始化状态检查失败", { error: u });
|
|
2868
2870
|
return;
|
|
2869
2871
|
}
|
|
2870
2872
|
const n = [], s = /* @__PURE__ */ new Map();
|
|
@@ -2874,33 +2876,33 @@ async function Lv() {
|
|
|
2874
2876
|
}), s.forEach((u, m) => n.push({ label: `注释:${m}`, run: () => Vn("annotations", m, u, t) })), n.push({ label: "注释索引", run: () => Vn("annotations", void 0, Ql("annotations"), t) }), Me.value.forEach((u) => {
|
|
2875
2877
|
const m = B(u.screenId, u.stateId);
|
|
2876
2878
|
n.push({ label: `页面描述:${m}`, run: () => Vn("pageDescriptions", m, u, t) });
|
|
2877
|
-
}), n.push({ label: "页面描述索引", run: () => Vn("pageDescriptions", void 0, Ql("pageDescriptions"), t) }), n.push({ label: "流程", run: () => Vn("flows", void 0, { version: "1.0.0", flows: he.value }, t) }),
|
|
2879
|
+
}), n.push({ label: "页面描述索引", run: () => Vn("pageDescriptions", void 0, Ql("pageDescriptions"), t) }), n.push({ label: "流程", run: () => Vn("flows", void 0, { version: "1.0.0", flows: he.value }, t) }), Ie.value = { current: 0, total: n.length + 1, label: "" };
|
|
2878
2880
|
const r = { created: 0, unchanged: 0, protected: 0, failed: 0 };
|
|
2879
2881
|
for (const u of n) {
|
|
2880
|
-
|
|
2882
|
+
Ie.value = { ...Ie.value, label: u.label };
|
|
2881
2883
|
try {
|
|
2882
2884
|
r[await u.run()] += 1;
|
|
2883
2885
|
} catch (m) {
|
|
2884
2886
|
r.failed += 1, console.error("❌ [Gitee 初始化] 文件处理失败", { label: u.label, error: m });
|
|
2885
2887
|
} finally {
|
|
2886
|
-
|
|
2888
|
+
Ie.value = { ...Ie.value, current: Ie.value.current + 1 };
|
|
2887
2889
|
}
|
|
2888
2890
|
}
|
|
2889
|
-
if (
|
|
2891
|
+
if (Ie.value = { ...Ie.value, label: r.failed ? "存在失败,暂不写完成标记" : "写入初始化完成标记" }, !r.failed)
|
|
2890
2892
|
try {
|
|
2891
|
-
r[await
|
|
2893
|
+
r[await Hp({ schemaVersion: 1, branchKey: we.branchKey, completedAt: (/* @__PURE__ */ new Date()).toISOString(), fileCount: n.length }, t)] += 1;
|
|
2892
2894
|
} catch (u) {
|
|
2893
2895
|
r.failed += 1, console.error("❌ [Gitee 初始化] 完成标记写入失败", { error: u });
|
|
2894
2896
|
}
|
|
2895
|
-
|
|
2897
|
+
Ie.value = { ...Ie.value, current: Ie.value.current + 1 }, Mt.value = r.failed ? "partial" : "success", tn.value = r.failed ? `初始化部分完成:新建 ${r.created},跳过 ${r.unchanged + r.protected},失败 ${r.failed}` : r.created ? `初始化成功:新建 ${r.created},跳过 ${r.unchanged + r.protected}` : `远端已初始化:未重复创建,检查 ${r.unchanged + r.protected}`, await Oo(!1);
|
|
2896
2898
|
}
|
|
2897
|
-
function
|
|
2899
|
+
function zv() {
|
|
2898
2900
|
Uo.value = !0, Qn.value = null;
|
|
2899
2901
|
}
|
|
2900
2902
|
function ui() {
|
|
2901
2903
|
Uo.value = !1, Qn.value = null, eo.value = "view";
|
|
2902
2904
|
}
|
|
2903
|
-
function
|
|
2905
|
+
function Gv(t, n) {
|
|
2904
2906
|
if (!Uo.value) return;
|
|
2905
2907
|
const s = t.currentTarget, r = s.getBoundingClientRect(), u = s.querySelector(".annotation-layer"), m = (u == null ? void 0 : u.scrollWidth) ?? r.width, g = (u == null ? void 0 : u.scrollHeight) ?? r.height;
|
|
2906
2908
|
Qn.value = {
|
|
@@ -2914,13 +2916,13 @@ function Kv(t, n) {
|
|
|
2914
2916
|
}, Sn.value = { featureName: "", featureDescription: "", specialNote: "" }, eo.value = "create";
|
|
2915
2917
|
}
|
|
2916
2918
|
async function zo(t, n, s, r) {
|
|
2917
|
-
if (!
|
|
2919
|
+
if (!It.value) return null;
|
|
2918
2920
|
try {
|
|
2919
|
-
const u = await
|
|
2921
|
+
const u = await Yp(B(t, n), nt.value.trim() || "未署名", s, r);
|
|
2920
2922
|
if (!u) return null;
|
|
2921
|
-
const m = Wa(u.value).map((
|
|
2922
|
-
Ko(t, n, m.length), Kt.value && await
|
|
2923
|
-
const g = (/* @__PURE__ */ new Date()).toISOString(), C = [...Y.value.filter((
|
|
2923
|
+
const m = Wa(u.value).map((I) => ({ ...I, screenId: t, stateId: n }));
|
|
2924
|
+
Ko(t, n, m.length), Kt.value && await Jp(Kt.value, nt.value.trim() || "未署名", B(t, n));
|
|
2925
|
+
const g = (/* @__PURE__ */ new Date()).toISOString(), C = [...Y.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), ...m];
|
|
2924
2926
|
return We("annotations", C, u.sha, g), te("annotations", "gitee", "success", "", g), m;
|
|
2925
2927
|
} catch (u) {
|
|
2926
2928
|
const m = u instanceof Error ? u.message : "注释保存失败";
|
|
@@ -2928,7 +2930,7 @@ async function zo(t, n, s, r) {
|
|
|
2928
2930
|
return;
|
|
2929
2931
|
}
|
|
2930
2932
|
}
|
|
2931
|
-
async function
|
|
2933
|
+
async function Hv() {
|
|
2932
2934
|
const t = Qn.value;
|
|
2933
2935
|
if (!t) return;
|
|
2934
2936
|
const n = (/* @__PURE__ */ new Date()).toISOString(), s = {
|
|
@@ -2943,7 +2945,7 @@ async function zv() {
|
|
|
2943
2945
|
}, r = await zo(t.screenId, t.stateId, "新增", (u) => [...u, s]);
|
|
2944
2946
|
r !== void 0 && (r ? Y.value = [...Y.value.filter((u) => B(u.screenId, u.stateId) !== B(t.screenId, t.stateId)), ...r] : (Y.value = [...Y.value, s], Ko(t.screenId, t.stateId, oi.value.length), We("annotations", Y.value, null, null), te("annotations", "local-cache", "success", we.unavailableReason)), ui());
|
|
2945
2947
|
}
|
|
2946
|
-
function
|
|
2948
|
+
function Wv(t) {
|
|
2947
2949
|
const n = Y.value.find((s) => s.id === t);
|
|
2948
2950
|
n && (ja.value = t, Sn.value = {
|
|
2949
2951
|
featureName: n.featureName,
|
|
@@ -2954,7 +2956,7 @@ function Gv(t) {
|
|
|
2954
2956
|
function ci() {
|
|
2955
2957
|
ja.value = "", eo.value = "view";
|
|
2956
2958
|
}
|
|
2957
|
-
async function
|
|
2959
|
+
async function Yv() {
|
|
2958
2960
|
const t = si.value;
|
|
2959
2961
|
if (!t) return;
|
|
2960
2962
|
const n = (/* @__PURE__ */ new Date()).toISOString(), s = (u) => u.id === t.id ? {
|
|
@@ -2967,36 +2969,36 @@ async function Hv() {
|
|
|
2967
2969
|
} : u, r = await zo(t.screenId, t.stateId, "编辑", (u) => u.map(s));
|
|
2968
2970
|
r !== void 0 && (Y.value = r ? [...Y.value.filter((u) => B(u.screenId, u.stateId) !== B(t.screenId, t.stateId)), ...r] : Y.value.map(s), r === null && We("annotations", Y.value, null, null), ci());
|
|
2969
2971
|
}
|
|
2970
|
-
async function
|
|
2971
|
-
const r = Y.value.find((
|
|
2972
|
+
async function Jv(t, n, s) {
|
|
2973
|
+
const r = Y.value.find((I) => I.id === t);
|
|
2972
2974
|
if (!r) return !1;
|
|
2973
|
-
const u = (/* @__PURE__ */ new Date()).toISOString(), m = (
|
|
2974
|
-
...
|
|
2975
|
+
const u = (/* @__PURE__ */ new Date()).toISOString(), m = (I) => I.id === t ? {
|
|
2976
|
+
...I,
|
|
2975
2977
|
x: Math.min(96, Math.max(4, n)),
|
|
2976
2978
|
y: Math.min(96, Math.max(4, s)),
|
|
2977
|
-
authorName: nt.value.trim() ||
|
|
2979
|
+
authorName: nt.value.trim() || I.authorName || "未署名",
|
|
2978
2980
|
updatedAt: u
|
|
2979
|
-
} :
|
|
2981
|
+
} : I, g = m(r), C = await zo(
|
|
2980
2982
|
r.screenId,
|
|
2981
2983
|
r.stateId,
|
|
2982
2984
|
"编辑",
|
|
2983
|
-
(
|
|
2985
|
+
(I) => I.some((M) => M.id === t) ? I.map(m) : [...I, g]
|
|
2984
2986
|
);
|
|
2985
|
-
return C === void 0 ? !1 : (Y.value = C ? [...Y.value.filter((
|
|
2987
|
+
return C === void 0 ? !1 : (Y.value = C ? [...Y.value.filter((I) => B(I.screenId, I.stateId) !== B(r.screenId, r.stateId)), ...C] : Y.value.map(m), C === null && We("annotations", Y.value, null, null), !0);
|
|
2986
2988
|
}
|
|
2987
|
-
async function
|
|
2989
|
+
async function Xv(t) {
|
|
2988
2990
|
const n = Y.value.find((r) => r.id === t);
|
|
2989
2991
|
if (!n) return;
|
|
2990
2992
|
const s = await zo(n.screenId, n.stateId, "删除", (r) => r.filter((u) => u.id !== t));
|
|
2991
2993
|
s !== void 0 && (Y.value = s ? [...Y.value.filter((r) => B(r.screenId, r.stateId) !== B(n.screenId, n.stateId)), ...s] : Y.value.filter((r) => r.id !== t), s === null && We("annotations", Y.value, null, null), Ko(n.screenId, n.stateId, Y.value.filter((r) => B(r.screenId, r.stateId) === B(n.screenId, n.stateId)).length));
|
|
2992
2994
|
}
|
|
2993
|
-
function
|
|
2995
|
+
function Zv(t) {
|
|
2994
2996
|
Wn.value && window.clearTimeout(Wn.value), jo.value = t;
|
|
2995
2997
|
}
|
|
2996
|
-
function
|
|
2998
|
+
function qv() {
|
|
2997
2999
|
Wn.value && window.clearTimeout(Wn.value);
|
|
2998
3000
|
}
|
|
2999
|
-
function
|
|
3001
|
+
function Qv() {
|
|
3000
3002
|
Wn.value = window.setTimeout(() => {
|
|
3001
3003
|
jo.value = "";
|
|
3002
3004
|
}, 160);
|
|
@@ -3013,7 +3015,7 @@ function Ra(t, n) {
|
|
|
3013
3015
|
const s = B(t, n);
|
|
3014
3016
|
return ((m = (u = (r = Kt.value) == null ? void 0 : r.scopes) == null ? void 0 : u[s]) == null ? void 0 : m.count) ?? Y.value.filter((g) => B(g.screenId, g.stateId) === s).length;
|
|
3015
3017
|
}
|
|
3016
|
-
async function
|
|
3018
|
+
async function ef() {
|
|
3017
3019
|
var u;
|
|
3018
3020
|
const t = Re.value, n = He.value, s = (/* @__PURE__ */ new Date()).toISOString(), r = {
|
|
3019
3021
|
screenId: t,
|
|
@@ -3022,12 +3024,12 @@ async function qv() {
|
|
|
3022
3024
|
authorName: nt.value.trim() || "未署名",
|
|
3023
3025
|
updatedAt: s
|
|
3024
3026
|
};
|
|
3025
|
-
if (
|
|
3027
|
+
if (It.value)
|
|
3026
3028
|
try {
|
|
3027
|
-
const m = await
|
|
3029
|
+
const m = await qp(B(t, n), r.authorName ?? "未署名", r);
|
|
3028
3030
|
if (!m) return !1;
|
|
3029
|
-
Ta(t, n, 1, r.highlighted), zt.value && await
|
|
3030
|
-
const g = [...Me.value.filter((
|
|
3031
|
+
Ta(t, n, 1, r.highlighted), zt.value && await Qp(zt.value, r.authorName ?? "未署名", B(t, n));
|
|
3032
|
+
const g = [...Me.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), r], C = (/* @__PURE__ */ new Date()).toISOString();
|
|
3031
3033
|
return We("pageDescriptions", g, m.sha, C), Me.value = ((u = rt("pageDescriptions")) == null ? void 0 : u.value) ?? g, te("pageDescriptions", "gitee", "success", "", C), !0;
|
|
3032
3034
|
} catch (m) {
|
|
3033
3035
|
const g = m instanceof Error ? m.message : "页面描述保存失败";
|
|
@@ -3035,15 +3037,15 @@ async function qv() {
|
|
|
3035
3037
|
}
|
|
3036
3038
|
return Me.value = [...Me.value.filter((m) => B(m.screenId, m.stateId) !== B(t, n)), r], We("pageDescriptions", Me.value, null, null), te("pageDescriptions", "local-cache", "success", we.unavailableReason), Ta(t, n, 1, r.highlighted), !0;
|
|
3037
3039
|
}
|
|
3038
|
-
function
|
|
3040
|
+
function tf() {
|
|
3039
3041
|
const t = new Blob([JSON.stringify(Y.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
|
|
3040
3042
|
n.href = URL.createObjectURL(t), n.download = "annotations.json", n.click(), URL.revokeObjectURL(n.href);
|
|
3041
3043
|
}
|
|
3042
|
-
function
|
|
3044
|
+
function nf() {
|
|
3043
3045
|
const t = new Blob([JSON.stringify(Me.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
|
|
3044
3046
|
n.href = URL.createObjectURL(t), n.download = "page-descriptions.json", n.click(), URL.revokeObjectURL(n.href);
|
|
3045
3047
|
}
|
|
3046
|
-
function
|
|
3048
|
+
function of() {
|
|
3047
3049
|
var n;
|
|
3048
3050
|
const t = Number(Ro.value);
|
|
3049
3051
|
if (!Number.isFinite(t)) {
|
|
@@ -3052,16 +3054,16 @@ function tf() {
|
|
|
3052
3054
|
}
|
|
3053
3055
|
xn.value = Math.min(zs, Math.max(Ks, t)), Ro.value = String(xn.value), (n = it()) == null || n.setItem(Ls, String(xn.value)), Pa.value = "已保存同步间隔";
|
|
3054
3056
|
}
|
|
3055
|
-
const
|
|
3057
|
+
const af = k(() => ({
|
|
3056
3058
|
"--flow-zoom": String(Te.value)
|
|
3057
|
-
})),
|
|
3058
|
-
function
|
|
3059
|
+
})), lf = k(() => `${Math.round(Te.value * 100)}%`);
|
|
3060
|
+
function sf(t) {
|
|
3059
3061
|
return t === "pc" ? 640 : 393;
|
|
3060
3062
|
}
|
|
3061
3063
|
function Xa(t) {
|
|
3062
3064
|
return t === "pc" ? 360 : 902;
|
|
3063
3065
|
}
|
|
3064
|
-
const
|
|
3066
|
+
const rf = 88, pi = 152, uf = 260, cf = k(() => {
|
|
3065
3067
|
const t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
|
|
3066
3068
|
return za.value.forEach((s) => {
|
|
3067
3069
|
const r = s.flowRow ?? 1;
|
|
@@ -3069,7 +3071,7 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
|
|
|
3069
3071
|
}), n.forEach((s, r) => {
|
|
3070
3072
|
let u = 0;
|
|
3071
3073
|
s.sort((m, g) => (m.flowCol ?? 0) - (g.flowCol ?? 0)).forEach((m) => {
|
|
3072
|
-
t.set(`${r}-${m.flowCol ?? 1}`, u), u +=
|
|
3074
|
+
t.set(`${r}-${m.flowCol ?? 1}`, u), u += sf(m.platform) + rf;
|
|
3073
3075
|
});
|
|
3074
3076
|
}), t;
|
|
3075
3077
|
}), vi = k(() => {
|
|
@@ -3078,7 +3080,7 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
|
|
|
3078
3080
|
const s = n.flowRow ?? 1, r = Xa(n.platform);
|
|
3079
3081
|
t.set(s, Math.max(t.get(s) ?? 0, r));
|
|
3080
3082
|
}), t;
|
|
3081
|
-
}),
|
|
3083
|
+
}), df = k(
|
|
3082
3084
|
() => {
|
|
3083
3085
|
var t;
|
|
3084
3086
|
return ((t = Aa.value) == null ? void 0 : t.rows.map((n, s) => {
|
|
@@ -3091,26 +3093,26 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
|
|
|
3091
3093
|
})) ?? [];
|
|
3092
3094
|
}
|
|
3093
3095
|
);
|
|
3094
|
-
function
|
|
3096
|
+
function pf(t) {
|
|
3095
3097
|
ut.value = t;
|
|
3096
3098
|
}
|
|
3097
|
-
function
|
|
3099
|
+
function vf(t) {
|
|
3098
3100
|
Te.value = fi(Te.value + t);
|
|
3099
3101
|
}
|
|
3100
|
-
function
|
|
3102
|
+
function ff() {
|
|
3101
3103
|
nn.value = 360, on.value = 150, Te.value = 0.42;
|
|
3102
3104
|
}
|
|
3103
|
-
function
|
|
3104
|
-
const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r =
|
|
3105
|
+
function mf(t) {
|
|
3106
|
+
const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r = cf.value.get(`${n}-${s}`) ?? 0;
|
|
3105
3107
|
let u = 0;
|
|
3106
3108
|
for (let m = 1; m < n; m++)
|
|
3107
3109
|
u += (vi.value.get(m) ?? Xa("mobile")) + pi;
|
|
3108
3110
|
return {
|
|
3109
|
-
left: `${nn.value + (
|
|
3111
|
+
left: `${nn.value + (uf + r) * Te.value}px`,
|
|
3110
3112
|
top: `${on.value + u * Te.value}px`
|
|
3111
3113
|
};
|
|
3112
3114
|
}
|
|
3113
|
-
function
|
|
3115
|
+
function gf(t) {
|
|
3114
3116
|
let n = 0;
|
|
3115
3117
|
for (let s = 1; s < t; s++)
|
|
3116
3118
|
n += (vi.value.get(s) ?? Xa("mobile")) + pi;
|
|
@@ -3120,16 +3122,16 @@ function ff(t) {
|
|
|
3120
3122
|
transform: `scale(${Te.value})`
|
|
3121
3123
|
};
|
|
3122
3124
|
}
|
|
3123
|
-
function
|
|
3125
|
+
function bf(t) {
|
|
3124
3126
|
t.target.closest("button, input, select, textarea, video") || (Mo.value = !0, Gn.value = { x: t.clientX, y: t.clientY, panX: nn.value, panY: on.value });
|
|
3125
3127
|
}
|
|
3126
|
-
function
|
|
3128
|
+
function yf(t) {
|
|
3127
3129
|
Mo.value && (nn.value = Gn.value.panX + t.clientX - Gn.value.x, on.value = Gn.value.panY + t.clientY - Gn.value.y);
|
|
3128
3130
|
}
|
|
3129
|
-
function
|
|
3131
|
+
function hf() {
|
|
3130
3132
|
Mo.value = !1;
|
|
3131
3133
|
}
|
|
3132
|
-
function
|
|
3134
|
+
function wf(t) {
|
|
3133
3135
|
t.preventDefault();
|
|
3134
3136
|
const n = fi(Te.value + (t.deltaY > 0 ? -0.04 : 0.04));
|
|
3135
3137
|
if (n === Te.value) return;
|
|
@@ -3144,12 +3146,12 @@ function mi(t) {
|
|
|
3144
3146
|
const n = JSON.parse(JSON.stringify(t)), s = rt("flows");
|
|
3145
3147
|
return We("flows", n, (s == null ? void 0 : s.revision) ?? null, (s == null ? void 0 : s.lastRemoteSyncAt) ?? null), he.value = n, Js(!0), he.value.some((u) => u.id === ut.value) || (ut.value = ((r = he.value[0]) == null ? void 0 : r.id) ?? ""), te("flows", "local-cache", "success", we.unavailableReason), !0;
|
|
3146
3148
|
}
|
|
3147
|
-
async function
|
|
3149
|
+
async function xf(t) {
|
|
3148
3150
|
var s, r;
|
|
3149
3151
|
const n = JSON.parse(JSON.stringify(t));
|
|
3150
3152
|
if (mi(n), !Ws.value) return !1;
|
|
3151
3153
|
try {
|
|
3152
|
-
const u = await
|
|
3154
|
+
const u = await tv(nt.value.trim() || "未署名", n), m = Array.isArray((s = u == null ? void 0 : u.value) == null ? void 0 : s.flows) ? u.value.flows : null;
|
|
3153
3155
|
if (!u || !m) return !1;
|
|
3154
3156
|
const g = (/* @__PURE__ */ new Date()).toISOString();
|
|
3155
3157
|
return We("flows", m, u.sha, g), he.value = m, Js(!1), he.value.some((C) => C.id === ut.value) || (ut.value = ((r = he.value[0]) == null ? void 0 : r.id) ?? ""), te("flows", "gitee", "success", "", g), !0;
|
|
@@ -3158,14 +3160,14 @@ async function hf(t) {
|
|
|
3158
3160
|
return u instanceof Xn ? La("flows", m) : te("flows", me.value.flows.source, "error", m), !1;
|
|
3159
3161
|
}
|
|
3160
3162
|
}
|
|
3161
|
-
function
|
|
3163
|
+
function Sf(t = he.value) {
|
|
3162
3164
|
const n = new Blob([JSON.stringify({ version: "1.0.0", flows: t }, null, 2)], { type: "application/json;charset=utf-8" }), s = document.createElement("a");
|
|
3163
3165
|
s.href = URL.createObjectURL(n), s.download = "flows.json", s.click(), URL.revokeObjectURL(s.href);
|
|
3164
3166
|
}
|
|
3165
|
-
function
|
|
3166
|
-
return { saveFlowsToSession: mi, pushFlowsToGitee:
|
|
3167
|
+
function kf() {
|
|
3168
|
+
return { saveFlowsToSession: mi, pushFlowsToGitee: xf, exportFlows: Sf };
|
|
3167
3169
|
}
|
|
3168
|
-
function
|
|
3170
|
+
function Cf() {
|
|
3169
3171
|
const t = {
|
|
3170
3172
|
...(ha == null ? void 0 : ha({ go: Eo, goTab: ql, setPrototypeState: Na })) ?? {},
|
|
3171
3173
|
PanelTop: ss,
|
|
@@ -3173,17 +3175,17 @@ function Sf() {
|
|
|
3173
3175
|
SunMedium: Zr,
|
|
3174
3176
|
themeColorFields: js,
|
|
3175
3177
|
lang: Gs,
|
|
3176
|
-
mode:
|
|
3178
|
+
mode: Ia,
|
|
3177
3179
|
currentScreen: Re,
|
|
3178
3180
|
selectedFlowId: ut,
|
|
3179
3181
|
selectedThemeId: ct,
|
|
3180
|
-
showThemePanel:
|
|
3181
|
-
themeImportInput:
|
|
3182
|
+
showThemePanel: uv,
|
|
3183
|
+
themeImportInput: cv,
|
|
3182
3184
|
flowZoom: Te,
|
|
3183
3185
|
isFlowPanning: Mo,
|
|
3184
3186
|
selectedTab: Ma,
|
|
3185
|
-
activeCollaborationTab:
|
|
3186
|
-
annotationRemoteReady:
|
|
3187
|
+
activeCollaborationTab: dv,
|
|
3188
|
+
annotationRemoteReady: It,
|
|
3187
3189
|
annotationSyncStatus: Ut,
|
|
3188
3190
|
annotationSyncLabel: Ft,
|
|
3189
3191
|
annotationAuthorName: nt,
|
|
@@ -3193,16 +3195,16 @@ function Sf() {
|
|
|
3193
3195
|
collaborationInitialized: Hs,
|
|
3194
3196
|
collaborationContext: we,
|
|
3195
3197
|
collaborationSources: me,
|
|
3196
|
-
collaborationSourceLabel:
|
|
3198
|
+
collaborationSourceLabel: bv,
|
|
3197
3199
|
collaborationSourceTone: Xs,
|
|
3198
|
-
collaborationSourceDetail:
|
|
3199
|
-
collaborationLastSyncedAt:
|
|
3200
|
+
collaborationSourceDetail: hv,
|
|
3201
|
+
collaborationLastSyncedAt: yv,
|
|
3200
3202
|
collaborationBootstrapStatus: Mt,
|
|
3201
|
-
collaborationBootstrapProgress:
|
|
3203
|
+
collaborationBootstrapProgress: Ie,
|
|
3202
3204
|
collaborationBootstrapMessage: tn,
|
|
3203
|
-
canInitializeRemote:
|
|
3204
|
-
annotationPanelCollapsed:
|
|
3205
|
-
annotationPointsVisible:
|
|
3205
|
+
canInitializeRemote: wv,
|
|
3206
|
+
annotationPanelCollapsed: pv,
|
|
3207
|
+
annotationPointsVisible: vv,
|
|
3206
3208
|
isPlacingAnnotation: Uo,
|
|
3207
3209
|
hoveredAnnotationId: jo,
|
|
3208
3210
|
annotationDraft: Qn,
|
|
@@ -3214,117 +3216,117 @@ function Sf() {
|
|
|
3214
3216
|
pageDescriptionEditor: Va,
|
|
3215
3217
|
activeThemeColors: Qs,
|
|
3216
3218
|
themeOptions: qs,
|
|
3217
|
-
themeStyle:
|
|
3219
|
+
themeStyle: kv,
|
|
3218
3220
|
screens: an,
|
|
3219
3221
|
mainFlows: he,
|
|
3220
|
-
showFlowEditor:
|
|
3222
|
+
showFlowEditor: fv,
|
|
3221
3223
|
canPushFlowsToRemote: Ws,
|
|
3222
3224
|
currentMeta: Ka,
|
|
3223
3225
|
currentDisplayScreen: ni,
|
|
3224
|
-
currentScreenPlatform:
|
|
3225
|
-
flowRows:
|
|
3226
|
-
visibleScreens:
|
|
3227
|
-
prototypeStateOptions:
|
|
3226
|
+
currentScreenPlatform: Dv,
|
|
3227
|
+
flowRows: df,
|
|
3228
|
+
visibleScreens: Nv,
|
|
3229
|
+
prototypeStateOptions: Tv,
|
|
3228
3230
|
activePrototypeStateId: He,
|
|
3229
3231
|
getPrototypeStateOptions: Gt,
|
|
3230
3232
|
getPrototypeStateLabel: Ga,
|
|
3231
3233
|
normalizePrototypeStateId: to,
|
|
3232
|
-
flowGridStyle:
|
|
3233
|
-
flowZoomPercent:
|
|
3234
|
+
flowGridStyle: af,
|
|
3235
|
+
flowZoomPercent: lf,
|
|
3234
3236
|
currentScreenAnnotations: oi,
|
|
3235
3237
|
currentPageDescription: ai,
|
|
3236
3238
|
isScopeHighlighted: Fo,
|
|
3237
3239
|
isScreenHighlighted: li,
|
|
3238
|
-
activeScreenHighlightedStateIds:
|
|
3239
|
-
activeScreenHighlighted:
|
|
3240
|
-
activeScopeHighlighted:
|
|
3241
|
-
hoveredAnnotation:
|
|
3242
|
-
initializePrototype:
|
|
3240
|
+
activeScreenHighlightedStateIds: Ov,
|
|
3241
|
+
activeScreenHighlighted: Bv,
|
|
3242
|
+
activeScopeHighlighted: Mv,
|
|
3243
|
+
hoveredAnnotation: Uv,
|
|
3244
|
+
initializePrototype: Vv,
|
|
3243
3245
|
t: Zs,
|
|
3244
|
-
selectTheme:
|
|
3245
|
-
updateCustomThemeColor:
|
|
3246
|
-
resetCustomTheme:
|
|
3247
|
-
exportCustomTheme:
|
|
3248
|
-
importCustomTheme:
|
|
3246
|
+
selectTheme: Cv,
|
|
3247
|
+
updateCustomThemeColor: $v,
|
|
3248
|
+
resetCustomTheme: _v,
|
|
3249
|
+
exportCustomTheme: Iv,
|
|
3250
|
+
importCustomTheme: Pv,
|
|
3249
3251
|
setPrototypeState: Na,
|
|
3250
3252
|
go: Eo,
|
|
3251
|
-
goToAnnotatedScreen:
|
|
3253
|
+
goToAnnotatedScreen: Rv,
|
|
3252
3254
|
goTab: ql,
|
|
3253
|
-
startAnnotationPlacement:
|
|
3255
|
+
startAnnotationPlacement: zv,
|
|
3254
3256
|
cancelAnnotationDraft: ui,
|
|
3255
|
-
handleAnnotationCanvasClick:
|
|
3256
|
-
saveAnnotationDraft:
|
|
3257
|
-
openAnnotationDialog:
|
|
3257
|
+
handleAnnotationCanvasClick: Gv,
|
|
3258
|
+
saveAnnotationDraft: Hv,
|
|
3259
|
+
openAnnotationDialog: Wv,
|
|
3258
3260
|
closeAnnotationDialog: ci,
|
|
3259
|
-
saveAnnotationEdit:
|
|
3260
|
-
updateAnnotationPosition:
|
|
3261
|
-
keepAnnotationPopover:
|
|
3262
|
-
scheduleHideAnnotationPopover:
|
|
3263
|
-
showAnnotationPopover:
|
|
3264
|
-
removeAnnotation:
|
|
3261
|
+
saveAnnotationEdit: Yv,
|
|
3262
|
+
updateAnnotationPosition: Jv,
|
|
3263
|
+
keepAnnotationPopover: qv,
|
|
3264
|
+
scheduleHideAnnotationPopover: Qv,
|
|
3265
|
+
showAnnotationPopover: Zv,
|
|
3266
|
+
removeAnnotation: Xv,
|
|
3265
3267
|
annotationCountByScreen: di,
|
|
3266
3268
|
annotationCountByState: Ra,
|
|
3267
3269
|
refreshPrototypeAnnotations: Ya,
|
|
3268
3270
|
refreshPageDescriptions: Ja,
|
|
3269
3271
|
refreshFlows: ri,
|
|
3270
3272
|
refreshAllCollaborationData: Oo,
|
|
3271
|
-
setCollaborationEditing:
|
|
3272
|
-
initializeRemoteCollaborationData:
|
|
3273
|
-
saveAnnotationPollingInterval:
|
|
3274
|
-
exportAnnotations:
|
|
3275
|
-
saveCurrentPageDescription:
|
|
3276
|
-
exportPageDescriptions:
|
|
3277
|
-
annotationPointStyle:
|
|
3278
|
-
selectFlow:
|
|
3279
|
-
stepFlowZoom:
|
|
3280
|
-
resetFlowView:
|
|
3281
|
-
flowNodeStyle:
|
|
3282
|
-
flowRowLabelStyle:
|
|
3283
|
-
startFlowPan:
|
|
3284
|
-
moveFlowPan:
|
|
3285
|
-
stopFlowPan:
|
|
3286
|
-
zoomFlowAtPoint:
|
|
3287
|
-
overviewZoom:
|
|
3288
|
-
overviewColumns:
|
|
3273
|
+
setCollaborationEditing: xv,
|
|
3274
|
+
initializeRemoteCollaborationData: Kv,
|
|
3275
|
+
saveAnnotationPollingInterval: of,
|
|
3276
|
+
exportAnnotations: tf,
|
|
3277
|
+
saveCurrentPageDescription: ef,
|
|
3278
|
+
exportPageDescriptions: nf,
|
|
3279
|
+
annotationPointStyle: jv,
|
|
3280
|
+
selectFlow: pf,
|
|
3281
|
+
stepFlowZoom: vf,
|
|
3282
|
+
resetFlowView: ff,
|
|
3283
|
+
flowNodeStyle: mf,
|
|
3284
|
+
flowRowLabelStyle: gf,
|
|
3285
|
+
startFlowPan: bf,
|
|
3286
|
+
moveFlowPan: yf,
|
|
3287
|
+
stopFlowPan: hf,
|
|
3288
|
+
zoomFlowAtPoint: wf,
|
|
3289
|
+
overviewZoom: mv,
|
|
3290
|
+
overviewColumns: gv
|
|
3289
3291
|
};
|
|
3290
3292
|
return tu(t), t;
|
|
3291
3293
|
}
|
|
3292
|
-
var
|
|
3293
|
-
const
|
|
3294
|
+
var $f = [];
|
|
3295
|
+
const _f = {
|
|
3294
3296
|
key: 0,
|
|
3295
3297
|
class: "flex min-h-screen items-center justify-center px-5 py-10"
|
|
3296
|
-
},
|
|
3298
|
+
}, If = { class: "mt-6 space-y-3 text-left" }, Pf = { class: "block" }, Df = { class: "block" }, Af = {
|
|
3297
3299
|
key: 0,
|
|
3298
3300
|
class: "mt-4 text-sm font-semibold text-red-500"
|
|
3299
|
-
},
|
|
3301
|
+
}, Nf = {
|
|
3300
3302
|
key: 0,
|
|
3301
3303
|
class: "update-banner"
|
|
3302
|
-
},
|
|
3304
|
+
}, Tf = {
|
|
3303
3305
|
key: 1,
|
|
3304
3306
|
class: "top-chrome"
|
|
3305
|
-
},
|
|
3307
|
+
}, Rf = { class: "apple-subnav" }, Ef = { class: "project-identity" }, Of = { class: "text-[21px] font-semibold leading-none" }, Bf = { class: "mt-1 text-xs text-muted" }, Mf = {
|
|
3306
3308
|
class: "core-version-stack",
|
|
3307
3309
|
"aria-label": "原型内核版本"
|
|
3308
|
-
},
|
|
3310
|
+
}, Uf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, jf = {
|
|
3309
3311
|
key: 0,
|
|
3310
3312
|
class: "bug-nav-badge"
|
|
3311
|
-
},
|
|
3313
|
+
}, Vf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Lf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Ff = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, Kf = {
|
|
3312
3314
|
key: 0,
|
|
3313
3315
|
class: "theme-popover"
|
|
3314
|
-
},
|
|
3316
|
+
}, zf = { class: "flex items-start justify-between gap-3" }, Gf = { class: "text-sm font-semibold text-ink" }, Hf = { class: "mt-1 text-xs leading-5 text-muted" }, Wf = { class: "mt-3 flex flex-wrap gap-2" }, Yf = ["onClick"], Jf = { class: "min-w-0" }, Xf = { class: "mt-3 flex gap-2" }, Zf = { class: "theme-color-grid" }, qf = ["value", "onInput"], Qf = ["value", "onInput"], em = {
|
|
3315
3317
|
key: 0,
|
|
3316
3318
|
class: "apple-hero-copy"
|
|
3317
|
-
},
|
|
3319
|
+
}, tm = { key: 1 }, nm = { class: "flex flex-col gap-6 lg:flex-row" }, om = {
|
|
3318
3320
|
key: 0,
|
|
3319
3321
|
class: "interactive-side-nav-scroll-wrap"
|
|
3320
|
-
},
|
|
3322
|
+
}, am = ["onClick"], lm = { class: "flex-1 text-left" }, sm = { class: "ml-auto flex items-center gap-2" }, im = {
|
|
3321
3323
|
key: 0,
|
|
3322
3324
|
class: "annotation-nav-badge"
|
|
3323
|
-
},
|
|
3325
|
+
}, rm = {
|
|
3324
3326
|
key: 1,
|
|
3325
3327
|
class: "screen-highlight-dot",
|
|
3326
3328
|
"aria-hidden": "true"
|
|
3327
|
-
},
|
|
3329
|
+
}, um = {
|
|
3328
3330
|
key: 0,
|
|
3329
3331
|
class: "side-nav-scroll-hint-top",
|
|
3330
3332
|
viewBox: "0 0 24 24",
|
|
@@ -3333,7 +3335,7 @@ const Cf = {
|
|
|
3333
3335
|
"stroke-width": "2.5",
|
|
3334
3336
|
"stroke-linecap": "round",
|
|
3335
3337
|
"stroke-linejoin": "round"
|
|
3336
|
-
},
|
|
3338
|
+
}, cm = {
|
|
3337
3339
|
key: 1,
|
|
3338
3340
|
class: "side-nav-scroll-hint-bottom",
|
|
3339
3341
|
viewBox: "0 0 24 24",
|
|
@@ -3342,96 +3344,96 @@ const Cf = {
|
|
|
3342
3344
|
"stroke-width": "2.5",
|
|
3343
3345
|
"stroke-linecap": "round",
|
|
3344
3346
|
"stroke-linejoin": "round"
|
|
3345
|
-
},
|
|
3347
|
+
}, dm = {
|
|
3346
3348
|
key: 1,
|
|
3347
3349
|
class: "apple-side-nav overview-side-nav"
|
|
3348
|
-
},
|
|
3350
|
+
}, pm = { class: "px-2 pb-4" }, vm = { class: "flex items-center gap-3" }, fm = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, mm = { class: "px-2" }, gm = { class: "flex items-center gap-2" }, bm = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, ym = {
|
|
3349
3351
|
key: 2,
|
|
3350
3352
|
class: "apple-side-nav flow-side-nav lg:w-80"
|
|
3351
|
-
},
|
|
3353
|
+
}, hm = { class: "flex items-center justify-between px-2 pb-3" }, wm = ["onClick"], xm = { class: "min-w-0 flex-1 text-left" }, Sm = {
|
|
3352
3354
|
key: 0,
|
|
3353
3355
|
class: "flow-toolbar"
|
|
3354
|
-
},
|
|
3356
|
+
}, km = { class: "flow-zoom-controls" }, Cm = {
|
|
3355
3357
|
key: 0,
|
|
3356
3358
|
class: "status-bar"
|
|
3357
|
-
},
|
|
3359
|
+
}, $m = ["onClickCapture"], _m = { class: "screen-scroll-wrapper" }, Im = {
|
|
3358
3360
|
key: 0,
|
|
3359
3361
|
class: "annotation-layer"
|
|
3360
|
-
},
|
|
3362
|
+
}, Pm = ["data-annotation-id", "onMouseenter"], Dm = ["disabled", "onClick", "onPointerdown"], Am = { key: 0 }, Nm = { class: "annotation-panel-head" }, Tm = { class: "annotation-panel-tabs" }, Rm = {
|
|
3361
3363
|
key: 0,
|
|
3362
3364
|
class: "annotation-panel-actions"
|
|
3363
|
-
},
|
|
3365
|
+
}, Em = ["disabled"], Om = {
|
|
3364
3366
|
key: 1,
|
|
3365
3367
|
class: "annotation-panel-actions description-actions"
|
|
3366
|
-
},
|
|
3368
|
+
}, Bm = ["disabled"], Mm = { class: "annotation-author-field" }, Um = ["placeholder"], jm = { class: "annotation-polling-field" }, Vm = { class: "annotation-polling-control" }, Lm = ["disabled"], Fm = { class: "annotation-polling-notice" }, Km = {
|
|
3367
3369
|
key: 2,
|
|
3368
3370
|
class: "annotation-list"
|
|
3369
|
-
},
|
|
3371
|
+
}, zm = {
|
|
3370
3372
|
key: 0,
|
|
3371
3373
|
class: "annotation-empty"
|
|
3372
|
-
},
|
|
3374
|
+
}, Gm = ["onMouseenter"], Hm = { key: 0 }, Wm = { class: "annotation-list-actions" }, Ym = ["onClick"], Jm = ["disabled", "title", "onClick"], Xm = {
|
|
3373
3375
|
key: 3,
|
|
3374
3376
|
class: "page-description-view"
|
|
3375
|
-
},
|
|
3377
|
+
}, Zm = {
|
|
3376
3378
|
key: 0,
|
|
3377
3379
|
class: "annotation-empty"
|
|
3378
|
-
},
|
|
3380
|
+
}, qm = {
|
|
3379
3381
|
key: 0,
|
|
3380
3382
|
class: "page-description-meta"
|
|
3381
|
-
},
|
|
3383
|
+
}, Qm = { class: "collaboration-source-title" }, eg = { "aria-hidden": "true" }, tg = ["disabled"], ng = {
|
|
3382
3384
|
class: "environment-check-panel",
|
|
3383
3385
|
role: "dialog",
|
|
3384
3386
|
"aria-modal": "true",
|
|
3385
3387
|
"aria-labelledby": "environment-check-title"
|
|
3386
|
-
},
|
|
3388
|
+
}, og = { class: "environment-check-groups" }, ag = { "aria-hidden": "true" }, lg = {
|
|
3387
3389
|
key: 0,
|
|
3388
3390
|
class: "interaction-mode-toast",
|
|
3389
3391
|
role: "status"
|
|
3390
|
-
},
|
|
3392
|
+
}, sg = { class: "page-description-dialog" }, ig = { class: "page-description-dialog-head" }, rg = {
|
|
3391
3393
|
key: 0,
|
|
3392
3394
|
class: "annotation-empty"
|
|
3393
|
-
},
|
|
3395
|
+
}, ug = {
|
|
3394
3396
|
key: 1,
|
|
3395
3397
|
class: "page-description-meta"
|
|
3396
|
-
},
|
|
3398
|
+
}, cg = { class: "page-description-highlight-field" }, dg = ["placeholder"], pg = ["placeholder"], vg = ["placeholder"], fg = ["placeholder"], mg = ["placeholder"], gg = { class: "page-description-form-actions" }, bg = ["disabled"], yg = { class: "annotation-popover-head" }, hg = ["disabled", "title"], wg = {
|
|
3397
3399
|
key: 10,
|
|
3398
3400
|
class: "annotation-form-backdrop"
|
|
3399
|
-
},
|
|
3401
|
+
}, xg = ["placeholder"], Sg = ["placeholder"], kg = ["placeholder"], Cg = ["placeholder"], $g = { class: "annotation-form-actions" }, _g = ["disabled"], Ig = {
|
|
3400
3402
|
key: 11,
|
|
3401
3403
|
class: "annotation-form-backdrop"
|
|
3402
|
-
},
|
|
3404
|
+
}, Pg = ["readonly"], Dg = ["readonly"], Ag = ["readonly"], Ng = { key: 0 }, Tg = ["placeholder"], Rg = ["disabled"], Eg = { class: "page-description-summary-dialog" }, Og = { class: "page-description-summary-head" }, Bg = {
|
|
3403
3405
|
class: "page-description-summary-options",
|
|
3404
3406
|
"aria-label": "选择展示的页面描述部分"
|
|
3405
|
-
},
|
|
3407
|
+
}, Mg = ["checked", "onChange"], Ug = { class: "page-description-summary-body" }, jg = {
|
|
3406
3408
|
key: 0,
|
|
3407
3409
|
class: "page-description-summary-empty"
|
|
3408
|
-
},
|
|
3410
|
+
}, Vg = { class: "page-description-summary-actions" }, Lg = ["disabled"], Fg = {
|
|
3409
3411
|
class: "prototype-health-panel",
|
|
3410
3412
|
role: "dialog",
|
|
3411
3413
|
"aria-modal": "true",
|
|
3412
3414
|
"aria-label": "原型健康检查"
|
|
3413
|
-
},
|
|
3415
|
+
}, Kg = { class: "prototype-health-head" }, zg = { class: "prototype-health-tabs" }, Gg = { class: "prototype-health-stat-grid" }, Hg = { class: "prototype-health-section" }, Wg = { class: "prototype-health-section-head" }, Yg = { class: "prototype-health-issues" }, Jg = {
|
|
3414
3416
|
key: 1,
|
|
3415
3417
|
class: "prototype-health-section prototype-health-matrix-section"
|
|
3416
|
-
},
|
|
3418
|
+
}, Xg = { class: "prototype-health-table-wrap" }, Zg = { class: "prototype-health-table" }, qg = { class: "w-full max-w-xl rounded-[24px] border border-line bg-panel p-5 text-left shadow-[0_24px_70px_rgb(0_0_0/0.18)]" }, Qg = { class: "flex items-start justify-between gap-4" }, e1 = { class: "mt-1 text-xs text-muted" }, t1 = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, n1 = ["onClick"], o1 = { class: "flex items-center justify-between gap-3" }, a1 = { class: "text-sm font-semibold text-ink" }, l1 = { class: "flex shrink-0 items-center gap-2" }, s1 = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, i1 = { class: "mt-2 text-sm leading-5 text-muted" }, r1 = {
|
|
3417
3419
|
key: 0,
|
|
3418
3420
|
class: "border-t border-line bg-panel/60 px-3 py-3"
|
|
3419
|
-
},
|
|
3421
|
+
}, u1 = {
|
|
3420
3422
|
key: 0,
|
|
3421
3423
|
class: "space-y-2"
|
|
3422
|
-
},
|
|
3424
|
+
}, c1 = {
|
|
3423
3425
|
key: 1,
|
|
3424
3426
|
class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
|
|
3425
|
-
},
|
|
3427
|
+
}, d1 = {
|
|
3426
3428
|
key: 0,
|
|
3427
3429
|
class: "rounded-[16px] bg-soft p-3 text-sm text-muted"
|
|
3428
|
-
},
|
|
3430
|
+
}, p1 = { class: "mobile-page-picker" }, v1 = { class: "mobile-page-picker-list" }, f1 = ["onClick"], m1 = { class: "mobile-page-picker-code" }, g1 = { class: "mobile-page-picker-copy" }, b1 = {
|
|
3429
3431
|
key: 0,
|
|
3430
3432
|
class: "mobile-page-picker-count"
|
|
3431
|
-
},
|
|
3433
|
+
}, y1 = {
|
|
3432
3434
|
key: 0,
|
|
3433
3435
|
class: "mobile-page-picker-states"
|
|
3434
|
-
},
|
|
3436
|
+
}, h1 = ["onClick"], es = "prototype-core-authenticated", Ln = "prototype-core-page-description-summary-sections", Do = "prototype-core-panel-state-v1", ts = 393, w1 = 852, x1 = 24, Sa = 1920, S1 = 1080, k1 = 640, C1 = 60 * 1e3, P1 = /* @__PURE__ */ kn({
|
|
3435
3437
|
__name: "App",
|
|
3436
3438
|
setup(t) {
|
|
3437
3439
|
var Ll;
|
|
@@ -3443,7 +3445,7 @@ const Cf = {
|
|
|
3443
3445
|
selectedFlowId: m,
|
|
3444
3446
|
selectedThemeId: g,
|
|
3445
3447
|
showThemePanel: C,
|
|
3446
|
-
themeImportInput:
|
|
3448
|
+
themeImportInput: I,
|
|
3447
3449
|
flowZoom: M,
|
|
3448
3450
|
isFlowPanning: se,
|
|
3449
3451
|
selectedTab: xe,
|
|
@@ -3498,7 +3500,7 @@ const Cf = {
|
|
|
3498
3500
|
currentScreenAnnotations: T,
|
|
3499
3501
|
currentPageDescription: R,
|
|
3500
3502
|
isScreenHighlighted: D,
|
|
3501
|
-
activeScreenHighlightedStateIds:
|
|
3503
|
+
activeScreenHighlightedStateIds: G,
|
|
3502
3504
|
hoveredAnnotation: le,
|
|
3503
3505
|
initializePrototype: ge,
|
|
3504
3506
|
t: $,
|
|
@@ -3511,11 +3513,11 @@ const Cf = {
|
|
|
3511
3513
|
go: ao,
|
|
3512
3514
|
goToAnnotatedScreen: Go,
|
|
3513
3515
|
goTab: Ho,
|
|
3514
|
-
startAnnotationPlacement:
|
|
3516
|
+
startAnnotationPlacement: _n,
|
|
3515
3517
|
cancelAnnotationDraft: Jt,
|
|
3516
3518
|
handleAnnotationCanvasClick: Wo,
|
|
3517
3519
|
saveAnnotationDraft: lo,
|
|
3518
|
-
openAnnotationDialog:
|
|
3520
|
+
openAnnotationDialog: In,
|
|
3519
3521
|
closeAnnotationDialog: sn,
|
|
3520
3522
|
saveAnnotationEdit: h,
|
|
3521
3523
|
updateAnnotationPosition: d,
|
|
@@ -3546,7 +3548,7 @@ const Cf = {
|
|
|
3546
3548
|
zoomFlowAtPoint: ki,
|
|
3547
3549
|
overviewZoom: wt,
|
|
3548
3550
|
overviewColumns: Xt
|
|
3549
|
-
} =
|
|
3551
|
+
} = Cf(), { saveFlowsToSession: Ci, pushFlowsToGitee: $i, exportFlows: _i } = kf(), { unresolvedBugCount: ll, initializeBugs: Ii } = As(), Pi = k(
|
|
3550
3552
|
() => fe.filter((i) => i.platform === "mobile" && i.hasTabBar).map((i) => ({ id: i.id, label: i.title, icon: i.icon }))
|
|
3551
3553
|
), Jo = {
|
|
3552
3554
|
gitee: "Gitee",
|
|
@@ -3615,7 +3617,7 @@ const Cf = {
|
|
|
3615
3617
|
]
|
|
3616
3618
|
}
|
|
3617
3619
|
];
|
|
3618
|
-
}), rl = k(() => Zo.value.reduce((i, o) => i + o.items.length, 0)), ul = k(() => Zo.value.reduce((i, o) => i + o.items.filter((a) => a.configured).length, 0)), qo = k(() => rl.value - ul.value), Qo = "1.0.
|
|
3620
|
+
}), rl = k(() => Zo.value.reduce((i, o) => i + o.items.length, 0)), ul = k(() => Zo.value.reduce((i, o) => i + o.items.filter((a) => a.configured).length, 0)), qo = k(() => rl.value - ul.value), Qo = "1.0.8", ea = b(""), qt = b("idle"), Ei = k(() => qt.value === "success" && ea.value !== Qo), Oi = k(() => qt.value === "success" ? `v${ea.value}` : qt.value === "error" ? "版本暂不可用" : "版本检测中");
|
|
3619
3621
|
async function Bi() {
|
|
3620
3622
|
if (qt.value !== "idle") return;
|
|
3621
3623
|
qt.value = "loading";
|
|
@@ -3648,7 +3650,7 @@ const Cf = {
|
|
|
3648
3650
|
return ((i = xt.auth) == null ? void 0 : i.enabled) === !0 && !!(cl() && dl());
|
|
3649
3651
|
}
|
|
3650
3652
|
function vl() {
|
|
3651
|
-
il.value || (ge().then(Ol),
|
|
3653
|
+
il.value || (ge().then(Ol), Ii(), il.value = !0), Bi(), Dr();
|
|
3652
3654
|
}
|
|
3653
3655
|
function Mi() {
|
|
3654
3656
|
if (Pn.value = "", !pl()) {
|
|
@@ -3661,7 +3663,7 @@ const Cf = {
|
|
|
3661
3663
|
}
|
|
3662
3664
|
window.localStorage.setItem(es, "true"), Dn.value = !0, so.value = "", io.value = "", vl();
|
|
3663
3665
|
}
|
|
3664
|
-
const mo =
|
|
3666
|
+
const mo = $f, Et = b(!1), go = b(((Ll = mo[0]) == null ? void 0 : Ll.hash) ?? ""), Ui = k(() => {
|
|
3665
3667
|
var i;
|
|
3666
3668
|
return ((i = mo[0]) == null ? void 0 : i.date) ?? "暂无记录";
|
|
3667
3669
|
}), de = b("prototype"), fl = b(null), Rn = b(!1), En = b(!1), Ot = b(!1), St = b(!1), kt = b(!0), ta = b(!1), ml = b(!1), Q = k(
|
|
@@ -3777,7 +3779,7 @@ const Cf = {
|
|
|
3777
3779
|
Xo = "";
|
|
3778
3780
|
return;
|
|
3779
3781
|
}
|
|
3780
|
-
|
|
3782
|
+
In(i.id);
|
|
3781
3783
|
}
|
|
3782
3784
|
function Qi(i) {
|
|
3783
3785
|
return i.querySelector(".annotation-layer");
|
|
@@ -3998,21 +4000,21 @@ const Cf = {
|
|
|
3998
4000
|
ze.value = Qt.value.map((o) => o.id).filter((o) => !i.has(o)), window.localStorage.setItem(Ln, JSON.stringify(ze.value));
|
|
3999
4001
|
}
|
|
4000
4002
|
const ra = k(() => {
|
|
4001
|
-
const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) -
|
|
4003
|
+
const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) - x1 * (i - 1)) / i;
|
|
4002
4004
|
return Math.min(1, Math.max(0.36, Number((a / ts).toFixed(3))));
|
|
4003
|
-
}), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(
|
|
4005
|
+
}), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(w1 * ra.value * 100) / 100);
|
|
4004
4006
|
function mr() {
|
|
4005
4007
|
if (Be.value)
|
|
4006
4008
|
return Math.min(Sa, On.value, Math.max(0, yo.value - 48) * 16 / 9);
|
|
4007
4009
|
if (K.value === "overview") return $l.value;
|
|
4008
|
-
if (K.value === "flow") return
|
|
4010
|
+
if (K.value === "flow") return k1;
|
|
4009
4011
|
const i = oa.value || On.value;
|
|
4010
4012
|
return Math.min(1440, i, Math.max(0, yo.value - 120) * 16 / 9);
|
|
4011
4013
|
}
|
|
4012
4014
|
function gr(i) {
|
|
4013
4015
|
const o = K.value === "flow" ? hi(i) : {};
|
|
4014
4016
|
if (i.platform !== "pc") return o;
|
|
4015
|
-
const a = Math.max(1, mr()), y = a *
|
|
4017
|
+
const a = Math.max(1, mr()), y = a * S1 / Sa;
|
|
4016
4018
|
return {
|
|
4017
4019
|
...o,
|
|
4018
4020
|
"--desktop-display-width": `${a}px`,
|
|
@@ -4031,14 +4033,14 @@ const Cf = {
|
|
|
4031
4033
|
function yr(i) {
|
|
4032
4034
|
return Math.min(1.2, Math.max(0.25, Number(i.toFixed(2))));
|
|
4033
4035
|
}
|
|
4034
|
-
function
|
|
4036
|
+
function _l(i, o, a) {
|
|
4035
4037
|
const y = yr(i);
|
|
4036
4038
|
if (y === wt.value) return;
|
|
4037
4039
|
const j = (o - pn.value) / wt.value, F = (a - vn.value) / wt.value;
|
|
4038
4040
|
wt.value = y, pn.value = o - j * y, vn.value = a - F * y;
|
|
4039
4041
|
}
|
|
4040
|
-
function
|
|
4041
|
-
|
|
4042
|
+
function Il(i) {
|
|
4043
|
+
_l(
|
|
4042
4044
|
wt.value + i,
|
|
4043
4045
|
On.value / 2,
|
|
4044
4046
|
yo.value / 2
|
|
@@ -4062,7 +4064,7 @@ const Cf = {
|
|
|
4062
4064
|
function xr(i) {
|
|
4063
4065
|
i.preventDefault();
|
|
4064
4066
|
const o = i.currentTarget.getBoundingClientRect();
|
|
4065
|
-
|
|
4067
|
+
_l(
|
|
4066
4068
|
wt.value + (i.deltaY > 0 ? -0.04 : 0.04),
|
|
4067
4069
|
i.clientX - o.left,
|
|
4068
4070
|
i.clientY - o.top
|
|
@@ -4138,7 +4140,7 @@ const Cf = {
|
|
|
4138
4140
|
key: "A",
|
|
4139
4141
|
label: "添加注释点",
|
|
4140
4142
|
run: () => {
|
|
4141
|
-
r.value = "interactive", ce.value = !1, q.value = "annotations",
|
|
4143
|
+
r.value = "interactive", ce.value = !1, q.value = "annotations", _n();
|
|
4142
4144
|
}
|
|
4143
4145
|
},
|
|
4144
4146
|
{
|
|
@@ -4176,15 +4178,15 @@ const Cf = {
|
|
|
4176
4178
|
function $r(i) {
|
|
4177
4179
|
return i instanceof HTMLElement && !!i.closest('input, textarea, select, [contenteditable]:not([contenteditable="false"])');
|
|
4178
4180
|
}
|
|
4179
|
-
function
|
|
4181
|
+
function _r() {
|
|
4180
4182
|
return Et.value || Nt.value || Zt.value || W.value || Rt.value || qe.value || ae.value !== "view" || Z.value || !!Ee.value || !!ee.value;
|
|
4181
4183
|
}
|
|
4182
4184
|
function El(i) {
|
|
4183
4185
|
if (!Dn.value || Q.value || i.defaultPrevented || i.isComposing || i.keyCode === 229 || i.repeat || i.ctrlKey || i.altKey || i.metaKey || $r(i.target)) return;
|
|
4184
4186
|
const o = i.key === "Escape" ? "esc" : i.key.toLowerCase(), a = kr.get(o);
|
|
4185
|
-
a && (o !== "esc" &&
|
|
4187
|
+
a && (o !== "esc" && _r() && !(o === "e" && qe.value) || (i.preventDefault(), a.run()));
|
|
4186
4188
|
}
|
|
4187
|
-
function
|
|
4189
|
+
function Ir(i) {
|
|
4188
4190
|
if (!i || typeof i != "object") return !1;
|
|
4189
4191
|
const o = i;
|
|
4190
4192
|
return ["navigationCollapsed", "collaborationCollapsed", "dataSourceCollapsed", "shortcutsCollapsed"].every((a) => typeof o[a] == "boolean");
|
|
@@ -4192,7 +4194,7 @@ const Cf = {
|
|
|
4192
4194
|
function Pr() {
|
|
4193
4195
|
try {
|
|
4194
4196
|
const i = JSON.parse(window.localStorage.getItem(Do) ?? "null");
|
|
4195
|
-
if (!
|
|
4197
|
+
if (!Ir(i)) {
|
|
4196
4198
|
i !== null && window.localStorage.removeItem(Do);
|
|
4197
4199
|
return;
|
|
4198
4200
|
}
|
|
@@ -4217,7 +4219,7 @@ const Cf = {
|
|
|
4217
4219
|
dt.value && Ol();
|
|
4218
4220
|
});
|
|
4219
4221
|
function Dr() {
|
|
4220
|
-
Co || (Bl(), Co = window.setInterval(Bl,
|
|
4222
|
+
Co || (Bl(), Co = window.setInterval(Bl, C1));
|
|
4221
4223
|
}
|
|
4222
4224
|
async function Bl() {
|
|
4223
4225
|
var o, a;
|
|
@@ -4326,10 +4328,10 @@ const Cf = {
|
|
|
4326
4328
|
const o = Ml(i.touches);
|
|
4327
4329
|
o === null || o - co.value < 72 || (i.preventDefault(), po.value = !0, ro.value = !0, Nn.value = "", uo.value = /* @__PURE__ */ new Set([u.value]));
|
|
4328
4330
|
}
|
|
4329
|
-
function
|
|
4331
|
+
function _o() {
|
|
4330
4332
|
co.value = null, po.value = !1;
|
|
4331
4333
|
}
|
|
4332
|
-
function
|
|
4334
|
+
function Io() {
|
|
4333
4335
|
ro.value = !1, Nn.value = "";
|
|
4334
4336
|
}
|
|
4335
4337
|
function Or(i) {
|
|
@@ -4337,10 +4339,10 @@ const Cf = {
|
|
|
4337
4339
|
o.has(i) ? o.delete(i) : o.add(i), uo.value = o;
|
|
4338
4340
|
}
|
|
4339
4341
|
function Br(i) {
|
|
4340
|
-
ao(i),
|
|
4342
|
+
ao(i), Io();
|
|
4341
4343
|
}
|
|
4342
4344
|
function Mr(i, o) {
|
|
4343
|
-
ao(i), Yt(i, o),
|
|
4345
|
+
ao(i), Yt(i, o), Io();
|
|
4344
4346
|
}
|
|
4345
4347
|
function fa() {
|
|
4346
4348
|
var i;
|
|
@@ -4351,9 +4353,9 @@ const Cf = {
|
|
|
4351
4353
|
}
|
|
4352
4354
|
return Ur(() => {
|
|
4353
4355
|
var i;
|
|
4354
|
-
da(), cr(), Pr(), en = window.matchMedia("(max-width: 640px)"), va(en), en.addEventListener("change", va), window.addEventListener("touchstart", Ul, { passive: !0 }), window.addEventListener("touchmove", jl, { passive: !1 }), window.addEventListener("touchend",
|
|
4356
|
+
da(), cr(), Pr(), en = window.matchMedia("(max-width: 640px)"), va(en), en.addEventListener("change", va), window.addEventListener("touchstart", Ul, { passive: !0 }), window.addEventListener("touchmove", jl, { passive: !1 }), window.addEventListener("touchend", _o, { passive: !0 }), window.addEventListener("touchcancel", _o, { passive: !0 }), window.addEventListener("resize", Vl), window.addEventListener("hashchange", da), fa(), gn = new ResizeObserver(fa), bo.value && gn.observe(bo.value), window.addEventListener("keydown", El), Dn.value = ((i = xt.auth) == null ? void 0 : i.enabled) !== !0 || window.localStorage.getItem(es) === "true", Dn.value ? vl() : pl() || console.error("🔐 [前端认证] 已启用认证但未提供用户名或密码,访问页将无法登录");
|
|
4355
4357
|
}), ls(() => {
|
|
4356
|
-
Tl(), Mn(), Ji(), en == null || en.removeEventListener("change", va), en = void 0, window.removeEventListener("touchstart", Ul), window.removeEventListener("touchmove", jl), window.removeEventListener("touchend",
|
|
4358
|
+
Tl(), Mn(), Ji(), en == null || en.removeEventListener("change", va), en = void 0, window.removeEventListener("touchstart", Ul), window.removeEventListener("touchmove", jl), window.removeEventListener("touchend", _o), window.removeEventListener("touchcancel", _o), window.removeEventListener("resize", Vl), window.removeEventListener("hashchange", da), window.removeEventListener("keydown", El), gn == null || gn.disconnect(), gn = void 0, Co && window.clearInterval(Co), dn && window.clearTimeout(dn);
|
|
4357
4359
|
}), (i, o) => (v(), f("main", {
|
|
4358
4360
|
class: P(["min-h-screen bg-canvas text-ink transition-[padding] duration-200", [
|
|
4359
4361
|
Q.value ? "mobile-pure-interactive" : "",
|
|
@@ -4361,8 +4363,8 @@ const Cf = {
|
|
|
4361
4363
|
]]),
|
|
4362
4364
|
style: Pe(l(ve))
|
|
4363
4365
|
}, [
|
|
4364
|
-
Dn.value ? (v(), f(
|
|
4365
|
-
ko.value && !Q.value ? (v(), f("div",
|
|
4366
|
+
Dn.value ? (v(), f(_, { key: 1 }, [
|
|
4367
|
+
ko.value && !Q.value ? (v(), f("div", Nf, [
|
|
4366
4368
|
e("div", { class: "update-banner-inner" }, [
|
|
4367
4369
|
o[88] || (o[88] = e("p", null, "🔔 检测到新版本,刷新后即可使用最新页面", -1)),
|
|
4368
4370
|
e("div", { class: "update-banner-actions" }, [
|
|
@@ -4378,18 +4380,18 @@ const Cf = {
|
|
|
4378
4380
|
])
|
|
4379
4381
|
])
|
|
4380
4382
|
])) : w("", !0),
|
|
4381
|
-
Q.value ? w("", !0) : (v(), f("div",
|
|
4382
|
-
e("div",
|
|
4383
|
-
e("div",
|
|
4383
|
+
Q.value ? w("", !0) : (v(), f("div", Tf, [
|
|
4384
|
+
e("div", Rf, [
|
|
4385
|
+
e("div", Ef, [
|
|
4384
4386
|
e("button", {
|
|
4385
4387
|
class: "project-title-btn",
|
|
4386
4388
|
type: "button",
|
|
4387
4389
|
onClick: o[2] || (o[2] = (a) => bn())
|
|
4388
4390
|
}, [
|
|
4389
|
-
e("p",
|
|
4390
|
-
e("p",
|
|
4391
|
+
e("p", Of, p(l($)("prototypeTitle")), 1),
|
|
4392
|
+
e("p", Bf, p(l($)("prototypeSubtitle")), 1)
|
|
4391
4393
|
]),
|
|
4392
|
-
e("div",
|
|
4394
|
+
e("div", Mf, [
|
|
4393
4395
|
e("p", null, [
|
|
4394
4396
|
o[89] || (o[89] = e("span", null, "当前", -1)),
|
|
4395
4397
|
e("b", null, "v" + p(l(Qo)), 1)
|
|
@@ -4402,7 +4404,7 @@ const Cf = {
|
|
|
4402
4404
|
])
|
|
4403
4405
|
])
|
|
4404
4406
|
]),
|
|
4405
|
-
e("div",
|
|
4407
|
+
e("div", Uf, [
|
|
4406
4408
|
o[92] || (o[92] = e("a", {
|
|
4407
4409
|
class: "mode-btn top-level-mode-btn rounded-full bg-panel ring-1 ring-line",
|
|
4408
4410
|
href: "https://altimodo-doc.doc.gominex.com/",
|
|
@@ -4421,10 +4423,10 @@ const Cf = {
|
|
|
4421
4423
|
class: P(["mode-btn bug-nav-btn rounded-full bg-panel ring-1 ring-line", { active: de.value === "bugs" }]),
|
|
4422
4424
|
onClick: Tr
|
|
4423
4425
|
}, [
|
|
4424
|
-
o[91] || (o[91] =
|
|
4425
|
-
l(ll) ? (v(), f("span",
|
|
4426
|
+
o[91] || (o[91] = H(" Bug ", -1)),
|
|
4427
|
+
l(ll) ? (v(), f("span", jf, p(l(ll)), 1)) : w("", !0)
|
|
4426
4428
|
], 2),
|
|
4427
|
-
e("div",
|
|
4429
|
+
e("div", Vf, [
|
|
4428
4430
|
e("button", {
|
|
4429
4431
|
class: P(["mode-btn", { active: de.value === "prototype" && l(r) === "interactive" }]),
|
|
4430
4432
|
onClick: o[3] || (o[3] = (a) => bn("interactive"))
|
|
@@ -4438,7 +4440,7 @@ const Cf = {
|
|
|
4438
4440
|
onClick: o[5] || (o[5] = (a) => bn("flow"))
|
|
4439
4441
|
}, "流程模式", 2)
|
|
4440
4442
|
]),
|
|
4441
|
-
e("div",
|
|
4443
|
+
e("div", Lf, [
|
|
4442
4444
|
e("button", {
|
|
4443
4445
|
class: P(["mode-btn", { active: l(s) === "zh" }]),
|
|
4444
4446
|
onClick: o[6] || (o[6] = (a) => s.value = "zh")
|
|
@@ -4448,7 +4450,7 @@ const Cf = {
|
|
|
4448
4450
|
onClick: o[7] || (o[7] = (a) => s.value = "en")
|
|
4449
4451
|
}, "English", 2)
|
|
4450
4452
|
]),
|
|
4451
|
-
e("div",
|
|
4453
|
+
e("div", Ff, [
|
|
4452
4454
|
e("button", {
|
|
4453
4455
|
class: P(["mode-btn flex items-center gap-2", { active: l(C) }]),
|
|
4454
4456
|
onClick: o[8] || (o[8] = (a) => C.value = !l(C))
|
|
@@ -4457,13 +4459,13 @@ const Cf = {
|
|
|
4457
4459
|
class: "theme-swatch",
|
|
4458
4460
|
style: Pe({ "--swatch-color": l(ot).ocean })
|
|
4459
4461
|
}, null, 4),
|
|
4460
|
-
|
|
4462
|
+
H(" " + p(l($)("themeButton")), 1)
|
|
4461
4463
|
], 2),
|
|
4462
|
-
l(C) ? (v(), f("div",
|
|
4463
|
-
e("div",
|
|
4464
|
+
l(C) ? (v(), f("div", Kf, [
|
|
4465
|
+
e("div", zf, [
|
|
4464
4466
|
e("div", null, [
|
|
4465
|
-
e("p",
|
|
4466
|
-
e("p",
|
|
4467
|
+
e("p", Gf, p(l($)("themeTitle")), 1),
|
|
4468
|
+
e("p", Hf, p(l($)("themeDescription")), 1)
|
|
4467
4469
|
]),
|
|
4468
4470
|
e("button", {
|
|
4469
4471
|
class: "text-xs font-semibold text-ocean",
|
|
@@ -4471,8 +4473,8 @@ const Cf = {
|
|
|
4471
4473
|
(...a) => l(lt) && l(lt)(...a))
|
|
4472
4474
|
}, p(l($)("themeReset")), 1)
|
|
4473
4475
|
]),
|
|
4474
|
-
e("div",
|
|
4475
|
-
(v(!0), f(
|
|
4476
|
+
e("div", Wf, [
|
|
4477
|
+
(v(!0), f(_, null, N(l(ie), (a) => (v(), f("button", {
|
|
4476
4478
|
key: a.id,
|
|
4477
4479
|
class: P(["theme-scheme-btn", { active: l(g) === a.id }]),
|
|
4478
4480
|
onClick: (y) => l($n)(a.id)
|
|
@@ -4481,13 +4483,13 @@ const Cf = {
|
|
|
4481
4483
|
class: "theme-swatch",
|
|
4482
4484
|
style: Pe({ "--swatch-color": a.colors.ocean })
|
|
4483
4485
|
}, null, 4),
|
|
4484
|
-
e("span",
|
|
4486
|
+
e("span", Jf, [
|
|
4485
4487
|
e("b", null, p(l($)(a.nameKey)), 1),
|
|
4486
4488
|
e("small", null, p(l($)(a.descriptionKey)), 1)
|
|
4487
4489
|
])
|
|
4488
|
-
], 10,
|
|
4490
|
+
], 10, Yf))), 128))
|
|
4489
4491
|
]),
|
|
4490
|
-
e("div",
|
|
4492
|
+
e("div", Xf, [
|
|
4491
4493
|
e("button", {
|
|
4492
4494
|
class: "theme-file-btn",
|
|
4493
4495
|
onClick: o[10] || (o[10] = //@ts-ignore
|
|
@@ -4497,12 +4499,12 @@ const Cf = {
|
|
|
4497
4499
|
class: "theme-file-btn",
|
|
4498
4500
|
onClick: o[11] || (o[11] = (a) => {
|
|
4499
4501
|
var y;
|
|
4500
|
-
return (y = l(
|
|
4502
|
+
return (y = l(I)) == null ? void 0 : y.click();
|
|
4501
4503
|
})
|
|
4502
4504
|
}, p(l($)("themeImport")), 1),
|
|
4503
4505
|
e("input", {
|
|
4504
4506
|
ref_key: "themeImportInput",
|
|
4505
|
-
ref:
|
|
4507
|
+
ref: I,
|
|
4506
4508
|
class: "hidden",
|
|
4507
4509
|
type: "file",
|
|
4508
4510
|
accept: "application/json,.json",
|
|
@@ -4510,8 +4512,8 @@ const Cf = {
|
|
|
4510
4512
|
(...a) => l(oo) && l(oo)(...a))
|
|
4511
4513
|
}, null, 544)
|
|
4512
4514
|
]),
|
|
4513
|
-
e("div",
|
|
4514
|
-
(v(!0), f(
|
|
4515
|
+
e("div", Zf, [
|
|
4516
|
+
(v(!0), f(_, null, N(l(n), (a) => (v(), f("label", {
|
|
4515
4517
|
key: a.key,
|
|
4516
4518
|
class: "theme-color-field"
|
|
4517
4519
|
}, [
|
|
@@ -4519,7 +4521,7 @@ const Cf = {
|
|
|
4519
4521
|
type: "color",
|
|
4520
4522
|
value: l(ot)[a.key],
|
|
4521
4523
|
onInput: (y) => l(Wt)(a.key, y.target.value)
|
|
4522
|
-
}, null, 40,
|
|
4524
|
+
}, null, 40, qf),
|
|
4523
4525
|
e("span", null, [
|
|
4524
4526
|
e("b", null, p(l($)(a.labelKey)), 1),
|
|
4525
4527
|
e("small", null, p(l($)(a.descKey)), 1)
|
|
@@ -4528,7 +4530,7 @@ const Cf = {
|
|
|
4528
4530
|
type: "text",
|
|
4529
4531
|
value: l(ot)[a.key],
|
|
4530
4532
|
onInput: (y) => l(Wt)(a.key, y.target.value)
|
|
4531
|
-
}, null, 40,
|
|
4533
|
+
}, null, 40, Qf)
|
|
4532
4534
|
]))), 128))
|
|
4533
4535
|
])
|
|
4534
4536
|
])) : w("", !0)
|
|
@@ -4536,7 +4538,7 @@ const Cf = {
|
|
|
4536
4538
|
])
|
|
4537
4539
|
])
|
|
4538
4540
|
])),
|
|
4539
|
-
de.value === "bugs" && !Q.value ? (v(), st(
|
|
4541
|
+
de.value === "bugs" && !Q.value ? (v(), st(Vp, {
|
|
4540
4542
|
key: 2,
|
|
4541
4543
|
onClose: pa
|
|
4542
4544
|
})) : w("", !0),
|
|
@@ -4544,7 +4546,7 @@ const Cf = {
|
|
|
4544
4546
|
key: 3,
|
|
4545
4547
|
class: P(["prototype-stage mx-auto flex w-full flex-col gap-6 px-4 py-6 lg:px-8", K.value === "overview" ? "max-w-none" : K.value === "interactive" && l(bt) === "pc" ? "max-w-[1504px]" : "max-w-7xl"])
|
|
4546
4548
|
}, [
|
|
4547
|
-
Q.value ? w("", !0) : (v(), f("section",
|
|
4549
|
+
Q.value ? w("", !0) : (v(), f("section", em, [
|
|
4548
4550
|
K.value === "interactive" ? (v(), f("button", {
|
|
4549
4551
|
key: 0,
|
|
4550
4552
|
class: "page-description-summary",
|
|
@@ -4555,15 +4557,15 @@ const Cf = {
|
|
|
4555
4557
|
}, [
|
|
4556
4558
|
e("p", null, [
|
|
4557
4559
|
o[93] || (o[93] = e("b", null, "页面结构:", -1)),
|
|
4558
|
-
|
|
4560
|
+
H(p(et.value.structure), 1)
|
|
4559
4561
|
]),
|
|
4560
4562
|
e("p", null, [
|
|
4561
4563
|
o[94] || (o[94] = e("b", null, "核心功能:", -1)),
|
|
4562
|
-
|
|
4564
|
+
H(p(et.value.features), 1)
|
|
4563
4565
|
])
|
|
4564
|
-
])) : (v(), f("p",
|
|
4566
|
+
])) : (v(), f("p", tm, p(l($)("heroCopy")), 1))
|
|
4565
4567
|
])),
|
|
4566
|
-
e("div",
|
|
4568
|
+
e("div", nm, [
|
|
4567
4569
|
K.value === "interactive" && !Q.value ? (v(), f("aside", {
|
|
4568
4570
|
key: 0,
|
|
4569
4571
|
class: P(["apple-side-nav interactive-side-nav", {
|
|
@@ -4577,14 +4579,14 @@ const Cf = {
|
|
|
4577
4579
|
type: "button",
|
|
4578
4580
|
onClick: Al
|
|
4579
4581
|
}, p(Ot.value ? "展开导航" : "收起导航"), 1),
|
|
4580
|
-
Ot.value ? w("", !0) : (v(), f("div",
|
|
4582
|
+
Ot.value ? w("", !0) : (v(), f("div", om, [
|
|
4581
4583
|
e("div", {
|
|
4582
4584
|
ref_key: "interactiveSideNavRef",
|
|
4583
4585
|
ref: fl,
|
|
4584
4586
|
class: "interactive-side-nav-scroll",
|
|
4585
4587
|
onScroll: ua
|
|
4586
4588
|
}, [
|
|
4587
|
-
(v(!0), f(
|
|
4589
|
+
(v(!0), f(_, null, N(l(fe), (a) => (v(), f("button", {
|
|
4588
4590
|
key: a.id,
|
|
4589
4591
|
class: P(["nav-row", { active: l(u) === a.id }]),
|
|
4590
4592
|
onClick: (y) => l(Go)(a.id)
|
|
@@ -4594,24 +4596,26 @@ const Cf = {
|
|
|
4594
4596
|
"aria-hidden": "true"
|
|
4595
4597
|
}, p(a.platform === "pc" ? "P" : "M"), 3),
|
|
4596
4598
|
(v(), st(Bo(a.icon), { class: "h-4 w-4" })),
|
|
4597
|
-
e("span",
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4599
|
+
e("span", lm, p(a.code) + " " + p(a.title), 1),
|
|
4600
|
+
e("span", sm, [
|
|
4601
|
+
l(yt)(a.id) ? (v(), f("span", im, p(l(yt)(a.id)), 1)) : w("", !0),
|
|
4602
|
+
l(D)(a.id) ? (v(), f("span", rm)) : w("", !0)
|
|
4603
|
+
])
|
|
4604
|
+
], 10, am))), 128))
|
|
4601
4605
|
], 544),
|
|
4602
|
-
Rn.value ? (v(), f("svg",
|
|
4606
|
+
Rn.value ? (v(), f("svg", um, [...o[95] || (o[95] = [
|
|
4603
4607
|
e("path", { d: "M12 19V5M5 12l7-7 7 7" }, null, -1)
|
|
4604
4608
|
])])) : w("", !0),
|
|
4605
|
-
En.value ? (v(), f("svg",
|
|
4609
|
+
En.value ? (v(), f("svg", cm, [...o[96] || (o[96] = [
|
|
4606
4610
|
e("path", { d: "M12 5v14M5 12l7 7 7-7" }, null, -1)
|
|
4607
4611
|
])])) : w("", !0)
|
|
4608
4612
|
]))
|
|
4609
4613
|
], 2)) : w("", !0),
|
|
4610
|
-
K.value === "overview" ? (v(), f("aside",
|
|
4614
|
+
K.value === "overview" ? (v(), f("aside", dm, [
|
|
4611
4615
|
o[101] || (o[101] = e("p", { class: "px-2 pb-3 text-sm font-semibold text-muted" }, "显示设置", -1)),
|
|
4612
|
-
e("div",
|
|
4616
|
+
e("div", pm, [
|
|
4613
4617
|
o[99] || (o[99] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "每行数量", -1)),
|
|
4614
|
-
e("div",
|
|
4618
|
+
e("div", vm, [
|
|
4615
4619
|
o[97] || (o[97] = e("span", { class: "text-xs text-muted" }, "3", -1)),
|
|
4616
4620
|
A(e("input", {
|
|
4617
4621
|
"onUpdate:modelValue": o[14] || (o[14] = (a) => yn(Xt) ? Xt.value = a : null),
|
|
@@ -4630,22 +4634,22 @@ const Cf = {
|
|
|
4630
4634
|
]
|
|
4631
4635
|
]),
|
|
4632
4636
|
o[98] || (o[98] = e("span", { class: "text-xs text-muted" }, "6", -1)),
|
|
4633
|
-
e("strong",
|
|
4637
|
+
e("strong", fm, p(l(Xt)), 1)
|
|
4634
4638
|
])
|
|
4635
4639
|
]),
|
|
4636
|
-
e("div",
|
|
4640
|
+
e("div", mm, [
|
|
4637
4641
|
o[100] || (o[100] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "缩放", -1)),
|
|
4638
|
-
e("div",
|
|
4642
|
+
e("div", gm, [
|
|
4639
4643
|
e("button", {
|
|
4640
4644
|
type: "button",
|
|
4641
4645
|
class: "overview-zoom-btn",
|
|
4642
|
-
onClick: o[15] || (o[15] = (a) =>
|
|
4646
|
+
onClick: o[15] || (o[15] = (a) => Il(-0.06))
|
|
4643
4647
|
}, "−"),
|
|
4644
|
-
e("strong",
|
|
4648
|
+
e("strong", bm, p(Math.round(l(wt) * 100)) + "%", 1),
|
|
4645
4649
|
e("button", {
|
|
4646
4650
|
type: "button",
|
|
4647
4651
|
class: "overview-zoom-btn",
|
|
4648
|
-
onClick: o[16] || (o[16] = (a) =>
|
|
4652
|
+
onClick: o[16] || (o[16] = (a) => Il(0.06))
|
|
4649
4653
|
}, "+"),
|
|
4650
4654
|
e("button", {
|
|
4651
4655
|
type: "button",
|
|
@@ -4657,8 +4661,8 @@ const Cf = {
|
|
|
4657
4661
|
])
|
|
4658
4662
|
])
|
|
4659
4663
|
])) : w("", !0),
|
|
4660
|
-
K.value === "flow" ? (v(), f("aside",
|
|
4661
|
-
e("div",
|
|
4664
|
+
K.value === "flow" ? (v(), f("aside", ym, [
|
|
4665
|
+
e("div", hm, [
|
|
4662
4666
|
o[103] || (o[103] = e("p", { class: "text-sm font-semibold text-muted" }, "主流程", -1)),
|
|
4663
4667
|
e("button", {
|
|
4664
4668
|
class: "flex items-center gap-1 rounded-lg bg-soft px-2.5 py-1 text-xs font-medium text-ink hover:bg-canvas transition",
|
|
@@ -4676,28 +4680,28 @@ const Cf = {
|
|
|
4676
4680
|
e("path", { d: "M12 20h9" }),
|
|
4677
4681
|
e("path", { d: "M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" })
|
|
4678
4682
|
], -1),
|
|
4679
|
-
|
|
4683
|
+
H(" 编辑流程 ", -1)
|
|
4680
4684
|
])])
|
|
4681
4685
|
]),
|
|
4682
|
-
(v(!0), f(
|
|
4686
|
+
(v(!0), f(_, null, N(l(Pt), (a) => (v(), f("button", {
|
|
4683
4687
|
key: a.id,
|
|
4684
4688
|
class: P(["nav-row flow-nav-row", { active: l(m) === a.id }]),
|
|
4685
4689
|
onClick: (y) => l(yi)(a.id)
|
|
4686
4690
|
}, [
|
|
4687
4691
|
o[104] || (o[104] = e("span", { class: "flow-dot" }, null, -1)),
|
|
4688
|
-
e("span",
|
|
4692
|
+
e("span", xm, [
|
|
4689
4693
|
e("b", null, p(a.title), 1),
|
|
4690
4694
|
e("small", null, p(a.subtitle), 1)
|
|
4691
4695
|
])
|
|
4692
|
-
], 10,
|
|
4696
|
+
], 10, wm))), 128))
|
|
4693
4697
|
])) : w("", !0),
|
|
4694
4698
|
e("section", {
|
|
4695
4699
|
ref_key: "overviewStageRef",
|
|
4696
4700
|
ref: bo,
|
|
4697
4701
|
class: "flex-1 relative"
|
|
4698
4702
|
}, [
|
|
4699
|
-
K.value === "flow" ? (v(), f("div",
|
|
4700
|
-
e("div",
|
|
4703
|
+
K.value === "flow" ? (v(), f("div", Sm, [
|
|
4704
|
+
e("div", km, [
|
|
4701
4705
|
e("button", {
|
|
4702
4706
|
type: "button",
|
|
4703
4707
|
onClick: o[18] || (o[18] = (a) => l(nl)(0.06))
|
|
@@ -4749,7 +4753,7 @@ const Cf = {
|
|
|
4749
4753
|
class: P(K.value === "overview" ? "overview-grid" : "contents"),
|
|
4750
4754
|
style: Pe(K.value === "overview" ? br.value : void 0)
|
|
4751
4755
|
}, [
|
|
4752
|
-
(v(!0), f(
|
|
4756
|
+
(v(!0), f(_, null, N(K.value === "flow" ? l(at) : [], (a) => (v(), f("div", {
|
|
4753
4757
|
key: a.key,
|
|
4754
4758
|
class: "flow-row-label",
|
|
4755
4759
|
style: Pe(l(wi)(a.row))
|
|
@@ -4757,7 +4761,7 @@ const Cf = {
|
|
|
4757
4761
|
o[105] || (o[105] = e("span", null, "子流程", -1)),
|
|
4758
4762
|
e("strong", null, p(a.label), 1)
|
|
4759
4763
|
], 4))), 128)),
|
|
4760
|
-
(v(!0), f(
|
|
4764
|
+
(v(!0), f(_, null, N(Li.value, (a) => (v(), f("article", {
|
|
4761
4765
|
key: K.value === "flow" ? `${a.id}-${a.stateId ?? "default"}-${a.flowRow}-${a.flowCol}` : `${a.id}-${a.stateId ?? "default"}`,
|
|
4762
4766
|
class: P([
|
|
4763
4767
|
a.platform === "pc" ? "desktop-shell" : "phone-shell",
|
|
@@ -4775,19 +4779,19 @@ const Cf = {
|
|
|
4775
4779
|
"overview-desktop-scale": K.value === "overview" && a.platform === "pc"
|
|
4776
4780
|
}])
|
|
4777
4781
|
}, [
|
|
4778
|
-
K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(
|
|
4782
|
+
K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(du, {
|
|
4779
4783
|
key: 0,
|
|
4780
4784
|
title: l($)("prototypeStateSwitch"),
|
|
4781
4785
|
options: l(Ye),
|
|
4782
4786
|
"active-id": l(Ze),
|
|
4783
4787
|
"count-for-state": (y) => l(Ke)(l(u), y),
|
|
4784
|
-
"highlighted-ids": l(
|
|
4788
|
+
"highlighted-ids": l(G),
|
|
4785
4789
|
onChange: o[22] || (o[22] = (y) => l(Yt)(l(u), y))
|
|
4786
4790
|
}, null, 8, ["title", "options", "active-id", "count-for-state", "highlighted-ids"])) : w("", !0),
|
|
4787
4791
|
e("div", {
|
|
4788
4792
|
class: P(a.platform === "pc" ? "desktop-frame" : "phone-screen")
|
|
4789
4793
|
}, [
|
|
4790
|
-
a.platform === "mobile" && !Q.value ? (v(), f("div",
|
|
4794
|
+
a.platform === "mobile" && !Q.value ? (v(), f("div", Cm, [...o[106] || (o[106] = [
|
|
4791
4795
|
e("span", null, "9:41", -1),
|
|
4792
4796
|
e("span", null, "86%", -1)
|
|
4793
4797
|
])])) : w("", !0),
|
|
@@ -4799,10 +4803,10 @@ const Cf = {
|
|
|
4799
4803
|
}]),
|
|
4800
4804
|
onClickCapture: (y) => !Q.value && l(Wo)(y, a.id)
|
|
4801
4805
|
}, [
|
|
4802
|
-
e("div",
|
|
4806
|
+
e("div", _m, [
|
|
4803
4807
|
X(zn, { screen: a }, null, 8, ["screen"]),
|
|
4804
|
-
K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div",
|
|
4805
|
-
(v(!0), f(
|
|
4808
|
+
K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div", Im, [
|
|
4809
|
+
(v(!0), f(_, null, N(l(T), (y, j) => {
|
|
4806
4810
|
var F;
|
|
4807
4811
|
return v(), f("div", {
|
|
4808
4812
|
key: y.id,
|
|
@@ -4827,8 +4831,8 @@ const Cf = {
|
|
|
4827
4831
|
onPointermove: nr,
|
|
4828
4832
|
onPointerup: or,
|
|
4829
4833
|
onPointercancel: ar
|
|
4830
|
-
}, p(j + 1), 41,
|
|
4831
|
-
], 46,
|
|
4834
|
+
}, p(j + 1), 41, Dm)
|
|
4835
|
+
], 46, Pm);
|
|
4832
4836
|
}), 128)),
|
|
4833
4837
|
Ki.value ? (v(), f("div", {
|
|
4834
4838
|
key: 0,
|
|
@@ -4842,7 +4846,7 @@ const Cf = {
|
|
|
4842
4846
|
])], 4)) : w("", !0)
|
|
4843
4847
|
])) : w("", !0)
|
|
4844
4848
|
])
|
|
4845
|
-
], 42,
|
|
4849
|
+
], 42, $m),
|
|
4846
4850
|
a.platform === "mobile" && a.hasTabBar ? (v(), st(au, {
|
|
4847
4851
|
key: 1,
|
|
4848
4852
|
active: l(xe),
|
|
@@ -4859,10 +4863,10 @@ const Cf = {
|
|
|
4859
4863
|
class: P(["platform-badge is-small", a.platform === "pc" ? "is-pc" : "is-mobile"]),
|
|
4860
4864
|
"aria-hidden": "true"
|
|
4861
4865
|
}, p(a.platform === "pc" ? "P" : "M"), 3),
|
|
4862
|
-
a.platform === "mobile" ? (v(), f("br",
|
|
4863
|
-
|
|
4864
|
-
a.stateLabel ? (v(), f(
|
|
4865
|
-
|
|
4866
|
+
a.platform === "mobile" ? (v(), f("br", Am)) : w("", !0),
|
|
4867
|
+
H(" " + p(a.code) + " · " + p(a.title), 1),
|
|
4868
|
+
a.stateLabel ? (v(), f(_, { key: 1 }, [
|
|
4869
|
+
H(" · " + p(a.stateLabel), 1)
|
|
4866
4870
|
], 64)) : w("", !0)
|
|
4867
4871
|
], 2)) : w("", !0)
|
|
4868
4872
|
], 6))), 128))
|
|
@@ -4880,20 +4884,20 @@ const Cf = {
|
|
|
4880
4884
|
type: "button",
|
|
4881
4885
|
onClick: o[29] || (o[29] = (a) => ce.value = !l(ce))
|
|
4882
4886
|
}, p(l(ce) ? l($)("annotationExpand") : l($)("annotationCollapse")), 1),
|
|
4883
|
-
l(ce) ? w("", !0) : (v(), f(
|
|
4884
|
-
e("div",
|
|
4887
|
+
l(ce) ? w("", !0) : (v(), f(_, { key: 0 }, [
|
|
4888
|
+
e("div", Nm, [
|
|
4885
4889
|
e("div", null, [
|
|
4886
4890
|
e("p", null, p(l($)("annotationPanelTitle")), 1),
|
|
4887
4891
|
e("span", null, [
|
|
4888
|
-
|
|
4889
|
-
fn.value ? (v(), f(
|
|
4890
|
-
|
|
4892
|
+
H(p(l($)("annotationPanelSubtitle")) + " · " + p(l(mt).code), 1),
|
|
4893
|
+
fn.value ? (v(), f(_, { key: 0 }, [
|
|
4894
|
+
H(" · " + p(fn.value), 1)
|
|
4891
4895
|
], 64)) : w("", !0)
|
|
4892
4896
|
])
|
|
4893
4897
|
]),
|
|
4894
4898
|
e("strong", null, p(l(q) === "annotations" ? l(T).length : l(R) ? 1 : 0), 1)
|
|
4895
4899
|
]),
|
|
4896
|
-
e("div",
|
|
4900
|
+
e("div", Tm, [
|
|
4897
4901
|
e("button", {
|
|
4898
4902
|
type: "button",
|
|
4899
4903
|
class: P({ active: l(q) === "annotations" }),
|
|
@@ -4907,12 +4911,12 @@ const Cf = {
|
|
|
4907
4911
|
})
|
|
4908
4912
|
}, p(l($)("annotationTabDescription")), 3)
|
|
4909
4913
|
]),
|
|
4910
|
-
l(q) === "annotations" ? (v(), f("div",
|
|
4914
|
+
l(q) === "annotations" ? (v(), f("div", Rm, [
|
|
4911
4915
|
e("button", {
|
|
4912
4916
|
type: "button",
|
|
4913
4917
|
class: P({ active: l(Z) }),
|
|
4914
4918
|
onClick: o[32] || (o[32] = //@ts-ignore
|
|
4915
|
-
(...a) => l(
|
|
4919
|
+
(...a) => l(_n) && l(_n)(...a))
|
|
4916
4920
|
}, p(l(Z) ? l($)("annotationCancelAdd") : l($)("annotationAdd")), 3),
|
|
4917
4921
|
e("button", {
|
|
4918
4922
|
type: "button",
|
|
@@ -4922,18 +4926,18 @@ const Cf = {
|
|
|
4922
4926
|
type: "button",
|
|
4923
4927
|
disabled: l(ke) === "syncing",
|
|
4924
4928
|
onClick: o[34] || (o[34] = (a) => l(ht)())
|
|
4925
|
-
}, p(l($)("annotationRefresh")), 9,
|
|
4929
|
+
}, p(l($)("annotationRefresh")), 9, Em),
|
|
4926
4930
|
e("button", {
|
|
4927
4931
|
type: "button",
|
|
4928
4932
|
onClick: o[35] || (o[35] = //@ts-ignore
|
|
4929
4933
|
(...a) => l(Qa) && l(Qa)(...a))
|
|
4930
4934
|
}, p(l($)("annotationExport")), 1)
|
|
4931
|
-
])) : (v(), f("div",
|
|
4935
|
+
])) : (v(), f("div", Om, [
|
|
4932
4936
|
e("button", {
|
|
4933
4937
|
type: "button",
|
|
4934
4938
|
disabled: l(ke) === "syncing",
|
|
4935
4939
|
onClick: o[36] || (o[36] = (a) => l(rn)())
|
|
4936
|
-
}, p(l($)("annotationRefresh")), 9,
|
|
4940
|
+
}, p(l($)("annotationRefresh")), 9, Bm),
|
|
4937
4941
|
e("button", {
|
|
4938
4942
|
type: "button",
|
|
4939
4943
|
onClick: o[37] || (o[37] = //@ts-ignore
|
|
@@ -4950,19 +4954,19 @@ const Cf = {
|
|
|
4950
4954
|
}, [
|
|
4951
4955
|
e("span", null, p(l(Se) ? l(Je) : l($)("annotationRemoteDisabled")), 1)
|
|
4952
4956
|
], 2),
|
|
4953
|
-
e("label",
|
|
4957
|
+
e("label", Mm, [
|
|
4954
4958
|
e("span", null, p(l($)("annotationAuthorName")), 1),
|
|
4955
4959
|
A(e("input", {
|
|
4956
4960
|
"onUpdate:modelValue": o[38] || (o[38] = (a) => yn(ue) ? ue.value = a : null),
|
|
4957
4961
|
type: "text",
|
|
4958
4962
|
placeholder: l($)("annotationAuthorPlaceholder")
|
|
4959
|
-
}, null, 8,
|
|
4963
|
+
}, null, 8, Um), [
|
|
4960
4964
|
[z, l(ue)]
|
|
4961
4965
|
])
|
|
4962
4966
|
]),
|
|
4963
|
-
e("label",
|
|
4967
|
+
e("label", jm, [
|
|
4964
4968
|
e("span", null, p(l($)("annotationPollingInterval")), 1),
|
|
4965
|
-
e("div",
|
|
4969
|
+
e("div", Vm, [
|
|
4966
4970
|
A(e("input", {
|
|
4967
4971
|
"onUpdate:modelValue": o[39] || (o[39] = (a) => yn(Ne) ? Ne.value = a : null),
|
|
4968
4972
|
min: "10",
|
|
@@ -4983,13 +4987,13 @@ const Cf = {
|
|
|
4983
4987
|
disabled: Number(l(Ne)) === l(Ce),
|
|
4984
4988
|
onClick: o[40] || (o[40] = //@ts-ignore
|
|
4985
4989
|
(...a) => l(qa) && l(qa)(...a))
|
|
4986
|
-
}, p(l($)("annotationPollingSave")), 9,
|
|
4990
|
+
}, p(l($)("annotationPollingSave")), 9, Lm)
|
|
4987
4991
|
])
|
|
4988
4992
|
]),
|
|
4989
|
-
e("p",
|
|
4990
|
-
l(q) === "annotations" ? (v(), f("div",
|
|
4991
|
-
l(T).length ? w("", !0) : (v(), f("p",
|
|
4992
|
-
(v(!0), f(
|
|
4993
|
+
e("p", Fm, p(l(Ue)), 1),
|
|
4994
|
+
l(q) === "annotations" ? (v(), f("div", Km, [
|
|
4995
|
+
l(T).length ? w("", !0) : (v(), f("p", zm, p(l($)("annotationEmpty")), 1)),
|
|
4996
|
+
(v(!0), f(_, null, N(l(T), (a, y) => (v(), f("section", {
|
|
4993
4997
|
key: a.id,
|
|
4994
4998
|
onMouseenter: (j) => sr(a),
|
|
4995
4999
|
onMouseleave: o[41] || (o[41] = //@ts-ignore
|
|
@@ -5000,38 +5004,38 @@ const Cf = {
|
|
|
5000
5004
|
e("h3", null, p(a.featureName), 1),
|
|
5001
5005
|
e("p", null, p(a.featureDescription), 1),
|
|
5002
5006
|
e("small", null, p(a.specialNote), 1),
|
|
5003
|
-
a.authorName || a.updatedAt ? (v(), f("small",
|
|
5004
|
-
|
|
5005
|
-
ia(a.updatedAt) ? (v(), f(
|
|
5006
|
-
|
|
5007
|
+
a.authorName || a.updatedAt ? (v(), f("small", Hm, [
|
|
5008
|
+
H(p(a.authorName || "未署名"), 1),
|
|
5009
|
+
ia(a.updatedAt) ? (v(), f(_, { key: 0 }, [
|
|
5010
|
+
H(" · " + p(ia(a.updatedAt)), 1)
|
|
5007
5011
|
], 64)) : w("", !0)
|
|
5008
5012
|
])) : w("", !0)
|
|
5009
5013
|
]),
|
|
5010
|
-
e("div",
|
|
5014
|
+
e("div", Wm, [
|
|
5011
5015
|
e("button", {
|
|
5012
5016
|
class: "annotation-list-edit",
|
|
5013
5017
|
type: "button",
|
|
5014
|
-
onClick: (j) => l(
|
|
5015
|
-
}, p(l($)("editProfile")), 9,
|
|
5018
|
+
onClick: (j) => l(In)(a.id)
|
|
5019
|
+
}, p(l($)("editProfile")), 9, Ym),
|
|
5016
5020
|
e("button", {
|
|
5017
5021
|
class: "annotation-list-delete annotation-delete-btn",
|
|
5018
5022
|
type: "button",
|
|
5019
5023
|
disabled: !l(ue).trim(),
|
|
5020
5024
|
title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
|
|
5021
5025
|
onClick: (j) => l(be)(a.id)
|
|
5022
|
-
}, p(l($)("annotationDelete")), 9,
|
|
5026
|
+
}, p(l($)("annotationDelete")), 9, Jm)
|
|
5023
5027
|
])
|
|
5024
|
-
], 40,
|
|
5025
|
-
])) : (v(), f("div",
|
|
5026
|
-
l(R) ? (v(), f(
|
|
5027
|
-
wo.value ? (v(), f("small",
|
|
5028
|
-
(v(!0), f(
|
|
5028
|
+
], 40, Gm))), 128))
|
|
5029
|
+
])) : (v(), f("div", Xm, [
|
|
5030
|
+
l(R) ? (v(), f(_, { key: 1 }, [
|
|
5031
|
+
wo.value ? (v(), f("small", qm, p(wo.value), 1)) : w("", !0),
|
|
5032
|
+
(v(!0), f(_, null, N(Qt.value, (a) => (v(), f("section", {
|
|
5029
5033
|
key: a.id
|
|
5030
5034
|
}, [
|
|
5031
5035
|
e("h3", null, p(a.label), 1),
|
|
5032
5036
|
e("p", null, p(a.value), 1)
|
|
5033
5037
|
]))), 128))
|
|
5034
|
-
], 64)) : (v(), f("p",
|
|
5038
|
+
], 64)) : (v(), f("p", Zm, p(l($)("pageDescriptionEmpty")), 1))
|
|
5035
5039
|
]))
|
|
5036
5040
|
], 64))
|
|
5037
5041
|
], 2)) : w("", !0),
|
|
@@ -5046,14 +5050,14 @@ const Cf = {
|
|
|
5046
5050
|
type: "button",
|
|
5047
5051
|
onClick: o[42] || (o[42] = (a) => St.value = !St.value)
|
|
5048
5052
|
}, p(St.value ? "展开数据源" : "收起数据源"), 1),
|
|
5049
|
-
St.value ? w("", !0) : (v(), f(
|
|
5050
|
-
e("div",
|
|
5051
|
-
e("span",
|
|
5053
|
+
St.value ? w("", !0) : (v(), f(_, { key: 0 }, [
|
|
5054
|
+
e("div", Qm, [
|
|
5055
|
+
e("span", eg, p(l(ft) === "warning" || l(ft) === "conflict" ? "⚠" : "●"), 1),
|
|
5052
5056
|
e("strong", null, p(Ti.value), 1),
|
|
5053
5057
|
e("small", null, [
|
|
5054
|
-
|
|
5055
|
-
sl.value ? (v(), f(
|
|
5056
|
-
|
|
5058
|
+
H("· " + p(Di.value), 1),
|
|
5059
|
+
sl.value ? (v(), f(_, { key: 0 }, [
|
|
5060
|
+
H(" · " + p(sl.value), 1)
|
|
5057
5061
|
], 64)) : w("", !0)
|
|
5058
5062
|
])
|
|
5059
5063
|
]),
|
|
@@ -5065,7 +5069,7 @@ const Cf = {
|
|
|
5065
5069
|
disabled: l(je) === "running",
|
|
5066
5070
|
onClick: o[43] || (o[43] = //@ts-ignore
|
|
5067
5071
|
(...a) => l(Za) && l(Za)(...a))
|
|
5068
|
-
}, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9,
|
|
5072
|
+
}, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9, tg)) : w("", !0),
|
|
5069
5073
|
e("button", {
|
|
5070
5074
|
class: "environment-check-trigger",
|
|
5071
5075
|
type: "button",
|
|
@@ -5078,16 +5082,16 @@ const Cf = {
|
|
|
5078
5082
|
class: "environment-check-backdrop",
|
|
5079
5083
|
onClick: o[46] || (o[46] = re((a) => Zt.value = !1, ["self"]))
|
|
5080
5084
|
}, [
|
|
5081
|
-
e("section",
|
|
5085
|
+
e("section", ng, [
|
|
5082
5086
|
e("header", null, [
|
|
5083
5087
|
e("div", null, [
|
|
5084
5088
|
o[108] || (o[108] = e("h2", { id: "environment-check-title" }, "环境变量检查", -1)),
|
|
5085
5089
|
e("p", {
|
|
5086
5090
|
class: P({ "has-missing": qo.value > 0 })
|
|
5087
5091
|
}, [
|
|
5088
|
-
|
|
5089
|
-
qo.value ? (v(), f(
|
|
5090
|
-
|
|
5092
|
+
H(p(ul.value) + " / " + p(rl.value) + " 已配置 ", 1),
|
|
5093
|
+
qo.value ? (v(), f(_, { key: 0 }, [
|
|
5094
|
+
H(" · 缺失 " + p(qo.value) + " 项", 1)
|
|
5091
5095
|
], 64)) : w("", !0)
|
|
5092
5096
|
], 2)
|
|
5093
5097
|
]),
|
|
@@ -5097,16 +5101,16 @@ const Cf = {
|
|
|
5097
5101
|
onClick: o[45] || (o[45] = (a) => Zt.value = !1)
|
|
5098
5102
|
}, "×")
|
|
5099
5103
|
]),
|
|
5100
|
-
e("div",
|
|
5101
|
-
(v(!0), f(
|
|
5104
|
+
e("div", og, [
|
|
5105
|
+
(v(!0), f(_, null, N(Zo.value, (a) => (v(), f("section", {
|
|
5102
5106
|
key: a.id
|
|
5103
5107
|
}, [
|
|
5104
5108
|
e("h3", null, p(a.title), 1),
|
|
5105
|
-
(v(!0), f(
|
|
5109
|
+
(v(!0), f(_, null, N(a.items, (y) => (v(), f("div", {
|
|
5106
5110
|
key: y.name,
|
|
5107
5111
|
class: P(["environment-check-row", { missing: !y.configured }])
|
|
5108
5112
|
}, [
|
|
5109
|
-
e("span",
|
|
5113
|
+
e("span", ag, p(y.configured ? "✓" : "✕"), 1),
|
|
5110
5114
|
e("code", null, p(y.name), 1),
|
|
5111
5115
|
e("b", null, p(y.configured ? "已配置" : "请配置"), 1)
|
|
5112
5116
|
], 2))), 128))
|
|
@@ -5126,19 +5130,19 @@ const Cf = {
|
|
|
5126
5130
|
onClick: o[47] || (o[47] = (a) => kt.value = !kt.value)
|
|
5127
5131
|
}, [
|
|
5128
5132
|
X(l(Qr), { class: "h-4 w-4" }),
|
|
5129
|
-
|
|
5133
|
+
H(" " + p(kt.value ? "快捷键" : "收起快捷键"), 1)
|
|
5130
5134
|
]),
|
|
5131
|
-
kt.value ? w("", !0) : (v(), f(
|
|
5135
|
+
kt.value ? w("", !0) : (v(), f(_, { key: 0 }, [
|
|
5132
5136
|
o[110] || (o[110] = e("div", { class: "shortcut-panel-head" }, [
|
|
5133
5137
|
e("strong", null, "当前面板快捷键"),
|
|
5134
5138
|
e("span", null, "输入内容时自动停用")
|
|
5135
5139
|
], -1)),
|
|
5136
|
-
(v(), f(
|
|
5140
|
+
(v(), f(_, null, N(Rl, (a) => e("section", {
|
|
5137
5141
|
key: a.title,
|
|
5138
5142
|
class: "shortcut-group"
|
|
5139
5143
|
}, [
|
|
5140
5144
|
e("h3", null, p(a.title), 1),
|
|
5141
|
-
(v(!0), f(
|
|
5145
|
+
(v(!0), f(_, null, N(a.items, (y) => (v(), f("div", {
|
|
5142
5146
|
key: y.key,
|
|
5143
5147
|
class: "shortcut-row"
|
|
5144
5148
|
}, [
|
|
@@ -5150,7 +5154,7 @@ const Cf = {
|
|
|
5150
5154
|
], 2)) : w("", !0),
|
|
5151
5155
|
X(os, { name: "shortcut-toast" }, {
|
|
5152
5156
|
default: as(() => [
|
|
5153
|
-
de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div",
|
|
5157
|
+
de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div", lg, " 按快捷键 P 可以进入/退出演示模式 ")) : w("", !0)
|
|
5154
5158
|
]),
|
|
5155
5159
|
_: 1
|
|
5156
5160
|
}),
|
|
@@ -5159,14 +5163,14 @@ const Cf = {
|
|
|
5159
5163
|
class: "page-description-dialog-backdrop",
|
|
5160
5164
|
onClick: re(aa, ["self"])
|
|
5161
5165
|
}, [
|
|
5162
|
-
e("section",
|
|
5163
|
-
e("div",
|
|
5166
|
+
e("section", sg, [
|
|
5167
|
+
e("div", ig, [
|
|
5164
5168
|
e("div", null, [
|
|
5165
5169
|
e("p", null, p(l(R) ? "编辑页面描述" : "新增页面描述"), 1),
|
|
5166
5170
|
e("span", null, [
|
|
5167
|
-
|
|
5168
|
-
fn.value ? (v(), f(
|
|
5169
|
-
|
|
5171
|
+
H(p(l(mt).code) + " · " + p(l(mt).title), 1),
|
|
5172
|
+
fn.value ? (v(), f(_, { key: 0 }, [
|
|
5173
|
+
H(" · " + p(fn.value), 1)
|
|
5170
5174
|
], 64)) : w("", !0)
|
|
5171
5175
|
])
|
|
5172
5176
|
]),
|
|
@@ -5180,8 +5184,8 @@ const Cf = {
|
|
|
5180
5184
|
class: "page-description-form",
|
|
5181
5185
|
onSubmit: re(Gi, ["prevent"])
|
|
5182
5186
|
}, [
|
|
5183
|
-
l(R) ? wo.value ? (v(), f("small",
|
|
5184
|
-
e("label",
|
|
5187
|
+
l(R) ? wo.value ? (v(), f("small", ug, p(wo.value), 1)) : w("", !0) : (v(), f("p", rg, p(l($)("pageDescriptionEmpty")), 1)),
|
|
5188
|
+
e("label", cg, [
|
|
5185
5189
|
A(e("input", {
|
|
5186
5190
|
"onUpdate:modelValue": o[48] || (o[48] = (a) => l(U).highlighted = a),
|
|
5187
5191
|
type: "checkbox"
|
|
@@ -5195,7 +5199,7 @@ const Cf = {
|
|
|
5195
5199
|
A(e("textarea", {
|
|
5196
5200
|
"onUpdate:modelValue": o[49] || (o[49] = (a) => l(U).purpose = a),
|
|
5197
5201
|
placeholder: l($)("pageDescriptionPurposePlaceholder")
|
|
5198
|
-
}, null, 8,
|
|
5202
|
+
}, null, 8, dg), [
|
|
5199
5203
|
[z, l(U).purpose]
|
|
5200
5204
|
])
|
|
5201
5205
|
]),
|
|
@@ -5204,7 +5208,7 @@ const Cf = {
|
|
|
5204
5208
|
A(e("textarea", {
|
|
5205
5209
|
"onUpdate:modelValue": o[50] || (o[50] = (a) => l(U).structure = a),
|
|
5206
5210
|
placeholder: l($)("pageDescriptionStructurePlaceholder")
|
|
5207
|
-
}, null, 8,
|
|
5211
|
+
}, null, 8, pg), [
|
|
5208
5212
|
[z, l(U).structure]
|
|
5209
5213
|
])
|
|
5210
5214
|
]),
|
|
@@ -5213,7 +5217,7 @@ const Cf = {
|
|
|
5213
5217
|
A(e("textarea", {
|
|
5214
5218
|
"onUpdate:modelValue": o[51] || (o[51] = (a) => l(U).features = a),
|
|
5215
5219
|
placeholder: l($)("pageDescriptionFeaturesPlaceholder")
|
|
5216
|
-
}, null, 8,
|
|
5220
|
+
}, null, 8, vg), [
|
|
5217
5221
|
[z, l(U).features]
|
|
5218
5222
|
])
|
|
5219
5223
|
]),
|
|
@@ -5222,7 +5226,7 @@ const Cf = {
|
|
|
5222
5226
|
A(e("textarea", {
|
|
5223
5227
|
"onUpdate:modelValue": o[52] || (o[52] = (a) => l(U).flowPosition = a),
|
|
5224
5228
|
placeholder: l($)("pageDescriptionFlowPlaceholder")
|
|
5225
|
-
}, null, 8,
|
|
5229
|
+
}, null, 8, fg), [
|
|
5226
5230
|
[z, l(U).flowPosition]
|
|
5227
5231
|
])
|
|
5228
5232
|
]),
|
|
@@ -5267,11 +5271,11 @@ const Cf = {
|
|
|
5267
5271
|
A(e("textarea", {
|
|
5268
5272
|
"onUpdate:modelValue": o[57] || (o[57] = (a) => l(U).developmentNotes = a),
|
|
5269
5273
|
placeholder: l($)("pageDescriptionDevelopmentPlaceholder")
|
|
5270
|
-
}, null, 8,
|
|
5274
|
+
}, null, 8, mg), [
|
|
5271
5275
|
[z, l(U).developmentNotes]
|
|
5272
5276
|
])
|
|
5273
5277
|
]),
|
|
5274
|
-
e("div",
|
|
5278
|
+
e("div", gg, [
|
|
5275
5279
|
e("button", {
|
|
5276
5280
|
type: "button",
|
|
5277
5281
|
onClick: aa
|
|
@@ -5279,7 +5283,7 @@ const Cf = {
|
|
|
5279
5283
|
e("button", {
|
|
5280
5284
|
type: "submit",
|
|
5281
5285
|
disabled: l(ke) === "syncing"
|
|
5282
|
-
}, p(l($)("pageDescriptionSave")), 9,
|
|
5286
|
+
}, p(l($)("pageDescriptionSave")), 9, bg)
|
|
5283
5287
|
])
|
|
5284
5288
|
], 32)
|
|
5285
5289
|
])
|
|
@@ -5293,7 +5297,7 @@ const Cf = {
|
|
|
5293
5297
|
onMouseleave: o[60] || (o[60] = //@ts-ignore
|
|
5294
5298
|
(...a) => l(c) && l(c)(...a))
|
|
5295
5299
|
}, [
|
|
5296
|
-
e("div",
|
|
5300
|
+
e("div", yg, [
|
|
5297
5301
|
e("b", null, p(l(le).featureName), 1),
|
|
5298
5302
|
e("button", {
|
|
5299
5303
|
class: "annotation-delete-btn",
|
|
@@ -5301,12 +5305,12 @@ const Cf = {
|
|
|
5301
5305
|
disabled: !l(ue).trim(),
|
|
5302
5306
|
title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
|
|
5303
5307
|
onClick: o[58] || (o[58] = (a) => l(be)(l(le).id))
|
|
5304
|
-
}, p(l($)("annotationDelete")), 9,
|
|
5308
|
+
}, p(l($)("annotationDelete")), 9, hg)
|
|
5305
5309
|
]),
|
|
5306
5310
|
e("p", null, p(l(le).featureDescription), 1),
|
|
5307
5311
|
e("small", null, p(l(le).specialNote), 1)
|
|
5308
5312
|
], 36)) : w("", !0),
|
|
5309
|
-
de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div",
|
|
5313
|
+
de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div", wg, [
|
|
5310
5314
|
e("form", {
|
|
5311
5315
|
class: "annotation-form",
|
|
5312
5316
|
onSubmit: o[66] || (o[66] = re(
|
|
@@ -5322,7 +5326,7 @@ const Cf = {
|
|
|
5322
5326
|
"onUpdate:modelValue": o[61] || (o[61] = (a) => l(ee).featureName = a),
|
|
5323
5327
|
type: "text",
|
|
5324
5328
|
placeholder: l($)("annotationNamePlaceholder")
|
|
5325
|
-
}, null, 8,
|
|
5329
|
+
}, null, 8, xg), [
|
|
5326
5330
|
[z, l(ee).featureName]
|
|
5327
5331
|
])
|
|
5328
5332
|
]),
|
|
@@ -5331,7 +5335,7 @@ const Cf = {
|
|
|
5331
5335
|
A(e("textarea", {
|
|
5332
5336
|
"onUpdate:modelValue": o[62] || (o[62] = (a) => l(ee).featureDescription = a),
|
|
5333
5337
|
placeholder: l($)("annotationDescPlaceholder")
|
|
5334
|
-
}, null, 8,
|
|
5338
|
+
}, null, 8, Sg), [
|
|
5335
5339
|
[z, l(ee).featureDescription]
|
|
5336
5340
|
])
|
|
5337
5341
|
]),
|
|
@@ -5340,7 +5344,7 @@ const Cf = {
|
|
|
5340
5344
|
A(e("textarea", {
|
|
5341
5345
|
"onUpdate:modelValue": o[63] || (o[63] = (a) => l(ee).specialNote = a),
|
|
5342
5346
|
placeholder: l($)("annotationNotePlaceholder")
|
|
5343
|
-
}, null, 8,
|
|
5347
|
+
}, null, 8, kg), [
|
|
5344
5348
|
[z, l(ee).specialNote]
|
|
5345
5349
|
])
|
|
5346
5350
|
]),
|
|
@@ -5350,11 +5354,11 @@ const Cf = {
|
|
|
5350
5354
|
"onUpdate:modelValue": o[64] || (o[64] = (a) => yn(ue) ? ue.value = a : null),
|
|
5351
5355
|
type: "text",
|
|
5352
5356
|
placeholder: l($)("annotationAuthorPlaceholder")
|
|
5353
|
-
}, null, 8,
|
|
5357
|
+
}, null, 8, Cg), [
|
|
5354
5358
|
[z, l(ue)]
|
|
5355
5359
|
])
|
|
5356
5360
|
]),
|
|
5357
|
-
e("div",
|
|
5361
|
+
e("div", $g, [
|
|
5358
5362
|
e("button", {
|
|
5359
5363
|
type: "button",
|
|
5360
5364
|
onClick: o[65] || (o[65] = //@ts-ignore
|
|
@@ -5363,11 +5367,11 @@ const Cf = {
|
|
|
5363
5367
|
e("button", {
|
|
5364
5368
|
type: "submit",
|
|
5365
5369
|
disabled: !l(ee).featureName.trim() || !l(ee).featureDescription.trim() || !l(ee).specialNote.trim() || !l(ue).trim()
|
|
5366
|
-
}, p(l($)("annotationSave")), 9,
|
|
5370
|
+
}, p(l($)("annotationSave")), 9, _g)
|
|
5367
5371
|
])
|
|
5368
5372
|
], 32)
|
|
5369
5373
|
])) : w("", !0),
|
|
5370
|
-
de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div",
|
|
5374
|
+
de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div", Ig, [
|
|
5371
5375
|
e("form", {
|
|
5372
5376
|
class: "annotation-form",
|
|
5373
5377
|
onSubmit: o[72] || (o[72] = re(
|
|
@@ -5383,7 +5387,7 @@ const Cf = {
|
|
|
5383
5387
|
"onUpdate:modelValue": o[67] || (o[67] = (a) => l(ne).featureName = a),
|
|
5384
5388
|
type: "text",
|
|
5385
5389
|
readonly: l(ae) === "view"
|
|
5386
|
-
}, null, 8,
|
|
5390
|
+
}, null, 8, Pg), [
|
|
5387
5391
|
[z, l(ne).featureName]
|
|
5388
5392
|
])
|
|
5389
5393
|
]),
|
|
@@ -5392,7 +5396,7 @@ const Cf = {
|
|
|
5392
5396
|
A(e("textarea", {
|
|
5393
5397
|
"onUpdate:modelValue": o[68] || (o[68] = (a) => l(ne).featureDescription = a),
|
|
5394
5398
|
readonly: l(ae) === "view"
|
|
5395
|
-
}, null, 8,
|
|
5399
|
+
}, null, 8, Dg), [
|
|
5396
5400
|
[z, l(ne).featureDescription]
|
|
5397
5401
|
])
|
|
5398
5402
|
]),
|
|
@@ -5401,17 +5405,17 @@ const Cf = {
|
|
|
5401
5405
|
A(e("textarea", {
|
|
5402
5406
|
"onUpdate:modelValue": o[69] || (o[69] = (a) => l(ne).specialNote = a),
|
|
5403
5407
|
readonly: l(ae) === "view"
|
|
5404
|
-
}, null, 8,
|
|
5408
|
+
}, null, 8, Ag), [
|
|
5405
5409
|
[z, l(ne).specialNote]
|
|
5406
5410
|
])
|
|
5407
5411
|
]),
|
|
5408
|
-
l(ae) === "edit" ? (v(), f("label",
|
|
5412
|
+
l(ae) === "edit" ? (v(), f("label", Ng, [
|
|
5409
5413
|
e("span", null, p(l($)("annotationAuthorName")), 1),
|
|
5410
5414
|
A(e("input", {
|
|
5411
5415
|
"onUpdate:modelValue": o[70] || (o[70] = (a) => yn(ue) ? ue.value = a : null),
|
|
5412
5416
|
type: "text",
|
|
5413
5417
|
placeholder: l($)("annotationAuthorPlaceholder")
|
|
5414
|
-
}, null, 8,
|
|
5418
|
+
}, null, 8, Tg), [
|
|
5415
5419
|
[z, l(ue)]
|
|
5416
5420
|
])
|
|
5417
5421
|
])) : w("", !0),
|
|
@@ -5427,7 +5431,7 @@ const Cf = {
|
|
|
5427
5431
|
key: 0,
|
|
5428
5432
|
type: "submit",
|
|
5429
5433
|
disabled: !l(ne).featureName.trim() || !l(ne).featureDescription.trim() || !l(ne).specialNote.trim() || !l(ue).trim()
|
|
5430
|
-
}, p(l($)("annotationSave")), 9,
|
|
5434
|
+
}, p(l($)("annotationSave")), 9, Rg)) : w("", !0)
|
|
5431
5435
|
], 2)
|
|
5432
5436
|
], 32)
|
|
5433
5437
|
])) : w("", !0),
|
|
@@ -5436,14 +5440,14 @@ const Cf = {
|
|
|
5436
5440
|
class: "page-description-summary-backdrop",
|
|
5437
5441
|
onClick: o[74] || (o[74] = re((a) => qe.value = !1, ["self"]))
|
|
5438
5442
|
}, [
|
|
5439
|
-
e("section",
|
|
5440
|
-
e("div",
|
|
5443
|
+
e("section", Eg, [
|
|
5444
|
+
e("div", Og, [
|
|
5441
5445
|
e("div", null, [
|
|
5442
5446
|
o[117] || (o[117] = e("p", null, "页面描述", -1)),
|
|
5443
5447
|
e("span", null, [
|
|
5444
|
-
|
|
5445
|
-
fn.value ? (v(), f(
|
|
5446
|
-
|
|
5448
|
+
H(p(l(mt).code) + " · " + p(l(mt).title), 1),
|
|
5449
|
+
fn.value ? (v(), f(_, { key: 0 }, [
|
|
5450
|
+
H(" · " + p(fn.value), 1)
|
|
5447
5451
|
], 64)) : w("", !0)
|
|
5448
5452
|
])
|
|
5449
5453
|
]),
|
|
@@ -5453,7 +5457,7 @@ const Cf = {
|
|
|
5453
5457
|
onClick: o[73] || (o[73] = (a) => qe.value = !1)
|
|
5454
5458
|
}, "×")
|
|
5455
5459
|
]),
|
|
5456
|
-
e("div",
|
|
5460
|
+
e("div", Bg, [
|
|
5457
5461
|
o[118] || (o[118] = e("div", { class: "page-description-summary-options-head" }, [
|
|
5458
5462
|
e("p", null, "展示内容")
|
|
5459
5463
|
], -1)),
|
|
@@ -5468,33 +5472,33 @@ const Cf = {
|
|
|
5468
5472
|
}, "反选")
|
|
5469
5473
|
]),
|
|
5470
5474
|
e("div", null, [
|
|
5471
|
-
(v(!0), f(
|
|
5475
|
+
(v(!0), f(_, null, N(Qt.value, (a) => (v(), f("label", {
|
|
5472
5476
|
key: a.id
|
|
5473
5477
|
}, [
|
|
5474
5478
|
e("input", {
|
|
5475
5479
|
type: "checkbox",
|
|
5476
5480
|
checked: ze.value.includes(a.id),
|
|
5477
5481
|
onChange: (y) => dr(a.id)
|
|
5478
|
-
}, null, 40,
|
|
5482
|
+
}, null, 40, Mg),
|
|
5479
5483
|
e("span", null, p(a.label), 1)
|
|
5480
5484
|
]))), 128))
|
|
5481
5485
|
])
|
|
5482
5486
|
]),
|
|
5483
|
-
e("div",
|
|
5484
|
-
xo.value.length ? (v(!0), f(
|
|
5487
|
+
e("div", Ug, [
|
|
5488
|
+
xo.value.length ? (v(!0), f(_, { key: 1 }, N(xo.value, (a) => (v(), f("p", {
|
|
5485
5489
|
key: a.id
|
|
5486
5490
|
}, [
|
|
5487
5491
|
e("b", null, p(a.label) + ":", 1),
|
|
5488
|
-
|
|
5489
|
-
]))), 128)) : (v(), f("p",
|
|
5492
|
+
H(p(a.value), 1)
|
|
5493
|
+
]))), 128)) : (v(), f("p", jg, "请选择要展示的描述部分。"))
|
|
5490
5494
|
]),
|
|
5491
|
-
e("div",
|
|
5495
|
+
e("div", Vg, [
|
|
5492
5496
|
e("small", null, p(Tt.value), 1),
|
|
5493
5497
|
e("button", {
|
|
5494
5498
|
type: "button",
|
|
5495
5499
|
disabled: !xo.value.length,
|
|
5496
5500
|
onClick: ur
|
|
5497
|
-
}, "复制选中内容", 8,
|
|
5501
|
+
}, "复制选中内容", 8, Lg)
|
|
5498
5502
|
])
|
|
5499
5503
|
])
|
|
5500
5504
|
])) : w("", !0),
|
|
@@ -5503,8 +5507,8 @@ const Cf = {
|
|
|
5503
5507
|
class: "prototype-health-backdrop",
|
|
5504
5508
|
onClick: o[78] || (o[78] = re((a) => Nt.value = !1, ["self"]))
|
|
5505
5509
|
}, [
|
|
5506
|
-
e("section",
|
|
5507
|
-
e("div",
|
|
5510
|
+
e("section", Fg, [
|
|
5511
|
+
e("div", Kg, [
|
|
5508
5512
|
o[119] || (o[119] = e("div", null, [
|
|
5509
5513
|
e("p", null, "原型健康检查"),
|
|
5510
5514
|
e("span", null, "页面描述覆盖率优先读取云端 manifest;云端文件全量检查请运行 pnpm validate:remote")
|
|
@@ -5515,7 +5519,7 @@ const Cf = {
|
|
|
5515
5519
|
onClick: o[75] || (o[75] = (a) => Nt.value = !1)
|
|
5516
5520
|
}, "×")
|
|
5517
5521
|
]),
|
|
5518
|
-
e("div",
|
|
5522
|
+
e("div", zg, [
|
|
5519
5523
|
e("button", {
|
|
5520
5524
|
type: "button",
|
|
5521
5525
|
class: P({ active: An.value === "overview" }),
|
|
@@ -5527,9 +5531,9 @@ const Cf = {
|
|
|
5527
5531
|
onClick: o[77] || (o[77] = (a) => An.value = "matrix")
|
|
5528
5532
|
}, "页面/状态矩阵", 2)
|
|
5529
5533
|
]),
|
|
5530
|
-
An.value === "overview" ? (v(), f(
|
|
5531
|
-
e("div",
|
|
5532
|
-
(v(!0), f(
|
|
5534
|
+
An.value === "overview" ? (v(), f(_, { key: 0 }, [
|
|
5535
|
+
e("div", Gg, [
|
|
5536
|
+
(v(!0), f(_, null, N(rr.value, (a) => (v(), f("section", {
|
|
5533
5537
|
key: a.label
|
|
5534
5538
|
}, [
|
|
5535
5539
|
e("span", null, p(a.label), 1),
|
|
@@ -5537,13 +5541,13 @@ const Cf = {
|
|
|
5537
5541
|
e("small", null, p(a.detail), 1)
|
|
5538
5542
|
]))), 128))
|
|
5539
5543
|
]),
|
|
5540
|
-
e("div",
|
|
5541
|
-
e("div",
|
|
5544
|
+
e("div", Hg, [
|
|
5545
|
+
e("div", Wg, [
|
|
5542
5546
|
o[120] || (o[120] = e("p", null, "问题清单", -1)),
|
|
5543
5547
|
e("span", null, p(Cl.value.filter((a) => a.tone !== "success").length) + " 个待关注项", 1)
|
|
5544
5548
|
]),
|
|
5545
|
-
e("div",
|
|
5546
|
-
(v(!0), f(
|
|
5549
|
+
e("div", Yg, [
|
|
5550
|
+
(v(!0), f(_, null, N(Cl.value, (a) => (v(), f("section", {
|
|
5547
5551
|
key: a.title,
|
|
5548
5552
|
class: P(`is-${a.tone}`)
|
|
5549
5553
|
}, [
|
|
@@ -5552,13 +5556,13 @@ const Cf = {
|
|
|
5552
5556
|
], 2))), 128))
|
|
5553
5557
|
])
|
|
5554
5558
|
])
|
|
5555
|
-
], 64)) : (v(), f("div",
|
|
5559
|
+
], 64)) : (v(), f("div", Jg, [
|
|
5556
5560
|
o[122] || (o[122] = e("div", { class: "prototype-health-section-head" }, [
|
|
5557
5561
|
e("p", null, "页面/状态矩阵"),
|
|
5558
5562
|
e("span", null, "按页面聚合状态、流程覆盖、描述覆盖和注释数量")
|
|
5559
5563
|
], -1)),
|
|
5560
|
-
e("div",
|
|
5561
|
-
e("table",
|
|
5564
|
+
e("div", Xg, [
|
|
5565
|
+
e("table", Zg, [
|
|
5562
5566
|
o[121] || (o[121] = e("thead", null, [
|
|
5563
5567
|
e("tr", null, [
|
|
5564
5568
|
e("th", null, "编号"),
|
|
@@ -5571,7 +5575,7 @@ const Cf = {
|
|
|
5571
5575
|
])
|
|
5572
5576
|
], -1)),
|
|
5573
5577
|
e("tbody", null, [
|
|
5574
|
-
(v(!0), f(
|
|
5578
|
+
(v(!0), f(_, null, N(mn.value, (a) => (v(), f("tr", {
|
|
5575
5579
|
key: a.id,
|
|
5576
5580
|
class: P({ "has-gap": a.describedCount < a.stateCount || !a.inFlow })
|
|
5577
5581
|
}, [
|
|
@@ -5597,19 +5601,19 @@ const Cf = {
|
|
|
5597
5601
|
class: "fixed inset-0 z-[130] flex items-center justify-center bg-black/35 px-4",
|
|
5598
5602
|
onClick: o[80] || (o[80] = re((a) => Et.value = !1, ["self"]))
|
|
5599
5603
|
}, [
|
|
5600
|
-
e("section",
|
|
5601
|
-
e("div",
|
|
5604
|
+
e("section", qg, [
|
|
5605
|
+
e("div", Qg, [
|
|
5602
5606
|
e("div", null, [
|
|
5603
5607
|
o[123] || (o[123] = e("h2", { class: "text-lg font-semibold text-ink" }, "更新历史", -1)),
|
|
5604
|
-
e("p",
|
|
5608
|
+
e("p", e1, "最近一次更新时间:" + p(Ui.value), 1)
|
|
5605
5609
|
]),
|
|
5606
5610
|
e("button", {
|
|
5607
5611
|
class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-soft text-base font-semibold text-ink",
|
|
5608
5612
|
onClick: o[79] || (o[79] = (a) => Et.value = !1)
|
|
5609
5613
|
}, " × ")
|
|
5610
5614
|
]),
|
|
5611
|
-
e("div",
|
|
5612
|
-
(v(!0), f(
|
|
5615
|
+
e("div", t1, [
|
|
5616
|
+
(v(!0), f(_, null, N(l(mo), (a) => (v(), f("section", {
|
|
5613
5617
|
key: a.hash,
|
|
5614
5618
|
class: "overflow-hidden rounded-[16px] bg-soft transition"
|
|
5615
5619
|
}, [
|
|
@@ -5618,36 +5622,36 @@ const Cf = {
|
|
|
5618
5622
|
class: "w-full p-3 text-left",
|
|
5619
5623
|
onClick: (y) => Sr(a.hash)
|
|
5620
5624
|
}, [
|
|
5621
|
-
e("div",
|
|
5622
|
-
e("p",
|
|
5623
|
-
e("div",
|
|
5624
|
-
e("code",
|
|
5625
|
+
e("div", o1, [
|
|
5626
|
+
e("p", a1, p(a.date), 1),
|
|
5627
|
+
e("div", l1, [
|
|
5628
|
+
e("code", s1, p(a.hash), 1),
|
|
5625
5629
|
e("span", {
|
|
5626
5630
|
class: P(["text-sm text-muted transition-transform duration-200", { "rotate-180": go.value === a.hash }])
|
|
5627
5631
|
}, "⌄", 2)
|
|
5628
5632
|
])
|
|
5629
5633
|
]),
|
|
5630
|
-
e("p",
|
|
5631
|
-
], 8,
|
|
5632
|
-
go.value === a.hash ? (v(), f("div",
|
|
5633
|
-
Dl(a).length ? (v(), f("div",
|
|
5634
|
-
(v(!0), f(
|
|
5634
|
+
e("p", i1, p(a.message), 1)
|
|
5635
|
+
], 8, n1),
|
|
5636
|
+
go.value === a.hash ? (v(), f("div", r1, [
|
|
5637
|
+
Dl(a).length ? (v(), f("div", u1, [
|
|
5638
|
+
(v(!0), f(_, null, N(Dl(a), (y) => (v(), f("p", {
|
|
5635
5639
|
key: `${a.hash}-${y}`,
|
|
5636
5640
|
class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
|
|
5637
5641
|
}, p(y), 1))), 128))
|
|
5638
|
-
])) : (v(), f("p",
|
|
5642
|
+
])) : (v(), f("p", c1, "暂无更多修改细节"))
|
|
5639
5643
|
])) : w("", !0)
|
|
5640
5644
|
]))), 128)),
|
|
5641
|
-
l(mo).length ? w("", !0) : (v(), f("p",
|
|
5645
|
+
l(mo).length ? w("", !0) : (v(), f("p", d1, "暂无提交记录"))
|
|
5642
5646
|
])
|
|
5643
5647
|
])
|
|
5644
5648
|
])) : w("", !0),
|
|
5645
5649
|
de.value === "prototype" && ro.value && Q.value ? (v(), f("div", {
|
|
5646
5650
|
key: 15,
|
|
5647
5651
|
class: "mobile-page-picker-backdrop",
|
|
5648
|
-
onClick: re(
|
|
5652
|
+
onClick: re(Io, ["self"])
|
|
5649
5653
|
}, [
|
|
5650
|
-
e("section",
|
|
5654
|
+
e("section", p1, [
|
|
5651
5655
|
o[126] || (o[126] = e("div", { class: "mobile-page-picker-handle" }, null, -1)),
|
|
5652
5656
|
e("header", { class: "mobile-page-picker-head" }, [
|
|
5653
5657
|
o[124] || (o[124] = e("div", null, [
|
|
@@ -5656,7 +5660,7 @@ const Cf = {
|
|
|
5656
5660
|
], -1)),
|
|
5657
5661
|
e("button", {
|
|
5658
5662
|
type: "button",
|
|
5659
|
-
onClick:
|
|
5663
|
+
onClick: Io
|
|
5660
5664
|
}, "关闭")
|
|
5661
5665
|
]),
|
|
5662
5666
|
A(e("input", {
|
|
@@ -5667,8 +5671,8 @@ const Cf = {
|
|
|
5667
5671
|
}, null, 512), [
|
|
5668
5672
|
[z, Nn.value]
|
|
5669
5673
|
]),
|
|
5670
|
-
e("div",
|
|
5671
|
-
(v(!0), f(
|
|
5674
|
+
e("div", v1, [
|
|
5675
|
+
(v(!0), f(_, null, N(Fi.value, (a) => (v(), f("section", {
|
|
5672
5676
|
key: a.screen.id,
|
|
5673
5677
|
class: "mobile-page-picker-item"
|
|
5674
5678
|
}, [
|
|
@@ -5677,23 +5681,23 @@ const Cf = {
|
|
|
5677
5681
|
class: P(["mobile-page-picker-screen", { active: l(u) === a.screen.id }]),
|
|
5678
5682
|
onClick: (y) => a.states.length ? Or(a.screen.id) : Br(a.screen.id)
|
|
5679
5683
|
}, [
|
|
5680
|
-
e("span",
|
|
5681
|
-
e("span",
|
|
5684
|
+
e("span", m1, p(a.screen.code), 1),
|
|
5685
|
+
e("span", g1, [
|
|
5682
5686
|
e("b", null, p(a.screen.title), 1),
|
|
5683
5687
|
e("small", null, p(a.screen.subtitle), 1)
|
|
5684
5688
|
]),
|
|
5685
|
-
a.states.length ? (v(), f("span",
|
|
5686
|
-
], 10,
|
|
5687
|
-
a.states.length && (a.forceExpanded || uo.value.has(a.screen.id)) ? (v(), f("div",
|
|
5688
|
-
(v(!0), f(
|
|
5689
|
+
a.states.length ? (v(), f("span", b1, p(a.states.length), 1)) : w("", !0)
|
|
5690
|
+
], 10, f1),
|
|
5691
|
+
a.states.length && (a.forceExpanded || uo.value.has(a.screen.id)) ? (v(), f("div", y1, [
|
|
5692
|
+
(v(!0), f(_, null, N(a.states, (y) => (v(), f("button", {
|
|
5689
5693
|
key: y.id,
|
|
5690
5694
|
type: "button",
|
|
5691
5695
|
class: P({ active: l(u) === a.screen.id && l(Ze) === y.id }),
|
|
5692
5696
|
onClick: (j) => Mr(a.screen.id, y.id)
|
|
5693
5697
|
}, [
|
|
5694
5698
|
o[125] || (o[125] = e("span", null, null, -1)),
|
|
5695
|
-
|
|
5696
|
-
], 10,
|
|
5699
|
+
H(" " + p(y.label), 1)
|
|
5700
|
+
], 10, h1))), 128))
|
|
5697
5701
|
])) : w("", !0)
|
|
5698
5702
|
]))), 128))
|
|
5699
5703
|
])
|
|
@@ -5705,7 +5709,7 @@ const Cf = {
|
|
|
5705
5709
|
class: "presentation-exit-btn",
|
|
5706
5710
|
onClick: na
|
|
5707
5711
|
}, " 退出演示 (Esc) ")) : w("", !0),
|
|
5708
|
-
de.value === "prototype" && l(W) && !Q.value ? (v(), st(
|
|
5712
|
+
de.value === "prototype" && l(W) && !Q.value ? (v(), st(kc, {
|
|
5709
5713
|
key: 17,
|
|
5710
5714
|
flows: l(Pt),
|
|
5711
5715
|
screens: l(fe),
|
|
@@ -5714,17 +5718,17 @@ const Cf = {
|
|
|
5714
5718
|
onClose: o[82] || (o[82] = (a) => W.value = !1),
|
|
5715
5719
|
onSave: Hi,
|
|
5716
5720
|
onPush: Wi,
|
|
5717
|
-
onExport: l(
|
|
5721
|
+
onExport: l(_i)
|
|
5718
5722
|
}, null, 8, ["flows", "screens", "state-options-by-screen", "can-push-remote", "onExport"])) : w("", !0)
|
|
5719
|
-
], 64)) : (v(), f("section",
|
|
5723
|
+
], 64)) : (v(), f("section", _f, [
|
|
5720
5724
|
e("form", {
|
|
5721
5725
|
class: "w-full max-w-sm rounded-[28px] border border-line bg-panel p-6 text-center shadow-soft",
|
|
5722
5726
|
onSubmit: re(Mi, ["prevent"])
|
|
5723
5727
|
}, [
|
|
5724
5728
|
o[85] || (o[85] = e("h1", { class: "text-2xl font-semibold text-ink" }, "产品原型访问", -1)),
|
|
5725
5729
|
o[86] || (o[86] = e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请输入访问账号和密码", -1)),
|
|
5726
|
-
e("div",
|
|
5727
|
-
e("label",
|
|
5730
|
+
e("div", If, [
|
|
5731
|
+
e("label", Pf, [
|
|
5728
5732
|
o[83] || (o[83] = e("span", { class: "text-xs font-semibold text-muted" }, "账号", -1)),
|
|
5729
5733
|
A(e("input", {
|
|
5730
5734
|
"onUpdate:modelValue": o[0] || (o[0] = (a) => so.value = a),
|
|
@@ -5735,7 +5739,7 @@ const Cf = {
|
|
|
5735
5739
|
[z, so.value]
|
|
5736
5740
|
])
|
|
5737
5741
|
]),
|
|
5738
|
-
e("label",
|
|
5742
|
+
e("label", Df, [
|
|
5739
5743
|
o[84] || (o[84] = e("span", { class: "text-xs font-semibold text-muted" }, "密码", -1)),
|
|
5740
5744
|
A(e("input", {
|
|
5741
5745
|
"onUpdate:modelValue": o[1] || (o[1] = (a) => io.value = a),
|
|
@@ -5751,12 +5755,12 @@ const Cf = {
|
|
|
5751
5755
|
class: "primary-btn mt-5 w-full justify-center",
|
|
5752
5756
|
type: "submit"
|
|
5753
5757
|
}, "进入原型", -1)),
|
|
5754
|
-
Pn.value ? (v(), f("p",
|
|
5758
|
+
Pn.value ? (v(), f("p", Af, p(Pn.value), 1)) : w("", !0)
|
|
5755
5759
|
], 32)
|
|
5756
5760
|
]))
|
|
5757
5761
|
], 6));
|
|
5758
5762
|
}
|
|
5759
5763
|
});
|
|
5760
5764
|
export {
|
|
5761
|
-
|
|
5765
|
+
P1 as default
|
|
5762
5766
|
};
|