|
@@ -1,29 +1,42 @@
|
|
|
-import React, { useState } from 'react'
|
|
|
-import { Form, Select, Input, DatePicker, Row, Col, InputNumber, Checkbox } from 'antd'
|
|
|
-const { Option } = Select
|
|
|
-export default function StepFour({ syncDataForm }) {
|
|
|
+import React, { useMemo, useState } from 'react'
|
|
|
+import { Form, Select, Input, DatePicker, Row, Col, InputNumber } from 'antd'
|
|
|
+import CronSelect from '../../../component/CronSelect'
|
|
|
+
|
|
|
+const FormItem = Form.Item
|
|
|
+
|
|
|
+export default function StepFour({
|
|
|
+ onRef,
|
|
|
+ syncDataForm,
|
|
|
+ partitionNumHandle,
|
|
|
+ cron_data,
|
|
|
+}) {
|
|
|
// 是否展示分区时间
|
|
|
const [showPartitionTime, setShowPartitionTime] = useState(false)
|
|
|
- // 是否展示定时规则高级配置
|
|
|
- const [showRuleConfig, setShowRuleConfig] = useState(false)
|
|
|
- // 定时规则单位选择
|
|
|
- const suffixSelector = (
|
|
|
- <Select
|
|
|
- style={{
|
|
|
- width: 70,
|
|
|
- }}
|
|
|
- defaultValue="秒"
|
|
|
- >
|
|
|
- <Option value="秒">秒</Option>
|
|
|
- <Option value="分钟">分钟</Option>
|
|
|
- <Option value="小时">小时</Option>
|
|
|
- <Option value="日">日</Option>
|
|
|
- <Option value="周">周</Option>
|
|
|
- <Option value="月">月</Option>
|
|
|
- </Select>
|
|
|
- );
|
|
|
+ const [cronData, setCronData] = useState(null)
|
|
|
+ const [partitionNum, setPartitionNum] = useState(null)
|
|
|
+ useState(() => {
|
|
|
+ setCronData(syncDataForm.getFieldValue('cron_expression'))
|
|
|
+ if (syncDataForm.getFieldValue('partition_info')) {
|
|
|
+ setShowPartitionTime(true)
|
|
|
+ }
|
|
|
+ }, [])
|
|
|
+ useMemo(() => {
|
|
|
+ setCronData(cron_data)
|
|
|
+ if (syncDataForm.getFieldValue('partition_info')) {
|
|
|
+ setShowPartitionTime(true)
|
|
|
+ }
|
|
|
+ }, [cron_data])
|
|
|
+ useState(() => {
|
|
|
+ if (partitionNumHandle.num !== null) {
|
|
|
+ setPartitionNum(partitionNumHandle.num)
|
|
|
+ }
|
|
|
+ }, [partitionNumHandle.num])
|
|
|
+ const onPartitionNumChange = val => {
|
|
|
+ setPartitionNum(val)
|
|
|
+ partitionNumHandle.func(val)
|
|
|
+ }
|
|
|
return (
|
|
|
- <>
|
|
|
+ <div>
|
|
|
<p
|
|
|
style={{
|
|
|
fontWeight: 600,
|
|
@@ -39,17 +52,26 @@ export default function StepFour({ syncDataForm }) {
|
|
|
span: 2,
|
|
|
}}
|
|
|
wrapperCol={{
|
|
|
- span: 6,
|
|
|
+ span: 8,
|
|
|
}}
|
|
|
initialValues={{
|
|
|
partition_info: '',
|
|
|
- replace_param: '',
|
|
|
executor_timeout: 0,
|
|
|
executor_fail_retry_count: 0,
|
|
|
- inc_start_time: ''
|
|
|
- }}
|
|
|
- >
|
|
|
- <Form.Item
|
|
|
+ inc_start_time: '',
|
|
|
+ }}>
|
|
|
+ <FormItem
|
|
|
+ label="同步任务名称"
|
|
|
+ name="job_desc"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入同步任务名',
|
|
|
+ },
|
|
|
+ ]}>
|
|
|
+ <Input placeholder="请输入同步任务名称" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
label="路由策略"
|
|
|
name="executor_route_strategy"
|
|
|
rules={[
|
|
@@ -60,14 +82,14 @@ export default function StepFour({ syncDataForm }) {
|
|
|
]}>
|
|
|
<Select
|
|
|
options={[
|
|
|
- {label: '第一个', value: 'FIRST'},
|
|
|
- {label: '最后一个', value: 'LAST'}
|
|
|
+ { label: '第一个', value: 'FIRST' },
|
|
|
+ { label: '最后一个', value: 'LAST' },
|
|
|
]}
|
|
|
allowClear
|
|
|
- placeholder='请选择路由策略'
|
|
|
+ placeholder="请选择路由策略"
|
|
|
/>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
label="阻塞处理方式"
|
|
|
name="executor_block_strategy"
|
|
|
rules={[
|
|
@@ -78,44 +100,60 @@ export default function StepFour({ syncDataForm }) {
|
|
|
]}>
|
|
|
<Select
|
|
|
options={[
|
|
|
- {label: '单机串行', value: 'SERIAL_EXECUTION'},
|
|
|
- {label: '丢弃后续调度', value: 'SERIAL_EXECUTION1'},
|
|
|
- {label: '覆盖之前调度', value: 'SERIAL_EXECUTION2'},
|
|
|
+ { label: '单机串行', value: 'SERIAL_EXECUTION' },
|
|
|
+ { label: '丢弃后续调度', value: 'SERIAL_EXECUTION1' },
|
|
|
+ { label: '覆盖之前调度', value: 'SERIAL_EXECUTION2' },
|
|
|
]}
|
|
|
allowClear
|
|
|
- placeholder='请选择阻塞处理方式'
|
|
|
+ placeholder="请选择阻塞处理方式"
|
|
|
/>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
+ label="定时规则"
|
|
|
+ name="cron_expression"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择定时规则',
|
|
|
+ },
|
|
|
+ ]}>
|
|
|
+ <CronSelect cron_data={cronData} ref={onRef} />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
label="超时时间"
|
|
|
name="executor_timeout"
|
|
|
- required
|
|
|
- >
|
|
|
- <InputNumber min={0} addonAfter="分钟"/>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入超时时间',
|
|
|
+ },
|
|
|
+ ]}>
|
|
|
+ <InputNumber min={0} addonAfter="分钟" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem
|
|
|
label="失败重试次数"
|
|
|
name="executor_fail_retry_count"
|
|
|
- required
|
|
|
- >
|
|
|
- <InputNumber min={0} addonAfter="次" />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
- label="增量开始时间"
|
|
|
- name="inc_start_time"
|
|
|
- >
|
|
|
- <DatePicker showTime placeholder='请选择增量开始时间'/>
|
|
|
- </Form.Item>
|
|
|
- <Form.Item
|
|
|
- label="增量时间字段"
|
|
|
- name="replace_param"
|
|
|
- >
|
|
|
- <Input placeholder="-DlastTime='%s' -DcurrentTime='%s'"/>
|
|
|
- </Form.Item>
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入失败重试次数',
|
|
|
+ },
|
|
|
+ ]}>
|
|
|
+ <InputNumber min={0} addonAfter="次" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="增量开始时间" name="inc_start_time">
|
|
|
+ <DatePicker showTime placeholder="请选择增量开始时间" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="上次执行时间" name="last_time">
|
|
|
+ <Input placeholder="lastTime" />
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="本次执行时间" name="current_time">
|
|
|
+ <Input placeholder="currentTime" />
|
|
|
+ </FormItem>
|
|
|
<Row span={24}>
|
|
|
<Col span={8}>
|
|
|
- <Form.Item
|
|
|
- label="区分字段"
|
|
|
+ <FormItem
|
|
|
+ label="分区字段"
|
|
|
name="partition_info"
|
|
|
labelCol={{
|
|
|
span: 6,
|
|
@@ -131,14 +169,14 @@ export default function StepFour({ syncDataForm }) {
|
|
|
setShowPartitionTime(false)
|
|
|
}
|
|
|
}}
|
|
|
- placeholder='请输入区分字段'
|
|
|
+ placeholder="请输入分区字段"
|
|
|
/>
|
|
|
- </Form.Item>
|
|
|
+ </FormItem>
|
|
|
</Col>
|
|
|
{showPartitionTime ? (
|
|
|
<>
|
|
|
<Col span={8}>
|
|
|
- <Form.Item
|
|
|
+ <FormItem
|
|
|
label="分区时间"
|
|
|
name="partition_time"
|
|
|
labelCol={{
|
|
@@ -149,67 +187,36 @@ export default function StepFour({ syncDataForm }) {
|
|
|
}}>
|
|
|
<Select
|
|
|
options={[
|
|
|
- {label: 'yyyy-MM-dd', value: 'yyyy-MM-dd'},
|
|
|
- {label: 'yyyyMMdd', value: 'yyyyMMdd'},
|
|
|
- {label: 'yyyy/MM/dd', value: 'yyyy/MM/dd'},
|
|
|
+ { label: '%Y-%m-%d', value: '%Y-%m-%d' },
|
|
|
+ { label: '%Y%m%d', value: '%Y%m%d' },
|
|
|
+ { label: '%Y/%m/%d', value: '%Y/%m/%d' },
|
|
|
]}
|
|
|
allowClear
|
|
|
- defaultValue={'yyyy-MM-dd'}
|
|
|
+ defaultValue={'%Y-%m-%d'}
|
|
|
+ onSelect={val =>
|
|
|
+ syncDataForm.setFieldValue('partition_time', val)
|
|
|
+ }
|
|
|
/>
|
|
|
- </Form.Item>
|
|
|
+ </FormItem>
|
|
|
</Col>
|
|
|
<Col>
|
|
|
- <InputNumber defaultValue={0} style={{ marginLeft: '10px' }} max={0}/>
|
|
|
+ <InputNumber
|
|
|
+ value={partitionNum}
|
|
|
+ onChange={onPartitionNumChange}
|
|
|
+ style={{ marginLeft: '10px' }}
|
|
|
+ max={0}
|
|
|
+ min={-20}
|
|
|
+ />
|
|
|
</Col>
|
|
|
</>
|
|
|
) : (
|
|
|
''
|
|
|
)}
|
|
|
</Row>
|
|
|
- <Row span={24}>
|
|
|
- <Col span={8}>
|
|
|
- <Form.Item
|
|
|
- label="定时规则"
|
|
|
- name="job_cron"
|
|
|
- labelCol={{
|
|
|
- span: 6,
|
|
|
- }}
|
|
|
- wrapperCol={{
|
|
|
- span: 18,
|
|
|
- }}
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入定时规则',
|
|
|
- },
|
|
|
- ]}>
|
|
|
- {showRuleConfig ? <Input placeholder='请输入定时规则'/> : <InputNumber
|
|
|
- min={0}
|
|
|
- addonAfter={suffixSelector}
|
|
|
- placeholder='请输入定时规则'
|
|
|
- style={{ width: '100%',}}
|
|
|
- />}
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- <Col span={8} style={{marginLeft: '20px'}}>
|
|
|
- <Form.Item labelCol={{span: 3}}>
|
|
|
- <Checkbox checked={showRuleConfig} onChange={(e) => {setShowRuleConfig(e.target.checked)}}>高级配置</Checkbox>
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
-
|
|
|
- <Form.Item
|
|
|
- label="同步任务名称"
|
|
|
- name="job_desc"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入定时规则',
|
|
|
- },
|
|
|
- ]}>
|
|
|
- <Input placeholder='请输入同步任务名称' />
|
|
|
- </Form.Item>
|
|
|
+ <FormItem label="JVM启动参数" name="jvm_param">
|
|
|
+ <Input placeholder="-Xms1024m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError" />
|
|
|
+ </FormItem>
|
|
|
</Form>
|
|
|
- </>
|
|
|
+ </div>
|
|
|
)
|
|
|
}
|