Compare commits

...

6 Commits

Author SHA1 Message Date
maxjhandsome a298bb493c Merge pull request '测试合并' (#1) from maxjhandsome/forgeplus-react-v2:dev_local_v2 into dev_local_v2 2025-12-31 09:07:16 +08:00
maxjhandsome beb78e5ea1 ADD file via upload 2025-12-31 09:06:18 +08:00
谢思 e2ea1595f3 首页各模块增加入口 2025-12-04 10:33:56 +08:00
谢思 97ae21fbbe 代码库主页增加缺省图 2025-12-04 10:33:36 +08:00
谢思 a2be5948b5 供应链增加uid传参 2025-12-04 10:32:48 +08:00
谢思 a223193b18 供应链banner图替换 2025-12-04 10:32:25 +08:00
17 changed files with 165 additions and 11 deletions

BIN
nexus数据导入表.xlsx Normal file

Binary file not shown.

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1762825432985') format('woff2'),
url('iconfont.woff?t=1762825432985') format('woff'),
url('iconfont.ttf?t=1762825432985') format('truetype');
src: url('iconfont.woff2?t=1764752922359') format('woff2'),
url('iconfont.woff?t=1764752922359') format('woff'),
url('iconfont.ttf?t=1764752922359') format('truetype');
}
.iconfont {
@ -13,6 +13,22 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-hezuohuoban:before {
content: "\e9bf";
}
.icon-xiangmugongxian:before {
content: "\e9c1";
}
.icon-sijiaoxing:before {
content: "\e9c0";
}
.icon-a-zu15512:before {
content: "\e9be";
}
.icon-wendangbangong-01:before {
content: "\e9bd";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,34 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "46248622",
"name": "合作伙伴",
"font_class": "hezuohuoban",
"unicode": "e9bf",
"unicode_decimal": 59839
},
{
"icon_id": "46248621",
"name": "项目贡献",
"font_class": "xiangmugongxian",
"unicode": "e9c1",
"unicode_decimal": 59841
},
{
"icon_id": "46245203",
"name": "四角星",
"font_class": "sijiaoxing",
"unicode": "e9c0",
"unicode_decimal": 59840
},
{
"icon_id": "46244977",
"name": "组 15512",
"font_class": "a-zu15512",
"unicode": "e9be",
"unicode_decimal": 59838
},
{
"icon_id": "46034062",
"name": "文档办公-01",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
import React , { useEffect , useState } from 'react';
import React , { Fragment, useEffect , useState } from 'react';
import './index.scss';
import { Button } from 'antd';
import Upload from "../Upload/Index";
@ -10,6 +10,8 @@ import RenderHtml from '../../components/render-html';
import Attachments from "../Upload/attachment";
import { getImageUrl } from '../../common/UrlTool';
import UpdateDescModal from '../Main/sub/UpdateDescModal';
import Nodata from '../Nodata';
import nodata_img from "../Images/nodata_new.png";
function Index(props){
const [ attachments , setAttachments ] = useState(undefined);
@ -162,7 +164,9 @@ function Index(props){
{content ?
<RenderHtml className="break_word_comments imageLayerParent project_about_info" value={content} url={props.history.location}/>
:
<div>暂无概览~</div>
<Fragment>
<Nodata img={nodata_img} _html={editOpration ? <Button onClick={editContent} type='primary'>点击添加</Button> : <span className='font-16' style={{color: '#0c0d0e'}}>暂无概览</span>}/>
</Fragment>
}
{attachments && attachments.length > 0 &&
<Attachments

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_hoverarrow_black_48</title>
<defs>
<rect id="path-1" x="0" y="0" width="24" height="24"></rect>
<rect id="path-3" x="0" y="0" width="20.5714286" height="20.5714286"></rect>
<rect id="path-5" x="0" y="0" width="24" height="24"></rect>
<rect id="path-7" x="0" y="0" width="20.5714286" height="20.5714286"></rect>
</defs>
<g id="icon_hoverarrow_black_48" stroke="none" fill="none" fill-rule="evenodd" stroke-width="1">
<g id="箭头-黑色备份" transform="translate(0, 24)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="path-1"></g>
<g id="编组-23" mask="url(#mask-2)">
<g transform="translate(1.7143, 1.7143)">
<mask id="mask-4" fill="white">
<use xlink:href="#path-3"></use>
</mask>
<g id="path-1" stroke="none" fill="none"></g>
<g id="编组" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-4)">
<g transform="translate(-1.8571, -1.8571)">
<g transform="translate(12.1429, 12.1429) rotate(-45) translate(-12.1429, -12.1429)translate(3.0515, 4.0616)">
<polyline id="路径" stroke="#2450FF" stroke-width="1.8" transform="translate(10.1015, 8.0812) rotate(45) translate(-10.1015, -8.0812)" points="4.38723973 2.36693464 15.8158112 2.36693464 15.8158112 13.7955061"></polyline>
<line x1="-2.48689958e-14" y1="8.08122036" x2="18.1827458" y2="8.08122036" id="路径-2" stroke="#2450FF" stroke-width="1.8" stroke-linejoin="round"></line>
</g>
</g>
</g>
</g>
</g>
</g>
<g id="箭头-黑色备份-3" transform="translate(24, 0)">
<mask id="mask-6" fill="white">
<use xlink:href="#path-5"></use>
</mask>
<g id="path-1"></g>
<g id="编组-23" mask="url(#mask-6)">
<g transform="translate(1.7143, 1.7143)">
<mask id="mask-8" fill="white">
<use xlink:href="#path-7"></use>
</mask>
<g id="path-1" stroke="none" fill="none"></g>
<g id="编组" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-8)">
<g transform="translate(-1.8571, -1.8571)">
<g transform="translate(12.1429, 12.1429) rotate(-45) translate(-12.1429, -12.1429)translate(3.0515, 4.0616)">
<polyline id="路径" stroke="#091221" stroke-width="1.8" transform="translate(10.1015, 8.0812) rotate(45) translate(-10.1015, -8.0812)" points="4.38723973 2.36693464 15.8158112 2.36693464 15.8158112 13.7955061"></polyline>
<line x1="-2.48689958e-14" y1="8.08122036" x2="18.1827458" y2="8.08122036" id="路径-2" stroke="#091221" stroke-width="1.8" stroke-linejoin="round"></line>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -19,9 +19,9 @@ function Index(props) {
<div className="home-top"></div>
<div className="home-main">
<Store />
<Chain />
<Chain {...props}/>
{/* <Factory /> */}
<Forum />
<Forum {...props}/>
</div>
</div>
)

View File

@ -23,4 +23,34 @@
color:#091221;
}
}
.btn-more {
font-family: alibaba;
color: #091221;
display: inline-block;
position: relative;
padding-right: 20px; // 为箭头留出空间
&::after {
content: "";
position: absolute;
width: 2rem;
height: 2rem;
right: -5px;
top: 50%;
transform: translateY(-50%);
background-image: url('../img/jiantou.svg');
background-size: 3.8rem 3.8rem;
background-position: right 0 top 0;
background-repeat: no-repeat;
transition: all .3s ease-out;
}
&:hover {
color: #2752FF;
&::after {
background-position: right -1.9rem top -1.9rem;
}
}
}
}

