修改测试bug
This commit is contained in:
@@ -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)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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
|
||||
})
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user