vue3 列表页开发【选择展示列】功能
目录
背景描述:
开发流程:
详细开发流程:
总结:
背景描述:
这个功能是基于之前写的 封装列表页 的功能继续写的,加了一个选择展示列的功能,可以随时控制表格里展示那些列的数据,如图,大概样式是这样:


开发流程:
基本上和封装列表页的流程相似,这里不做多余描述,只是需要从父组件里传递tableColumn,也可以在本组件定义
tableColumn除了控制表格的column,还有就是【选择列】的功能的数据从这里来,这里可以设置哪些需要显示与隐藏,如下:
const tableColumn = ref([{column_id: 'op_name',column_name: '操作人',default_display: true,sortable: true,minWidth: 100},{column_id: 'op_roles',column_name: '角色',default_display: true,sortable: true,minWidth: 150},//....{column_id: 'create_at',column_name: '名称12',default_display: true,sortable: true,minWidth: 170},{column_id: 'update_at',column_name: '名称13',default_display: false,sortable: true,minWidth: 170}
])
详细开发流程:
提示:这里描述项目中遇到的问题:
1.选择展示列
<el-col :span="12"><el-popover placement="bottom" trigger="click" :width="300"><template #reference><el-button class="right-button" type="default"><el-icon><Filter /></el-icon></el-button></template><span style="margin: 0 10px 0 0; font-size: 14px">选择展示列</span><el-select v-model="selectedColumns" multiple collapse-tags :teleported="false" @change="selectColumns"><el-optionv-for="(item, index) in tableCol":key="item.column_id":disabled="index == 0":label="item.column_name":value="item.column_id"></el-option></el-select></el-popover></el-col>
这里的tableCol是从父组件传的tableColumn, tableCol.value = props.tableColumn
2.已选择的展示列怎么控制表格的列显隐
// 已选的展示列
const selectedColumns = ref([])
//选择展示列
const selectColumns = () => {showTableCol.value = []let arr = []if (selectedColumns.value.length && selectedColumns.value.length != 0) {selectedColumns.value.forEach((element) => {tableCol.value.forEach((item, index) => {if (index == 0) {item.default_display = true}item.default_display = falseif (element == item.column_id || index == 0) { //比如至少要选择第一列,不能一列都不显示arr.push(index)}})})arr = [...new Set(arr)]arr.forEach((element) => {tableCol.value[element].default_display = true})let dataTable = tableCol.value.filter((item, index) => {return item.default_display})showTableCol.value = dataTable} else {let dataTable = []dataTable = tableCol.value.filter((item) => {return item.default_display})dataTable.forEach((item) => {selectedColumns.value.push(item.column_id)})showTableCol.value = dataTable}
}
3. 表格的列显示
<el-tablev-loading="loading":data="tableData"class="table-small-custom"height="calc(100vh - 240px)"stripe@sort-change="changeTableSort"><el-table-column type="index" width="70" label="序号"><template #default="scope"><span v-text="getIndex(scope.$index)"></span></template></el-table-column><el-table-columnv-for="(col, index) in showTableCol":key="index":prop="col.column_id":label="col.column_name":min-width="col.minWidth":sortable="col.sortable":is-show-overflow-tooltip="true"/></el-table>
这里表格的渲染是通过v-for showTableCol ,主要就是这个。
over
总结:
目前我经常是通过这个方式写【选择展示列】功能,过滤那部分,没怎么考虑最优解,反正数据也不多,直接这样写了,如果有更合适的方式,欢迎分享~
相关文章:
vue3 列表页开发【选择展示列】功能
目录 背景描述: 开发流程: 详细开发流程: 总结: 背景描述: 这个功能是基于之前写的 封装列表页 的功能继续写的,加了一个选择展示列的功能,可以随时控制表格里展示那些列的数据…...
uniapp——自定义组件插槽及使用
案例样式 自定义组件pageBox.vue <template><view><view class"bgColor" :style"{ height: bgHeight rpx }"></view><view class"main"><!-- 主要内容放这里 --><slot></slot></view>&…...
微信native-v3版支付对接流程及demo
1.将p12证书转为pem证书,得到商户私钥 openssl pkcs12 -in apiclient_cert.p12 -out apiclient_cert.pem -nodes 密码是:商户id 2.将获取到的apiclient_cert.pem证书,复制出这一块内容,其他的不要 3.下载这个工具包 https://gi…...
租用服务器后需要注意什么
租用服务器后需要注意什么 1、从IDC服务商中接收到服务器时,需要对服务器的各项性能进行测试确认,并做好记录以便对服务器的性能做到心中有数。 2、在服务器租用交接时,要了解服务器的安全设置情况,对服务器安全技术方面不了解的…...
【公众号开发】图像文字识别 · 模板消息推送 · 素材管理 · 带参数二维码的生成与事件的处理
【公众号开发】(4) 文章目录 【公众号开发】(4)1. 图像文字识别功能1.1 百度AI图像文字识别接口申请1.2 查看文档学习如何调用百度AI1.3 程序开发1.3.1 导入依赖:1.3.2 公众号发来post请求格式1.3.3 对image类型的消息…...
Linux---(三)基本指令大全
前提引入:历史上先出现的键盘还是鼠标? 答案:键盘 ✨所以刚开始的时候绝对没有图形化界面,因此操作系统刚开始兴起的时候绝对没有图形化界面,因为当时没有鼠标。 ✨因为没有图形化界面,只有键盘,…...
基于selenium的pyse自动化测试框架
介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。 特点: 默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css)…...
【微服务 SpringCloudAlibaba】实用篇 · Nacos注册中心
微服务(5) 文章目录 微服务(5)1. 认识和安装Nacos2. 服务注册到nacos和拉取服务1)引入依赖2)配置nacos地址3)重启 3. 服务分级存储模型3.1 给user-service配置集群3.2 同集群优先的负载均衡 4. …...
华为手机安卓扫描安装包apk在哪
1、在文件管理器里找,有的安装包没有搜索到2、在应用市场-我的-安装包管理,它会扫描整个手机,推荐...
IDEA 新版本设置菜单展开
使用了新版本的IDEA 新UI后,常用的file,view,菜单看不见了,不太适应,找了一下,有个配置可以修改。 打开settings里面把show main menu in a separate toolbar勾选上,应用保存就可以了...
Leetcode 350:两个数组的交集II
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示例 1…...
【数据结构】队列的实现与优化指南
一、前言 队列是一种重要的数据结构,它按照“先入先出”(FIFO)的原则管理数据。本文将介绍队列的概念、应用场景,以及如何使用数组实现普通队列和环形队列。 二、内容 2.1 概述 (1)什么是队列࿱…...
视频太大怎么压缩变小?三分钟学会视频压缩
随着科技的不断发展,视频已经成为了我们日常生活中不可或缺的一部分,然而,大尺寸的视频文件常常会给我们带来诸多困扰,例如发送不便、存储空间不足等等,那么,如何将这些过大的视频文件压缩变小呢࿱…...
Rust 泛型
泛型 Generics泛型详解 使用泛型参数,有一个先决条件,必需在使用前对其进行声明: fn largest<T>(list: &[T]) -> T {该泛型函数的作用是从列表中找出最大的值,其中列表中的元素类型为 T。首先 largest<T> 对…...
STM32+2.9inch微雪墨水屏(电子纸)实现显示
本篇文章从硬件原理以及嵌入式编程等角度完整的介绍了墨水屏驱动过程,本例涉及的墨水屏为2.9inch e-Paper V2,它采用的是“微胶囊电泳显示”技术进行图像显示,其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移,从而改变显示屏各…...
Hadoop3教程(二十九):(生产调优篇)集群扩容及缩容(白名单与黑名单)
文章目录 (150)添加白名单(151)服役新服务器(152)服务器间数据均衡(153)黑名单退役服务器参考文献 这一章还算是比较重要的。 (150)添加白名单 白名单&#…...
NET7下用WebSocket做简易聊天室
NET7下用WebSocket做简易聊天室 步骤: 建立NET7的MVC视图模型控制器项目创建websocket之间通信的JSON字符串对应的实体类一个房间用同一个Websocketwebsocket集合类,N个房间创建websocket中间件代码Program.cs中的核心代码,使用Websocket聊…...
详解API基础知识
目录 什么是API: API 的设计原则包括: API 的开发流程包括以下几个步骤: API 的使用场景包括: API 的优势包括: 然而,API 也存在一些挑战和问题,例如: 什么是API: API(应用程…...
b树和b+树
二叉树和平衡二叉树 二叉树,每个节点支持两个分支的树结构,相比于单向链表,多了一个分支。 二叉查找树,在二叉树的基础上增加了一个规则,左子树的所有节点的值都小于它的根 节点,右子树的所有子节点都大于它…...
Linux 下 Java 安装字体方法
因上线访问图字体乱码了,因为在windows下设置的微软雅黑,linux默认是没有的,所以需要给jdk安装一个微软雅黑字体。按照步骤来,so easy! 1)首先找到windows下面的字体,不用去其他地方下了&#…...
PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)
PyQt5 HFSS:零基础打造专业仿真GUI全攻略 当你的HFSS脚本开始变得复杂,每次运行都要在命令行里输入一堆参数时,是否想过给它穿上得体的"外衣"?想象一下:一个直观的界面,同事只需点击几下就能启动…...
保姆级教程:从打板到调试,手把手复刻开源USB转4路RS422/485电路板(基于沁恒CH348Q)
从零复刻CH348Q多协议转换板:硬件开发者的全流程实战指南 当我们需要在工业控制或自动化系统中连接多个串口设备时,市面上常见的单路USB转RS422/485转换器往往捉襟见肘。想象一下,你的工作台上堆满了各种转换模块,接线混乱&#x…...
Flutter 鸿蒙应用离线模式实战:无网络也能流畅使用
Flutter 鸿蒙应用离线模式实战:无网络也能流畅使用 欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net📄 文章摘要 本文为 Flutter for OpenHarmony 跨平台应用开发任务 34 实战教程,完整实现应用离线模式功…...
8、Docker镜像瘦身
Docker镜像瘦身 一、 常见docker镜像瘦身方法 在 Docker 镜像瘦身方面,有多种工具和技术可以帮助你显著减小镜像体积,提升构建和部署效率。以下是常用的工具和方法: 1. 基础优化方法 ① 多阶段构建(Multi-stage Builds…...
从‘小白人转圈’到丝滑移动:详解UE角色蓝图里4种方向向量的正确用法
从‘小白人转圈’到丝滑移动:详解UE角色蓝图里4种方向向量的正确用法 在虚幻引擎的角色开发中,方向向量的选择往往决定了角色行为的精准度与自然度。许多开发者都遇到过这样的场景:明明按照教程连接了移动输入节点,角色却开始原地…...
如何分析enq- TM - contention_外键未建索引导致的表级锁阻塞
外键未建索引会导致主表DML时全表扫描子表校验引用,触发整表TM锁争用;通过ASH查P2得子表OBJECT_ID,再结合dba_constraints与dba_ind_columns定位缺失索引的外键。怎么确认是外键没建索引引发的 enq: TM - contention直接查 v$active_session_…...
OpenRAG: 企业级 RAG 平台的终极解决方案
引言: 当知识管理遇上 AI 革命 在这个信息爆炸的时代,企业和个人每天都在产生海量的文档、报告、邮件和知识资产。然而,一个残酷的现实是:90% 的企业知识被困在 PDF、Word 文档和各种云存储中,无法被有效检索和利用。 想象一下这样的场景:你急需找到三个月前某次会议的决策依…...
别再直接用TA-Lib了!手把手教你用Python复刻通达信/同花顺的MACD和KDJ指标
量化交易中的指标适配:用Python精准复刻通达信/同花顺的MACD与KDJ 在量化交易领域,技术指标的一致性至关重要。许多开发者习惯直接使用TA-Lib这类成熟库计算MACD、KDJ等指标,却在实际回测中发现与国内主流股票软件(如通达信、同花…...
CANoe COM接口避坑指南:Python调用时Type Library和CastTo的那些‘坑’与最佳实践
CANoe COM接口避坑指南:Python调用时Type Library和CastTo的那些‘坑’与最佳实践 当你第一次用Python脚本调用CANoe COM接口时,可能会被突如其来的报错搞得措手不及。明明按照文档写的代码,却弹出"对象不支持此属性或方法"的错误提…...
2025最权威的六大降重复率助手实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术跟内容创作范畴,要是AI生成内容所占比率过高,极有可能性对通过…...
