Merge remote-tracking branch 'origin/factory' into factory

This commit is contained in:
黄心宇 2026-01-06 15:08:04 +08:00
commit eb92c23db7
30 changed files with 99 additions and 95 deletions

View File

@ -1405,6 +1405,10 @@ a.edu-txt-w80,
font-size: 20px !important
}
.font-21 {
font-size: 21px;
}
.font-22 {
font-size: 22px !important
}

View File

@ -489,7 +489,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/resource/developmentTools/:id"}
path={"/sf/resources/devtools/:id"}
render={
(props) => {
return (<SoftwareFactoryResourceDetail {...this.props} {...props} {...this.state} />)
@ -498,7 +498,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/resource"}
path={"/sf/resources"}
render={
(props) => {
return (<SoftwareFactoryResource {...this.props} {...props} {...this.state} />)
@ -507,7 +507,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/news/:id"}
path={"/sf/news/:id"}
render={
(props) => {
return (<SoftwareFactoryNewsDetail {...this.props} {...props} {...this.state} />)
@ -516,7 +516,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/news"}
path={"/sf/news"}
render={
(props) => {
return (<SoftwareFactoryNews {...this.props} {...props} {...this.state} />)
@ -525,7 +525,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/lessons/:id"}
path={"/sf/lessons/:id"}
render={
(props) => {
return (<SoftwareFactoryLessonsDetail {...this.props} {...props} {...this.state} />)
@ -534,7 +534,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory/lessons"}
path={"/sf/lessons"}
render={
(props) => {
return (<SoftwareFactoryLessons {...this.props} {...props} {...this.state} />)
@ -545,7 +545,7 @@ class App extends Component {
<Route
path={"/softwareFactory/scene/:sceneId"}
path={"/sf/scene/:sceneId"}
render={
(props) => {
return (<SoftwareFactoryScene {...this.props} {...props} {...this.state} />)
@ -554,7 +554,7 @@ class App extends Component {
</Route>
<Route
path={"/softwareFactory"}
path={"/sf"}
render={
(props) => {
return (<SoftwareFactory {...this.props} {...props} {...this.state} />)

View File

@ -358,13 +358,13 @@ export function setDefaultMeta() {
if (__SERVER__) {
document = domObj.window.document
}
document.querySelector(`title`).textContent = '生态治理平台 | 新一代开源创新服务平台';
document.querySelector(`meta[property='og:title']`).content = '生态治理平台';
document.querySelector(`title`).textContent = '菌队可控开源社区 | 新一代开源创新服务平台';
document.querySelector(`meta[property='og:title']`).content = '菌队可控开源社区';
document.querySelector(`meta[property='og:url']`).content = 'https://GitLink.org.cn/';
document.querySelector(`meta[property='og:description']`).content = '生态治理平台 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。';
document.querySelector(`meta[property='og:image:alt']`).content = '生态治理平台';
document.querySelector('meta[name="Keywords"]').content= '生态治理平台, git, 开源, 代码托管, 项目管理, 版本控制, 代码分享, 项目协作, 协同开发平台';
document.querySelector(`meta[name='description']`).content = '生态治理平台 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。';
document.querySelector(`meta[property='og:description']`).content = '菌队可控开源社区 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。';
document.querySelector(`meta[property='og:image:alt']`).content = '菌队可控开源社区';
document.querySelector('meta[name="Keywords"]').content= '菌队可控开源社区, git, 开源, 代码托管, 项目管理, 版本控制, 代码分享, 项目协作, 协同开发平台';
document.querySelector(`meta[name='description']`).content = '菌队可控开源社区 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。';
document.querySelector(`meta[name='go-import']`).content ='GitLink.org.cn git https://GitLink.org.cn';
document.querySelector(`meta[name='octolytics-dimension-user_login']`).content = 'GitLink';
document.querySelector(`meta[name='octolytics-dimension-repository_nwo']`).content = 'GitLink';

View File

@ -128,8 +128,8 @@ export function configShareForCustom (title, desc, imgUrl, path) {
console.log('configShareForCustom', host)
const _url = window.location.href.split('#')[0];
var shareData = {
title: title || '生态治理平台',
desc: desc || '生态治理平台,新一代开源创新服务平台',
title: title || '菌队可控开源社区',
desc: desc || '菌队可控开源社区,新一代开源创新服务平台',
link: path ? `${host}/${path}` : _url,
imgUrl: imgUrl || host + '/build/images/share_logo_icon.png'
};

View File

@ -84,7 +84,7 @@ function News(props) {
</div>
<div className="news-1-item-content">
<Link to={`/softwareFactory/news/${item.id}`}><h3 title={ item.name }>{item.name}</h3></Link>
<Link to={`/sf/news/${item.id}`}><h3 title={ item.name }>{item.name}</h3></Link>
<p title={ item.summary }>{item.summary}</p>
</div>
</div>
@ -97,7 +97,7 @@ function News(props) {
<img src={news.headImg || getDefaultImage(news.id)} alt="" />
</div>
<div className="news-1-right-title">
<Link to={`/softwareFactory/news/${news.id}`}><h5 title={ news.name }>{news.name}</h5>
<Link to={`/sf/news/${news.id}`}><h5 title={ news.name }>{news.name}</h5>
<KFIcon type="icon-icon_blackarrow_hover" font={46} /></Link>
</div>
<p title={ news.summary }>{news.summary}</p>
@ -108,7 +108,7 @@ function News(props) {
subList.slice(0, 4).map(item => {
return <div className="news-2-item">
<div className="news-2-item-title">
<Link to={`/softwareFactory/news/${item.id}`}><h3 title={ item.name }>{item.name}</h3>
<Link to={`/sf/news/${item.id}`}><h3 title={ item.name }>{item.name}</h3>
<KFIcon type="icon-icon_blackarrow_hover" font={48} /></Link>
</div>
<p title={ item.summary }>{item.summary}</p>
@ -116,7 +116,7 @@ function News(props) {
})
}
</div>
<Link to="/softwareFactory/news" className="news-more">探索更多新闻动态<KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
<Link to="/sf/news" className="news-more">探索更多新闻动态<KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
</div>
);
}

View File

@ -12,10 +12,10 @@ import '../../common.scss'
gsap.registerPlugin(ScrollTrigger);
const resourceInfo = [
{ name: '项目', title: '工厂开源项目', icon: 'icon-xiangmu', desc: '标准化生产线核心代码及软件工厂开发工具源码', path: '/softwareFactory/resource/softwareProject' },
{ name: '版本', title: '生产线安装包', icon: 'icon-banben', desc: '标准化生产线快速迭代版本和稳定支持版本', path: '/softwareFactory/resource/factoryVersion' },
{ name: '工具', title: '共建共用工具', icon: 'icon-gongju', desc: '由菌工集团、科研院所、地方企业等提供,可免费共用的工具', path: '/softwareFactory/resource/commonTools' },
{ name: '软件', title: '开源社区软件', icon: 'icon-gongju', desc: '来自开源社区,可按授权许可使用和复用的各类软件', path: '/softwareFactory/resource/developmentTools' },
{ name: '项目', title: '工厂开源项目', icon: 'icon-xiangmu', desc: '标准化生产线核心代码及软件工厂开发工具源码', path: '/sf/resources/project' },
{ name: '版本', title: '生产线安装包', icon: 'icon-banben', desc: '标准化生产线快速迭代版本和稳定支持版本', path: '/sf/resources/releases' },
{ name: '工具', title: '共建共用工具', icon: 'icon-gongju', desc: '由菌工集团、科研院所、地方企业等提供,可免费共用的工具', path: '/sf/resources/commontools' },
{ name: '软件', title: '开源社区软件', icon: 'icon-gongju', desc: '来自开源社区,可按授权许可使用和复用的各类软件', path: '/sf/resources/devtools' },
]
const Resource = forwardRef(({ zoneId }, ref) => {
@ -276,7 +276,7 @@ const Resource = forwardRef(({ zoneId }, ref) => {
<div className="item-name" title={ item.name }>{item.name}</div>
<div className="item-desc" title={ item.summary }>{item.summary}</div>
<div className="item-btn">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}><button className="shiny-button">查看</button></Link>
<Link to={`/sf/resources/devtools/${item.id}`}><button className="shiny-button">查看</button></Link>
<button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }}>下载</button>
</div>
</div>
@ -297,7 +297,7 @@ const Resource = forwardRef(({ zoneId }, ref) => {
<div className="item-name" title={ item.name }>{item.name}</div>
<div className="item-desc" title={ item.summary }>{item.summary}</div>
<div className="item-btn">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}><button className="shiny-button">查看</button></Link>
<Link to={`/sf/resources/devtools/${item.id}`}><button className="shiny-button">查看</button></Link>
<button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }}>下载</button>
</div>
</div>

View File

@ -183,7 +183,7 @@ const Resource2 = forwardRef(({ zoneId }, ref) => {
return <div className="standard-item" key={index}>
<img src={ iconList[index] } alt="" />
<div className="standard-item-head">
<Link to={`/softwareFactory/lessons/${ item.id }`}><h4 title={ item.name }>{item.name}</h4><KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
<Link to={`/sf/lessons/${ item.id }`}><h4 title={ item.name }>{item.name}</h4><KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
</div>
<p title={ item.summary }>{item.summary}</p>
</div>
@ -191,7 +191,7 @@ const Resource2 = forwardRef(({ zoneId }, ref) => {
}
</div>
</div>
<Link to="/softwareFactory/lessons" className="resource2-more">探索更多资源<KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
<Link to="/sf/lessons" className="resource2-more">探索更多资源<KFIcon type="icon-icon_blackarrow_hover" font={40} /></Link>
</div>
);
});

View File

@ -52,7 +52,7 @@ const Scene = ({ zoneId }) => {
return <div className="scene-item" key={index}>
<h3>{scene.name}</h3>
<p title={ scene.summary }>{scene.summary}</p>
<Link to={`/softwareFactory/scene/${ scene.id }`}>
<Link to={`/sf/scene/${ scene.id }`}>
<span>查看详情</span>
<KFIcon type="icon-icon_blackarrow_hover" font={40} />
</Link>

View File

@ -51,8 +51,8 @@ function Index(props) {
<div className="news-detail-header">
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/softwareFactory/lessons`}>学习资源</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf/lessons`}>学习资源</Breadcrumb.Item>
<Breadcrumb.Item> <span className="breacrumb-name">{detail.name}</span> </Breadcrumb.Item>
</Breadcrumb>
<div className="header-content">

View File

@ -282,11 +282,11 @@ function Index(props) {
<img src={item.extendDataHeadImg || backList[index % backList.length]} alt="" />
</div>
<div className="news-item-info">
<Link to={`/softwareFactory/lessons/${item.id}`}><h3>{item.name}</h3></Link>
<Link to={`/sf/lessons/${item.id}`}><h3>{item.name}</h3></Link>
<p>{item.summary}</p>
<div className="news-item-info-bottom">
<span>{moment(item.createTime).format('YYYY/MM/DD')}</span>
<Link to={`/softwareFactory/lessons/${item.id}`}>
<Link to={`/sf/lessons/${item.id}`}>
<span>查看详情</span>
<KFIcon type="icon-icon_blackarrow_hover" font={40} />
</Link>

View File

@ -46,8 +46,8 @@ function Index(props) {
</div>
<div className="news-detail-content">
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/softwareFactory/news`}>新闻</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf/news`}>新闻</Breadcrumb.Item>
<Breadcrumb.Item>详情</Breadcrumb.Item>
</Breadcrumb>
<div className="news-detail-content-wrapper">

View File

@ -96,7 +96,7 @@ function Index(props) {
<div className="header-left">
<h3>{nowTop.name}</h3>
<p>{nowTop.summary}</p>
<Link to={`/softwareFactory/news/${nowTop.id}`}>
<Link to={`/sf/news/${nowTop.id}`}>
<button className="shiny-button">了解详情</button>
</Link>
</div>
@ -165,7 +165,7 @@ function Index(props) {
<h3>{item.name}</h3>
<p>{item.summary}</p>
<Link to={`/softwareFactory/news/${item.id}`}>
<Link to={`/sf/news/${item.id}`}>
<span>查看详情</span>
<KFIcon type="icon-icon_blackarrow_hover" font={40} />
</Link>
@ -184,7 +184,7 @@ function Index(props) {
<div className="line-3"></div>
热门新闻
</div>
<Link to={`/softwareFactory/news/${item.id}`}><h4>{item.name}</h4></Link>
<Link to={`/sf/news/${item.id}`}><h4>{item.name}</h4></Link>
<div className="body-item-detail">
<div><p>{item.summary}</p><KFIcon type="icon-icon_blackarrow_hover" font={40} /></div>
<div><p>{item.publishTime}</p><KFIcon type="icon-icon_blackarrow_hover" font={40} /></div>
@ -200,7 +200,7 @@ function Index(props) {
newsList2.map((item, index) => {
return <div className="news-item" key={index}>
<div className="news-item-title">
<Link to={`/softwareFactory/news/${item.id}`}><h3>{item.name}</h3></Link>
<Link to={`/sf/news/${item.id}`}><h3>{item.name}</h3></Link>
<KFIcon type="icon-icon_blackarrow_hover" font={48} />
</div>
<p>{item.summary}</p>
@ -223,11 +223,11 @@ function Index(props) {
<img src={item.headImg || getDefaultImage(item.id)} alt="" />
</div>
<div className="news-item-info">
<Link to={`/softwareFactory/news/${item.id}`}><h3>{item.name}</h3></Link>
<Link to={`/sf/news/${item.id}`}><h3>{item.name}</h3></Link>
<p>{item.summary}</p>
<div className="news-item-info-bottom">
<span>{item.publishTime}</span>
<Link to={`/softwareFactory/news/${item.id}`}>
<Link to={`/sf/news/${item.id}`}>
<span>查看详情</span>
<KFIcon type="icon-icon_blackarrow_hover" font={40} />
</Link>

View File

@ -64,8 +64,8 @@ function Index(props) {
<div className="news-detail-header">
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/softwareFactory/resource/developmentTools`}>开发工具</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf/resources/devtools`}>开发工具</Breadcrumb.Item>
<Breadcrumb.Item> <span className="breacrumb-name">{detail.name}</span> </Breadcrumb.Item>
</Breadcrumb>
<div className="header-content">
@ -90,7 +90,7 @@ function Index(props) {
<div className="more-tools">
{
otherList.length > 0 && otherList.map((e, index) => {
return <Link to={`/softwareFactory/resource/developmentTools/${e.id}`} key={index}><span >
return <Link to={`/sf/resources/devtools/${e.id}`} key={index}><span >
<img src={headIcon} alt="" />
{e.name}
</span>

View File

@ -107,7 +107,7 @@ function Index(props) {
</div>
</div>
<div className="content-bottom-btn">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}><button className="shiny-button">查看详情</button></Link>
<Link to={`/sf/resources/devtools/${item.id}`}><button className="shiny-button">查看详情</button></Link>
</div>
</ActionItem>
})

View File

@ -64,8 +64,8 @@ function Index(props) {
<div className="news-detail-header">
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/softwareFactory/resource/developmentTools`}>开发工具</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf/resources/devtools`}>开发工具</Breadcrumb.Item>
<Breadcrumb.Item> <span className="breacrumb-name">{detail.name}</span> </Breadcrumb.Item>
</Breadcrumb>
<div className="header-content">
@ -90,7 +90,7 @@ function Index(props) {
<div className="more-tools">
{
otherList.length > 0 && otherList.map((e, index) => {
return <Link to={`/softwareFactory/resource/developmentTools/${e.id}`} key={index}><span >
return <Link to={`/sf/resources/devtools/${e.id}`} key={index}><span >
<img src={headIcon} alt="" />
{e.name}
</span>

View File

@ -154,7 +154,7 @@ function Index(props) {
<div className="tools-top-item" key={index}>
<img src={bgList[index]} alt="" className="item-bg" />
<div className="item-info">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}>
<Link to={`/sf/resources/devtools/${item.id}`}>
<h5 className="item-title">
{item.name}
</h5>
@ -204,7 +204,7 @@ function Index(props) {
</div>
<div className="two-btn">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}><button className="shiny-button">查看</button></Link>
<Link to={`/sf/resources/devtools/${item.id}`}><button className="shiny-button">查看</button></Link>
<button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }}>下载</button>
</div>
</ActionItem>
@ -224,7 +224,7 @@ function Index(props) {
return <div className="new-item">
<img src={ item.extendDataHeadImg || defaultImg} alt="" className="item-img"></img>
<div className="item-info">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}>
<Link to={`/sf/resources/devtools/${item.id}`}>
<h5 className="item-title">{item.name}</h5>
</Link>
<p className="item-desc">
@ -267,7 +267,7 @@ function Index(props) {
</div>
<div className="content-bottom-btn">
<div className="two-btn">
<Link to={`/softwareFactory/resource/developmentTools/${item.id}`}><button className="shiny-button">查看</button></Link>
<Link to={`/sf/resources/devtools/${item.id}`}><button className="shiny-button">查看</button></Link>
<button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }}>下载</button>
</div>
</div>

View File

@ -35,10 +35,10 @@ const CommonTools = Loadable({
const typeMap = [
{ name: '生产线安装包', key: 'factoryVersion', icon: 'icon-gongchangbanben' },
{ name: '工厂开源项目', key:'softwareProject', icon: 'icon-ruanjianxiangmu' },
{ name: '共建共用工具', key: 'commonTools', icon: 'icon-kaifagongju' },
{ name: '开源社区软件', key: 'developmentTools', icon: 'icon-kaifagongju' },
{ name: '生产线安装包', key: 'releases', icon: 'icon-gongchangbanben' },
{ name: '工厂开源项目', key:'project', icon: 'icon-ruanjianxiangmu' },
{ name: '共建共用工具', key: 'commontools', icon: 'icon-kaifagongju' },
{ name: '开源社区软件', key: 'devtools', icon: 'icon-kaifagongju' },
]
function Index(props) {
@ -52,9 +52,9 @@ function Index(props) {
useEffect(() => {
if (props.location.pathname.includes(selectedType) || (!selectedType && !searchValue)) return
if (selectedType) {
props.history.push(`/softwareFactory/resource/${selectedType}`);
props.history.push(`/sf/resources/${selectedType}`);
} else {
props.history.push(`/softwareFactory/resource/`);
props.history.push(`/sf/resources/`);
}
}, [selectedType]);
@ -142,22 +142,22 @@ function Index(props) {
<div className="resource-body">
<Switch>
<Route
path="/softwareFactory/resource/factoryVersion"
path="/sf/resources/releases"
render={(p) => (
<FactoryVersion {...props} {...p}/>
)} />
<Route
path="/softwareFactory/resource/softwareProject"
path="/sf/resources/project"
render={(p) => (
<SoftwareProject {...props} {...p}/>
)} />
<Route
path="/softwareFactory/resource/developmentTools"
path="/sf/resources/devtools"
render={(p) => (
<DevelopmentTools {...props} {...p}/>
)} />
<Route
path="/softwareFactory/resource/commonTools"
path="/sf/resources/commontools"
render={(p) => (
<CommonTools {...props} {...p}/>
)} />

View File

@ -64,7 +64,7 @@ function Index(props) {
</div>
<div className="scene-content">
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/sf`}>首页</Breadcrumb.Item>
<Breadcrumb.Item>{detail.name}</Breadcrumb.Item>
</Breadcrumb>
<div className="scene-content-wrapper">
@ -79,7 +79,7 @@ function Index(props) {
{
otherList.map((item, index) => {
return (
<li key={index}><Link to={ `/softwareFactory/scene/${ item.id }` }>{item.name}</Link></li>
<li key={index}><Link to={ `/sf/scene/${ item.id }` }>{item.name}</Link></li>
)
})
}

View File

@ -51,7 +51,7 @@ class NewHeader extends Component {
}
}
componentDidMount() {
if (this.props.match.path !== '/' && this.props.match.path !== '/softwareFactory') {
if (this.props.match.path !== '/' && this.props.match.path !== '/sf') {
this.setState({
isHome: false
})
@ -337,13 +337,13 @@ class NewHeader extends Component {
},
{
"name": "软件工厂专区",
"link": "/softwareFactory",
"link": "/sf",
"index": "4",
"hidden": false
},
{
"name": "开源软件仓库",
"link": "/exploreStore",
"link": "/explore",
"index": "2",
"hidden": false
},
@ -367,7 +367,7 @@ class NewHeader extends Component {
}
]
const navbarByRoute = settings ? settings.navbar : [];
// const navbarByRoute = ["/factory", "/exploreStore", "/projects", "/softwareFactory", "/news", "/forums"].includes(this.props.match.path) ? navbarlist : settings ? settings.navbar : []
// const navbarByRoute = ["/factory", "/explore", "/projects", "/sf", "/news", "/forums"].includes(this.props.match.path) ? navbarlist : settings ? settings.navbar : []
// let search_url = settings && settings.common && settings.common.search;
return (
<div className={`${ publicNav ? 'newHeaders publicNav':'newHeaders'} ${ isHome && 'homeHeader' }`} id="nHeader">

View File

@ -74,14 +74,14 @@ class Index extends Component {
<Route
path="/explore"
render={(props) => (
<ProjectHomeWH {...this.props} {...props} />
<ProjectHome {...this.props} {...props} />
)}
></Route>
<Route
path="/exploreStore"
render={(props) => (
<ProjectHome {...this.props} {...props} />
<ProjectHomeWH {...this.props} {...props} />
)}
></Route>
</Switch>

View File

@ -132,9 +132,9 @@ function CoderDepot(props){
const { author, name, description, default_branch} = projectDetail;
if(branchName && branchName !== default_branch){
// /
document.title = `${author.name}/${name}-${branchName} | 生态治理平台`;
document.title = `${author.name}/${name}-${branchName} | 菌队可控开源社区`;
}else{
document.title = `${author.name}/${name}${description?': '+description:''} | 生态治理平台` ;
document.title = `${author.name}/${name}${description?': '+description:''} | 菌队可控开源社区` ;
}
}
}, [treeValuePath, projectDetail, branchName])

View File

@ -193,7 +193,7 @@ function checkPathname(projectsId, owner, pathname) {
} else if (url.indexOf(`/wiki`) > -1) {
name = "wiki"
} else if (url.indexOf(`/sbom`) > -1) {
name = "server"
name = "sbom"
}
}
return name;

View File

@ -101,7 +101,7 @@ function Banner({isVisible}) {
</div>
<img src={require('../image/img15.png').default} alt='' width={342} className='center-left-1'/>
</div>
<p className="font-18 mb40" style={{ marginTop: '-12px' }}>持续汇聚多源需求开放共享可信资源协同创新核心技术聚智赋能软件生态</p>
<p className="font-21 mb40" style={{ marginTop: '-12px' }}>持续汇聚多源需求开放共享可信资源协同创新核心技术聚智赋能软件生态</p>
{/* 中央展示图 */}
<div className='center-1-bk-box'>
@ -113,7 +113,7 @@ function Banner({isVisible}) {
<span className='center-1-circle'></span>
</div>
<div style={{ margin: '3px 25px' }}>
<ActionItem className="center-1-bk-wrapper" padding="2px" borderRadius="15px">
{/* <ActionItem className="center-1-bk-wrapper" padding="2px" borderRadius="15px"> */}
<div className='center-image-container-content'>
<span className='font-18 center-image-container-content-title'>{bannerList[active].desc1}</span>
{/* 四张banner轮播 */}
@ -136,7 +136,7 @@ function Banner({isVisible}) {
</div>
<img src={gif2} alt='' className='banner_img4'/>
</div>
</ActionItem>
{/* </ActionItem> */}
</div>
</div>
<div className='center-left-bk'>
@ -155,12 +155,12 @@ function Banner({isVisible}) {
{/* 底部统计数据 */}
<div className="df stats-container pt10 pb25">
<div className="stat-item">
<div className="stat-number">132</div>
<div className="stat-number">24</div>
<div className="stat-label">开源项目</div>
</div>
<Divider type="vertical" style={{ height: '60px' }} className="mt10 opacity4" />
<div className="stat-item">
<div className="stat-number">1000</div>
<div className="stat-number">266</div>
<div className="stat-label">开发工具</div>
</div>
<Divider type="vertical" style={{ height: '60px' }} className="mt10 opacity4" />
@ -170,12 +170,12 @@ function Banner({isVisible}) {
</div>
<Divider type="vertical" style={{ height: '60px' }} className="mt10 opacity4" />
<div className="stat-item">
<div className="stat-number">56</div>
<div className="stat-number">1</div>
<div className="stat-label">软件工厂</div>
</div>
<Divider type="vertical" style={{ height: '60px' }} className="mt10 opacity4" />
<div className="stat-item">
<div className="stat-number">21</div>
<div className="stat-number">4</div>
<div className="stat-label">论坛交流</div>
</div>
<Divider type="vertical" style={{ height: '60px' }} className="mt10 opacity4" />

View File

@ -75,7 +75,7 @@ const RepositoryV2 = () => {
))}
</div>
{rollingButton({href: `/exploreStore`})}
{rollingButton({href: `/explore`})}
</div>
{/* 右侧架构图 - 使用图片 */}

View File

@ -41,7 +41,7 @@ function SoftwareFactory() {
<div className='font-16'>极速模式聚焦任务 - 代码 - 制品助力软件研发快速响应<br />实现极致效率</div>
</div>
</div>
{rollingButton({href: `/softwareFactory`, classname: 'mt70'})}
{rollingButton({href: `/sf`, classname: 'mt70'})}
</div>
<div className='flex1'>
<img src={active === 1 ? img11 : img12} alt='' />

View File

@ -62,7 +62,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur
</li>
}
{
owner === "gh_mirrors" && item.menu_name === "code" &&
item.menu_name === "code" &&
<li className={(pathname==="" || urlFlag) ? "active" : ""}>
<Link to={{ pathname: `/${owner}/${projectsId}`, state }}>
<i className={"iconfont icon-daimakuicon1 color-grey-3 mr5 font-14"}></i>
@ -71,8 +71,8 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur
</li>
}
{
owner === "gh_mirrors" && item.menu_name === "issues" &&
<li className={pathname === "server" ? "active" : ""}>
item.menu_name === "dataset" &&
<li className={pathname === "sbom" ? "active" : ""}>
<Link className='newTab' to={{ pathname: `/${owner}/${projectsId}/sbom`, state }}>
<i className={"iconfont icon-fuwuicon color-grey-3 mr5 font-15"} style={{marginTop:"1px"}}></i>
<span>供应链</span>
@ -80,7 +80,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur
</li>
}
{
owner === "gh_mirrors" && item.menu_name === "issues" &&
item.menu_name === "issues" &&
<li className={pathname==="issues" ? "active" : ""}>
<Link to={{ pathname: `/${owner}/${projectsId}/issues`, state }}>
<Tooltip placement="bottom">

View File

@ -1,14 +1,15 @@
import React, { useEffect } from "react";
function Sbom(props) {
const {mygetHelmetapi} = props;
const {mygetHelmetapi, current_user} = props;
const {common} = mygetHelmetapi || {};
const {governance="http://172.16.6.252:10010"} = common || {};
const {user_id} = current_user || {}
const { projectsId, owner } = props.match.params;
const str = projectsId.replace(/\./g, "_")
// const url = `http://localhost:3007/gagaga/accepts_1.3.8/sbom`
const url = `${governance}/governancePortal/sbom/${str}`
const url = `${governance}/governancePortal/sbom/${str}?uid=${user_id}`
// useEffect(() => {
// window.addEventListener("message", iframeHeight, false);

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}`
// const url = "http://localhost:3007/"
return <div className="" style={{border: "none"}}>

View File

@ -27,7 +27,6 @@ function ProjectList() {
const [hotTime, setHotTime] = useState(7);
const bannerProjects2 = bannerProjects.slice(4, 7);
console.log('bannerProjects2', bannerProjects2, bannerProjects);
useEffect(() => {
getCate();
@ -62,9 +61,9 @@ function ProjectList() {
axios.get(`/projects/banner_recommend.json`).then(result => {
if (result && result.data) {
setBannerProjects(result.data.projects);
if (result.data.projects[0]) {
setBannerActiveId(result.data.projects[1].id)
}
// if (result.data.projects[0]) {
// setBannerActiveId(result.data.projects[1].id)
// }
}
}).catch(error => { })
}
@ -253,7 +252,7 @@ function ProjectList() {
})}
</span>
</div>
<Collapse accordion expandIconPosition="right" className="hot_project_Collapse" defaultActiveKey={projectsListByHot[1].id}>
<Collapse accordion expandIconPosition="right" className="hot_project_Collapse" defaultActiveKey={projectsListByHot[1] && projectsListByHot[1].id}>
{projectsListByHot.map(project => {
return <Panel header={project.name} key={project.id}>
<div>{project.description || '暂无数据'}</div>

View File

@ -48,7 +48,7 @@
--offsetTop: 26px;
animation: itemUp .4s ease-in-out .76s forwards, bgOpacity .4s linear .76s reverse backwards;
&:before {
animation: rotate 8s linear 1.5s infinite;
animation: rotate 8s linear 0.8s infinite;
background: conic-gradient(
from 180deg at 50% 50%,
#9a8bff 0deg,