From 4b7f3dc8973bcd42a512492271c2933768152d8f Mon Sep 17 00:00:00 2001 From: ZLY Date: Tue, 2 Dec 2025 10:22:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(component):=20=E6=94=AF=E6=8C=81=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=8A=A0=E8=BD=BD=E4=B8=8D=E5=90=8C=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE=E6=95=99=E7=A8=8B=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../componentDeployment/index.tsx | 107 ++++++++++-------- .../componentEnv/configTutorial.tsx | 15 ++- .../componentEnv/envExtra.tsx | 2 +- 3 files changed, 74 insertions(+), 50 deletions(-) diff --git a/src/pages/componentDevelopment/componentDeployment/index.tsx b/src/pages/componentDevelopment/componentDeployment/index.tsx index f51f61f..0990a55 100644 --- a/src/pages/componentDevelopment/componentDeployment/index.tsx +++ b/src/pages/componentDevelopment/componentDeployment/index.tsx @@ -1,67 +1,82 @@ import React, { useState } from 'react'; import styles from './style/index.module.less'; -import { Button, Input, Radio, Space } from '@arco-design/web-react'; +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(undefined); + const [tutorialVisible, setTutorialVisible] = useState(false); // 状态选项配置 const statusOptions = [ { label: '全部', value: undefined }, - { label: '启用中', value: "RUN" }, - { label: '已下架', value: "STOP" } + { label: '启用中', value: 'RUN' }, + { label: '已下架', value: 'STOP' } ]; return ( -
-
- setSelectedStatus(value)} - name="button-radio-group" - > - {statusOptions.map((item) => { - return ( - - {({ checked }) => { - return ( - - ); - }} - - ); - })} - - - - } - placeholder={'搜索'} - style={{ width: 236 }} - value={searchKeyword} - onChange={(value) => setSearchKeyword(value)} - onPressEnter={() => { - // 触发搜索 - }} - /> - - -
-
- + {statusOptions.map((item) => { + return ( + + {({ checked }) => { + return ( + + ); + }} + + ); + })} + + + + } + placeholder={'搜索'} + style={{ width: 236 }} + value={searchKeyword} + onChange={(value) => setSearchKeyword(value)} + onPressEnter={() => { + // 触发搜索 + }} + /> + + +
+
+ +
- + + setTutorialVisible(false)} + footer={null} + style={{ top: 20, width: '100%' }} + > + + + ); }; diff --git a/src/pages/componentDevelopment/componentEnv/configTutorial.tsx b/src/pages/componentDevelopment/componentEnv/configTutorial.tsx index 8c8b8cd..db17950 100644 --- a/src/pages/componentDevelopment/componentEnv/configTutorial.tsx +++ b/src/pages/componentDevelopment/componentEnv/configTutorial.tsx @@ -1,15 +1,24 @@ import React, { useEffect, useState } from 'react'; import ReactMarkdown from 'react-markdown'; -const ConfigTutorial = () => { +type tutorialTypeProps = { + tutorialType: 'env' | 'compInstance'; +}; + +const ConfigTutorial: React.FC = ({ tutorialType }) => { const [markdown, setMarkdown] = useState(''); useEffect(() => { - fetch('/assets/环境配置教程.md') + const fileMap = { + env: '/assets/环境配置教程.md', + compInstance: '/assets/组件实例指引.md' + }; + + fetch(fileMap[tutorialType]) .then(response => response.text()) .then(text => setMarkdown(text)) .catch(error => console.error('Error loading markdown file:', error)); - }, []); + }, [tutorialType]); return (
diff --git a/src/pages/componentDevelopment/componentEnv/envExtra.tsx b/src/pages/componentDevelopment/componentEnv/envExtra.tsx index 42989d3..56a46fa 100644 --- a/src/pages/componentDevelopment/componentEnv/envExtra.tsx +++ b/src/pages/componentDevelopment/componentEnv/envExtra.tsx @@ -155,7 +155,7 @@ const EnvExtra = ({ currentEnvData }) => { footer={null} style={{ top: 20, width: '100%' }} > - + );