<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>
el-tree 过滤查询&溢字提示
最新推荐文章于 2024-07-17 09:24:47 发布