form.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import { routerRedux } from 'dva/router';
  2. import { message } from 'antd';
  3. import { fakeSubmitForm } from '../services/api';
  4. export default {
  5. namespace: 'form',
  6. state: {
  7. step: {
  8. },
  9. regularFormSubmitting: false,
  10. stepFormSubmitting: false,
  11. advancedFormSubmitting: false,
  12. },
  13. effects: {
  14. *submitRegularForm({ payload }, { call, put }) {
  15. yield put({
  16. type: 'changeRegularFormSubmitting',
  17. payload: true,
  18. });
  19. yield call(fakeSubmitForm, payload);
  20. yield put({
  21. type: 'changeRegularFormSubmitting',
  22. payload: false,
  23. });
  24. message.success('提交成功');
  25. },
  26. *submitStepForm({ payload }, { call, put }) {
  27. yield put({
  28. type: 'changeStepFormSubmitting',
  29. payload: true,
  30. });
  31. yield call(fakeSubmitForm, payload);
  32. yield put({
  33. type: 'saveStepFormData',
  34. payload,
  35. });
  36. yield put({
  37. type: 'changeStepFormSubmitting',
  38. payload: false,
  39. });
  40. yield put(routerRedux.push('/form/step-form/result'));
  41. },
  42. *submitAdvancedForm({ payload }, { call, put }) {
  43. yield put({
  44. type: 'changeAdvancedFormSubmitting',
  45. payload: true,
  46. });
  47. yield call(fakeSubmitForm, payload);
  48. yield put({
  49. type: 'changeAdvancedFormSubmitting',
  50. payload: false,
  51. });
  52. message.success('提交成功');
  53. },
  54. },
  55. reducers: {
  56. saveStepFormData(state, { payload }) {
  57. return {
  58. ...state,
  59. step: {
  60. ...state.step,
  61. ...payload,
  62. },
  63. };
  64. },
  65. changeRegularFormSubmitting(state, { payload }) {
  66. return {
  67. ...state,
  68. regularFormSubmitting: payload,
  69. };
  70. },
  71. changeStepFormSubmitting(state, { payload }) {
  72. return {
  73. ...state,
  74. stepFormSubmitting: payload,
  75. };
  76. },
  77. changeAdvancedFormSubmitting(state, { payload }) {
  78. return {
  79. ...state,
  80. advancedFormSubmitting: payload,
  81. };
  82. },
  83. },
  84. };