Commit e2b9d6fe by zhaochengxiang

代理数据源信息

parent 4034ded4
......@@ -77,6 +77,6 @@
"last 1 safari version"
]
},
"proxy": "http://139.198.127.28:18189",
"proxy": "http://139.198.127.28:17778",
"homepage": "http://myhost/data-govern"
}
......@@ -8,8 +8,8 @@ export function *getScopesAndSupportedTargetTypes() {
return { scopes, typies };
}
export function* getAllSupportedDatasourceTypies() {
return yield call(service.getAllSupportedDatasourceTypies);
export function* getAllSupportedDatasourceTypies(payload) {
return yield call(service.getAllSupportedDatasourceTypies, payload);
}
export function* getSupportedTargetTypes() {
......
......@@ -4,8 +4,8 @@ export function getScopes() {
return GetJSON("/authservice/personal/joinedScopes");
}
export function getAllSupportedDatasourceTypies() {
return GetJSON("/metadataharvester/datasource/getAllSupportedDatasourceTypies");
export function getAllSupportedDatasourceTypies(payload) {
return GetJSON("/metadataharvester/datasource/getAllSupportedDatasourceTypies", payload);
}
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 { UploadOutlined } from '@ant-design/icons';
import { dispatch } from '../../../../model';
import { showMessage } from '../../../../util';
import { AppContext } from '../../../../App';
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 { visible, onCancel, databases, action, id, scope } = props;
......@@ -20,6 +46,9 @@ const UpdateDatasourceModal = (props) => {
const [ credentialForm ] = Form.useForm();
const [ datasourceForm ] = Form.useForm();
const [ proxyDatasourceForm ] = Form.useForm();
const {env} = useContext(AppContext);
useEffect(() => {
......@@ -34,6 +63,9 @@ const UpdateDatasourceModal = (props) => {
const getAllSupportedDatasourceTypies = () => {
dispatch({
type: 'datasource.getAllSupportedDatasourceTypies',
payload: {
namespace: env?.domainId
},
callback: data => {
function compare(val1, val2) {
var a = val1.seq;
......@@ -86,7 +118,7 @@ const UpdateDatasourceModal = (props) => {
}
const setFormFiledsValue = (data) => {
let _credentialFieldsValue = {}, _datasourceFieldsValue = {};
let _credentialFieldsValue = {}, _datasourceFieldsValue = {}, _proxyDatasourceFieldsValue = {};
data && data.credential && (data.credential.credentialParameters||[]).forEach(item => {
_credentialFieldsValue[item.name||''] = item.value||'';
......@@ -99,6 +131,12 @@ const UpdateDatasourceModal = (props) => {
});
datasourceForm.setFieldsValue(_datasourceFieldsValue);
if (data.proxyDatasource) {
_proxyDatasourceFieldsValue[data.proxyDatasource.name||''] = data.proxyDatasource.value||'';
}
proxyDatasourceForm.setFieldsValue(data.proxyDatasource);
}
const onDatabaseChange = (value) => {
......@@ -113,6 +151,7 @@ const UpdateDatasourceModal = (props) => {
try {
const datasourceRow = await datasourceForm.validateFields();
const credentialRow = await credentialForm.validateFields();
const proxyDatasourceRow = await proxyDatasourceForm.validateFields();
let newDatasource = {...currentSupportedDatasourceTypies, ...{
namespace: ((scope||[]).length>0?scope[0]:''),
......@@ -157,7 +196,11 @@ const UpdateDatasourceModal = (props) => {
item.value = fileListBindName[index].data||'';
}
}
})
});
if (newDatasource?.proxyDatasource) {
newDatasource.proxyDatasource.value = proxyDatasourceRow[newDatasource.proxyDatasource.name];
}
if (test) {
setValidateLoading(true);
......@@ -200,6 +243,7 @@ const UpdateDatasourceModal = (props) => {
setFileListBindName([]);
credentialForm.resetFields();
datasourceForm.resetFields();
proxyDatasourceForm.resetFields();
}
const onRemoveFile = (name, file) => {
......@@ -308,6 +352,24 @@ const UpdateDatasourceModal = (props) => {
})
}
</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>
<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