工作流-参数
This commit is contained in:
parent
afd6904349
commit
964427b8fc
|
@ -27,7 +27,7 @@ if (isDev) {
|
||||||
}
|
}
|
||||||
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
|
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
|
||||||
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
|
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() {
|
function clearAllCookie() {
|
||||||
cookie.remove('_educoder_session', { path: '/' });
|
cookie.remove('_educoder_session', { path: '/' });
|
||||||
|
|
|
@ -137,13 +137,18 @@ function Dispose(props){
|
||||||
props.history.push(`/projects/${owner}/${projectsId}/devops/mould`);
|
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");
|
const operate = current_user && (permission && permission !== "Reporter");
|
||||||
|
|
||||||
return(
|
return(
|
||||||
<Spin spinning={spining}>
|
<Spin spinning={spining}>
|
||||||
<PipelineName branchList={branchList} visible={visible} value={updateInfo} onCancel={()=>setVisible(false)} onOk={onOk}/>
|
<PipelineName branchList={branchList} visible={visible} value={updateInfo} onCancel={()=>setVisible(false)} onOk={onOk}/>
|
||||||
<div className="disposePanel">
|
<div className="disposePanel">
|
||||||
<Head manager={ operate ? toModalManage : undefined} />
|
<Head manager={ operate ? toModalManage : undefined} parameter={operate ? toparameter :undefined}/>
|
||||||
<Div>
|
<Div>
|
||||||
{ operate && <Blueback onClick={()=>addNew(undefined,undefined)}>新增流水线</Blueback> }
|
{ operate && <Blueback onClick={()=>addNew(undefined,undefined)}>新增流水线</Blueback> }
|
||||||
<div className="mt20 disposeList">
|
<div className="mt20 disposeList">
|
||||||
|
|
|
@ -2,15 +2,18 @@ import React from 'react';
|
||||||
import { AlignCenterBetween , Blueline , FlexAJ } from '../../Component/layout';
|
import { AlignCenterBetween , Blueline , FlexAJ } from '../../Component/layout';
|
||||||
|
|
||||||
|
|
||||||
function head({manager}){
|
function head({manager , parameter}){
|
||||||
return(
|
return(
|
||||||
<AlignCenterBetween>
|
<AlignCenterBetween>
|
||||||
<span className="font-20">工作流配置</span>
|
<span className="font-20">工作流配置</span>
|
||||||
<FlexAJ>
|
<FlexAJ>
|
||||||
<a href={`https://forum.trustie.net/forums/3111/detail`} target="_blank" className="color-grey-6"><i className="iconfont icon-tishi1 font-14 mr3"></i>模板使用说明</a>
|
{
|
||||||
|
parameter && <Blueline onClick={parameter}>参数管理</Blueline>
|
||||||
|
}
|
||||||
{
|
{
|
||||||
manager && <Blueline style={{marginLeft:"20px"}} onClick={manager}>模板管理</Blueline>
|
manager && <Blueline style={{marginLeft:"20px"}} onClick={manager}>模板管理</Blueline>
|
||||||
}
|
}
|
||||||
|
<a href={`https://forum.trustie.net/forums/3111/detail`} target="_blank" className="color-grey-6 ml20"><i className="iconfont icon-tishi1 font-14 mr3"></i>模板使用说明</a>
|
||||||
</FlexAJ>
|
</FlexAJ>
|
||||||
</AlignCenterBetween>
|
</AlignCenterBetween>
|
||||||
)
|
)
|
||||||
|
|
|
@ -26,6 +26,11 @@ const Mould = Loadable({
|
||||||
loader: () => import('./Mould'),
|
loader: () => import('./Mould'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
const Params = Loadable({
|
||||||
|
loader: () => import('./Manage/Params'),
|
||||||
|
loading: Loading,
|
||||||
|
})
|
||||||
|
|
||||||
export default ((props)=>{
|
export default ((props)=>{
|
||||||
|
|
||||||
return(
|
return(
|
||||||
|
@ -36,6 +41,11 @@ export default ((props)=>{
|
||||||
(p) => (<New {...props} {...p}/>)
|
(p) => (<New {...props} {...p}/>)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
<Route path="/projects/:owner/:projectsId/devops/params"
|
||||||
|
render={
|
||||||
|
(p) => (<Params {...props} {...p}/>)
|
||||||
|
}
|
||||||
|
></Route>
|
||||||
<Route path="/projects/:owner/:projectsId/devops/mould"
|
<Route path="/projects/:owner/:projectsId/devops/mould"
|
||||||
render={
|
render={
|
||||||
(p) => (<Mould {...props} {...p}/>)
|
(p) => (<Mould {...props} {...p}/>)
|
||||||
|
|
|
@ -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(
|
||||||
|
<React.Fragment>
|
||||||
|
<a className="mr10 color-grey-6" onClick={()=>editMouldFunc(item)}><i className="iconfont icon-zaibianji font-13 mr3"></i>编辑</a>
|
||||||
|
<Popconfirm title={"确定要删除此模板?"} onConfirm={()=>deleteMouldFunc(item.id)} okText="确定" cancelText={"取消"}>
|
||||||
|
<a className="mr10 color-grey-6"><i className="iconfont icon-lajitong font-13 mr3"></i>删除</a>
|
||||||
|
</Popconfirm>
|
||||||
|
</React.Fragment>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
function editMouldFunc(item){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
function deleteMouldFunc(id){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function successFunc(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function CancelFunc(){
|
||||||
|
setVisible(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<New visble={visible} successFunc={successFunc} CancelFunc={CancelFunc}/>
|
||||||
|
<Banner>
|
||||||
|
<FlexAJ>
|
||||||
|
<span className="font-18">工作流 - 参数管理</span>
|
||||||
|
<Link to={`/projects/${owner}/${projectsId}/devops/dispose`} className="font-14 color-grey-9 ml20">返回</Link>
|
||||||
|
</FlexAJ>
|
||||||
|
</Banner>
|
||||||
|
<Div className="disposeList">
|
||||||
|
<div style={{textAlign:"right"}}>
|
||||||
|
<Blueback onClick={()=>setVisible(true)}>新建</Blueback>
|
||||||
|
</div>
|
||||||
|
<Table className="mt20" size="small" columns={columns} dataSource={list} rowKey={(row)=>row.id} pagination={false}></Table>
|
||||||
|
</Div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export default Params;
|
|
@ -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(
|
||||||
|
<Modal
|
||||||
|
visible={visble}
|
||||||
|
okText={"确定"}
|
||||||
|
cancelText={"取消"}
|
||||||
|
onCancel={CancelFunc}
|
||||||
|
onOk={onConfirmFunc}
|
||||||
|
title={"新建"}
|
||||||
|
closable={false}
|
||||||
|
width="500px"
|
||||||
|
>
|
||||||
|
<Form {...layout}>
|
||||||
|
<Form.Item label="参数名称">
|
||||||
|
{getFieldDecorator("name",{
|
||||||
|
rules:[{required:true,message:"请输入参数名称"}]
|
||||||
|
})(
|
||||||
|
<Input placeholder="请输入参数名称" width="220px"/>
|
||||||
|
)}
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item label="参数值">
|
||||||
|
{getFieldDecorator("value",{
|
||||||
|
rules:[{required:true,message:"请输入参数值"}]
|
||||||
|
})(
|
||||||
|
<TextArea placeholder="请输入参数值" width="220px" autoSize={{ minRows: 4, maxRows: 4 }}/>
|
||||||
|
)}
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
</Modal>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export default Form.create()(forwardRef(ParamsNew));
|
|
@ -0,0 +1,4 @@
|
||||||
|
.ant-form-explain{
|
||||||
|
position: absolute;
|
||||||
|
bottom: -15px;
|
||||||
|
}
|
Loading…
Reference in New Issue