el-form+el-table实现表格搜索功能

实现效果

在这里插入图片描述

代码

<template>
  <div>
    <el-form v-model="queryParams" ref="queryForm" size="small" :inline="true" @submit.native.prevent>
      <el-form-item label="日期" prop="date">
        <el-input
          v-model.trim = "queryParams.date"
          placeholder="请输入日期"
          clearable
          style="width:240px"
          @keyup.enter.native="handleQuery"
        ></el-input>
      </el-form-item>
      <el-form-item label="姓名" prop="name">
        <el-input
          v-model.trim = "queryParams.name"
          placeholder="请输入姓名"
          clearable
          style="width:240px"
          @keyup.enter.native="handleQuery"
        ></el-input>
      </el-form-item>
      <el-form-item label="地址" prop="address">
        <el-input
          v-model.trim = "queryParams.address"
          placeholder="请输入地址"
          clearable
          style="width:240px"
          @keyup.enter.native="handleQuery"
        ></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </div>
</template>

data

tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }],
      //form表单查询的数据
      queryParams: {
        date: '',
        name: '',
        address: ''
      },
     //用一个数组保留原始数据 
      listData: []

js

//搜索按钮
handleQuery () {
      this.listData = this.tableData
      //过滤出需要的数据
      this.tableData = [...this.tableData].filter((i) => {
        return (
          i.date.toLowerCase().includes(this.queryParams.date.toLowerCase()) &&
          i.name.toLowerCase().includes(this.queryParams.name.toLowerCase()) &&
          i.address.toLowerCase().includes(this.queryParams.address.toLowerCase())
        )
      })
    },
//重置按钮
resetQuery () {
//清空搜索栏
      this.queryParams = {date: '',
        name: '',
        address: ''}
      this.tableData = this.listData
    }
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在el-form + el-table中每个单元格内嵌el-form-item项,并且需要添加校验功能,可以按照以下步骤操作: 1. 在el-form-item中添加需要校验的表单控件,如el-input、el-select等。 2. 在el-form-item中添加校验规则,可以通过rules属性来添加校验规则,如: ``` <el-form-item prop="name" label="姓名" :rules="nameRules"> <el-input v-model="form.name"></el-input> </el-form-item> ``` 在data中定义nameRules数组对象: ``` data() { return { form: { name: '' }, nameRules: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 10, message: '长度在2到10个字符', trigger: 'blur' } ] } } ``` 这里定义了两个校验规则,第一个规则要求该字段不能为空,第二个规则要求该字段长度在2到10个字符之间。 3. 在el-table中添加slot-scope,用于获取每个单元格的数据。如: ``` <el-table :data="tableData"> <el-table-column label="姓名"> <template slot-scope="{ row }"> <el-form-item prop="name" :rules="nameRules"> <el-input v-model="row.name"></el-input> </el-form-item> </template> </el-table-column> </el-table> ``` 这里通过slot-scope获取到每个单元格的数据,并将数据绑定到el-input中。同时在el-form-item中添加了校验规则。 4. 在methods中定义表单提交的方法,并调用el-form的validate方法对表单进行校验。如: ``` methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 校验通过,提交表单 } else { // 校验不通过,提示错误信息 } }); } } ``` 这里通过this.$refs.form.validate方法对表单进行校验,如果校验通过,则提交表单;如果校验不通过,则提示错误信息。 以上就是在el-form + el-table中添加校验的方法,希望能够帮到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值