修改测试bug

This commit is contained in:
guanj
2026-06-08 18:34:49 +08:00
parent 4f907a80c4
commit 03d302ded8
133 changed files with 3991 additions and 3442 deletions

View File

@@ -62,9 +62,8 @@ async function loadTree() {
}
await selectTreeNode(treRef.value, node, {
level: 3,
onSelect: selected => {
emit('init', { ...selected, level: 3 })
emit('init', { ...selected, level: selected.level ?? 3 })
changePointType('4', selected)
}
})

View File

@@ -1,12 +1,12 @@
<template>
<Tree ref="treRef" @check-change="handleCheckChange" :default-checked-keys="defaultCheckedKeys"
<Tree ref="treRef" @check-change="handleCheckChange" :default-checked-keys="defaultCheckedKeys" default-expand-all
:show-checkbox="props.showCheckbox" :data="tree" :height="props.height" @changeDeviceType="changeDeviceType"
@changeTreeType="loadTree" :engineering="props.engineering" leaf-mode="device" />
</template>
<script lang="ts" setup>
import { ref, onMounted } from 'vue'
import { throttle } from 'lodash'
import { ref, onMounted, onBeforeUnmount } from 'vue'
import { debounce } from 'lodash-es'
import Tree from '../device.vue'
import { getDeviceTree } from '@/api/cs-device-boot/csLedger'
import { useConfig } from '@/stores/config'
@@ -39,7 +39,11 @@ const tree = ref<any[]>([])
const treRef = ref<InstanceType<typeof Tree>>()
const decorators = createLineTreeDecorators(() => config.getColorVal('elementUiPrimary'))
const changeDeviceType = (val: any, obj: any) => emit('deviceTypeChange', val, obj)
const changeDeviceType = debounce((val: any, obj: any) => {
emit('deviceTypeChange', val, obj)
}, 300)
onBeforeUnmount(() => changeDeviceType.cancel())
async function selectInitialNode(type: string | undefined, leaves: LineTreeLeaves) {
const candidates: { refKey: TreeRefKey; list: any[]; level: number }[] =
@@ -70,7 +74,7 @@ const loadTree = (type?: string) => {
})
}
onMounted(() => loadTree(props.engineering ? '2' : '1'))
onMounted(() => loadTree( '2' ))
const handleCheckChange =
(data: any, checked: any, indeterminate: any) => {

View File

@@ -18,7 +18,8 @@ export interface LineTreeDecorators {
export function createLineTreeDecorators(getPrimaryColor: () => string): LineTreeDecorators {
const offlineColor = '#e26257 !important'
const statusColor = (comFlag: number) => (comFlag === 2 ? getPrimaryColor() : offlineColor)
// const statusColor = (comFlag: number) => (comFlag === 2 ? getPrimaryColor() : offlineColor)
const statusColor = (comFlag: number) => (comFlag === 2 ? "#2ab914" : offlineColor)
const applyMeta = (
node: any,
@@ -85,7 +86,7 @@ export function decorateLineTree(
})
grand.children?.forEach((leaf: any) => {
applyMeta(leaf, {
icon: 'el-icon-Platform',
icon: 'local-监测点',
color: statusColor(leaf.comFlag),
...LINE_LEAF_META
})
@@ -110,7 +111,7 @@ export function decorateLineTree(
})
l3.children?.forEach((l4: any) => {
applyMeta(l4, {
icon: 'el-icon-Platform',
icon: 'local-监测点',
color: statusColor(l4.comFlag),
...LINE_LEAF_META
})
@@ -124,7 +125,7 @@ export function decorateLineTree(
applyMeta(l1, { icon: 'el-icon-Platform', color: statusColor(l1.comFlag) })
l1.children?.forEach((l2: any) => {
applyMeta(l2, {
icon: 'el-icon-Platform',
icon: 'local-监测点',
color: statusColor(l2.comFlag),
...LINE_LEAF_META
})
@@ -145,7 +146,7 @@ export function decorateLineTree(
})
l3.children?.forEach((l4: any) => {
applyMeta(l4, {
icon: 'el-icon-Platform',
icon: 'local-监测点',
color: statusColor(l4.comFlag),
...LINE_LEAF_META
})

View File

@@ -76,6 +76,7 @@ async function selectInitialNode(type: string | undefined, leaves: LineTreeLeave
}
const loadTree = (type?: string) => {
console.log("🚀 ~ loadTree ~ type:", type)
tree.value = []
getLineTree({ type: type === '2' ? 'engineering' : '' }).then(res => {
const leaves = decorateLineTree(res.data, type, decorators, { disableParents: false })
@@ -89,11 +90,13 @@ function bootstrap() {
querySysExcel({})
.then((res: any) => {
emit('Policy', res.data)
loadTree()
loadTree('2')
})
.catch(() => loadTree())
} else {
loadTree()
} else {
loadTree('2')
}
}

View File

@@ -3,7 +3,7 @@
<div style="transition: all 0.3s; overflow: hidden; height: 100%">
<div class="cn-tree">
<div style="display: flex; align-items: center" class="mb10">
<el-input maxlength="32" v-model.trim="filterText" placeholder="请输入内容" clearable>
<el-input maxlength="32" show-word-limit v-model.trim="filterText" placeholder="请输入内容" clearable>
<template #prefix>
<Icon name="el-icon-Search" style="font-size: 16px" />
</template>

View File

@@ -30,11 +30,27 @@ export async function selectTreeNode(
) {
if (!node) return false
const treeInstance = await waitForSingleTreeRef(treRef)
treeInstance?.setCurrentKey(node.id)
if (!treeInstance) return false
await nextTick()
expandTreeNodePath(treeInstance, node.id)
treeInstance.setCurrentKey(node.id)
options?.onSelect?.(node)
return true
}
/** 展开到目标节点的全部祖先,保证深层节点可见 */
export function expandTreeNodePath(treeInstance: any, nodeId: string) {
const target = treeInstance.getNode?.(nodeId)
if (!target) return
let parent = target.parent
while (parent && parent.level > 0) {
parent.expanded = true
parent = parent.parent
}
}
export function bootstrapWithTemplate(
template: boolean,
loadFn: () => void,