index.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import Vue from 'vue';
  2. import Vuex from 'vuex';
  3. import $axios from '@lib/axios.js';
  4. const api = {
  5. catalogueCreate: '/api/journal/catalogue/create',
  6. catalogueUpdate: '/api/journal/catalogue/update',
  7. catalogueDelete: '/api/journal/catalogue/delete',
  8. catalogueQuery: '/api/journal/catalogue/query',
  9. catalogueFetch: '/api/journal/catalogue/fetch',
  10. dictQuery: '/api/code/dictionary/query',
  11. journalQuery: '/api/journal/intact/query',
  12. userQuery: '/api/reader/user/query'
  13. };
  14. Vue.use(Vuex);
  15. const state = () => ({
  16. Total: 0,
  17. catalogueList: [],
  18. journalList: [],
  19. dict: {},
  20. userList: [],
  21. userTotal: 0
  22. });
  23. const actions = {
  24. async userQuery ({ commit }, { filter, paging } = {}) {
  25. const res = await $axios.get(api.userQuery, { ...filter, skip: paging.page, limit: paging.size });
  26. commit('userQuery', res);
  27. return res;
  28. },
  29. async catalogueCreate ({ commit }, payload) {
  30. const res = await $axios.post(api.catalogueCreate, payload);
  31. return res;
  32. },
  33. async catalogueUpdate ({ commit }, payload) {
  34. const res = await $axios.post(api.catalogueUpdate, { ...payload, id: payload._id });
  35. return res;
  36. },
  37. async catalogueDelete ({ commit }, { id }) {
  38. const res = await $axios.delete(`${api.catalogueDelete}/${id}`);
  39. return res;
  40. },
  41. async catalogueQuery ({ commit }, { filter, paging } = {}) {
  42. const res = await $axios.get(api.catalogueQuery, { ...filter, skip: paging.page, limit: paging.size });
  43. commit('catalogueQuery', res);
  44. return res;
  45. },
  46. async catalogueFetch ({ commit }, payload) {
  47. const res = await $axios.get(api.catalogueFetch, payload);
  48. return res;
  49. },
  50. async statusQuery ({ commit }) {
  51. const res = await $axios.get(api.dictQuery, { parentCode: 'journalStatus' });
  52. commit('statusQuery', res);
  53. return res;
  54. },
  55. async columnQuery ({ commit }) {
  56. const res = await $axios.get(api.dictQuery, { parentCode: 'journalcolumn' });
  57. commit('columnQuery', res);
  58. return res;
  59. },
  60. async journalQuery ({ commit }, payload) {
  61. const res = await $axios.get(api.journalQuery, payload);
  62. commit('journalQuery', res);
  63. return res;
  64. }
  65. };
  66. const mutations = {
  67. catalogueQuery(state, payload) {
  68. state.catalogueList = payload.data;
  69. state.Total = payload.total;
  70. },
  71. statusQuery(state, payload) {
  72. state.dict.journalStatus = payload.data;
  73. },
  74. columnQuery(state, payload) {
  75. state.dict.journalcolumn = payload.data;
  76. },
  77. journalQuery(state, payload) {
  78. payload.data = payload.data.map(e => ({ ...e, code: e._id }));
  79. state.dict.journalQuery = payload.data;
  80. state.journalList = payload.data;
  81. },
  82. userQuery(state, payload) {
  83. state.userList = payload.data.map(e => e.userList[0]);
  84. state.userTotal = payload.total;
  85. }
  86. };
  87. export default new Vuex.Store({
  88. state,
  89. actions,
  90. mutations,
  91. modules: {}
  92. });