Files
ln-bi/src/modules/energy/hydrogen/drill/real-daily-mobile.css
T
dsh-agent 7556dbcebc refactor(stage2): 生产代码移出 src/vendor,氢能收敛为分层 feature
src/vendor 语义是'第三方/参考',却装着线上氢能看板并反向 import
src/modules,依赖方向倒挂。本次把生产代码归位并建立氢能分层:

  src/modules/energy/hydrogen/
    index.tsx        导航入口(原 HydrogenModule.tsx)
    api.ts types.ts  HTTP 与 DTO
    dev-mock-api.ts  仅 dev 的 vite 插件(仍由 vite.config.ts 引用)
    model/           纯逻辑(format / bearing-labels / daily-detail-format)
    board/           经营看板 UI(原 vendor energy-h2-bi-board)
    station-daily/   单站日报 UI(原 vendor energy-h2-station-daily)
    drill/           下钻弹层 UI(原 hydrogen-bi-v2 的 UI 部分)
    common/          工具与共享组件(原 vendor common + prototype-download)
    fonts/           JetBrains Mono(原 vendor resources/design-system)

- UI 与 CSS 逐字节保留,仅移动位置与改写相对 import。
- 删除自挂载原型入口后遗留的 2 个 annotation-source.json。
- vite.config.ts 与 tsconfig 的路径/exclude 同步清理。
- independent-entry.test.ts 不再硬编码路径,改为断言'两个入口解析到同一文件'。

导入改写用一次性 codemod 完成(按旧位置解析、按新位置重写),
lint / test(131) / build 全绿,可达性分析仍为 0 未引用文件。
2026-09-11 10:14:37 +08:00

190 lines
6.5 KiB
CSS

