diff options
author | Vitalii Lysak <v.lysak@dunice.net> | 2022-09-15 13:45:10 +0300 |
---|---|---|
committer | Vitalii Lysak <v.lysak@dunice.net> | 2022-09-15 13:45:10 +0300 |
commit | 8919552feaa01066d3df455f0420a5b62ad15b35 (patch) | |
tree | 33cdd4caeeee1a0fd9c74298071399c9c62f0c4a | |
parent | 45491dec095f466e257dfd531649d4fe987e1f31 (diff) | |
download | webui-vue-8919552feaa01066d3df455f0420a5b62ad15b35.tar.xz |
upd getFilteredTableData
-rw-r--r-- | src/components/_sila/Mixins/TableFilterMixin.js | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/components/_sila/Mixins/TableFilterMixin.js b/src/components/_sila/Mixins/TableFilterMixin.js index 7a2cc540..295ca7e5 100644 --- a/src/components/_sila/Mixins/TableFilterMixin.js +++ b/src/components/_sila/Mixins/TableFilterMixin.js @@ -1,5 +1,3 @@ -import { includes } from 'lodash'; - const TableFilterMixin = { methods: { getFilteredTableData(tableData = [], filters = []) { @@ -9,19 +7,19 @@ const TableFilterMixin = { // If no filters are active, then return all table data if (filterItems.length === 0) return tableData; - // Check if row property value is included in list of - // active filters - return tableData.filter((row) => { - let returnRow = false; - for (const { key, values } of filters) { - const rowProperty = row[key]; - if (rowProperty && includes(values, rowProperty)) { - returnRow = true; - break; - } - } - return returnRow; + // remove empty filters + filters = filters.filter((filter) => { + return filter.values && filter.values.length > 0; }); + + let result = tableData; + filters.forEach((filter) => { + result = result.filter((row) => + filter.values.includes(row[filter.key]) + ); + }); + + return result; }, getFilteredTableDataByDate( tableData = [], |