You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.1 KiB

2 years ago
  1. import {
  2. ProFormDateTimePicker,
  3. ProFormRadio,
  4. ProFormSelect,
  5. ProFormText,
  6. ProFormTextArea,
  7. StepsForm,
  8. } from '@ant-design/pro-components';
  9. import { Modal } from 'antd';
  10. import React from 'react';
  11. export interface FormValueType extends Partial<API.UserInfo> {
  12. target?: string;
  13. template?: string;
  14. type?: string;
  15. time?: string;
  16. frequency?: string;
  17. }
  18. export interface UpdateFormProps {
  19. onCancel: (flag?: boolean, formVals?: FormValueType) => void;
  20. onSubmit: (values: FormValueType) => Promise<void>;
  21. updateModalVisible: boolean;
  22. values: Partial<API.UserInfo>;
  23. }
  24. const UpdateForm: React.FC<UpdateFormProps> = (props) => (
  25. <StepsForm
  26. stepsProps={{
  27. size: 'small',
  28. }}
  29. stepsFormRender={(dom, submitter) => {
  30. return (
  31. <Modal
  32. width={640}
  33. bodyStyle={{ padding: '32px 40px 48px' }}
  34. destroyOnClose
  35. title="规则配置"
  36. open={props.updateModalVisible}
  37. footer={submitter}
  38. onCancel={() => props.onCancel()}
  39. >
  40. {dom}
  41. </Modal>
  42. );
  43. }}
  44. onFinish={props.onSubmit}
  45. >
  46. <StepsForm.StepForm
  47. initialValues={{
  48. name: props.values.name,
  49. nickName: props.values.nickName,
  50. }}
  51. title="基本信息"
  52. >
  53. <ProFormText
  54. width="md"
  55. name="name"
  56. label="规则名称"
  57. rules={[{ required: true, message: '请输入规则名称!' }]}
  58. />
  59. <ProFormTextArea
  60. name="desc"
  61. width="md"
  62. label="规则描述"
  63. placeholder="请输入至少五个字符"
  64. rules={[
  65. { required: true, message: '请输入至少五个字符的规则描述!', min: 5 },
  66. ]}
  67. />
  68. </StepsForm.StepForm>
  69. <StepsForm.StepForm
  70. initialValues={{
  71. target: '0',
  72. template: '0',
  73. }}
  74. title="配置规则属性"
  75. >
  76. <ProFormSelect
  77. width="md"
  78. name="target"
  79. label="监控对象"
  80. valueEnum={{
  81. 0: '表一',
  82. 1: '表二',
  83. }}
  84. />
  85. <ProFormSelect
  86. width="md"
  87. name="template"
  88. label="规则模板"
  89. valueEnum={{
  90. 0: '规则模板一',
  91. 1: '规则模板二',
  92. }}
  93. />
  94. <ProFormRadio.Group
  95. name="type"
  96. width="md"
  97. label="规则类型"
  98. options={[
  99. {
  100. value: '0',
  101. label: '强',
  102. },
  103. {
  104. value: '1',
  105. label: '弱',
  106. },
  107. ]}
  108. />
  109. </StepsForm.StepForm>
  110. <StepsForm.StepForm
  111. initialValues={{
  112. type: '1',
  113. frequency: 'month',
  114. }}
  115. title="设定调度周期"
  116. >
  117. <ProFormDateTimePicker
  118. name="time"
  119. label="开始时间"
  120. rules={[{ required: true, message: '请选择开始时间!' }]}
  121. />
  122. <ProFormSelect
  123. name="frequency"
  124. label="监控对象"
  125. width="xs"
  126. valueEnum={{
  127. month: '月',
  128. week: '周',
  129. }}
  130. />
  131. </StepsForm.StepForm>
  132. </StepsForm>
  133. );
  134. export default UpdateForm;