import axios from 'axios'; import _ from 'lodash'; export default { namespaced: true, state: { list: [], fields: [], filter: { by: undefined, value: undefined, }, }, mutations: { updateSearch(state, data) { state.list = []; state.fields = []; state.list = data; data.forEach((item) => { state.fields.push(item.property); }); state.fields = state.fields.filter((x, i, a) => a.indexOf(x) === i); }, onClearFilter(state) { state.filter = { by: undefined, value: undefined, }; }, }, getters: { filterList: (state) => { let lst = state.list; const { filter } = state; if (filter) { if (filter.by) { lst = _.filter(lst, x => x.property === filter.by); if (filter.value) { lst = _.filter(lst, x => x.value.toUpperCase().includes(filter.value.toUpperCase())); } } else if (filter.value) { lst = _.filter( lst, x => x.value.toUpperCase().includes(filter.value.toUpperCase()) || x.userName.toUpperCase().includes(filter.value.toUpperCase()) || x.type.toUpperCase().includes(filter.value.toUpperCase()), ); } } return lst; }, }, actions: { getPropertySearchLogs({ commit }) { axios .get('/api/searchLog') .then(result => commit('updateSearch', result.data)) .catch(console.error); }, clearFilter({ commit }) { commit('onClearFilter'); }, }, };