diff --git a/package-lock.json b/package-lock.json index f555b26d..a70c087f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2094,7 +2094,7 @@ }, "babel-plugin-transform-runtime": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "requires": { "babel-runtime": "^6.22.0" @@ -2213,7 +2213,7 @@ }, "babel-preset-react": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "resolved": "https://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { "babel-plugin-syntax-jsx": "^6.3.13", @@ -3562,7 +3562,7 @@ }, "code-prettify": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/code-prettify/-/code-prettify-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/code-prettify/download/code-prettify-0.1.0.tgz", "integrity": "sha1-RocMyMGlDQm61TmzOpg9vUqjSx4=" }, "codemirror": { @@ -3866,6 +3866,11 @@ "require-from-string": "^1.1.0" } }, + "countup.js": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.0.8.tgz", + "integrity": "sha512-pW3xwwD+hB+xmtI16xFcuLS0D5hSQqPQWkZOdgpKQyzxCquDNo2VCFPkRw12vmvdpnicXVTcjmYiakG6biwINg==" + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -14212,6 +14217,14 @@ "object-assign": "^4.1.1" } }, + "react-countup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.1.0.tgz", + "integrity": "sha512-0tN65l4ksaNa4rm8ZKshpGxbIHQ4RAh8TGaKYp06EZ7nZw+haXpW3dQTVDhTey9+10jDkJgdzyXKDmC96c1M8g==", + "requires": { + "countup.js": "^2.0.8" + } + }, "react-datepicker": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-2.14.1.tgz", diff --git a/package.json b/package.json index 3965032b..00ef9788 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "react-color": "^2.18.0", "react-content-loader": "^3.1.1", "react-cookies": "^0.1.1", + "react-countup": "^6.1.0", "react-datepicker": "^2.14.1", "react-dev-utils": "^9.2.0-next.80", "react-dom": "^16.13.1", diff --git a/src/App.js b/src/App.js index 49905dd3..ed1db564 100644 --- a/src/App.js +++ b/src/App.js @@ -106,13 +106,18 @@ const LoginRegisterPage = Loadable({ loader: () => import("./modules/loginRegister/LoginRegisterPage"), loading: Loading, }); + +const AboutUs = Loadable({ + loader: () => import("./forge/AboutUs/AboutUs"), + loading: Loading, +}) // const CreateMerge = Loadable({ // loader: () => import('./forge/Merge/NewMerge'), // loading: Loading, // }) // 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。 -const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize","login","register","resetPassword"]; +const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize","login","register","resetPassword","aboutus"]; class App extends Component { constructor(props) { @@ -342,22 +347,28 @@ class App extends Component { /> {/* 登录 */} - } - > + } + > - {/* 注册 */} - } - > + {/* 注册 */} + } + > - {/* 忘记密码 */} - } - > + {/* 忘记密码 */} + } + > + + {/* 关于我们 */} + } + > {/* 组织 */} { + //添加浏览器滚动监听事件 + window.addEventListener('scroll', scrollListener); + //请求topics.json接口获取合作单位信息 + axios.get(`/topics.json`, { params: { topic_type: "cooperator", limit: 20, group_size: 5}}).then(response=>{ + response && setUnits(response.data.topics); + }); + return ()=>window.removeEventListener('scroll', scrollListener); + },[]) + + function scrollListener(e){ + const top = e.srcElement.scrollingElement.scrollTop; + //回到顶部时导航栏选中【关于我们】 + top < 555 && setSelectTitle(1); + if (top > 2800 && top< 4000){ + setFlush(true); + }else{ + setFlush(false); + } + } + + return( +
+
+

GitLink 确实开源

+

新一代开源创新服务平台,让您的创意在这里释放

+
+
+ setSelectTitle(1)}>关于我们 + setSelectTitle(2)}>平台统计 + setSelectTitle(3)}>加入我们 + setSelectTitle(4)}>合作单位 +
+
+ + {/* 关于我们 */} +
+
+
关于我们
+ {/* 简介 */} +
+
+

