diff --git a/src/pages/TaskDisplay.jsx b/src/pages/TaskDisplay.jsx
index 29c84ad..6ec06fe 100644
--- a/src/pages/TaskDisplay.jsx
+++ b/src/pages/TaskDisplay.jsx
@@ -42,12 +42,20 @@ export default function TaskDisplay() {
const pageSize = cols * ROWS; // 2×2=4 或 2×3=6
const pageCount = Math.max(1, Math.ceil(tasks.length / pageSize));
+ const [countdown, setCountdown] = useState(Math.round(ROTATE_MS / 1000));
useEffect(() => {
if (pageCount <= 1) { setPage(0); return; }
const t = setInterval(() => setPage((p) => (p + 1) % pageCount), ROTATE_MS);
return () => clearInterval(t);
}, [pageCount]);
+ // 轮播倒计时:每秒递减,翻页时重置(页数或页变更即复位)
+ useEffect(() => { setCountdown(Math.round(ROTATE_MS / 1000)); }, [page, pageCount]);
+ useEffect(() => {
+ const t = setInterval(() => setCountdown((c) => (c > 0 ? c - 1 : 0)), 1000);
+ return () => clearInterval(t);
+ }, []);
+
const visible = useMemo(() => {
if (tasks.length === 0) return [];
const start = page * pageSize;
@@ -62,7 +70,13 @@ export default function TaskDisplay() {
系统任务中心
扫码即可接单 · 园区企业发标 · 合伙人接单
- {tasks.length} 个任务
+ {/* 右上角信息面板:说明 / 总数 / 轮播倒计时 / 页码 */}
+
+
总数{tasks.length}
+
翻页{pageCount > 1 ? `${countdown}s` : '—'}
+
页码{pageCount > 1 ? `${page + 1}/${pageCount}` : '1/1'}
+
接单方式:抢单 / 竞标 / 指派 / 推荐
+
{loading && tasks.length === 0 ? (
diff --git a/src/styles/task-display.css b/src/styles/task-display.css
index 0fe821e..bb1951b 100644
--- a/src/styles/task-display.css
+++ b/src/styles/task-display.css
@@ -28,6 +28,26 @@
.tasks-head-sub { font-size: 13px; color: var(--bd-sub, #7d8fa9); }
.tasks-head-count { margin-left: auto; font-size: 13px; color: var(--bd-blue, #2f6bff); font-weight: 600; }
+/* 右上角信息面板(说明 / 总数 / 轮播倒计时 / 页码) */
+.tasks-head-info {
+ margin-left: auto;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+}
+.tasks-info-item {
+ display: flex; flex-direction: column; align-items: center; gap: 2px;
+ min-width: 46px; padding: 6px 10px; border-radius: 10px;
+ background: rgba(47, 107, 255, 0.08); border: 1px solid rgba(47, 107, 255, 0.14);
+}
+.tasks-info-label { font-size: 10px; color: var(--bd-sub, #7d8fa9); letter-spacing: 0.4px; }
+.tasks-info-val { font-size: 17px; font-weight: 700; color: var(--bd-blue, #2f6bff); line-height: 1; }
+.tasks-info-hint {
+ font-size: 11px; color: var(--bd-sub, #7d8fa9);
+ padding: 6px 10px; border-radius: 10px; background: rgba(29, 44, 68, 0.05);
+ white-space: nowrap;
+}
+
.tasks-loading {
color: var(--bd-sub, #7d8fa9); font-size: 15px;
display: flex; align-items: center; justify-content: center; height: 60%;