优化: 所有剩余UI/UX待办一批完成(持久化+AuditLog+解耦+total+原12大改+P2)

持久化(P1-c):新建 usePersistedRef composable,Tasks/AuditLog/ProjectDetail 等接入 localStorage

AuditLog(P1-d):后端 list_tool_executions 加 WHERE 筛选+返 {items,total,has_more},前端对接+长列折叠+筛选持久化

数据源解耦(P1-g):ProjectDetail projectTasks 按 project_id 独立加载 + ChatInput @项目联想独立加载(不读 store.tasks 当前页)

GitChanges(12a):后端 get_module_commits 加 git rev-list --count 返 total,前端显真实总数

原12大改:Dashboard 统计卡压底行(1)/Projects 列表卡片视图(2)/project_event 埋点排序(3)/TaskDetail 重设计(4)/IdeaDetail 重设计(5)/KnowledgeDetail 重设计(6)/界面持久化+侧栏Ctrl+B+审批数字键(7)/ProjectDetail 三栏改两栏(10)

P2打磨:文件浏览器(FileTree去重/FilePreview行号.md Diff/selectedFilePath归位)/settings反馈(假保存/端口校验)/AI会话(try-catch/scrollIntoView)/后端计数(move_queue事件/timeline total/workflow分页/import_batch分块)/杂项(TopBar/ConfirmDialog键盘/CIStatus i18n/ToolResultBody/ModuleNode/ApprovalDialog全选)
This commit is contained in:
lxy
2026-08-02 13:11:06 +08:00
parent caaabf0c15
commit f736f435bc
70 changed files with 2645 additions and 576 deletions
+5 -1
View File
@@ -67,8 +67,9 @@ export default {
fetchHintSaveFirst: 'Save the provider first, then fetch models',
labelWeight: 'Weight',
modelListTitle: 'Fetched models ({count})',
modelListHint: 'Enabled / weight are session-local edits; the next "Test connection" overwrites with fresh probe results',
modelListHint: 'After toggling enabled / weight, click "Save" below to write them into the provider config; the next "Test connection" overwrites with fresh probe results',
saveModels: 'Save model config',
modelListUnsavedHint: 'Model list has unsaved changes (enabled / weight) — closing or navigating away will discard them',
toastFetchOk: 'Fetched {count} models',
toastFetchFail: 'Fetch failed: {msg}',
fetchFailedTimeout: 'Fetch timed out, check that the Base URL is reachable: {msg}',
@@ -213,6 +214,8 @@ export default {
// ===== Toast =====
toastLoadProviderFail: 'Failed to load providers',
toastSaveIncomplete: 'Please fill in all fields (Name / Base URL / API Key / Model)',
// L19: confirm before discarding an edited form
confirmDiscardUnsaved: 'The form has unsaved changes. Discard them?',
toastSaved: 'Saved',
toastSaveFail: 'Save failed: {msg}',
// P0-2: save-failure classified guidance (persistent banner, not raw Err text)
@@ -225,6 +228,7 @@ export default {
toastSetDefaultOk: 'Set as default',
toastSetDefaultFail: 'Failed to set default: {msg}',
toastConnIncomplete: 'Please fill in Name and Host',
toastConnPortInvalid: 'Port must be between 1 and 65535',
// ===== Import / Export (phase 6) =====
export: 'Export',