feat: add channel report batch briefs

This commit is contained in:
hectorzhao
2026-09-02 18:29:05 +08:00
parent 2dff1be750
commit 7cb5dd376e
27 changed files with 1083 additions and 153 deletions
+24 -11
View File
@@ -176,6 +176,7 @@ export function AdminReportTasksPage() {
.then((result) => {
setTasks(result.items);
setTotal(result.total);
setSelected(new Set());
setError('');
})
.catch((failure: Error) => setError(failure.message || '报备明细加载失败'));
@@ -348,6 +349,7 @@ export function AdminReportTasksPage() {
),
},
];
const allCurrentPageSelected = tasks.length > 0 && tasks.every((task) => selected.has(task.id));
return (
<section className="page-stack admin-sms-task-page report-task-page">
@@ -357,18 +359,29 @@ export function AdminReportTasksPage() {
<h1></h1>
<p> × / × × </p>
</div>
<Button
disabled={!selected.size}
onClick={() => {
const first = tasks.find((task) => selected.has(task.id));
if (first) {
setStatusTask(first);
setNextStatus('reporting');
<div className="page-heading-actions">
<Button
disabled={!tasks.length}
onClick={() =>
setSelected(allCurrentPageSelected ? new Set() : new Set(tasks.map((task) => task.id)))
}
}}
>
{selected.size}
</Button>
variant="ghost"
>
{allCurrentPageSelected ? '取消全选' : '全选当前页'}
</Button>
<Button
disabled={!selected.size}
onClick={() => {
const first = tasks.find((task) => selected.has(task.id));
if (first) {
setStatusTask(first);
setNextStatus('reporting');
}
}}
>
{selected.size}
</Button>
</div>
</div>
{error ? <p className="form-error">{error}</p> : null}
<div className="surface admin-task-filter">