/* Scoped to the live daily table; keep the other boards and drill dialogs intact. */
.ehb-real-daily-detail {
min-width: 0;
}
.ehb-daily-detail-toolbar {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px 16px;
margin: 12px 0;
}
.ehb-daily-view-switch {
display: inline-flex;
padding: 3px;
background: #f1f5f9;
border-radius: 9px;
}
.ehb-real-daily-detail button,
.ehb-real-daily-detail select { font: inherit; }
.ehb-daily-view-switch button,
.ehb-daily-collapse,
.ehb-daily-branch-state button,
.ehb-daily-detail-empty button {
min-height: 40px;
border: 0;
padding: 8px 12px;
border-radius: 7px;
background: transparent;
color: #475569;
cursor: pointer;
font-size: 13px;
}
.ehb-daily-view-switch button[aria-pressed="true"] {
background: #fff;
color: #1d4ed8;
box-shadow: 0 1px 4px #0f172a14;
font-weight: 600;
}
.ehb-daily-date-jump { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #64748b; }
.ehb-daily-date-jump select { min-height: 40px; border: 1px solid #e2e8f0; border-radius: 7px; padding: 6px 8px; background: #fff; color: #334155; }
.ehb-real-daily-detail button:disabled { opacity: .45; cursor: default; }
.ehb-real-daily-detail :is(button, select, [tabindex]):focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
.ehb-real-daily-detail .ehb-daily-disclosure {
display: flex;
align-items: flex-start;
gap: 5px;
width: 100%;
min-height: 44px;
padding: 6px 0;
border: 0;
background: none;
color: inherit;
text-align: left;
line-height: 1.5;
cursor: pointer;
}
.ehb-daily-disclosure > svg { flex-shrink: 0; margin-top: 3px; color: #64748b; }
.ehb-daily-disclosure > span { min-width: 0; }
.ehb-daily-disclosure[aria-expanded="true"] { font-weight: 600; }
.ehb-daily-disclosure[aria-expanded="true"] > svg { color: #2563eb; }
.ehb-daily-level-label,
.ehb-daily-change { display: block; font-size: 11px; font-weight: 400; color: #64748b; line-height: 1.6; }
.ehb-daily-cost { font-weight: 500; }
.ehb-daily-branch-state > td > div { display: flex; align-items: center; gap: 8px; }
.ehb-daily-branch-state button { display: inline-flex; align-items: center; gap: 5px; color: #1d4ed8; background: #eff6ff; }
.ehb-daily-detail-empty { padding: 24px 16px; text-align: center; color: #64748b; font-size: 13px; }
.ehb-daily-detail-empty button { display: block; margin: 8px auto 0; color: #1d4ed8; }
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table { min-width: 0; }
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table :is(th, td):is(:nth-child(2), :nth-child(5)) { display: none; }
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table :is(th, td):first-child:not([colspan]) { width: 36%; }
.ehb-real-daily-detail .ehb-table td:not(:first-child) { text-align: right; }
.ehb-real-daily-detail .ehb-table th:not(:first-child) { text-align: right; }
.ehb-real-daily-detail .ehb-table-wrap {
isolation: isolate;
overscroll-behavior-x: contain;
-webkit-overflow-scrolling: touch;
}
.ehb-real-daily-detail .ehb-table {
table-layout: fixed;
min-width: 940px;
}
.ehb-real-daily-detail .ehb-table tr {
background-color: #fff;
}
.ehb-real-daily-detail .ehb-table th:first-child,
.ehb-real-daily-detail .ehb-table td:first-child:not([colspan]) {
position: sticky;
left: 0;
z-index: 2;
width: 260px;
background-color: inherit;
box-shadow: 1px 0 0 #e2e8f0, 5px 0 8px -6px #64748b;
overflow-wrap: anywhere;
white-space: normal;
}
/* Give nested day → station → customer → vehicle rows a viewport-sized workspace. */
.ehb-real-daily-detail.ehb-daily-table-card > .ehb-table-wrap {
height: 80vh;
height: 80dvh;
max-height: none;
min-height: 0;
overflow: auto;
}
.ehb-real-daily-detail .ehb-table th:first-child {
z-index: 4;
background-color: #f8fafc;
}
.ehb-real-daily-detail .ehb-table th {
z-index: 3;
}
.ehb-real-daily-detail .ehb-table td:not(:first-child) {
font-variant-numeric: tabular-nums;
}
@media (max-width: 767px), (max-width: 1024px) and (max-height: 500px) {
.ehb-real-daily-detail.ehb-daily-table-card {
padding: 12px 0 0;
overflow: hidden;
}
.ehb-real-daily-detail .ehb-daily-table-head {
padding: 0 12px;
gap: 8px;
align-items: flex-start;
}
.ehb-real-daily-detail .ehb-daily-table-title {
font-size: 15px;
line-height: 1.5;
}
.ehb-real-daily-detail .ehb-daily-table-title .ehb-title-sub {
display: none;
}
.ehb-real-daily-detail .ehb-export-btn {
display: inline-flex;
flex-shrink: 0;
min-height: 44px;
padding: 6px 8px;
font-size: 12px;
}
.ehb-real-daily-detail .ehb-daily-detail-toolbar { padding: 0 12px; gap: 8px; }
.ehb-real-daily-detail .ehb-daily-view-switch { width: 100%; }
.ehb-real-daily-detail .ehb-daily-view-switch button { flex: 1; min-height: 44px; }
.ehb-real-daily-detail .ehb-daily-date-jump { flex: 1; }
.ehb-real-daily-detail .ehb-daily-date-jump select { min-height: 44px; }
.ehb-real-daily-detail .ehb-daily-collapse { min-height: 44px; padding: 6px; font-size: 12px; }
.ehb-real-daily-detail .ehb-daily-table-scroll-hint {
display: block;
padding: 8px 12px;
font-size: 11px;
color: #64748b;
background: #f8fafc;
}
.ehb-real-daily-detail .ehb-table-wrap {
max-height: 65dvh;
}
.ehb-real-daily-detail .ehb-table {
min-width: 760px;
font-size: 13px;
}
.ehb-real-daily-detail .ehb-table th:first-child,
.ehb-real-daily-detail .ehb-table td:first-child:not([colspan]) {
width: 142px;
}
.ehb-real-daily-detail .ehb-table td {
height: 48px;
padding: 10px 12px;
line-height: 1.5;
box-sizing: border-box;
}
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table { min-width: 0; width: 100%; }
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table :is(th, td) { padding: 10px 8px; }
.ehb-real-daily-detail[data-detail-mode="key"] .ehb-table td:not(:first-child) { font-size: 12px; overflow-wrap: anywhere; }
.ehb-real-daily-detail .ehb-table td:first-child:has(.ehb-daily-disclosure) { padding-top: 4px; padding-bottom: 4px; }
.ehb-real-daily-detail .ehb-table th {
padding: 10px 12px;
white-space: normal;
line-height: 1.5;
}
.ehb-real-daily-detail .ehb-table td:first-child .ehb-title-sub {
display: block;
margin-left: 0;
}
.ehb-real-daily-detail .ehb-table td.ehb-tree-cell-l1 { padding-left: 16px; }
.ehb-real-daily-detail .ehb-table td.ehb-tree-cell-l2 { padding-left: 22px; }
.ehb-real-daily-detail .ehb-table td.ehb-tree-cell-l3 { padding-left: 28px; }
.ehb-real-daily-detail .ehb-daily-record-tag {
display: inline-block;
margin: 2px 3px 0 0;
}
}