From 8430eb509cdd4c86db19eefe8cffb73f6372d9e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com>
Date: Thu, 30 Oct 2025 17:34:32 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86tabs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 pc/src/components/CommonAside.vue             | 443 +++++++++---------
 pc/src/stores/index.js                        | 106 ++++-
 pc/src/views/Main.vue                         | 176 ++++++-
 pc/src/views/apps/knowledge/category/edit.vue |   0
 .../views/apps/knowledge/category/index.vue   |  13 +
 pc/src/views/apps/knowledge/index.vue         |  38 +-
 pc/src/views/apps/knowledge/tag/edit.vue      |   0
 pc/src/views/apps/knowledge/tag/index.vue     |   0
 pc/src/views/system/menus/manager.vue         |  11 +-
 server/controllers/knowledge.go               |   2 +-
 server/controllers/menu.go                    |   2 +-
 server/models/knowledge.go                    |   2 +-
 12 files changed, 522 insertions(+), 271 deletions(-)
 create mode 100644 pc/src/views/apps/knowledge/category/edit.vue
 create mode 100644 pc/src/views/apps/knowledge/category/index.vue
 create mode 100644 pc/src/views/apps/knowledge/tag/edit.vue
 create mode 100644 pc/src/views/apps/knowledge/tag/index.vue
diff --git a/pc/src/components/CommonAside.vue b/pc/src/components/CommonAside.vue
index 3128a70..10ebd09 100644
--- a/pc/src/components/CommonAside.vue
+++ b/pc/src/components/CommonAside.vue
@@ -46,194 +46,202 @@
   
 
 
-
 
 
diff --git a/pc/src/views/apps/knowledge/category/edit.vue b/pc/src/views/apps/knowledge/category/edit.vue
new file mode 100644
index 0000000..e69de29
diff --git a/pc/src/views/apps/knowledge/category/index.vue b/pc/src/views/apps/knowledge/category/index.vue
new file mode 100644
index 0000000..65d7a47
--- /dev/null
+++ b/pc/src/views/apps/knowledge/category/index.vue
@@ -0,0 +1,13 @@
+
+    
+123
+    
+
+
+
+
+
\ No newline at end of file
diff --git a/pc/src/views/apps/knowledge/index.vue b/pc/src/views/apps/knowledge/index.vue
index 325b7b8..bb36c1d 100644
--- a/pc/src/views/apps/knowledge/index.vue
+++ b/pc/src/views/apps/knowledge/index.vue
@@ -67,10 +67,20 @@
     
       
 
       
@@ -286,7 +296,7 @@ async function fetchRepoList() {
       repoList.value = result.list || result.data?.list || [];
       total.value = result.total || result.data?.total || 0;
     }
-    
+
     // 更新统计数据(避免重复调用 API)
     updateStats();
   } catch (error: any) {
@@ -314,6 +324,16 @@ function handleEdit(repo: Knowledge) {
   router.push(`/apps/knowledge/edit/${repo.id}`);
 }
 
+function handleCategory() {
+  // 跳转到分类管理页面,使用路径跳转
+  router.push(`/apps/knowledge/category`);
+}
+
+function handleTags() {
+  // 跳转到标签管理页面,使用路径跳转
+  router.push(`/apps/knowledge/tags`);
+}
+
 function handleDelete(repo: Knowledge) {
   ElMessageBox.confirm(`确认删除知识「${repo.title}」?`, "提示", {
     confirmButtonText: "确定",
@@ -457,7 +477,7 @@ onMounted(() => {
   .search-input {
     flex: 1;
 
-    :deep(.el-input__wrapper){
+    :deep(.el-input__wrapper) {
       border: none !important;
     }
 
@@ -706,7 +726,8 @@ onMounted(() => {
             color: var(--primary-color);
             border-color: var(--border-color);
             font-weight: 500;
-            transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
+            transition: background-color 0.3s ease, color 0.3s ease,
+              border-color 0.3s ease;
           }
 
           .repo-owner {
@@ -744,7 +765,8 @@ onMounted(() => {
           border-color: var(--border-color-lighter);
           font-size: 12px;
           padding: 4px 12px;
-          transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
+          transition: background-color 0.3s ease, color 0.3s ease,
+            border-color 0.3s ease;
         }
       }
 
diff --git a/pc/src/views/apps/knowledge/tag/edit.vue b/pc/src/views/apps/knowledge/tag/edit.vue
new file mode 100644
index 0000000..e69de29
diff --git a/pc/src/views/apps/knowledge/tag/index.vue b/pc/src/views/apps/knowledge/tag/index.vue
new file mode 100644
index 0000000..e69de29
diff --git a/pc/src/views/system/menus/manager.vue b/pc/src/views/system/menus/manager.vue
index 71c44af..31d20f6 100644
--- a/pc/src/views/system/menus/manager.vue
+++ b/pc/src/views/system/menus/manager.vue
@@ -145,7 +145,7 @@
         >
           
         
 
@@ -440,10 +440,15 @@ const saveMenu = async () => {
   const valid = await menuFormRef.value.validate();
   if (!valid) return;
 
+  // 解决后端时间字段问题:过滤掉 CreateTime/UpdateTime
+  const payload = { ...currentMenu.value };
+  delete payload.CreateTime;
+  delete payload.UpdateTime;
+
   try {
     if (currentMenu.value.Id === 0) {
       // 新增菜单
-      const result = await createMenu(currentMenu.value as Menu);
+      const result = await createMenu(payload as Menu);
       if (result.success) {
         ElMessage.success("菜单添加成功");
         dialogVisible.value = false;
@@ -455,7 +460,7 @@ const saveMenu = async () => {
       // 编辑菜单
       const result = await updateMenu(
         currentMenu.value.Id!,
-        currentMenu.value as Menu
+        payload as Menu
       );
       if (result.success) {
         ElMessage.success("更新成功");
diff --git a/server/controllers/knowledge.go b/server/controllers/knowledge.go
index 1158d18..d58a834 100644
--- a/server/controllers/knowledge.go
+++ b/server/controllers/knowledge.go
@@ -167,7 +167,7 @@ func (c *KnowledgeController) Update() {
 	c.Data["json"] = map[string]interface{}{
 		"code":    0,
 		"message": "更新成功",
-		"data":    nil,
+		// "data":    nil,
 	}
 	c.ServeJSON()
 }
diff --git a/server/controllers/menu.go b/server/controllers/menu.go
index f1975a3..f80e57a 100644
--- a/server/controllers/menu.go
+++ b/server/controllers/menu.go
@@ -105,7 +105,7 @@ func (c *MenuController) UpdateMenu() {
 		c.Data["json"] = map[string]interface{}{
 			"success": true,
 			"message": "更新菜单成功",
-			"data":    menu,
+			// "data":    menu,
 		}
 	}
 
diff --git a/server/models/knowledge.go b/server/models/knowledge.go
index 4006959..bb2390f 100644
--- a/server/models/knowledge.go
+++ b/server/models/knowledge.go
@@ -248,7 +248,7 @@ func UpdateKnowledge(id int, k *Knowledge) error {
 		return err
 	}
 
-	// 更新字段(不包含category_name,因为它是从联查获取的)
+	// 更新字段
 	knowledge.Title = k.Title
 	knowledge.CategoryId = k.CategoryId
 	knowledge.Tags = k.Tags