优化: 界面交互完善与设置体验

- 审批卡尊重滚动意图,等长切换回底,排队超时按钮修活
- 带图编辑提示不静默丢,删除目标回写,切换文案消歧
- 会话键盘可达+搜索态重命名,筛选计数口径对齐
- 子任务提示正名,看板加载态
- 主题跟随系统,表单脏态拦截,密钥显隐留空提示
This commit is contained in:
lxy
2026-10-03 16:28:38 +08:00
parent 31f7a9570b
commit 3e3c6f4d0f
22 changed files with 294 additions and 12 deletions
+2
View File
@@ -43,6 +43,8 @@ export default {
queueTimedOut: 'Queue timed out',
approvalNotDelivered: 'Approval operation failed to reach the backend: {error}',
queuedSendFailed: 'Failed to send queued message: {error}',
// UX-P2-A2: toast when queued messages get dropped by error/regenerate/edit (was silent)
queueCleared: 'Cleared {n} queued message(s)',
approvalTimeout: '⚰ Approval timed out, automatically rejected: {toolName}',
// conversation load/switch failure feedback (network jitter/IPC down → empty list/blank, was silent)
loadConvFail: 'Failed to load conversations. Please check your network or backend connection.',
+8
View File
@@ -16,6 +16,8 @@ export default {
unarchive: 'Unarchive',
pinConversation: 'Pin',
unpinConversation: 'Unpin',
// UX走查 P3-1/P2-6: rename entry in the "..." menu (search-mode parity + keyboard reach)
renameConversation: 'Rename',
moreActions: 'More actions',
archived: 'Archived',
archivedCount: 'Archived ({n})',
@@ -36,6 +38,8 @@ export default {
maximize: 'Maximize',
pendingApprovalCount: '{n} pending',
pendingApprovalHint: 'Click to jump to the first pending approval',
// UX walkthrough B1: approval card arrived while user scrolled up; no forced scroll, hint only (5s dedup in ToolCardList)
newApprovalPending: 'New approval pending',
restoreSidebar: 'Restore sidebar',
sidebarResizeHint: 'Drag to resize sidebar',
detachWindow: 'Detach window',
@@ -60,6 +64,8 @@ export default {
// ── Provider status ──
clickToSwitchProvider: 'Click to switch provider',
// UX walkthrough B5: topbar switching shares the same IPC as Settings "set as default" (ai_set_provider rewrites is_default), label it honestly
providerSwitchSetsDefault: 'Click to switch provider (also sets it as the global default)',
providerNotConfigured: 'No AI provider configured. Please add one in settings.',
notConfigured: 'Not configured',
@@ -164,6 +170,8 @@ export default {
editMessage: 'Edit',
editMessageFailed: 'Edit failed: {msg}',
editNotLastUser: 'Only the last user message can be edited',
// UX walkthrough B3: editMessage IPC takes no parts; editing would silently drop images, block at entry
editImageBlocked: 'This message contains images and cannot be edited (regenerating would lose them)',
placeholderEditing: 'Edit message then Enter to regenerate (Esc to cancel)',
// ── Error bubble actions (UX-03 / ) ──
+4
View File
@@ -54,6 +54,10 @@ export default {
phProviderName: 'e.g. DeepSeek, GLM-4',
phBaseUrl: 'https://api.deepseek.com',
phApiKey: 'sk-...',
// UX-P2 walkthrough: API key show/hide toggle + "leave empty = keep" note
apiKeyShow: 'Show',
apiKeyHide: 'Hide',
apiKeyKeepHint: 'Leave empty while editing to keep the saved API key unchanged',
phDefaultModel: 'deepseek-chat',
// Direction A (lightweight): defaultModel is only a "suggested starting point";
// guide users to hit "Test connection" to pull the vendor's real model list and overwrite,
+2
View File
@@ -76,6 +76,8 @@ export default {
addSubtask: '+ Add Subtask',
progressTitle: 'Progress',
addSubtaskFailed: 'Failed to create subtask: {msg}',
// Subtask created (UX review P2-3): previously reused the batch-advance wording "Advanced N tasks"
subtaskCreated: 'Subtask created',
// P2-9 subtask hint
subtaskHint: 'This is a subtask of: {title}',
// P2-7 subtask creation validation
+2
View File
@@ -85,6 +85,8 @@ export default {
emptyColumn: 'No tasks',
dragHandle: 'Drag to move',
parentNoDrag: 'Parent status is aggregated from subtasks and cannot be dragged',
// Illegal transition rejected on drag (UX review P2-5): toast the reason when the card bounces back
illegalMove: 'Cannot move: transition from "{from}" to "{to}" is not allowed',
},
// New task modal
+2
View File
@@ -43,6 +43,8 @@ export default {
queueTimedOut: '排队超时',
approvalNotDelivered: '审批操作未送达后端:{error}',
queuedSendFailed: '队列消息发送失败:{error}',
// UX-P2-A2:出错/重生成/编辑清排队消息的 toast 提示(原静默丢弃无任何反馈)
queueCleared: '已清 {n} 条排队消息',
approvalTimeout: '⚰ 审批超时,已自动拒绝:{toolName}',
// 对话加载/切换失败反馈(网络抖动/IPC 断开 → 列表空/切换空白,原静默无反馈)
loadConvFail: '对话列表加载失败,请检查网络或后端连接',
+8
View File
@@ -16,6 +16,8 @@ export default {
unarchive: '取消归档',
pinConversation: '置顶',
unpinConversation: '取消置顶',
// UX走查 P3-1/P2-6: 会话「...」菜单重命名入口(搜索态无双击降级补齐 + 键盘可达的重命名路径)
renameConversation: '重命名',
moreActions: '更多操作',
archived: '已归档',
archivedCount: '已归档 ({n})',
@@ -36,6 +38,8 @@ export default {
maximize: '最大化',
pendingApprovalCount: '{n} 项待审批',
pendingApprovalHint: '点击跳转到第一个待审批项',
// UX 走查 B1:审批卡到达但用户上滚读历史,不强拉滚动,只出轻提示(ToolCardList 5s 去重)
newApprovalPending: '有新的审批待处理',
restoreSidebar: '还原侧栏',
sidebarResizeHint: '拖拽调整侧栏宽度',
detachWindow: '分离窗口',
@@ -60,6 +64,8 @@ export default {
// ── Provider 状态 ──
clickToSwitchProvider: '点击切换 Provider',
// UX 走查 B5:顶栏切换与设置页「设为默认」同一条 IPC(ai_set_provider 互斥写 is_default),文案如实标注
providerSwitchSetsDefault: '点击切换 Provider(切换即设为全局默认)',
providerNotConfigured: '未配置 AI 提供商,请在设置中添加',
notConfigured: '未配置',
@@ -165,6 +171,8 @@ export default {
editMessage: '编辑',
editMessageFailed: '编辑失败:{msg}',
editNotLastUser: '只能编辑最后一条用户消息',
// UX 走查 B3:editMessage IPC 不接 parts,编辑重发会静默丢图,入口禁止并提示
editImageBlocked: '该消息包含图片,暂不支持编辑(重新生成会丢失图片)',
placeholderEditing: '编辑消息后回车重新生成(Esc 取消)',
// ── 错误气泡操作入口(UX-03 / ) ──
+4
View File
@@ -54,6 +54,10 @@ export default {
phProviderName: '如 DeepSeek、GLM-4',
phBaseUrl: 'https://api.deepseek.com',
phApiKey: 'sk-...',
// 走查 P3-9:密钥显隐切换 + 编辑态「留空=不改」说明
apiKeyShow: '显示',
apiKeyHide: '隐藏',
apiKeyKeepHint: '编辑时留空表示沿用已保存的密钥,不会清空',
phDefaultModel: 'deepseek-chat',
// 方向 A(轻量):defaultModel 仅作"建议起点",引导用户点「测试连接」拉真实模型列表覆盖,
// 避免预设 model id 过时(DeepSeek chat 停用 / Gemini 2.5→3.5 等)误导。
+2
View File
@@ -76,6 +76,8 @@ export default {
addSubtask: '+ 添加子任务',
progressTitle: '完成进度',
addSubtaskFailed: '创建子任务失败: {msg}',
// 子任务创建成功(UX走查 P2-3):此前误复用批量推进文案「已推进 N 个任务」
subtaskCreated: '子任务已创建',
// P2-9 子任务提示
subtaskHint: '该任务为子任务,隶属于:{title}',
// P2-7 子任务创建校验
+2
View File
@@ -85,6 +85,8 @@ export default {
emptyColumn: '暂无任务',
dragHandle: '拖动以移动',
parentNoDrag: '父任务状态由子任务聚合,不能直接拖动',
// 拖拽非法流转被拒(UX走查 P2-5):卡片弹回时 toast 说明原因,不再静默
illegalMove: '无法移动:状态不允许从「{from}」流转到「{to}」',
},
// 新建任务模态