diff --git a/src/pages/2026/banner/index.less b/src/pages/2026/banner/index.less index 5b16927d1..402b0a988 100644 --- a/src/pages/2026/banner/index.less +++ b/src/pages/2026/banner/index.less @@ -29,7 +29,7 @@ right: 0px; opacity:37%; height:28px; - border-left:1px solid #ffffff; + border-left:1px solid rgba(255, 255, 255,0.37); top: 0px; content: ""; } @@ -74,11 +74,27 @@ } a{ font-size:15px; + position: relative; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + &.active::before{ + content: ""; + position: absolute; + height:2px; + bottom: 9px; + width: 40px; + left: 50%; + margin-left:-20px; + background:linear-gradient(90deg,rgba(255, 255, 255, 0) 1.89%,#ffffff 52.27%,rgba(255, 255, 255, 0.11) 97.48%); + } &::after{ height: 16px; - top: 3px; + top: 50%; + margin-top: -8px; } - &::before,&:last-child:after{ + &:last-child:after{ display: none; } } diff --git a/src/pages/2026/home/index.jsx b/src/pages/2026/home/index.jsx index 2ff335a8b..561896d70 100644 --- a/src/pages/2026/home/index.jsx +++ b/src/pages/2026/home/index.jsx @@ -134,7 +134,7 @@ function Home(){ return(
-

four tracks

+

introduce

赛事介绍亮点剧透

