From 005c818922b659b1b1a9cb39cea3ec2a83d55cd1 Mon Sep 17 00:00:00 2001 From: Cagatay Civici Date: Sat, 6 Feb 2021 16:52:54 +0300 Subject: [PATCH] Destructring for slotProps --- src/components/datatable/ColumnFilter.vue | 20 ++++++----- src/views/datatable/DataTableFilterDemo.vue | 37 +++++++++------------ 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/components/datatable/ColumnFilter.vue b/src/components/datatable/ColumnFilter.vue index 8a6781105..6e984a08d 100644 --- a/src/components/datatable/ColumnFilter.vue +++ b/src/components/datatable/ColumnFilter.vue @@ -128,24 +128,26 @@ export default { }, mounted() { if (this.filters && this.filters[this.field]) { - if (this.display === 'row') { - this.defaultMatchMode = this.filters[this.field].matchMode; - } - else { + let fieldFilters = this.filters[this.field]; + if (Array.isArray(fieldFilters)) { this.defaultMatchMode = this.filters[this.field][0].matchMode; this.defaultOperator = this.filters[this.field][0].operator; } + else { + this.defaultMatchMode = this.filters[this.field].matchMode; + } } }, methods: { clearFilter() { let _filters = {...this.filters}; - if (this.display === 'row') { - _filters[this.field].value = null; - _filters[this.field].matchMode = this.defaultMatchMode; + if (Array.isArray(_filters[this.field])) { + _filters[this.field].splice(1); + _filters[this.field][0] = {value: null, matchMode: this.defaultMatchMode, operator: this.defaultOperator}; } else { - _filters[this.field] = {value: null, matchMode: this.defaultMatchMode, operator: this.defaultOperator}; + _filters[this.field].value = null; + _filters[this.field].matchMode = this.defaultMatchMode; } this.$emit('filtermeta-change', _filters); @@ -405,7 +407,7 @@ export default { return this.filters[this.field][0].operator; }, fieldConstraints() { - return this.filters[this.field]; + return Array.isArray(this.filters[this.field]) ? this.filters[this.field] : [this.filters[this.field]]; }, showRemoveIcon() { return this.fieldConstraints.length > 1; diff --git a/src/views/datatable/DataTableFilterDemo.vue b/src/views/datatable/DataTableFilterDemo.vue index b02c4282f..d15329d05 100755 --- a/src/views/datatable/DataTableFilterDemo.vue +++ b/src/views/datatable/DataTableFilterDemo.vue @@ -33,8 +33,8 @@ Name {{slotProps.data.name}} - - - - -