model.js.vm 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #set($upperEntityPath=$table.entityPath.toUpperCase())
  2. import { message } from 'antd';
  3. import router from 'umi/router';
  4. import { $!{upperEntityPath}_NAMESPACE } from '../actions/$!{table.entityPath}';
  5. import { list, submit, detail, remove } from '../services/$!{table.entityPath}';
  6. export default {
  7. namespace: $!{upperEntityPath}_NAMESPACE,
  8. state: {
  9. data: {
  10. list: [],
  11. pagination: false,
  12. },
  13. detail: {},
  14. },
  15. effects: {
  16. *fetchList({ payload }, { call, put }) {
  17. const response = yield call(list, payload);
  18. if (response.success) {
  19. yield put({
  20. type: 'saveList',
  21. payload: {
  22. list: response.data.records,
  23. pagination: {
  24. total: response.data.total,
  25. current: response.data.current,
  26. pageSize: response.data.size,
  27. },
  28. },
  29. });
  30. }
  31. },
  32. *fetchDetail({ payload }, { call, put }) {
  33. const response = yield call(detail, payload);
  34. if (response.success) {
  35. yield put({
  36. type: 'saveDetail',
  37. payload: {
  38. detail: response.data,
  39. },
  40. });
  41. }
  42. },
  43. *clearDetail({ payload }, { put }) {
  44. yield put({
  45. type: 'removeDetail',
  46. payload: { payload },
  47. });
  48. },
  49. *submit({ payload }, { call }) {
  50. const response = yield call(submit, payload);
  51. if (response.success) {
  52. message.success('提交成功');
  53. router.push('/$!{cfg.servicePackage}/$!{table.entityPath}');
  54. }
  55. },
  56. *remove({ payload }, { call }) {
  57. const {
  58. data: { keys },
  59. success,
  60. } = payload;
  61. const response = yield call(remove, { ids: keys });
  62. if (response.success) {
  63. success();
  64. }
  65. },
  66. },
  67. reducers: {
  68. saveList(state, action) {
  69. return {
  70. ...state,
  71. data: action.payload,
  72. };
  73. },
  74. saveDetail(state, action) {
  75. return {
  76. ...state,
  77. detail: action.payload.detail,
  78. };
  79. },
  80. removeDetail(state) {
  81. return {
  82. ...state,
  83. detail: {},
  84. };
  85. },
  86. },
  87. };