updateForm.jsx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import React,{useState} from 'react';
  2. import {
  3. ProFormSelect,
  4. ProFormText,
  5. ModalForm,
  6. ProFormDependency
  7. } from '@ant-design/pro-form';
  8. import { useIntl, FormattedMessage } from 'umi';
  9. import { getApportionmentLevelListNoPage } from '../apportionmentLevel/service';
  10. const UpdateForm = (props) => {
  11. const { updateModalVisible, updateModalVisibleChange, values, onSubmit } = props;
  12. const [selectedLevelList,setSelectedLevelList] = useState(null); //可选的分摊层级列表
  13. const [selectedLevel,setSelectedLevel] = useState(null);
  14. // console.log({values});
  15. return (
  16. <>
  17. {
  18. JSON.stringify(values) !== '{}' && <ModalForm
  19. title="编辑医院"
  20. width="800px"
  21. initialValues={{ ...values }}
  22. labelCol={{ span: 5, offset: 3 }}
  23. layout={'horizontal'}
  24. visible={updateModalVisible}
  25. onVisibleChange={(visible) => updateModalVisibleChange(visible)}
  26. onFinish={(value) => onSubmit({ ...values, ...value })}
  27. >
  28. <ProFormText
  29. label="责任中心名"
  30. rules={[
  31. {
  32. required: true,
  33. message: (
  34. <FormattedMessage id="pages.searchTable.responsibilityName" defaultMessage="医院名是必填项" />
  35. ),
  36. },
  37. ]}
  38. width="sm"
  39. name="responsibilityName"
  40. />
  41. <ProFormSelect
  42. rules={[
  43. {
  44. required: true,
  45. message: (
  46. <FormattedMessage id="pages.searchTable.isGatherCenter" defaultMessage="请选择是否为汇总中心" />
  47. ),
  48. },
  49. ]}
  50. options={[
  51. {
  52. value: 1,
  53. label: '是',
  54. },
  55. {
  56. value: 0,
  57. label: '否',
  58. },
  59. ]}
  60. width="sm"
  61. name="isGatherCenter"
  62. label="是否汇总中心"
  63. />
  64. <ProFormSelect
  65. rules={[
  66. {
  67. required: true,
  68. message: (
  69. <FormattedMessage id="pages.searchTable.responsibilityType" defaultMessage="请选择责任类型" />
  70. ),
  71. },
  72. ]}
  73. options={[
  74. {
  75. value: 1,
  76. label: '收费中心',
  77. },
  78. {
  79. value: 2,
  80. label: '成本(费用)中心',
  81. },
  82. ]}
  83. width="sm"
  84. name="responsibilityType"
  85. label="选择责任类型"
  86. />
  87. <ProFormSelect
  88. rules={[
  89. {
  90. required: true,
  91. message: (
  92. <FormattedMessage id="pages.searchTable.shareLevel" defaultMessage="请选择分摊级别" />
  93. ),
  94. },
  95. ]}
  96. request={ async ()=>{
  97. const resp = await getApportionmentLevelListNoPage();
  98. const {status,data} = resp;
  99. if(status==200){
  100. setSelectedLevelList(data.list);
  101. return data.list.map(item=>({label:item.leverSort,value:item.leverSort}))
  102. }else{
  103. return []
  104. }
  105. }}
  106. width="sm"
  107. name={['shareLevel']}
  108. label="选择分摊级别"
  109. />
  110. <ProFormDependency name={['shareLevel']}>
  111. {({shareLevel}) => {
  112. let name='12',render=false;
  113. if(shareLevel&&selectedLevelList&&selectedLevelList.length>0){
  114. const arr = selectedLevelList.filter(item=>item.leverSort == shareLevel);
  115. // console.log({arr,selectedLevelList,shareLevel});
  116. if(arr.length>0){
  117. name = arr[0].shareName;
  118. setSelectedLevel(arr[0]);
  119. render=true;
  120. }
  121. }
  122. // console.log({name});
  123. return shareLevel&&render ? (
  124. <ProFormText
  125. initialValue={name}
  126. disabled
  127. label="分摊层级名称"
  128. rules={[
  129. {
  130. required: false,
  131. message: (
  132. <FormattedMessage id="pages.searchTable.parentName" defaultMessage="..." />
  133. ),
  134. },
  135. ]}
  136. placeholder={name}
  137. width="sm"
  138. />
  139. ) : <></>;
  140. }}
  141. </ProFormDependency>
  142. </ModalForm>
  143. }
  144. </>
  145. );
  146. };
  147. export default UpdateForm;