|
import TopNItem from '@/components/top-n-item'; |
|
import { useTranslate } from '@/hooks/common-hooks'; |
|
import { useTestDbConnect } from '@/hooks/flow-hooks'; |
|
import { Button, Flex, Form, Input, InputNumber, Select } from 'antd'; |
|
import { useCallback } from 'react'; |
|
import { ExeSQLOptions } from '../constant'; |
|
import { IOperatorForm } from '../interface'; |
|
|
|
const ExeSQLForm = ({ onValuesChange, form }: IOperatorForm) => { |
|
const { t } = useTranslate('flow'); |
|
const { testDbConnect, loading } = useTestDbConnect(); |
|
|
|
const handleTest = useCallback(async () => { |
|
const ret = await form?.validateFields(); |
|
testDbConnect(ret); |
|
}, [form, testDbConnect]); |
|
|
|
return ( |
|
<Form |
|
name="basic" |
|
labelCol={{ span: 7 }} |
|
wrapperCol={{ span: 17 }} |
|
autoComplete="off" |
|
form={form} |
|
onValuesChange={onValuesChange} |
|
> |
|
<Form.Item |
|
label={t('dbType')} |
|
name={'db_type'} |
|
rules={[{ required: true }]} |
|
> |
|
<Select options={ExeSQLOptions}></Select> |
|
</Form.Item> |
|
<Form.Item |
|
label={t('database')} |
|
name={'database'} |
|
rules={[{ required: true }]} |
|
> |
|
<Input></Input> |
|
</Form.Item> |
|
<Form.Item |
|
label={t('username')} |
|
name={'username'} |
|
rules={[{ required: true }]} |
|
> |
|
<Input></Input> |
|
</Form.Item> |
|
<Form.Item label={t('host')} name={'host'} rules={[{ required: true }]}> |
|
<Input></Input> |
|
</Form.Item> |
|
<Form.Item label={t('port')} name={'port'} rules={[{ required: true }]}> |
|
<InputNumber></InputNumber> |
|
</Form.Item> |
|
<Form.Item |
|
label={t('password')} |
|
name={'password'} |
|
rules={[{ required: true }]} |
|
> |
|
<Input.Password></Input.Password> |
|
</Form.Item> |
|
<Form.Item |
|
label={t('loop')} |
|
name={'loop'} |
|
tooltip={t('loopTip')} |
|
rules={[{ required: true }]} |
|
> |
|
<InputNumber></InputNumber> |
|
</Form.Item> |
|
<TopNItem initialValue={30} max={1000}></TopNItem> |
|
<Flex justify={'end'}> |
|
<Button type={'primary'} loading={loading} onClick={handleTest}> |
|
Test |
|
</Button> |
|
</Flex> |
|
</Form> |
|
); |
|
}; |
|
|
|
export default ExeSQLForm; |
|
|