前端-如何自己做一个可视化的人员选择泛用组件

news/2024/10/22 13:29:53/

一、展示组件效果

二、组件的功能

1.用户可以在搜索框里输入字符,下方列表实时变动(筛选出包含搜索字符的可选项),如果没有字符,就展示所有的选项

2.用户点击可选项,右侧出现标签

3.用户点击标签的XX,标签会消失,并且左侧改可选项的“选中”状态消失

三、具体实现

代码主要有三部分组成el-input,el-checkbox-group,el-tag

<template><div class="userBox"><el-tabs type="border-card" class="tabsBox"><el-inputplaceholder="请输入名字查询"v-model="filterText"style="margin-bottom: 5px;"></el-input><el-checkbox-group v-model="checkList" class="checkbox-group"><el-checkbox v-for="item in filteredData" :key="item.indexCode" :label="item.indexCode">{{ item.name }}</el-checkbox></el-checkbox-group></el-tabs><div class="xs-left"><el-tag:key="tag.indexCode"v-for="tag in selectedItems"closable:disable-transitions="false"@close="selectCh(tag.indexCode)">{{ tag.name }}</el-tag></div></div>
</template><script>
export default {name: 'abc',props: {listData: {type: Array,default: [],},},data() {return {filterText: '', // 在这里声明查询字符串 filterTextcheckList: [],//被选中的列表};},computed: {//选中后的列表,会包含中文名,用来在右侧展示的selectedItems() {return this.ListData.filter(item => this.checkList.includes(item.indexCode));},//父组件传过来的数据列表,但是实际要展示的是被字符串筛选过后的新列表filteredData() {return this.filterText === '' ? this.ListData: this.ListData.filter(item => item.name.includes(this.filterText));}},watch: {//监听被选中的列表,实时返回给父组件checkList(newCheckList, oldCheckList) {// 在 checkList 变化时触发,可以在这里执行传递给父组件的逻辑this.$emit('updateCheckList', newCheckList);},},mounted() {// 在这里可以进行一些初始化操作},methods: {selectCh(indexCode) {// 从 checkList 中移除被点击的项目this.checkList = this.checkList.filter(code => code !== indexCode);},},
};
</script>


http://www.ppmy.cn/news/1275822.html

相关文章

Re解析(正则表达式解析)

正则表达式基础 元字符 B站教学视频&#xff1a; 正则表达式元字符基本使用 量词 贪婪匹配和惰性匹配 惰性匹配如下两张图&#xff0c;而 .* 就表示贪婪匹配&#xff0c;即尽可能多的匹配到符合的字符串&#xff0c;如果使用贪婪匹配&#xff0c;那么结果就是图中的情况三 p…

SpringData JPA 整合Springboot

1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

配置paddleocr及paddlepaddle解决报错 GLIBCXX_3.4.30 FreeTypeFont

配置 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/StyleText/README_ch.md#style-text 环境配置 https://www.paddlepaddle.org.cn/ 根据自己的cuda版本选择paddlepaddle-gpu # 新建conda环境 # python version conda create -n paddle python3.8 # 安装p…

【机器学习】043_准确率、精确率、召回率

一、定义 在处理偏斜数据集时&#xff0c;通常使用不同的误差度量&#xff0c;而不仅仅是使用分类误差来衡量算法性能。 1. 混淆矩阵的概念 二分类问题的混淆矩阵为2X2矩阵&#xff0c;由四部分组成&#xff1a; 假阴性&#xff08;FN&#xff09;&#xff1a;模型预测为负…

传统小微企业用 CRM 系统能提高多少业绩?(CRM 系统的功能和效果评估)

CRM管理系统迭代至今&#xff0c;其功能已经非常全面。对于小微企业来说&#xff0c;他们需要的往往还是那些核心的CRM功能。这也表明管理潜在客户和联系人以及自动化销售流程仍然是CRM的主要功能之一。鉴于当今有许多渠道可以接触到客户&#xff0c;营销的作用越来越突出。同样…

13 v-show指令

概述 v-show用于实现组件的显示和隐藏&#xff0c;和v-if单独使用的时候有点类似。不同的是&#xff0c;v-if会直接移除dom元素&#xff0c;而v-show只是让dom元素隐藏&#xff0c;而不会移除。 在实际开发中&#xff0c;v-show也经常被用到&#xff0c;需要重点掌握。 基本…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见&#xff0c;比如性别&#xff0c;要么是男&#xff0c;要么是女。比如单选题&#xff0c;给出多个选择&#xff0c;但是只能选择其中的一个。 在本节课中&#xff0c;我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

动态规划 - 509.斐波那契数(C#和C实现)

动态规划 - 509.斐波那契数(C#和C实现) 题目描述 斐波那契数&#xff0c;通常用 F(n) 表示&#xff0c;形成的序列称为斐波那契数列。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1…