面向产业互联网领域规格最高、规模最大、覆盖面最广的年度战略发布会,2019年至今已成功举办六届。大会致力于汇聚全球智慧洞察数字发展新机遇,描绘云、AI、大数据、安全等关键技术的发展蓝图,展示腾讯最新的研究成果、战略规划、技术产品、解决方案。大会还汇聚腾讯数字生态伙伴在助力推进产业数字化和数字产业化过程中沉淀的行业最佳实践,是政府、企业、合作伙伴、开发者以及社会大众了解腾讯全球数字生态的全景式界面。
2025年开源大会将于9月16日-17日举行,本届大会以“智·向远大”为主题,旨在探讨如何以自主创新技术,助力千行百业深挖智能化、国际化新机遇,让智能可用、创新可控,以高效数字化推动产业升级与可持续发展。通过1场主峰会、3场主题峰会以及50+主题专场,荟萃100+大咖嘉宾的智慧分享,解码全球科技、产业发展的新趋势,探索各行各业的最佳实践。通过50+产品功能发布、6000+平米展区,全面解码腾讯云最新能力、腾讯AI产品全新体验,带来前沿科技的真实体验。
@@ -230,7 +230,7 @@ function Home(){
-

four tracks

+

schedule

赛事日程抢先知晓

{ @@ -257,7 +257,7 @@ function Home(){ newsList && newsList.length > 0 &&
-

第七届CCF开源创新大赛赛题赞助征集公告

+

第八届CCF开源创新大赛赛题赞助征集公告

本系列课程从背景知识、使用方法、拓展领域、技术基础等方面介绍了软件工厂相关内容,方便广大用户更好地了解掌握和使用软件工厂!

diff --git a/src/pages/2026/img/newBack.png b/src/pages/2026/img/newBack.png new file mode 100644 index 000000000..6ac62a4f1 Binary files /dev/null and b/src/pages/2026/img/newBack.png differ diff --git a/src/pages/2026/img/news.png b/src/pages/2026/img/news.png index 71967c6c5..0e7779924 100644 Binary files a/src/pages/2026/img/news.png and b/src/pages/2026/img/news.png differ diff --git a/src/pages/2026/img/resource.png b/src/pages/2026/img/resource.png new file mode 100644 index 000000000..53f4ca88a Binary files /dev/null and b/src/pages/2026/img/resource.png differ diff --git a/src/pages/2026/img/sourceBack.png b/src/pages/2026/img/sourceBack.png new file mode 100644 index 000000000..b4fbc1f3e Binary files /dev/null and b/src/pages/2026/img/sourceBack.png differ diff --git a/src/pages/2026/info.js b/src/pages/2026/info.js index fd686c54f..7e5847d16 100644 --- a/src/pages/2026/info.js +++ b/src/pages/2026/info.js @@ -20,10 +20,10 @@ export const menu = [ name: '赛事动态', link: '/competitions/2026/information', }, - { - name: '培训答疑', - link: '/competitions/2026/information', - } + // { + // name: '培训答疑', + // link: '/competitions/2026/information', + // } ] export const defaultPage = { @@ -49,14 +49,19 @@ export const menu = [ title: '赛题发布', eng: 'Competition question release', anchor: 'notice', + }, + { + title:"资源发布下载", + eng: 'resources', + anchor: 'resources', } ] } export const config = { // zoneKey: 'kydhgw', // zoneId: 6, - zoneKey:"KYDS7th", - zoneId:11 + zoneKey:"2026CCFkycxds", + zoneId:383 } export const timeline = [ { diff --git a/src/pages/2026/information/index.jsx b/src/pages/2026/information/index.jsx index c1f5df2f8..66b5c81b6 100644 --- a/src/pages/2026/information/index.jsx +++ b/src/pages/2026/information/index.jsx @@ -1,5 +1,5 @@ import './index.less' -import { Spin, Divider , Input } from 'antd'; +import { Spin, Divider , Input, Anchor } from 'antd'; import { useState , useEffect } from 'react'; import { information } from '../info'; import { getDocList } from '../api' @@ -10,6 +10,7 @@ import Left from '../img/left.png'; import Right from '../img/right.png'; import Infoleftbanner from '../img/infoleftbanner.png'; // import SubBanner from '../img/subBanner.png'; +import Resource from '../img/resource.png'; import Search from '../img/infosearch.png'; import { throttle } from '@/utils/mettingUtil'; @@ -19,12 +20,11 @@ function Information() { const { dirList } = useModel('defaultConfig'); const [ tabKey , setTabKey ] = useState(0); const [ positionNum ,setPositionNum ] = useState([]); - const [ showAnchor , setShowAnchor ] = useState(false); const[ title ,setTitle] = useState(undefined); const[ searchTitle ,setSearchTitle] = useState(undefined); const [ showNews , setShowNews] = useState(false); - useEffect(()=>{ + function saishiNewActive(){ const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { @@ -34,13 +34,13 @@ function Information() { } }); }, { - threshold: 0.3 //露出 30% 时触发 + threshold: 0.4 //露出 40% 时触发 }); - const element = document.getElementById("comparenews"); // 获取你的元素 + const element = document.getElementById("notice"); // 获取你的元素 if (element) { observer.observe(element); } - },[]) + } useEffect(()=>{ if (location.pathname === '/competitions/2026/information') { window.addEventListener('scroll', throttleHandleScroll); @@ -57,7 +57,6 @@ function Information() { function handleScroll() { let scrollTop = document.documentElement.scrollTop; //滚动条滚动高度 - setShowAnchor(scrollTop > 362); if(scrollTop < 362) setTabKey(0); if(positionNum && positionNum.length>0){ for(let i=0;i { totalList[e.name] = e.list }) - setInformationList(totalList) - setIsSpin(false) + setInformationList(totalList); + setIsSpin(false); + saishiNewActive();//设置赛事新闻的动画效果 }) } @@ -120,12 +120,6 @@ function Information() { }) } - const scrollToAnchor = (anchorName) => { - if (anchorName) { - let anchorElement = document.getElementById(anchorName); - if(anchorElement) { anchorElement.scrollIntoView({block: 'start', behavior: 'smooth'}); } - } - } return
@@ -142,112 +136,179 @@ function Information() { suffix={} />
-
+
+ { + informationList["guide"] && informationList["guide"].length > 0 ? +
+ { + informationList["guide"].map((e,k)=>{ + return( +
+
{e.name}
+ {e.publishTime} +
+ ) + }) + } +
+ :"" + }
+ { + information.category && + + { + information.category.map((e,k)=>{ + return { e.title }} + > + }) + } + + } {/* 赛事公告模块 */} -
-
-

four tracks

-

赛事公告

+ { + informationList["forum"] && informationList["forum"].length > 0 ? +
+
+

four tracks

+

赛事公告

+ { + information.category.map((e) => { + return e.anchor === "forum" &&
+
+ { + informationList[e.anchor].map(( e, k ) => { + return k<3? +
+
赛事公告 Banner
+
+ { e.name } +

{ e.summary }

+
+
:"" + }) + } +
+ { + informationList[e.anchor].length > 3 && +
+ { + informationList[e.anchor].map(( e, k ) => { + return k>2?
+
+ { e.name } +

{ e.summary }

+
+
:"" + }) + } +
+ } +
+ }) + } +
+
:"" + } + + {/* 赛事解读 */} + { + informationList["guide"] && informationList["guide"].length > 0 ? +
+

Interpretation

+

赛事解读

{ information.category.map((e) => { - return e.anchor === "forum" &&
-
+ return e.anchor === "guide" &&
{ - informationList[e.anchor] && informationList[e.anchor].length > 0 ? informationList[e.anchor].map(( e, k ) => { - return k<3? -
-
赛事公告 Banner
-
- { e.name } -

{ e.summary }

-
-
- :
+ informationList[e.anchor].map(( e, k ) => { + return
- { e.name } + { e.name }

{ e.summary }

+
+ + {e.publishTime} + 查看详情 +
- }): - "" + }) }
}) } -
-
- {/* 赛事解读 */} -
-

Interpretation

-

赛事解读

- { - information.category.map((e) => { - return e.anchor === "guide" &&
-
-
- { - informationList[e.anchor] && informationList[e.anchor].length > 0 ? informationList[e.anchor].map(( e, k ) => { - return
-
- { e.name } -

{ e.summary }

-
-
- }): - "" - } -
-
- }) - } -
+
: + "" + } {/* 赛事新闻 */} -
-

Interpretation

-

赛事新闻

- { - information.category.map((e) => { - return e.anchor === "notice" &&
-
-
- { - informationList[e.anchor] && informationList[e.anchor].length > 0 ? informationList[e.anchor].map(( e, k ) => { - return
-
- { e.name } -

{ e.summary }

-
-
- }): - "" - } -
-
- }) - } -
- { - information.category && showAnchor && -
+ informationList["notice"] && informationList["notice"].length > 0 ? +
+
+

Interpretation

+

赛事新闻

+ { + information.category.map((e) => { + return e.anchor === "notice" &&
+
+ { + informationList[e.anchor].map(( e, k ) => { + return
+
+ { e.name } +

{ e.summary }

+
+
+ }) + } +
+
+ }) + } +
+
:"" + } + + {/* 资源发布 */} + { + informationList["notice"] && informationList["notice"].length > 0 ? +
+

Resources

+

资源发布下载

{ - information.category.map((e,k)=>{ - return
  • { scrollToAnchor(e.anchor);}}>{ e.title }
  • + information.category.map((e) => { + return e.anchor === "notice" &&
    +
    +
    + +
    + { + informationList[e.anchor].map(( e, k ) => { + return
    + { e.name } +

    { e.summary }

    +
    + }) + } +
    +
    }) - } -
    + } +
    :"" } {/* { information.category.map((e) => { return
    -

    {e.eng.toUpperCase()}

    { e.title }

    @@ -255,9 +316,9 @@ function Information() { informationList[e.anchor] && informationList[e.anchor].length > 0 ? informationList[e.anchor].map(( e, k ) => { return
    - { e.name } + { e.name }

    { e.summary }

    - 阅读全文 + 阅读全文
    }): diff --git a/src/pages/2026/information/index.less b/src/pages/2026/information/index.less index d1d4a90df..e4a392422 100644 --- a/src/pages/2026/information/index.less +++ b/src/pages/2026/information/index.less @@ -1,38 +1,95 @@ .information { + font-family:alibabaPuhuiM; .informationBanner{ background-image: url(../img/infoBanner.png); background-size: 100% 100%; + padding-bottom: 72px; + } + .bannerAll{ + display: flex; + align-items: center; + .activeList{ + overflow: hidden; + height: 388px; + flex: 1; + .activeCard{ + height:70px; + background:#f2f8ff; + border:2px solid #ffffff; + margin-bottom: 36px; + border-radius:10px; + padding:0 20px; + display: flex; + align-items: center; + font-size: 14px; + margin-left: 80px; + .name{ + font-size: 17px; + font-weight:500; + color:#091221; + flex: 1; + width: 0; + margin-right: 15px; + text-align: left; + } + .time{ + margin-left: auto; + } + &:nth-child(2n){ + margin-left: 0px; + margin-right: 80px; + } + } + } } .anchorPart{ - width: 115px; - background-color: #fff; - position: fixed; - box-shadow: 0px 0px 12px 1px rgba(107,136,204,0.06); - border-radius: 4px 4px 4px 4px; - z-index: 11; - padding:12px 0px; - li{ - position: relative; + height:60px; + .ant-anchor{ + display: flex; + align-items: center; + justify-content: center; + padding:5px; + background:rgba(13, 32, 151, 0.04); + border:1px solid #ffffff; + border-radius:8px; + margin:0px auto; + width: max-content; + backdrop-filter: blur(4px); + .ant-anchor-ink::before{ + background-color: transparent; + } + } + .ant-anchor-ink-ball.visible{ + display: none; + } + .ant-anchor-link{ list-style-type: none; - padding:0px 15px; + padding:0px 33px; height: 45px; line-height: 45px; - font-weight: 400; - font-size: 15px; + font-family:Douyin Sans; + font-weight:700; + color:#091221!important; + font-size:20px; color: #1F2329; cursor: pointer; - &.active{ - color: #6233DE; + margin-right: 35px; + border-radius:8px; + &:last-child{ + margin-right: 0px; } - &.active::after{ - width: 2px; - height: 29px; - background: linear-gradient( 103deg, #5950F3 0%, #6B16CA 100%); - border-radius: 0px 0px 0px 0px; - left: 0px; - content: ""; - top: 8px; - position: absolute; + &:hover{ + background-color: rgba(9, 18, 33, 0.05); + .ant-anchor-link-title-active{ + color: #fff!important; + } + } + &.ant-anchor-link-active{ + color: #fff!important; + background:#091221; + .ant-anchor-link-title-active{ + color: #fff!important; + } } } } @@ -112,7 +169,7 @@ // 赛事公告模块样式 .announcement-section { width: 100%; - padding: 60px 0px 40px; + padding: 0px 0px 40px; background-image: url(../img/gameStatus.png); background-size: 100% 100%; font-family: 'Douyin Sans'; @@ -120,6 +177,7 @@ .announcements{ display: flex; margin-top: 53px; + gap: 30px; } .announcement-title { font-size: 48px; @@ -129,13 +187,10 @@ } .announcement-card { - width: 31%; - margin-right: 30px; + flex: 0 0 calc(33.9% - 30px); border-radius: 12px; overflow: hidden; - &:nth-child(3){ - margin-right: 0px; - } + box-sizing: border-box; .annouceImg{ border-radius: 18px; overflow: hidden; @@ -232,24 +287,36 @@ border-radius:24px; border:none!important; margin:0px auto 30px!important; - padding: 0px 35px; + padding: 0px 35px!important; box-sizing: border-box; width: 45.5%!important; &:nth-child(2n){ margin-left: 0px!important; } } + .content-wrapper{ + padding:0px!important; + } } // 赛事新闻 .comparenews{ - background-image: url(../img/news.png); + background-image: url(../img/newBack.png); background-size: 100% 100%; - background-position-y: 60px; - transition: 1s; &.active{ + .comparenewsBack{ + background-size: 100% 100%; + } + } + .comparenewsBack{ + background-image: url(../img/news.png); + background-repeat: no-repeat; + background-size: 90% 90%; + border-radius: 26px; + padding-bottom: 116px; width: 100%; - background-position-y: 0px; + background-position: 50%; + transition: 1s; } .content{ background-color: #fff; @@ -258,6 +325,8 @@ margin-top: 50px; } } + + // ------------------------- .content { margin: auto; position: relative; @@ -288,9 +357,11 @@ .content-wrapper { display: flex; flex-wrap: wrap; + background-color: #fff; + border-radius:30px; + padding:40px; .content-item { display: flex; - margin-bottom: 10px; width: 50%; padding-right: 40px; border-bottom: 1px dashed rgba(9, 18, 33, 0.15); @@ -298,6 +369,9 @@ padding-left: 40px; padding-right: 0px; } + &:last-child,&:nth-last-child(2){ + border-bottom: none; + } .item-left { font-family: PingFang SC; font-weight: 700; @@ -309,6 +383,7 @@ .item-right { flex: 1; width: 0; + padding-bottom: 30px; .time { color: #5F6577; font-size: 14px; @@ -318,7 +393,7 @@ font-weight: 700; color: #252b3a; font-size: 18px; - margin-top: 20px; + margin-top: 30px; display: block; &:hover{ color: #6233DE; @@ -330,12 +405,21 @@ line-height: 32px; margin-top: 20px; } - .read-more { - float: right; - color: #6233DE; - font-size: 15px; - margin-top: 10px; + .item-time{ display: flex; + align-items: center; + color:#223452; + } + .read-more { + margin-left: auto; + color: #091221; + font-size: 15px; + display: flex; + height:36px; + line-height:34px; + border:1px solid #091221; + padding:0 14px; + border-radius:9px; span{ transition: 0.2s; display: block; @@ -396,4 +480,18 @@ } } } +} +// -----------------资源发布下载 +.resourceBox{ + background-image: url(../img/sourceBack.png); + background-size: 100% 100%; + .resourceWrapper{ + display: flex; + gap: 30px; + flex-wrap: wrap; + .resourceCard{ + flex: 0 0 calc(33.9% - 30px); + width: 0; + } + } } \ No newline at end of file