Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

model.ts 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { IKnowledge } from '@/interfaces/database/knowledge';
  2. import kbService from '@/services/knowledge-service';
  3. import { DvaModel } from 'umi';
  4. export interface KnowledgeModelState {
  5. data: IKnowledge[];
  6. knowledge: IKnowledge;
  7. }
  8. const model: DvaModel<KnowledgeModelState> = {
  9. namespace: 'knowledgeModel',
  10. state: {
  11. data: [],
  12. knowledge: {} as IKnowledge,
  13. },
  14. reducers: {
  15. updateState(state, { payload }) {
  16. return {
  17. ...state,
  18. ...payload,
  19. };
  20. },
  21. setKnowledge(state, { payload }) {
  22. return {
  23. ...state,
  24. knowledge: payload,
  25. };
  26. },
  27. },
  28. effects: {
  29. *rmKb({ payload = {} }, { call, put }) {
  30. const { data } = yield call(kbService.rmKb, payload);
  31. const { retcode } = data;
  32. if (retcode === 0) {
  33. yield put({
  34. type: 'getList',
  35. payload: {},
  36. });
  37. }
  38. },
  39. *getList({ payload = {} }, { call, put }) {
  40. const { data } = yield call(kbService.getList, payload);
  41. const { retcode, data: res } = data;
  42. if (retcode === 0) {
  43. yield put({
  44. type: 'updateState',
  45. payload: {
  46. data: res,
  47. },
  48. });
  49. }
  50. },
  51. *getKnowledgeDetail({ payload = {} }, { call, put }) {
  52. const { data } = yield call(kbService.get_kb_detail, payload);
  53. if (data.retcode === 0) {
  54. yield put({ type: 'setKnowledge', payload: data.data });
  55. }
  56. return data.retcode;
  57. },
  58. },
  59. };
  60. export default model;