<div class="treeSearch">
<el-input placeholder="请输入后回车搜查询" @change="searchAction" v-model="searchText">
<template #prefix>
<i class="el-icon-search"></i>
</template>
</el-input>
<el-button type="primary" @click="searchAction">查询</el-button>
</div>
<el-tree class="filter-tree" :expand-on-click-node="false" :data="treeData" node-key="bussId" :props="defaultProps" default-expand-all :filter-node-method="filterAction" ref="contentTreeRef" :highlight-current="true">
<template #default="{ node }">
<el-tooltip effect="dark" :content="node.label" :show-after="500" :popper-class="treeTooltip ? 'hide-tooltip' : ''">
<p class="tree_title" :class="showTreeClass + '-' + node.data.treeValue">
<span @mouseenter.stop.prevent="ellipsis(node.data.treeValue)" @mouseleave.stop.prevent="treeTooltip = true">
{{ node.label }}
</span>
</p>
</el-tooltip>
</template>
</el-tree>
const state = reactive<any>({
searchText: '',
defaultProps: {
label: 'treeLlabel',
value: 'treeValue',
children: 'treeChildren',
},
showTreeClass: 'ref_' + Math.random().toString(7).substr(2),
treeTooltip: true,
treeData: [],
});
const contentTreeRef: Ref = ref(null);
const keyPropsData: ComputedRef = computed(() => {
return state.defaultProps;
});
function filterAction(value: string, data: any) {
if (!value) return true;
return data[keyPropsData.value.label] && data[keyPropsData.value.label].indexOf(value) !== -1;
}
function searchAction() {
//查询方法
}
//显示超指定区域时 - 文字提示
let treeTimer: any = null;
function ellipsis(index: any) {
let treeData: any = null;
treeData = $(`.${state.showTreeClass + '-' + index}`)[0];
let treeParentWidth = treeData.parentNode.offsetWidth;
let treeContentWidth = treeData.offsetWidth + 34;
let treeLeft = treeData.offsetLeft;
clearTimeout(treeTimer);
treeTimer = setTimeout(() => {
if (treeContentWidth + treeLeft + 38 > treeParentWidth) {
state.treeTooltip = false;
}
}, 500);
}
<style lang="scss" scoped>
.filter-tree {
height: 100%;
overflow: auto;
.tree_title {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 12px;
}
}
</style>
04-25
2024
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-14
1142
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交