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