refactor(energy): 电能仅展示充电量,电/氢 daily 表格统一列宽
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

- 电能去掉「充电费用(元)」列,只保留 月份/日期 | 充电量(度) | 环比
  原列宽 auto+auto+auto 在窄屏会挤压重叠
- 改用固定 minmax(0,1fr)/120/88(移动)和 1fr/160/120(桌面)
- 氢能 daily 同步统一列宽:1fr/120/88(移动)和 1fr/140/140/120(桌面)
- 单价表头改为「单价 (元/Kg)」全展示,移动端站点行价格作为副信息缩小展示

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
kkfluous
2026-04-29 19:37:26 +08:00
parent d1d79f1c7c
commit 9a20a7cb79
2 changed files with 14 additions and 22 deletions

View File

@@ -50,11 +50,9 @@ export default function ElectricDaily() {
{/* 月份分组表 */} {/* 月份分组表 */}
<div className="bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden"> <div className="bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden">
<div className="grid grid-cols-[1fr_auto_auto_auto] md:grid-cols-[1fr_120px_140px_120px] gap-2 px-3 py-2 bg-slate-50 text-[11px] font-bold text-slate-500"> <div className="grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_160px_120px] gap-3 px-3 py-2 bg-slate-50 text-[11px] font-bold text-slate-500">
<span> / </span> <span> / </span>
<span className="hidden md:block text-right"></span> <span className="text-right"> ()</span>
<span className="text-right md:hidden"></span>
<span className="text-right">()</span>
<span className="text-right"></span> <span className="text-right"></span>
</div> </div>
{error ? ( {error ? (
@@ -69,7 +67,7 @@ export default function ElectricDaily() {
<div key={m.month} className="border-t border-slate-100 first:border-t-0"> <div key={m.month} className="border-t border-slate-100 first:border-t-0">
<button <button
onClick={() => toggleMonth(m.month)} onClick={() => toggleMonth(m.month)}
className={`w-full grid grid-cols-[1fr_auto_auto_auto] md:grid-cols-[1fr_120px_140px_120px] gap-2 px-3 py-2.5 text-left transition-colors ${ className={`w-full grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_160px_120px] gap-3 px-3 py-2.5 text-left transition-colors ${
open ? 'bg-blue-50/30' : 'hover:bg-slate-50' open ? 'bg-blue-50/30' : 'hover:bg-slate-50'
}`} }`}
> >
@@ -80,9 +78,6 @@ export default function ElectricDaily() {
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums"> <span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{m.kwh.toLocaleString('zh-CN', { maximumFractionDigits: 2 })} {m.kwh.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span> </span>
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{m.fee.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span>
<span /> <span />
</button> </button>
<AnimatePresence initial={false}> <AnimatePresence initial={false}>
@@ -102,15 +97,12 @@ export default function ElectricDaily() {
return ( return (
<div <div
key={d.date} key={d.date}
className={`grid grid-cols-[1fr_auto_auto_auto] md:grid-cols-[1fr_120px_140px_120px] gap-2 px-3 py-2 pl-9 border-t border-slate-100 ${abnormalBg}`} className={`grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_160px_120px] gap-3 px-3 py-2 pl-9 border-t border-slate-100 ${abnormalBg}`}
> >
<span className="text-[12px] text-slate-600">{d.date.slice(5)}</span> <span className="text-[12px] text-slate-600">{d.date.slice(5)}</span>
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums"> <span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{d.kwh.toLocaleString('zh-CN', { maximumFractionDigits: 2 })} {d.kwh.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span> </span>
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{d.fee.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span>
<span className="text-right"><TrendBadge value={d.chainPct} /></span> <span className="text-right"><TrendBadge value={d.chainPct} /></span>
</div> </div>
); );

View File

@@ -139,14 +139,14 @@ export default function HydrogenDaily() {
{!(customer === 'external' && rows !== null && rows.length === 0) && ( {!(customer === 'external' && rows !== null && rows.length === 0) && (
<div className="bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden"> <div className="bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden">
{/* 表头 */} {/* 表头 */}
<div className="grid grid-cols-[1fr_auto_auto] md:grid-cols-[1fr_140px_120px_120px] gap-2 px-3 py-2 bg-slate-50 text-[11px] font-bold text-slate-500"> <div className="grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_140px_140px_120px] gap-3 px-3 py-2 bg-slate-50 text-[11px] font-bold text-slate-500">
<span> / </span> <span> / </span>
<span className="hidden md:block text-right"></span> <span className="hidden md:block text-right"> (/Kg)</span>
<span className="text-right">(Kg)</span> <span className="text-right"> (Kg)</span>
<span className="text-right"></span> <span className="text-right"></span>
</div> </div>
{/* 合计行 */} {/* 合计行 */}
<div className="grid grid-cols-[1fr_auto_auto] md:grid-cols-[1fr_140px_120px_120px] gap-2 px-3 py-2 bg-blue-50/50 text-[12px] text-blue-600 font-bold"> <div className="grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_140px_140px_120px] gap-3 px-3 py-2 bg-blue-50/50 text-[12px] text-blue-600 font-bold">
<span></span> <span></span>
<span className="hidden md:block" /> <span className="hidden md:block" />
<span className="text-right">{totalKg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}</span> <span className="text-right">{totalKg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}</span>
@@ -169,13 +169,13 @@ export default function HydrogenDaily() {
<div key={r.date} className={`border-t border-slate-100 ${abnormalBg}`}> <div key={r.date} className={`border-t border-slate-100 ${abnormalBg}`}>
<button <button
onClick={() => toggle(r.date)} onClick={() => toggle(r.date)}
className="w-full grid grid-cols-[1fr_auto_auto] md:grid-cols-[1fr_140px_120px_120px] gap-2 px-3 py-2.5 text-left hover:bg-slate-50/60 transition-colors" className="w-full grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_140px_140px_120px] gap-3 px-3 py-2.5 text-left hover:bg-slate-50/60 transition-colors"
> >
<span className="flex items-center gap-1 text-[12px] text-slate-700 font-bold"> <span className="flex items-center gap-1 text-[12px] text-slate-700 font-bold">
<ChevronRight size={14} className={`transition-transform ${open ? 'rotate-90' : ''} text-slate-400`} /> <ChevronRight size={14} className={`transition-transform ${open ? 'rotate-90' : ''} text-slate-400`} />
{r.date} {r.date}
</span> </span>
<span className="hidden md:block text-right text-[12px] text-slate-400"></span> <span className="hidden md:block text-right text-[12px] text-slate-300"></span>
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums"> <span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{r.totalKg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })} {r.totalKg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span> </span>
@@ -193,13 +193,13 @@ export default function HydrogenDaily() {
{r.stations.map(s => ( {r.stations.map(s => (
<div <div
key={s.name} key={s.name}
className="grid grid-cols-[1fr_auto_auto] md:grid-cols-[1fr_140px_120px_120px] gap-2 px-3 py-2 pl-9 md:pl-9 border-t border-slate-100 first:border-t-0" className="grid grid-cols-[minmax(0,1fr)_120px_88px] md:grid-cols-[minmax(0,1fr)_140px_140px_120px] gap-3 px-3 py-2 pl-9 border-t border-slate-100 first:border-t-0"
> >
<span className="text-[12px] text-slate-600 truncate"> <span className="text-[12px] text-slate-600 truncate">
{s.name} {s.name}
<span className="md:hidden text-slate-400"> · {s.pricePerKg} /Kg</span> <span className="md:hidden text-slate-400 text-[10px]"> · {s.pricePerKg}</span>
</span> </span>
<span className="hidden md:block text-right text-[12px] text-slate-500 font-bold">{s.pricePerKg} /Kg</span> <span className="hidden md:block text-right text-[12px] text-slate-500 font-bold tabular-nums">{s.pricePerKg}</span>
<span className="text-right text-[12px] text-slate-700 font-bold tabular-nums"> <span className="text-right text-[12px] text-slate-700 font-bold tabular-nums">
{s.kg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })} {s.kg.toLocaleString('zh-CN', { maximumFractionDigits: 2 })}
</span> </span>