From 2781142ab67deba83925da706ca26b7f8ea1a759 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 04 九月 2025 15:42:24 +0800
Subject: [PATCH] 审批用户列表改为树形

---
 src/views/wel/gongkong.vue |   69 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 9 deletions(-)

diff --git a/src/views/wel/gongkong.vue b/src/views/wel/gongkong.vue
index 88e8eac..1d39320 100644
--- a/src/views/wel/gongkong.vue
+++ b/src/views/wel/gongkong.vue
@@ -8,8 +8,23 @@
 -->
 <template>
   <div class="gongkongMain">
-    <div>
-      <el-tree :data="treeData" :props="defaultProps" node-key="id" :default-expand-all="false" :default-expanded-keys="defaultKeys" @node-click="handleNodeClick" />
+    <div class="organization-tree">
+      <el-input v-model="keyword" placeholder="杈撳叆鎼滅储鍏抽敭瀛�" @input="handleInput" clearable="true"/>
+      <el-tree ref="tree" :filter-node-method="filterNodeMethod" :current-node-key="currentNodeKey" :data="treeData" :highlight-current="true" :props="defaultProps" node-key="id" :default-expand-all="false" :default-expanded-keys="defaultKeys" @node-click="handleNodeClick" >
+        <template #default="scope">
+            <div
+              :class="
+                keyword === ''
+                  ? ''
+                  : scope.data.name.indexOf(keyword) !== -1
+                    ? 'has-key-word-style'
+                    : ''
+              "
+            >
+              {{ scope.data.name}}
+            </div>
+          </template>
+        </el-tree>
     </div>
     <div>
       <el-row>
@@ -21,11 +36,11 @@
         </el-col>
       </el-row>
       <el-table :data="treecFileData" style="width: 100%">
-        <el-table-column prop="name" label="鍚嶇О" />
-		    <el-table-column prop="fileModifyTime" label="鍒涘缓鏃ユ湡" />
-        <el-table-column prop="fileModifyTime" label="淇敼鏃ユ湡" />
-        <el-table-column prop="fileSizeDisplay" label="澶у皬" />
-        <el-table-column fixed="right" label="鎿嶄綔" min-width="120">
+        <el-table-column prop="name" label="鍚嶇О"/>
+		    <el-table-column prop="fileModifyTime" label="鍒涘缓鏃ユ湡"  width="160"/>
+        <el-table-column prop="fileModifyTime" label="淇敼鏃ユ湡"   width="160"/>
+        <el-table-column prop="fileSizeDisplay" label="澶у皬" width="80"/>
+        <el-table-column fixed="right" label="鎿嶄綔" min-width="110">
           <template #default="scope">
             <el-button link type="primary" size="small" @click="fileView(scope.row)">鏌ョ湅</el-button>
             <el-button link type="primary" size="small" @click="fileEdit(scope.row)">缂栬緫</el-button>
@@ -72,9 +87,15 @@
 } from '@/api/wel/changehis';
 import { pageHeaderEmits } from 'element-plus';
 export default {
+  name: 'OrganizationTree',
   components: {},
   data() {
     return {
+      keyword: '',//鏍戞煡璇㈠叧閿瓧
+      currentNodeKey: null,
+      filterData: [], // 杩囨护鍚庣殑鏁版嵁
+      activeNode: null,
+
       defaultKeys: [],
       fileOptionTitle: "",
       fileContent: "",
@@ -151,6 +172,27 @@
     
   },
   methods: {
+    async handleInput (v) {
+      this.$refs.tree.filter(v)
+    },
+
+    filterNodeMethod (value, data, node) {
+      if (!value) {
+        return true
+      }
+      return this.getHasKeyword(value, node)
+    },
+    getHasKeyword (value, node) {
+
+      if (node.data instanceof Array) {
+        node.data = node.data.length > 0 ? node.data[0] : {}
+      }
+      if (node.data.name && node.data.name.indexOf(value) !== -1) {
+        return true
+      } else {
+        return node.parent && this.getHasKeyword(value, node.parent)
+      }
+    },
     fileDialogComit() {
       this.loading = true;
       axios({
@@ -253,9 +295,12 @@
       this.current = current;
       this.searchTable();
     },
-    handleNodeClick(TreeNode,b,c,d) {
+    handleNodeClick(data,node) {
       this.fileName = "";
-      this.searchTable(TreeNode);
+      this.searchTable(data);
+
+      this.activeNode = data.value
+      this.$emit('node-click', data, node)
     },
     searchTable(TreeNode) {
       this.TreeNode = {...TreeNode};
@@ -353,4 +398,10 @@
   display: flex;
   justify-content: flex-end;
 }
+
+
+.has-key-word-style {
+      background-color: #d5ebfc;
+    }
+//https://juejin.cn/post/6997669587495944223
 </style>
\ No newline at end of file

--
Gitblit v1.9.3