树状目录出现了文字太长的情况,这篇记录解决方案。
问题来源
树状展示目录出现了文字太长的情况,文字被挤出,不仅无法知晓目录代表什么,更无法进行编辑操作。
解决方案-增加滚动条
效果如下:
| <div class="down-tree"> <el-tree ref="treeData" :data="treeData" :props="defaultProps" class="filter-tree"> </el-tree> </div>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| .down-tree { overflow: auto; max-height: 790px; &::-webkit-scrollbar { width: 10px; height: 10px; } &::-webkit-scrollbar-thumb { background-color: rgb(255, 255, 255); border-radius: 5px; } &::-webkit-scrollbar-track { background-color: rgb(255, 255, 255); box-shadow: inset 0 0 3px rgb(255, 255, 255); border-radius: 5px; } &::-webkit-scrollbar-button { background-color: rgb(255, 255, 255); display: none; } &:hover { &::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); border-radius: 5px; } &::-webkit-scrollbar-track { background-color: #f5f5f5; box-shadow: inset 0 0 3px rgba(253, 249, 249, 0.1); border-radius: 5px; } &::-webkit-scrollbar-button { background-color: #eee; display: none; } } } .el-tree { min-width: 100%; display: inline-block; }
|
解决方案-增加Tootlip提示
效果如下:
首先需要限制字数,多余部分...
表示,在hover时展示所有文字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| export const arrToTree = (data: Array<deptOne>) => { console.log("Treedata=", data); const tree = []; if (!Array.isArray(data)) { return tree; } const map = {}; data.forEach((item) => { map[item.id] = item; }); data.forEach((item) => { const parent = map[item.parent]; delete item.parent; item["label"] = item.name.length > 6 ? item.name.substring(0,6) + '...' : item.name; item["value"] = item.id;
if (parent) { (parent.children || (parent.children = [])).push(item); } else { tree.push(item); } }); return tree[0]; };
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <el-tree :data="attrTree" :props="defaultProps" node-key="id" default-expand-all :expand-on-click-node="false" :render-content="renderContent" :highlight-current="true" @node-click="handleNodeClick" > <template #default="{ node, data }"> <span class="custom-tree-node"> <el-tooltip effect="dark" :content="data.name" placement="top-start" style="font-size: 14px" > <span>{{ node.label }}</span> </el-tooltip> <span> <a v-if="data.label == 'XX信息'" @click="openAddDir(data.id, 1, data)"> + </a> <a v-if="!data.children &&!(data.label == 'XX信息')" style="margin-left: 8px" @click="remove(data.id)"> - </a> <a v-if="!data.children &&!(data.label == 'XX信息')" style="margin-left: 8px"> <el-icon class="search-dir" @click="openAddDir(data.id, 2, data)"> <Edit /> </el-icon> </a> </span> </span> </template> </el-tree>
|