77681 1 өдөр өмнө
parent
commit
323053a112

+ 3 - 3
gw-slgc/src/main/java/com/goldenwater/web/controller/pms/PmsAddProjectController.java

@@ -67,8 +67,8 @@ public class PmsAddProjectController extends BaseController {
                     case "1": // 直管工程 — 多级目录结构
                         createNestedStructure(rootFolder.getId(), fdCate, "1");
                         break;
-                    case "2": // 重点工程
-                        createFlatStructure(rootFolder.getId(), fdCate, "工程概况", "监督检查", "工程验收");
+                    case "2": // 重点工程 — 多级目录结构(与直管工程一致)
+                        createNestedStructure(rootFolder.getId(), fdCate, "2");
                         break;
                     case "3": // 规章制度
                         createFlatStructure(rootFolder.getId(), fdCate, "制度概况");
@@ -112,7 +112,7 @@ public class PmsAddProjectController extends BaseController {
 
     /** 创建多级目录结构 */
     private void createNestedStructure(Long rootPid, String fdCate, String type) {
-        if ("1".equals(type)) {
+        if ("1".equals(type) || "2".equals(type)) {
             // 一、工程概况
             DocFolder f1 = insertFolder(rootPid, "一、工程概况", fdCate);
             insertFolder(f1.getId(), "项目简介", fdCate);

+ 16 - 1
gw-ui/src/views/portal/portalDetail.vue

@@ -231,9 +231,24 @@ function filterNode(value, data) {
 const treeCache = new Map()
 const folderFlatList = ref([])
 
-// 找到当前节点所属的顶层工程根节点
+// 找到当前节点所属的工程根节点
+// 直管工程(zggc):工程为顶层(pid=0),向上追到 pid=0 即为工程
+// 重点工程(zdgc):分类(pid=0) > 工程 > 目录,树根应为工程本身,不能追到分类
 function findProjectRoot(list, folderId) {
   let current = list.find(f => f.id === folderId)
+  if (!current) return folderId
+  if (fdCate.value === 'zdgc') {
+    // 从当前节点向上,遇到"父节点是分类"时,当前节点即为工程根
+    while (current && current.pid) {
+      const parent = list.find(f => f.id === current.pid)
+      if (!parent) break
+      if (parent.pid === 0 || parent.pid == null) {
+        return current.id
+      }
+      current = parent
+    }
+    return current ? current.id : folderId
+  }
   while (current && current.pid) {
     current = list.find(f => f.id === current.pid)
   }