From a125164103bd5ea2981da4f70376fc30dc7496e6 Mon Sep 17 00:00:00 2001 From: GouJ Date: Wed, 2 Sep 2026 10:03:10 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E7=B2=BE=E7=AE=80=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E5=B9=B6=E4=BC=98=E5=8C=96=E5=88=86=E9=95=9C?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F=E4=B8=8E=E5=88=86=E9=9A=94=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + src/admin.css | 45 ++++++ src/components/ui/ThemeToggle.vue | 25 ++- src/components/ui/flatTheme.test.ts | 2 +- src/components/ui/layout.test.ts | 5 +- src/composables/useTheme.test.ts | 8 +- src/composables/useTheme.ts | 2 +- src/features/breakdown/BreakdownPage.test.ts | 59 ++++++++ src/features/breakdown/BreakdownPage.vue | 13 +- .../breakdown/components/StoryboardList.vue | 142 +++++++++--------- 10 files changed, 205 insertions(+), 98 deletions(-) diff --git a/README.md b/README.md index 80efa0c..82a7529 100644 --- a/README.md +++ b/README.md @@ -103,12 +103,14 @@ Oxfmt 不负责代码质量,Oxlint 不负责 Vue 的完整类型推导;Vue S - 身份、分镜、生产与图库的批量配置、说明和诊断统一放入 `WorkspaceTools`(Naive UI Drawer),按需覆盖当前工作区,不挤压列表。面板支持 Esc 或关闭按钮;关闭不会取消任务或清除配置。历史回执可从入口查看,新回执主动打开诊断;查询错误始终在外层可见。 - 生产步骤的操作按钮保留上下间距;`ConfirmAction` 用稳定根元素承接外部间距,避免多根弹窗组件吞掉 `class`。 - 右上角主题入口以太阳/月亮/显示器图标显示当前偏好,点击选择浅色、暗黑或跟随系统。默认跟随系统,选择保存在本机浏览器;存储被禁用时仍可在当前会话切换。后端连接设置固定在左侧导航底部,折叠时仅显示图标,导航菜单独立滚动。 +- 主题按钮仅在点击时展开模式菜单,不再显示悬浮提示;保留屏幕阅读器名称。浅色 Tabs 分隔线使用 `#dadada`,暗黑模式继续使用深灰分隔线。 - 实心绿色按钮采用白色文字,正常/悬停/按下底色分别调整以保证可读性;禁用按钮为灰底灰字,保留原生 disabled 行为。分镜与生产页的剧集选择器不重复显示“剧集”前缀,保留可访问名称。 - 绿色选中复选框使用白色对勾;批量配置中的复选框与中号输入框共用 34px 控件行并垂直居中。浅色输入框按所在区域使用白底或浅灰底,与页面/抽屉或白色面板区分;聚焦与禁用反馈继续保留。 - 采用微信风格配色:浅色为浅灰背景与白色内容,暗色为近黑背景与深灰内容;绿色用于主操作、选中态和进度。按钮文字、目录文字与主绿色分别配置以保证对比度,错误/警告仍使用独立语义色。Naive UI 和业务内容共用主题,浏览器主题色随之切换;加载前应用偏好,减少主题闪烁。 - 全站采用低边框、直角样式:面板、提示框、标签、图片卡片和表单用背景层次代替静态描边;表格与长记录列表使用交替底色,抽屉用灰底承托内容。保留输入框聚焦/校验反馈、复选框、选中指示和必要的浮层阴影;开关、加载等功能图形不强制改形状。 - Tabs 例外保留底部分隔线,浅色和暗黑模式均区分导航与正文;选中下划线仍使用绿色。视觉风格工具栏将“图标+状态说明”与等高操作按钮分组,读取失败不再显示为“尚未创建”,锁定与未保存草稿的生成限制不变。 - 剧本正文的执行记录/导出/进入拆解,以及拆解结果的 JSON 导出统一放在 `NTabs` 的 `suffix` 插槽,与标签垂直居中并共用底线。浅色 Tabs 分隔线单独加深,不影响其它组件的低边框风格;窄内容区由容器断点把操作放到下一行,标签仍使用内置横向滚动。 +- 拆解分镜区的剧集选择、节拍/镜头统计与“进入分镜设计”共用一条紧凑工具栏;“选择剧集”不拆行。选择器默认显示正文对应的真实剧集,轮询移除当前剧集时同步回退;没有剧情目标与情绪弧线时不保留空信息面板。 - 窄屏默认收起侧栏,目录与正文改用紧凑布局;执行记录仍可查看。长弹窗在自身内部滚动。 布局样式集中在 `src/admin.css`,业务排版保留在 `src/styles.css`。新增页面应使用 `WorkspacePage`(内容优先页开启 `compact`),低频操作使用 `WorkspaceTools`;避免通过 `body` 或 `window.scrollTo` 管理滚动。 diff --git a/src/admin.css b/src/admin.css index 48ac41c..186cbd9 100644 --- a/src/admin.css +++ b/src/admin.css @@ -851,6 +851,51 @@ body { .breakdown-results-scroll .n-scrollbar-content { overflow-wrap: anywhere; } +/* 剧集选择、统计和下一步入口共用一行,避免空操作行与双层顶部留白。 */ +.breakdown-storyboard { + padding: 16px 20px 20px; +} +.breakdown-storyboard-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 12px 24px; + margin-bottom: 16px; +} +.breakdown-episode-picker { + display: flex; + align-items: center; + gap: 12px; + flex: 0 1 420px; + min-width: 0; + font-size: 14px; +} +.breakdown-episode-picker > span { + flex-shrink: 0; + white-space: nowrap; +} +.breakdown-episode-picker .n-select { + flex: 1; + min-width: 0; +} +.breakdown-storyboard-summary { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px 20px; + min-height: 34px; + margin-left: auto; +} +.breakdown-storyboard-count { + color: var(--app-muted); + font-size: 12px; + white-space: nowrap; +} +.breakdown-storyboard-summary .text-button { + min-height: 34px; + white-space: nowrap; +} /* 连续阅读区保留双栏,执行记录按需展开,不挤占默认阅读宽度。 */ .script-section .n-tabs-tab__label { display: inline-flex; diff --git a/src/components/ui/ThemeToggle.vue b/src/components/ui/ThemeToggle.vue index 46c87f5..04580b5 100644 --- a/src/components/ui/ThemeToggle.vue +++ b/src/components/ui/ThemeToggle.vue @@ -1,6 +1,6 @@