fix(vimp): 修复设备树中 default-expand-all 属性的错误用法,改为为NTabPane 设置 :display-directive="'show:lazy'" 以实现在清空搜索内容时恢复到原来的树展开状态

- default-expand-all 属性非响应式
- 过渡方案,后续应重构为受控的 expanded-keys
This commit is contained in:
yangsy
2026-06-24 00:47:59 +08:00
parent ee68a2032e
commit b6a89a74b0
2 changed files with 4 additions and 12 deletions
+2 -6
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { NIcon, NTabPane, NTabs, NTree, type TreeOverrideNodeClickBehavior, type TreeProps } from 'naive-ui';
import { computed, h, type CSSProperties } from 'vue';
import { h, type CSSProperties } from 'vue';
import { useAlarmStore, useResourcePanelStore } from '../stores';
import { storeToRefs } from 'pinia';
import { useChannelsQuery } from '../composables';
@@ -99,8 +99,6 @@ const renderNodeSuffix: TreeProps['renderSuffix'] = ({ option }) => {
const resourcePanelStore = useResourcePanelStore();
const { searchPattern } = storeToRefs(resourcePanelStore);
const defaultExpandAll = computed(() => searchPattern.value.trim().length > 0);
const searchFilter: TreeProps['filter'] = (pattern, node) => {
if (!isAlarmNode(node)) return false;
return node.alarm.name.includes(pattern);
@@ -121,7 +119,6 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
:render-label="renderNodeLabel"
:render-suffix="renderNodeSuffix"
:override-default-node-click-behavior="overrideNodeClickBehavior"
:default-expand-all="defaultExpandAll"
:show-irrelevant-nodes="false"
:data="lineTabPanes.at(0)?.alarmTree"
:pattern="searchPattern"
@@ -144,7 +141,7 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
// '--n-tab-padding-vertical': '14px 12px'
}"
>
<NTabPane v-for="{ lineCode, lineName, alarmTree } in lineTabPanes" :key="lineCode" :name="lineName">
<NTabPane v-for="{ lineCode, lineName, alarmTree } in lineTabPanes" :key="lineCode" :name="lineName" :display-directive="'show:lazy'">
<template #tab>
<span style="font-size: 12px">{{ lineName }}</span>
</template>
@@ -158,7 +155,6 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
:render-label="renderNodeLabel"
:render-suffix="renderNodeSuffix"
:override-default-node-click-behavior="overrideNodeClickBehavior"
:default-expand-all="defaultExpandAll"
:show-irrelevant-nodes="false"
:data="alarmTree"
:pattern="searchPattern"
+2 -6
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { NIcon, NTabPane, NTabs, NTree, type TreeOverrideNodeClickBehavior, type TreeProps } from 'naive-ui';
import { computed, h, type CSSProperties } from 'vue';
import { h, type CSSProperties } from 'vue';
import { useCameraStore, useResourcePanelStore } from '../stores';
import { storeToRefs } from 'pinia';
import { useChannelsQuery } from '../composables';
@@ -102,8 +102,6 @@ const renderNodeSuffix: TreeProps['renderSuffix'] = ({ option }) => {
const resourcePanelStore = useResourcePanelStore();
const { searchPattern } = storeToRefs(resourcePanelStore);
const defaultExpandAll = computed(() => searchPattern.value.trim().length > 0);
const searchFilter: TreeProps['filter'] = (pattern, node) => {
if (!isCameraNode(node)) return false;
return node.camera.name.includes(pattern);
@@ -124,7 +122,6 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
:render-label="renderNodeLabel"
:render-suffix="renderNodeSuffix"
:override-default-node-click-behavior="overrideNodeClickBehavior"
:default-expand-all="defaultExpandAll"
:show-irrelevant-nodes="false"
:data="lineTabPanes.at(0)?.cameraTree"
:pattern="searchPattern"
@@ -147,7 +144,7 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
// '--n-tab-padding-vertical': '14px 12px'
}"
>
<NTabPane v-for="{ lineCode, lineName, cameraTree } in lineTabPanes" :key="lineCode" :name="lineName">
<NTabPane v-for="{ lineCode, lineName, cameraTree } in lineTabPanes" :key="lineCode" :name="lineName" :display-directive="'show:lazy'">
<template #tab>
<span style="font-size: 12px">{{ lineName }}</span>
</template>
@@ -161,7 +158,6 @@ const searchFilter: TreeProps['filter'] = (pattern, node) => {
:render-label="renderNodeLabel"
:render-suffix="renderNodeSuffix"
:override-default-node-click-behavior="overrideNodeClickBehavior"
:default-expand-all="defaultExpandAll"
:show-irrelevant-nodes="false"
:data="cameraTree"
:pattern="searchPattern"