View File

@ -7,7 +7,7 @@ import { Link } from "react-router-dom";
const BANNER_DATA = [
{ key: 1, keyword: '仓库', name: '军用开源软件仓库', title: '军用开源软件仓库', content: '提供软件源码的集中托管与协作、编译构建后的制品统一管理,并支持一键搜索与下载成熟可用的应用程序,为军事软件的全生命周期提供一站式管理与分发服务', img: banner1 },
{ key: 2, keyword: '供应链', name: '供应链监测', title: '供应链监测', content: '实现供应链全流程可视化与智能决策。通过实时数据监控、需求预测与风险预警,优化库存与资源配置,助力精准掌控供应链动态,实现降本增效', img: banner2 },
{ key: 2, keyword: '供应链', name: '供应链监测', title: '供应链监测', content: '实现供应链全流程可视化与智能决策。通过实时数据监控、需求预测与风险预警,优化库存与资源配置,助力精准掌控供应链动态,实现降本增效', img: banner3 },
// { key: 3, keyword: '', name: '', title: '', content: '线', img: banner3 }
]

View File

@ -18,9 +18,13 @@ const Item = [
]
function Chain(props) {
const {showLoginDialog, current_user, mygetHelmetapi} = props
const {navbar=[]} = mygetHelmetapi || {}
const contentRef = useRef(null);
const [isVisible, setIsVisible] = useState(false);
const supplyChainItem = navbar.find(item => item.name.includes('供应链'));
const supplyChainLink = supplyChainItem ? supplyChainItem.link : '';
useEffect(() => {
const observer = new IntersectionObserver((entries) => {
@ -64,6 +68,15 @@ function Chain(props) {
<img src={ chainGif } alt="" />
</div>
</div>
<div className='center pt20 mb50'>
{supplyChainLink && <a className='font-20 btn-more' onClick={()=>{
if(current_user && !current_user.login){
showLoginDialog();
}else{
current_user && window.open(`${supplyChainLink}`)
}
}}>查看更多</a>}
</div>
</div>
);
}

View File

@ -19,6 +19,10 @@ const Item2 = [
]
function forum(props) {
const {showLoginDialog, current_user, mygetHelmetapi} = props
const {navbar=[]} = mygetHelmetapi || {}
const forumItem = navbar.find(item => item.name.includes('论坛交流'));
const forumLink = forumItem ? forumItem.link : '';
return (
<div className="home-forum home-module">
@ -48,6 +52,9 @@ function forum(props) {
})
}
</div>
<div className='center pt20 mb100'>
{forumLink && <a className='font-20 btn-more' href={forumLink} target='_blank'>查看更多</a>}
</div>
</div>
);
}

View File

@ -624,7 +624,7 @@
width: 1600px;
}
.forum-content2 {
margin-bottom: 122px;
margin-bottom: 30px;
width: 1600px;
height: 160px;
background-color: #ffffff;

View File

@ -9,7 +9,7 @@ function Sbom(props) {
document.title = '供应链监测预警平台';
}, [])
const url = `${governance}/governancePortal/governance/home?token=${admin?"admin123": user_id}`
const url = `${governance}/governancePortal/governance/home?uid=${user_id}&token=${admin?"admin123": user_id}`
// const url = "http://localhost:3007/"
return <div className="" style={{border: "none"}}>