当前位置: 首页 > news >正文

vue所有UI库通用)tree-select 下拉多选(设置 maxTagPlaceholder 隐藏 tag 时显示的内容,支持鼠标悬浮展示更多

如果可以实现记得点赞分享,谢谢老铁~

1.需求描述

引用的下拉树形结构支持多选,限制选中tag的个数,且超过制定个数,鼠标悬浮展示更多已选中。

2.先看下效果图

在这里插入图片描述

3.实现思路

首先根据API文档,先设置maxTagCount,最多显示多少个 tag。
然后再设置 maxTagPlaceholder,隐藏 tag 时显示的内容,因为支持
插槽,所以我们可以这样自定义:

父组件

<a-tree-selectstyle="width: 100%"v-model:value="searchValue"tree-checkableallow-clearshow-search:tree-data="treeData"placeholder="请选择":max-tag-text-length="maxTagTextLength":max-tag-count="maxTagCount" ><template #maxTagPlaceholder><tool-tip-tag:currentCheckedKeys="dealCheckedList(treeData, searchValue)"></tool-tip-tag></template></a-tree-select><script lang="ts">
import { toRefs, watch, ref } from "vue";
export default {setup(porps) {const searchValue = ref<string[]>([]);// 关键: 过滤选中的label - valueconst dealCheckedList = (treeData, list) => {let dataList = treeToList(treeData);return [...new Set(dataList)].filter((item: any) =>list.includes(item.value));};return { dealCheckedList,searchValue };},
};
</script>

4.自定义一个toolTipTag 浮层组件

通过父传子 currentCheckedKeys 进行过滤选中的label展示名称。
子组件

<template><a-tooltip:overlayStyle="{overflow: 'auto',maxHeight: '750px',width: '300px',}"><template #title><div class="item" v-for="(item, i) in checkedList" :key="i"><div>{{ item?.title }}</div></div></template><span>{{ expandText }}</span></a-tooltip>
</template><script lang="ts">
import { toRefs, watch, ref } from "vue";
export default {name: "ToolTipTag",props: {currentCheckedKeys: Array,expandText: {type: String,default: () => "+ 更多 ...",},},setup(porps) {let { currentCheckedKeys } = toRefs(porps);let checkedList = ref<any>(currentCheckedKeys.value);watch(() => currentCheckedKeys.value,(val) => {checkedList.value = currentCheckedKeys.value;});return { checkedList };},
};
</script>

收工!谢谢老铁们的点赞收藏~

http://www.lryc.cn/news/125929.html

相关文章:

  • 进行 200 瓦太阳能 (PV) 模块设计以测量太阳能光伏阵列的电压、电流和功率、综合负荷频率和电压控制系统的方法研究(Simulink实现)
  • 实战:工作中对并发问题的处理 | 京东物流技术团队
  • 解决VSCode CPU高占问题的方法
  • tensorflow 1.x和3090、cuda部署
  • vue-photo-preview( 照片预览功能 )
  • Angular 独立组件入门
  • Lie group 专题:Lie 群
  • Vue-打印组件页面
  • Python爬虫——scrapy_基本使用
  • 30 | 中国高校数据分析
  • 开源低代码平台Openblocks
  • 每日汇评:黄金在 200 日移动平均线附近似乎很脆弱,关注美国零售销售
  • DFT笔记 DC/AC mode与Func
  • docker核心操作
  • 《电路》基础知识入门学习笔记
  • 什么是P2P?
  • matlab RANSAC拟合多项式曲线
  • 微信小程序nfc指令异常记录
  • 10 - 把间隔的几个commit整理成1个
  • 关于 Eclipse 的一场 “三角关系”
  • koa 使用 Mongoose 查询数据
  • 前后端分离------后端创建笔记(10)用户修改
  • K8S系列文章之 Docker安装使用Kafka
  • js如何获取字符串大小是几M
  • 服务器托管中1U是什么意思?
  • Golang自定义类型与类型别名
  • golang环境搭建
  • 一套优质的MES系统,应该具备哪些特质?
  • 常见的路由协议之RIP协议与OSPF协议
  • 使用ip2region获取客户端地区