campus.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { message } from 'antd';
  2. import { routerRedux } from 'dva/router';
  3. import {
  4. queryCampusList,
  5. queryCampusItem,
  6. createCampusItem,
  7. updateCampusItem,
  8. deleteCampusItem,
  9. } from '../services/campus';
  10. export default {
  11. namespace: 'campus',
  12. state: {
  13. list: [],
  14. pageNo: 1,
  15. pageSize: 15,
  16. totalSize: 0,
  17. currentItem: {},
  18. },
  19. effects: {
  20. *fetchCampusList({ payload }, { call, put }) {
  21. const response = yield call(queryCampusList, payload);
  22. if (response.success) {
  23. message.success('加载校区列表成功');
  24. yield put({
  25. type: 'querySuccess',
  26. payload: {
  27. list: response.data.list || [],
  28. pageSize: response.data.pageSize,
  29. totalSize: response.data.totalSize,
  30. pageNo: response.data.pageNo,
  31. },
  32. });
  33. }
  34. },
  35. *fetchCampusItem({ payload }, { call, put }) {
  36. const response = yield call(queryCampusItem, payload);
  37. if (response.success) {
  38. message.success('加载校区详情成功');
  39. yield put({
  40. type: 'querySuccess',
  41. payload: {
  42. currentItem: response.data || {},
  43. }
  44. });
  45. }
  46. },
  47. *createCampusItem({ payload, state }, { call, put }) {
  48. const response = yield call(createCampusItem, payload);
  49. if (response.success) {
  50. message.success('创建校区成功');
  51. yield put(routerRedux.push({
  52. state,
  53. pathname: '/campus/list',
  54. }));
  55. }
  56. },
  57. *deleteCampusItem({ payload, states }, { call, put }) {
  58. const response = yield call(deleteCampusItem, payload);
  59. if (response.success) {
  60. message.success('删除校区成功');
  61. yield put({
  62. type: 'fetchCampusList',
  63. payload: states.Queryers,
  64. });
  65. }
  66. },
  67. *updateCampusItem({ payload, states }, { call, put }) {
  68. const response = yield call(updateCampusItem, payload);
  69. if (response.success) {
  70. message.success('修改校区成功');
  71. yield put(routerRedux.push({
  72. pathname: '/campus/list',
  73. state: states,
  74. }));
  75. }
  76. },
  77. },
  78. reducers: {
  79. querySuccess(state, action) {
  80. return {
  81. ...state,
  82. ...action.payload,
  83. };
  84. },
  85. cleanItemState(state) {
  86. return {
  87. ...state,
  88. currentItem: {},
  89. };
  90. }
  91. },
  92. };