auditHistoryStore.ts 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. import { makeAutoObservable } from 'mobx';
  2. import { message } from 'antd';
  3. import { apis, ModifyDocumentApiParams } from '@/apis';
  4. import { State, ReadonlyState, StateAction, DocumentLibListStore } from '../types';
  5. // 定义状态
  6. const stateGenerator = (): ReadonlyState => ({
  7. listLoading: false,
  8. list: [],
  9. infoModalId: '',
  10. infoModalOpen: false,
  11. page: {
  12. pageNum: 1,
  13. pageSize: 10,
  14. total: 0,
  15. },
  16. });
  17. // 修改状态
  18. const stateActionsGenerator = (state: State): StateAction => {
  19. return {
  20. setListLoading: (loading) => {
  21. state.listLoading = loading;
  22. },
  23. setList: (list) => {
  24. state.list = list;
  25. },
  26. setInfoModalId: (id) => {
  27. state.infoModalId = id;
  28. },
  29. setInfoModalOpen: (open) => {
  30. state.infoModalOpen = open;
  31. },
  32. setPage: (page) => {
  33. state.page = page;
  34. },
  35. };
  36. };
  37. // 使用仓库
  38. const useKnowledgeLibListStore = (): DocumentLibListStore => {
  39. const state = makeAutoObservable(stateGenerator());
  40. const actions = stateActionsGenerator(state);
  41. const api = {
  42. // 获取审核列表
  43. fetchApplicationLibList: async (userId: string) => {
  44. actions.setListLoading(true);
  45. try {
  46. const data = {
  47. pageNumber: state.page.pageNum,
  48. pageSize: state.page.pageSize,
  49. approver: userId,
  50. };
  51. const res:any = await apis.fetchAuditHistoryList(data);
  52. console.log(res.rows, 'rew.rows');
  53. actions.setList(res.rows);
  54. actions.setPage({
  55. ...state.page,
  56. total: res.total,
  57. });
  58. } catch (error: any) {
  59. console.error(error);
  60. } finally {
  61. actions.setListLoading(false);
  62. }
  63. },
  64. // 应用审核
  65. modifyDocumentLib: async (documentId: string, userId: string, data: ModifyDocumentApiParams) => {
  66. try {
  67. const res = await apis.modifyTakaiAuditDocumentLibApi(documentId, data);
  68. // 获取审核列表
  69. api.fetchApplicationLibList(userId);
  70. if(res.data === 1 && res.code === 200){
  71. message.success('修改成功');
  72. }else{
  73. message.error('修改失败');
  74. }
  75. } catch (error: any) {
  76. message.error(error.msg);
  77. }
  78. },
  79. // 获取详情
  80. fetchTakaiApplicationDetail: async (appId: string) => {
  81. try {
  82. const res = await apis.fetchTakaiApplicationDetail(appId);
  83. console.log(res, 'resresres');
  84. return res;
  85. } catch (error: any) {
  86. message.error(error.msg);
  87. }
  88. },
  89. }
  90. // 点击查看出现弹窗
  91. const onClickfetchTakaiApplicationDetail = async (appId: string) => {
  92. if(appId){
  93. await api.fetchTakaiApplicationDetail(appId);
  94. }
  95. }
  96. // 更改分页
  97. const onChangePagination: DocumentLibListStore['onChangePagination'] = async (pageNumber, pageSize) => {
  98. actions.setPage({
  99. ...state.page,
  100. pageNum: pageNumber,
  101. pageSize: pageSize,
  102. });
  103. // 获取知识库列表
  104. await api.fetchApplicationLibList('');
  105. }
  106. // 点击创建
  107. const onClickCreate: DocumentLibListStore['onClickCreate'] = () => {
  108. const initialInfoModalId = stateGenerator().infoModalId;
  109. actions.setInfoModalId(initialInfoModalId);
  110. actions.setInfoModalOpen(true);
  111. }
  112. // 点击修改
  113. const onClickModify: DocumentLibListStore['onClickModify'] = (documentId) => {
  114. actions.setInfoModalId(documentId);
  115. actions.setInfoModalOpen(true);
  116. }
  117. // 信息弹出层-点击通过
  118. const infoModalOnClickConfirm: DocumentLibListStore['infoModalOnClickConfirm'] = async (documentId, userId, data) => {
  119. const initialInfoModalOpen = stateGenerator().infoModalOpen;
  120. actions.setInfoModalOpen(initialInfoModalOpen);
  121. if (documentId) {
  122. // 审核通过
  123. console.log(data, 'datadata');
  124. await api.modifyDocumentLib(documentId, userId, data);
  125. }
  126. }
  127. // 信息弹出层-点击拒绝
  128. const infoModalOnClickCancel: DocumentLibListStore['infoModalOnClickCancel'] = async(documentId, userId, data) => {
  129. const initialInfoModalOpen = stateGenerator().infoModalOpen;
  130. actions.setInfoModalOpen(initialInfoModalOpen);
  131. if (documentId) {
  132. // 审核拒绝
  133. await api.modifyDocumentLib(documentId, userId, data);
  134. }
  135. }
  136. const infoModalOnClickClose: DocumentLibListStore['infoModalOnClickClose'] = () => {
  137. const initialInfoModalOpen = stateGenerator().infoModalOpen;
  138. actions.setInfoModalOpen(initialInfoModalOpen);
  139. }
  140. // 初始渲染
  141. const init: DocumentLibListStore['init'] = async (userId) => {
  142. // 获取知识库列表
  143. await api.fetchApplicationLibList(userId);
  144. }
  145. // 状态重置
  146. const reset: DocumentLibListStore['reset'] = () => {
  147. const initialListLoading = stateGenerator().listLoading;
  148. const initialList = stateGenerator().list;
  149. const initialInfoModalId = stateGenerator().infoModalId;
  150. const initialInfoModalOpen = stateGenerator().infoModalOpen;
  151. const initialPage = stateGenerator().page;
  152. actions.setListLoading(initialListLoading);
  153. actions.setList(initialList);
  154. actions.setInfoModalId(initialInfoModalId);
  155. actions.setInfoModalOpen(initialInfoModalOpen);
  156. actions.setPage(initialPage);
  157. }
  158. return {
  159. state,
  160. onChangePagination,
  161. onClickCreate,
  162. onClickModify,
  163. onClickfetchTakaiApplicationDetail,
  164. infoModalOnClickConfirm,
  165. infoModalOnClickCancel,
  166. infoModalOnClickClose,
  167. init,
  168. reset
  169. };
  170. };
  171. export default useKnowledgeLibListStore();