From 37e09a8edf9afb70342b68352329ce959f8ebda6 Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期三, 23 四月 2025 11:11:10 +0800
Subject: [PATCH] qx

---
 src/views/hosp/project/index.vue |  107 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 74 insertions(+), 33 deletions(-)

diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index 04c2fe4..0ae2020 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="tree1" 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>
@@ -228,6 +228,12 @@
         </el-form-item>
         <el-form-item label="鎺掑簭" prop="xh">
           <el-input v-model="form.xh" placeholder="璇疯緭鍏ユ帓搴�" style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="鏄惁鍙備笌寮傚父" prop="sfcyyc">
+          <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 260px">
+            <el-option v-for="dict in dictTypesy" :key="dict.value" :label="dict.label"
+              :value="dict.value"></el-option>
+          </el-select>
         </el-form-item>
       </el-form>
       <el-button style="margin-left: 40px" type="primary" plain size="mini" icon="el-icon-plus"
@@ -441,6 +447,16 @@
       },
       xmmc: "",
       chargeId: [],
+      dictTypesy: [
+        {
+          value:"0",
+          label:"鏄�"
+        },
+        {
+          value:"1",
+          label:"鍚�"
+        }
+      ],
       List: false,
       deptName: "",
       deptOption: [],
@@ -515,6 +531,7 @@
         proScope: "",
         proSex: "2",
         resultType: "",
+        sfcyyc: "0",
       },
       rules: {
         createTime: [
@@ -549,7 +566,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();
@@ -586,16 +603,25 @@
     });
   },
   methods: {
-    debounceFilter: debounce(function(val) {
-      this.$refs.tree.filter(val);
+    debounceFilter: debounce(function (val) {
+      this.$refs.tree1.filter(val);
     }, 300),
     precomputePinyin() {
       const traverse = (nodes) => {
         nodes.forEach(node => {
           if (node.label) {
-            const lowerSpell = node.label.spell('low', 'array').join('');
-            const upperSpell = node.label.spell('up', 'array').join('');
-            this.pinyinCache.set(node.id, { lowerSpell, upperSpell, label: node.label });
+            const lowerSpell = cnchar.spell(node.label, 'low', 'array').join(''); // 瀹屾暣灏忓啓鎷奸煶
+            const upperSpell = cnchar.spell(node.label, 'up', 'array').join('');  // 瀹屾暣澶у啓鎷奸煶
+            const shortPinyin = node.label
+              .split('')
+              .map(char => cnchar.spell(char, 'array')[0]?.[0]?.toLowerCase() || char) // 鎷奸煶棣栧瓧姣�
+              .join('');
+            this.pinyinCache.set(node.id, {
+              lowerSpell,
+              upperSpell,
+              shortPinyin, // 缂撳瓨鎷奸煶绠�鍐�
+              label: node.label
+            });
           }
           if (node.children) traverse(node.children);
         });
@@ -603,13 +629,14 @@
       traverse(this.deptOptions);
     },
     filterNode(value, data) {
-      if (!value) return true;
+      if (!value) return true; // 濡傛灉鎼滅储鍊间负绌猴紝杩斿洖鎵�鏈夎妭鐐�
       const cached = this.pinyinCache.get(data.id);
-      if (!cached) return false;
+      if (!cached) return false; // 濡傛灉娌℃湁缂撳瓨鏁版嵁锛屼笉鏄剧ず璇ヨ妭鐐�
+      const searchLower = value.toLowerCase(); // 灏嗘悳绱㈣瘝杞负灏忓啓
       return (
-        cached.label.includes(value) ||
-        cached.lowerSpell.includes(value) ||
-        cached.upperSpell.includes(value)
+        cached.label.includes(value) ||           // 鐩存帴鍖归厤姹夊瓧
+        cached.shortPinyin.includes(searchLower) || // 鍖归厤鎷奸煶绠�鍐�
+        cached.lowerSpell.includes(searchLower)   // 鍖归厤瀹屾暣鎷奸煶
       );
     },
     filterNode2(value, data) {
@@ -690,24 +717,24 @@
             this.form.proParentId = row.proId || 0;
             this.open = true;
           } else if (this.treeDate.id) {
-           if(this.treeDate.qf == "0"){
-            this.form.proParentId = "0"
-            this.form.deptId=this.treeDate.id
-           }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;
-                }
+            if (this.treeDate.qf == "0") {
+              this.form.proParentId = "0"
+              this.form.deptId = this.treeDate.id
+            } 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;
           }
         }
@@ -824,9 +851,9 @@
       });
     },
     handleNodeClick(date) {
-     
+
       this.treeDate = date;
-      console.log(this.treeDate)
+      this.xiugaiList ={}
       this.xiugais = date.qf === "0";
       let proId = date.id;
       getInfoByProId(proId).then((response) => {
@@ -861,6 +888,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() {
@@ -900,7 +932,7 @@
     resetQuery() {
       this.resetForm("queryForm");
       this.queryParams.proId = undefined;
-      this.$refs.tree.setCurrentKey(null);
+      this.$refs.tree1.setCurrentKey(null);
       this.handleQuery();
     },
     flexColumnWidth(column) {
@@ -971,8 +1003,10 @@
       }
     },
     handleUpdate1() {
+      this.form ={}
       this.form = this.xiugaiList;
       this.form.proStatus = this.form.proStatus.toString();
+      this.form.sfcyyc = this.form.sfcyyc.toString();
       this.proParent = true;
       this.isPriceDisabled = true;
       getlist().then((response) => {
@@ -983,6 +1017,7 @@
           project.children = this.handleTree(response.data.list, "proId");
           this.key = response.data.key;
           this.projectOptions.push(project);
+          console.log( this.projectOptions,11111)
         }
       });
       this.open = true;
@@ -998,6 +1033,7 @@
         this.showPrise = this.form.proParentId === "0";
         this.showRentPrise = !this.showPrise;
         this.form.proStatus = this.form.proStatus.toString();
+        this.form.sfcyyc = this.form.sfcyyc.toString();
         this.form.consumablesList = response.data.consumablesList;
         this.form.tjStandardList = response.data.tjStandardList;
         if (this.form.tjStandardList) {
@@ -1056,6 +1092,11 @@
             this.processSubmission(isUpdate, true);
           }
         }
+      });
+      this.deptName = "";
+      // 鎵嬪姩璋冪敤杩囨护鏂规硶锛堥渶绛夊緟 DOM 鏇存柊锛�
+      this.$nextTick(() => {
+        this.$refs.tree1.filter(this.deptName);
       });
     },
     processSubmission(isUpdate, isY) {
@@ -1116,7 +1157,7 @@
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     handleExport() {
       this.download(

--
Gitblit v1.8.0