chart.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { fakeChartData } from '../services/api';
  2. export default {
  3. namespace: 'chart',
  4. state: {
  5. visitData: [],
  6. visitData2: [],
  7. salesData: [],
  8. searchData: [],
  9. offlineData: [],
  10. offlineChartData: [],
  11. salesTypeData: [],
  12. salesTypeDataOnline: [],
  13. salesTypeDataOffline: [],
  14. radarData: [],
  15. loading: false,
  16. },
  17. effects: {
  18. *fetch(_, { call, put }) {
  19. yield put({
  20. type: 'changeLoading',
  21. payload: true,
  22. });
  23. const response = yield call(fakeChartData);
  24. yield put({
  25. type: 'save',
  26. payload: response,
  27. });
  28. },
  29. *fetchSalesData(_, { call, put }) {
  30. const response = yield call(fakeChartData);
  31. yield put({
  32. type: 'save',
  33. payload: {
  34. salesData: response.salesData,
  35. },
  36. });
  37. },
  38. },
  39. reducers: {
  40. save(state, { payload }) {
  41. return {
  42. ...state,
  43. ...payload,
  44. loading: false,
  45. };
  46. },
  47. clear() {
  48. return {
  49. visitData: [],
  50. visitData2: [],
  51. salesData: [],
  52. searchData: [],
  53. offlineData: [],
  54. offlineChartData: [],
  55. salesTypeData: [],
  56. salesTypeDataOnline: [],
  57. salesTypeDataOffline: [],
  58. radarData: [],
  59. };
  60. },
  61. changeLoading(state, { payload }) {
  62. return {
  63. ...state,
  64. loading: payload,
  65. };
  66. },
  67. },
  68. };