feat: unify mobile filter sheets

This commit is contained in:
lingniu
2026-07-19 04:44:21 +08:00
parent d3eb77e2c7
commit 9a87d14d6d
11 changed files with 417 additions and 64 deletions

View File

@@ -11,6 +11,7 @@ import { formatShanghaiDateTime } from '../domain/formatters';
import { InlineError, PanelEmpty, PanelLoading } from '../shared/AsyncState';
import { MonitorReturnBar } from '../shared/MonitorReturnBar';
import { MobileFilterToggle } from '../shared/MobileFilterToggle';
import { MobileFilterSheet, MobileFilterSheetSection } from '../shared/MobileFilterSheet';
import { PlatformTime } from '../shared/PlatformTime';
import { ProtocolTag } from '../shared/ProtocolTag';
import { TablePagination } from '../shared/TablePagination';
@@ -430,24 +431,24 @@ export default function HistoryPage() {
collapsedLabel="修改"
onToggle={() => setFiltersCollapsed((value) => !value)}
/>
<SideSheet
<MobileFilterSheet
className="v2-history-filter-sidesheet"
visible={mobileFiltersOpen}
placement="bottom"
height="min(82dvh, 700px)"
aria-label="历史查询范围"
title={<div className="v2-history-mobile-sheet-title"><strong></strong><span></span></div>}
ariaLabel="历史查询范围"
title="筛选历史数据"
description="车辆、时间、数据类型与协议来源"
onCancel={() => setFiltersCollapsed(true)}
footer={<div className="v2-history-mobile-filter-footer"><Button theme="light" onClick={reset}></Button><Button theme="solid" disabled={!parseHistoryKeywords(draft.keywords).length} onClick={applyDraft}></Button></div>}
secondaryAction={{ label: '重置条件', onClick: reset }}
primaryAction={{ label: '应用并查询', disabled: !parseHistoryKeywords(draft.keywords).length, onClick: applyDraft }}
>
<form className="v2-history-mobile-filter-form" onSubmit={submit}>
<section className="v2-history-mobile-filter-section" aria-label="历史查询条件">
<header><strong></strong><span> 5 </span></header>
<MobileFilterSheetSection className="v2-history-mobile-filter-section" ariaLabel="历史查询条件" title="查询范围" description="最多 5 台车辆,按上海时区检索可追溯数据">
<div className="v2-history-mobile-filter-grid">{historyFilterFields}</div>
</section>
</MobileFilterSheetSection>
{exportAllowed ? <section className="v2-history-mobile-export-action" aria-label="导出当前历史查询"><span><strong></strong><small> CSV</small></span><CreateExportButton disabled={!resultRows.length} request={exportRequest} /></section> : <Tag className="v2-history-permission-tag" color="grey" type="light" size="large"></Tag>}
</form>
</SideSheet>
</MobileFilterSheet>
</div> : <WorkspaceFilterPanel
className="v2-history-filter-card"
title="查询范围"