diff --git a/public/css/iconfont.css b/public/css/iconfont.css index af04c62b..39ebe18f 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1652870557319') format('woff2'), - url('iconfont.woff?t=1652870557319') format('woff'), - url('iconfont.ttf?t=1652870557319') format('truetype'); + src: url('iconfont.woff2?t=1653550272457') format('woff2'), + url('iconfont.woff?t=1653550272457') format('woff'), + url('iconfont.ttf?t=1653550272457') format('truetype'); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-tuichuicon:before { + content: "\e936"; +} + .icon-bangzhuzhongxinicon1:before { content: "\e935"; } diff --git a/public/css/iconfont.js b/public/css/iconfont.js index 81842232..0b03f564 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(a){var l,c,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,l){l.parentNode.insertBefore(a,l)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}l=function(){var a,l=document.createElement("div");l.innerHTML=z,z=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?p(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(h=l,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file +!function(a){var l,c,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,l){l.parentNode.insertBefore(a,l)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}l=function(){var a,l=document.createElement("div");l.innerHTML=z,z=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?p(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(h=l,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index 8292425f..9dc3ea5e 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "29934961", + "name": "退出icon", + "font_class": "tuichuicon", + "unicode": "e936", + "unicode_decimal": 59702 + }, { "icon_id": "29811507", "name": "帮助中心icon", diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 50b785fc..5ea5e920 100644 Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index af3a98f6..6b8a4f2e 100644 Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index c8ead9b9..ce5758a2 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 1c0a6c20..1d53b193 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -645,7 +645,8 @@ class Detail extends Component { open_devops={open_devops} platform={platform} urlFlag={urlFlag} - isManager={isManager} + showNotification={this.props.showNotification} + current_user={current_user} /> } diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index d86f0498..927e5dc6 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -2,9 +2,12 @@ import React, { useEffect, useState } from 'react'; import { Skeleton , Tooltip} from 'antd'; import { Link } from 'react-router-dom'; import { numFormat } from 'educoder'; +import QuitBox from './quit'; +import axios from 'axios'; -function DetailBanner({ history,list , owner , projectsId , isManager , url , pathname , state , urlFlag , projectDetail , platform ,open_devops }){ +function DetailBanner({ history,list , owner , projectsId ,showNotification , url , pathname , state , urlFlag , projectDetail , platform ,open_devops ,current_user }){ const [ menuName , setMenuName ] = useState(undefined); + const [ visible , setVisible ] = useState(false); useEffect(()=>{ if(list){ // 没有资源库banner但是通过连接进资源库页面时 @@ -20,9 +23,19 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa } },[list]); + function onSuccess(){ + const url = `/${owner}/${projectsId}/quit.json`; + axios.post(url).then(result=>{ + if(result){ + showNotification("已成功退出仓库!"); + history.push(`/${current_user && current_user.login}`); + } + }).catch(error=>{}) + } return(
+ setVisible(false)} name={projectDetail && projectDetail.name} onSuccess={onSuccess}/> { menuName && menuName.length> 0 && projectDetail ?
+ } + > +
+ + 确定退出 {name} 仓库吗? +

请进行确认以防数据的丢失

+
+ + ) +} +export default QuitBox; \ No newline at end of file