model.ts 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-09-14 10:46:45
  4. * @LastEditTime: 2021-11-12 17:31:31
  5. * @LastEditors: Please set LastEditors
  6. * @Description: In User Settings Edit
  7. * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/articleManagement/model.ts
  8. */
  9. import { useState, useEffect } from 'react';
  10. import {
  11. getTreeFileTableData,
  12. getSelfEvaluation,
  13. selfEvolutionCommit
  14. } from '@/pages/GradeHospitalAccreditation/articleManagement/server';
  15. import { delDetailRule } from '@/pages/GradeHospitalAccreditation/accreditationDetail/service';
  16. import {getScoreLevelData} from '@/pages/PlatformMana/generalSetting/serve';
  17. //ledgerUpload
  18. const ledgerUpload = () => {
  19. const [drawerVisible, setDrawerVisible] = useState(false);
  20. const [scoreList, setScoreList] = useState<any[]>([]);
  21. const [records, setRecords] = useState<MccsRecordList.MccsRecordListType>();
  22. const [currentRecord, setCurrentRecord] = useState<API.tableDataItemType>();
  23. const [currentLeafData, setCurrentLeafData] = useState<API.LeafDataType>();
  24. const [selfEvaluationRecords, setSelfEvaluationRecords] = useState<MccsRecordList.MccsRecordListType>([]); //自评记录
  25. // const [drawerFormType, setDrawerFormType] = useState<'ARTICLE_SET' | 'BATCHSETTING'>( 'ARTICLE_SET');
  26. const [targetScores,setTargetScores] = useState<MccsClickableTabs.TabType[]>([]);
  27. const [selectedSelfEvolution,setSelectedSelfEvolution] = useState<{label:string,value:any}>(); //MccsClickableTabs value值
  28. const [currentSelectedSelefEvolution,setCurrentSelectedSelefEvolution] = useState<{label:string,value:any}>(); //MccsClickableTabs 点击对象
  29. const getTableData = async () => {
  30. //根据选中表格的id获取对应的详情
  31. if (currentRecord) {
  32. const resp = await getTreeFileTableData({
  33. id: currentRecord ? currentRecord.id : 0,
  34. });
  35. if (resp) {
  36. const { leafData, isLeaf } = resp;
  37. if (isLeaf && leafData) {
  38. setCurrentLeafData(leafData);
  39. }
  40. }
  41. return [];
  42. }
  43. };
  44. const delRuleHandle = async (id: number) => {
  45. await delDetailRule(id);
  46. };
  47. const getSelfEvaluationRecordList = async (id: number) => {
  48. //获取自评记录(无法从accreditationDetail迁移)
  49. const resp = await getSelfEvaluation(id);
  50. if (resp) {
  51. const { list }: { list: API.GetSelfEvaluationRequestType } = resp;
  52. const tempArr = list.map((t) => ({
  53. evaluation: t.selfEvaluation,
  54. details: [
  55. {
  56. name: t.userName,
  57. fileName: t.selfEvaluation,
  58. fileUrl: '',
  59. historyRecords: [],
  60. // recordTypeName: t.selfEvaluation,
  61. createTime: t.createDate,
  62. },
  63. ],
  64. }));
  65. setSelfEvaluationRecords(tempArr);
  66. }
  67. };
  68. const commitSelfEvolution = async ()=>{
  69. //提交自评
  70. if(currentLeafData&&currentSelectedSelefEvolution){
  71. //存在详情信息,且已选择评分
  72. const {id} = currentLeafData;
  73. let _userData = localStorage.getItem('userData');
  74. if(_userData){
  75. let userData:{name:string,userId:number} = JSON.parse(_userData)
  76. const params = {
  77. id:Number(id),
  78. selfEvaluation:`${currentSelectedSelefEvolution?currentSelectedSelefEvolution:'null'}`,
  79. userId:userData?.userId,
  80. userName:userData?.name
  81. }
  82. const resp = await selfEvolutionCommit(params);
  83. if(resp&&currentRecord){
  84. //刷新自评记录
  85. getSelfEvaluationRecordList(Number(currentRecord.id));
  86. setSelectedSelfEvolution(undefined); //清空选中项
  87. setCurrentSelectedSelefEvolution(undefined);
  88. }
  89. }
  90. }else{
  91. // notification['info']({
  92. // message: '请选择评分!',
  93. // });
  94. }
  95. }
  96. const onSelfEvolutionTabChange = (value:{label:string,value:any})=>{
  97. //自评tab切换回调
  98. value&&setCurrentSelectedSelefEvolution(value);
  99. value&&setSelectedSelfEvolution(value);
  100. }
  101. const getSelectableSelfScoreList = async ()=>{
  102. //获取自评可选列表
  103. const resp = await getScoreLevelData();
  104. const listFilted = resp.filter((t:any)=>t.configStatus != 0);
  105. const list = listFilted.map((t:any)=>({label:t.levelNumber,value:t.levelNumber}));
  106. setTargetScores(list);
  107. }
  108. useEffect(() => {
  109. //点击时获取对应详情
  110. getTableData();
  111. // getSelectableSelfScoreList();
  112. }, [currentRecord]);
  113. useEffect(() => {
  114. if (currentLeafData) {
  115. const {
  116. systemEvaluation,
  117. targetEvaluation,
  118. selfEvaluation,
  119. siteEvaluation,
  120. records = [],
  121. } = currentLeafData;
  122. const tempScoreList = [
  123. {
  124. label: '自评',
  125. value: selfEvaluation ? selfEvaluation : '-',
  126. },
  127. // {
  128. // label: '现场查核',
  129. // value: siteEvaluation ? siteEvaluation : '-',
  130. // },
  131. {
  132. label: '目标',
  133. value: targetEvaluation ? targetEvaluation : '-',
  134. },
  135. {
  136. label: '系统评分',
  137. value: systemEvaluation ? systemEvaluation : '-',
  138. },
  139. ];
  140. // console.log({tempScoreList});
  141. const tempRecords = records.map((item: API.RecordsItemType) => {
  142. if (item.details) {
  143. const tempArr = item.details.map((val) => ({
  144. name: val.userName,
  145. fileName: val.fileName,
  146. fileUrl: val.fileUrl,
  147. createTime: val.createTime,
  148. recordTypeName: val.recordTypeName,
  149. historyRecords: [],
  150. }));
  151. return {
  152. evaluation: item.evaluation,
  153. details: tempArr,
  154. };
  155. }
  156. return { evaluation: 'null', details: [] };
  157. });
  158. setScoreList(tempScoreList);
  159. setRecords(tempRecords);
  160. }
  161. }, [currentLeafData]);
  162. return {
  163. drawerVisible,
  164. currentRecord,
  165. setCurrentRecord,
  166. setDrawerVisible,
  167. scoreList,
  168. records,
  169. delRuleHandle,
  170. currentLeafData,
  171. getSelfEvaluationRecordList,
  172. selfEvaluationRecords,
  173. setCurrentSelectedSelefEvolution,
  174. onSelfEvolutionTabChange,
  175. commitSelfEvolution,
  176. selectedSelfEvolution,
  177. targetScores,
  178. getTableData,
  179. getSelectableSelfScoreList
  180. };
  181. };
  182. export default ledgerUpload;