From 51c27299166e4076707bcefbf2d197bbcba62890 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 16 Oct 2020 11:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=AC=E4=B8=8A=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/Component.scss | 4 ++ src/forge/Component/PasswordAuthority.jsx | 45 +++++++++++++++++++++++ src/forge/DevOps/About.jsx | 28 +++----------- src/forge/DevOps/ops.scss | 4 -- src/forge/Main/Detail.js | 2 +- src/forge/users/CIdispose.jsx | 15 +++++++- 6 files changed, 70 insertions(+), 28 deletions(-) create mode 100644 src/forge/Component/PasswordAuthority.jsx diff --git a/src/forge/Component/Component.scss b/src/forge/Component/Component.scss index bd9df436b..202cdd0db 100644 --- a/src/forge/Component/Component.scss +++ b/src/forge/Component/Component.scss @@ -8,6 +8,10 @@ li.ant-menu-item{ margin:0px!important; border-bottom: 1px solid #eee; } +.flags{ + border: 1px solid red; + border-radius: 5px; +} // Cards .cards{ display: flex; diff --git a/src/forge/Component/PasswordAuthority.jsx b/src/forge/Component/PasswordAuthority.jsx new file mode 100644 index 000000000..9d7fff444 --- /dev/null +++ b/src/forge/Component/PasswordAuthority.jsx @@ -0,0 +1,45 @@ +import React ,{ useState } from 'react'; +import { Modal , Input , Spin } from 'antd'; +import { AlignCenter } from "./layout"; +import axios from 'axios'; +import './Component.scss'; + +function PasswordAuthority({ authorityValBox , successFunc , cancelFunc }){ + const [ authorityVal , setAuthorityVal ] = useState(undefined); + const [ authorityValFlag , setAuthorityValFlag ] = useState(false); + const [ isSpin , setIsSpin ] = useState(false); + + // 取消授权-登录密码的输入 + function cancelAuthority(){ + cancelFunc(); + } + // 确认授权 + function okAuthority(){ + if(!authorityVal){ + setAuthorityValFlag(true); + return; + } + setIsSpin(true); + const url = `/users/ci/oauth_grant.json`; + axios.get(url,{ + params:{password:authorityVal} + }).then(result=>{ + if(result){ + setIsSpin(false); + successFunc(result.data.step); + } + }).catch(error=>{}); + } + return( + + +

请输入您的登录密码,确认授权DevOps应用

+ + 密码: + setAuthorityVal(e.target.value)} style={{width:"220px"}}> + +
+
+ ) +} +export default PasswordAuthority; \ No newline at end of file diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 778a0e46a..b25ac0d21 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -1,6 +1,7 @@ import React, { forwardRef, useCallback, useState , useEffect } from "react"; import activate from "../Images/activate.png"; import { Blueback , AlignCenter } from "../Component/layout"; +import PasswordAuthority from "../Component/PasswordAuthority"; import styled from "styled-components"; import { Form, Input , Spin , Modal } from "antd"; import axios from "axios"; @@ -77,7 +78,7 @@ function About(props, ref) { }else{ setIsSpining(true); const url = `/${owner}/${projectsId}/cloud_accounts.json`; - axios.post(url, {...values}).then((result) => { + axios.post(url, {...values,ip_num:values.ip}).then((result) => { setIsSpining(false); if (result && result.data.redirect_url) { props.showNotification("服务器信息配置完成!"); @@ -116,30 +117,13 @@ function About(props, ref) { setAuthorityValBox(false); } // 确认授权 - function okAuthority(){ - if(!authorityVal){ - setAuthorityValFlag(true); - return; - } - const url = `/users/ci/oauth_grant.json`; - axios.get(url,{ - params:{password:authorityVal} - }).then(result=>{ - if(result){ - setAuthorityValBox(false); - setStep(result.data.step); - } - }).catch(error=>{}); + function okAuthority(step){ + setAuthorityValBox(false); + setStep(step); } return ( - -

请输入您的登录密码,确认授权DevOps应用

- - 密码: - setAuthorityVal(e.target.value)} style={{width:"220px"}}> - -
+

定义DevOps工作流,帮助您检测bug、发布代码…

diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index 15ba0c60f..6e0c4fa11 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -124,10 +124,6 @@ } } -.flags{ - border: 1px solid red; - border-radius: 5px; -} // ops详情 .opsDetailPanel{ height: 100vh; diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 96eab7b47..74757c808 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -505,7 +505,7 @@ class Detail extends Component { }
  • - 工作流 + 工作流(beta版) {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""}
  • diff --git a/src/forge/users/CIdispose.jsx b/src/forge/users/CIdispose.jsx index 8e87ace31..a0ec8f376 100644 --- a/src/forge/users/CIdispose.jsx +++ b/src/forge/users/CIdispose.jsx @@ -3,6 +3,8 @@ import { Button , Modal , Form , Input } from 'antd'; import { AlignCenter } from '../Component/layout'; import axios from 'axios'; import Modals from '../Component/Modal'; +import PasswordAuthority from '../Component/PasswordAuthority'; +import { func } from 'prop-types'; const TIPS = "解除CI服务器绑定后,您所有的项目构建数据将被清空。确定解除绑定?"; function CIdispose(props){ @@ -13,6 +15,7 @@ function CIdispose(props){ const [ ci_certification, setCi_certification ] = useState(false); const [ btnLoading , setBtnLoading ] = useState(false); + const [ authorityValBox , setAuthorityValBox] = useState(false); const { form: { getFieldDecorator, validateFields , setFieldsValue } } = props; const helper = useCallback( @@ -92,8 +95,18 @@ function CIdispose(props){ }) } + function okAuthority(){ + setAuthorityValBox(false); + getInit(); + } + + function cancelAuthority(){ + setAuthorityValBox(false); + } + return(
    + { step === 0 && } - { step > 0 && !ci_certification && } + { step > 0 && !ci_certification && } { step >= 1 && }