|
|
|
@ -4,7 +4,7 @@ import { Button, Input, Space, Select, Divider, Table, TableColumnProps, Message
|
|
|
|
import { getComponentClassify } from '@/api/componentClassify';
|
|
|
|
import { getComponentClassify } from '@/api/componentClassify';
|
|
|
|
import { IconSearch } from '@arco-design/web-react/icon';
|
|
|
|
import { IconSearch } from '@arco-design/web-react/icon';
|
|
|
|
import AddModal from './addModal';
|
|
|
|
import AddModal from './addModal';
|
|
|
|
import { getEnvConfigList, deleteEnvConfig } from '@/api/componentDeployEnv';
|
|
|
|
import { getEnvConfigList, deleteEnvConfig, testEnv } from '@/api/componentDeployEnv';
|
|
|
|
|
|
|
|
|
|
|
|
const Option = Select.Option;
|
|
|
|
const Option = Select.Option;
|
|
|
|
|
|
|
|
|
|
|
|
@ -13,6 +13,7 @@ const ComponentEnv = () => {
|
|
|
|
const [architectureType, setArchitectureType] = useState(['x86_64', 'aarch64']); // 结构类型
|
|
|
|
const [architectureType, setArchitectureType] = useState(['x86_64', 'aarch64']); // 结构类型
|
|
|
|
const [visible, setVisible] = useState(false);
|
|
|
|
const [visible, setVisible] = useState(false);
|
|
|
|
const [data, setData] = useState([]);
|
|
|
|
const [data, setData] = useState([]);
|
|
|
|
|
|
|
|
const [editingRecord, setEditingRecord] = useState(null);
|
|
|
|
|
|
|
|
|
|
|
|
const columns: TableColumnProps[] = [
|
|
|
|
const columns: TableColumnProps[] = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -58,17 +59,24 @@ const ComponentEnv = () => {
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
// 环境测试处理函数
|
|
|
|
// 环境测试处理函数
|
|
|
|
const handleTestEnv = (record: any) => {
|
|
|
|
const handleTestEnv = async (record: any) => {
|
|
|
|
Message.info(`正在测试环境 ${record.name}...`);
|
|
|
|
Message.info(`正在测试环境 ${record.name}...`);
|
|
|
|
// 这里可以添加实际的环境测试逻辑
|
|
|
|
const res: any = await testEnv(record.id);
|
|
|
|
console.log('测试环境:', record);
|
|
|
|
if (res.code === 200) {
|
|
|
|
|
|
|
|
Message.success(`环境 ${record.name} 测试成功`);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
Message.error(`环境 ${record.name} 测试失败: ${res.message}`);
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 环境配置处理函数
|
|
|
|
// 环境配置处理函数
|
|
|
|
const handleConfigEnv = (record: any) => {
|
|
|
|
const handleConfigEnv = (record: any) => {
|
|
|
|
Message.info(`配置环境 ${record.name}`);
|
|
|
|
// 设置编辑记录
|
|
|
|
// 这里可以添加环境配置逻辑,比如打开配置模态框
|
|
|
|
setEditingRecord(record);
|
|
|
|
console.log('配置环境:', record);
|
|
|
|
|
|
|
|
|
|
|
|
// 打开模态框
|
|
|
|
|
|
|
|
setVisible(true);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 删除环境处理函数
|
|
|
|
// 删除环境处理函数
|
|
|
|
@ -78,7 +86,7 @@ const ComponentEnv = () => {
|
|
|
|
content: (
|
|
|
|
content: (
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<p>删除环境后,组件实例将无法继续部署到该环境下。</p>
|
|
|
|
<p>删除环境后,组件实例将无法继续部署到该环境下。</p>
|
|
|
|
<p style={{ color: 'red', fontWeight: 'bold' }}>确认删除环境 {record.name} IP: {record.ip}?</p>
|
|
|
|
<p style={{ color: 'red', fontWeight: 'bold' }}>确认删除环境 {record.name}?</p>
|
|
|
|
<p>请输入环境名称 <strong>{record.name}</strong> 以确认删除:</p>
|
|
|
|
<p>请输入环境名称 <strong>{record.name}</strong> 以确认删除:</p>
|
|
|
|
<Input placeholder={`请输入 ${record.name}`} id="confirm-env-name" />
|
|
|
|
<Input placeholder={`请输入 ${record.name}`} id="confirm-env-name" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -89,7 +97,6 @@ const ComponentEnv = () => {
|
|
|
|
const confirmInput = document.getElementById('confirm-env-name') as HTMLInputElement;
|
|
|
|
const confirmInput = document.getElementById('confirm-env-name') as HTMLInputElement;
|
|
|
|
if (!confirmInput || confirmInput.value !== record.name) {
|
|
|
|
if (!confirmInput || confirmInput.value !== record.name) {
|
|
|
|
Message.error('环境名称输入不匹配,请重新输入');
|
|
|
|
Message.error('环境名称输入不匹配,请重新输入');
|
|
|
|
// 阻止关闭确认框
|
|
|
|
|
|
|
|
return Promise.reject();
|
|
|
|
return Promise.reject();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -169,7 +176,10 @@ const ComponentEnv = () => {
|
|
|
|
<Button
|
|
|
|
<Button
|
|
|
|
type="primary"
|
|
|
|
type="primary"
|
|
|
|
style={{ borderRadius: 4 }}
|
|
|
|
style={{ borderRadius: 4 }}
|
|
|
|
onClick={() => setVisible(true)}
|
|
|
|
onClick={() => {
|
|
|
|
|
|
|
|
setEditingRecord(null);
|
|
|
|
|
|
|
|
setVisible(true);
|
|
|
|
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
>
|
|
|
|
+ 新增
|
|
|
|
+ 新增
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|
@ -183,14 +193,14 @@ const ComponentEnv = () => {
|
|
|
|
visible={visible}
|
|
|
|
visible={visible}
|
|
|
|
envType={envType}
|
|
|
|
envType={envType}
|
|
|
|
setVisible={setVisible}
|
|
|
|
setVisible={setVisible}
|
|
|
|
onOk={() => {
|
|
|
|
onOk={(value) => {
|
|
|
|
console.log('Add component env');
|
|
|
|
setEditingRecord(value);
|
|
|
|
getEnvList(); // 新增完成后刷新列表
|
|
|
|
getEnvList(); // 新增完成后刷新列表
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
|
|
|
|
record={editingRecord}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
export default ComponentEnv;
|
|
|
|
export default ComponentEnv;
|
|
|
|
|
|
|
|
|
|
|
|
|