rhjy-ui 0.2.4 → 0.2.6

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,255 +1,294 @@
1
- import { defineComponent as M, openBlock as r, createElementBlock as u, createElementVNode as h, toDisplayString as C, createCommentVNode as b, computed as E, normalizeClass as F, normalizeStyle as X, Fragment as U, renderList as j, ref as m, onMounted as ee, withKeys as Q, withModifiers as q, renderSlot as w, createTextVNode as Y, createBlock as J, createVNode as O, onBeforeUnmount as te, watch as re, nextTick as ie, Teleport as ue, withCtx as V, normalizeProps as H, guardReactiveProps as S, resolveComponent as Z } from "vue";
2
- import { _ as ce } from "../_plugin-vue_export-helper-dad06003.js";
3
- const de = { class: "rh-data-center-panel__state" }, G = /* @__PURE__ */ M({
1
+ import { defineComponent as Z, openBlock as g, createElementBlock as C, createElementVNode as c, toDisplayString as m, createCommentVNode as y, computed as p, Fragment as G, renderList as ee, normalizeClass as S, normalizeStyle as Ae, ref as E, onMounted as re, withKeys as ne, withModifiers as te, renderSlot as M, createTextVNode as ae, unref as R, createBlock as se, createVNode as x, onBeforeUnmount as ie, watch as Ce, nextTick as Be, Teleport as we, withCtx as T, normalizeProps as z, guardReactiveProps as N, resolveComponent as oe } from "vue";
2
+ import { _ as ve } from "../_plugin-vue_export-helper-dad06003.js";
3
+ const Qe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMACjShra7a5p9iJRgAAABySURBVCjPY2AYnoDJEEILKyAJqpUIgChG9yQkQfNyRxAlUl6MJChSDlLK6A6RgwIIFyKFqhRNIUQpukKwUnSFYKUYCkFKMRQyMIiWlweiizGGl5eXCmAoBFoUiKEQ00nYHI/Vm1gDBGvQYQ1krNExnAAAumMiAKeIxeIAAAAASUVORK5CYII=", fe = { class: "rh-data-center-panel__state" }, _ = /* @__PURE__ */ Z({
4
4
  __name: "RhDataCenterState",
5
5
  props: {
6
6
  text: {},
7
7
  retryable: { type: Boolean, default: !1 }
8
8
  },
9
9
  emits: ["retry"],
10
- setup(e, { emit: p }) {
11
- const n = p;
12
- return (l, v) => (r(), u("div", de, [
13
- h("span", null, C(e.text), 1),
14
- e.retryable ? (r(), u("button", {
10
+ setup(e, { emit: s }) {
11
+ const t = s;
12
+ return (A, n) => (g(), C("div", fe, [
13
+ c("span", null, m(e.text), 1),
14
+ e.retryable ? (g(), C("button", {
15
15
  key: 0,
16
16
  type: "button",
17
17
  class: "rh-data-center-panel__retry",
18
- onClick: v[0] || (v[0] = (c) => n("retry"))
19
- }, " 重新加载 ")) : b("", !0)
18
+ onClick: n[0] || (n[0] = (r) => t("retry"))
19
+ }, " 重新加载 ")) : y("", !0)
20
20
  ]));
21
21
  }
22
- }), ve = { class: "rh-data-center-panel__task" }, fe = { class: "rh-data-center-panel__taskMain" }, he = { class: "rh-data-center-panel__taskTitle" }, ye = {
22
+ }), he = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAAWlBMVEUAAAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/Cwv/Dw//EhL/Fhb/Fxf/GRn/IiL/KCj/OTn/UFD/YmL/Y2P/09P/8vL/9PT/+Pj///+l0CkSAAAADHRSTlMACBAZXniqytXi8PGDfF85AAAAo0lEQVQYGQXBgW3EMAwEMPrkBEXR/Yd9v6WSC0iScru7wYK1nwD6fAeFet4FsPYyFPVuAKjMKOvZwFMNopXnBX5+X19Q08kD2GsV4EkSQDOAJAEYBiAJQNMASQF8+ADUBjBtAOQC6AZwdwP4ANC7ARwAutQC6u/9DtAnfQArWYDTZVaB7nOAcxQScC9wTytmFADOuRSmJwvQn9NYQJKU290N/gGgCUtLWaLgBQAAAABJRU5ErkJggg==", ke = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAA1VBMVEUAAACqqqq2tra7u7u/v7+8vLy/v7+4uLi/v7+7u7u8vLy7u7u7u7u7u7u6urq6urq7u7u7u7u8vLy7u7u7u7u7u7u7u7u6urq8vLy7u7u7u7u7u7u7u7u7u7u7u7u7u7u8vLy7u7u7u7u7u7u7u7u7u7u7u7u7u7u9vb2+vr6/v7/Dw8PExMTFxcXGxsbKysrMzMzOzs7W1tbY2NjZ2dna2trb29vd3d3h4eHj4+Pm5ubo6Ojt7e3v7+/x8fHy8vL19fX5+fn6+vr7+/v8/Pz9/f3////p1IubAAAAJ3RSTlMABgcPEBcYGRxeX2F0dXd6rK2ur7DGyMnMzdfY2dvg4u7v8PHz9fY5lqNWAAAA8ElEQVQYGV3Bh1bCUBQEwE2hhY4CivS2QYNEQCxYQe//f5LvXXMOZQb/vKDaHk9bF4GPA6fYZ2JUcpFI13nkKgOV6vJELwvDafBM0wVQILkQ2asfeSBZBrwhjRfZLI2VrEKSAx85WnOJacQS0cqjRiuUNY0nCWlV0KL6loicy5aqgwnV7FO2zyIzqiGGVLci7x+ym1FN0KF6lYi8+/2iaqFCK5QNjZWEtGrI04okphHLnFYO/oBk+CaPS2MjaxoDDyiTvJfdXoksSBYAuE2eaTgwsj2e6KagMtc8Uk8j4ZZGTPSLDg784PJmOm5XAw/qDwUNP8Hzm6t5AAAAAElFTkSuQmCC", De = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAABJlBMVEUAAAAAgIAAkpIAiIgAgI8AhYUAgIoAhY8Af4kAgooAgYkAgYkAgooAg4kAg4kAgooAgooAgosAgooAgooAgooAgooAgooAgYoAgooAg4oAgooAgooAgokAgosAgooAgooAgooAgooAgooAgooAgosAgooAgooAgooBgooCg4sDg4sEhIwMiJANiJAPiZERipISi5ITi5MVjJQZjpUjk5osmJ41nKJCoqhEo6lFpKpKpqxUq7Bbr7Rjs7hptrpvuL1xub13vMGHxMiIxciKxsmPyMyUy86YzdCdz9Kg0dSi0dSj0tWw2Nu73eC83+HH5OXN5+jU6uve7/Dh8PHl8vPm8/Pm8/Tp9PXq9PXs9vfw9/jz+fr5/Pz7/f38/f39/v7+///////J1DpbAAAAJ3RSTlMABgcPEBcYGRxeX2F0dXd6rK2ur7DGyMnMzdfY2dvg4u7v8PHz9fY5lqNWAAAA8UlEQVQYGWXBBVvCUAAF0LugRqOATrouiGDMLuzuTmT//0/4eMyPgedgQDPimUrNnDB0DCnhAh3liAqHN0mXKR8kT44j8n4ISopj0iqAEP+JAlqJbs3VJbKoI0C35sHbJckgEnRp7n1+HZKMwaRgrTUozO5+fB8tkMyiSuHqpVMnGzvv3eM5CiWUKOx3nzdY3379OWmxr4oshda5fbe89dQ7bVMyEWOfdWPfPvTO5jmQQJDSyr1tXyzSEYBepLT5eN2mo6gBUQ6sW/wTAqCmOSalQPDnOSLngeSbpkvSC4caKdNRCCsY0o3JmVolEzc0SL8wUUBuqXfKcwAAAABJRU5ErkJggg==", Ee = { class: "rh-data-center-panel__task" }, me = { class: "rh-data-center-panel__taskMain" }, Ie = { class: "rh-data-center-panel__taskTitle" }, ye = {
23
23
  key: 0,
24
24
  class: "rh-data-center-panel__taskTag"
25
- }, me = {
26
- key: 0,
27
- class: "rh-data-center-panel__progress"
28
- }, pe = { class: "rh-data-center-panel__meta" }, ge = {
25
+ }, pe = {
29
26
  key: 0,
30
27
  class: "rh-data-center-panel__actions"
31
- }, ke = ["disabled", "onClick"], _e = /* @__PURE__ */ M({
28
+ }, Me = ["disabled", "onClick"], Fe = { class: "rh-data-center-panel__meta" }, Se = { class: "rh-data-center-panel__progressRow" }, Pe = { class: "rh-data-center-panel__progress" }, Ye = ["src"], Te = /* @__PURE__ */ Z({
32
29
  __name: "RhDataCenterTaskItem",
33
30
  props: {
34
31
  task: {}
35
32
  },
36
33
  emits: ["action"],
37
- setup(e, { emit: p }) {
38
- const n = e, l = p, v = E(() => {
39
- const c = Number(n.task.progress || 0);
40
- return Math.min(100, Math.max(0, c));
41
- });
42
- return (c, k) => {
43
- var g;
44
- return r(), u("div", ve, [
45
- h("div", fe, [
46
- h("div", he, [
47
- h("span", null, C(e.task.title), 1),
48
- e.task.tag ? (r(), u("span", ye, C(e.task.tag), 1)) : b("", !0)
34
+ setup(e, { emit: s }) {
35
+ const t = e, A = s, n = p(() => {
36
+ if (t.task.status === "success")
37
+ return 100;
38
+ const Q = Number(t.task.progress || 0);
39
+ return Math.min(100, Math.max(0, Q));
40
+ }), r = p(() => t.task.status === "success" ? De : t.task.status === "failed" ? he : t.task.status === "waiting" ? ke : ""), v = p(() => t.task.status === "success" && t.task.failCount !== void 0 && t.task.failCount > 0), h = (Q) => {
41
+ const f = Math.max(0, Math.floor(Q)), i = Math.floor(f / 60), w = String(f % 60).padStart(2, "0");
42
+ return `总时长约${i}分${w}秒`;
43
+ }, k = p(() => t.task.status === "success" && t.task.failCount !== void 0 ? v.value ? `失败记录(${t.task.failCount}条)` : "" : t.task.status === "processing" && t.task.taskSeconds !== void 0 ? h(t.task.taskSeconds) : t.task.message || "");
44
+ return (Q, f) => {
45
+ var i;
46
+ return g(), C("div", Ee, [
47
+ c("div", me, [
48
+ c("div", Ie, [
49
+ c("div", null, [
50
+ c("span", null, m(e.task.title), 1),
51
+ e.task.tag ? (g(), C("span", ye, m(e.task.tag), 1)) : y("", !0)
52
+ ]),
53
+ (i = e.task.actions) != null && i.length ? (g(), C("div", pe, [
54
+ (g(!0), C(G, null, ee(e.task.actions, (w) => (g(), C("span", {
55
+ key: w.key,
56
+ type: "button",
57
+ class: "rh-data-center-panel__action",
58
+ disabled: w.disabled,
59
+ onClick: (D) => A("action", w.key)
60
+ }, m(w.label), 9, Me))), 128))
61
+ ])) : y("", !0)
49
62
  ]),
50
- e.task.status !== "success" ? (r(), u("div", me, [
51
- h("div", {
52
- class: F(["rh-data-center-panel__progressBar", { "is-failed": e.task.status === "failed" }]),
53
- style: X({ width: `${v.value}%` })
54
- }, null, 6)
55
- ])) : b("", !0),
56
- h("div", pe, C(e.task.createdAt), 1),
57
- e.task.message ? (r(), u("div", {
58
- key: 1,
59
- class: F(["rh-data-center-panel__message", { "is-failed": e.task.status === "failed" }])
60
- }, C(e.task.message), 3)) : b("", !0)
61
- ]),
62
- (g = e.task.actions) != null && g.length ? (r(), u("div", ge, [
63
- (r(!0), u(U, null, j(e.task.actions, (_) => (r(), u("button", {
64
- key: _.key,
65
- type: "button",
66
- class: "rh-data-center-panel__action",
67
- disabled: _.disabled,
68
- onClick: (T) => l("action", _.key)
69
- }, C(_.label), 9, ke))), 128))
70
- ])) : b("", !0)
63
+ c("div", Fe, m(e.task.createdAt), 1),
64
+ c("div", Se, [
65
+ c("div", Pe, [
66
+ c("div", {
67
+ class: S(["rh-data-center-panel__progressBar", { "is-failed": e.task.status === "failed" }]),
68
+ style: Ae({ width: `${n.value}%` })
69
+ }, null, 6)
70
+ ]),
71
+ r.value ? (g(), C("img", {
72
+ key: 0,
73
+ src: r.value,
74
+ class: "rh-data-center-panel__progressStatusIcon",
75
+ alt: ""
76
+ }, null, 8, Ye)) : y("", !0)
77
+ ]),
78
+ k.value ? (g(), C("div", {
79
+ key: 0,
80
+ class: S(["rh-data-center-panel__message", {
81
+ "is-failed": e.task.status === "failed" || v.value,
82
+ "is-waiting": e.task.status === "waiting"
83
+ }])
84
+ }, m(k.value), 3)) : y("", !0)
85
+ ])
71
86
  ]);
72
87
  };
73
88
  }
74
- }), Ce = "数据处理中心", be = 606, we = 500, ae = 124, Te = 1e3, $e = "-此处仅展示近15天内的数据-", Ee = { class: "rh-data-center-panel" }, Re = ["aria-pressed", "onClick", "onKeydown"], Ae = {
89
+ }), Oe = "数据处理中心", Ue = 715, Ke = 500, ce = 160, be = 1e3, Je = "仅展示近15天内的数据", Re = "download", Le = "downloadFailure", $ = {
90
+ Download: Re,
91
+ DownloadFailure: Le
92
+ }, q = {
93
+ Download: "下载文件",
94
+ Redownload: "重新下载文件",
95
+ DownloadFailure: "下载失败记录"
96
+ }, He = { class: "rh-data-center-panel" }, ze = ["aria-pressed", "onClick", "onKeydown"], Ne = {
75
97
  key: 0,
76
98
  class: "rh-data-center-panel__categoryCount"
77
- }, De = { class: "rh-data-center-panel__main" }, Le = { class: "rh-data-center-panel__title" }, Ve = { class: "rh-data-center-panel__scroll" }, xe = {
99
+ }, xe = { class: "rh-data-center-panel__main" }, Ge = { class: "rh-data-center-panel__title rh-data-center-panel__header" }, Ze = ["src"], Ve = { class: "rh-data-center-panel__scroll" }, We = {
78
100
  key: 0,
79
101
  class: "rh-data-center-panel__footer"
80
- }, Be = /* @__PURE__ */ M({
102
+ }, je = /* @__PURE__ */ Z({
81
103
  __name: "RhDataCenterPanel",
82
104
  props: {
83
105
  categories: {},
84
106
  loadTasks: {},
85
107
  activeCategoryKey: { default: void 0 },
86
- sidebarWidth: { default: ae },
108
+ sidebarWidth: { default: ce },
109
+ taskTagField: { default: "taskTypeName" },
87
110
  closeable: { type: Boolean, default: !0 },
88
111
  showTotal: { type: Boolean, default: !0 },
89
112
  showCategoryCount: { type: Boolean, default: !0 },
90
113
  categoryCounts: {},
91
- recentDaysText: { default: $e }
114
+ recentDaysText: { default: Je }
92
115
  },
93
116
  emits: ["close", "refresh", "task-action", "error"],
94
- setup(e, { expose: p, emit: n }) {
95
- const l = e, v = n, c = m(l.activeCategoryKey), k = m({}), g = m({}), _ = m({}), T = m({}), R = m({}), f = E(() => l.categories.find((s) => s.key === c.value) || l.categories[0]), A = E(() => {
96
- var s;
97
- return String(((s = f.value) == null ? void 0 : s.key) ?? "");
98
- }), $ = E(() => k.value[A.value]), K = E(() => g.value[A.value] === !0), D = E(() => _.value[A.value]), W = (s) => typeof s == "number" ? `${s}px` : s, z = E(() => ({
99
- width: W(l.sidebarWidth),
100
- flexBasis: W(l.sidebarWidth)
101
- })), x = (s) => {
102
- var a, t, y;
103
- if (!l.showCategoryCount)
104
- return;
105
- const i = String(s.key), o = (a = l.categoryCounts) == null ? void 0 : a[i];
106
- if (o !== void 0)
117
+ setup(e, { expose: s, emit: t }) {
118
+ const A = e, n = t, r = E(A.activeCategoryKey), v = E({}), h = E({}), k = E({}), Q = E({}), f = E({}), i = p(() => A.categories.find((o) => o.key === r.value) || A.categories[0]), w = p(() => {
119
+ var o;
120
+ return String(((o = i.value) == null ? void 0 : o.key) ?? "");
121
+ }), D = p(() => v.value[w.value]), Y = p(() => h.value[w.value] === !0), F = p(() => k.value[w.value]), V = (o) => typeof o == "number" ? `${o}px` : o, W = p(() => ({
122
+ width: V(A.sidebarWidth),
123
+ flexBasis: V(A.sidebarWidth)
124
+ })), O = (o) => {
125
+ if (o.tag !== void 0 || !o.raw || typeof o.raw != "object")
107
126
  return o;
108
- for (const d of Object.values(k.value)) {
109
- const B = (t = d.counts) == null ? void 0 : t[i];
110
- if (B !== void 0)
111
- return B;
127
+ const d = o.raw[A.taskTagField];
128
+ return typeof d != "string" ? o : { ...o, tag: d };
129
+ }, K = (o) => {
130
+ var a, u, B;
131
+ if (!A.showCategoryCount)
132
+ return;
133
+ const d = String(o.key), l = (a = A.categoryCounts) == null ? void 0 : a[d];
134
+ if (l !== void 0)
135
+ return l;
136
+ for (const J of Object.values(v.value)) {
137
+ const j = (u = J.counts) == null ? void 0 : u[d];
138
+ if (j !== void 0)
139
+ return j;
112
140
  }
113
- return (y = k.value[i]) == null ? void 0 : y.total;
114
- }, L = async (s = !1) => {
115
- const i = f.value;
116
- if (!i)
141
+ return (B = v.value[d]) == null ? void 0 : B.total;
142
+ }, U = async (o = !1) => {
143
+ const d = i.value;
144
+ if (!d)
117
145
  return;
118
- const o = String(i.key);
119
- if (R.value[o] && !s)
146
+ const l = String(d.key);
147
+ if (f.value[l] && !o)
120
148
  return;
121
- R.value[o] = !0, g.value[o] = !0, _.value[o] = void 0;
122
- const a = (T.value[o] || 0) + 1;
123
- T.value[o] = a, v("refresh", i);
149
+ f.value[l] = !0, h.value[l] = !0, k.value[l] = void 0;
150
+ const a = (Q.value[l] || 0) + 1;
151
+ Q.value[l] = a, n("refresh", d);
124
152
  try {
125
- const t = await l.loadTasks({ category: i });
126
- if (T.value[o] !== a || A.value !== o)
153
+ const u = await A.loadTasks({ category: d });
154
+ if (Q.value[l] !== a || w.value !== l)
127
155
  return;
128
- k.value[o] = t;
129
- } catch (t) {
130
- if (T.value[o] !== a || A.value !== o)
156
+ v.value[l] = u;
157
+ } catch (u) {
158
+ if (Q.value[l] !== a || w.value !== l)
131
159
  return;
132
- _.value[o] = t, v("error", t, i);
160
+ k.value[l] = u, n("error", u, d);
133
161
  } finally {
134
- T.value[o] === a && (g.value[o] = !1, R.value[o] = !1);
162
+ Q.value[l] === a && (h.value[l] = !1, f.value[l] = !1);
135
163
  }
136
- }, I = async (s) => {
137
- c.value !== s.key && (c.value = s.key, await L());
138
- }, N = (s, i) => {
139
- const o = f.value;
140
- o && v("task-action", { action: s, task: i, category: o });
164
+ }, b = async (o) => {
165
+ r.value !== o.key && (r.value = o.key, await U());
166
+ }, L = (o, d) => {
167
+ const l = i.value;
168
+ l && n("task-action", { action: o, task: d, category: l });
141
169
  };
142
- return ee(() => {
143
- var s;
144
- c.value === void 0 && (c.value = (s = l.categories[0]) == null ? void 0 : s.key);
145
- }), p({
146
- refresh: L
147
- }), (s, i) => {
170
+ return re(() => {
148
171
  var o;
149
- return r(), u("div", Ee, [
150
- h("aside", {
172
+ r.value === void 0 && (r.value = (o = A.categories[0]) == null ? void 0 : o.key);
173
+ }), s({
174
+ refresh: U
175
+ }), (o, d) => {
176
+ var l;
177
+ return g(), C("div", He, [
178
+ c("aside", {
151
179
  class: "rh-data-center-panel__sidebar",
152
- style: X(z.value)
180
+ style: Ae(W.value)
153
181
  }, [
154
- i[1] || (i[1] = h("div", { class: "rh-data-center-panel__title" }, "数据类型", -1)),
155
- (r(!0), u(U, null, j(e.categories, (a) => (r(), u("div", {
182
+ d[1] || (d[1] = c("div", { class: "rh-data-center-panel__title" }, "数据类型", -1)),
183
+ (g(!0), C(G, null, ee(e.categories, (a) => (g(), C("div", {
156
184
  key: a.key,
157
185
  role: "button",
158
186
  tabindex: "0",
159
- class: F(["rh-data-center-panel__category", { "is-active": c.value === a.key }]),
160
- "aria-pressed": c.value === a.key,
161
- onClick: (t) => I(a),
187
+ class: S(["rh-data-center-panel__category", { "is-active": r.value === a.key }]),
188
+ "aria-pressed": r.value === a.key,
189
+ onClick: (u) => b(a),
162
190
  onKeydown: [
163
- Q((t) => I(a), ["enter"]),
164
- Q(q((t) => I(a), ["prevent"]), ["space"])
191
+ ne((u) => b(a), ["enter"]),
192
+ ne(te((u) => b(a), ["prevent"]), ["space"])
165
193
  ]
166
194
  }, [
167
- h("span", null, C(a.label), 1),
168
- x(a) !== void 0 ? (r(), u("span", Ae, C(x(a)), 1)) : b("", !0)
169
- ], 42, Re))), 128))
195
+ c("span", null, m(a.label), 1),
196
+ K(a) !== void 0 ? (g(), C("span", Ne, m(K(a)), 1)) : y("", !0)
197
+ ], 42, ze))), 128))
170
198
  ], 4),
171
- h("section", De, [
172
- h("div", Le, [
173
- w(s.$slots, "header", { category: f.value }, () => [
174
- i[2] || (i[2] = Y("数据处理进度", -1))
199
+ c("section", xe, [
200
+ c("div", Ge, [
201
+ M(o.$slots, "header", { category: i.value }, () => [
202
+ d[2] || (d[2] = c("div", null, [
203
+ ae(" 数据处理进度 "),
204
+ c("div", { class: "rh-data-center-panel__subtitle" }, "任务处理状态监控")
205
+ ], -1))
175
206
  ]),
176
- e.closeable ? (r(), u("button", {
207
+ e.closeable ? (g(), C("button", {
177
208
  key: 0,
178
209
  type: "button",
179
- class: "rh-data-center-panel__action",
180
- onClick: i[0] || (i[0] = (a) => v("close"))
181
- }, "关闭")) : b("", !0)
210
+ class: "rh-data-center-panel__action rh-data-center-panel__closeAction",
211
+ "aria-label": "关闭",
212
+ onClick: d[0] || (d[0] = (a) => n("close"))
213
+ }, [
214
+ c("img", {
215
+ src: R(Qe),
216
+ class: "rh-data-center-panel__closeIcon",
217
+ alt: ""
218
+ }, null, 8, Ze)
219
+ ])) : y("", !0)
182
220
  ]),
183
- h("div", Ve, [
184
- K.value && !$.value ? (r(), J(G, {
221
+ c("div", Ve, [
222
+ Y.value && !D.value ? (g(), se(_, {
185
223
  key: 0,
186
224
  text: "加载中..."
187
- })) : D.value && !$.value ? w(s.$slots, "error", {
225
+ })) : F.value && !D.value ? M(o.$slots, "error", {
188
226
  key: 1,
189
- error: D.value,
190
- retry: L
227
+ error: F.value,
228
+ retry: U
191
229
  }, () => [
192
- O(G, {
230
+ x(_, {
193
231
  text: "任务加载失败",
194
232
  retryable: !0,
195
- onRetry: L
233
+ onRetry: U
196
234
  })
197
- ]) : (o = $.value) != null && o.items.length ? (r(!0), u(U, { key: 2 }, j($.value.items, (a) => w(s.$slots, "task", {
235
+ ]) : (l = D.value) != null && l.items.length ? (g(!0), C(G, { key: 2 }, ee(D.value.items, (a) => M(o.$slots, "task", {
198
236
  key: a.id,
199
- task: a,
200
- category: f.value,
201
- action: N
237
+ task: O(a),
238
+ category: i.value,
239
+ action: L
202
240
  }, () => [
203
- O(_e, {
204
- task: a,
205
- onAction: (t) => N(t, a)
241
+ x(Te, {
242
+ task: O(a),
243
+ onAction: (u) => L(u, a)
206
244
  }, null, 8, ["task", "onAction"])
207
- ])), 128)) : w(s.$slots, "empty", {
245
+ ])), 128)) : M(o.$slots, "empty", {
208
246
  key: 3,
209
- category: f.value
247
+ category: i.value
210
248
  }, () => [
211
- O(G, { text: "暂无任务" })
249
+ x(_, { text: "暂无任务" })
212
250
  ])
213
251
  ]),
214
- w(s.$slots, "footer", {
215
- result: $.value,
216
- category: f.value
252
+ M(o.$slots, "footer", {
253
+ result: D.value,
254
+ category: i.value
217
255
  }, () => {
218
256
  var a;
219
257
  return [
220
- e.showTotal ? (r(), u("div", xe, [
221
- h("span", null, C(((a = $.value) == null ? void 0 : a.total) || 0) + "条记录", 1),
222
- h("span", null, C(e.recentDaysText), 1)
223
- ])) : b("", !0)
258
+ e.showTotal ? (g(), C("div", We, [
259
+ c("span", null, m(((a = D.value) == null ? void 0 : a.total) || 0) + "条记录", 1),
260
+ c("span", null, m(e.recentDaysText), 1)
261
+ ])) : y("", !0)
224
262
  ];
225
263
  })
226
264
  ])
227
265
  ]);
228
266
  };
229
267
  }
230
- }), Ie = (e) => typeof e == "function" ? e() : e.value, Ne = (e, p) => {
231
- const n = (l) => {
232
- const v = l.target;
233
- if (!v)
268
+ }), qe = (e) => typeof e == "function" ? e() : e.value, Xe = (e, s) => {
269
+ const t = (A) => {
270
+ const n = A.target;
271
+ if (!n)
234
272
  return;
235
- e.some((k) => {
236
- var g;
237
- return (g = Ie(k)) == null ? void 0 : g.contains(v);
238
- }) || p();
273
+ e.some((v) => {
274
+ var h;
275
+ return (h = qe(v)) == null ? void 0 : h.contains(n);
276
+ }) || s();
239
277
  };
240
- ee(() => document.addEventListener("click", n, !0)), te(() => document.removeEventListener("click", n, !0));
241
- }, Pe = ["src"], He = /* @__PURE__ */ M({
278
+ re(() => document.addEventListener("click", t, !0)), ie(() => document.removeEventListener("click", t, !0));
279
+ }, _e = ["src"], $e = /* @__PURE__ */ Z({
242
280
  __name: "RhDataCenter",
243
281
  props: {
244
282
  modelValue: { type: Boolean, default: void 0 },
245
283
  categories: {},
246
284
  loadTasks: {},
247
- label: { default: Ce },
248
- width: { default: be },
249
- panelHeight: { default: we },
250
- sidebarWidth: { default: ae },
285
+ label: { default: Oe },
286
+ width: { default: Ue },
287
+ panelHeight: { default: Ke },
288
+ sidebarWidth: { default: ce },
289
+ taskTagField: { default: "taskTypeName" },
251
290
  panelRight: { default: 0 },
252
- pollInterval: { default: Te },
291
+ pollInterval: { default: be },
253
292
  refreshOnOpen: { type: Boolean, default: !0 },
254
293
  closeOnClickOutside: { type: Boolean, default: !0 },
255
294
  showCategoryCount: { type: Boolean, default: !0 },
@@ -258,142 +297,146 @@ const de = { class: "rh-data-center-panel__state" }, G = /* @__PURE__ */ M({
258
297
  activeIcon: { default: "" }
259
298
  },
260
299
  emits: ["update:modelValue", "open", "close", "refresh", "task-action", "error"],
261
- setup(e, { emit: p }) {
262
- const n = e, l = p, v = m(!1), c = m(null), k = m(null), g = m(null), _ = m({}), T = m(), R = m(!1), f = E(() => n.modelValue === void 0 ? v.value : n.modelValue), A = E(() => f.value ? n.activeIcon || n.icon : n.icon || n.activeIcon), $ = (t) => typeof t == "number" ? `${t}px` : t, K = (t) => typeof t == "number" ? t : Number.parseFloat(t) || 0, D = () => {
263
- const t = c.value, y = k.value;
264
- if (!t || !y)
300
+ setup(e, { emit: s }) {
301
+ const t = e, A = s, n = E(!1), r = E(null), v = E(null), h = E(null), k = E({}), Q = E(), f = E(!1), i = p(() => t.modelValue === void 0 ? n.value : t.modelValue), w = p(() => i.value ? t.activeIcon || t.icon : t.icon || t.activeIcon), D = (a) => typeof a == "number" ? `${a}px` : a, Y = (a) => typeof a == "number" ? a : Number.parseFloat(a) || 0, F = () => {
302
+ const a = r.value, u = v.value;
303
+ if (!a || !u)
265
304
  return;
266
- const d = t.getBoundingClientRect(), B = y.offsetWidth || K(n.width), ne = K(n.panelRight), P = 8, se = d.right - B - ne, oe = Math.min(
267
- Math.max(P, se),
268
- Math.max(P, window.innerWidth - B - P)
269
- ), le = Math.min(
270
- d.bottom + 8,
271
- Math.max(P, window.innerHeight - y.offsetHeight - P)
305
+ const B = a.getBoundingClientRect(), J = u.offsetWidth || Y(t.width), j = Y(t.panelRight), H = 8, ue = B.right - J - j, ge = Math.min(
306
+ Math.max(H, ue),
307
+ Math.max(H, window.innerWidth - J - H)
308
+ ), de = Math.min(
309
+ B.bottom + 8,
310
+ Math.max(H, window.innerHeight - u.offsetHeight - H)
272
311
  );
273
- _.value = {
274
- top: `${le}px`,
275
- left: `${oe}px`,
276
- width: $(n.width),
277
- "--rh-ui-data-center-panel-height": $(n.panelHeight)
312
+ k.value = {
313
+ top: `${de}px`,
314
+ left: `${ge}px`,
315
+ width: D(t.width),
316
+ "--rh-ui-data-center-panel-height": D(t.panelHeight)
278
317
  };
318
+ }, V = () => {
319
+ f.value || (f.value = !0, window.addEventListener("resize", F), window.addEventListener("scroll", F, !0));
279
320
  }, W = () => {
280
- R.value || (R.value = !0, window.addEventListener("resize", D), window.addEventListener("scroll", D, !0));
281
- }, z = () => {
282
- R.value && (R.value = !1, window.removeEventListener("resize", D), window.removeEventListener("scroll", D, !0));
283
- }, x = () => {
284
- T.value !== void 0 && (window.clearInterval(T.value), T.value = void 0);
321
+ f.value && (f.value = !1, window.removeEventListener("resize", F), window.removeEventListener("scroll", F, !0));
322
+ }, O = () => {
323
+ Q.value !== void 0 && (window.clearInterval(Q.value), Q.value = void 0);
324
+ }, K = () => {
325
+ var a;
326
+ (a = h.value) == null || a.refresh();
327
+ }, U = () => {
328
+ O(), !(!i.value || t.pollInterval <= 0) && (Q.value = window.setInterval(K, t.pollInterval));
329
+ }, b = (a) => {
330
+ t.modelValue === void 0 && (n.value = a), A("update:modelValue", a);
285
331
  }, L = () => {
286
- var t;
287
- (t = g.value) == null || t.refresh();
288
- }, I = () => {
289
- x(), !(!f.value || n.pollInterval <= 0) && (T.value = window.setInterval(L, n.pollInterval));
290
- }, N = (t) => {
291
- n.modelValue === void 0 && (v.value = t), l("update:modelValue", t);
292
- }, s = () => {
293
- f.value || (N(!0), l("open"));
294
- }, i = () => {
295
- f.value && (N(!1), l("close"));
296
- }, o = () => f.value ? i() : s(), a = () => {
332
+ i.value || (b(!0), A("open"));
333
+ }, o = () => {
334
+ i.value && (b(!1), A("close"));
335
+ }, d = () => i.value ? o() : L(), l = () => {
297
336
  if (document.visibilityState === "hidden") {
298
- x();
337
+ O();
299
338
  return;
300
339
  }
301
- I(), L();
340
+ U(), K();
302
341
  };
303
- return re(f, async (t) => {
304
- if (x(), z(), !t) {
305
- document.removeEventListener("visibilitychange", a);
342
+ return Ce(i, async (a) => {
343
+ if (O(), W(), !a) {
344
+ document.removeEventListener("visibilitychange", l);
306
345
  return;
307
346
  }
308
- await ie(), D(), W(), document.addEventListener("visibilitychange", a), n.refreshOnOpen && L(), I();
309
- }, { immediate: !0 }), Ne([c, k], () => {
310
- n.closeOnClickOutside && f.value && i();
311
- }), te(() => {
312
- x(), z(), document.removeEventListener("visibilitychange", a);
313
- }), (t, y) => (r(), u(U, null, [
314
- h("div", {
347
+ await Be(), F(), V(), document.addEventListener("visibilitychange", l), t.refreshOnOpen && K(), U();
348
+ }, { immediate: !0 }), Xe([r, v], () => {
349
+ t.closeOnClickOutside && i.value && o();
350
+ }), ie(() => {
351
+ O(), W(), document.removeEventListener("visibilitychange", l);
352
+ }), (a, u) => (g(), C(G, null, [
353
+ c("div", {
315
354
  ref_key: "triggerRef",
316
- ref: c,
355
+ ref: r,
317
356
  class: "rh-data-center",
318
- onClick: q(o, ["stop"])
357
+ onClick: te(d, ["stop"])
319
358
  }, [
320
- w(t.$slots, "trigger", {
321
- visible: f.value,
322
- open: s,
323
- close: i,
324
- toggle: o
359
+ M(a.$slots, "trigger", {
360
+ visible: i.value,
361
+ open: L,
362
+ close: o,
363
+ toggle: d
325
364
  }, () => [
326
- h("span", {
327
- class: F(["rh-data-center__trigger", { "is-active": f.value }])
365
+ c("span", {
366
+ class: S(["rh-data-center__trigger", { "is-active": i.value }])
328
367
  }, [
329
- A.value ? (r(), u("img", {
368
+ w.value ? (g(), C("img", {
330
369
  key: 0,
331
- src: A.value,
370
+ src: w.value,
332
371
  class: "rh-data-center__icon",
333
372
  alt: ""
334
- }, null, 8, Pe)) : b("", !0),
335
- h("span", null, C(e.label), 1)
373
+ }, null, 8, _e)) : y("", !0),
374
+ c("span", null, m(e.label), 1)
336
375
  ], 2)
337
376
  ], !0)
338
377
  ], 512),
339
- (r(), J(ue, { to: "body" }, [
340
- f.value ? (r(), u("div", {
378
+ (g(), se(we, { to: "body" }, [
379
+ i.value ? (g(), C("div", {
341
380
  key: 0,
342
381
  ref_key: "contentRef",
343
- ref: k,
382
+ ref: v,
344
383
  class: "rh-data-center__popover",
345
- style: X(_.value),
346
- onClick: y[3] || (y[3] = q(() => {
384
+ style: Ae(k.value),
385
+ onClick: u[3] || (u[3] = te(() => {
347
386
  }, ["stop"]))
348
387
  }, [
349
- O(Be, {
388
+ x(je, {
350
389
  ref_key: "panelRef",
351
- ref: g,
390
+ ref: h,
352
391
  categories: e.categories,
353
392
  "load-tasks": e.loadTasks,
354
393
  "sidebar-width": e.sidebarWidth,
394
+ "task-tag-field": e.taskTagField,
355
395
  closeable: !0,
356
396
  "show-category-count": e.showCategoryCount,
357
397
  "category-counts": e.categoryCounts,
358
- onClose: i,
359
- onRefresh: y[0] || (y[0] = (d) => l("refresh", d)),
360
- onTaskAction: y[1] || (y[1] = (d) => l("task-action", d)),
361
- onError: y[2] || (y[2] = (d, B) => l("error", d, B))
398
+ onClose: o,
399
+ onRefresh: u[0] || (u[0] = (B) => A("refresh", B)),
400
+ onTaskAction: u[1] || (u[1] = (B) => A("task-action", B)),
401
+ onError: u[2] || (u[2] = (B, J) => A("error", B, J))
362
402
  }, {
363
- header: V((d) => [
364
- w(t.$slots, "header", H(S(d)), () => [
365
- y[4] || (y[4] = Y("数据处理进度", -1))
403
+ header: T((B) => [
404
+ M(a.$slots, "header", z(N(B)), () => [
405
+ u[4] || (u[4] = c("div", null, [
406
+ ae(" 数据处理进度 "),
407
+ c("div", { class: "rh-data-center-panel__subtitle" }, "任务处理状态监控")
408
+ ], -1))
366
409
  ], !0)
367
410
  ]),
368
- task: V((d) => [
369
- w(t.$slots, "task", H(S(d)), void 0, !0)
411
+ task: T((B) => [
412
+ M(a.$slots, "task", z(N(B)), void 0, !0)
370
413
  ]),
371
- empty: V((d) => [
372
- w(t.$slots, "empty", H(S(d)), void 0, !0)
414
+ empty: T((B) => [
415
+ M(a.$slots, "empty", z(N(B)), void 0, !0)
373
416
  ]),
374
- error: V((d) => [
375
- w(t.$slots, "error", H(S(d)), void 0, !0)
417
+ error: T((B) => [
418
+ M(a.$slots, "error", z(N(B)), void 0, !0)
376
419
  ]),
377
- footer: V((d) => [
378
- w(t.$slots, "footer", H(S(d)), void 0, !0)
420
+ footer: T((B) => [
421
+ M(a.$slots, "footer", z(N(B)), void 0, !0)
379
422
  ]),
380
423
  _: 3
381
- }, 8, ["categories", "load-tasks", "sidebar-width", "show-category-count", "category-counts"])
382
- ], 4)) : b("", !0)
424
+ }, 8, ["categories", "load-tasks", "sidebar-width", "task-tag-field", "show-category-count", "category-counts"])
425
+ ], 4)) : y("", !0)
383
426
  ]))
384
427
  ], 64));
385
428
  }
386
429
  });
387
- const Fe = /* @__PURE__ */ ce(He, [["__scopeId", "data-v-47bfdbe2"]]), Se = {
430
+ const mt = /* @__PURE__ */ ve($e, [["__scopeId", "data-v-b34c61dc"]]), et = "data:image/png;base64,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ERe60IXCM57xjLDjjv5fpRvM6bsO3wIOoKE8o9///vdh++23DxtttFHYfPPNR9U6++yzw5/+9KdwoxvdKLzzne/sVV3O/fOf/zygpLbddlvzHP/973/D97///XD1q189XOISl2i6zi9+8YuAcrvoRS8arnGNazQd27rzOeecE37wgx909eR6ufK73/0u/POf/+zU4xZbrK7/yP2HP/whfP7zn+9u7453vGO4/OUv32qqqv1//etfd+feeGNGsKx4cQCtuMkTF6QhoHCudrWrhaOOumDp6p/85CfhgQ98YLj+9a8f3vOe91RV98Mf/nA44YQTwj777BNufOMbhyOOOCK88pWvHDv3U57ylA5qe+65Z9hkk03CD3/4w/CQhzykO/+b3vSmcKtb3arqWuy03377hU984hPhlre8ZXjzm988Ou74448P//nPf6rPIzve6173Cpe85CXN47797W+HRz/60d13b3zjG8NtbnOb5Pmf+cxnhk9/+tPhute9bnjf+97XXA99ABD/5je/2XQeOved73znpmPY+Wtf+1p4/OMf3+t51FwMN/9d73pXeMc73hHucY97hBe+8IU1h017HwfQtC3a93zTBBAQoHHd7na3C69//euXAei4444LL3nJS8LWW28dPvjBD3aqC1i8+MUv7qr/oQ99KFz5yleuvpUUgFB0qK/WcthhhyWV1Fve8pau01A++tGPjqlFfZ0WAGEPAJMqt7/97cPFL37x8IpXvKLpdm5xi1uEgw46qOmYlQAQ13jBC14QPvKRj3R1e9KTnhQe9KAHNddzwgMcQBMacGqHTxNA//jHP8IOO+wQ/vWvf3WAOfnkk0cK6O1vf3vYZZddwt///vfw1re+deSSve51rwsf+MAHAvEm4lDr1sly3eVbLAHo0pe+dOAnV84888yADSg5AKHSUGuXvexlw8c+9rHsOVsA9PCHPzx873vfS54Pe6KkANCGG24YbnKTm3T7oiROOumk7vOWW245AuKpp54a/vznP4chAwi3+1GPelRnzw022KB7WeUUZbklNO/hAGo2WY8DcAPe//73h7POOmvsaFwf3jp3vetdu843LReMixxyyCFdrOQJT3hC10HEBQM0L3vZy7oOLIqH/ZH7yH7iKqlgN7EI6XjxjZQAhMu01157ZS1HXR/60IdmAQQ07373u3ed/gpXuEK4973v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", tt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAABwCAYAAAA62R3EAAAAAXNSR0IArs4c6QAAFX9JREFUeF7tnQW0FdX3x/egYoHdgV2g2N2oKHZ3i4GgAnZ3K6CCGNjdLYqKnctEwVwGdgdYqNz/73Nk3/8wzNw75955c513917rLR73njnnzPec79k58wIxMQQMgaZBIGiaO7UbNQQMATHC2yYwBJoIASN8Ey223aohYIS3PWAINBECRvgmWmy7VUPACG97wBBoIgSM8E202HarhoAR3vaAIdBECBjhm2ix7VYNASO87QFDoIkQMMI30WLbrRoCdRO+VCp1EpHuItJVRDqISDuD1RAwBDJDYKyIjBaRYSIyJAiCkfX0XDPhS6VSWxHpJyI9RKRNPZOwaw0BQyAVAuNFZLCI9A2CYFyqKyKNaiL8BLIPFZEutQxq1xgChkBdCAwXkW61kL5Wwg8UkZ51TdkuNgQMgXoQGBQEQS/fDrwJP8FnH2FmvC/U1t4QyBQBzPvOvj59LYTvLyK9M526dWYIGAK1IDAgCII+PhfWQniihB19BrG2hoAh0CIIjAqCgCxZaqmF8GMs9ZYaX2toCLQkAmODIGjvM0AthC/5DGBtDQFDoOUQCILAi8NejZl2qVQywrfc+lnPhoAXAkZ4L7issSFQbASM8MVeP5u9IeCFgBHeCy5rbAgUGwEjfLHXz2ZvCHghYIT3gssaGwLFRsAIX+z1s9kbAl4IGOG94LLGhkCxETDCF3v9bPaGgBcCRngvuKyxIVBsBIzwxV4/m70h4IWAEd4LLmtsCBQbASN8sdfPZm8IeCFghPeCyxobAsVGwAhf7PWz2RsCXggY4b3gssaGQLERMMIXe/1s9oaAFwJGeC+4rLEhUGwEjPDFXj+bvSHghYAR3gsua2wIFBsBI3yx189mbwh4IWCE94LLGhsCxUbACP+/P4vz008/yfjx/CWe/5dppplGpppqqmKvrs3eEIgg0PSEP+SQQ+TZZ5+dZGO0bdtWjjjiCNlyyy1t0xgCrQaBpib8V199JZtuuqlMPvnkMuuss5YX9a+//pLvvvtOOnfuLFdeeWVNi03fH3zwgWApLLfccrF9jBs3Tt566y1ZaKGFZPrpp/ca5+OPP3aWSbt27WThhRf2uta38d9//y0jR45082S8SvLll1/KmDFjnHXUoUMH36Ea2v7rr7+WJ5980s1h7bXXltlnn71F5vPZZ5+5vqeYYooW6b9Sp01NeIBHg88///xy++23l3F69913ZZdddpFOnTrJNddck2pR7rvvPrn//vvlwAMPlKWXXlpuvfVWOeeccybqu2/fvu4Q2WmnnWTKKaeUUaNGye677+76HzhwoKyyyiqpxqLRMcccI8OGDZOVV15ZBg0aVL7u3nvvld9++y11P9pwo402khlmmCH2utdee0323Xdf992FF14oq622WmL/Rx55pDz22GOyxBJLyHXXXec9j+gFHJovv/yyVz+Qad111/W6hsYvvPCC9Or1719U9l2PNIPhNl511VVyxRVXSNeuXeWkk05Kc1mmbYzwGREe0rGYa6yxhgwYMGASwt99991y2mmnyYILLig33nijsyog5ymnnOIW9J577pG555479eImER6LBevCV26++eZES2Hw4MFukyJDhw6dyBqKjuNDePCA0Emy5pprynTTTSdnn3221+2stNJKcvHFF3tdkwfhGePEE0+UBx54wM2td+/esuuuu3rPs54LjPAZEf6XX36RzTffXMaOHesI/frrr5c1/JAhQ2SbbbaRn3/+WS677LKyid+/f3+54YYbhHgBcQSfP/tVjfAzzTST8FNJ/vjjD8HKQSoRHisEa2SWWWaRhx56qGKfPoTfa6+95M0330zsDzyxFCD8ZJNNJssuu6xri6Z89dVX3e/zzTdf+QD66KOP5Pvvv5f/MuFx47p37+7wbNOmjVMOlSymesgdd22rJTxm5fXXXy9//vnnRPeNKc2put5667nNnpVJzyCXXnqp83UPPvhgtyHVpIfYZ555piOManTaYz5iRuIXJwUH8SV1o4dvpBrhMcH333//ivuFue6xxx4VCc8htcEGGziSzTHHHNKtW7dJ+mSOSy65pPvch/AcMmqNoPV+/PFHmXfeeZ3/jOBSEaeA8NNOO23Zv2ZNV199ddfm6KOPdocpgomMW/VfJjzz/Oabb2S33XZzhxNrj4KYa665suZ2bH+tlvD4pATe4kQ1VVaE//DDD50/HRZO8Oeee875xdtuu637iuAXpjyHzSKLLCKV5qh9HXrooc7nR5566il544033O8ElwjczTnnnM4fRHr27OmsDEiUFeEfeeQRR6pKctRRR5Xv0Yfw4T533nlnee+995zvfe6555a/uu222zIhPLGY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", At = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAABeCAYAAACq0qNuAAAAAXNSR0IArs4c6QAABPhJREFUeF7tnOuvVUUMxdcS8BEF34pRfEcUlfiMX/zvNTEgmCiiBhEMBFCDQIIgoFizzJzk5JoLm3vb6eydNrnfzm47v93bPdPpDFGSQoApVssoCnxSEBT4Ap9EIMlsRXyBTyKQZLYivsAnEUgyWxFf4JMIJJmtiC/wSQSSzFbEF/j/EzAzBcaDAB5qfzsB7ABwH4Db7e8vAH8CuE7yVhLHezY7XMSbmSA/CeBxAI820FMHdhPAFQCXAfxO8u+pD/b+3RDgW2Q/C+A5AHucIPwj+ADOk9TLGErSwZvZ0wBeaakkCs4lAKdIXosycK9608CbmdLIq44RPmXsvwD4maRSUqp0B29m+jC+AUCpJUOUgk6SvJBhfGWzK3gzux/AOwB2Zw662T4H4CeSluFLN/BmJtiCLvijiGY/32XMfrqAN7OnALzV5t+jQF/5oTXANyRv9HQsHLyZaXr4HjD0xvp1AF+R1KKsi4SCN7MHAHwwWHrZDKzm/Md75fww8G32okgf4UM6NYrPkjw19cfb+V0keOX0Z7bjXNKz35P8Ldp2CHgzU53lYLTzQfpVdDscPdNxB9/qLsrrjwSB6aH2DMnTkYYiwGtF+mak0x10a3V7KLLM7Aq+fVA/bjX0DnxCTVwgeSLKgjf45wG8HuVsgl7lei2w3MUb/Iczz+0bAYflejfwZvYwgI/cQyNXocoIinr3Qpon+JcBvJTLKcS6SglXvTV7gtcqVZsbSxPtXJ31HpQL+Dab+XTwQthW2V0ieWyrD2/2nBd4LZb0YV2i3CL5hffAvMCrJqPazFLlc++SsRd4fVT1cV2qHCX5h+fgvMC/BuAFT8cG06UdKm0TuokX+P0A9rp5NZ4ibZBc9HTLC/xca+9TWbrX6L3Aq09G7XdLlW9JamvQTbzALz3Hf+3df+kF/sXW/+gWEYMpOuLdd+kFXo2nBwaD5enOZyS1OeImXuCXWJlcQb5B8pAb8abIC7z0qFajhtSlyUWSx70H5QJeTpnZuwCe8HZwAH0/kjzv7Ycn+H2t393bx2x9X5JUi5+reILXIbFPXL3LV3aN5JEIN9zAt3SztM2QkE0QsfIGv6TycGhvjTd46Zt7F9kqs4R1GLhHfEs3c+6bXEEP7590jfiV12amhlW9gLmKDqfpjFSYRIGf8x6semk0hXQtEWx8gyHgW8rRoWEVz+YkalzSblP4SfBI8NL9druXYC7wT/Q6/xoGvkW9btp4H4CKaKPLOZInezkZCr7B14pWU8xdvQa1BTvayD4W0SO5mS/h4Bv8EQ8Xr5gon2szu+sVK13AN/g6eqmcP9IpQFUdNXV07wa+239dN/ANvur1OqajHatMEWgBdy/3Th1UV/Arp8xM00x1n2VsnOjKlB96TBnv9BJSwK+lHrX99WqEUg4/A0Czl9DF0ZSoTwO/Fv2aaurCoKjdK6UVLf9V9FINZghJB7/2AnTZhJqilP81/9+uaOn/KwCd3ku/kWnjYIYBv/YClPcfW7uFT/8RU74FSiU6MvPfLXwRx2e2Gwnrzw8HfuPg2klxTUV1LeJm907qzslh0siUFzQ8+CmDmONvCnzSWyvwBT6JQJLZivgCn0QgyWxFfIFPIpBktiK+wCcRSDJbEV/gkwgkma2IL/BJBJLMVsQX+CQCSWYr4gt8EoEksxXxBT6JQJLZivgCn0QgyWxFfBL4fwFyO0ZuEU73UAAAAABJRU5ErkJggg==", at = "data:image/png;base64,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", st = "data:image/png;base64,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", nt = {
388
431
  key: 0,
389
- class: "rh-data-center-tip__guide"
390
- }, Oe = { class: "rh-data-center-tip__content" }, Me = {
432
+ class: "rh-data-center-tip__guide-arrow"
433
+ }, ot = ["src"], rt = ["src"], it = ["src"], ct = ["src"], lt = ["src"], ut = { class: "rh-data-center-tip__content" }, gt = {
391
434
  key: 0,
392
435
  class: "rh-data-center-tip__minutes"
393
- }, Ke = {
436
+ }, dt = {
394
437
  key: 1,
395
438
  class: "rh-data-center-tip__description"
396
- }, Ue = /* @__PURE__ */ M({
439
+ }, It = /* @__PURE__ */ Z({
397
440
  __name: "RhDataCenterTip",
398
441
  props: {
399
442
  modelValue: { type: Boolean, default: !1 },
@@ -402,62 +445,200 @@ const Fe = /* @__PURE__ */ ce(He, [["__scopeId", "data-v-47bfdbe2"]]), Se = {
402
445
  title: { default: "" },
403
446
  content: { default: "" },
404
447
  width: { default: "540px" },
405
- showGuideAnimation: { type: Boolean, default: !0 }
448
+ showGuideAnimation: { type: Boolean, default: !0 },
449
+ guideVariant: { default: "default" }
406
450
  },
407
451
  emits: ["update:modelValue", "close"],
408
- setup(e, { emit: p }) {
409
- const n = p, l = () => {
410
- n("update:modelValue", !1), n("close");
452
+ setup(e, { emit: s }) {
453
+ const t = s, A = () => {
454
+ t("update:modelValue", !1), t("close");
411
455
  };
412
- return (v, c) => {
413
- const k = Z("el-button"), g = Z("el-dialog");
414
- return r(), J(g, {
456
+ return (n, r) => {
457
+ const v = oe("el-button"), h = oe("el-dialog");
458
+ return g(), se(h, {
415
459
  "model-value": e.modelValue,
416
460
  title: e.title || "提示",
417
461
  width: e.width,
418
462
  "append-to-body": "",
419
- "onUpdate:modelValue": c[0] || (c[0] = (_) => n("update:modelValue", _)),
420
- onClose: l
463
+ "onUpdate:modelValue": r[0] || (r[0] = (k) => t("update:modelValue", k)),
464
+ onClose: A
421
465
  }, {
422
- footer: V(() => [
423
- O(k, {
466
+ footer: T(() => [
467
+ x(v, {
424
468
  type: "primary",
425
- onClick: l
469
+ onClick: A
426
470
  }, {
427
- default: V(() => [...c[1] || (c[1] = [
428
- Y("关闭弹框", -1)
471
+ default: T(() => [...r[1] || (r[1] = [
472
+ ae("关闭弹框", -1)
429
473
  ])]),
430
474
  _: 1
431
475
  })
432
476
  ]),
433
- default: V(() => [
434
- e.showGuideAnimation ? (r(), u("div", Se)) : b("", !0),
435
- h("div", Oe, [
436
- e.minutes !== void 0 ? (r(), u("span", Me, C((e.title || "任务处理中,大概需要") + e.minutes + "分钟"), 1)) : b("", !0),
437
- e.content ? (r(), u("div", Ke, C(e.content), 1)) : b("", !0),
438
- w(v.$slots, "extra")
477
+ default: T(() => [
478
+ e.showGuideAnimation ? (g(), C("div", {
479
+ key: 0,
480
+ class: S(["rh-data-center-tip__guide", { "rh-data-center-tip__guide--image": e.guideVariant !== "default" }])
481
+ }, [
482
+ e.guideVariant === "default" ? (g(), C("span", nt)) : (g(), C(G, { key: 1 }, [
483
+ c("img", {
484
+ src: R(et),
485
+ class: S(["rh-data-center-tip__guide-box rh-data-center-tip__guide-box--light", `is-${e.guideVariant}`])
486
+ }, null, 10, ot),
487
+ c("img", {
488
+ src: R(tt),
489
+ class: S(["rh-data-center-tip__guide-box rh-data-center-tip__guide-box--dark", `is-${e.guideVariant}`])
490
+ }, null, 10, rt),
491
+ c("img", {
492
+ src: R(At),
493
+ class: S(["rh-data-center-tip__guide-arrow-image rh-data-center-tip__guide-arrow-image--dark", `is-${e.guideVariant}`])
494
+ }, null, 10, it),
495
+ c("img", {
496
+ src: R(st),
497
+ class: S(["rh-data-center-tip__guide-arrow-image rh-data-center-tip__guide-arrow-image--light", `is-${e.guideVariant}`])
498
+ }, null, 10, ct),
499
+ c("img", {
500
+ src: R(at),
501
+ class: S(["rh-data-center-tip__guide-hand", `is-${e.guideVariant}`])
502
+ }, null, 10, lt)
503
+ ], 64))
504
+ ], 2)) : y("", !0),
505
+ c("div", ut, [
506
+ e.minutes !== void 0 ? (g(), C("span", gt, m((e.title || "任务处理中,大概需要") + e.minutes + "分钟"), 1)) : y("", !0),
507
+ e.content ? (g(), C("div", dt, m(e.content), 1)) : y("", !0),
508
+ M(n.$slots, "extra")
439
509
  ])
440
510
  ]),
441
511
  _: 3
442
512
  }, 8, ["model-value", "title", "width"]);
443
513
  };
444
514
  }
445
- }), Ge = () => {
446
- const e = m(!1), p = m({});
515
+ }), yt = () => {
516
+ const e = E(!1), s = E({});
447
517
  return {
448
518
  tipVisible: e,
449
- tipConfig: p,
450
- showTip: (v) => {
451
- p.value = { ...v }, e.value = !0;
519
+ tipConfig: s,
520
+ showTip: (n) => {
521
+ s.value = { ...n }, e.value = !0;
452
522
  },
453
523
  closeTip: () => {
454
524
  e.value = !1;
455
525
  }
456
526
  };
457
527
  };
528
+ var I = /* @__PURE__ */ ((e) => (e[e.NotStarted = 0] = "NotStarted", e[e.InProgress = 1] = "InProgress", e[e.Completed = 2] = "Completed", e[e.Expired = 3] = "Expired", e[e.Revoked = 4] = "Revoked", e[e.Failed = 5] = "Failed", e[e.Queued = 6] = "Queued", e[e.Stopped = 7] = "Stopped", e))(I || {});
529
+ const le = (e, s) => String(e) === String(s), X = (e, s) => !!(e != null && e.some((t) => le(t, s))), Ct = (e, s) => {
530
+ var A;
531
+ if (s)
532
+ return s(e);
533
+ if (Array.isArray(e))
534
+ return e;
535
+ const t = e;
536
+ return Array.isArray(t.data) ? t.data : Array.isArray((A = t.data) == null ? void 0 : A.list) ? t.data.list : Array.isArray(t.list) ? t.list : [];
537
+ }, P = (e) => e, Bt = (e, s, t) => {
538
+ const n = P(e).taskType;
539
+ return X(t == null ? void 0 : t.import, s.key) || X(t == null ? void 0 : t.import, n) ? "import" : X(t == null ? void 0 : t.export, s.key) || X(t == null ? void 0 : t.export, n) ? "export" : "other";
540
+ }, wt = (e, s) => {
541
+ const t = P(e), A = Number(t.taskStatus), n = Number(t.failCount);
542
+ return s === "import" && A === I.Failed && n > 0 ? "success" : A === I.NotStarted || A === I.Queued ? "waiting" : A === I.InProgress ? "processing" : A === I.Completed ? "success" : "failed";
543
+ }, vt = (e) => {
544
+ const s = P(e), t = Number(s.taskStatus);
545
+ if (t === I.Queued)
546
+ return "当前任务正在排队中,请耐心等待";
547
+ if (t === I.Stopped)
548
+ return "停止原因:未知原因,请联系技术人员";
549
+ if (t === I.InProgress && s.taskSeconds !== void 0) {
550
+ const A = Math.max(0, Math.floor(Number(s.taskSeconds))), n = Math.floor(A / 60), r = String(A % 60).padStart(2, "0");
551
+ return `总时长约${n}分${r}秒`;
552
+ }
553
+ return s.taskStatusName;
554
+ }, Qt = (e, s) => {
555
+ const t = P(e), A = Number(t.taskStatus), n = Number(t.failCount);
556
+ return s === "export" && A === I.Completed ? [{
557
+ key: $.Download,
558
+ label: t.downloadFlag === 0 ? q.Download : q.Redownload
559
+ }] : s === "import" && (A === I.Completed || A === I.Failed) && n > 0 ? [{
560
+ key: $.DownloadFailure,
561
+ label: q.DownloadFailure
562
+ }] : s !== "export" && A === I.Failed ? [{
563
+ key: $.DownloadFailure,
564
+ label: q.DownloadFailure
565
+ }] : [];
566
+ }, ft = (e, s, t) => {
567
+ const A = P(e);
568
+ return {
569
+ id: A.id,
570
+ categoryKey: s.key,
571
+ title: A.taskName,
572
+ tag: A.taskTypeName,
573
+ taskTypeName: A.taskTypeName,
574
+ createdAt: A.createdTime,
575
+ progress: Number(A.taskSchedule || 0),
576
+ status: wt(e, t),
577
+ message: vt(e),
578
+ failCount: Number(A.failCount || 0),
579
+ taskSeconds: A.taskSeconds,
580
+ actions: Qt(e, t),
581
+ raw: e
582
+ };
583
+ }, ht = (e, s) => {
584
+ const t = {}, A = s.find((n) => {
585
+ const r = n.query;
586
+ return (r == null ? void 0 : r.taskType) === 0 || String(n.key) === "all";
587
+ });
588
+ return A && (t[String(A.key)] = e.length), s.forEach((n) => {
589
+ if (A && n.key === A.key)
590
+ return;
591
+ const r = n.query;
592
+ if ((r == null ? void 0 : r.taskType) === void 0) {
593
+ t[String(n.key)] = 0;
594
+ return;
595
+ }
596
+ t[String(n.key)] = e.filter((v) => le(P(v).taskType, r.taskType)).length;
597
+ }), t;
598
+ }, kt = (e, s) => s ? s(e) : e.query || {}, pt = (e) => ({ loadTasks: async ({ category: A }) => {
599
+ const n = e.api.getTaskList(kt(A, e.getQuery)), r = e.api.getTaskCounts ? e.api.getTaskCounts().catch(() => {
600
+ }) : Promise.resolve(void 0), [v, h] = await Promise.all([n, r]), k = Ct(v, e.parseResponse).sort((i, w) => {
601
+ const D = String(P(i).createdTime || "");
602
+ return String(P(w).createdTime || "").localeCompare(D);
603
+ }), Q = k.map((i) => {
604
+ const w = Bt(i, A, e.taskKind), D = { category: A, taskKind: w }, Y = e.mapTask ? e.mapTask(i, D) : ft(i, A, w);
605
+ if (!e.resolveActions)
606
+ return Y;
607
+ const F = {
608
+ ...D,
609
+ taskStatus: Number(P(i).taskStatus)
610
+ };
611
+ return {
612
+ ...Y,
613
+ actions: e.resolveActions(i, F)
614
+ };
615
+ }), f = e.resolveCounts ? e.resolveCounts(k, e.categories) : ht(k, e.categories);
616
+ if (h !== void 0 && e.parseCounts)
617
+ try {
618
+ Object.assign(f, e.parseCounts(h, e.categories));
619
+ } catch {
620
+ }
621
+ return f[String(A.key)] === void 0 && (f[String(A.key)] = Q.length), {
622
+ items: Q,
623
+ total: Q.length,
624
+ counts: f
625
+ };
626
+ }, handleTaskAction: async ({ action: A, task: n }) => {
627
+ !e.api.downloadTask || !n.raw || typeof n.raw != "object" || await e.api.downloadTask({
628
+ taskId: n.id,
629
+ action: A,
630
+ task: n.raw
631
+ });
632
+ } });
458
633
  export {
459
- Fe as RhDataCenter,
460
- Be as RhDataCenterPanel,
461
- Ue as RhDataCenterTip,
462
- Ge as useRhDataCenter
634
+ Re as DOWNLOAD_ACTION,
635
+ Le as DOWNLOAD_FAILURE_ACTION,
636
+ $ as RH_DATA_CENTER_ACTION,
637
+ q as RH_DATA_CENTER_ACTION_LABEL,
638
+ mt as RhDataCenter,
639
+ je as RhDataCenterPanel,
640
+ I as RhDataCenterTaskStatusCode,
641
+ It as RhDataCenterTip,
642
+ pt as createRhDataCenterAdapter,
643
+ yt as useRhDataCenter
463
644
  };