From 4cd86d97bde9b7b900d93342c116f721f37ad475 Mon Sep 17 00:00:00 2001 From: silk Date: Sun, 31 May 2026 10:59:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=83=E9=99=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-frontend/src/router/index.js | 2 + admin-frontend/src/views/AuditLog.vue | 173 +++++ admin-frontend/src/views/Departments.vue | 272 ++++++- admin-frontend/src/views/Enterprise.vue | 4 +- admin-frontend/src/views/Layout.vue | 3 + admin-frontend/src/views/Users.vue | 65 +- backend/.env.example | 2 +- backend/admin/router.py | 118 +++ backend/admin/schemas.py | 55 +- backend/api/kb_file_router.py | 107 ++- backend/api/team_router.py | 196 +++++ backend/core/main.py | 4 + backend/core/permissions.py | 125 +++- backend/models/user.py | 1 + backend/seed_test_data.py | 444 ++++++++++++ backend/services/admin_user_service.py | 13 +- backend/services/audit_service.py | 155 ++++ backend/services/department_service.py | 57 +- .../services/knowledge_base_file_service.py | 159 ++--- frontend/src/components/AppSidebarNav.vue | 20 + frontend/src/router/index.js | 6 + frontend/src/views/KnowledgeBase.vue | 47 +- frontend/src/views/TeamManagement.vue | 363 ++++++++++ sql.txt | 675 ++++++++++++++++++ update-ddl.txt | 73 ++ 权限.html | 277 +++++++ 26 files changed, 3249 insertions(+), 167 deletions(-) create mode 100644 admin-frontend/src/views/AuditLog.vue create mode 100644 backend/api/team_router.py create mode 100644 backend/seed_test_data.py create mode 100644 backend/services/audit_service.py create mode 100644 frontend/src/views/TeamManagement.vue create mode 100644 sql.txt create mode 100644 update-ddl.txt create mode 100644 权限.html diff --git a/admin-frontend/src/router/index.js b/admin-frontend/src/router/index.js index 0bad2db..0f3a295 100644 --- a/admin-frontend/src/router/index.js +++ b/admin-frontend/src/router/index.js @@ -4,6 +4,7 @@ import Layout from "../views/Layout.vue"; import Enterprise from "../views/Enterprise.vue"; import Departments from "../views/Departments.vue"; import Users from "../views/Users.vue"; +import AuditLog from "../views/AuditLog.vue"; const routes = [ { path: "/login", name: "login", component: Login, meta: { public: true } }, @@ -15,6 +16,7 @@ const routes = [ { path: "enterprise", name: "enterprise", component: Enterprise }, { path: "departments", name: "departments", component: Departments }, { path: "users", name: "users", component: Users }, + { path: "audit-logs", name: "audit-logs", component: AuditLog }, ], }, ]; diff --git a/admin-frontend/src/views/AuditLog.vue b/admin-frontend/src/views/AuditLog.vue new file mode 100644 index 0000000..602ea2c --- /dev/null +++ b/admin-frontend/src/views/AuditLog.vue @@ -0,0 +1,173 @@ + + + diff --git a/admin-frontend/src/views/Departments.vue b/admin-frontend/src/views/Departments.vue index 993075b..56105d2 100644 --- a/admin-frontend/src/views/Departments.vue +++ b/admin-frontend/src/views/Departments.vue @@ -1,54 +1,209 @@ diff --git a/admin-frontend/src/views/Enterprise.vue b/admin-frontend/src/views/Enterprise.vue index e065be5..7681089 100644 --- a/admin-frontend/src/views/Enterprise.vue +++ b/admin-frontend/src/views/Enterprise.vue @@ -37,9 +37,9 @@ async function load() { error.value = ""; try { const { data } = await http.get("/admin/enterprise"); - const d = data.data || data; + const d = data?.data ?? data; name.value = d.name || ""; - aiDisplayName.value = d.ai_display_name || "只能助手 AI"; + aiDisplayName.value = d.ai_display_name || "智能助手 AI"; code.value = d.code || ""; } catch (e) { error.value = e.response?.data?.detail || e.message; diff --git a/admin-frontend/src/views/Layout.vue b/admin-frontend/src/views/Layout.vue index 30a9c4a..50a2986 100644 --- a/admin-frontend/src/views/Layout.vue +++ b/admin-frontend/src/views/Layout.vue @@ -12,6 +12,9 @@ + diff --git a/admin-frontend/src/views/Users.vue b/admin-frontend/src/views/Users.vue index 4a3ab5d..dce5e77 100644 --- a/admin-frontend/src/views/Users.vue +++ b/admin-frontend/src/views/Users.vue @@ -81,10 +81,12 @@ ID 用户名 邮箱 + 手机号 显示名 角色 部门 状态 + 上传权限 操作 @@ -93,6 +95,7 @@ {{ u.id }} {{ u.username }} {{ u.email }} + {{ u.phone || "—" }} {{ u.display_name || "—" }} {{ roleLabel(u.role) }} {{ deptLabel(u.department_id) }} @@ -101,6 +104,17 @@ {{ u.is_active ? "正常" : "已禁用" }} + + +