简介

+
GitLink(确实开源)是CCF官方指定的开源创新服务平台,旨在以“为开源创新服务”为使命,以“成为开源创新的汇聚地”为愿景,秉承“创新、开放、协作、共享”的价值观,致力于为大规模开源开放协同创新助力赋能,打造创新成果孵化和新工科人才培养的开源创新生态!
+
+ +
+
+ {/* 确实开源 一脉传承 */} +
+

确实开源  一脉传承

+
本世纪以来,随着软件创新需求和应用规模的飞速增长,软件开发队伍、开发资源、可信评估呈现出规模化、开放化、持续化的新特点,软件开发活动面临协同难、复用难、评估难的制约,经典的工程化软件开发方法面临严峻挑战,严重影响了软件开发效率和质量的提升。在此背景下,国防科技大学联合国内多所知名高校、科研机构和软件企业,围绕开源创新开展了持续性探索,构建形成了以Trustie(确实)为代表的一系列开源创新服务基础设施。自2006年以来,Trustie经过三个阶段的演化发展,于2021年迎来全面升级:在计算机学会(CCF)的带领指导下,共同推进产学研用深度融合,共筑新一代开源创新服务平台GitLink!
+
+ + + + }> +
+

Trustie 1.0阶段(2006年-2014年)

+
国防科技大学、北京大学、北京航空航天大学、中国科学院软件研究所等单位合作开展了基于网络的软件开发群体化方法与技术研究,揭示了以大众化协同开发、开放式资源共享、持续性可信评估为核心的互联网大规模协同机理,与软件开发工程化方法相结合,系统地提出了基于网络的软件开发群体化方法,并于2008年发布了可信的国家软件资源共享与协同生产环境(简称“Trustie v1.0”,中文简称“确实”),重点解决大规模软件协同开发、可信评估、运行监控和持续演化等问题。
+
+
+ }> +
+

Trustie 2.0阶段(2014年-2020年)

+
在科技部项目的持续资助下,国防科技大学联合国内多所知名高校、科研机构和软件企业,致力于系统研究新型软件开发方法,为开源生态建设提供方法指导和实践指南,支撑科教领域原始创新成果的开源孵化和开源人才培养,并于2014年发布了面向软件创新和教育的开源社区Trustie v2.0,重点探索协作开发社区、知识分享社区、应用服务社区等“大外围”软件涉众的联接,以及基于开源大数据的智能化开发等技术。
+
+
+ }> +
+

Trustie 3.0阶段 (2020年至今)

+
Trustie在已有的技术积累基础上,进一步联合国内高等院校、科研机构、产业企业和开源组织等,在计算机学会(CCF)的带领指导下,共同推进产学研用深度融合,致力于联接互联网海量群智资源,探索开源创新成果开放与共享、开源生态协作与共建的新模式和新方法,升级形成了新一代开源创新服务平台GitLink,力图破解软件开发群智范式背后的本质机理,建立面向“大外围”开放创新的群智激发与汇聚关键机制,实现面向大规模软件涉众的稳态群智激发与汇聚。
+
+
+
+
+
+ + {/* 特色功能 确实给力 */} +
+
+

特色功能  确实给力

+ + + + + + +
+
+
+
+

分布式协作开发

+
支持在线文件编辑、  
分支管理、贡献统计、
仓库复刻、合并请求   
+
+
+
+
+
+
+

一站式过程管理

+
支持易修、里程碑、   
通知提醒、标签归档、Wiki文档、组织管理   
+
+
+
+
+
+
+

高效流水线运维

+
提供轻量级工作流引擎
并支持自定义配置、   
静态扫描、制品构建   
+
+
+
+
+
+
+

多层次代码分析

+
支持代码溯源分析、   
许可证风险分析、开源漏洞检测和加固建议   
+
+
+
+
+
+
+

