courseware.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { message } from 'antd';
  2. import { routerRedux } from 'dva/router';
  3. import {
  4. queryCoursewareList,
  5. queryCoursewareItem,
  6. createCoursewareItem,
  7. updateCoursewareItem,
  8. deleteCoursewareItem,
  9. } from '../services/courseware';
  10. export default {
  11. namespace: 'courseware',
  12. state: {
  13. list: [],
  14. pageNo: 1,
  15. pageSize: 15,
  16. totalSize: 0,
  17. currentItem: {},
  18. },
  19. effects: {
  20. *fetchCoursewareList({ payload }, { call, put }) {
  21. const response = yield call(queryCoursewareList, 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. *fetchCoursewareItem({ payload }, { call, put }) {
  36. const response = yield call(queryCoursewareItem, 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. *createCoursewareItem({ payload, state }, { call, put }) {
  48. const response = yield call(createCoursewareItem, payload);
  49. if (response.success) {
  50. message.success('创建课件成功');
  51. yield put(routerRedux.push({
  52. state,
  53. pathname: '/product/courseware',
  54. }));
  55. }
  56. },
  57. *deleteCoursewareItem({ payload, states }, { call, put }) {
  58. const response = yield call(deleteCoursewareItem, payload);
  59. if (response.success) {
  60. message.success('删除课件成功');
  61. yield put({
  62. type: 'fetchCoursewareList',
  63. payload: states.Queryers,
  64. });
  65. }
  66. },
  67. *updateCoursewareItem({ payload, states }, { call, put }) {
  68. const response = yield call(updateCoursewareItem, payload);
  69. if (response.success) {
  70. message.success('修改课件成功');
  71. yield put(routerRedux.push({
  72. pathname: '/product/courseware',
  73. state: states,
  74. }));
  75. }
  76. },
  77. },
  78. reducers: {
  79. querySuccess(state, action) {
  80. return {
  81. ...state,
  82. ...action.payload,
  83. };
  84. },
  85. fixResourceList(state, action) {
  86. return {
  87. ...state,
  88. currentItem: {
  89. ...state.currentItem,
  90. resourceList: action.payload,
  91. }
  92. };
  93. },
  94. cleanItemState(state) {
  95. return {
  96. ...state,
  97. currentItem: {},
  98. };
  99. },
  100. },
  101. };