【Vue入门实践3】不调后端接口==>el-table单纯前端实现查询和重置功能==>【el-table组件使用】表格静态前端筛选、查询重置功能

一个人的心理健康程度与接纳痛苦的程度成正比。------感谢自己的不完美


目录

一、功能效果描述

二、el-table自带筛选功能

三、前端假查询重置功能

1. el-form表单

2.el-table表格数据

3. search功能

4. reset重置功能


一、功能效果描述

由于数据量较大,每时每分都会产生数据,当前列表只展示进入页面的最新数据。其中的查询和重置功能都是基于当前数据的,所以要求不调接口,只是前端的查询并展示。但是点击刷新按钮,会调接口,请求到最近的数据,此时列表刷新为最近数据。

至于调接口情况可以看动图中右侧效果。

(1)利用el-table的筛选功能进行前端内容的筛选

(2)点击查询按钮,使用数组操作实现查询,并显示查询结果;对于查询之后再次查询能够还原原始查询数组。

(3)重置功能、刷新功能==>调接口显示最新数据

二、el-table自带筛选功能

使用到el-table的筛选功能:Element - The world's most popular Vue UI framework

 在列中设置filtersfilter-method属性即可开启该列的筛选,filters 是一个数组,filter-method是一个方法,它用于决定某些数据是否显示,会传入三个参数:valuerow 和 column

因此,我们要在需要筛选的列上加上两项:

:filters="筛选备选项数组"

 :filter-method="filterHandler"

<el-table-column
            prop="stationName"
            label="站点名
