You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.7 KiB
TypeScript

import React, { useState } from 'react';
import styles from './style/index.module.less';
import { Button, Input, Modal, Radio, Space } from '@arco-design/web-react';
import { IconSearch } from '@arco-design/web-react/icon';
import CollapseList from './collapseList';
import { startStatusConstant } from '@/const/isdp/componentDeploy';
import ConfigTutorial from '@/pages/componentDevelopment/componentEnv/configTutorial';
const ComponentDeployment = () => {
const [searchKeyword, setSearchKeyword] = useState('');
const [selectedStatus, setSelectedStatus] = useState<string | undefined>(undefined);
const [tutorialVisible, setTutorialVisible] = useState(false);
// 状态选项配置
const statusOptions = [
{ label: '全部', value: undefined },
{ label: '启用中', value: 'RUN' },
{ label: '已下架', value: 'STOP' }
];
return (
<>
<div className={styles['component-deployment']}>
<div className={styles['header']}>
<Radio.Group
value={selectedStatus}
onChange={(value) => setSelectedStatus(value)}
name="button-radio-group"
>
{statusOptions.map((item) => {
return (
<Radio key={item.label} value={item.value}>
{({ checked }) => {
return (
<Button tabIndex={-1} key={item.label} shape="round" type={checked ? 'primary' : 'default'}>
{item.label}
</Button>
);
}}
</Radio>
);
})}
</Radio.Group>
<Space>
<Input
prefix={<IconSearch />}
placeholder={'搜索'}
style={{ width: 236 }}
value={searchKeyword}
onChange={(value) => setSearchKeyword(value)}
onPressEnter={() => {
// 触发搜索
}}
/>
<Button
type="primary"
style={{ marginLeft: 5, borderRadius: 4 }}
onClick={() => setTutorialVisible(true)}
>
</Button>
</Space>
</div>
<div className={styles['content']}>
<CollapseList searchKeyword={searchKeyword} runStatus={selectedStatus} />
</div>
</div>
<Modal
title="组件实例教程"
visible={tutorialVisible}
onCancel={() => setTutorialVisible(false)}
footer={null}
style={{ top: 20, width: '100%' }}
>
<ConfigTutorial tutorialType="compInstance" />
</Modal>
</>
);
};
export default ComponentDeployment;