From 514146014586aa8b98d667edbaf0d6897186173d Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期五, 11 四月 2025 15:55:43 +0800
Subject: [PATCH] qx

---
 src/views/hosp/project/index.vue |  120 +++++++++++++++++++++++++++---------------------------------
 1 files changed, 54 insertions(+), 66 deletions(-)

diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index e0f0ba6..e11fe23 100644
--- a/src/views/hosp/project/index.vue
+++ b/src/views/hosp/project/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-row :gutter="20">
-      <el-col :span="3" :xs="24">
+      <el-col :span="4" :xs="24">
         <div class="head-container">
           <el-input v-model="deptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" clearable size="small" prefix-icon="el-icon-search"
             style="margin-bottom: 15px" />
@@ -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="tree1" node-key="id" :default-expanded-keys="treeId"
+              highlight-current @node-click="handleNodeClick" :render-content="renderContent" v-loading="loadings" />
           </div>
         </div>
       </el-col>
@@ -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="淇敼1"></el-button>
+                v-hasPermi="['hosp:project:edit']" title="淇敼"></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)"
@@ -542,6 +542,7 @@
   watch: {
     deptName(val) {
       this.debounceFilter(val);
+     
     },
     treeId(newVal) {
       if (newVal && newVal.length > 0) {
@@ -549,7 +550,7 @@
           const lastId = newVal[newVal.length - 1] || "532";
           const node = this.findNodeById(this.deptOptions, lastId);
           if (node) {
-            this.$refs.tree.setCurrentKey(lastId);
+            this.$refs.tree1.setCurrentKey(lastId);
             const nodeElement = document.querySelector(`.el-tree-node[data-key="${lastId}"] .el-tree-node__content`);
             if (nodeElement) {
               nodeElement.click();
@@ -587,7 +588,7 @@
   },
   methods: {
     debounceFilter: debounce(function (val) {
-      this.$refs.tree.filter(val);
+      this.$refs.tree1.filter(val);
     }, 300),
     precomputePinyin() {
       const traverse = (nodes) => {
@@ -603,6 +604,7 @@
       traverse(this.deptOptions);
     },
     filterNode(value, data) {
+      console.log(value, data,2233)
       if (!value) return true;
       const cached = this.pinyinCache.get(data.id);
       if (!cached) return false;
@@ -692,13 +694,7 @@
           } 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;
-                  }
-                });
-              });
+              this.form.deptId = this.treeDate.id
             } else {
               this.form.proParentId = this.treeDate.id;
               this.projectOptions.forEach((item) => {
@@ -735,9 +731,12 @@
       } else if (this.form.proParentId) {
         if (this.form.proParentId != 0) {
           this.dialogTableVisible = true;
-          this.$nextTick(() => {
-            this.chargeId.push(this.deptOptionstree[0].id);
-          });
+          if (this.deptOptionstree.length != 0) {
+            this.$nextTick(() => {
+              this.chargeId.push(this.deptOptionstree[0].id);
+            });
+          }
+
           this.getlistSfxm();
         } else {
           this.dialogTableVisible = false;
@@ -829,56 +828,31 @@
         this.treeId.push(this.treeDate.id);
       });
     },
-    handleNodeClick(date, node) {
-  // 褰� qf 涓� "0" 鏃讹紝浠呮墽琛屽睍寮�/鎶樺彔鎿嶄綔
-  if (date.qf === "0") {
-    if (node.expanded) {
-      node.collapse(); // 鎶樺彔鑺傜偣
-    } else {
-      node.expand(); // 灞曞紑鑺傜偣
-    }
-    return; // 鐩存帴杩斿洖锛屼笉鎵ц鍚庣画鎿嶄綔
-  }
+    handleNodeClick(date) {
 
-  // 浠ヤ笅閫昏緫浠呭湪 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;
-    });
-},
+      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;
+        }
+      });
+    },
     toggleExpandAll() {
       this.refreshTable = false;
       this.isExpandAll = !this.isExpandAll;
@@ -892,6 +866,11 @@
       let data = { proId: this.queryParams.proId };
       getAllChildListById(data).then(() => {
         this.loading = false;
+      });
+      this.deptName = "";
+      // 鎵嬪姩璋冪敤杩囨护鏂规硶锛堥渶绛夊緟 DOM 鏇存柊锛�
+      this.$nextTick(() => {
+        this.$refs.tree1.filter(this.deptName);
       });
     },
     handleClose() {
@@ -931,7 +910,7 @@
     resetQuery() {
       this.resetForm("queryForm");
       this.queryParams.proId = undefined;
-      this.$refs.tree.setCurrentKey(null);
+      this.$refs.tree1.setCurrentKey(null);
       this.handleQuery();
     },
     flexColumnWidth(column) {
@@ -1088,6 +1067,11 @@
           }
         }
       });
+      this.deptName = "";
+      // 鎵嬪姩璋冪敤杩囨护鏂规硶锛堥渶绛夊緟 DOM 鏇存柊锛�
+      this.$nextTick(() => {
+        this.$refs.tree1.filter(this.deptName);
+      });
     },
     processSubmission(isUpdate, isY) {
       if (isUpdate) {
@@ -1130,6 +1114,10 @@
         this.sfxmId = parseInt(item.id);
       });
       this.dialogTableVisible = false;
+       this.getDeptList();
+    this.getDeptTree().then(() => {
+      this.precomputePinyin();
+    });
     },
     handleDelete(row) {
       const proIds = row.proId || this.ids;

--
Gitblit v1.8.0