<template> <div> <div> <!--搜索栏--> <el-input v-model="name" placeholder="请输入菜单名称" style="width: 200px" prefix-icon="el-icon-user"></el-input> <el-button class="el-icon-search" style="margin-left: 10px" type="primary" @click="load">查询</el-button> <el-button class="el-icon-refresh" style="margin-left: 10px" type="warning" @click="reset">重置</el-button> </div> <div style="margin-top: 20px;margin-bottom:35px;"> <!-- 新增、批量删除 --> <el-button class="el-icon-plus" style="margin-right: 10px" type="success" @click="save(null)">新增</el-button> <el-button class="el-icon-close" style="margin-left: 10px" type="danger" @click="deleteByids" >批量删除</el-button> </div> <el-table :data="tableData" border stripe :header-cell-style="getRowClass" @selection-change="handleSelectionChange" row-key="id" border default-expand-all> <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="id" label="id"></el-table-column> <el-table-column prop="name" label="菜单名称"></el-table-column> <el-table-column prop="path" label="菜单路径"></el-table-column> <el-table-column prop="icon" label="菜单图标"> <template v-slot:default="scope"> <i :class="scope.row.icon"></i> </template> </el-table-column> <el-table-column prop="pagePath" label="页面路径"></el-table-column> <el-table-column prop="description" label="菜单描述"></el-table-column> <el-table-column prop="sortNum" label="排序"></el-table-column> <el-table-column label="操作" width="300"> <template v-slot="scope"> <div class="action-buttons"> <!-- 添加容器方便布局 --> <el-button type="success" size="mini" class="compact-btn" @click="save(scope.row.id)" v-if="!scope.row.pid && !scope.row.path">新增子菜单</el-button> <el-button type="prima
03-29
<think>好的,我现在需要处理用户关于Vue.jsElement UI表格组件使用的问题,特别是涉及操作按钮如新增、删除、查询重置的示例代码。首先,我需要回顾用户提供的引用内容,确保回答符合他们的需求。 根据引用[1],用户已经知道如何引入Element UI使用el-button组件,所以可以在此基础上扩展表格组件使用。引用[3]提到ElementUIVue社区使用率最高的UI框架,因此强调其易用性适用性会有帮助。 首先,我需要构建一个表格示例,包含基本的CRUD操作。Element UIel-table组件是核心,需要展示数据绑定列定义。然后,操作列需要添加按钮,比如编辑删除,这可以通过作用域插槽实现。接下来,新增、查询重置功能通常与表单结合,所以需要引入el-form组件,并处理表单数据的绑定验证。 新增功能需要弹窗,因此要使用el-dialog组件,并在打开时初始化表单数据。删除操作一般需要调用API,这里可以模拟一个删除确认对话框。查询重置按钮关联到表单的提交重置方法,需要更新表格数据或清空筛选条件。 代码结构方面,按照Vue的单文件组件结构,分模板、脚本样式部分。在模板中,先放置操作按钮(新增、查询重置),然后是表格弹窗表单。脚本部分处理数据、方法以及生命周期钩子,比如在mounted中初始化数据。 需要注意的地方包括:表格数据绑定、表单验证规则、操作按钮的事件处理,以及弹窗的显示控制。同时,要确保示例代码简洁,符合Element UI的最佳实践,比如使用:prop进行表单验证,作用域插槽访问行数据等。 可能的问题点:用户可能需要了解如何与后端API交互,但示例中暂时用模拟数据。此外,表单验证规则样式调整可能需要进一步说明,但根据引用[3],Element UI省去了样式调整,所以可以简化这部分。 最后,生成相关问题,帮助用户深入理解,比如性能优化、自定义样式或分页功能,这些都是常见的后续问题。 现在,整理这些思路,按照用户要求的格式,分步骤给出示例代码解释,并确保引用标注正确。</think>以下是关于Vue.jsElement UI表格组件使用示例及操作按钮的实现说明: ### 一、基础表格组件示例 ```html <template> <div> <!-- 操作按钮区域 --> <div style="margin-bottom:20px"> <el-button type="primary" @click="handleAdd">新增</el-button> <el-button @click="handleQuery">查询</el-button> <el-button @click="handleReset">重置</el-button> </div> <!-- 数据表格 --> <el-table :data="tableData" border> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> <el-table-column label="操作" width="180"> <template #default="scope"> <el-button size="mini" @click="handleEdit(scope.row)">编辑</el-button> <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <!-- 新增/编辑弹窗 --> <el-dialog :title="dialogTitle" v-model="dialogVisible"> <el-form :model="formData" :rules="rules" ref="formRef"> <el-form-item label="姓名" prop="name"> <el-input v-model="formData.name"></el-input> </el-form-item> <el-form-item label="年龄" prop="age"> <el-input v-model.number="formData.age"></el-input> </el-form-item> <el-form-item label="地址" prop="address"> <el-input v-model="formData.address"></el-input> </el-form-item> </el-form> <template #footer> <el-button @click="dialogVisible = false">取消</el-button> <el-button type="primary" @click="submitForm">确认</el-button> </template> </el-dialog> </div> </template> <script> export default { data() { return { tableData: [], dialogVisible: false, dialogTitle: &#39;新增数据&#39;, formData: { name: &#39;&#39;, age: null, address: &#39;&#39; }, rules: { name: [{ required: true, message: &#39;请输入姓名&#39;, trigger: &#39;blur&#39; }], age: [{ type: &#39;number&#39;, message: &#39;年龄必须为数字&#39;, trigger: &#39;blur&#39; }] } } }, mounted() { this.fetchData() }, methods: { fetchData() { // 模拟API请求 this.tableData = [ { name: &#39;张三&#39;, age: 25, address: &#39;北京&#39; }, { name: &#39;李四&#39;, age: 30, address: &#39;上海&#39; } ] }, handleAdd() { this.dialogTitle = &#39;新增数据&#39; this.formData = { name: &#39;&#39;, age: null, address: &#39;&#39; } this.dialogVisible = true }, handleEdit(row) { this.dialogTitle = &#39;编辑数据&#39; this.formData = { ...row } this.dialogVisible = true }, handleDelete(row) { this.$confirm(&#39;确认删除该记录?&#39;, &#39;提示&#39;, { confirmButtonText: &#39;确认&#39;, cancelButtonText: &#39;取消&#39;, type: &#39;warning&#39; }).then(() => { this.tableData = this.tableData.filter(item => item !== row) }) }, handleQuery() { // 实现查询逻辑 console.log(&#39;执行查询操作&#39;) }, handleReset() { // 重置查询条件 console.log(&#39;执行重置操作&#39;) }, submitForm() { this.$refs.formRef.validate(valid => { if (valid) { // 处理提交逻辑 this.dialogVisible = false } }) } } } </script> ``` ### 二、功能说明 1. **表格操作列**:通过`<template #default="scope">`实现数据操作按钮[^3] 2. **表单验证**:使用Element UI的Form验证规则[^1] 3. **弹窗控制**:通过`dialogVisible`状态控制弹窗显示 4. **数据操作**: - 新增:初始化空表单并打开弹窗 - 编辑:绑定当前行数据到表单 - 删除:使用`$confirm`进行二次确认 5. **查询/重置**:可结合查询条件表单实现数据过滤[^2] ### 三、最佳实践建议 1.表格数据请求封装为独立方法(如`fetchData`) 2. 复杂表单建议拆分验证规则到独立对象 3. 实际开发中删除操作应调用API接口 4. 分页功能可结合`el-pagination`组件实现[^3]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白Rachel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值