From f88d4fa80ffde84bdb7abb20efadcf63d8404f30 Mon Sep 17 00:00:00 2001 From: bb_pan Date: Wed, 29 Oct 2025 18:58:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipmentInput/add.vue | 18 +++++--- src/views/EquipmentLedger/index.vue | 45 ++++++++++--------- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/src/views/EquipmentEntryApply/equipmentInput/add.vue b/src/views/EquipmentEntryApply/equipmentInput/add.vue index 27967f98..0060f201 100644 --- a/src/views/EquipmentEntryApply/equipmentInput/add.vue +++ b/src/views/EquipmentEntryApply/equipmentInput/add.vue @@ -32,12 +32,7 @@ - + @@ -185,7 +180,15 @@ - + + + + @@ -336,6 +339,7 @@ import FileUpload from '@/components/ImageUpload' export default { name: 'EquipmentEntryEditDialog', // 明确组件名称 emits: ['update:isVisible', 'submit', 'getOrderId'], // 声明事件 + dicts: ['dev_unit_type'], data() { return { isSubmit: false, diff --git a/src/views/EquipmentLedger/index.vue b/src/views/EquipmentLedger/index.vue index 90344df4..03a3aa7a 100644 --- a/src/views/EquipmentLedger/index.vue +++ b/src/views/EquipmentLedger/index.vue @@ -15,6 +15,7 @@ :model="queryParams" :rules="queryRules" style="margin-top: 20px; padding: 0 15px;" + @submit.native.prevent > @@ -812,9 +815,6 @@ export default { data() { return { treeSearchKey: '', //用于存储左侧树搜索框内容 - - defaultExpandedKeys: [], //用于存储需要默认展开的节点id - showSearch: true, total: 0, tableHeight: 510, @@ -849,6 +849,7 @@ export default { label: 'name', }, treeData: [], + defaultExpandedKeys: [], // 存储默认展开的节点 key provinceList: [], // 所属省份 propertyUnitList: [], // 产权单位 majorList: [], // 专业 @@ -959,6 +960,22 @@ export default { } }, methods: { + // 初始化:获取前两级节点的所有 key + initDefaultExpandedKeys() { + const keys = [] + const traverse = (data, level) => { + data.forEach(node => { + if (level <= 1) { // 只展开第1级和第2级 + keys.push(node.id) // 假设你的节点唯一标识是 `id` + if (node.children && node.children.length > 0) { + traverse(node.children, level + 1) + } + } + }) + } + traverse(this.treeData, 1) + this.defaultExpandedKeys = keys + }, // 获取省份 getProvinceList() { getProvinceListAPI().then((res) => { @@ -1132,23 +1149,6 @@ export default { this.treeLoading = true; const res = await getDeviceTreeAPI(); this.treeData = res.data ? [res.data] : []; - -// 👇 加这一行 - console.log('treeData', JSON.stringify(this.treeData, null, 2)); - - // 重置默认展开的节点ID数组 - this.defaultExpandedKeys = []; - - // 只收集第一级和第二级节点的ID,第三级默认不展开 - this.collectFirstAndSecondLevelKeys(this.treeData); - console.log('✅ defaultExpandedKeys:', this.defaultExpandedKeys); - - // 3. 关键:等 DOM 渲染完再赋值 - this.$nextTick(() => { - this.defaultExpandedKeys = [...this.defaultExpandedKeys]; - }); - - console.log('默认展开的第一级和第二级节点ID:', this.defaultExpandedKeys); } catch (error) { this.$message.error('获取树形结构失败:' + (error.message || '未知错误')); console.error(error); @@ -1189,6 +1189,7 @@ export default { * 左侧树查询:匹配节点显示自身及下一级,但默认只显示到第二级 */ async getDeviceListByTreeSearch() { + if (!this.treeSearchKey.trim) return try { // 1. 获取输入的查询关键词(去空格) const searchKey = this.treeSearchKey ? this.treeSearchKey.trim() : ''; @@ -1332,7 +1333,8 @@ export default { this.defaultExpandedKeys = []; // 只展开第一级和第二级节点 - this.collectFirstAndSecondLevelKeys(this.treeData); + // this.collectFirstAndSecondLevelKeys(this.treeData); + this.initDefaultExpandedKeys() this.$message.success('树形查询已重置'); } catch (error) { @@ -1645,6 +1647,7 @@ export default { await Promise.all([this.getDeviceTree(), this.getDeviceStatusCount()]) // 最后加载列表数据 await this.getDeviceList() + this.initDefaultExpandedKeys() },