Element-UI如何在列过滤器中设置默认过滤器值

时间:2018-02-08 03:22:49

标签: vuejs2 element-ui

Element-ui版本2.1.0

<el-table-column
  prop="tag"
  label="Tag"
  width="100"
  :filters="[{ text: 'Home', value: 'Home' }, { text: 'Office', value: 'Office' }]"></el-table-column>

我想先将Office设为默认值。我在文档中找不到任何帮助。

3 个答案:

答案 0 :(得分:1)

我做了一些修改,以强制表格应用过滤器。

setDefaultFilter(colProp, filteredValue) {
  if (!this.$refs.tableRef) {
    throw new Error('Table should have a ref named tableRef.');
  }

  const typeColumn = this.$refs.tableRef.columns.find(col => col.property === colProp);

  typeColumn.filteredValue = filteredValue;

  this.$refs.tableRef.store.commit('filterChange', {
    column: typeColumn,
    values: filteredValue,
  });
  this.$refs.tableRef.store.updateAllSelected();
}

我在mounted()函数中使用了它,如下所示:

const filteredValue = ['Private', 'Public'];

this.setDefaultFilter('type', filteredValue);

答案 1 :(得分:0)

<el-table-column
  prop="tag"
  label="Tag"
  width="100"
  :filters="[{ text: 'Home', value: 'Home' }, { text: 'Office', value: 'Office' }]"
  :filtered-value="['Office']"
></el-table-column>

答案 2 :(得分:0)

很老的问题,但我解决它的方法是通过绑定数据属性:

data() {
  return {
    checkedFilters: [],
  };
},

到 :filtered-value table-column 属性。

<el-table-column
  column-key="states"
  label="State"
  :filters="stateFilters"
  :filter-method="filterState"
  :filtered-value="checkedFilters"
  v-if="isDisplayed('State')"
>
</el-table-column>