UpdateForm.jsx 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. import React from 'react';
  2. import { Modal } from 'antd';
  3. import {
  4. ProFormSelect,
  5. ProFormText,
  6. ProFormTextArea,
  7. StepsForm,
  8. ProFormRadio,
  9. ProFormDateTimePicker,
  10. } from '@ant-design/pro-form';
  11. import { useIntl, FormattedMessage } from 'umi';
  12. const UpdateForm = (props) => {
  13. const intl = useIntl();
  14. return (
  15. <StepsForm
  16. stepsProps={{
  17. size: 'small',
  18. }}
  19. stepsFormRender={(dom, submitter) => {
  20. return (
  21. <Modal
  22. width={640}
  23. bodyStyle={{
  24. padding: '32px 40px 48px',
  25. }}
  26. destroyOnClose
  27. title={intl.formatMessage({
  28. id: 'pages.searchTable.updateForm.ruleConfig',
  29. defaultMessage: '规则配置',
  30. })}
  31. visible={props.updateModalVisible}
  32. footer={submitter}
  33. onCancel={() => {
  34. props.onCancel();
  35. }}
  36. >
  37. {dom}
  38. </Modal>
  39. );
  40. }}
  41. onFinish={props.onSubmit}
  42. >
  43. <StepsForm.StepForm
  44. initialValues={{
  45. name: props.values.name,
  46. desc: props.values.desc,
  47. }}
  48. title={intl.formatMessage({
  49. id: 'pages.searchTable.updateForm.basicConfig',
  50. defaultMessage: '基本信息',
  51. })}
  52. >
  53. <ProFormText
  54. name="name"
  55. label={intl.formatMessage({
  56. id: 'pages.searchTable.updateForm.ruleName.nameLabel',
  57. defaultMessage: '规则名称',
  58. })}
  59. width="md"
  60. rules={[
  61. {
  62. required: true,
  63. message: (
  64. <FormattedMessage
  65. id="pages.searchTable.updateForm.ruleName.nameRules"
  66. defaultMessage="请输入规则名称!"
  67. />
  68. ),
  69. },
  70. ]}
  71. />
  72. <ProFormTextArea
  73. name="desc"
  74. width="md"
  75. label={intl.formatMessage({
  76. id: 'pages.searchTable.updateForm.ruleDesc.descLabel',
  77. defaultMessage: '规则描述',
  78. })}
  79. placeholder={intl.formatMessage({
  80. id: 'pages.searchTable.updateForm.ruleDesc.descPlaceholder',
  81. defaultMessage: '请输入至少五个字符',
  82. })}
  83. rules={[
  84. {
  85. required: true,
  86. message: (
  87. <FormattedMessage
  88. id="pages.searchTable.updateForm.ruleDesc.descRules"
  89. defaultMessage="请输入至少五个字符的规则描述!"
  90. />
  91. ),
  92. min: 5,
  93. },
  94. ]}
  95. />
  96. </StepsForm.StepForm>
  97. <StepsForm.StepForm
  98. initialValues={{
  99. target: '0',
  100. template: '0',
  101. }}
  102. title={intl.formatMessage({
  103. id: 'pages.searchTable.updateForm.ruleProps.title',
  104. defaultMessage: '配置规则属性',
  105. })}
  106. >
  107. <ProFormSelect
  108. name="target"
  109. width="md"
  110. label={intl.formatMessage({
  111. id: 'pages.searchTable.updateForm.object',
  112. defaultMessage: '监控对象',
  113. })}
  114. valueEnum={{
  115. 0: '表一',
  116. 1: '表二',
  117. }}
  118. />
  119. <ProFormSelect
  120. name="template"
  121. width="md"
  122. label={intl.formatMessage({
  123. id: 'pages.searchTable.updateForm.ruleProps.templateLabel',
  124. defaultMessage: '规则模板',
  125. })}
  126. valueEnum={{
  127. 0: '规则模板一',
  128. 1: '规则模板二',
  129. }}
  130. />
  131. <ProFormRadio.Group
  132. name="type"
  133. label={intl.formatMessage({
  134. id: 'pages.searchTable.updateForm.ruleProps.typeLabel',
  135. defaultMessage: '规则类型',
  136. })}
  137. options={[
  138. {
  139. value: '0',
  140. label: '强',
  141. },
  142. {
  143. value: '1',
  144. label: '弱',
  145. },
  146. ]}
  147. />
  148. </StepsForm.StepForm>
  149. <StepsForm.StepForm
  150. initialValues={{
  151. type: '1',
  152. frequency: 'month',
  153. }}
  154. title={intl.formatMessage({
  155. id: 'pages.searchTable.updateForm.schedulingPeriod.title',
  156. defaultMessage: '设定调度周期',
  157. })}
  158. >
  159. <ProFormDateTimePicker
  160. name="time"
  161. width="md"
  162. label={intl.formatMessage({
  163. id: 'pages.searchTable.updateForm.schedulingPeriod.timeLabel',
  164. defaultMessage: '开始时间',
  165. })}
  166. rules={[
  167. {
  168. required: true,
  169. message: (
  170. <FormattedMessage
  171. id="pages.searchTable.updateForm.schedulingPeriod.timeRules"
  172. defaultMessage="请选择开始时间!"
  173. />
  174. ),
  175. },
  176. ]}
  177. />
  178. <ProFormSelect
  179. name="frequency"
  180. label={intl.formatMessage({
  181. id: 'pages.searchTable.updateForm.object',
  182. defaultMessage: '监控对象',
  183. })}
  184. width="md"
  185. valueEnum={{
  186. month: '月',
  187. week: '周',
  188. }}
  189. />
  190. </StepsForm.StepForm>
  191. </StepsForm>
  192. );
  193. };
  194. export default UpdateForm;