-
+
XX可控开源社区·
@@ -48,26 +49,36 @@ function Banner() {
构建军方协同新生态
+
持续汇聚多源需求,开放共享可信资源,协同创新核心技术,聚智赋能软件生态
{/* 中央展示图 */}
-
-
+
+
-
.default}/)
+
+
+
+
持续汇聚多源需求
+
.default})
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
{/* */}
diff --git a/src/forge/Main/projecthome/v2/components/communityDynamic.jsx b/src/forge/Main/projecthome/v2/components/communityDynamic.jsx
index 5ccee5d7..3d076e1e 100644
--- a/src/forge/Main/projecthome/v2/components/communityDynamic.jsx
+++ b/src/forge/Main/projecthome/v2/components/communityDynamic.jsx
@@ -1,4 +1,4 @@
-import { Button, Divider } from 'antd';
+import { Button, Carousel, Divider } from 'antd';
import React, { Fragment, useEffect, useState } from 'react';
import { getSubDocList, getNewsDetail } from '../../../../Information/api';
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
@@ -76,12 +76,12 @@ const CommunityDynamic = () => {
{/* 活动和项目动态 */}
-
+
-
})
+ {/*
})
*/}
精彩活动
- {list2.slice(0,4).map((item, index) => (
+ {list2.slice(0,5).map((item, index) => (
-
{item.summary}
@@ -93,12 +93,17 @@ const CommunityDynamic = () => {
))}
-
.default})
+
+ {list2.slice(0,5).map((item, index)=>{
+ return
+ })}
+
+
-
})
+ {/*
})
*/}
XX项目动态
{list3.slice(0,4).map((item, index) => (
diff --git a/src/forge/Main/projecthome/v2/components/ecosystemAlliance.jsx b/src/forge/Main/projecthome/v2/components/ecosystemAlliance.jsx
index 0911e6e4..1878c6d3 100644
--- a/src/forge/Main/projecthome/v2/components/ecosystemAlliance.jsx
+++ b/src/forge/Main/projecthome/v2/components/ecosystemAlliance.jsx
@@ -85,7 +85,10 @@ const EcosystemAlliance = () => {
生态聚力 智创共赢
开放协作,与合作伙伴共拓市场蓝海。链接前沿技术,共建智慧产业新生态。赋能合作伙伴,
共筑可持续发展平台
-
+
diff --git a/src/forge/Main/projecthome/v2/components/index.scss b/src/forge/Main/projecthome/v2/components/index.scss
new file mode 100644
index 00000000..5b019271
--- /dev/null
+++ b/src/forge/Main/projecthome/v2/components/index.scss
@@ -0,0 +1,58 @@
+.center-1-bk-box{
+ perspective: 1200px;
+}
+.center-image-container {
+ transform-style: preserve-3d;
+ /* 初始状态:向前倾斜30度 */
+ transform: rotateX(30deg);
+ /* 动画效果 */
+ animation: rotateToVertical 1.2s ease-in-out forwards, cardSettle 0.8s ease-in-out 1s forwards;
+}
+
+ @keyframes rotateToVertical {
+ 0% {
+ transform: rotateX(30deg);
+ }
+ 100% {
+ transform: rotateX(0deg);
+ }
+ }
+
+ @keyframes cardSettle {
+ 0% {
+ transform:
+ rotateX(0deg)
+ rotateY(0deg)
+ rotateZ(0deg)
+ translateY(0)
+ translateZ(0)
+ scale3d(1, 1, 1);
+ }
+ 30% {
+ transform:
+ rotateX(-0.8deg)
+ rotateY(0.1deg)
+ rotateZ(0.05deg)
+ translateY(-1px)
+ translateZ(1px)
+ scale3d(1.002, 1.002, 1.002);
+ }
+ 60% {
+ transform:
+ rotateX(0.3deg)
+ rotateY(-0.05deg)
+ rotateZ(-0.02deg)
+ translateY(0.3px)
+ translateZ(-0.3px)
+ scale3d(0.999, 0.999, 0.999);
+ }
+ 100% {
+ transform:
+ rotateX(0deg)
+ rotateY(0deg)
+ rotateZ(0deg)
+ translateY(0)
+ translateZ(0)
+ scale3d(1, 1, 1);
+ }
+ }
\ No newline at end of file
diff --git a/src/forge/Main/projecthome/v2/components/moreContentButton.jsx b/src/forge/Main/projecthome/v2/components/moreContentButton.jsx
new file mode 100644
index 00000000..850314c8
--- /dev/null
+++ b/src/forge/Main/projecthome/v2/components/moreContentButton.jsx
@@ -0,0 +1,9 @@
+import { Icon } from "antd";
+import React from "react";
+import { Link } from "react-router-dom";
+
+function moreContentButton({href="/", name="探索更多内容", classname="font-16 color-white but-to-right"}){
+ return
{name}
+}
+
+export default moreContentButton
\ No newline at end of file
diff --git a/src/forge/Main/projecthome/v2/components/openSourceCollaboration.jsx b/src/forge/Main/projecthome/v2/components/openSourceCollaboration.jsx
index 0181eebb..dd9c674e 100644
--- a/src/forge/Main/projecthome/v2/components/openSourceCollaboration.jsx
+++ b/src/forge/Main/projecthome/v2/components/openSourceCollaboration.jsx
@@ -46,7 +46,10 @@ const OpenSourceCollaboration = () => {
5G自组网技术联盟是5G自组网技术学术交流平台(非社会团体、非实体机构),由5G自组网领域单位组成,遵循公开、公平、公正的原则,开展5G自组网技术体制与标准研究制定,促进成员单位深入交流与紧密合作,为5G自组网技术发展做出贡献
-
+
{/* 右侧功能卡片 */}
diff --git a/src/forge/Main/projecthome/v2/components/openSourceCollaboration1.jsx b/src/forge/Main/projecthome/v2/components/openSourceCollaboration1.jsx
index ca05015b..799ad746 100644
--- a/src/forge/Main/projecthome/v2/components/openSourceCollaboration1.jsx
+++ b/src/forge/Main/projecthome/v2/components/openSourceCollaboration1.jsx
@@ -66,7 +66,10 @@ const OpenSourceCollaboration = () => {
))}
-
+
diff --git a/src/forge/Main/projecthome/v2/components/project.jsx b/src/forge/Main/projecthome/v2/components/project.jsx
index ee500408..1c29288f 100644
--- a/src/forge/Main/projecthome/v2/components/project.jsx
+++ b/src/forge/Main/projecthome/v2/components/project.jsx
@@ -71,7 +71,10 @@ const RepositoryV2 = () => {
))}
-
+
{/* 右侧架构图 - 使用图片 */}
diff --git a/src/forge/Main/projecthome/v2/components/softwareFactory.jsx b/src/forge/Main/projecthome/v2/components/softwareFactory.jsx
index a6c4fe87..826aa53f 100644
--- a/src/forge/Main/projecthome/v2/components/softwareFactory.jsx
+++ b/src/forge/Main/projecthome/v2/components/softwareFactory.jsx
@@ -42,7 +42,10 @@ function SoftwareFactory() {
极速模式聚焦任务 - 代码 - 制品,助力软件研发快速响应、
实现极致效率
-
+

diff --git a/src/forge/Main/projecthome/v2/components/supplyChainGovernance.jsx b/src/forge/Main/projecthome/v2/components/supplyChainGovernance.jsx
index c29e7997..265fb547 100644
--- a/src/forge/Main/projecthome/v2/components/supplyChainGovernance.jsx
+++ b/src/forge/Main/projecthome/v2/components/supplyChainGovernance.jsx
@@ -1,49 +1,52 @@
-// components/SupplyChainGovernance.jsx
import React from 'react';
+import icon1 from '../image/icon25.png';
+import icon2 from '../image/icon22.png';
+import icon3 from '../image/icon26.png';
const SupplyChainGovernance = () => {
const governanceItems = [
{
id: 'security',
- title: '供应链安全XX',
- subtitle: '汇聚漏洞、恶意代码、组件三类关键信息要素',
- image: '/images/supply-chain-security.png',
- width: '40%'
+ title: '供应链安全XX库',
+ subtitle: '汇聚漏洞信息,恶意代码信息,组件信息三类关键供应链安全信息要素',
+ image: require('../image/supply-chain-security.png').default,
+ width: '40%',
+ tag: ["漏洞", "恶意代码", "组件"],
+ tagIcon: icon1
},
{
id: 'software',
title: '软件供应链治理',
- subtitle: '开展软件供应链成分分析和组件安全性分析',
- image: '/images/software-supply-chain.png',
- width: '28.5%'
+ subtitle: '实施软供链成分与安全分析,形成清单并定位漏洞',
+ image: require('../image/software-supply-chain.png').default,
+ width: '28.5%',
+ tag: ["成分分析", "安全性分析", "软件治理"],
+ tagIcon: icon2
},
{
id: 'risk',
title: '实时风险预警',
- subtitle: '根据新发布漏洞信息,实时评估和通报软件供应链风险',
- image: '/images/risk-warning.png',
- width: '28.5%'
+ subtitle: '据新漏洞评估波及范围,并示警软件供应链',
+ image: require('../image/risk-warning.png').default,
+ width: '28.5%',
+ tag: ["风险预警", "影响范围", "实时监测"],
+ tagIcon: icon1
},
{
id: 'vulnerability',
title: '已知漏洞监测',
- subtitle: '支持15种主流编程语言的软件漏洞检测',
- image: '/images/vulnerability-detection.png',
- width: '28.5%'
+ subtitle: '提供供应链已知漏洞检测、恶意代码检测、\n克隆漏洞检测、二进制漏洞检测等多种安\n全性分析能力',
+ width: '48%',
+ tag: ["恶意代码检测", "二进制漏洞检测", "克隆漏洞检测"],
+ tagIcon: icon3
},
{
id: 'assessment',
title: '软件治理能力评估',
- subtitle: '数据构建、多维分析、量化打分、结果融合的评估闭环',
- image: '/images/software-assessment.png',
- width: '28.5%'
- },
- {
- id: 'hardware',
- title: '硬件供应链能力评估',
- subtitle: '构建单芯片或基于SIP封装的多芯片模块的供应链供给能力评估',
- image: '/images/hardware-assessment.png',
- width: '40%'
+ subtitle: '数据构建、多维分析、量化打分、结果融合\n的软件治理能力评估体系',
+ width: '',
+ tag: ["软件治理", "能力评估", "多维分析"],
+ tagIcon: icon3
}
];
@@ -61,17 +64,17 @@ const SupplyChainGovernance = () => {
}}
>
{/* 标签区域 */}
-
-
XXX防雷
-
20万激励金
-
多合作资源
+
+ {item.tag.map((tag, i)=>{
+ return !!i ?
{tag} :
{tag}
+ })}
-
{item.title}
-
{item.subtitle}
+
{item.title}
+
{item.subtitle}
{/* 图片 */}
-
- {/*

*/}
-
+ {item.image &&
+

+
}
))}
diff --git a/src/forge/Main/projecthome/v2/image/banner-bk.png b/src/forge/Main/projecthome/v2/image/banner-bk.png
index 98c0cd05..8125b08f 100644
Binary files a/src/forge/Main/projecthome/v2/image/banner-bk.png and b/src/forge/Main/projecthome/v2/image/banner-bk.png differ
diff --git a/src/forge/Main/projecthome/v2/image/bk6.png b/src/forge/Main/projecthome/v2/image/bk6.png
new file mode 100644
index 00000000..40048b94
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/bk6.png differ
diff --git a/src/forge/Main/projecthome/v2/image/icon25.png b/src/forge/Main/projecthome/v2/image/icon25.png
new file mode 100644
index 00000000..fa94116b
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/icon25.png differ
diff --git a/src/forge/Main/projecthome/v2/image/icon26.png b/src/forge/Main/projecthome/v2/image/icon26.png
new file mode 100644
index 00000000..9c9cb958
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/icon26.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img11.png b/src/forge/Main/projecthome/v2/image/img11.png
index e0f66c5d..3f15c117 100644
Binary files a/src/forge/Main/projecthome/v2/image/img11.png and b/src/forge/Main/projecthome/v2/image/img11.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img12.png b/src/forge/Main/projecthome/v2/image/img12.png
index 3741cf38..dff2ec3e 100644
Binary files a/src/forge/Main/projecthome/v2/image/img12.png and b/src/forge/Main/projecthome/v2/image/img12.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img13.png b/src/forge/Main/projecthome/v2/image/img13.png
new file mode 100644
index 00000000..0565e12e
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/img13.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img14.png b/src/forge/Main/projecthome/v2/image/img14.png
new file mode 100644
index 00000000..a5a9bfb8
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/img14.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img15.png b/src/forge/Main/projecthome/v2/image/img15.png
new file mode 100644
index 00000000..bb96e118
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/img15.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img16.png b/src/forge/Main/projecthome/v2/image/img16.png
new file mode 100644
index 00000000..e7bd06ff
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/img16.png differ
diff --git a/src/forge/Main/projecthome/v2/image/img17.png b/src/forge/Main/projecthome/v2/image/img17.png
new file mode 100644
index 00000000..5d09135e
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/img17.png differ
diff --git a/src/forge/Main/projecthome/v2/image/risk-warning.png b/src/forge/Main/projecthome/v2/image/risk-warning.png
new file mode 100644
index 00000000..af966350
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/risk-warning.png differ
diff --git a/src/forge/Main/projecthome/v2/image/software-assessment.png b/src/forge/Main/projecthome/v2/image/software-assessment.png
new file mode 100644
index 00000000..1468a18e
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/software-assessment.png differ
diff --git a/src/forge/Main/projecthome/v2/image/software-supply-chain.png b/src/forge/Main/projecthome/v2/image/software-supply-chain.png
new file mode 100644
index 00000000..d3ba6a4d
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/software-supply-chain.png differ
diff --git a/src/forge/Main/projecthome/v2/image/supply-chain-security.png b/src/forge/Main/projecthome/v2/image/supply-chain-security.png
new file mode 100644
index 00000000..3e788950
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/supply-chain-security.png differ
diff --git a/src/forge/Main/projecthome/v2/image/vulnerability-detection.png b/src/forge/Main/projecthome/v2/image/vulnerability-detection.png
new file mode 100644
index 00000000..262a046b
Binary files /dev/null and b/src/forge/Main/projecthome/v2/image/vulnerability-detection.png differ
diff --git a/src/forge/Main/projecthome/v2/index.scss b/src/forge/Main/projecthome/v2/index.scss
index 1bbaf92a..5f5f2af8 100644
--- a/src/forge/Main/projecthome/v2/index.scss
+++ b/src/forge/Main/projecthome/v2/index.scss
@@ -9,7 +9,12 @@
color: #091221;
font-family: "alibabaReg";
- a:not(.blackBut):hover, a:not(.blackBut):focus{
+ .object-fit-contain {
+ object-fit: contain;
+ }
+
+ a:not(.blackBut):hover,
+ a:not(.blackBut):focus {
color: #2149d4;
}
@@ -36,14 +41,15 @@
backdrop-filter: blur(24px);
transition: background-color .4s ease-in-out;
position: relative;
- &::before{
+
+ &::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
- background: linear-gradient(120deg, rgba(255,255,255,0)0%, rgba(255,255,255,0.5)50%,rgba(255,255,255,0)100%);
+ background: linear-gradient(120deg, rgba(255, 255, 255, 0)0%, rgba(255, 255, 255, 0.5)50%, rgba(255, 255, 255, 0)100%);
transition: left 0.5s ease-in-out;
transition-delay: 0.5s;
}
@@ -52,15 +58,18 @@
background-color: #ffffff;
color: #091221;
}
- span{
+
+ span {
display: block;
transition: transform 0.5s;
}
- &:hover{
- span{
+
+ &:hover {
+ span {
transform: translateY(-36px);
}
- &::before{
+
+ &::before {
left: 100%;
}
}
@@ -91,11 +100,12 @@
}
// 标题悬停:下划线从左到右滑出
- .title-border-to-right{
+ .title-border-to-right {
display: inline-block;
max-width: 100%;
position: relative;
- &::after{
+
+ &::after {
position: absolute;
bottom: 0;
left: 0;
@@ -105,16 +115,20 @@
background-color: #2149d4;
transition: all 0.5s ease;
}
- &:hover{
+
+ &:hover {
padding-right: 25px;
- &+.hot-tag{
+
+ &+.hot-tag {
display: none;
}
}
- &:hover::after{
+
+ &:hover::after {
width: 100%;
}
- &:hover::before{
+
+ &:hover::before {
content: "\e9c4";
font-family: 'iconfont';
font-weight: normal;
@@ -128,10 +142,13 @@
.banner_v2 {
background-image: url('./image/banner1.png');
background-size: 100% 100%;
- padding-top: 160px;
+ padding-bottom: 150px;
margin-top: -58px;
height: 100vh;
position: relative;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
.main-title-v2 {
font-family: "ziyouwenyihei";
@@ -139,6 +156,7 @@
display: flex;
justify-content: center;
align-items: center;
+ position: relative;
.highlight-wrapper {
height: 80px;
@@ -176,6 +194,12 @@
-webkit-text-fill-color: transparent;
background-clip: text;
}
+
+ .center-left-1 {
+ position: absolute;
+ left: 50px;
+ top: 75px;
+ }
}
.stats-container {
@@ -193,41 +217,45 @@
overflow: hidden; // 防止光效溢出
// 添加流动光效
- &::after {
- content: "";
- position: absolute;
- top: 0;
- left: -100%;
- width: 100px;
- height: 1px;
- background: linear-gradient(90deg,
- transparent,
- rgba(255, 255, 255, 0.8),
- rgba(255, 255, 255, 0.4),
- transparent);
- box-shadow: 0 0 10px rgba(255, 255, 255, 0.6);
- animation: flowLight 3s linear infinite;
- }
+ // &::after {
+ // content: "";
+ // position: absolute;
+ // top: 0;
+ // left: -100%;
+ // width: 100px;
+ // height: 1px;
+ // background: linear-gradient(90deg,
+ // transparent,
+ // rgba(255, 255, 255, 0.8),
+ // rgba(255, 255, 255, 0.4),
+ // transparent);
+ // box-shadow: 0 0 10px rgba(255, 255, 255, 0.6);
+ // animation: flowLight 3s linear infinite;
+ // }
.stat-number {
font-size: 44px;
font-family: "ziyouwenyihei";
}
}
- .center-image-container{
+
+ .center-image-container {
position: relative;
- .center-left-bk{
- background-image:linear-gradient(91.39deg,rgba(255, 255, 255, 0.04) 0%,rgba(255, 255, 255, 0.05) 30%,rgba(255, 255, 255, 0.15) 100%);
- border-radius:15px;
+
+ .center-left-bk {
+ background-image: linear-gradient(91.39deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.05) 30%, rgba(255, 255, 255, 0.15) 100%);
+ border-radius: 15px;
padding: 10px;
position: absolute;
top: 15%;
left: 8%;
}
- .center-left-code{
+
+ .center-left-code {
border-radius: 10px;
position: relative;
padding: 20px;
+
&::before {
content: "";
position: absolute;
@@ -244,48 +272,85 @@
mask-composite: exclude;
}
}
- .center-right-bk{
- background-image:linear-gradient(178.97deg,rgba(91, 99, 187, 0.23) 0%,rgba(78, 87, 171, 0.14) 13.39%,rgba(255, 255, 255, 0) 100%);
- border-radius:0px 15px 15px 15px;
+
+ .center-right-bk {
+ background-image: linear-gradient(178.97deg, rgba(91, 99, 187, 0.23) 0%, rgba(78, 87, 171, 0.14) 13.39%, rgba(255, 255, 255, 0) 100%);
+ border-radius: 0px 15px 15px 15px;
padding: 10px;
position: absolute;
bottom: 8%;
right: 9.5%;
}
+
+ .center-left-2 {
+ opacity: 0.4;
+ position: absolute;
+ bottom: -6%;
+ left: 18%;
+ }
+
+ .center-left-3 {
+ opacity: 0.5;
+ position: absolute;
+ top: 19%;
+ right: 19.1%;
+ }
}
- .center-1-bk-wrapper{
+
+ .center-1-bk-wrapper {
display: inline-block;
+
&:before {
animation-delay: 1s;
animation: rotate 8s linear infinite;
- background: conic-gradient(
- from 180deg at 50% 50%,
- #e3ffca 0deg,
- #43bfff 45deg,
- transparent 90deg,
- transparent 180deg,
- #e3ffca 180deg,
- #43bfff 225deg,
- transparent 270deg
- );
+ background: conic-gradient(from 180deg at 50% 50%,
+ #e3ffca 0deg,
+ #43bfff 45deg,
+ transparent 90deg,
+ transparent 180deg,
+ #e3ffca 180deg,
+ #43bfff 225deg,
+ transparent 270deg);
z-index: 0;
}
}
- .center-1-bk{
-
- width:866px;
- height:512px;
- border-radius:15px;
+
+ .center-1-bk {
+ display: inline-block;
+ width: 866px;
+ height: 528px;
+ border-radius: 15px;
background-image: url('./image/banner-bk.png');
background-size: 100% 100%;
- .center-1-circle{
+
+ .center-1-circle {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
- background-color:#ffffff;
- &.active{
- background-color:#e5caff;
+ background-color: #ffffff;
+
+ &.active {
+ background-color: #e5caff;
+ }
+ }
+
+ .center-image-container-content {
+ height: 461px;
+
+ background-image: url('./image/bk6.png');
+ background-size: 100% 100%;
+
+ img {
+ max-width: 99%;
+ }
+
+ &-title {
+ display: inline-block;
+ background-image: url('./image/img14.png');
+ background-size: 100% 100%;
+ padding: 7px 30px 14px;
+ line-height: normal;
}
}
}
@@ -324,6 +389,13 @@
.activity-section {
width: 60%;
}
+ .activity-section-Carousel{
+ width: 400px;
+ border-radius: 10px;
+ img{
+ max-width: 100%;
+ }
+ }
.activity-item-v2 {
justify-content: space-between;
@@ -410,17 +482,10 @@
}
.governance-item {
- background-image: linear-gradient(156.13deg, #ffffff 0%, #ffffff 52.22%, #eef1fc 100%);
+ background-color: #ffffff;
border-radius: 15px;
- padding: 40px 35px;
-
- &.governance-item5 {
- background-image: linear-gradient(156.13deg, #4f73f6 0%, #7babff 100%);
-
- div {
- color: white;
- }
- }
+ padding-top: 40px;
+ max-height:478px;
.tags {
display: flex;
@@ -433,8 +498,8 @@
.tag-text {
font-size: 12px;
- color: #666;
- background-color: #f0f5ff;
+ color:#00a5aa;
+ background-color:#edfbfb;
padding: 2px 8px;
border-radius: 4px;
}
@@ -444,15 +509,72 @@
background-color: #f6f7fa;
padding: 2px 8px;
border-radius: 4px;
- color: #091221;
}
}
.image-container {
- background-color: rgba(228, 229, 231, 0.54);
- width: 80%;
- height: 262px;
- margin: 20px auto 0;
+ width: 100%;
+
+ .item-image {
+ max-width: 100%;
+ }
+ }
+
+ &.governance-item0 {
+ .image-container {
+ position: relative;
+ top: -157px;
+ }
+ }
+
+ &.governance-item1 {
+ .tag-text {
+ color:#417aff;
+ background-color:#edf2ff;
+ }
+ }
+
+ &.governance-item3 {
+ margin-top: 30px;
+ height: 335px;
+ background-image: url('./image/vulnerability-detection.png');
+ background-size: auto 100%;
+ background-position: right;
+ background-repeat: no-repeat;
+ .tag-text {
+ color:#8d56da;
+ background-color:#f8f3ff;
+ }
+ .governance-item-title{
+ padding-top: 20px;
+ padding-bottom: 10px;
+ }
+ }
+
+ &.governance-item4 {
+ flex: 1;
+ margin-top: 30px;
+ height: 335px;
+ background-image: url('./image/software-assessment.png'), linear-gradient(156.13deg, #4f73f6 0%, #7babff 100%);
+ background-size: auto 100%;
+ background-position: right;
+ background-repeat: no-repeat;
+ .tag-text {
+ color:#8d56da;
+ background-color:#f8f3ff;
+ }
+ .tag-value {
+ color:#091221;
+ background-color:#ffffff;
+ }
+ .governance-item-title{
+ padding-top: 20px;
+ padding-bottom: 10px;
+ }
+
+ div {
+ color: white;
+ }
}
}
}
@@ -560,7 +682,8 @@
.software-left-item.active span {
color: #258832;
}
- .mode-tag{
+
+ .mode-tag {
background-image: url('./image/icon25.svg');
}
}
@@ -568,8 +691,8 @@
.software-left {
width: 30%;
margin: 50px 40px;
-
- .software-left-border{
+
+ .software-left-border {
padding-left: 12px;
position: relative;
max-height: max-content;
@@ -657,7 +780,7 @@
display: inline-block;
background-color: #ffffff;
border-radius: 23px;
- padding: 6px 8px;
+ padding: 7px 6px;
.tab-button {
padding: 8px 15px;
@@ -738,7 +861,8 @@
}
}
}
- .partner1-list{
+
+ .partner1-list {
gap: 20px;
display: grid;
grid-template-columns: repeat(5, 1fr);
@@ -750,7 +874,8 @@
display: flex;
align-items: center;
justify-content: center;
- img{
+
+ img {
max-width: 80%;
}
}
@@ -1144,4 +1269,14 @@
100% {
left: 100%;
}
+}
+
+@keyframes flowBottom1 {
+ 0% {
+ transform: translateY(-40px) scale(0.95) rotateX(40deg);
+ }
+
+ 100% {
+ transform: translateY(0) scale(1) rotateX(0deg);
+ }
}
\ No newline at end of file
diff --git a/src/forge/projectHome/explore/index.jsx b/src/forge/projectHome/explore/index.jsx
index bc936285..2b74b8eb 100644
--- a/src/forge/projectHome/explore/index.jsx
+++ b/src/forge/projectHome/explore/index.jsx
@@ -1,6 +1,6 @@
-import React, { useEffect, useState } from "react";
+import React, { createRef, useEffect, useState } from "react";
import axios from "axios";
-import { Button, Divider, Input, Pagination, Popover, Spin, Tooltip } from "antd";
+import { Button, Carousel, Divider, Input, Pagination, Popover, Spin, Tooltip } from "antd";
import { Link } from "react-router-dom";
import Nodata from "../../Nodata";
import { getImageUrl } from "../../../common/UrlTool";
@@ -9,14 +9,17 @@ import RenderHtml from "../../../components/render-html";
import FeedBack from "../../../forge/Component/feedBack";
import './index.scss';
import ActionItem from "../../../factory/resource/components/ActionItem";
+import img1 from '../image/icon15.png'
const { Search } = Input;
function ProjectHomePage(props) {
+ const carouselEL = createRef()
+ const [current, setCurrent] = useState(0);
const [cateList, setCateList] = useState(undefined);
const [projectsList, setProjectsList] = useState(undefined);
const [search, setSearch] = useState(undefined);
const [cateID, setCateID] = useState(undefined);
const [isSpin, setIsSpin] = useState(true);
- const [monthList, setMonthList] = useState(undefined);
+ const [bannerProjects, setBannerProjects] = useState([]);
const [total, setTotal] = useState(0);
const [page, setPage] = useState(1);
const [cateTopics, setCateTopics] = useState(undefined);
@@ -51,7 +54,7 @@ function ProjectHomePage(props) {
useEffect(() => {
getCate();
- // getList();
+ getList();
getCateTopic();
document.title = 'JY开源软件仓库';
// 获取总数
@@ -136,17 +139,9 @@ function ProjectHomePage(props) {
}
function getList() {
- // const url = `/project_rank.json`;
- const url = `/projects/banner_recommend.json`
- axios.get(url, {
- // params: {
- // time: 30,
- // page: 1,
- // limit: 16
- // }
- }).then(result => {
+ axios.get(`/projects/banner_recommend.json`).then(result => {
if (result && result.data) {
- setMonthList(result.data.projects);
+ setBannerProjects(result.data.projects);
}
}).catch(error => { })
}
@@ -223,15 +218,40 @@ function ProjectHomePage(props) {
diff --git a/src/news/list/index.scss b/src/news/list/index.scss
index 7e1e4ef7..6845d302 100644
--- a/src/news/list/index.scss
+++ b/src/news/list/index.scss
@@ -85,6 +85,8 @@
background-color:#ffffff;
border-radius:10px;
box-shadow:0px 0px 6px rgba(92, 102, 193, 0.05);
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
}
}
.first-activity{