feat: 完成全量功能开发,包括前端管理后台与后端服务优化

此提交实现了完整的知识库管理系统:
1. 新增Vue3 + Antd Vue前端管理后台,包含登录、文档管理、检索、类目设置等完整页面
2. 重构后端LLM调用抽象层,支持Ollama与OpenAI兼容服务动态切换
3. 调整默认嵌入模型配置为本地bge-m3模式
4. 优化入库任务去重逻辑与缓存清理机制
5. 完善Docker镜像构建与docker-compose部署配置
6. 修复多项测试用例与兼容性问题
7. 新增运行时配置API,支持动态调整系统参数
This commit is contained in:
2026-07-31 12:05:25 +08:00
parent fdb664e546
commit 2ab8b56a01
52 changed files with 7030 additions and 171 deletions
+66
View File
@@ -0,0 +1,66 @@
import { defineStore } from 'pinia'
const TOKEN_STORAGE_KEY = 'qmd_token'
const USER_STORAGE_KEY = 'qmd_user'
/**
* 从 localStorage 读取用户信息
* @returns {{username:string, role:string, created_at?:string} | null}
*/
function loadUserFromStorage() {
try {
const raw = localStorage.getItem(USER_STORAGE_KEY)
if (!raw) return null
const parsed = JSON.parse(raw)
if (parsed && typeof parsed === 'object' && parsed.username) {
return parsed
}
return null
} catch {
return null
}
}
export const useAuthStore = defineStore('auth', {
state: () => ({
token: localStorage.getItem(TOKEN_STORAGE_KEY) || '',
user: loadUserFromStorage()
}),
getters: {
isAuthenticated: (state) => Boolean(state.token),
isAdmin: (state) => state.user?.role === 'admin',
displayName: (state) => {
if (!state.user) return ''
return `${state.user.username} (${state.user.role})`
}
},
actions: {
/**
* 登录成功后保存 token + user
* @param {{access_token:string, user:object}} data
*/
setAuth(data) {
this.token = data.access_token
this.user = data.user
localStorage.setItem(TOKEN_STORAGE_KEY, data.access_token)
localStorage.setItem(USER_STORAGE_KEY, JSON.stringify(data.user))
},
/** 清除登录态(登出 / 401) */
clearAuth() {
this.token = ''
this.user = null
localStorage.removeItem(TOKEN_STORAGE_KEY)
localStorage.removeItem(USER_STORAGE_KEY)
},
/**
* 登出
*/
logout() {
this.clearAuth()
}
}
})