From b33312c547e8596f7af8b0eec1999582d68d574c Mon Sep 17 00:00:00 2001 From: zjk <1553836110@qq.com> Date: Wed, 2 Sep 2026 20:24:02 +0800 Subject: [PATCH] =?UTF-8?q?pPowerManger=20=E7=87=83=E6=96=99=E7=94=B5?= =?UTF-8?q?=E6=B1=A0=E9=A1=B5=E6=93=8D=E6=8E=A7=E8=A1=A8=E5=8D=95=E9=98=B2?= =?UTF-8?q?=E8=AF=AF=E6=93=8D=E4=BD=9C=E6=94=B9=E9=80=A0=EF=BC=9A=E6=BB=91?= =?UTF-8?q?=E5=9D=97=E6=94=B9=E4=B8=BA=E6=AD=A5=E8=BF=9B=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E8=BE=93=E5=85=A5=EF=BC=8C=E6=8F=90=E4=BA=A4=E5=89=8D=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E7=A1=AE=E8=AE=A4=E5=B9=B6=E9=AB=98=E4=BA=AE=E5=8D=B1?= =?UTF-8?q?=E9=99=A9=E6=8C=87=E4=BB=A4=EF=BC=88=E5=81=9C=E6=9C=BA/?= =?UTF-8?q?=E7=B4=A7=E6=80=A5=E5=81=9C=E6=9C=BA/=E5=85=B3=E6=9C=BA?= =?UTF-8?q?=E7=AD=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pPowerManger/httpserver/fuelcell.h | 373 ++++++++++++++++++++----- 1 file changed, 308 insertions(+), 65 deletions(-) diff --git a/src/pPowerManger/httpserver/fuelcell.h b/src/pPowerManger/httpserver/fuelcell.h index 1b12503..39553da 100644 --- a/src/pPowerManger/httpserver/fuelcell.h +++ b/src/pPowerManger/httpserver/fuelcell.h @@ -278,34 +278,192 @@ body { margin-bottom: 12px; } -.slider-container { +/* 数值步进控件(替代滑块,防误拖) */ +.stepper-container { display: flex; align-items: center; + gap: 8px; +} + +.stepper-btn { + width: 40px; + height: 40px; + border: 1px solid #d1d5db; + border-radius: 4px; + background-color: #f9fafb; + color: #1a1a1a; + font-size: 1.25rem; + font-weight: 700; + line-height: 1; + cursor: pointer; + transition: all 0.15s; + user-select: none; +} + +.stepper-btn:hover { + background-color: #e5e7eb; +} + +.stepper-btn:active { + background-color: var(--primary-color); + color: white; + border-color: var(--primary-color); +} + +.stepper-input { + width: 90px; + height: 40px; + padding: 0 8px; + border: 1px solid #d1d5db; + border-radius: 4px; + text-align: center; + font-family: 'SF Mono', 'Consolas', monospace; + font-size: 1rem; + font-weight: 600; +} + +.stepper-input:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15); +} + +.stepper-unit { + min-width: 84px; + color: #4b5563; + font-size: 0.9rem; + font-family: 'SF Mono', 'Consolas', monospace; +} + +/* 下拉框危险选项标记 */ +.select-control option.danger { + color: #dc2626; + font-weight: 700; +} + +/* 指令确认弹窗 */ +.modal-overlay { + display: none; + position: fixed; + inset: 0; + background: rgba(17, 24, 39, 0.55); + z-index: 100; + align-items: center; + justify-content: center; + padding: 16px; +} + +.modal-overlay.visible { + display: flex; +} + +.modal { + background: white; + border-radius: 8px; + width: 100%; + max-width: 560px; + max-height: 85vh; + display: flex; + flex-direction: column; + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3); +} + +.modal-title { + padding: 16px 20px; + font-size: 1.1rem; + font-weight: 600; + border-bottom: 1px solid #e5e7eb; +} + +.modal-body { + padding: 16px 20px; + overflow-y: auto; +} + +.modal-hint { + font-size: 0.85rem; + color: #6b7280; + margin-bottom: 12px; +} + +.modal-summary { + border: 1px solid #e5e7eb; + border-radius: 6px; + overflow: hidden; +} + +.summary-row { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 12px; + border-bottom: 1px solid #f3f4f6; + font-size: 0.9rem; +} + +.summary-row:last-child { + border-bottom: none; +} + +.summary-label { + color: #4b5563; +} + +.summary-value { + font-weight: 600; + font-family: 'SF Mono', 'Consolas', monospace; + text-align: right; +} + +.summary-row.danger { + background-color: #fef2f2; +} + +.summary-row.danger .summary-label, +.summary-row.danger .summary-value { + color: #b91c1c; +} + +.summary-danger-mark { + margin-right: 6px; + font-weight: 700; +} + +.modal-note { + margin-top: 12px; + padding: 10px 12px; + border-radius: 4px; + background-color: #fef2f2; + color: #b91c1c; + font-size: 0.85rem; + font-weight: 600; + display: none; +} + +.modal-note.visible { + display: block; +} + +.modal-actions { + padding: 16px 20px; + border-top: 1px solid #e5e7eb; + display: flex; gap: 12px; } -.slider { - flex-grow: 1; - height: 6px; - -webkit-appearance: none; - background: #d1d5db; - border-radius: 3px; - outline: none; +.modal-actions .button { + flex: 1; + padding: 12px; + font-size: 1rem; } -.slider::-webkit-slider-thumb { - -webkit-appearance: none; - width: 18px; - height: 18px; - background: var(--primary-color); - border-radius: 50%; - cursor: pointer; +.button-confirm { + background-color: var(--primary-color); + color: white; } -.slider-value { - min-width: 60px; - text-align: right; - font-family: 'SF Mono', 'Consolas', monospace; +.button-confirm:hover { + background-color: var(--primary-hover); } .form-submit { @@ -521,22 +679,24 @@ body { - - - - + + + +