From aa0701a2ea2ca5e86ef0ac63c8e3ee5312c6427f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 3 Jul 2026 02:35:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E5=BC=8F=E5=B8=83=E5=B1=80=E8=B5=B0=E6=9F=A5=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?(=E6=96=AD=E7=82=B9=E7=BB=9F=E4=B8=80+=E7=AA=84=E5=B1=8F?= =?UTF-8?q?=E9=80=82=E9=85=8D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 统一断点: Dashboard/Ideas/Projects/ProjectDetail 的响应式断点 从 900px 改为 768px,与 AppLayout/AppSidebar 对齐(消除中间区间挤压) - filter-bar 全局加 flex-wrap:wrap(窄屏自动换行,Ideas/Tasks/AuditLog 受益) - IdeaDetail debate-container 窄屏双栏堆叠(@media 760px 切单列) - modal-box min-width 改用 min(360px,90vw)(超小窗口不撑破) - Tasks search-input 改 flex 布局(窄屏自适应宽度) --- src/components/ideas/IdeaDetail.vue | 7 +++++++ src/styles/global.css | 4 ++-- src/views/Dashboard.vue | 4 ++-- src/views/Ideas.vue | 5 +---- src/views/ProjectDetail.vue | 2 +- src/views/Projects.vue | 2 +- src/views/Tasks.vue | 2 ++ 7 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/components/ideas/IdeaDetail.vue b/src/components/ideas/IdeaDetail.vue index 8d34c24..1389c1d 100644 --- a/src/components/ideas/IdeaDetail.vue +++ b/src/components/ideas/IdeaDetail.vue @@ -850,4 +850,11 @@ watch(() => props.idea.id, loadHistory) border-color: var(--df-accent); background: var(--df-bg-raised); } + +/* ═══ 响应式:窄屏对抗式评估双栏堆叠 ═══ */ +@media (max-width: 760px) { + .debate-container { + grid-template-columns: 1fr; + } +} diff --git a/src/styles/global.css b/src/styles/global.css index e4b55c6..57da44b 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -193,7 +193,7 @@ html, body, #app { border: 0.5px solid var(--df-border); border-radius: var(--df-radius-lg); padding: 24px; - min-width: 360px; + min-width: min(360px, 90vw); max-width: 90vw; } .modal-title { font-size: 18px; font-weight: 500; color: var(--df-text); margin-bottom: 16px; } @@ -227,7 +227,7 @@ html, body, #app { .back-link:hover { text-decoration: underline; } /* — Filter Bar(列表页筛选 + 搜索)— Ideas / Tasks 共享 */ -.filter-bar { display: flex; gap: 8px; margin-bottom: var(--df-gap-page); align-items: center; } +.filter-bar { display: flex; gap: 8px; margin-bottom: var(--df-gap-page); align-items: center; flex-wrap: wrap; } .filter-btn { padding: 6px 14px; border: 0.5px solid var(--df-border); diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index f47bbaf..715bf7a 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -140,8 +140,8 @@ onMounted(() => { /* ═══ Responsive ═══ */ -/* 窄窗口:单栏 */ -@media (max-width: 900px) { +/* 窄窗口:单栏(与 AppLayout 768px 断点对齐) */ +@media (max-width: 768px) { .dashboard { padding: 12px 14px 16px; } .dash-grid { grid-template-columns: 1fr; } .dash-right { flex-direction: row; flex-wrap: wrap; gap: 10px; } diff --git a/src/views/Ideas.vue b/src/views/Ideas.vue index a0771c8..969323f 100644 --- a/src/views/Ideas.vue +++ b/src/views/Ideas.vue @@ -498,14 +498,11 @@ watch(() => route.params.id, (id) => { /* empty-state / empty-icon 已提取到 global.css 全局 */ /* ===== 响应式 ===== */ -@media (max-width: 900px) { +@media (max-width: 768px) { .ideas { padding: 16px; } .ideas-layout { grid-template-columns: 1fr; } - .filter-bar { - flex-wrap: wrap; - } .search-box { max-width: 100%; order: -1; diff --git a/src/views/ProjectDetail.vue b/src/views/ProjectDetail.vue index d904963..6b21a51 100644 --- a/src/views/ProjectDetail.vue +++ b/src/views/ProjectDetail.vue @@ -821,7 +821,7 @@ onUnmounted(() => { } /* ===== 响应式 ===== */ -@media (max-width: 900px) { +@media (max-width: 768px) { .project-detail { padding: 16px; } .detail-grid { grid-template-columns: 1fr; diff --git a/src/views/Projects.vue b/src/views/Projects.vue index 91013a4..f4affce 100644 --- a/src/views/Projects.vue +++ b/src/views/Projects.vue @@ -496,7 +496,7 @@ async function runImport() { .trash-actions { display: flex; gap: 8px; } /* ===== 响应式 ===== */ -@media (max-width: 900px) { +@media (max-width: 768px) { .projects { padding: 16px; } .project-grid { grid-template-columns: 1fr; diff --git a/src/views/Tasks.vue b/src/views/Tasks.vue index 71038d9..45fb794 100644 --- a/src/views/Tasks.vue +++ b/src/views/Tasks.vue @@ -458,6 +458,8 @@ onUnmounted(() => { /* 搜索框 */ .search-input { width: 220px; + max-width: 100%; + flex: 1 1 220px; padding: 6px 12px; border: 0.5px solid var(--df-border); border-radius: var(--df-radius-sm);