多维度用户画像

+
支持开发活动统计、   
贡献日历、能力建模、
角色与专业定位分析   
+
+
+
+
+
+ + {/* 成果作用,确实有效 */} +
+ +
+

成果作用  确实有效

+
GitLink(确实开源)为我国创新型软件产业发展提供了关键技术支撑和实践指南,为各类开源创新活动以及我国军地开源社区建设提供了有效支撑,为推动开源创新发展和创新人才培养发挥了重要作用。
通过10多年的发展,GitLink平台显著提升了大型软件企业软件生产能力,支持了我国航空、航天、国防等多个关键领域的可信软件生产,为包括新一代人工智能启智社区、ARM绿色计算社区、科技部云计算与大数据木兰社区、科技委可控开源创造行动红山社区等的建设提供关键技术支撑,为我国关键领域开源社区生态建设发挥了重要作用!
+
+
+
+ + {/* 平台统计 */} +
+ +
平台统计
+

联接海量群智资源,汇聚优秀开源组织,孵化优质创新成果

+ +
+
+ +

开发者

+
+
+ +

组织

+
+
+ +

仓库

+
+
+
+ + {/* 加入我们 */} +
+ +
+
加入我们
+

探索你的未来

+

GitLink团队在寻找新的小伙伴,期待着您的加入,让我们一起为开源创新贡献力量!

+ + {/* 轮播图 */} + +
+
+

前端开发工程师

+
+ 1、全日制本科及以上学历,5年以上Web前端开发经验,熟练使用Gulp、Webpack等构建工具;
+ 2、熟练掌握VUE或React编程;有前端模块化、组件化、自动化开发经验者优先;
+ 3、精通jQuery、Ajax、Json等技术,对VUE,NodeJs等技术有所涉及;
+ 4、熟悉前端开发技术(HTML5、JS、JSON、XHTML、CSS3、ES6),了解各项技术的相关标准,并严格按照标准进行开发。
+
+
+
+

后端开发工程师

+
+ 1、全日制本科及以上学历,计算机、软件工程相关专业者优先;
+ 2、3年以上Java开发相关经验,扎实的Java编程基础,参与过1个以上大/中型高并发、高性能系统架构设计、开发和调优;
+ 3、熟练掌握Spring、SpringBoot、Spring MVC、MyBatis等开源框架,掌握MVC框架模式及BS架构;
+ 4、精通SQL,熟练使用MySQL、Oracle等数据库,并具有一定的SQL优化能力;熟悉Redis、MongoDB等常用NoSQL解决方案,了解各自的优缺点以及使用场景者优先。
+
+
+
+
+
+

软件测试工程师

+
+ 1、熟悉主流开发技术框架,具备软件工程的基本知识;
+ 2、熟练掌握各种测试理论和测试技术,精通测试过程设计和用例设计方法;
+ 3、熟悉性能测试、自动化测试、安全测试其中一种或多种测试工具;(LoadRunner、Jmeter、Selenium、QTP、Robot、Firebug、AppScan,PyCharm等),熟练运用工具从事过相关测试工作;
+ 4、熟悉掌握一种编程语言(Java/Python/C++等);
+ 5、熟悉Oracle/MySQL数据库,并能熟练编写SQL语句,熟练常用Linux命令;
+ 6、有整体质量意识,测试管理经验。
+
+
+
+

产品经理

+
+ 1、计算机或相关专业本科以上学历;3年以上工作经验;
+ 2、熟悉开源软件项目的管理流程,了解软件需求的调研方法,具备需求分析能力;
+ 3、能以专业的方式向客户提供技术咨询,良好的方案设计能力和文字功底;
+ 4、具备良好的交流、沟通和表达能力,良好的方案演示和介绍技巧;
+ 5、了解互联网产品的基本思路及基础方法论,能够基于数据提出产品优化策略;
+ 6、承受较强的工作压力,强烈的团队合作意识与工作责任心;
+ 7、有良好人际交往能力,工作积极主动,自信心强,有较强的学习能力。
+
+
+
+
+

