diff --git a/config/routes/competitions.ts b/config/routes/competitions.ts
index f79bac9fc..b97d1c692 100644
--- a/config/routes/competitions.ts
+++ b/config/routes/competitions.ts
@@ -19,6 +19,10 @@ export const Competitions = {
path: '/competitions/2026/schedule',
component: '@/pages/2026/schedule',
},
+ {
+ path: '/competitions/2026/center',
+ component: '@/pages/2026/center',
+ },
{
path: '/competitions/2026',
component: '@/pages/2026/home',
diff --git a/src/pages/2026/center/index.jsx b/src/pages/2026/center/index.jsx
new file mode 100644
index 000000000..ee680bbe2
--- /dev/null
+++ b/src/pages/2026/center/index.jsx
@@ -0,0 +1,46 @@
+import SpeTitle from '../components/Title'
+import styles from './index.less'
+import React, { useState, useRef } from 'react'
+import icon1 from '../img/center/icon1.webp'
+import directions from './info'
+
+function Center(props) {
+
+
+
+ return
+
+
+
+
+
+

+
+
+
+ {
+ directions.map(e => {
+ return
+
+
+
+
+
+ {
+ e.tasks.map(track => {
+ return
+
+
+ })
+ }
+
+
+
+
+ })
+ }
+
+
+}
+
+export default Center
\ No newline at end of file
diff --git a/src/pages/2026/center/index.less b/src/pages/2026/center/index.less
new file mode 100644
index 000000000..1b2f6550a
--- /dev/null
+++ b/src/pages/2026/center/index.less
@@ -0,0 +1,66 @@
+.center {
+ background: url('../img/center/page-bg.webp');
+ background-repeat: no-repeat;
+ background-size: 100% auto;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ .title {
+ padding-top: 40px;
+ }
+ .search_wrap {
+ margin-top: 22px;
+ width: 680px;
+ height: 120px;
+ background: url('../img/center/search-bg.webp');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+ .search {
+ margin-top: 20px;
+ margin-left: auto;
+ margin-right: auto;
+ width:660px;
+ height:55px;
+ background:#ffffff;
+ border:1px solid;
+ border-color:rgba(22, 76, 228, 0.05);
+ border-radius:28px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ z-index: 1;
+ input {
+ border: none;
+ margin-left: 30px;
+ width: 100%;
+ height: 40px;
+ line-height: 40px;
+ font-family:Alibaba PuHuiTi;
+ color:#2b3369;
+ font-size:15px;
+ &:focus-visible {
+ border: none;
+ outline: none;
+ }
+ margin-right: 30px;
+ }
+ .search_icon {
+ margin-right: 9px;
+ width: 39px;
+ height: 39px !important;
+ background: #091221;
+ flex-shrink: 0;
+ color: #ffffff;
+ text-align: center;
+ line-height:39px;
+ margin-right: 8px;
+ cursor: pointer;
+ border-radius: 50%;
+ img {
+ width: 18px;
+ height: 18px;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/pages/2026/center/info.js b/src/pages/2026/center/info.js
new file mode 100644
index 000000000..381a737c1
--- /dev/null
+++ b/src/pages/2026/center/info.js
@@ -0,0 +1,109 @@
+export const directions = [{
+ id: 1,
+ name: 'AI方向',
+ desc: '聚焦人工智能前沿技术与应用,探索大模型、智能算法在开源场景下的创新实践',
+ tasks: {
+ '开源案例教学赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源任务挑战赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源代码评注赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源代码评注赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ }
+ },{
+ id: 1,
+ name: 'AI方向',
+ desc: '聚焦人工智能前沿技术与应用,探索大模型、智能算法在开源场景下的创新实践',
+ tasks: {
+ '开源案例教学赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源任务挑战赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源代码评注赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ '开源代码评注赛道': [{ name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ { name: '基于AI/Agent的NPU算子自动生成',level: 2,owner: '小米'},
+ ],
+ }
+ }]
\ No newline at end of file
diff --git a/src/pages/2026/img/center/icon1.webp b/src/pages/2026/img/center/icon1.webp
new file mode 100644
index 000000000..0f6807b5c
Binary files /dev/null and b/src/pages/2026/img/center/icon1.webp differ
diff --git a/src/pages/2026/img/center/icon2.webp b/src/pages/2026/img/center/icon2.webp
new file mode 100644
index 000000000..e6b8f41ca
Binary files /dev/null and b/src/pages/2026/img/center/icon2.webp differ
diff --git a/src/pages/2026/img/center/icon3.webp b/src/pages/2026/img/center/icon3.webp
new file mode 100644
index 000000000..5e4ec02e9
Binary files /dev/null and b/src/pages/2026/img/center/icon3.webp differ
diff --git a/src/pages/2026/img/center/icon4.webp b/src/pages/2026/img/center/icon4.webp
new file mode 100644
index 000000000..c435b1175
Binary files /dev/null and b/src/pages/2026/img/center/icon4.webp differ
diff --git a/src/pages/2026/img/center/page-bg.webp b/src/pages/2026/img/center/page-bg.webp
new file mode 100644
index 000000000..c9a51b29c
Binary files /dev/null and b/src/pages/2026/img/center/page-bg.webp differ
diff --git a/src/pages/2026/img/center/search-bg.webp b/src/pages/2026/img/center/search-bg.webp
new file mode 100644
index 000000000..53293bc94
Binary files /dev/null and b/src/pages/2026/img/center/search-bg.webp differ
diff --git a/src/pages/2026/img/schedule/item1.webp b/src/pages/2026/img/schedule/item1.webp
new file mode 100644
index 000000000..0def2bf05
Binary files /dev/null and b/src/pages/2026/img/schedule/item1.webp differ
diff --git a/src/pages/2026/img/schedule/item2.webp b/src/pages/2026/img/schedule/item2.webp
new file mode 100644
index 000000000..978c030a2
Binary files /dev/null and b/src/pages/2026/img/schedule/item2.webp differ
diff --git a/src/pages/2026/img/schedule/item3.webp b/src/pages/2026/img/schedule/item3.webp
new file mode 100644
index 000000000..414c3a35d
Binary files /dev/null and b/src/pages/2026/img/schedule/item3.webp differ
diff --git a/src/pages/2026/schedule/index.jsx b/src/pages/2026/schedule/index.jsx
index b167fa6b2..72cda2d2d 100644
--- a/src/pages/2026/schedule/index.jsx
+++ b/src/pages/2026/schedule/index.jsx
@@ -24,8 +24,8 @@ function Schedule(props) {
const scheduleList = [
{ id: 1, periodId: 1, date: '3月20日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
- { id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
- { id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
+ { id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
+ { id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
{ id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
{ id: 2, periodId: 1, date: '3月28日', content: '我是此日期的具体赛事安排占一行我是此日期的具体赛事安排占一行', status: '报名招募期' },
{ id: 3, periodId: 2, date: '5月20日', content: '我是此日期的具体赛事安排占一行我是此日期的', status: '报名招募期' },
@@ -125,8 +125,10 @@ function Schedule(props) {
className={styles.schedule_item}
>
{schedule.date}
- {schedule.content}
- {schedule.status}
+
+
{schedule.content}
+
{schedule.status}
+
))}
diff --git a/src/pages/2026/schedule/index.less b/src/pages/2026/schedule/index.less
index 72b0f67bb..c2885d821 100644
--- a/src/pages/2026/schedule/index.less
+++ b/src/pages/2026/schedule/index.less
@@ -13,6 +13,7 @@
width: 1600px;
margin: auto;
z-index: 1;
+ margin-top: 55px;
.rules_tab {
margin-top: 55px;
@@ -202,7 +203,7 @@
&:after {
content: '';
position: absolute;
- left: 9px;
+ left: 10px;
top: var(--active-top, 0px);
width:5px;
height:80px;
@@ -290,42 +291,84 @@
}
.schedule_item {
- background: #f5f5f5;
- border-radius: 10px;
- padding: 20px;
+ width: 1090px;
+ height: 100px;
+ border: 1px solid;
+ border-color: #ffffff;
+ border-radius: 16px;
+ padding: 40px;
margin-bottom: 20px;
transition: all 0.3s ease;
-
display: flex;
align-items: center;
gap: 20px;
- .schedule_date {
- font-size: 14px;
- color: #666;
- min-width: 80px;
+ &:nth-child(2n + 1) {
+ background: url('../img/schedule/item1.webp'), #ffffff;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
}
- .schedule_content {
+ &:nth-child(2n) {
+ background: url('../img/schedule/item2.webp'), #ffffff;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .schedule_info {
+ display: flex;
+ justify-content: space-between;
flex: 1;
- font-size: 16px;
- color: #333;
+ .schedule_content {
+ flex: 1;
+ font-size: 16px;
+ color: #333;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ max-width: 800px;
+ }
+
+ .schedule_status {
+ font-size: 14px;
+ color: #999;
+ }
}
- .schedule_status {
- font-size: 14px;
- color: #999;
+ .schedule_date {
+ font-family: alibabaPuhuiM;
+ color: #091221;
+ font-size: 16px;
}
&:hover {
- background: linear-gradient(270.49deg, #8959f5 2.12%, #2042c6 98.95%);
+ height: 160px;
color: white;
-
+ background: url('../img/schedule/item3.webp');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ align-items: flex-start;
.schedule_date,
.schedule_content,
.schedule_status {
color: white;
}
+ .schedule_date {
+ font-size: 20px;
+ line-height: 20px;
+ }
+ .schedule_content {
+ font-size: 28px;
+ line-height: 28px;
+ width: 930px;
+ }
+ .schedule_status {
+ font-size: 18px;
+ margin-top: 20px;
+ }
+ .schedule_info {
+ flex-direction: column;
+ }
}
}
}