index.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import Vue from 'vue';
  2. import Vuex from 'vuex';
  3. import $axios from '@lib/axios.js';
  4. const api = {
  5. contentsCreate: '/api/cms/contents/create',
  6. contentsUpdate: '/api/cms/contents/update',
  7. contentsDelete: '/api/cms/contents/delete',
  8. contentsQuery: '/api/cms/contents/query',
  9. contentsFetch: '/api/cms/contents/fetch',
  10. columnQuery: '/api/cms/column/query',
  11. userQuery: '/api/reader/user/query'
  12. };
  13. Vue.use(Vuex);
  14. const state = () => ({
  15. Total: 0,
  16. contentsList: [],
  17. columnList: [],
  18. dict: {},
  19. userList: [],
  20. userTotal: 0
  21. });
  22. const actions = {
  23. async userQuery ({ commit }, { filter, paging } = {}) {
  24. const res = await $axios.get(api.userQuery, { ...filter, skip: paging.page, limit: paging.size });
  25. commit('userQuery', res);
  26. return res;
  27. },
  28. async contentsCreate ({ commit }, payload) {
  29. const res = await $axios.post(api.contentsCreate, payload);
  30. return res;
  31. },
  32. async contentsUpdate ({ commit }, payload) {
  33. const res = await $axios.post(api.contentsUpdate, { ...payload, id: payload._id });
  34. return res;
  35. },
  36. async contentsDelete ({ commit }, { id }) {
  37. const res = await $axios.delete(`${api.contentsDelete}/${id}`);
  38. return res;
  39. },
  40. async contentsQuery ({ commit }, { filter, paging } = {}) {
  41. const res = await $axios.get(api.contentsQuery, { ...filter, skip: paging.page, limit: paging.size });
  42. commit('contentsQuery', res);
  43. return res;
  44. },
  45. async contentsFetch ({ commit }, payload) {
  46. const res = await $axios.get(api.contentsFetch, payload);
  47. return res;
  48. },
  49. async columnQuery ({ commit }) {
  50. const res = await $axios.get(api.columnQuery);
  51. commit('columnQuery', res);
  52. return res;
  53. }
  54. };
  55. const mutations = {
  56. contentsQuery(state, payload) {
  57. state.contentsList = payload.data;
  58. state.Total = payload.total;
  59. },
  60. columnQuery(state, payload) {
  61. state.columnList = payload.data;
  62. state.dict.column = payload.data;
  63. },
  64. userQuery(state, payload) {
  65. state.userList = payload.data.map(e => e.userList[0]);
  66. state.userTotal = payload.total;
  67. }
  68. };
  69. export default new Vuex.Store({
  70. state,
  71. actions,
  72. mutations,
  73. modules: {}
  74. });