index.tsx 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-09-27 10:41:52
  4. * @LastEditTime: 2021-09-29 18:07:34
  5. * @LastEditors: Please set LastEditors
  6. * @Description: In User Settings Edit
  7. * @FilePath: /MedicalWisdomCheckSys/src/pages/PlatformMana/generalSetting/index.tsx
  8. */
  9. import React, { useState } from 'react'
  10. import MccsPageContainer from '@/components/MccsPageContainer/index';
  11. import MccsEditableTable from '@/components/MccsEditableTable/index';
  12. import { Checkbox } from 'antd';
  13. import { getAccreditationTypeData, addTableData, editTableData, getScoreLevelData,getLedgerType,delTableData } from './serve';
  14. import './index.less';
  15. type GeneralSettingType = {
  16. }
  17. const GeneralSetting: React.FC<GeneralSettingType> = () => {
  18. const [currentType, setCurrentType] = useState<number>();
  19. const [reloadTableOne, setReloadTableOne] = useState(false);
  20. const [reloadTableTwo, setReloadTableTwo] = useState(false);
  21. const [reloadTableThree, setReloadTableThree] = useState(false);
  22. const accreditationColumns = [
  23. {
  24. title: '序号',
  25. key: 'id',
  26. dataIndex: 'id',
  27. editable: false
  28. },
  29. {
  30. title: '名称',
  31. key: 'generalName',
  32. dataIndex: 'generalName',
  33. },
  34. {
  35. title: '组别类型',
  36. key: 'categoryType',
  37. dataIndex: 'categoryType',
  38. },
  39. {
  40. title: '操作',
  41. valueType: 'option',
  42. width: 200,
  43. render: (text: any, record: any, _: any, action: any) => [
  44. <a
  45. key="editable"
  46. onClick={() => {
  47. action?.startEditable?.(record.id);
  48. }}
  49. >
  50. 编辑
  51. </a>,
  52. <a
  53. key="delete"
  54. onClick={() => {
  55. delData(record.id,1)
  56. }}
  57. >
  58. 删除
  59. </a>,
  60. ],
  61. },
  62. ];
  63. const scoreLevelColumns = [
  64. {
  65. title: '序号',
  66. key: 'id',
  67. dataIndex: 'id',
  68. editable: false
  69. },
  70. {
  71. title: '等级分数',
  72. key: 'levelNumber',
  73. dataIndex: 'levelNumber',
  74. },
  75. {
  76. title: '要求',
  77. key: 'requirements',
  78. dataIndex: 'requirements',
  79. },
  80. {
  81. title: '备注',
  82. key: 'configNote',
  83. dataIndex: 'configNote',
  84. ellipsis:true,
  85. width:'40%'
  86. },
  87. {
  88. title: '是否启用',
  89. key: 'configStatus',
  90. dataIndex: 'configStatus',
  91. valueType: 'select',
  92. width:'10%',
  93. valueEnum: {
  94. 1: {
  95. text: '是',
  96. value:1
  97. },
  98. 0: {
  99. text: '否',
  100. value:0
  101. },
  102. },
  103. },
  104. {
  105. title: '操作',
  106. valueType: 'option',
  107. width: 200,
  108. render: (text: any, record: any, _: any, action: any) => [
  109. <a
  110. key="editable"
  111. onClick={() => {
  112. action?.startEditable?.(record.id);
  113. }}
  114. >
  115. 编辑
  116. </a>,
  117. <a
  118. key="delete"
  119. onClick={() => {
  120. delData(record.id,2)
  121. }}
  122. >
  123. 删除
  124. </a>,
  125. ],
  126. },
  127. ];
  128. const uploadLedgerColumns = [
  129. {
  130. title: '序号',
  131. key: 'id',
  132. dataIndex: 'id',
  133. editable: false
  134. },
  135. {
  136. title: '等级分数',
  137. key: 'levelNumber',
  138. dataIndex: 'levelNumber',
  139. },
  140. {
  141. title: '类型名称',
  142. key: 'generalName',
  143. dataIndex: 'generalName',
  144. },
  145. {
  146. title: '备注',
  147. key: 'configNote',
  148. dataIndex: 'configNote',
  149. width:'40%',
  150. ellipsis:true
  151. },
  152. {
  153. title: '是否启用',
  154. key: 'configStatus',
  155. dataIndex: 'configStatus',
  156. valueType: 'select',
  157. width:'15%',
  158. valueEnum: {
  159. 1: {
  160. text: '是',
  161. value:1
  162. },
  163. 0: {
  164. text: '否',
  165. value:0
  166. },
  167. },
  168. },
  169. {
  170. title: '操作',
  171. valueType: 'option',
  172. width: 200,
  173. render: (text: any, record: any, _: any, action: any) => [
  174. <a
  175. key="editable"
  176. onClick={() => {
  177. action?.startEditable?.(record.id);
  178. }}
  179. >
  180. 编辑
  181. </a>,
  182. <a
  183. key="delete"
  184. onClick={() => {
  185. delData(record.id,3)
  186. }}
  187. >
  188. 删除
  189. </a>,
  190. ],
  191. },
  192. ];
  193. const getTableDataRequest = async () => {
  194. const respData = await getAccreditationTypeData();
  195. if (respData) {
  196. setReloadTableOne(false);
  197. return {
  198. data: respData,
  199. success: true
  200. }
  201. }
  202. }
  203. const getLevelScoreTableDataRequest = async () => {
  204. //获取等级分数
  205. const respData = await getScoreLevelData();
  206. if (respData) {
  207. const _respData = respData.map((t:any)=>({...t,configStatus:`${t.configStatus}`})); //Columns的key只可以是string
  208. setReloadTableTwo(false);
  209. return {
  210. data: _respData,
  211. success: true
  212. }
  213. }
  214. }
  215. const getLedgerTableDataRequest = async () => {
  216. //获取台账类型数据
  217. const respData = await getLedgerType();
  218. if (respData) {
  219. const _respData = respData.map((t:any)=>({...t,configStatus:`${t.configStatus}`}));//Columns的key只可以是string
  220. setReloadTableThree(false);
  221. return {
  222. data: _respData,
  223. success: true
  224. }
  225. }
  226. }
  227. type dataType = {
  228. id: string | number,
  229. categoryType?: string,
  230. configNote?: string,
  231. configStatus?: number,
  232. generalName?: string,
  233. levelNumber?: string,
  234. requirements?: string
  235. }
  236. const addData = async (data: dataType, typeNum: number) => {
  237. const { categoryType,configStatus,requirements,levelNumber,configNote, generalName} = data;
  238. if (typeNum == 1) {
  239. //条文组别类型新增
  240. const postData: API.AddtableDataPostType = {
  241. configType: typeNum,
  242. categoryType,
  243. generalName
  244. }
  245. const resp = await addTableData(postData);
  246. if (resp) {
  247. setReloadTableOne(true);
  248. }
  249. }
  250. if (typeNum == 2) {
  251. //条文组别类型新增
  252. const postData: API.AddtableDataPostType = {
  253. configType: typeNum,
  254. configStatus:Number(configStatus),
  255. levelNumber,
  256. configNote,
  257. requirements
  258. }
  259. const resp = await addTableData(postData);
  260. if (resp) {
  261. setReloadTableTwo(true);
  262. }
  263. }
  264. if (typeNum == 3) {
  265. //条文组别类型新增
  266. const postData: API.AddtableDataPostType = {
  267. configType: typeNum,
  268. configStatus:Number(configStatus),
  269. generalName,
  270. levelNumber,
  271. configNote,
  272. }
  273. const resp = await addTableData(postData);
  274. if (resp) {
  275. setReloadTableThree(true);
  276. }
  277. }
  278. }
  279. const delData = async (id:number,typeNum:number)=>{
  280. const resp = await delTableData(id);
  281. if(resp){
  282. typeNum==1&&setReloadTableOne(true);
  283. typeNum==2&&setReloadTableTwo(true);
  284. typeNum==3&&setReloadTableThree(true);
  285. }
  286. }
  287. const editDataHandle = async (data: dataType, typeNum: number) => {
  288. const { categoryType,configStatus,requirements,levelNumber,configNote, generalName, id } = data;
  289. if (typeNum == 1) {
  290. //条文组别类型新增
  291. const postData: API.EdittableDataPostType = {
  292. configType: typeNum,
  293. categoryType,
  294. generalName,
  295. id: Number(id)
  296. }
  297. const resp = await editTableData(postData);
  298. if (resp) {
  299. setReloadTableOne(true);
  300. }
  301. }
  302. if (typeNum == 2) {
  303. //条文组别类型新增
  304. const postData: API.EdittableDataPostType = {
  305. configType: typeNum,
  306. configStatus:Number(configStatus),
  307. levelNumber,
  308. configNote,
  309. id: Number(id),
  310. requirements
  311. }
  312. const resp = await editTableData(postData);
  313. if (resp) {
  314. setReloadTableTwo(true);
  315. }
  316. }
  317. if (typeNum == 3) {
  318. //条文组别类型新增
  319. const postData: API.EdittableDataPostType = {
  320. configType: typeNum,
  321. configStatus:Number(configStatus),
  322. generalName,
  323. levelNumber,
  324. configNote,
  325. id: Number(id)
  326. }
  327. const resp = await editTableData(postData);
  328. if (resp) {
  329. setReloadTableThree(true);
  330. }
  331. }
  332. }
  333. return (
  334. <MccsPageContainer>
  335. <div className='block'>
  336. <div className='blockTitle'>评审细则类型设置</div>
  337. <MccsEditableTable
  338. columns={accreditationColumns}
  339. request={getTableDataRequest}
  340. addHandle={(data) => addData(data, 1)}
  341. editHandle={data => editDataHandle(data, 1)}
  342. reload={reloadTableOne}
  343. />
  344. </div>
  345. <div className='block'>
  346. <div className='blockTitle'>分数等级设置</div>
  347. <MccsEditableTable
  348. columns={scoreLevelColumns}
  349. request={getLevelScoreTableDataRequest}
  350. addHandle={(data) => addData(data, 2)}
  351. editHandle={data => editDataHandle(data, 2)}
  352. reload={reloadTableTwo}
  353. />
  354. </div>
  355. <div className='block'>
  356. <div className='blockTitle'>台账类型设置</div>
  357. <MccsEditableTable
  358. columns={uploadLedgerColumns}
  359. request={getLedgerTableDataRequest}
  360. addHandle={(data) => addData(data, 3)}
  361. editHandle={data => editDataHandle(data, 3)}
  362. reload={reloadTableThree}
  363. />
  364. </div>
  365. </MccsPageContainer>
  366. )
  367. }
  368. export default GeneralSetting