缺陷修复、图标更新、工厂首页动图更新、默认新闻图

This commit is contained in:
黄心宇 2025-12-23 16:33:38 +08:00
parent 62828396a8
commit d8eb7ee237
30 changed files with 126 additions and 65 deletions

View File

@ -52,7 +52,9 @@ function Feature(props) {
<div className="content-top-right">
<h3>数字化纳管掌控研发全链路</h3>
<p>研发活动及制品全流程数字化纳管支持精准决策和持续优化</p>
<img className="content-top-right-gif" src={gif2} alt="" />
<div>
<img className="content-top-right-gif" src={gif2} alt="" />
</div>
<img src={featureright1} alt="" />
</div>
</div>

View File

@ -14,6 +14,7 @@
background-size: 100% 100%;
background-position: center -0px;
}
h1 {
color: #ffffff !important;
}
@ -57,6 +58,7 @@
.content-top-left,
.content-top-right {
flex-direction: column;
h3 {
margin-top: 58px;
@ -106,16 +108,25 @@
background-image: url('../../../images/factory/feature-right-bg.webp');
img {
width: 723px;
height: 280px;
margin-top: 40px;
width: 735px;
}
&-gif {
width: 80px !important;
height: 60px !important;
div {
position: absolute;
left: 151px;
top: 249px
left: 170px;
top: 273px;
border-radius: 50%;
width: 60px;
height: 60px;
overflow: hidden;
.content-top-right-gif {
position: absolute;
width: 80px !important;
margin: 0;
left: -10px;
}
}
}
}
@ -141,13 +152,14 @@
width: 1016px;
height: 315px;
}
&-gif {
width: 93px !important;
height: 70px !important;
position: absolute;
left: 608px;
top: 125px
}
width: 93px !important;
height: 70px !important;
position: absolute;
left: 608px;
top: 125px
}
}
}
}

View File

