Commit e2b9d6fe by zhaochengxiang

代理数据源信息

parent 4034ded4
...@@ -77,6 +77,6 @@ ...@@ -77,6 +77,6 @@
"last 1 safari version" "last 1 safari version"
] ]
}, },
"proxy": "http://139.198.127.28:18189", "proxy": "http://139.198.127.28:17778",
"homepage": "http://myhost/data-govern" "homepage": "http://myhost/data-govern"
} }
...@@ -8,8 +8,8 @@ export function *getScopesAndSupportedTargetTypes() { ...@@ -8,8 +8,8 @@ export function *getScopesAndSupportedTargetTypes() {
return { scopes, typies }; return { scopes, typies };
} }
export function* getAllSupportedDatasourceTypies() { export function* getAllSupportedDatasourceTypies(payload) {
return yield call(service.getAllSupportedDatasourceTypies); return yield call(service.getAllSupportedDatasourceTypies, payload);
} }
export function* getSupportedTargetTypes() { export function* getSupportedTargetTypes() {
......
...@@ -4,8 +4,8 @@ export function getScopes() { ...@@ -4,8 +4,8 @@ export function getScopes() {
return GetJSON("/authservice/personal/joinedScopes"); return GetJSON("/authservice/personal/joinedScopes");
} }
export function getAllSupportedDatasourceTypies() { export function getAllSupportedDatasourceTypies(payload) {
return GetJSON("/metadataharvester/datasource/getAllSupportedDatasourceTypies"); return GetJSON("/metadataharvester/datasource/getAllSupportedDatasourceTypies", payload);
} }
export function getSupportedTargetTypes() { export function getSupportedTargetTypes() {
......
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState, useContext } from 'react';
import { Modal, Select, Form, Input, Divider, Space, Button, Upload } from 'antd'; import { Modal, Select, Form, Input, Divider, Space, Button, Upload } from 'antd';
import { UploadOutlined } from '@ant-design/icons'; import { UploadOutlined } from '@ant-design/icons';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
import { showMessage } from '../../../../util'; import { showMessage } from '../../../../util';
import { AppContext } from '../../../../App';
const { Option } = Select; const { Option } = Select;
const ProxyDatasourceItem = ({ value = {}, datasources = [], onChange }) => {
const onDatabaseChange = (id) => {
const filterDatasources = datasources?.filter(item => item.id === id);
if (filterDatasources.length > 0) {
onChange?.(filterDatasources[0]);
}
}
return (
<Select
value={value}
style={{ width: 150 }}
onChange={onDatabaseChange}
>
{
datasources?.map((item, index) => {
return (
<Option key={index} value={item.id}>{item.name}</Option>
);
})
}
</Select>
);
}
const UpdateDatasourceModal = (props) => { const UpdateDatasourceModal = (props) => {
const { visible, onCancel, databases, action, id, scope } = props; const { visible, onCancel, databases, action, id, scope } = props;
...@@ -20,6 +46,9 @@ const UpdateDatasourceModal = (props) => { ...@@ -20,6 +46,9 @@ const UpdateDatasourceModal = (props) => {
const [ credentialForm ] = Form.useForm(); const [ credentialForm ] = Form.useForm();
const [ datasourceForm ] = Form.useForm(); const [ datasourceForm ] = Form.useForm();
const [ proxyDatasourceForm ] = Form.useForm();
const {env} = useContext(AppContext);
useEffect(() => { useEffect(() => {
...@@ -34,6 +63,9 @@ const UpdateDatasourceModal = (props) => { ...@@ -34,6 +63,9 @@ const UpdateDatasourceModal = (props) => {
const getAllSupportedDatasourceTypies = () => { const getAllSupportedDatasourceTypies = () => {
dispatch({ dispatch({
type: 'datasource.getAllSupportedDatasourceTypies', type: 'datasource.getAllSupportedDatasourceTypies',
payload: {
namespace: env?.domainId
},
callback: data => { callback: data => {
function compare(val1, val2) { function compare(val1, val2) {
var a = val1.seq; var a = val1.seq;
...@@ -86,7 +118,7 @@ const UpdateDatasourceModal = (props) => { ...@@ -86,7 +118,7 @@ const UpdateDatasourceModal = (props) => {
} }
const setFormFiledsValue = (data) => { const setFormFiledsValue = (data) => {
let _credentialFieldsValue = {}, _datasourceFieldsValue = {}; let _credentialFieldsValue = {}, _datasourceFieldsValue = {}, _proxyDatasourceFieldsValue = {};
data && data.credential && (data.credential.credentialParameters||[]).forEach(item => { data && data.credential && (data.credential.credentialParameters||[]).forEach(item => {
_credentialFieldsValue[item.name||''] = item.value||''; _credentialFieldsValue[item.name||''] = item.value||'';
...@@ -99,6 +131,12 @@ const UpdateDatasourceModal = (props) => { ...@@ -99,6 +131,12 @@ const UpdateDatasourceModal = (props) => {
}); });
datasourceForm.setFieldsValue(_datasourceFieldsValue); datasourceForm.setFieldsValue(_datasourceFieldsValue);
if (data.proxyDatasource) {
_proxyDatasourceFieldsValue[data.proxyDatasource.name||''] = data.proxyDatasource.value||'';
}
proxyDatasourceForm.setFieldsValue(data.proxyDatasource);
} }
const onDatabaseChange = (value) => { const onDatabaseChange = (value) => {
...@@ -113,6 +151,7 @@ const UpdateDatasourceModal = (props) => { ...@@ -113,6 +151,7 @@ const UpdateDatasourceModal = (props) => {
try { try {
const datasourceRow = await datasourceForm.validateFields(); const datasourceRow = await datasourceForm.validateFields();
const credentialRow = await credentialForm.validateFields(); const credentialRow = await credentialForm.validateFields();
const proxyDatasourceRow = await proxyDatasourceForm.validateFields();
let newDatasource = {...currentSupportedDatasourceTypies, ...{ let newDatasource = {...currentSupportedDatasourceTypies, ...{
namespace: ((scope||[]).length>0?scope[0]:''), namespace: ((scope||[]).length>0?scope[0]:''),
...@@ -157,7 +196,11 @@ const UpdateDatasourceModal = (props) => { ...@@ -157,7 +196,11 @@ const UpdateDatasourceModal = (props) => {
item.value = fileListBindName[index].data||''; item.value = fileListBindName[index].data||'';
} }
} }
}) });
if (newDatasource?.proxyDatasource) {
newDatasource.proxyDatasource.value = proxyDatasourceRow[newDatasource.proxyDatasource.name];
}
if (test) { if (test) {
setValidateLoading(true); setValidateLoading(true);
...@@ -200,6 +243,7 @@ const UpdateDatasourceModal = (props) => { ...@@ -200,6 +243,7 @@ const UpdateDatasourceModal = (props) => {
setFileListBindName([]); setFileListBindName([]);
credentialForm.resetFields(); credentialForm.resetFields();
datasourceForm.resetFields(); datasourceForm.resetFields();
proxyDatasourceForm.resetFields();
} }
const onRemoveFile = (name, file) => { const onRemoveFile = (name, file) => {
...@@ -308,6 +352,24 @@ const UpdateDatasourceModal = (props) => { ...@@ -308,6 +352,24 @@ const UpdateDatasourceModal = (props) => {
}) })
} }
</Form> </Form>
{
(currentSupportedDatasourceTypies&&currentSupportedDatasourceTypies.proxyDatasource) && <React.Fragment>
<Divider>代理数据源信息</Divider>
<Form {...formItemLayout} form={proxyDatasourceForm}>
{
<Form.Item
label={currentSupportedDatasourceTypies.proxyDatasource.cnName}
name={currentSupportedDatasourceTypies.proxyDatasource.name||''}
rules={[{ required: currentSupportedDatasourceTypies.proxyDatasource.required, message: '必填项'}]}
>
<ProxyDatasourceItem datasources={currentSupportedDatasourceTypies.proxyDatasource.selectItem} />
</Form.Item>
}
</Form>
</React.Fragment>
}
<Divider>认证信息</Divider> <Divider>认证信息</Divider>
<Form {...formItemLayout} form={credentialForm}> <Form {...formItemLayout} form={credentialForm}>
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment