Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

searchLog.js 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import axios from "axios";
  2. import _ from "lodash";
  3. export default {
  4. namespaced: true,
  5. state: {
  6. list: [],
  7. fields: [],
  8. filter: {
  9. by: undefined,
  10. value: undefined
  11. }
  12. },
  13. mutations: {
  14. updateSearch(state, data) {
  15. state.list = [];
  16. state.fields = [];
  17. state.list = data;
  18. data.forEach(item => {
  19. state.fields.push(item.property);
  20. });
  21. state.fields.push("UserName");
  22. state.fields.push("Type");
  23. state.fields.push("Date");
  24. state.fields.push("Time");
  25. state.fields = state.fields.filter((x, i, a) => a.indexOf(x) === i);
  26. },
  27. onClearFilter(state) {
  28. state.filter = {
  29. by: undefined,
  30. value: undefined
  31. };
  32. }
  33. },
  34. getters: {
  35. filterList: state => {
  36. let lst = state.list;
  37. const { filter } = state;
  38. if (filter) {
  39. if (filter.by) {
  40. if (filter.by === "UserName") {
  41. lst = _.filter(lst, x => x.userName.toUpperCase().includes(filter.value.toUpperCase()));
  42. } else if (filter.by === "Type") {
  43. lst = _.filter(lst, x => x.type.toUpperCase().includes(filter.value.toUpperCase()));
  44. } else if (filter.by === "Date") {
  45. lst = _.filter(lst, x => x.date.toUpperCase().includes(filter.value.toUpperCase()));
  46. } else if (filter.by === "Time") {
  47. lst = _.filter(lst, x => x.time.toUpperCase().includes(filter.value.toUpperCase()));
  48. } else {
  49. lst = _.filter(lst, x => x.property === filter.by);
  50. if (filter.value) {
  51. lst = _.filter(lst, x => x.value.toUpperCase().includes(filter.value.toUpperCase()));
  52. }
  53. }
  54. } else if (filter.value) {
  55. lst = _.filter(
  56. lst,
  57. x =>
  58. x.value.toUpperCase().includes(filter.value.toUpperCase()) ||
  59. x.userName.toUpperCase().includes(filter.value.toUpperCase()) ||
  60. x.type.toUpperCase().includes(filter.value.toUpperCase())
  61. );
  62. }
  63. }
  64. return lst;
  65. }
  66. },
  67. actions: {
  68. getPropertySearchLogs({ commit }) {
  69. axios
  70. .get("/api/searchLog")
  71. .then(result => commit("updateSearch", result.data))
  72. .catch(console.error);
  73. },
  74. clearFilter({ commit }) {
  75. commit("onClearFilter");
  76. }
  77. }
  78. };