From 964427b8fc105710d64e431362edbcaa37777f85 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 3 Mar 2021 16:43:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81-=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/DevOps/Dispose.jsx | 7 +- src/forge/DevOps/Dispose/head.jsx | 7 +- src/forge/DevOps/Index.jsx | 10 +++ src/forge/DevOps/Manage/Params.jsx | 118 ++++++++++++++++++++++++++ src/forge/DevOps/Manage/ParamsNew.jsx | 51 +++++++++++ src/forge/DevOps/Manage/manage.scss | 4 + 7 files changed, 195 insertions(+), 4 deletions(-) create mode 100644 src/forge/DevOps/Manage/Params.jsx create mode 100644 src/forge/DevOps/Manage/ParamsNew.jsx create mode 100644 src/forge/DevOps/Manage/manage.scss diff --git a/src/AppConfig.js b/src/AppConfig.js index a5a063b0..a36c05b5 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx index f7323cac..06dcfbf2 100644 --- a/src/forge/DevOps/Dispose.jsx +++ b/src/forge/DevOps/Dispose.jsx @@ -137,13 +137,18 @@ function Dispose(props){ props.history.push(`/projects/${owner}/${projectsId}/devops/mould`); } + // 参数管理 + function toparameter(){ + props.history.push(`/projects/${owner}/${projectsId}/devops/params`); + } + const operate = current_user && (permission && permission !== "Reporter"); return( setVisible(false)} onOk={onOk}/>
- +
{ operate && addNew(undefined,undefined)}>新增流水线 }
diff --git a/src/forge/DevOps/Dispose/head.jsx b/src/forge/DevOps/Dispose/head.jsx index c4daecde..5ba168bb 100644 --- a/src/forge/DevOps/Dispose/head.jsx +++ b/src/forge/DevOps/Dispose/head.jsx @@ -2,15 +2,18 @@ import React from 'react'; import { AlignCenterBetween , Blueline , FlexAJ } from '../../Component/layout'; -function head({manager}){ +function head({manager , parameter}){ return( 工作流配置 - 模板使用说明 + { + parameter && 参数管理 + } { manager && 模板管理 } + 模板使用说明 ) diff --git a/src/forge/DevOps/Index.jsx b/src/forge/DevOps/Index.jsx index 193276cf..c3a29a3e 100644 --- a/src/forge/DevOps/Index.jsx +++ b/src/forge/DevOps/Index.jsx @@ -26,6 +26,11 @@ const Mould = Loadable({ loader: () => import('./Mould'), loading: Loading, }) +const Params = Loadable({ + loader: () => import('./Manage/Params'), + loading: Loading, +}) + export default ((props)=>{ return( @@ -36,6 +41,11 @@ export default ((props)=>{ (p) => () } > + () + } + > () diff --git a/src/forge/DevOps/Manage/Params.jsx b/src/forge/DevOps/Manage/Params.jsx new file mode 100644 index 00000000..616e1227 --- /dev/null +++ b/src/forge/DevOps/Manage/Params.jsx @@ -0,0 +1,118 @@ +import React , { useEffect , useState , useRef } from 'react'; +import { Banner , Blueback , FlexAJ , AlignCenter } from '../../Component/layout'; +import { Input , Table , Popconfirm , Pagination } from 'antd'; +import { Link } from 'react-router-dom'; +import styled from 'styled-components'; +import New from './ParamsNew'; +import "./manage.scss"; +import axios from 'axios'; +import { result } from 'lodash'; + +const Div = styled.div`{ + padding:24px 30px; + min-height:420px; +}`; +function Params(props){ + const [ search ,setSearch ] = useState(undefined); + const [ list ,setList ] = useState(undefined); + const [ visible ,setVisible ] = useState(false); + + let projectsId = props.match.params.projectsId; + let owner = props.match.params.owner; + + useEffect(()=>{ + Init() + },[]) + + function Init(){ + const url = `/ci/secrets.json`; + axios.get(url,{ + params:{ + owner,repo:projectsId + } + }).then(result=>{ + if(result){ + setList(result.data); + } + }).catch(error=>{}) + } + + // 搜索 + function searchValue(){ + + } + + + const columns=[ + { + title:"参数名", + dataIndex:"name", + key:1, + ellipsis:true + }, + { + title:"参数值", + dataIndex:"data", + key:2, + ellipsis:true + }, + { + title:"仓库", + dataIndex:"repo", + key:3, + ellipsis:true + }, + { + title:"操作", + dataIndex:"operation", + key:4, + render:(txt,item)=>{ + return( + + editMouldFunc(item)}>编辑 + deleteMouldFunc(item.id)} okText="确定" cancelText={"取消"}> + 删除 + + + ) + } + } + ] + + // 编辑 + function editMouldFunc(item){ + + } + + // 删除 + function deleteMouldFunc(id){ + + } + + function successFunc(){ + + } + + function CancelFunc(){ + setVisible(false) + } + + return( +
+ + + + 工作流 - 参数管理 + 返回 + + +
+
+ setVisible(true)}>新建 +
+ row.id} pagination={false}>
+
+
+ ) +} +export default Params; \ No newline at end of file diff --git a/src/forge/DevOps/Manage/ParamsNew.jsx b/src/forge/DevOps/Manage/ParamsNew.jsx new file mode 100644 index 00000000..19605c00 --- /dev/null +++ b/src/forge/DevOps/Manage/ParamsNew.jsx @@ -0,0 +1,51 @@ +import React , { useEffect , useState , useRef , forwardRef } from 'react'; +import { Modal , Input , Form } from 'antd'; + +const { TextArea } = Input; + +function ParamsNew({ form , visble,successFunc,CancelFunc}){ + const { getFieldDecorator, validateFields , setFieldsValue } = form; + const layout = { + labelCol: { span: 5 }, + wrapperCol: { span: 18 }, + }; + + // 确定 + function onConfirmFunc(){ + validateFields((error,values)=>{ + if(!error){ + successFunc(values); + } + }) + } + return( + +
+ + {getFieldDecorator("name",{ + rules:[{required:true,message:"请输入参数名称"}] + })( + + )} + + + {getFieldDecorator("value",{ + rules:[{required:true,message:"请输入参数值"}] + })( +