@ -2,15 +2,10 @@ import React, { useEffect, useState, useRef } from 'react';
import './index.scss';
import { Anchor, Carousel } from 'antd';
import { gethomePageDocList, getSubDocList } from '../../api'
import back1 from '../../../images/factory/back1.png'
import back2 from '../../../images/factory/back2.png'
import back3 from '../../../images/factory/back3.png'
import { Link } from 'react-router-dom';
import KFIcon from '../../../components/KFIcon';
import { factoryZoneId, dirId } from '../../../constants/factory'
const backList = [back1, back2, back3]
import { getDefaultImage } from '../../../forge/Utils/utils'
function News(props) {
@ -81,7 +76,7 @@ function News(props) {
{mainList.map(item => {
return <div className="news-1-item">
<div className="news-1-item-img">
<img src={item.headImg || backList[getRandomNum() - 1]} alt="" />
<img src={item.headImg || getDefaultImage(item.id)} alt="" />
</div>
<div className="news-1-item-content">
@ -95,7 +90,7 @@ function News(props) {
<div className="news-1-right">
<h4>热门新闻</h4>
<div className="news-1-right-img">
<img src={news.headImg || backList[1]} alt="" />
<img src={news.headImg || getDefaultImage(news.id)} alt="" />
</div>
<div className="news-1-right-title">
<Link to={`/softwareFactory/news/${news.id}`}><h5>{news.name}</h5>

View File

@ -175,8 +175,8 @@ const Resource = forwardRef(({ zoneId }, ref) => {
}
<div className="item-desc">{projectProperties.description}</div>
<div className="item-data">
<span><i className="iconfont icon-liulanliang mr5 font-12" />{projectProperties.praisesCount}</span>
<span><i className="iconfont icon-shoucang mr5 font-12" />{projectProperties.forkedCount}</span>
<span><i className="iconfont icon-guanzhu mr5 font-12" />{projectProperties.forkedCount}</span>
<span><i className="iconfont icon-dianzan mr5 font-12" />{projectProperties.praisesCount}</span>
</div>
</div>
})

View File

@ -16,6 +16,7 @@ import moment from 'moment';
import { getSourceList, httpUrl } from '../api'
import { downloadFunc } from '../../forge/Utils/utils'
import chapterBg from '../../images/factory/lessons/chapter-bg.webp'
import { message } from 'antd';
const backList = [back1, back2, back3]
@ -99,9 +100,9 @@ function Index(props) {
<div className="lessons-header">
<h2><span>学习专区</span>多样资源服务工厂应用</h2>
<p >从核心课程到规范标准构建持续进化的工程能力体系</p>
<div className="header-animation">
{/* <div className="header-animation">
<Waves />
</div>
</div> */}
</div>
<div className="lesson-body">
<div className="lesson-left">
@ -241,7 +242,8 @@ function Index(props) {
return <div className="standard-item" key={index}>
<div className="standard-item-head">
<h4>{item.name}</h4>
<button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }} >下载</button>
{/* <button onClick={() => { downloadFunc(`${httpUrl}/file/open/download/${item.fileIds}`) }} >下载</button> */}
<button onClick={() => { message.info('标准正在拟制中!') }} >下载</button>
</div>
<p>{item.summary}</p>
<div className="standard-item-img">

View File

@ -41,7 +41,7 @@
flex-direction: column;
align-items: center;
height: 400px;
background-image: url('../../images/factory/lessons/header-bg.webp');
background-image: url('../../images/factory/lessons/header-bg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;

View File

@ -7,6 +7,7 @@ import RenderHtml from '../../../components/render-html';
import { Breadcrumb } from 'antd';
import { getNewsDetail } from '../../api';
import headerMp4 from '../../../images/factory/news/detail-head-bg.mp4';
import { getDefaultImage } from '../../../forge/Utils/utils'
@ -40,7 +41,7 @@ function Index(props) {
<p>实时汇聚前沿技术项目进展与开发者故事助你第一时间掌握社区脉搏不错过每一次灵感与成长机会</p>
<div className="header-img">
<div className="header-img-wrapper">
<img src={detail.headImg || imageBack1} alt="" />
<img src={detail.headImg || getDefaultImage(detail.id)} alt="" />
</div>
</div>
</div>

View File

@ -5,18 +5,13 @@ import KFIcon from '../../components/KFIcon/index';
import { factoryZoneId, dirId } from '../../constants/factory'
import { gethomePageDocList, getNewsHotList, getSubDocList } from '../api'
import { Carousel } from 'antd';
import back1 from '../../images/factory/back1.png'
import back2 from '../../images/factory/back2.png'
import back3 from '../../images/factory/back3.png'
import headerBottom from '../../images/factory/news/header-bottom.png'
import bodyBg from '../../images/factory/news/news-bg.webp'
import '../common.scss'
import { Link } from "react-router-dom";
import moment from "moment";
import InfiniteScroll from 'react-infinite-scroller';
const backList = [back1, back2, back3]
import { getDefaultImage } from '../../forge/Utils/utils'
function Index(props) {
const [topList, setTopList] = useState([])
@ -166,7 +161,7 @@ function Index(props) {
<div className="body-item" key={index}>
<div className="body-item-img">
<div>
<img src={item.headImg || backList[index]} alt="" />
<img src={item.headImg || getDefaultImage(item.id)} alt="" />
</div>
</div>
@ -228,7 +223,7 @@ function Index(props) {
newsList3.map((item, index) => {
return <div className="news-item" key={index}>
<div className="news-item-img">
<img src={item.headImg || backList[index % 3]} alt="" />
<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>

View File

@ -165,7 +165,7 @@ function Index({searchValue, searchType},ref) {
<h5 className="item-title">{item.name}</h5>
<p className="item-desc">{item.summary}</p>
<div className="item-data">
<span><i className="iconfont icon-xiazai mr5 font-12" />{item.createTime}</span>
<span><i className="iconfont icon-shijian mr5 font-12" />{item.createTime}</span>
</div>
</div>
})

View File

@ -40,8 +40,15 @@ function Index(props) {
const getDetail = () => {
getSourceDetail(id).then(response => {
if (response) {
let extendData = {}
if (response.data.data.extendData) {
extendData = JSON.parse(response.data.data.extendData)
}
document.title = response.data.data.name
setDetail(response.data.data);
if (extendData.content) {
setContent(Base64.decode(extendData.content))
}
setDetail({...response.data.data, ...extendData});
}
}).catch(error => { })
}
@ -59,7 +66,7 @@ function Index(props) {
<Breadcrumb separator=">">
<Breadcrumb.Item href={`/softwareFactory`}>首页</Breadcrumb.Item>
<Breadcrumb.Item href={`/softwareFactory/resource/developmentTools`}>开发工具</Breadcrumb.Item>
<Breadcrumb.Item>{detail.name}</Breadcrumb.Item>
<Breadcrumb.Item> <span className="breacrumb-name">{detail.name}</span> </Breadcrumb.Item>
</Breadcrumb>
<div className="header-content">
<h3>{detail.name}</h3>
@ -93,15 +100,14 @@ function Index(props) {
</div>
<div className="header-img">
<div className="header-img-wrapper">
<img src={detail.img || imageBack1} alt="" />
<img src={imageGif} alt="" />
<img src={detail.headImg || imageBack1} alt="" />
{!detail.headImg && <img src={imageGif} alt="" />}
</div>
</div>
</div>
</div>
<div className="news-detail-content">
<div className="news-detail-content-wrapper">
<h4>{detail.name}</h4>
{
content && <RenderHtml className="informations_detail imageLayerParent" value={content} url={props.history.location} />
}

View File

@ -23,6 +23,16 @@
span {
color: #091221;
.breacrumb-name {
max-width: 200px;
display: inline-block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
vertical-align: middle;
}
}
}
@ -211,6 +221,8 @@
height: 100%;
margin: 52px auto;
margin-top: -100px;
position: relative;
z-index: 1;
.ant-breadcrumb {
line-height: 20px;

View File

@ -92,8 +92,8 @@ function Index(props) {
}
</div>
<div className="item-bottom-data">
<span><i className="iconfont icon-liulanliang mr5 font-12" />{project.praisesCount}</span>
<span><i className="iconfont icon-shoucang mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-guanzhu mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-dianzan mr5 font-12" />{project.praisesCount}</span>
</div>
</div>
</div>
@ -134,8 +134,8 @@ function Index(props) {
{project.description}
</div>
<div className="item-data">
<span><i className="iconfont icon-liulanliang mr5 font-12" />{project.praisesCount}</span>
<span><i className="iconfont icon-shoucang mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-guanzhu mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-dianzan mr5 font-12" />{project.praisesCount}</span>
</div>
</div></Link>
})
@ -184,8 +184,8 @@ function Index(props) {
</div>
<div className="item-data">
<span><i className="iconfont icon-liulanliang mr5 font-12" />{project.praisesCount}</span>
<span><i className="iconfont icon-shoucang mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-guanzhu mr5 font-12" />{project.forkedCount}</span>
<span><i className="iconfont icon-dianzan mr5 font-12" />{project.praisesCount}</span>
</div>
</div>
<div className="content-bottom-btn">

View File

@ -1,3 +1,12 @@
import default1 from '../../images/factory/default/1.png'
import default2 from '../../images/factory/default/2.png'
import default3 from '../../images/factory/default/3.png'
import default4 from '../../images/factory/default/4.png'
import default5 from '../../images/factory/default/5.png'
import default6 from '../../images/factory/default/6.png'
import default7 from '../../images/factory/default/7.png'
import default8 from '../../images/factory/default/8.png'
export function formatNumber(num) {
if (num === undefined || num === null) return
if (num >= 1e9) {
@ -37,3 +46,8 @@ export const downloadFunc = (url, name) => {
document.body.removeChild(link)
}, 50)
}
export const getDefaultImage = (id) => {
const defaultList = [default1, default2, default3, default4, default5, default6, default7, default8]
return defaultList[ id % 8 ]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 KiB

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 5081288 */
src: url('iconfont.woff2?t=1765507764789') format('woff2'),
url('iconfont.woff?t=1765507764789') format('woff'),
url('iconfont.ttf?t=1765507764789') format('truetype');
src: url('iconfont.woff2?t=1766461445149') format('woff2'),
url('iconfont.woff?t=1766461445149') format('woff'),
url('iconfont.ttf?t=1766461445149') format('truetype');
}
.iconfont {
@ -13,6 +13,18 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-dianzan:before {
content: "\e796";
}
.icon-shijian:before {
content: "\e797";
}
.icon-guanzhu:before {
content: "\e798";
}
.icon-xiazai:before {
content: "\e794";
}
@ -41,10 +53,6 @@
content: "\e7a1";
}
.icon-shoucang:before {
content: "\e7a0";
}
.icon-liulanliang:before {
content: "\e79e";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,27 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "46425347",
"name": "点赞",
"font_class": "dianzan",
"unicode": "e796",
"unicode_decimal": 59286
},
{
"icon_id": "46425348",
"name": "时间",
"font_class": "shijian",
"unicode": "e797",
"unicode_decimal": 59287
},
{
"icon_id": "46425349",
"name": "关注",
"font_class": "guanzhu",
"unicode": "e798",
"unicode_decimal": 59288
},
{
"icon_id": "46331570",
"name": "下载",
@ -54,13 +75,6 @@
"unicode": "e7a1",
"unicode_decimal": 59297
},
{
"icon_id": "46258084",
"name": "收藏",
"font_class": "shoucang",
"unicode": "e7a0",
"unicode_decimal": 59296
},
{
"icon_id": "46258085",
"name": "浏览量",

Binary file not shown.

Binary file not shown.

Binary file not shown.