Explorar el Código

Table: Filter data again when change data

lirilsu hace 7 años
padre
commit
ba3315a728
Se han modificado 1 ficheros con 13 adiciones y 0 borrados
  1. 13 0
      packages/table/src/table-store.js

+ 13 - 0
packages/table/src/table-store.js

@@ -85,6 +85,19 @@ TableStore.prototype.mutations = {
   setData(states, data) {
     const dataInstanceChanged = states._data !== data;
     states._data = data;
+
+    Object.keys(states.filters).forEach((columnId) => {
+      const values = states.filters[columnId];
+      if (!values || values.length === 0) return;
+      const column = getColumnById(this.states, columnId);
+      if (column && column.filterMethod) {
+        data = data.filter((row) => {
+          return values.some(value => column.filterMethod.call(null, value, row));
+        });
+      }
+    });
+
+    states.filteredData = data;
     states.data = sortData((data || []), states);
 
     // states.data.forEach((item) => {