简历投递邮箱:zengyt#csxjy.com.cn 曾先生 (用@符号替换#)

+
+
+ + {/* 合作单位 */} +
+ +
合作单位
+ + {units && units.map(group =>{ + return ( + + {group.map(item =>{ + return( + + ) + })} + + ) + })} +
+
+
+
+ ) +} +export default TPMIndexHOC(AboutUs); \ No newline at end of file diff --git a/src/forge/AboutUs/AboutUs.scss b/src/forge/AboutUs/AboutUs.scss new file mode 100644 index 00000000..2c775771 --- /dev/null +++ b/src/forge/AboutUs/AboutUs.scss @@ -0,0 +1,338 @@ +.aboutUs_body{ + font-size: 16px; + color: #182332; + font-family: PingFangSC-Regular, PingFang SC; + & table{ + text-align: center; + margin: 0 auto; + } + & .df{ + display: flex; + justify-content: space-around; + align-items: center; + } + & .join_us_bg, .feature_function_bg, .feat_fun_img, .aboutUs_head{ + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + & .mao{ + position: relative; + top: -70px; + } +} +.aboutUs_head.df{ + flex-direction: column; + justify-content: center; + height: 500px; + line-height: 500px; + background-image: url('./image/banner.png'); + & p{ + text-align: center; + } + & .head_title{ + line-height: 50px; + font-size: 48px; + font-weight: 600; + background-image: -webkit-linear-gradient(bottom,#4CDBF5,#5AACFF); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + & .head_cont{ + line-height: 39px; + color: #FFFFFF; + opacity: 0.9; + } +} +.aboutUs_title{ + width: 800px; + height: 62px; + margin: 0 auto; + &>table{ + width: 800px; + font-weight: 400; + } + & a.active{ + color: #466AFF; + height: 62px; + line-height: 62px; + border-bottom: 2px solid; + } +} +.aboutUs{ + & .au_title{ + font-size: 38px; + font-weight: 500; + color: #1E1E1E; + text-align: center; + padding-top: 50px; + // line-height: 53px; + } + & .subtitle{ + font-size: 20px; + font-weight: bold; + color: #000000; + margin-bottom: 23px !important; + } +} +.about_us{ + // 关于我们 + & .au_cont.df{ + justify-content: space-between; + } + & .au_bg{ background: linear-gradient(180deg, #F3F9FF 0%, rgba(255, 255, 255, 0) 100%);} + & .cont1_introduction{ + width: 472px; + &>div{ + line-height: 34px; + } + } + & .cont1_achievements{ + width: 581px; + & .subtitle.ml0{margin-left: 0;} + &>div{ + font-size: 15px; + line-height: 36px; + } + } + & .subtitleImg{ + width: 650px; + height: 330px; + } + & .achievementsImg{ + width: 507px; + height: 384px; + } + //时间轴 + & .inherit_items{ + position: relative; + & .quan1Img{ + width: 140px; + height: 167px; + position: absolute; + left: -290px; + top: 90px; + } + & .quan2Img{ + width: 100px; + height: 120px; + position: absolute; + right: -170px; + bottom: 80px; + } + } + .inherit{ + & .icon-a-yuanquan2x{ + color: #466aff; + } + & .ant-timeline-item-tail{ + border-left: 2px solid rgba(108, 134, 172, 0.42); + height: calc(100% - -30px); + } + & .ant-timeline-item:last-child .ant-timeline-item-tail{ + display: block; + height: calc(100% - 18px); + } + & .ant-timeline-item-content{ + margin: 0 0 -15px 18px; + } + } + .timeline_cont{ + margin-left: 35px; + &>p{ + font-size: 20px; + font-weight: 500; + color: #466AFF; + margin: 45px 0 30px !important; + } + &>div{ + width: 980px; + padding: 20px 35px; + background: #F5F7FA; + font-size: 15px; + font-weight: 400; + color: #182332; + line-height: 33px; + &:after,&:before{ + content: ""; + position: absolute; + left: 21px; + top: 100px; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 14px solid #F5F7FA; + } + } + } + //特色功能 确实给力 + & .feature_function_bg{ + position: relative; + height: 630px; + background-image: url(./image/funBg.png); + & .au_cont p.au_title{ + font-size: 30px; + padding: 50px 0 70px; + color: #FFFFFF; + opacity: 0.9; + } + & table{ + position: relative; + background: none; + width: 1200px;} + & .funBg2 { + width: 1600px; + left: 50%; + margin-left: -800px; + position: absolute; + bottom: -15px; + } + } + + & .feat_func_cont{ + width: 200px; + & .feat_fun_img{ + height: 205px; + line-height: 205px; + background-image: url('./image/funBg3.png'); + &:hover{background-image: url('./image/funBg4.png');} + } + & img{ width: 175px;} + & p{ + font-size: 18px; + font-weight: 500; + color: #FFFFFF; + line-height: 28px; + background-image: -webkit-linear-gradient(bottom,#4FFDFF,#0183FF); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + & div>div{ + margin: 10px auto; + width: 142px; + font-size: 14px; + line-height: 28px; + color: #FFFFFF; + opacity: 0.76; + } + } + + // 平台统计 + &.statistics{ + text-align: center; + background: linear-gradient(180deg, #ECF3FF 0%, #FFFFFF 100%); + height: 640px; + overflow: hidden; + position: relative; + & .statistics_cont{ + width: 1014px; + height: 203px; + background: #FFFFFF; + opacity: 0.83; + position: absolute; + top: 230px; + left: 50%; + margin-left: -500px; + & span{ + font-size: 48px; + font-weight: bold; + color: #1338D1; + } + & p{ + width: 111px; + height: 38px; + line-height: 38px; + border: 1px solid #182332; + margin: 0 auto; + font-size: 22px; + color: #1E1E1E; + } + } + & .earthImg{ + width: 1500px; + margin-top: -120px; + animation: moving 60s linear infinite; + } + @keyframes moving { + 0% { transform: rotate(0deg);} + 50% { transform: rotate(180deg);} + 100% { transform: rotate(360deg);} + } + } +} +// 加入我们 +.join_us_bg{ + height: 710px; + margin-top: 40px; + background-image: url(./image/joinUs.png); + & .au_cont{position: relative;} + & .joinUsImg{ + width: 260px; + height: 265px; + position: absolute; + top: 27px; + right: 10px; + } + & .df{ + display: flex !important; + margin-top: 30px; + } + & .position{ + width: 540px; + &.right{ margin-right: -30px;} + & p{ + justify-content: flex-start; + height: 60px; + background: #253DA0; + line-height: 60px; + padding-left: 20px; + & img{width: 30px;} + & span{ + font-weight: 500; + color: #FFFFFF; + line-height: 22px; + } + } + & div{ + height: 306px; + font-size: 14px; + line-height: 34px; + padding: 20px; + background: #FFFFFF;} + } + & .ant-carousel .slick-dots-bottom{bottom: -30px;} + & .ant-carousel .slick-dots li button{ + width: 12px; + height: 12px; + border-radius: 10px; + background: #466AFF; + } + & .delivery{ + height: 60px; + line-height: 60px; + margin-left: 35px; + } +} +//合作单位 +.unit{ + margin-bottom: 60px; + & table{ + width: 1200px; + height: 550px; + margin-top: 15px; + border-collapse: separate; + border-spacing: 10px 10px; + & td{ + width: 224px; + height: 122px; + box-shadow: 0px 1px 8px 1px rgba(0, 0, 0, 0.06); + border-radius: 6px; + border: 2px solid #FFFFFF; + &:hover{ border: 1px solid #466AFF;} + } + } +} +.au_cont{ + width: 1200px; + margin: 50px auto; + &.pl30 .subtitle{ margin-left: -30px;} +} \ No newline at end of file diff --git a/src/forge/AboutUs/image/achievements.png b/src/forge/AboutUs/image/achievements.png new file mode 100644 index 00000000..5ffebdd3 Binary files /dev/null and b/src/forge/AboutUs/image/achievements.png differ diff --git a/src/forge/AboutUs/image/banner.png b/src/forge/AboutUs/image/banner.png new file mode 100644 index 00000000..817193ac Binary files /dev/null and b/src/forge/AboutUs/image/banner.png differ diff --git a/src/forge/AboutUs/image/computer.png b/src/forge/AboutUs/image/computer.png new file mode 100644 index 00000000..eb16db56 Binary files /dev/null and b/src/forge/AboutUs/image/computer.png differ diff --git a/src/forge/AboutUs/image/earth.png b/src/forge/AboutUs/image/earth.png new file mode 100644 index 00000000..7cb766c1 Binary files /dev/null and b/src/forge/AboutUs/image/earth.png differ diff --git a/src/forge/AboutUs/image/fun1.png b/src/forge/AboutUs/image/fun1.png new file mode 100644 index 00000000..9fd10b59 Binary files /dev/null and b/src/forge/AboutUs/image/fun1.png differ diff --git a/src/forge/AboutUs/image/fun2.png b/src/forge/AboutUs/image/fun2.png new file mode 100644 index 00000000..68491bc1 Binary files /dev/null and b/src/forge/AboutUs/image/fun2.png differ diff --git a/src/forge/AboutUs/image/fun3.png b/src/forge/AboutUs/image/fun3.png new file mode 100644 index 00000000..5b72688b Binary files /dev/null and b/src/forge/AboutUs/image/fun3.png differ diff --git a/src/forge/AboutUs/image/fun4.png b/src/forge/AboutUs/image/fun4.png new file mode 100644 index 00000000..f2a28719 Binary files /dev/null and b/src/forge/AboutUs/image/fun4.png differ diff --git a/src/forge/AboutUs/image/fun5.png b/src/forge/AboutUs/image/fun5.png new file mode 100644 index 00000000..a4903ff0 Binary files /dev/null and b/src/forge/AboutUs/image/fun5.png differ diff --git a/src/forge/AboutUs/image/funBg.png b/src/forge/AboutUs/image/funBg.png new file mode 100644 index 00000000..fcee9030 Binary files /dev/null and b/src/forge/AboutUs/image/funBg.png differ diff --git a/src/forge/AboutUs/image/funBg3.png b/src/forge/AboutUs/image/funBg3.png new file mode 100644 index 00000000..1fc88a6f Binary files /dev/null and b/src/forge/AboutUs/image/funBg3.png differ diff --git a/src/forge/AboutUs/image/funBg4.png b/src/forge/AboutUs/image/funBg4.png new file mode 100644 index 00000000..8960a688 Binary files /dev/null and b/src/forge/AboutUs/image/funBg4.png differ diff --git a/src/forge/AboutUs/image/joinUs.png b/src/forge/AboutUs/image/joinUs.png new file mode 100644 index 00000000..a146c649 Binary files /dev/null and b/src/forge/AboutUs/image/joinUs.png differ diff --git a/src/forge/AboutUs/image/position.png b/src/forge/AboutUs/image/position.png new file mode 100644 index 00000000..6b318af2 Binary files /dev/null and b/src/forge/AboutUs/image/position.png differ diff --git a/src/forge/AboutUs/image/quan1.png b/src/forge/AboutUs/image/quan1.png new file mode 100644 index 00000000..e515c401 Binary files /dev/null and b/src/forge/AboutUs/image/quan1.png differ diff --git a/src/forge/AboutUs/image/quan2.png b/src/forge/AboutUs/image/quan2.png new file mode 100644 index 00000000..bd6a264e Binary files /dev/null and b/src/forge/AboutUs/image/quan2.png differ diff --git a/src/forge/AboutUs/image/subtitle.png b/src/forge/AboutUs/image/subtitle.png new file mode 100644 index 00000000..46e8b4de Binary files /dev/null and b/src/forge/AboutUs/image/subtitle.png differ diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index da12c36a..dbfd7570 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -402,7 +402,10 @@ class NewHeader extends Component { if (user_login && (new_link && new_link.indexOf("homes") > -1)) { new_link = new_link.replace(/homes/g, user_login + "/user_activities") } - + //【关于我们】页面 + if(item.name === "关于我们"){ + new_link = `/aboutus`; + } var waiLian = (new_link && str.filter(item=>new_link.indexOf(item)>-1) ); var wl = waiLian && waiLian.length>0; return ( diff --git a/src/forge/Images/taskbar.png b/src/forge/Images/taskbar.png new file mode 100644 index 00000000..91ceec7f Binary files /dev/null and b/src/forge/Images/taskbar.png differ diff --git a/src/forge/Main/projecthome/Index.scss b/src/forge/Main/projecthome/Index.scss index 50b7b506..80742234 100644 --- a/src/forge/Main/projecthome/Index.scss +++ b/src/forge/Main/projecthome/Index.scss @@ -310,7 +310,6 @@ margin:0px auto; .left{ width: 850px; - box-shadow: 0px 0px 4px 5px rgba(0, 0, 0, 0.02); display: flex; .leftTypes{ width: 220px; @@ -343,6 +342,7 @@ } .leftLists{ flex:1; + box-shadow: 0px 0px 4px 5px rgba(0, 0, 0, 0.02); .leftTitles{ height: 60px; display: flex; diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index 7ed723c7..bb298aa1 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -48,7 +48,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "issues" &&
  • - + 易修(Issue) diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index 8157df33..7dbdffd8 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -62,7 +62,7 @@ class MergeItem extends Component {

    diff --git a/src/forge/Team/Group/GroupDetails.jsx b/src/forge/Team/Group/GroupDetails.jsx index ba569386..1122ce72 100644 --- a/src/forge/Team/Group/GroupDetails.jsx +++ b/src/forge/Team/Group/GroupDetails.jsx @@ -117,8 +117,8 @@ export default ((props) => {

    {group.description ? group.description : "暂无描述"}
    -

    管理员团队对 所有仓库 具有操作权限,且对组织具有 管理员权限

    -

    此外,该团队拥有了 创建仓库 的权限:成员可以在组织中创建新的仓库。

    +

    组织的Owner团队拥有更改组织设置,在组织内新建仓库,新建组织团队等权限。

    +

    此外,Owner团队成员对当前组织下所有项目均具有仓库管理员权限,组织下其他团队的权限可由Owner团队成员自由制定。

    {group.is_admin ? : ""}
    diff --git a/src/forge/css/index.scss b/src/forge/css/index.scss index d529a219..9ff62ada 100644 --- a/src/forge/css/index.scss +++ b/src/forge/css/index.scss @@ -4,6 +4,13 @@ ul,ol,dl{ .newMain{ background-color: #fff; } +.newTable{ + background-color: #F0F5FF; + .newImages{ + background-image: url('../../forge/Images/taskbar.png'); + height: 364px; + } +} .color-black{ color: #333; } diff --git a/src/forge/users/Echart/Calendar.jsx b/src/forge/users/Echart/Calendar.jsx index 743a0a55..c7daad66 100644 --- a/src/forge/users/Echart/Calendar.jsx +++ b/src/forge/users/Echart/Calendar.jsx @@ -35,10 +35,23 @@ function Calendar({ userLogin , time , chooseTime }) { const url = `/users/${userLogin}/headmaps.json`; Axios.get(url).then(result=>{ if(result && result.data){ - let m = result.data.headmaps; + let m = []; + let flag = true; + if(result.data.headmaps && result.data.headmaps.length>0){ + m = result.data.headmaps; + flag = true; + }else{ + var date = +echarts.number.parseDate(baginT); + let d = timestampToTime(date); + m=[{ + contributions:"",date:d + }] + flag = false; + } m.sort(compare('contributions')); let max = m[m.length -1].contributions; - Init(m,max); + + Init(m,max,flag); } }).catch(error=>{}) } @@ -76,7 +89,7 @@ function Calendar({ userLogin , time , chooseTime }) { return Y+M+D; } - function Init(data,max) { + function Init(data,max,flag) { var huan_val = document.getElementById("Calendar"); var myEcharts = echarts.init(huan_val); let option = { @@ -96,8 +109,9 @@ function Calendar({ userLogin , time , chooseTime }) { left: 'center', bottom: 40, inRange:{ - color:['#fafafa', '#216e39'] - } + color:flag ? ['#fafafa', '#216e39'] :['#fff','#fff'] + }, + show:flag }, calendar: { top: 50, diff --git a/src/modules/403/Shixunauthority.js b/src/modules/403/Shixunauthority.js index 835eb2a6..00509cb8 100644 --- a/src/modules/403/Shixunauthority.js +++ b/src/modules/403/Shixunauthority.js @@ -4,20 +4,30 @@ import { SnackbarHOC, getImageUrl } from 'educoder'; class Shixunauthority extends Component { render() { + const { current_user } = this.props; return ( -
    -
    - -

    - 您可以稍后尝试 返回首页 - ,或者  - QQ反馈>> -

    -
    +
    +
    + {/*mt100 mb100*/} + +

    +

    您尚未被授权访问此页面,请先获取相关权限

    + 您可尝试 + {(!current_user || !current_user.login) && ( +

    您可尝试登录

    + )} + 返回首页,也可以通过 + QQ向我们反馈 +

    +
    + {/*
    */} + {/**/} + {/**/}
    ); } } - -export default SnackbarHOC()(TPMIndexHOC(Shixunauthority)); +export default SnackbarHOC() (TPMIndexHOC ( Shixunauthority )); diff --git a/src/modules/404/Shixunnopage.js b/src/modules/404/Shixunnopage.js index 8a0bc16e..47aa850c 100644 --- a/src/modules/404/Shixunnopage.js +++ b/src/modules/404/Shixunnopage.js @@ -4,17 +4,29 @@ import { SnackbarHOC, getImageUrl } from 'educoder'; class http500 extends Component { render() { + const { current_user } = this.props; return ( -
    -
    - -

    - 您可以稍后尝试 返回首页 - ,或者  - QQ反馈>> -

    -
    +
    +
    + {/*mt100 mb100*/} + +

    +

    你访问的页面不存在

    + 您可尝试 + {(!current_user || !current_user.login) && ( +

    您可尝试登录

    + )} + 返回首页 + ,也可通过 + QQ向我们反馈 +

    +
    + {/*
    */} + {/**/} + {/**/}
    ); } diff --git a/src/modules/500/http500.js b/src/modules/500/http500.js index b27c44b3..9d5c28b5 100644 --- a/src/modules/500/http500.js +++ b/src/modules/500/http500.js @@ -4,16 +4,20 @@ import { SnackbarHOC, getImageUrl } from 'educoder'; class Shixunnopage extends Component { render() { return ( -
    -
    - -

    - 您可以稍后尝试 返回首页 - ,或者  - QQ反馈>> -

    -
    +
    +
    + {/*mt100 mb100*/} + +

    +

    服务器异常,请稍后重试

    + 您可尝试刷新页面返回首页 + ,也可以通过 + QQ向我们反馈 +

    +
    ); }