antvue table 表格实现 首行搜索

本文详细介绍了如何在AntV Vue表格中实现首行搜索功能。通过创建一个自定义组件来渲染头部输入框,并在表格组件中引用,结合Vue的v-for指令和v-model实现数据绑定。在父组件中监听onSearch事件,根据输入值更新查询参数,调用搜索方法刷新列表数据。此功能适用于需要在表格中进行快速筛选的场景。
摘要由CSDN通过智能技术生成

antvue table 表格实现 首行搜索

表格首行搜索实现流程详解如下
效果图

首先创建一个组件用来渲染 头部输入框

<template>
  <div class="filter">
 	<tr>
      <th>
        <div class="selectDiv">
        </div>
      </th>
      <th v-for="(item, index) in columns" :key="index">
        <div class="selectDiv" :style="'width:' + item.width + 'px'">
          <a-input
          style="       text-align: inherit;    min-width: 150px;"
            v-if="index >= deviationNumber"
            :placeholder="'请输入' + item.title"
            v-model="item.filter"
            @change="onSearch(item)"
          />
        </div>
      </th>
    </tr>
   </div>
</template>
<script>
export default {
  data() {
    return {
      value: '',
    }
  },
  props: {
    columns: {
      type: Array,
    },
    deviationNumber:{
      type: Number,
      default:2,
    }
  },
  
  methods: {
    select() {
      console.log(this.columns)
    },
    onSearch(item) {
      // console.log(item);
      this.$emit('onSearch', item)
    },
  },
}
</script>

接着在 ant vue table 页面引用该 组件,并传入表头columns [ ] 数据集合(具体用法参阅官方文档)

columns 集合实例:

 columns: [
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          // fixed: 'right',
          width: 147,
          scopedSlots: { customRender: 'action' },
        },
        {
          title: '名称',
          align: 'center',
          dataIndex: 'name',
        },
      ],

组件使用示例

 <filterth ref="filterth" @onSearch="onSearchFilter" :deviationNumber="1" :columns="columns"></filterth>

接着在使用该组件 的页面 mounted函数里渲染组件至 表格头部

 mounted() {
    this.$nextTick(() => {
      this.$refs.table.$el
        .getElementsByTagName('thead')[0]
        .appendChild(this.$refs.filterth.$el.getElementsByTagName('tr')[0])
    })
  },

onSearchFilter 方法

主要 实现输入框值的获取 和查询
具体根据自己业务实际情况编写 以下 仅供参考

onSearchFilter(item) {
      if (item.filter == undefined) {
        return
      }
      // console.log(  this.queryParamData )
      let name = item.dataIndex
      this.$set(this.queryParam, name, `*${item.filter}*`)
      //刷新列表数据的函数
      this.searchQuery()
    },
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值