From 555fcaad3cc1274de67752321d454cc057ef3208 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期二, 18 三月 2025 14:54:39 +0800
Subject: [PATCH] 1

---
 src/views/hosp/project/index.vue |  127 +++++++++++++++++++++++++-----------------
 1 files changed, 76 insertions(+), 51 deletions(-)

diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index 0e6a6a9..e0f0ba6 100644
--- a/src/views/hosp/project/index.vue
+++ b/src/views/hosp/project/index.vue
@@ -9,8 +9,8 @@
         <div class="scrollable-container">
           <div class="content">
             <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
-              :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId"  
-              highlight-current @node-click="handleNodeClick" :render-content="renderContent" v-loading="loadings"/>
+  :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId"
+  highlight-current @node-click="handleNodeClick" :render-content="renderContent" v-loading="loadings" />
           </div>
         </div>
       </el-col>
@@ -79,7 +79,7 @@
           </el-table-column>
           <el-table-column label="椤圭洰鏍囧噯鍊�" align="center" prop="proScope" :show-overflow-tooltip="true" width="90px">
           </el-table-column>
-          <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc"  :show-overflow-tooltip="true" width="200px">
+          <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc" :show-overflow-tooltip="true" width="200px">
           </el-table-column>
           <el-table-column label="Lis缂栫爜" align="center" prop="lisXmbm" :show-overflow-tooltip="true" width="90px">
           </el-table-column>
@@ -94,7 +94,7 @@
           <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="80px">
             <template slot-scope="scope">
               <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-                v-hasPermi="['hosp:project:edit']" title="淇敼"></el-button>
+                v-hasPermi="['hosp:project:edit']" title="淇敼1"></el-button>
               <el-button v-if="scope.row.proParentId == '0'" size="mini" type="text" icon="el-icon-plus"
                 @click="handleAdd(scope.row)" v-hasPermi="['system:dept:add']" title="澧炲姞"></el-button>
               <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -586,7 +586,7 @@
     });
   },
   methods: {
-    debounceFilter: debounce(function(val) {
+    debounceFilter: debounce(function (val) {
       this.$refs.tree.filter(val);
     }, 300),
     precomputePinyin() {
@@ -690,30 +690,30 @@
             this.form.proParentId = row.proId || 0;
             this.open = true;
           } else if (this.treeDate.id) {
-           if(this.treeDate.qf == "0"){
-            this.form.proParentId = "0"
-            this.projectOptions.forEach((item) => {
-              item.children.forEach((item1) => {
-                if (this.treeDate.id == item1.deptId) {
-                  this.form.deptId = item1.deptId;
-                }
+            if (this.treeDate.qf == "0") {
+              this.form.proParentId = "0"
+              this.projectOptions.forEach((item) => {
+                item.children.forEach((item1) => {
+                  if (this.treeDate.id == item1.deptId) {
+                    this.form.deptId = item1.deptId;
+                  }
+                });
               });
-            });
-           }else{
-            this.form.proParentId = this.treeDate.id;
-            this.projectOptions.forEach((item) => {
-              item.children.forEach((item1) => {
-                if (this.form.proParentId == item1.proId) {
-                  this.form.deptId = item1.deptId;
-                }
+            } else {
+              this.form.proParentId = this.treeDate.id;
+              this.projectOptions.forEach((item) => {
+                item.children.forEach((item1) => {
+                  if (this.form.proParentId == item1.proId) {
+                    this.form.deptId = item1.deptId;
+                  }
+                });
               });
-            });
-           }
-            
-           
+            }
+
+
             this.open = true;
           } else {
-             this.form.proParentId = "0"
+            this.form.proParentId = "0"
             this.open = true;
           }
         }
@@ -829,31 +829,56 @@
         this.treeId.push(this.treeDate.id);
       });
     },
-    handleNodeClick(date) {
-     
-      this.treeDate = date;
-      console.log(this.treeDate)
-      this.xiugais = date.qf === "0";
-      let proId = date.id;
-      getInfoByProId(proId).then((response) => {
-        this.xiugaiList = response.data;
-      });
-      this.id = date.id;
-      this.queryParams.proId = date.id;
-      let data = {
-        proId: this.queryParams.proId,
-        proName: this.queryParams.proName,
-      };
-      this.loading = true;
-      getAllChildListById(data).then((response) => {
-        if (response.code == 200) {
-          this.projectList = response.data.list.length >= 1 ? this.handleTree(response.data.list, "proId") : [];
-          this.ListId = this.projectList.length ? [this.projectList[0].proId] : [];
-          this.key = response.data.key;
-          this.loading = false;
-        }
-      });
-    },
+    handleNodeClick(date, node) {
+  // 褰� qf 涓� "0" 鏃讹紝浠呮墽琛屽睍寮�/鎶樺彔鎿嶄綔
+  if (date.qf === "0") {
+    if (node.expanded) {
+      node.collapse(); // 鎶樺彔鑺傜偣
+    } else {
+      node.expand(); // 灞曞紑鑺傜偣
+    }
+    return; // 鐩存帴杩斿洖锛屼笉鎵ц鍚庣画鎿嶄綔
+  }
+
+  // 浠ヤ笅閫昏緫浠呭湪 qf 涓嶄负 "0" 鏃舵墽琛�
+  this.treeDate = date;
+  console.log('Selected node:', this.treeDate);
+
+  this.id = date.id;
+  this.queryParams.proId = this.id;
+  this.xiugais = date.qf === "0";
+  let data = {
+    proId: this.queryParams.proId,
+    proName: this.queryParams.proName || '',
+  };
+
+  this.loading = true;
+  getInfoByProId(this.id)
+    .then((response) => {
+      this.xiugaiList = response.data;
+    })
+    .catch((error) => {
+      console.error('Failed to get info by proId:', error);
+      this.$message.error('鑾峰彇鏁版嵁澶辫触');
+    });
+
+  getAllChildListById(data)
+    .then((response) => {
+      if (response.code === 200) {
+        this.projectList = response.data.list.length >= 1 ? this.handleTree(response.data.list, "proId") : [];
+        this.ListId = this.projectList.length && this.projectList[0]?.proId ? [this.projectList[0].proId] : [];
+        this.key = response.data.key;
+        this.getList();
+      }
+    })
+    .catch((error) => {
+      console.error('Failed to get all child list:', error);
+      this.$message.error('鍔犺浇鍒楄〃澶辫触');
+    })
+    .finally(() => {
+      this.loading = false;
+    });
+},
     toggleExpandAll() {
       this.refreshTable = false;
       this.isExpandAll = !this.isExpandAll;
@@ -1122,7 +1147,7 @@
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     handleExport() {
       this.download(

--
Gitblit v1.8.0