el-table 表头添加下拉筛选框 附带输入过滤

锤爆主管的狗头,想在饿了么ui 自带的筛选下 新增输入框过滤筛选选项

但是改动封装的 不太好做

我就手撸了个比较还原业务场景,选择器仍旧使用了ele 组件

1、 选择器跟按钮的样式

<!-- 搜索 -->
// showCJ 筛选框是否显示
<div class="cj" v-if='showCJ'>
  <el-row :gutter="20">
    <el-col :span="18">
      <el-select 
      v-model="cjSelect" 
      filterable 
      multiple
      placeholder="请选择">
        <el-option
          v-for="item in people"
          :key="item.value"
          :label="item.text"
          :value="item.value">
        </el-option>
      </el-select>
    </el-col>
    <el-col :span="2">
        <el-button style="margin-top:5px">确认</el-button>
    </el-col>
  </el-row>
</div>

2、表格表头设置

<el-table-column
  prop="tag"
  label="邀约人员"
  align="center"
  column-key="ownerIds"
  filter-placement="bottom-end"
  :render-header="chengjiaoFilter">
  <template slot-scope="scope">
    <span v-for="(item,index) in scope.row.owner">{{item.name}}{{index < scope.row.owner.length -1?',':''}}</span>
  </template>
</el-table-column>

3、函数设置 表头可单击

// 表头渲染时生效 生成 带有事件的节点
chengjiaoFilter(h, { column }){
  console.log('111');
  
    if (column.property == 'tag') {
    return h('div',{style: 'margin-top:9px',},
      [h('b', {
        style: 'font-size:15px;cursor:pointer',
        on: {//这个是你的点击方法
          click: () => {
            this.chengjiaoFilter1()
          }
        }
      },'邀约人员'),
      h('i',{
        style:'color:#7E662E;font-size:12px',
        class:'el-icon-arrow-down'
      })]
  )}
},
// 控制筛选框是否显示
chengjiaoFilter1(){
  console.log('成交筛选'); 
  this.showCJ = !this.showCJ
}

原文地址:https://www.cnblogs.com/xujinglog/p/13674141.html