@akiraka/quark-big-screen-ui 0.1.9 → 0.1.10

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.
@@ -0,0 +1,30 @@
1
+ type __VLS_Props = {
2
+ buildingCount?: number;
3
+ todayBuilds?: number;
4
+ successRate?: number;
5
+ items?: Array<{
6
+ pipelineId: number;
7
+ buildId?: number | null;
8
+ jobName?: string | null;
9
+ statusText?: string | null;
10
+ currentStage?: string | null;
11
+ buildUser?: string | null;
12
+ progress?: number | null;
13
+ }>;
14
+ };
15
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ items: Array<{
17
+ pipelineId: number;
18
+ buildId?: number | null;
19
+ jobName?: string | null;
20
+ statusText?: string | null;
21
+ currentStage?: string | null;
22
+ buildUser?: string | null;
23
+ progress?: number | null;
24
+ }>;
25
+ buildingCount: number;
26
+ todayBuilds: number;
27
+ successRate: number;
28
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
+ export default _default;
30
+ //# sourceMappingURL=BigScreenBuildProjects.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BigScreenBuildProjects.vue.d.ts","sourceRoot":"","sources":["../../src/components/BigScreenBuildProjects.vue"],"names":[],"mappings":"AAaA,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CACvM,CAAC;;WADQ,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;mBAHtL,MAAM;iBACR,MAAM;iBACN,MAAM;;AAgHtB,wBAOG"}
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- :root{--qbs-surface-top: rgba(13, 24, 39, .92);--qbs-surface-bottom: rgba(8, 16, 28, .96);--qbs-border: rgba(142, 161, 178, .2);--qbs-text: #f6f8fb;--qbs-muted: #9fb2c7;--qbs-radius: 20px;--qbs-shadow: 0 18px 48px rgba(4, 10, 18, .28)}.qbs-panel[data-v-749400b6]{position:relative;display:flex;height:100%;min-height:0;flex-direction:column;border:1px solid oklch(.6 .12 220 / .28);border-radius:10px;background:linear-gradient(160deg,#091b318c,#050f2066);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#c8e4e9}.qbs-panel--overflow-hidden[data-v-749400b6]{overflow:hidden}.qbs-panel--padding-md[data-v-749400b6]{padding:14px 16px}.qbs-panel--padding-compact[data-v-749400b6]{padding:10px 12px}.qbs-panel--padding-tight[data-v-749400b6]{padding:12px 8px}.qbs-panel__corner[data-v-749400b6]{position:absolute;width:12px;height:12px;border:2px solid var(--qbs-accent);pointer-events:none}.qbs-panel__corner--tl[data-v-749400b6]{top:-1px;left:-1px;border-right:0;border-bottom:0}.qbs-panel__corner--tr[data-v-749400b6]{top:-1px;right:-1px;border-left:0;border-bottom:0}.qbs-panel__corner--bl[data-v-749400b6]{bottom:-1px;left:-1px;border-right:0;border-top:0}.qbs-panel__corner--br[data-v-749400b6]{right:-1px;bottom:-1px;border-left:0;border-top:0}.qbs-panel__header[data-v-749400b6]{display:flex;align-items:center;gap:8px;margin:0 0 10px;min-width:0;font-weight:700;letter-spacing:1px}.qbs-panel__header--md[data-v-749400b6]{font-size:14px}.qbs-panel__header--sm[data-v-749400b6]{margin-bottom:8px;font-size:13px}.qbs-panel__bar[data-v-749400b6]{width:4px;height:14px;flex-shrink:0;border-radius:2px;background:var(--qbs-accent);box-shadow:0 0 8px var(--qbs-accent)}.qbs-panel__title[data-v-749400b6]{flex-shrink:0}.qbs-panel__header-prefix[data-v-749400b6]{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.qbs-panel__header-center[data-v-749400b6]{display:inline-flex;flex:1;min-width:0;justify-content:center}.qbs-panel__header-extra[data-v-749400b6]{display:inline-flex;align-items:center;justify-content:flex-end;flex-shrink:0;margin-left:auto}.qbs-panel__live[data-v-749400b6]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:1px;color:#ff5050;color:oklch(.68 .22 25)}.qbs-panel__live-dot[data-v-749400b6]{width:7px;height:7px;border-radius:50%;background:#ff5050;background:oklch(.68 .22 25);box-shadow:0 0 8px #ff5050;box-shadow:0 0 8px oklch(.68 .22 25);animation:qbs-panel-blink-749400b6 1s steps(1,end) infinite}.qbs-panel__body[data-v-749400b6]{display:flex;flex:1;min-height:0;flex-direction:column}.qbs-panel--layout-metric .qbs-panel__body[data-v-749400b6]{align-items:center;justify-content:center;gap:4px;text-align:center}@keyframes qbs-panel-blink-749400b6{50%{opacity:.25}}.qbs-duty-compact[data-v-f5721bce]{display:flex;align-items:center;gap:12px}.qbs-duty-compact__avatar[data-v-f5721bce]{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:10px;background:#34dde5;box-shadow:0 0 14px #34dde599;color:#050e1a;font-size:18px;font-weight:700}.qbs-duty-compact__info[data-v-f5721bce]{display:flex;flex-direction:column}.qbs-duty-compact__name[data-v-f5721bce]{color:#cfebf0;font-size:15px;font-weight:700}.qbs-duty-compact__phone[data-v-f5721bce]{color:#7d939e;font-family:var(--font-mono,monospace);font-size:12px}.qbs-duty-compact__tag[data-v-f5721bce]{margin-left:auto;padding:4px 10px;border:1px solid oklch(.82 .13 200 / .4);border-radius:20px;background:#34dde51a;color:#34dde5;font-size:11px}.qbs-duty[data-v-f5721bce]{display:flex;height:100%;min-height:0;flex-direction:column;gap:14px}.qbs-duty__summary[data-v-f5721bce]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qbs-duty__summary-chip[data-v-f5721bce]{padding:10px 12px;border:1px solid rgba(157,176,198,.12);border-radius:14px;background:#0f1927bd}.qbs-duty__summary-chip span[data-v-f5721bce]{display:block;margin-bottom:6px;color:#8ca0b4;font-size:11px}.qbs-duty__summary-chip strong[data-v-f5721bce]{color:#f5f8fc;font-size:15px;line-height:1.2}.qbs-duty__list[data-v-f5721bce]{display:grid;min-height:0;gap:10px;overflow:auto}.qbs-duty__group[data-v-f5721bce]{padding:12px;border:1px solid rgba(157,176,198,.1);border-radius:16px;background:#0d1723c2}.qbs-duty__group-header[data-v-f5721bce]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#edf3f9;font-size:13px}.qbs-duty__group-header span[data-v-f5721bce]{color:#8ca0b4}.qbs-duty__users[data-v-f5721bce]{display:flex;flex-wrap:wrap;gap:8px}.qbs-duty__user[data-v-f5721bce]{padding:5px 10px;border-radius:999px;background:#19293ed1;color:#bfd0e0;font-size:12px}.qbs-duty__empty[data-v-f5721bce]{display:grid;min-height:140px;place-items:center;border:1px dashed rgba(157,176,198,.14);border-radius:16px;background:#0c162280;color:#7d91a6;font-size:13px}.qbs-alert-row[data-v-83959767]{display:block;box-sizing:border-box;width:100%;margin:0;padding:8px 10px;border:0;border-left:3px solid var(--qbs-alert-accent);border-radius:6px;background:#1c293d66;color:inherit;text-align:left;cursor:pointer}.qbs-alert-row--detail-wide[data-v-83959767]{padding-top:10px;padding-bottom:10px}.qbs-alert-row__main[data-v-83959767]{display:flex;align-items:stretch;gap:12px}.qbs-alert-row__copy[data-v-83959767]{flex:0 0 40%;min-width:0}.qbs-alert-row--detail-wide .qbs-alert-row__copy[data-v-83959767]{flex-basis:36%}.qbs-alert-row__title[data-v-83959767]{overflow:hidden;margin-bottom:5px;color:#d0e2e6;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.qbs-alert-row__meta[data-v-83959767]{display:flex;align-items:center;gap:10px;min-width:0;color:#6e848f;font-size:11px}.qbs-alert-row__group[data-v-83959767]{overflow:hidden;max-width:110px;min-width:0;text-overflow:ellipsis;white-space:nowrap}.qbs-alert-row__owner[data-v-83959767]{color:#64b3c0}.qbs-alert-row__time[data-v-83959767]{font-family:var(--font-mono,monospace)}.qbs-alert-row__tag[data-v-83959767]{margin-left:auto;padding:1px 6px;border:1px solid oklch(.68 .22 25 / .5);border-radius:4px;color:#ff5050;color:oklch(.68 .22 25);font-size:10px}.qbs-alert-row__status[data-v-83959767]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;color:#869ca7;font-size:10px}.qbs-alert-row__aside[data-v-83959767]{flex:1 1 60%;width:60%;align-self:center}.qbs-alert-row--detail-wide .qbs-alert-row__aside[data-v-83959767]{flex-basis:64%;width:64%}.qbs-metric-card--compact[data-v-07353599]{display:flex;min-width:0;flex-direction:column;padding:10px 12px;border:1px solid rgba(157,176,198,.12);border-radius:14px;background:#101a28c7}.qbs-metric-card--compact span[data-v-07353599]{margin-bottom:6px;color:#899eb1;font-size:11px}.qbs-metric-card--compact strong[data-v-07353599]{color:var(--qbs-metric-tone);font-size:18px;line-height:1.2}.qbs-metric-card__value[data-v-07353599]{color:var(--qbs-metric-tone);font-size:28px;font-weight:700;line-height:1}.qbs-metric-card__label[data-v-07353599]{color:#869ca7;font-size:11px;letter-spacing:1px;text-align:center}.qbs-header[data-v-cc041333]{position:relative;height:100%;min-height:0;overflow:hidden;border:1px solid rgba(149,169,189,.24);border-radius:24px;background:linear-gradient(90deg,#07111df0,#0a1825e6 44%,#080f19f2);box-shadow:inset 0 1px #ffffff0f,0 18px 42px #050b1438}.qbs-header__glow[data-v-cc041333]{position:absolute;bottom:-40%;left:-8%;width:42%;height:160%;background:radial-gradient(circle,rgba(98,140,182,.22),transparent 72%)}.qbs-header__body[data-v-cc041333]{position:relative;display:flex;height:100%;align-items:center;justify-content:space-between;gap:20px;padding:0 28px}.qbs-header__brand[data-v-cc041333]{display:flex;min-width:0;align-items:center;gap:16px}.qbs-header__crest[data-v-cc041333]{display:grid;width:42px;height:42px;flex:none;place-items:center;border:1px solid rgba(154,188,222,.26);border-radius:14px;background:linear-gradient(180deg,#172f4ad6,#091422f5)}.qbs-header__crest b[data-v-cc041333]{width:18px;height:18px;border-radius:6px;background:linear-gradient(180deg,#b7d3ef,#6f9cc7);box-shadow:0 0 20px #7ba3c947}.qbs-header p[data-v-cc041333]{margin:0 0 4px;color:#8da4bb;font-size:11px;letter-spacing:.28em}.qbs-header h1[data-v-cc041333]{margin:0;color:#f3f8fd;font-size:clamp(28px,2.2vw,42px);letter-spacing:.06em;line-height:1}.qbs-header__clock[data-v-cc041333]{display:grid;flex:none;justify-items:end;gap:4px}.qbs-header__clock strong[data-v-cc041333]{color:#f4f8fd;font-size:clamp(24px,1.8vw,34px);line-height:1}.qbs-header__clock span[data-v-cc041333]{color:#8ea5bb;font-size:12px;letter-spacing:.08em}.qbs-build-dist[data-v-608b33d9]{display:flex;height:100%;min-height:0;flex-direction:column;gap:12px}.qbs-build-dist article[data-v-608b33d9]{padding:12px;border:1px solid rgba(157,176,198,.1);border-radius:14px;background:#0e1723c2}.qbs-build-dist article>div[data-v-608b33d9]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.qbs-build-dist strong[data-v-608b33d9]{color:#eef4fb;font-size:13px}.qbs-build-dist span[data-v-608b33d9]{color:#9cb0c3;font-size:12px}.qbs-build-dist i[data-v-608b33d9]{display:block;height:8px;overflow:hidden;border-radius:999px;background:#ffffff12}.qbs-build-dist b[data-v-608b33d9]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#617f9b,#9cb7d0)}.qbs-build-dist__empty[data-v-608b33d9]{display:grid;flex:1;place-items:center;border:1px dashed rgba(157,176,198,.14);border-radius:16px;background:#0c162280;color:#7d91a6;font-size:13px}
1
+ :root{--qbs-surface-top: rgba(13, 24, 39, .92);--qbs-surface-bottom: rgba(8, 16, 28, .96);--qbs-border: rgba(142, 161, 178, .2);--qbs-text: #f6f8fb;--qbs-muted: #9fb2c7;--qbs-radius: 20px;--qbs-shadow: 0 18px 48px rgba(4, 10, 18, .28)}.qbs-panel[data-v-749400b6]{position:relative;display:flex;height:100%;min-height:0;flex-direction:column;border:1px solid oklch(.6 .12 220 / .28);border-radius:10px;background:linear-gradient(160deg,#091b318c,#050f2066);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#c8e4e9}.qbs-panel--overflow-hidden[data-v-749400b6]{overflow:hidden}.qbs-panel--padding-md[data-v-749400b6]{padding:14px 16px}.qbs-panel--padding-compact[data-v-749400b6]{padding:10px 12px}.qbs-panel--padding-tight[data-v-749400b6]{padding:12px 8px}.qbs-panel__corner[data-v-749400b6]{position:absolute;width:12px;height:12px;border:2px solid var(--qbs-accent);pointer-events:none}.qbs-panel__corner--tl[data-v-749400b6]{top:-1px;left:-1px;border-right:0;border-bottom:0}.qbs-panel__corner--tr[data-v-749400b6]{top:-1px;right:-1px;border-left:0;border-bottom:0}.qbs-panel__corner--bl[data-v-749400b6]{bottom:-1px;left:-1px;border-right:0;border-top:0}.qbs-panel__corner--br[data-v-749400b6]{right:-1px;bottom:-1px;border-left:0;border-top:0}.qbs-panel__header[data-v-749400b6]{display:flex;align-items:center;gap:8px;margin:0 0 10px;min-width:0;font-weight:700;letter-spacing:1px}.qbs-panel__header--md[data-v-749400b6]{font-size:14px}.qbs-panel__header--sm[data-v-749400b6]{margin-bottom:8px;font-size:13px}.qbs-panel__bar[data-v-749400b6]{width:4px;height:14px;flex-shrink:0;border-radius:2px;background:var(--qbs-accent);box-shadow:0 0 8px var(--qbs-accent)}.qbs-panel__title[data-v-749400b6]{flex-shrink:0}.qbs-panel__header-prefix[data-v-749400b6]{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.qbs-panel__header-center[data-v-749400b6]{display:inline-flex;flex:1;min-width:0;justify-content:center}.qbs-panel__header-extra[data-v-749400b6]{display:inline-flex;align-items:center;justify-content:flex-end;flex-shrink:0;margin-left:auto}.qbs-panel__live[data-v-749400b6]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:1px;color:#ff5050;color:oklch(.68 .22 25)}.qbs-panel__live-dot[data-v-749400b6]{width:7px;height:7px;border-radius:50%;background:#ff5050;background:oklch(.68 .22 25);box-shadow:0 0 8px #ff5050;box-shadow:0 0 8px oklch(.68 .22 25);animation:qbs-panel-blink-749400b6 1s steps(1,end) infinite}.qbs-panel__body[data-v-749400b6]{display:flex;flex:1;min-height:0;flex-direction:column}.qbs-panel--layout-metric .qbs-panel__body[data-v-749400b6]{align-items:center;justify-content:center;gap:4px;text-align:center}@keyframes qbs-panel-blink-749400b6{50%{opacity:.25}}.qbs-duty-compact[data-v-f5721bce]{display:flex;align-items:center;gap:12px}.qbs-duty-compact__avatar[data-v-f5721bce]{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:10px;background:#34dde5;box-shadow:0 0 14px #34dde599;color:#050e1a;font-size:18px;font-weight:700}.qbs-duty-compact__info[data-v-f5721bce]{display:flex;flex-direction:column}.qbs-duty-compact__name[data-v-f5721bce]{color:#cfebf0;font-size:15px;font-weight:700}.qbs-duty-compact__phone[data-v-f5721bce]{color:#7d939e;font-family:var(--font-mono,monospace);font-size:12px}.qbs-duty-compact__tag[data-v-f5721bce]{margin-left:auto;padding:4px 10px;border:1px solid oklch(.82 .13 200 / .4);border-radius:20px;background:#34dde51a;color:#34dde5;font-size:11px}.qbs-duty[data-v-f5721bce]{display:flex;height:100%;min-height:0;flex-direction:column;gap:14px}.qbs-duty__summary[data-v-f5721bce]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qbs-duty__summary-chip[data-v-f5721bce]{padding:10px 12px;border:1px solid rgba(157,176,198,.12);border-radius:14px;background:#0f1927bd}.qbs-duty__summary-chip span[data-v-f5721bce]{display:block;margin-bottom:6px;color:#8ca0b4;font-size:11px}.qbs-duty__summary-chip strong[data-v-f5721bce]{color:#f5f8fc;font-size:15px;line-height:1.2}.qbs-duty__list[data-v-f5721bce]{display:grid;min-height:0;gap:10px;overflow:auto}.qbs-duty__group[data-v-f5721bce]{padding:12px;border:1px solid rgba(157,176,198,.1);border-radius:16px;background:#0d1723c2}.qbs-duty__group-header[data-v-f5721bce]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#edf3f9;font-size:13px}.qbs-duty__group-header span[data-v-f5721bce]{color:#8ca0b4}.qbs-duty__users[data-v-f5721bce]{display:flex;flex-wrap:wrap;gap:8px}.qbs-duty__user[data-v-f5721bce]{padding:5px 10px;border-radius:999px;background:#19293ed1;color:#bfd0e0;font-size:12px}.qbs-duty__empty[data-v-f5721bce]{display:grid;min-height:140px;place-items:center;border:1px dashed rgba(157,176,198,.14);border-radius:16px;background:#0c162280;color:#7d91a6;font-size:13px}.qbs-alert-row[data-v-83959767]{display:block;box-sizing:border-box;width:100%;margin:0;padding:8px 10px;border:0;border-left:3px solid var(--qbs-alert-accent);border-radius:6px;background:#1c293d66;color:inherit;text-align:left;cursor:pointer}.qbs-alert-row--detail-wide[data-v-83959767]{padding-top:10px;padding-bottom:10px}.qbs-alert-row__main[data-v-83959767]{display:flex;align-items:stretch;gap:12px}.qbs-alert-row__copy[data-v-83959767]{flex:0 0 40%;min-width:0}.qbs-alert-row--detail-wide .qbs-alert-row__copy[data-v-83959767]{flex-basis:36%}.qbs-alert-row__title[data-v-83959767]{overflow:hidden;margin-bottom:5px;color:#d0e2e6;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.qbs-alert-row__meta[data-v-83959767]{display:flex;align-items:center;gap:10px;min-width:0;color:#6e848f;font-size:11px}.qbs-alert-row__group[data-v-83959767]{overflow:hidden;max-width:110px;min-width:0;text-overflow:ellipsis;white-space:nowrap}.qbs-alert-row__owner[data-v-83959767]{color:#64b3c0}.qbs-alert-row__time[data-v-83959767]{font-family:var(--font-mono,monospace)}.qbs-alert-row__tag[data-v-83959767]{margin-left:auto;padding:1px 6px;border:1px solid oklch(.68 .22 25 / .5);border-radius:4px;color:#ff5050;color:oklch(.68 .22 25);font-size:10px}.qbs-alert-row__status[data-v-83959767]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;color:#869ca7;font-size:10px}.qbs-alert-row__aside[data-v-83959767]{flex:1 1 60%;width:60%;align-self:center}.qbs-alert-row--detail-wide .qbs-alert-row__aside[data-v-83959767]{flex-basis:64%;width:64%}.qbs-metric-card--compact[data-v-07353599]{display:flex;min-width:0;flex-direction:column;padding:10px 12px;border:1px solid rgba(157,176,198,.12);border-radius:14px;background:#101a28c7}.qbs-metric-card--compact span[data-v-07353599]{margin-bottom:6px;color:#899eb1;font-size:11px}.qbs-metric-card--compact strong[data-v-07353599]{color:var(--qbs-metric-tone);font-size:18px;line-height:1.2}.qbs-metric-card__value[data-v-07353599]{color:var(--qbs-metric-tone);font-size:28px;font-weight:700;line-height:1}.qbs-metric-card__label[data-v-07353599]{color:#869ca7;font-size:11px;letter-spacing:1px;text-align:center}.qbs-header[data-v-cc041333]{position:relative;height:100%;min-height:0;overflow:hidden;border:1px solid rgba(149,169,189,.24);border-radius:24px;background:linear-gradient(90deg,#07111df0,#0a1825e6 44%,#080f19f2);box-shadow:inset 0 1px #ffffff0f,0 18px 42px #050b1438}.qbs-header__glow[data-v-cc041333]{position:absolute;bottom:-40%;left:-8%;width:42%;height:160%;background:radial-gradient(circle,rgba(98,140,182,.22),transparent 72%)}.qbs-header__body[data-v-cc041333]{position:relative;display:flex;height:100%;align-items:center;justify-content:space-between;gap:20px;padding:0 28px}.qbs-header__brand[data-v-cc041333]{display:flex;min-width:0;align-items:center;gap:16px}.qbs-header__crest[data-v-cc041333]{display:grid;width:42px;height:42px;flex:none;place-items:center;border:1px solid rgba(154,188,222,.26);border-radius:14px;background:linear-gradient(180deg,#172f4ad6,#091422f5)}.qbs-header__crest b[data-v-cc041333]{width:18px;height:18px;border-radius:6px;background:linear-gradient(180deg,#b7d3ef,#6f9cc7);box-shadow:0 0 20px #7ba3c947}.qbs-header p[data-v-cc041333]{margin:0 0 4px;color:#8da4bb;font-size:11px;letter-spacing:.28em}.qbs-header h1[data-v-cc041333]{margin:0;color:#f3f8fd;font-size:clamp(28px,2.2vw,42px);letter-spacing:.06em;line-height:1}.qbs-header__clock[data-v-cc041333]{display:grid;flex:none;justify-items:end;gap:4px}.qbs-header__clock strong[data-v-cc041333]{color:#f4f8fd;font-size:clamp(24px,1.8vw,34px);line-height:1}.qbs-header__clock span[data-v-cc041333]{color:#8ea5bb;font-size:12px;letter-spacing:.08em}.qbs-build-dist[data-v-608b33d9]{display:flex;height:100%;min-height:0;flex-direction:column;gap:12px}.qbs-build-dist article[data-v-608b33d9]{padding:12px;border:1px solid rgba(157,176,198,.1);border-radius:14px;background:#0e1723c2}.qbs-build-dist article>div[data-v-608b33d9]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.qbs-build-dist strong[data-v-608b33d9]{color:#eef4fb;font-size:13px}.qbs-build-dist span[data-v-608b33d9]{color:#9cb0c3;font-size:12px}.qbs-build-dist i[data-v-608b33d9]{display:block;height:8px;overflow:hidden;border-radius:999px;background:#ffffff12}.qbs-build-dist b[data-v-608b33d9]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#617f9b,#9cb7d0)}.qbs-build-dist__empty[data-v-608b33d9]{display:grid;flex:1;place-items:center;border:1px dashed rgba(157,176,198,.14);border-radius:16px;background:#0c162280;color:#7d91a6;font-size:13px}.qbs-build-projects[data-v-6c6f003c]{display:flex;height:100%;min-height:0;flex-direction:column;gap:14px}.qbs-build-projects__summary[data-v-6c6f003c]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qbs-build-projects__summary>span[data-v-6c6f003c]{padding:10px 12px;border:1px solid rgba(157,176,198,.12);border-radius:14px;background:#101a28c7;color:#899eb1;font-size:11px}.qbs-build-projects__summary strong[data-v-6c6f003c]{display:block;margin-top:6px;color:#f8fbff;font-size:20px}.qbs-build-projects__list[data-v-6c6f003c]{display:grid;min-height:0;gap:10px;overflow:auto}.qbs-build-projects article[data-v-6c6f003c]{padding:12px;border:1px solid rgba(157,176,198,.1);border-radius:14px;background:#0e1723c2}.qbs-build-projects article>div[data-v-6c6f003c],.qbs-build-projects p[data-v-6c6f003c]{display:flex;align-items:center;justify-content:space-between;gap:12px}.qbs-build-projects strong[data-v-6c6f003c]{color:#eef4fb;font-size:13px}.qbs-build-projects article span[data-v-6c6f003c]{color:#859aaf;font-size:11px}.qbs-build-projects p[data-v-6c6f003c]{margin:6px 0 10px}.qbs-build-projects i[data-v-6c6f003c]{display:block;height:6px;overflow:hidden;border-radius:999px;background:#ffffff12}.qbs-build-projects b[data-v-6c6f003c]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d95b7,#91b5d5)}.qbs-build-projects__empty[data-v-6c6f003c]{display:grid;min-height:140px;place-items:center;border:1px dashed rgba(157,176,198,.14);border-radius:16px;background:#0c162280;color:#7d91a6;font-size:13px}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { default as BigScreenAlertRow } from './components/BigScreenAlertRow.vue
4
4
  export { default as BigScreenMetricCard } from './components/BigScreenMetricCard.vue';
5
5
  export { default as BigScreenHeader } from './components/BigScreenHeader.vue';
6
6
  export { default as BigScreenBuildDistribution } from './components/BigScreenBuildDistribution.vue';
7
+ export { default as BigScreenBuildProjects } from './components/BigScreenBuildProjects.vue';
7
8
  export type { BigScreenDutyGroup, BigScreenDutyUser } from './components/BigScreenDutyContent.vue';
8
9
  export { bigScreenPreviewFixtures, getBigScreenPreviewData } from './fixtures/big-screen';
9
10
  export type { BigScreenPreviewWidgetType } from './fixtures/big-screen';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACvF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,6CAA6C,CAAA;AACnG,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAClG,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACzF,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AACvE,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACvF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACjF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,6CAA6C,CAAA;AACnG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAC3F,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAClG,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACzF,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AACvE,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as _, openBlock as a, createElementBlock as n, normalizeStyle as b, normalizeClass as y, createCommentVNode as d, toDisplayString as o, renderSlot as c, createElementVNode as e, createTextVNode as f, Fragment as g, renderList as h, createBlock as q, withCtx as v } from "vue";
1
+ import { defineComponent as _, openBlock as a, createElementBlock as n, normalizeStyle as m, normalizeClass as f, createCommentVNode as u, toDisplayString as l, renderSlot as c, createElementVNode as e, createTextVNode as b, Fragment as y, renderList as g, createBlock as q, withCtx as v } from "vue";
2
2
  const $ = {
3
3
  key: 0,
4
4
  class: "qbs-panel__corner qbs-panel__corner--tl"
@@ -17,13 +17,13 @@ const $ = {
17
17
  }, N = {
18
18
  key: 1,
19
19
  class: "qbs-panel__title"
20
- }, T = {
20
+ }, S = {
21
21
  key: 2,
22
22
  class: "qbs-panel__header-prefix"
23
- }, S = {
23
+ }, x = {
24
24
  key: 3,
25
25
  class: "qbs-panel__header-center"
26
- }, x = {
26
+ }, T = {
27
27
  key: 4,
28
28
  class: "qbs-panel__header-extra"
29
29
  }, C = {
@@ -44,62 +44,62 @@ const $ = {
44
44
  },
45
45
  setup(s) {
46
46
  const t = s;
47
- function r(l) {
48
- return t.corners === "all" ? !0 : t.corners === "none" ? !1 : l === "tl" || l === "br";
47
+ function r(o) {
48
+ return t.corners === "all" ? !0 : t.corners === "none" ? !1 : o === "tl" || o === "br";
49
49
  }
50
- return (l, i) => (a(), n("section", {
51
- class: y(["qbs-panel", [
50
+ return (o, d) => (a(), n("section", {
51
+ class: f(["qbs-panel", [
52
52
  `qbs-panel--padding-${s.padding}`,
53
53
  `qbs-panel--layout-${s.bodyLayout}`,
54
54
  { "qbs-panel--overflow-hidden": s.overflowHidden }
55
55
  ]]),
56
- style: b({ "--qbs-accent": s.accent })
56
+ style: m({ "--qbs-accent": s.accent })
57
57
  }, [
58
- r("tl") ? (a(), n("span", $)) : d("", !0),
59
- r("tr") ? (a(), n("span", k)) : d("", !0),
60
- r("bl") ? (a(), n("span", w)) : d("", !0),
61
- r("br") ? (a(), n("span", I)) : d("", !0),
62
- s.title || s.liveLabel || l.$slots["header-center"] || l.$slots["header-extra"] ? (a(), n("header", {
58
+ r("tl") ? (a(), n("span", $)) : u("", !0),
59
+ r("tr") ? (a(), n("span", k)) : u("", !0),
60
+ r("bl") ? (a(), n("span", w)) : u("", !0),
61
+ r("br") ? (a(), n("span", I)) : u("", !0),
62
+ s.title || s.liveLabel || o.$slots["header-center"] || o.$slots["header-extra"] ? (a(), n("header", {
63
63
  key: 4,
64
- class: y(["qbs-panel__header", `qbs-panel__header--${s.titleSize}`])
64
+ class: f(["qbs-panel__header", `qbs-panel__header--${s.titleSize}`])
65
65
  }, [
66
- s.showBar ? (a(), n("span", B)) : d("", !0),
67
- s.title ? (a(), n("span", N, o(s.title), 1)) : d("", !0),
68
- l.$slots["header-prefix"] ? (a(), n("span", T, [
69
- c(l.$slots, "header-prefix", {}, void 0, !0)
70
- ])) : d("", !0),
71
- l.$slots["header-center"] ? (a(), n("span", S, [
72
- c(l.$slots, "header-center", {}, void 0, !0)
73
- ])) : d("", !0),
74
- l.$slots["header-extra"] || s.liveLabel ? (a(), n("span", x, [
75
- c(l.$slots, "header-extra", {}, () => [
66
+ s.showBar ? (a(), n("span", B)) : u("", !0),
67
+ s.title ? (a(), n("span", N, l(s.title), 1)) : u("", !0),
68
+ o.$slots["header-prefix"] ? (a(), n("span", S, [
69
+ c(o.$slots, "header-prefix", {}, void 0, !0)
70
+ ])) : u("", !0),
71
+ o.$slots["header-center"] ? (a(), n("span", x, [
72
+ c(o.$slots, "header-center", {}, void 0, !0)
73
+ ])) : u("", !0),
74
+ o.$slots["header-extra"] || s.liveLabel ? (a(), n("span", T, [
75
+ c(o.$slots, "header-extra", {}, () => [
76
76
  s.liveLabel ? (a(), n("span", C, [
77
- i[0] || (i[0] = e("span", { class: "qbs-panel__live-dot" }, null, -1)),
78
- f(o(s.liveLabel), 1)
79
- ])) : d("", !0)
77
+ d[0] || (d[0] = e("span", { class: "qbs-panel__live-dot" }, null, -1)),
78
+ b(l(s.liveLabel), 1)
79
+ ])) : u("", !0)
80
80
  ], !0)
81
- ])) : d("", !0)
82
- ], 2)) : d("", !0),
81
+ ])) : u("", !0)
82
+ ], 2)) : u("", !0),
83
83
  e("div", A, [
84
- c(l.$slots, "default", {}, void 0, !0)
84
+ c(o.$slots, "default", {}, void 0, !0)
85
85
  ])
86
86
  ], 6));
87
87
  }
88
88
  }), p = (s, t) => {
89
89
  const r = s.__vccOpts || s;
90
- for (const [l, i] of t)
91
- r[l] = i;
90
+ for (const [o, d] of t)
91
+ r[o] = d;
92
92
  return r;
93
93
  }, P = /* @__PURE__ */ p(L, [["__scopeId", "data-v-749400b6"]]), R = {
94
94
  key: 0,
95
95
  class: "qbs-duty-compact"
96
- }, D = { class: "qbs-duty-compact__avatar" }, G = { class: "qbs-duty-compact__info" }, E = { class: "qbs-duty-compact__name" }, U = { class: "qbs-duty-compact__phone" }, z = {
96
+ }, j = { class: "qbs-duty-compact__avatar" }, D = { class: "qbs-duty-compact__info" }, G = { class: "qbs-duty-compact__name" }, M = { class: "qbs-duty-compact__phone" }, U = {
97
97
  key: 0,
98
98
  class: "qbs-duty-compact__tag"
99
- }, M = {
99
+ }, E = {
100
100
  key: 1,
101
101
  class: "qbs-duty"
102
- }, F = { class: "qbs-duty__summary" }, H = { class: "qbs-duty__summary-chip" }, O = { class: "qbs-duty__summary-chip" }, j = { class: "qbs-duty__summary-chip" }, V = { class: "qbs-duty__list" }, W = { class: "qbs-duty__group-header" }, J = { class: "qbs-duty__users" }, K = {
102
+ }, z = { class: "qbs-duty__summary" }, F = { class: "qbs-duty__summary-chip" }, H = { class: "qbs-duty__summary-chip" }, O = { class: "qbs-duty__summary-chip" }, V = { class: "qbs-duty__list" }, W = { class: "qbs-duty__group-header" }, J = { class: "qbs-duty__users" }, K = {
103
103
  key: 0,
104
104
  class: "qbs-duty__empty"
105
105
  }, Q = /* @__PURE__ */ _({
@@ -116,52 +116,52 @@ const $ = {
116
116
  },
117
117
  setup(s) {
118
118
  const t = s;
119
- return (r, l) => t.compact ? (a(), n("div", R, [
120
- e("div", D, o(t.personName.charAt(0) || "-"), 1),
121
- e("div", G, [
122
- e("span", E, o(t.personName || "暂未排班"), 1),
123
- e("span", U, o(t.personPhone || "—"), 1)
119
+ return (r, o) => t.compact ? (a(), n("div", R, [
120
+ e("div", j, l(t.personName.charAt(0) || "-"), 1),
121
+ e("div", D, [
122
+ e("span", G, l(t.personName || "暂未排班"), 1),
123
+ e("span", M, l(t.personPhone || "—"), 1)
124
124
  ]),
125
- t.personTag ? (a(), n("span", z, o(t.personTag), 1)) : d("", !0)
126
- ])) : (a(), n("div", M, [
127
- e("div", F, [
125
+ t.personTag ? (a(), n("span", U, l(t.personTag), 1)) : u("", !0)
126
+ ])) : (a(), n("div", E, [
127
+ e("div", z, [
128
+ e("div", F, [
129
+ o[0] || (o[0] = e("span", null, "日期", -1)),
130
+ e("strong", null, l(t.date || "未同步"), 1)
131
+ ]),
128
132
  e("div", H, [
129
- l[0] || (l[0] = e("span", null, "日期", -1)),
130
- e("strong", null, o(t.date || "未同步"), 1)
133
+ o[1] || (o[1] = e("span", null, "值班组", -1)),
134
+ e("strong", null, l(t.totalGroups ?? t.groups.length), 1)
131
135
  ]),
132
136
  e("div", O, [
133
- l[1] || (l[1] = e("span", null, "值班组", -1)),
134
- e("strong", null, o(t.totalGroups ?? t.groups.length), 1)
135
- ]),
136
- e("div", j, [
137
- l[2] || (l[2] = e("span", null, "值班人数", -1)),
138
- e("strong", null, o(t.totalUsers ?? 0), 1)
137
+ o[2] || (o[2] = e("span", null, "值班人数", -1)),
138
+ e("strong", null, l(t.totalUsers ?? 0), 1)
139
139
  ])
140
140
  ]),
141
141
  e("div", V, [
142
- (a(!0), n(g, null, h(t.groups, (i) => {
143
- var u;
142
+ (a(!0), n(y, null, g(t.groups, (d) => {
143
+ var i;
144
144
  return a(), n("article", {
145
- key: i.groupId,
145
+ key: d.groupId,
146
146
  class: "qbs-duty__group"
147
147
  }, [
148
148
  e("div", W, [
149
- e("strong", null, o(i.groupName), 1),
150
- e("span", null, o(((u = i.users) == null ? void 0 : u.length) || 0) + " 人", 1)
149
+ e("strong", null, l(d.groupName), 1),
150
+ e("span", null, l(((i = d.users) == null ? void 0 : i.length) || 0) + " 人", 1)
151
151
  ]),
152
152
  e("div", J, [
153
- (a(!0), n(g, null, h(i.users || [], (m) => (a(), n("span", {
154
- key: m.userId,
153
+ (a(!0), n(y, null, g(d.users || [], (h) => (a(), n("span", {
154
+ key: h.userId,
155
155
  class: "qbs-duty__user"
156
- }, o(m.nickName || m.username), 1))), 128))
156
+ }, l(h.nickName || h.username), 1))), 128))
157
157
  ])
158
158
  ]);
159
159
  }), 128)),
160
- t.groups.length ? d("", !0) : (a(), n("div", K, "暂无值班数据"))
160
+ t.groups.length ? u("", !0) : (a(), n("div", K, "暂无值班数据"))
161
161
  ])
162
162
  ]));
163
163
  }
164
- }), ve = /* @__PURE__ */ p(Q, [["__scopeId", "data-v-f5721bce"]]), Y = { class: "qbs-alert-row__main" }, X = { class: "qbs-alert-row__copy" }, Z = ["title"], ee = { class: "qbs-alert-row__meta" }, te = { class: "qbs-alert-row__group" }, se = {
164
+ }), Be = /* @__PURE__ */ p(Q, [["__scopeId", "data-v-f5721bce"]]), Y = { class: "qbs-alert-row__main" }, X = { class: "qbs-alert-row__copy" }, Z = ["title"], ee = { class: "qbs-alert-row__meta" }, te = { class: "qbs-alert-row__group" }, se = {
165
165
  key: 0,
166
166
  class: "qbs-alert-row__owner"
167
167
  }, ae = {
@@ -170,7 +170,7 @@ const $ = {
170
170
  }, ne = {
171
171
  key: 2,
172
172
  class: "qbs-alert-row__tag"
173
- }, oe = { class: "qbs-alert-row__status" }, le = {
173
+ }, le = { class: "qbs-alert-row__status" }, oe = {
174
174
  key: 0,
175
175
  class: "qbs-alert-row__aside"
176
176
  }, re = /* @__PURE__ */ _({
@@ -188,37 +188,37 @@ const $ = {
188
188
  emits: ["select"],
189
189
  setup(s) {
190
190
  const t = s;
191
- return (r, l) => (a(), n("button", {
192
- class: y(["qbs-alert-row", { "qbs-alert-row--detail-wide": t.detailWide }]),
193
- style: b({ "--qbs-alert-accent": t.accent }),
191
+ return (r, o) => (a(), n("button", {
192
+ class: f(["qbs-alert-row", { "qbs-alert-row--detail-wide": t.detailWide }]),
193
+ style: m({ "--qbs-alert-accent": t.accent }),
194
194
  type: "button",
195
- onClick: l[0] || (l[0] = (i) => r.$emit("select"))
195
+ onClick: o[0] || (o[0] = (d) => r.$emit("select"))
196
196
  }, [
197
197
  e("div", Y, [
198
198
  e("div", X, [
199
199
  e("div", {
200
200
  class: "qbs-alert-row__title",
201
201
  title: t.title
202
- }, o(t.title), 9, Z),
202
+ }, l(t.title), 9, Z),
203
203
  e("div", ee, [
204
- e("span", te, o(t.group), 1),
205
- t.owner ? (a(), n("span", se, o(t.owner), 1)) : d("", !0),
206
- t.time ? (a(), n("span", ae, o(t.time), 1)) : d("", !0),
207
- t.tag ? (a(), n("span", ne, o(t.tag), 1)) : d("", !0)
204
+ e("span", te, l(t.group), 1),
205
+ t.owner ? (a(), n("span", se, l(t.owner), 1)) : u("", !0),
206
+ t.time ? (a(), n("span", ae, l(t.time), 1)) : u("", !0),
207
+ t.tag ? (a(), n("span", ne, l(t.tag), 1)) : u("", !0)
208
208
  ]),
209
- e("div", oe, [
209
+ e("div", le, [
210
210
  c(r.$slots, "status", {}, () => [
211
- f(o(t.statusText || "待处理"), 1)
211
+ b(l(t.statusText || "待处理"), 1)
212
212
  ], !0)
213
213
  ])
214
214
  ]),
215
- r.$slots.aside ? (a(), n("aside", le, [
215
+ r.$slots.aside ? (a(), n("aside", oe, [
216
216
  c(r.$slots, "aside", {}, void 0, !0)
217
- ])) : d("", !0)
217
+ ])) : u("", !0)
218
218
  ])
219
219
  ], 6));
220
220
  }
221
- }), $e = /* @__PURE__ */ p(re, [["__scopeId", "data-v-83959767"]]), de = { class: "qbs-metric-card__value" }, ie = { class: "qbs-metric-card__label" }, ue = /* @__PURE__ */ _({
221
+ }), Ne = /* @__PURE__ */ p(re, [["__scopeId", "data-v-83959767"]]), de = { class: "qbs-metric-card__value" }, ue = { class: "qbs-metric-card__label" }, ie = /* @__PURE__ */ _({
222
222
  __name: "BigScreenMetricCard",
223
223
  props: {
224
224
  label: {},
@@ -228,15 +228,15 @@ const $ = {
228
228
  },
229
229
  setup(s) {
230
230
  const t = s;
231
- return (r, l) => t.compact ? (a(), n("div", {
231
+ return (r, o) => t.compact ? (a(), n("div", {
232
232
  key: 0,
233
233
  class: "qbs-metric-card qbs-metric-card--compact",
234
- style: b({ "--qbs-metric-tone": t.tone })
234
+ style: m({ "--qbs-metric-tone": t.tone })
235
235
  }, [
236
- e("span", null, o(t.label), 1),
236
+ e("span", null, l(t.label), 1),
237
237
  e("strong", null, [
238
238
  c(r.$slots, "default", {}, () => [
239
- f(o(t.value), 1)
239
+ b(l(t.value), 1)
240
240
  ], !0)
241
241
  ])
242
242
  ], 4)) : (a(), q(P, {
@@ -248,14 +248,14 @@ const $ = {
248
248
  }, {
249
249
  default: v(() => [
250
250
  c(r.$slots, "default", {}, () => [
251
- e("strong", de, o(t.value), 1)
251
+ e("strong", de, l(t.value), 1)
252
252
  ], !0),
253
- e("span", ie, o(t.label), 1)
253
+ e("span", ue, l(t.label), 1)
254
254
  ]),
255
255
  _: 3
256
256
  }, 8, ["accent"]));
257
257
  }
258
- }), ke = /* @__PURE__ */ p(ue, [["__scopeId", "data-v-07353599"]]), ce = { class: "qbs-header" }, _e = { class: "qbs-header__body" }, pe = { class: "qbs-header__brand" }, be = {
258
+ }), Se = /* @__PURE__ */ p(ie, [["__scopeId", "data-v-07353599"]]), ce = { class: "qbs-header" }, _e = { class: "qbs-header__body" }, pe = { class: "qbs-header__brand" }, be = {
259
259
  key: 0,
260
260
  class: "qbs-header__clock"
261
261
  }, me = /* @__PURE__ */ _({
@@ -277,18 +277,18 @@ const $ = {
277
277
  e("b")
278
278
  ], -1)),
279
279
  e("div", null, [
280
- e("p", null, o(s.subtitle), 1),
281
- e("h1", null, o(s.title), 1)
280
+ e("p", null, l(s.subtitle), 1),
281
+ e("h1", null, l(s.title), 1)
282
282
  ])
283
283
  ]),
284
284
  s.showClock ? (a(), n("div", be, [
285
- e("strong", null, o(s.timeText), 1),
286
- e("span", null, o(s.dateText) + " " + o(s.weekdayText), 1)
287
- ])) : d("", !0)
285
+ e("strong", null, l(s.timeText), 1),
286
+ e("span", null, l(s.dateText) + " " + l(s.weekdayText), 1)
287
+ ])) : u("", !0)
288
288
  ])
289
289
  ]));
290
290
  }
291
- }), we = /* @__PURE__ */ p(me, [["__scopeId", "data-v-cc041333"]]), ye = { class: "qbs-build-dist" }, ge = {
291
+ }), xe = /* @__PURE__ */ p(me, [["__scopeId", "data-v-cc041333"]]), ye = { class: "qbs-build-dist" }, ge = {
292
292
  key: 0,
293
293
  class: "qbs-build-dist__empty"
294
294
  }, he = /* @__PURE__ */ _({
@@ -298,25 +298,75 @@ const $ = {
298
298
  total: { default: 0 }
299
299
  },
300
300
  setup(s) {
301
- const t = s, r = (l) => `${(l / Math.max(1, t.total || t.items.reduce((i, u) => i + u.count, 0)) * 100).toFixed(1)}%`;
302
- return (l, i) => (a(), n("div", ye, [
303
- (a(!0), n(g, null, h(t.items.slice(0, 8), (u) => (a(), n("article", {
304
- key: u.name
301
+ const t = s, r = (o) => `${(o / Math.max(1, t.total || t.items.reduce((d, i) => d + i.count, 0)) * 100).toFixed(1)}%`;
302
+ return (o, d) => (a(), n("div", ye, [
303
+ (a(!0), n(y, null, g(t.items.slice(0, 8), (i) => (a(), n("article", {
304
+ key: i.name
305
305
  }, [
306
306
  e("div", null, [
307
- e("strong", null, o(u.name), 1),
308
- e("span", null, o(u.count), 1)
307
+ e("strong", null, l(i.name), 1),
308
+ e("span", null, l(i.count), 1)
309
309
  ]),
310
310
  e("i", null, [
311
311
  e("b", {
312
- style: b({ width: r(u.count) })
312
+ style: m({ width: r(i.count) })
313
313
  }, null, 4)
314
314
  ])
315
315
  ]))), 128)),
316
- t.items.length ? d("", !0) : (a(), n("div", ge, "暂无构建分布数据"))
316
+ t.items.length ? u("", !0) : (a(), n("div", ge, "暂无构建分布数据"))
317
+ ]));
318
+ }
319
+ }), Te = /* @__PURE__ */ p(he, [["__scopeId", "data-v-608b33d9"]]), fe = { class: "qbs-build-projects" }, qe = { class: "qbs-build-projects__summary" }, ve = { class: "qbs-build-projects__list" }, $e = {
320
+ key: 0,
321
+ class: "qbs-build-projects__empty"
322
+ }, ke = /* @__PURE__ */ _({
323
+ __name: "BigScreenBuildProjects",
324
+ props: {
325
+ buildingCount: { default: 0 },
326
+ todayBuilds: { default: 0 },
327
+ successRate: { default: 0 },
328
+ items: { default: () => [] }
329
+ },
330
+ setup(s) {
331
+ const t = (r) => `${Math.max(0, Math.min(100, r || 0))}%`;
332
+ return (r, o) => (a(), n("div", fe, [
333
+ e("div", qe, [
334
+ e("span", null, [
335
+ o[0] || (o[0] = b("构建中", -1)),
336
+ e("strong", null, l(s.buildingCount), 1)
337
+ ]),
338
+ e("span", null, [
339
+ o[1] || (o[1] = b("今日构建", -1)),
340
+ e("strong", null, l(s.todayBuilds), 1)
341
+ ]),
342
+ e("span", null, [
343
+ o[2] || (o[2] = b("成功率", -1)),
344
+ e("strong", null, l(Number(s.successRate).toFixed(1)) + "%", 1)
345
+ ])
346
+ ]),
347
+ e("div", ve, [
348
+ (a(!0), n(y, null, g(s.items.slice(0, 8), (d) => (a(), n("article", {
349
+ key: `${d.pipelineId}-${d.buildId}`
350
+ }, [
351
+ e("div", null, [
352
+ e("strong", null, l(d.jobName || `Pipeline-${d.pipelineId}`), 1),
353
+ e("span", null, l(d.statusText), 1)
354
+ ]),
355
+ e("p", null, [
356
+ e("span", null, l(d.currentStage || "等待阶段信息"), 1),
357
+ e("span", null, l(d.buildUser || "系统触发"), 1)
358
+ ]),
359
+ e("i", null, [
360
+ e("b", {
361
+ style: m({ width: t(d.progress) })
362
+ }, null, 4)
363
+ ])
364
+ ]))), 128)),
365
+ s.items.length ? u("", !0) : (a(), n("div", $e, "当前没有在跑的构建项目"))
366
+ ])
317
367
  ]));
318
368
  }
319
- }), Ie = /* @__PURE__ */ p(he, [["__scopeId", "data-v-608b33d9"]]), fe = {
369
+ }), Ce = /* @__PURE__ */ p(ke, [["__scopeId", "data-v-6c6f003c"]]), we = {
320
370
  screen_header: {
321
371
  dateText: "2026-07-27",
322
372
  timeText: "14:30",
@@ -369,16 +419,17 @@ const $ = {
369
419
  ]
370
420
  }
371
421
  };
372
- function Be(s) {
373
- return JSON.parse(JSON.stringify(fe[s]));
422
+ function Ae(s) {
423
+ return JSON.parse(JSON.stringify(we[s]));
374
424
  }
375
425
  export {
376
- $e as BigScreenAlertRow,
377
- Ie as BigScreenBuildDistribution,
378
- ve as BigScreenDutyContent,
379
- we as BigScreenHeader,
380
- ke as BigScreenMetricCard,
426
+ Ne as BigScreenAlertRow,
427
+ Te as BigScreenBuildDistribution,
428
+ Ce as BigScreenBuildProjects,
429
+ Be as BigScreenDutyContent,
430
+ xe as BigScreenHeader,
431
+ Se as BigScreenMetricCard,
381
432
  P as BigScreenPanel,
382
- fe as bigScreenPreviewFixtures,
383
- Be as getBigScreenPreviewData
433
+ we as bigScreenPreviewFixtures,
434
+ Ae as getBigScreenPreviewData
384
435
  };
@@ -1 +1 @@
1
- (function(a,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.QuarkBigScreenUi={},a.Vue))})(this,(function(a,e){"use strict";const p={key:0,class:"qbs-panel__corner qbs-panel__corner--tl"},_={key:1,class:"qbs-panel__corner qbs-panel__corner--tr"},y={key:2,class:"qbs-panel__corner qbs-panel__corner--bl"},g={key:3,class:"qbs-panel__corner qbs-panel__corner--br"},b={key:0,class:"qbs-panel__bar"},k={key:1,class:"qbs-panel__title"},B={key:2,class:"qbs-panel__header-prefix"},u={key:3,class:"qbs-panel__header-center"},f={key:4,class:"qbs-panel__header-extra"},N={key:0,class:"qbs-panel__live"},h={class:"qbs-panel__body"},E=e.defineComponent({__name:"BigScreenPanel",props:{title:{default:""},accent:{default:"oklch(.82 .13 200)"},liveLabel:{default:""},showBar:{type:Boolean,default:!0},corners:{default:"tl-br"},padding:{default:"md"},bodyLayout:{default:"default"},titleSize:{default:"md"},overflowHidden:{type:Boolean,default:!0}},setup(o){const t=o;function s(n){return t.corners==="all"?!0:t.corners==="none"?!1:n==="tl"||n==="br"}return(n,l)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["qbs-panel",[`qbs-panel--padding-${o.padding}`,`qbs-panel--layout-${o.bodyLayout}`,{"qbs-panel--overflow-hidden":o.overflowHidden}]]),style:e.normalizeStyle({"--qbs-accent":o.accent})},[s("tl")?(e.openBlock(),e.createElementBlock("span",p)):e.createCommentVNode("",!0),s("tr")?(e.openBlock(),e.createElementBlock("span",_)):e.createCommentVNode("",!0),s("bl")?(e.openBlock(),e.createElementBlock("span",y)):e.createCommentVNode("",!0),s("br")?(e.openBlock(),e.createElementBlock("span",g)):e.createCommentVNode("",!0),o.title||o.liveLabel||n.$slots["header-center"]||n.$slots["header-extra"]?(e.openBlock(),e.createElementBlock("header",{key:4,class:e.normalizeClass(["qbs-panel__header",`qbs-panel__header--${o.titleSize}`])},[o.showBar?(e.openBlock(),e.createElementBlock("span",b)):e.createCommentVNode("",!0),o.title?(e.openBlock(),e.createElementBlock("span",k,e.toDisplayString(o.title),1)):e.createCommentVNode("",!0),n.$slots["header-prefix"]?(e.openBlock(),e.createElementBlock("span",B,[e.renderSlot(n.$slots,"header-prefix",{},void 0,!0)])):e.createCommentVNode("",!0),n.$slots["header-center"]?(e.openBlock(),e.createElementBlock("span",u,[e.renderSlot(n.$slots,"header-center",{},void 0,!0)])):e.createCommentVNode("",!0),n.$slots["header-extra"]||o.liveLabel?(e.openBlock(),e.createElementBlock("span",f,[e.renderSlot(n.$slots,"header-extra",{},()=>[o.liveLabel?(e.openBlock(),e.createElementBlock("span",N,[l[0]||(l[0]=e.createElementVNode("span",{class:"qbs-panel__live-dot"},null,-1)),e.createTextVNode(e.toDisplayString(o.liveLabel),1)])):e.createCommentVNode("",!0)],!0)])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",h,[e.renderSlot(n.$slots,"default",{},void 0,!0)])],6))}}),c=(o,t)=>{const s=o.__vccOpts||o;for(const[n,l]of t)s[n]=l;return s},i=c(E,[["__scopeId","data-v-749400b6"]]),S={key:0,class:"qbs-duty-compact"},q={class:"qbs-duty-compact__avatar"},V={class:"qbs-duty-compact__info"},$={class:"qbs-duty-compact__name"},C={class:"qbs-duty-compact__phone"},w={key:0,class:"qbs-duty-compact__tag"},D={key:1,class:"qbs-duty"},T={class:"qbs-duty__summary"},I={class:"qbs-duty__summary-chip"},x={class:"qbs-duty__summary-chip"},A={class:"qbs-duty__summary-chip"},L={class:"qbs-duty__list"},P={class:"qbs-duty__group-header"},R={class:"qbs-duty__users"},z={key:0,class:"qbs-duty__empty"},F=c(e.defineComponent({__name:"BigScreenDutyContent",props:{compact:{type:Boolean,default:!1},personName:{default:""},personPhone:{default:""},personTag:{default:""},date:{default:""},totalGroups:{default:void 0},totalUsers:{default:void 0},groups:{default:()=>[]}},setup(o){const t=o;return(s,n)=>t.compact?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("div",q,e.toDisplayString(t.personName.charAt(0)||"-"),1),e.createElementVNode("div",V,[e.createElementVNode("span",$,e.toDisplayString(t.personName||"暂未排班"),1),e.createElementVNode("span",C,e.toDisplayString(t.personPhone||"—"),1)]),t.personTag?(e.openBlock(),e.createElementBlock("span",w,e.toDisplayString(t.personTag),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",D,[e.createElementVNode("div",T,[e.createElementVNode("div",I,[n[0]||(n[0]=e.createElementVNode("span",null,"日期",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.date||"未同步"),1)]),e.createElementVNode("div",x,[n[1]||(n[1]=e.createElementVNode("span",null,"值班组",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.totalGroups??t.groups.length),1)]),e.createElementVNode("div",A,[n[2]||(n[2]=e.createElementVNode("span",null,"值班人数",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.totalUsers??0),1)])]),e.createElementVNode("div",L,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groups,l=>{var r;return e.openBlock(),e.createElementBlock("article",{key:l.groupId,class:"qbs-duty__group"},[e.createElementVNode("div",P,[e.createElementVNode("strong",null,e.toDisplayString(l.groupName),1),e.createElementVNode("span",null,e.toDisplayString(((r=l.users)==null?void 0:r.length)||0)+" 人",1)]),e.createElementVNode("div",R,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.users||[],d=>(e.openBlock(),e.createElementBlock("span",{key:d.userId,class:"qbs-duty__user"},e.toDisplayString(d.nickName||d.username),1))),128))])])}),128)),t.groups.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",z,"暂无值班数据"))])]))}}),[["__scopeId","data-v-f5721bce"]]),G={class:"qbs-alert-row__main"},M={class:"qbs-alert-row__copy"},U=["title"],j={class:"qbs-alert-row__meta"},H={class:"qbs-alert-row__group"},O={key:0,class:"qbs-alert-row__owner"},W={key:1,class:"qbs-alert-row__time"},J={key:2,class:"qbs-alert-row__tag"},Q={class:"qbs-alert-row__status"},K={key:0,class:"qbs-alert-row__aside"},Y=c(e.defineComponent({__name:"BigScreenAlertRow",props:{title:{},group:{default:""},owner:{default:""},time:{default:""},tag:{default:""},statusText:{default:""},accent:{default:"#f0a35a"},detailWide:{type:Boolean,default:!1}},emits:["select"],setup(o){const t=o;return(s,n)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["qbs-alert-row",{"qbs-alert-row--detail-wide":t.detailWide}]),style:e.normalizeStyle({"--qbs-alert-accent":t.accent}),type:"button",onClick:n[0]||(n[0]=l=>s.$emit("select"))},[e.createElementVNode("div",G,[e.createElementVNode("div",M,[e.createElementVNode("div",{class:"qbs-alert-row__title",title:t.title},e.toDisplayString(t.title),9,U),e.createElementVNode("div",j,[e.createElementVNode("span",H,e.toDisplayString(t.group),1),t.owner?(e.openBlock(),e.createElementBlock("span",O,e.toDisplayString(t.owner),1)):e.createCommentVNode("",!0),t.time?(e.openBlock(),e.createElementBlock("span",W,e.toDisplayString(t.time),1)):e.createCommentVNode("",!0),t.tag?(e.openBlock(),e.createElementBlock("span",J,e.toDisplayString(t.tag),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Q,[e.renderSlot(s.$slots,"status",{},()=>[e.createTextVNode(e.toDisplayString(t.statusText||"待处理"),1)],!0)])]),s.$slots.aside?(e.openBlock(),e.createElementBlock("aside",K,[e.renderSlot(s.$slots,"aside",{},void 0,!0)])):e.createCommentVNode("",!0)])],6))}}),[["__scopeId","data-v-83959767"]]),X={class:"qbs-metric-card__value"},Z={class:"qbs-metric-card__label"},v=c(e.defineComponent({__name:"BigScreenMetricCard",props:{label:{},value:{default:"—"},tone:{default:"#7dd3fc"},compact:{type:Boolean,default:!1}},setup(o){const t=o;return(s,n)=>t.compact?(e.openBlock(),e.createElementBlock("div",{key:0,class:"qbs-metric-card qbs-metric-card--compact",style:e.normalizeStyle({"--qbs-metric-tone":t.tone})},[e.createElementVNode("span",null,e.toDisplayString(t.label),1),e.createElementVNode("strong",null,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)],!0)])],4)):(e.openBlock(),e.createBlock(i,{key:1,class:"qbs-metric-card","body-layout":"metric",padding:"tight",accent:t.tone},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default",{},()=>[e.createElementVNode("strong",X,e.toDisplayString(t.value),1)],!0),e.createElementVNode("span",Z,e.toDisplayString(t.label),1)]),_:3},8,["accent"]))}}),[["__scopeId","data-v-07353599"]]),ee={class:"qbs-header"},te={class:"qbs-header__body"},oe={class:"qbs-header__brand"},ne={key:0,class:"qbs-header__clock"},se=c(e.defineComponent({__name:"BigScreenHeader",props:{title:{default:"运维监控大屏"},subtitle:{default:"QUARK EAGLE EYE"},timeText:{default:"--:--"},dateText:{default:"--"},weekdayText:{default:""},showClock:{type:Boolean,default:!0}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("section",ee,[s[1]||(s[1]=e.createElementVNode("i",{class:"qbs-header__glow"},null,-1)),e.createElementVNode("div",te,[e.createElementVNode("div",oe,[s[0]||(s[0]=e.createElementVNode("i",{class:"qbs-header__crest"},[e.createElementVNode("b")],-1)),e.createElementVNode("div",null,[e.createElementVNode("p",null,e.toDisplayString(o.subtitle),1),e.createElementVNode("h1",null,e.toDisplayString(o.title),1)])]),o.showClock?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("strong",null,e.toDisplayString(o.timeText),1),e.createElementVNode("span",null,e.toDisplayString(o.dateText)+" "+e.toDisplayString(o.weekdayText),1)])):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-cc041333"]]),ae={class:"qbs-build-dist"},le={key:0,class:"qbs-build-dist__empty"},re=c(e.defineComponent({__name:"BigScreenBuildDistribution",props:{items:{default:()=>[]},total:{default:0}},setup(o){const t=o,s=n=>`${(n/Math.max(1,t.total||t.items.reduce((l,r)=>l+r.count,0))*100).toFixed(1)}%`;return(n,l)=>(e.openBlock(),e.createElementBlock("div",ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items.slice(0,8),r=>(e.openBlock(),e.createElementBlock("article",{key:r.name},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(r.name),1),e.createElementVNode("span",null,e.toDisplayString(r.count),1)]),e.createElementVNode("i",null,[e.createElementVNode("b",{style:e.normalizeStyle({width:s(r.count)})},null,4)])]))),128)),t.items.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",le,"暂无构建分布数据"))]))}}),[["__scopeId","data-v-608b33d9"]]),m={screen_header:{dateText:"2026-07-27",timeText:"14:30",weekdayText:"星期一"},robot:{status:"online",mode:"guard",emotion:"neutral",generatedAt:"2026-07-27 14:30:00",summary:{dutyGroups:3,todayAlerts:12,buildingCount:4,endpointNodes:86},alerts:{todayTotal:12,todayPending:3,criticalCount:1,warningCount:5},builds:{buildingCount:4,todayBuilds:28,successRate:98.6}},duty_today:{date:"2026-07-27",totalGroups:3,totalUsers:8,groups:[{groupId:1,groupName:"平台组",users:[{userId:101,nickName:"张工",username:"zhang"},{userId:102,nickName:"李工",username:"li"}]},{groupId:2,groupName:"网络组",users:[{userId:103,nickName:"王工",username:"wang"}]}]},alert_latest:{total:3,stats:{todayTotal:12,todayPending:3,overdueTotal:1,criticalCount:1,warningCount:5,infoCount:6},items:[{id:1,alertId:"AL-20260727-001",title:"边缘节点延迟升高",severity:"WARN",severityText:"警告",status:"pending",statusText:"待处理",source:"edge-01",firedAt:"14:20",groupNames:["网络组"]},{id:2,alertId:"AL-20260727-002",title:"构建队列等待时间过长",severity:"CRITICAL",severityText:"严重",status:"processing",statusText:"处理中",source:"CI/CD",firedAt:"14:08",groupNames:["平台组"]},{id:3,alertId:"AL-20260727-003",title:"磁盘使用率接近阈值",severity:"INFO",severityText:"提示",status:"pending",statusText:"待处理",source:"node-03",firedAt:"13:56",groupNames:["运维组"]}]},build_projects:{summary:{buildingCount:4,todayBuilds:28,successRate:98.6},items:[{pipelineId:1,buildId:101,jobName:"eagle-eye-web",statusText:"构建中",currentStage:"测试",buildUser:"system",progress:68},{pipelineId:2,buildId:102,jobName:"quark-api",statusText:"构建中",currentStage:"镜像打包",buildUser:"李工",progress:42}]},build_distribution:{total:100,items:[{name:"应用构建",count:42},{name:"镜像构建",count:27},{name:"基础设施",count:18},{name:"其他任务",count:13}]},endpoint_distribution:{summary:{total:3},items:[{id:1,nodeName:"edge-01",nodeIp:"10.10.2.11",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:12.4}]},{id:2,nodeName:"edge-02",nodeIp:"10.10.2.12",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:18.7}]},{id:3,nodeName:"edge-03",nodeIp:"10.10.2.13",nodeStatus:!1,heartbeatResults:[]}]}};function ce(o){return JSON.parse(JSON.stringify(m[o]))}a.BigScreenAlertRow=Y,a.BigScreenBuildDistribution=re,a.BigScreenDutyContent=F,a.BigScreenHeader=se,a.BigScreenMetricCard=v,a.BigScreenPanel=i,a.bigScreenPreviewFixtures=m,a.getBigScreenPreviewData=ce,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(a,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.QuarkBigScreenUi={},a.Vue))})(this,(function(a,e){"use strict";const p={key:0,class:"qbs-panel__corner qbs-panel__corner--tl"},_={key:1,class:"qbs-panel__corner qbs-panel__corner--tr"},y={key:2,class:"qbs-panel__corner qbs-panel__corner--bl"},g={key:3,class:"qbs-panel__corner qbs-panel__corner--br"},b={key:0,class:"qbs-panel__bar"},k={key:1,class:"qbs-panel__title"},B={key:2,class:"qbs-panel__header-prefix"},N={key:3,class:"qbs-panel__header-center"},f={key:4,class:"qbs-panel__header-extra"},u={key:0,class:"qbs-panel__live"},E={class:"qbs-panel__body"},h=e.defineComponent({__name:"BigScreenPanel",props:{title:{default:""},accent:{default:"oklch(.82 .13 200)"},liveLabel:{default:""},showBar:{type:Boolean,default:!0},corners:{default:"tl-br"},padding:{default:"md"},bodyLayout:{default:"default"},titleSize:{default:"md"},overflowHidden:{type:Boolean,default:!0}},setup(n){const t=n;function s(o){return t.corners==="all"?!0:t.corners==="none"?!1:o==="tl"||o==="br"}return(o,l)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["qbs-panel",[`qbs-panel--padding-${n.padding}`,`qbs-panel--layout-${n.bodyLayout}`,{"qbs-panel--overflow-hidden":n.overflowHidden}]]),style:e.normalizeStyle({"--qbs-accent":n.accent})},[s("tl")?(e.openBlock(),e.createElementBlock("span",p)):e.createCommentVNode("",!0),s("tr")?(e.openBlock(),e.createElementBlock("span",_)):e.createCommentVNode("",!0),s("bl")?(e.openBlock(),e.createElementBlock("span",y)):e.createCommentVNode("",!0),s("br")?(e.openBlock(),e.createElementBlock("span",g)):e.createCommentVNode("",!0),n.title||n.liveLabel||o.$slots["header-center"]||o.$slots["header-extra"]?(e.openBlock(),e.createElementBlock("header",{key:4,class:e.normalizeClass(["qbs-panel__header",`qbs-panel__header--${n.titleSize}`])},[n.showBar?(e.openBlock(),e.createElementBlock("span",b)):e.createCommentVNode("",!0),n.title?(e.openBlock(),e.createElementBlock("span",k,e.toDisplayString(n.title),1)):e.createCommentVNode("",!0),o.$slots["header-prefix"]?(e.openBlock(),e.createElementBlock("span",B,[e.renderSlot(o.$slots,"header-prefix",{},void 0,!0)])):e.createCommentVNode("",!0),o.$slots["header-center"]?(e.openBlock(),e.createElementBlock("span",N,[e.renderSlot(o.$slots,"header-center",{},void 0,!0)])):e.createCommentVNode("",!0),o.$slots["header-extra"]||n.liveLabel?(e.openBlock(),e.createElementBlock("span",f,[e.renderSlot(o.$slots,"header-extra",{},()=>[n.liveLabel?(e.openBlock(),e.createElementBlock("span",u,[l[0]||(l[0]=e.createElementVNode("span",{class:"qbs-panel__live-dot"},null,-1)),e.createTextVNode(e.toDisplayString(n.liveLabel),1)])):e.createCommentVNode("",!0)],!0)])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",E,[e.renderSlot(o.$slots,"default",{},void 0,!0)])],6))}}),c=(n,t)=>{const s=n.__vccOpts||n;for(const[o,l]of t)s[o]=l;return s},i=c(h,[["__scopeId","data-v-749400b6"]]),V={key:0,class:"qbs-duty-compact"},S={class:"qbs-duty-compact__avatar"},q={class:"qbs-duty-compact__info"},$={class:"qbs-duty-compact__name"},C={class:"qbs-duty-compact__phone"},w={key:0,class:"qbs-duty-compact__tag"},D={key:1,class:"qbs-duty"},T={class:"qbs-duty__summary"},I={class:"qbs-duty__summary-chip"},x={class:"qbs-duty__summary-chip"},A={class:"qbs-duty__summary-chip"},P={class:"qbs-duty__list"},L={class:"qbs-duty__group-header"},j={class:"qbs-duty__users"},R={key:0,class:"qbs-duty__empty"},z=c(e.defineComponent({__name:"BigScreenDutyContent",props:{compact:{type:Boolean,default:!1},personName:{default:""},personPhone:{default:""},personTag:{default:""},date:{default:""},totalGroups:{default:void 0},totalUsers:{default:void 0},groups:{default:()=>[]}},setup(n){const t=n;return(s,o)=>t.compact?(e.openBlock(),e.createElementBlock("div",V,[e.createElementVNode("div",S,e.toDisplayString(t.personName.charAt(0)||"-"),1),e.createElementVNode("div",q,[e.createElementVNode("span",$,e.toDisplayString(t.personName||"暂未排班"),1),e.createElementVNode("span",C,e.toDisplayString(t.personPhone||"—"),1)]),t.personTag?(e.openBlock(),e.createElementBlock("span",w,e.toDisplayString(t.personTag),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",D,[e.createElementVNode("div",T,[e.createElementVNode("div",I,[o[0]||(o[0]=e.createElementVNode("span",null,"日期",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.date||"未同步"),1)]),e.createElementVNode("div",x,[o[1]||(o[1]=e.createElementVNode("span",null,"值班组",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.totalGroups??t.groups.length),1)]),e.createElementVNode("div",A,[o[2]||(o[2]=e.createElementVNode("span",null,"值班人数",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.totalUsers??0),1)])]),e.createElementVNode("div",P,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groups,l=>{var r;return e.openBlock(),e.createElementBlock("article",{key:l.groupId,class:"qbs-duty__group"},[e.createElementVNode("div",L,[e.createElementVNode("strong",null,e.toDisplayString(l.groupName),1),e.createElementVNode("span",null,e.toDisplayString(((r=l.users)==null?void 0:r.length)||0)+" 人",1)]),e.createElementVNode("div",j,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.users||[],d=>(e.openBlock(),e.createElementBlock("span",{key:d.userId,class:"qbs-duty__user"},e.toDisplayString(d.nickName||d.username),1))),128))])])}),128)),t.groups.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",R,"暂无值班数据"))])]))}}),[["__scopeId","data-v-f5721bce"]]),F={class:"qbs-alert-row__main"},M={class:"qbs-alert-row__copy"},U=["title"],G={class:"qbs-alert-row__meta"},H={class:"qbs-alert-row__group"},O={key:0,class:"qbs-alert-row__owner"},W={key:1,class:"qbs-alert-row__time"},J={key:2,class:"qbs-alert-row__tag"},Q={class:"qbs-alert-row__status"},K={key:0,class:"qbs-alert-row__aside"},Y=c(e.defineComponent({__name:"BigScreenAlertRow",props:{title:{},group:{default:""},owner:{default:""},time:{default:""},tag:{default:""},statusText:{default:""},accent:{default:"#f0a35a"},detailWide:{type:Boolean,default:!1}},emits:["select"],setup(n){const t=n;return(s,o)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["qbs-alert-row",{"qbs-alert-row--detail-wide":t.detailWide}]),style:e.normalizeStyle({"--qbs-alert-accent":t.accent}),type:"button",onClick:o[0]||(o[0]=l=>s.$emit("select"))},[e.createElementVNode("div",F,[e.createElementVNode("div",M,[e.createElementVNode("div",{class:"qbs-alert-row__title",title:t.title},e.toDisplayString(t.title),9,U),e.createElementVNode("div",G,[e.createElementVNode("span",H,e.toDisplayString(t.group),1),t.owner?(e.openBlock(),e.createElementBlock("span",O,e.toDisplayString(t.owner),1)):e.createCommentVNode("",!0),t.time?(e.openBlock(),e.createElementBlock("span",W,e.toDisplayString(t.time),1)):e.createCommentVNode("",!0),t.tag?(e.openBlock(),e.createElementBlock("span",J,e.toDisplayString(t.tag),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Q,[e.renderSlot(s.$slots,"status",{},()=>[e.createTextVNode(e.toDisplayString(t.statusText||"待处理"),1)],!0)])]),s.$slots.aside?(e.openBlock(),e.createElementBlock("aside",K,[e.renderSlot(s.$slots,"aside",{},void 0,!0)])):e.createCommentVNode("",!0)])],6))}}),[["__scopeId","data-v-83959767"]]),X={class:"qbs-metric-card__value"},Z={class:"qbs-metric-card__label"},v=c(e.defineComponent({__name:"BigScreenMetricCard",props:{label:{},value:{default:"—"},tone:{default:"#7dd3fc"},compact:{type:Boolean,default:!1}},setup(n){const t=n;return(s,o)=>t.compact?(e.openBlock(),e.createElementBlock("div",{key:0,class:"qbs-metric-card qbs-metric-card--compact",style:e.normalizeStyle({"--qbs-metric-tone":t.tone})},[e.createElementVNode("span",null,e.toDisplayString(t.label),1),e.createElementVNode("strong",null,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)],!0)])],4)):(e.openBlock(),e.createBlock(i,{key:1,class:"qbs-metric-card","body-layout":"metric",padding:"tight",accent:t.tone},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default",{},()=>[e.createElementVNode("strong",X,e.toDisplayString(t.value),1)],!0),e.createElementVNode("span",Z,e.toDisplayString(t.label),1)]),_:3},8,["accent"]))}}),[["__scopeId","data-v-07353599"]]),ee={class:"qbs-header"},te={class:"qbs-header__body"},ne={class:"qbs-header__brand"},oe={key:0,class:"qbs-header__clock"},se=c(e.defineComponent({__name:"BigScreenHeader",props:{title:{default:"运维监控大屏"},subtitle:{default:"QUARK EAGLE EYE"},timeText:{default:"--:--"},dateText:{default:"--"},weekdayText:{default:""},showClock:{type:Boolean,default:!0}},setup(n){return(t,s)=>(e.openBlock(),e.createElementBlock("section",ee,[s[1]||(s[1]=e.createElementVNode("i",{class:"qbs-header__glow"},null,-1)),e.createElementVNode("div",te,[e.createElementVNode("div",ne,[s[0]||(s[0]=e.createElementVNode("i",{class:"qbs-header__crest"},[e.createElementVNode("b")],-1)),e.createElementVNode("div",null,[e.createElementVNode("p",null,e.toDisplayString(n.subtitle),1),e.createElementVNode("h1",null,e.toDisplayString(n.title),1)])]),n.showClock?(e.openBlock(),e.createElementBlock("div",oe,[e.createElementVNode("strong",null,e.toDisplayString(n.timeText),1),e.createElementVNode("span",null,e.toDisplayString(n.dateText)+" "+e.toDisplayString(n.weekdayText),1)])):e.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-cc041333"]]),le={class:"qbs-build-dist"},ae={key:0,class:"qbs-build-dist__empty"},re=c(e.defineComponent({__name:"BigScreenBuildDistribution",props:{items:{default:()=>[]},total:{default:0}},setup(n){const t=n,s=o=>`${(o/Math.max(1,t.total||t.items.reduce((l,r)=>l+r.count,0))*100).toFixed(1)}%`;return(o,l)=>(e.openBlock(),e.createElementBlock("div",le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items.slice(0,8),r=>(e.openBlock(),e.createElementBlock("article",{key:r.name},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(r.name),1),e.createElementVNode("span",null,e.toDisplayString(r.count),1)]),e.createElementVNode("i",null,[e.createElementVNode("b",{style:e.normalizeStyle({width:s(r.count)})},null,4)])]))),128)),t.items.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ae,"暂无构建分布数据"))]))}}),[["__scopeId","data-v-608b33d9"]]),ce={class:"qbs-build-projects"},de={class:"qbs-build-projects__summary"},ie={class:"qbs-build-projects__list"},me={key:0,class:"qbs-build-projects__empty"},pe=c(e.defineComponent({__name:"BigScreenBuildProjects",props:{buildingCount:{default:0},todayBuilds:{default:0},successRate:{default:0},items:{default:()=>[]}},setup(n){const t=s=>`${Math.max(0,Math.min(100,s||0))}%`;return(s,o)=>(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("div",de,[e.createElementVNode("span",null,[o[0]||(o[0]=e.createTextVNode("构建中",-1)),e.createElementVNode("strong",null,e.toDisplayString(n.buildingCount),1)]),e.createElementVNode("span",null,[o[1]||(o[1]=e.createTextVNode("今日构建",-1)),e.createElementVNode("strong",null,e.toDisplayString(n.todayBuilds),1)]),e.createElementVNode("span",null,[o[2]||(o[2]=e.createTextVNode("成功率",-1)),e.createElementVNode("strong",null,e.toDisplayString(Number(n.successRate).toFixed(1))+"%",1)])]),e.createElementVNode("div",ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items.slice(0,8),l=>(e.openBlock(),e.createElementBlock("article",{key:`${l.pipelineId}-${l.buildId}`},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(l.jobName||`Pipeline-${l.pipelineId}`),1),e.createElementVNode("span",null,e.toDisplayString(l.statusText),1)]),e.createElementVNode("p",null,[e.createElementVNode("span",null,e.toDisplayString(l.currentStage||"等待阶段信息"),1),e.createElementVNode("span",null,e.toDisplayString(l.buildUser||"系统触发"),1)]),e.createElementVNode("i",null,[e.createElementVNode("b",{style:e.normalizeStyle({width:t(l.progress)})},null,4)])]))),128)),n.items.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",me,"当前没有在跑的构建项目"))])]))}}),[["__scopeId","data-v-6c6f003c"]]),m={screen_header:{dateText:"2026-07-27",timeText:"14:30",weekdayText:"星期一"},robot:{status:"online",mode:"guard",emotion:"neutral",generatedAt:"2026-07-27 14:30:00",summary:{dutyGroups:3,todayAlerts:12,buildingCount:4,endpointNodes:86},alerts:{todayTotal:12,todayPending:3,criticalCount:1,warningCount:5},builds:{buildingCount:4,todayBuilds:28,successRate:98.6}},duty_today:{date:"2026-07-27",totalGroups:3,totalUsers:8,groups:[{groupId:1,groupName:"平台组",users:[{userId:101,nickName:"张工",username:"zhang"},{userId:102,nickName:"李工",username:"li"}]},{groupId:2,groupName:"网络组",users:[{userId:103,nickName:"王工",username:"wang"}]}]},alert_latest:{total:3,stats:{todayTotal:12,todayPending:3,overdueTotal:1,criticalCount:1,warningCount:5,infoCount:6},items:[{id:1,alertId:"AL-20260727-001",title:"边缘节点延迟升高",severity:"WARN",severityText:"警告",status:"pending",statusText:"待处理",source:"edge-01",firedAt:"14:20",groupNames:["网络组"]},{id:2,alertId:"AL-20260727-002",title:"构建队列等待时间过长",severity:"CRITICAL",severityText:"严重",status:"processing",statusText:"处理中",source:"CI/CD",firedAt:"14:08",groupNames:["平台组"]},{id:3,alertId:"AL-20260727-003",title:"磁盘使用率接近阈值",severity:"INFO",severityText:"提示",status:"pending",statusText:"待处理",source:"node-03",firedAt:"13:56",groupNames:["运维组"]}]},build_projects:{summary:{buildingCount:4,todayBuilds:28,successRate:98.6},items:[{pipelineId:1,buildId:101,jobName:"eagle-eye-web",statusText:"构建中",currentStage:"测试",buildUser:"system",progress:68},{pipelineId:2,buildId:102,jobName:"quark-api",statusText:"构建中",currentStage:"镜像打包",buildUser:"李工",progress:42}]},build_distribution:{total:100,items:[{name:"应用构建",count:42},{name:"镜像构建",count:27},{name:"基础设施",count:18},{name:"其他任务",count:13}]},endpoint_distribution:{summary:{total:3},items:[{id:1,nodeName:"edge-01",nodeIp:"10.10.2.11",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:12.4}]},{id:2,nodeName:"edge-02",nodeIp:"10.10.2.12",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:18.7}]},{id:3,nodeName:"edge-03",nodeIp:"10.10.2.13",nodeStatus:!1,heartbeatResults:[]}]}};function _e(n){return JSON.parse(JSON.stringify(m[n]))}a.BigScreenAlertRow=Y,a.BigScreenBuildDistribution=re,a.BigScreenBuildProjects=pe,a.BigScreenDutyContent=z,a.BigScreenHeader=se,a.BigScreenMetricCard=v,a.BigScreenPanel=i,a.bigScreenPreviewFixtures=m,a.getBigScreenPreviewData=_e,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiraka/quark-big-screen-ui",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Shared visual components for Quark big-screen applications.",
5
5
  "type": "module",
6
6
  "files": [