diff --git a/public/css/iconfont.css b/public/css/iconfont.css index 2aa4e5fe6..39ebe18fe 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=1652927945088') format('woff2'), - url('iconfont.woff?t=1652927945088') format('woff'), - url('iconfont.ttf?t=1652927945088') 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 818422324..0b03f5640 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 8292425fe..9dc3ea5e5 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 aaf41b746..5ea5e9206 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 7ad90ffbf..6b8a4f2ee 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 f45e4e1d4..ce5758a2e 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/src/forge/DevOps/Manage/Params.jsx b/src/forge/DevOps/Manage/Params.jsx index 1c4540ccc..7116164b3 100644 --- a/src/forge/DevOps/Manage/Params.jsx +++ b/src/forge/DevOps/Manage/Params.jsx @@ -104,7 +104,7 @@ function Params(props){ 引擎 - 参数管理 - 返回 + 返回
diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx index 99040d386..03d646b67 100644 --- a/src/forge/DevOps/Structure.jsx +++ b/src/forge/DevOps/Structure.jsx @@ -290,7 +290,7 @@ function Structure(props,ref){ 构建列表 - 返回 + 返回
diff --git a/src/forge/DevOps/disposePipeline.jsx b/src/forge/DevOps/disposePipeline.jsx index deabc1495..1b3a64361 100644 --- a/src/forge/DevOps/disposePipeline.jsx +++ b/src/forge/DevOps/disposePipeline.jsx @@ -275,7 +275,10 @@ function disposePipeline(props){ ...params }).then(result=>{ if(result){ - props.history.push(`/${owner}/${projectsId}/devops`); + props.history.push({ + pathname:`/${owner}/${projectsId}/devops`, + state:{open_devops:true} + }); } setLoading(false); }).catch(error=>{ diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 52c76b482..711463631 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -522,7 +522,7 @@ function CoderDepot(props){ (dirInfo && dirInfo.length === 0) && !fileInfo ? :"" } {/* readme文件显示(显示文件详情时不显示readme文件) */} - { (readme && readme.content) ? :"" } + { (readme && readme.replace_content) ? :"" }
{ diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 60b2fc3b8..7838c39d0 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -644,7 +644,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 8a0472ce0..c344710b8 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但是通过连接进资源库页面时 @@ -19,8 +22,20 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa setMenuName(list); } },[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 && projectDetail ?
+ } + > +
+ + 确定退出 {name} 仓库吗? +

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

+
+ + ) +} +export default QuitBox; \ No newline at end of file diff --git a/src/forge/users/Avatar/Index.jsx b/src/forge/users/Avatar/Index.jsx index aa7669a6e..0f9e51f92 100644 --- a/src/forge/users/Avatar/Index.jsx +++ b/src/forge/users/Avatar/Index.jsx @@ -58,7 +58,9 @@ function Index({onCancel,avatarImg,login}){ const reader = new FileReader(); reader.onload = () => { - setAvatarPhoto(reader.result); + if(reader.result){ + setAvatarPhoto(reader.result); + } }; reader.readAsDataURL(files[0]); } diff --git a/src/glcc/index.scss b/src/glcc/index.scss index 4bcee4139..ec6ec341b 100644 --- a/src/glcc/index.scss +++ b/src/glcc/index.scss @@ -21,7 +21,10 @@ .icon-bangzhuzhongxinicon, .icon-bangzhuzhongxinicon1{color:#ffffff} } } -.qqChatBox .ant-popover-arrow{display: none;} +.qqChatBox{ + position: fixed; + .ant-popover-arrow{display: none;} +} .qqChat{ margin: -12px -16px; background-image:linear-gradient(180deg,#f8faff 0%,#dee7ff 100%); diff --git a/src/glcc/project/taskList/index.jsx b/src/glcc/project/taskList/index.jsx index 13519b188..43489f184 100644 --- a/src/glcc/project/taskList/index.jsx +++ b/src/glcc/project/taskList/index.jsx @@ -150,7 +150,7 @@ function TaskList({applyTaskId, setStudentInfoReset, current_user, showLoginDial
{current_user && current_user.login ? {setCurrent(1);setApply(e.target.checked)}}>已报名 :
} - { setCurrent(1); setKeyword(value) }} /> + { setCurrent(1); setKeyword(value) }} />
5、提交申请后,请耐心等待,我们会在2022年7月1日公布入围结果。如有任何问题,请添加开源夏令营QQ群进行咨询
- 学生报名 + 学生报名
申请课题
@@ -394,7 +394,7 @@ function Apply(props) { {getFieldDecorator("location", { rules: [] })( - + )} {helper('所在年级', @@ -438,7 +438,7 @@ function Apply(props) { onChange={handleChange} > {imageUrl ? avatar : userApplyInfo && userApplyInfo.proveAttachmentId ? -
:
+
:
请上传学生证明
} @@ -468,11 +468,18 @@ function Apply(props) { )}
{helper('自荐书', - , + , 'memo' + i, [{ required: true, message: "请正确输入自荐书" }, { max: 500, message: '超出限制长度500位字符,请重新编辑' }], -