el-table表格列内容筛选时筛选项的获取及数据处理

在前端日志显示功能中,需要对用户、模块、名称等内容进行筛选操作。最初尝试通过请求全部日志数据获取筛选项,但由于数据量过大导致系统卡死。为解决此问题,后端新增接口专门获取每列筛选项。前端通过传入列值和错误信息参数,获取到筛选项数据并进行格式化处理,最终用于el-table的筛选功能,实现了高效且流畅的筛选体验。
摘要由CSDN通过智能技术生成

最近在做日志内容的前端显示,需要对用户、模块、名称等进行筛选操作
前提:
1、后台接口分页获取数据库中的日志信息,点击分页页码,每次加载10条
2、筛选的前提需要获取每列的筛选项

最开始的思路:
以offset(偏移量):1: ,page-size(每页显示条目个数):数据库中日志个数 为参数,请求全部的日志数据,再从全部的日志数据中截取需要进行筛选的筛选项列表:
结果:
请求的全部日志信息内容过多,系统直接卡死掉

后来的思路:
重新在后台写一个接口,用来获取每列的筛选项
参数:
column 列值:用来判断是哪一列需要筛选;
errorInfo 错误信息:用来判断是否是报警日志

1、controller层:

//获取日志筛选项的列表
	@RequestMapping(value = "/getLogFiltersList")
	public ResponseEntity<String> getOperationLogFiltersList(Model model, HttpServletRequest request, String token,
			String errorInfo,String column)
			throws Exception {
   
		/**
		 * 1.check
		 */
		if (StringUtil.isEmpty(token)) {
   
			return renderData(false, "参数错误:token不能为空!", null);
		}
		if (super.isTokenInvalid(token)) {
   
			return renderData(false, "token失效,请重新登录!", null);
`el-table` 筛选通常是指在使用Element UI组件库构建的应用中对表格数据进行过滤操作的功能。Element UI是一个基于Vue.js的UI框架,它提供了一系常用的前端UI元素及功能,包括表单、表、按钮等。 在 `el-table` 组件中,通过筛选功能可以帮助用户快速找到他们感兴趣的数据行。这种筛选可以基于特定的值进行,例如姓名、年龄、性别等等。 ### 实现筛选功能的基本步骤: #### 1. 添加筛选功能到`el-table` 默认情况下,`el-table` 可能不会直接显示筛选。为了添加这个功能,你需要配置一些额外属性来启用筛选并设置其行为。以下是基本的配置示例: ```html <template> <div> <!-- 其他组件... --> <el-table :data="tableData" border stripe style="width: 100%"> <!-- 定义... --> <!-- ... --> <!-- 开启筛选功能 --> <el-table-column prop="columnProperty" label="Column Name"> <!-- 添加筛选器组件 --> <template #default="{ row }"> <!-- 这里可以根据需要自定义筛选器的展现形式 --> <el-input v-model="row.columnProperty" /> </template> </el-table-column> <!-- 其他... --> <!-- ... --> </el-table> <!-- 展示筛选结果... --> <!-- ... --> </div> </template> <script setup> import { ref } from 'vue'; const tableData = [ // 表格数据... ]; // 示例筛选函数,用于处理输入的文本并与数据匹配 function filterData(inputText) { return tableData.filter(item => item.columnProperty.toLowerCase().includes(inputText.toLowerCase())); } // 使用筛选结果更新表格数据 watchEffect(() => { const inputText = document.querySelector('#yourInputId').value; if (inputText) { tableData = filterData(inputText); } }); </script> ``` 在这个例子中: - 我们首先引入了 `ref` 和 `watchEffect` 来管理输入值,并监听变化。 - 接着我们创建了一个名为 `filterData` 的函数来执行实际的过滤操作。 - 最后,我们监听输入框的变化,每次输入发生变化,会触发 `filterData` 函数并更新表格数据以展示匹配的结果。 #### 2. 配置筛选效果 你可以调整 `el-table` 的其他属性来优化筛选体验,比如设置筛选字段的样式、提示信息等。例如: - **启用即搜索** (`filterable`):这将允许用户在输入立即看到筛选结果。 - **控制是否显示筛选器** (`showHeader=true`):确保在表格头部显示筛选。 - **定制筛选器**:除了默认的下拉菜单外,你可以使用模板插槽来自定义筛选器的外观和交互。 ### 相关问题: 1. 怎样在`el-table`中实现动态筛选条件的选择? 2. 如何在`el-table`中加入排序功能以配合筛选? 3. 当`el-table`数据量很大,如何优化筛选性能避免卡顿?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值