diff --git a/public/css/gitlink.min.css b/public/css/gitlink.min.css index e256f37da..d6c28484f 100644 --- a/public/css/gitlink.min.css +++ b/public/css/gitlink.min.css @@ -4,6 +4,18 @@ font-family: "YouSheBiaoTiHei"; src: url("../fonts/YouSheBiaoTiHei-2.ttf"); } +@font-face { + font-family: "pangmen"; + src: url("../fonts/PangMenZhengDaoBiaoTiTiMianFeiBan-2.ttf"); +} +@font-face { + font-family: "alibaba"; + src: url("../fonts/ALIBABA-PUHUITI-MEDIUM.TTF"); +} +@font-face { + font-family: "alibabaReg"; + src: url("../fonts/ALIBABA-PUHUITI-REGULAR.TTF"); +} .header { width: 100%; height: 51px; diff --git a/public/fonts/ALIBABA-PUHUITI-MEDIUM.TTF b/public/fonts/ALIBABA-PUHUITI-MEDIUM.TTF new file mode 100644 index 000000000..7dc813443 Binary files /dev/null and b/public/fonts/ALIBABA-PUHUITI-MEDIUM.TTF differ diff --git a/public/fonts/ALIBABA-PUHUITI-REGULAR.TTF b/public/fonts/ALIBABA-PUHUITI-REGULAR.TTF new file mode 100644 index 000000000..9f8ab8d8f Binary files /dev/null and b/public/fonts/ALIBABA-PUHUITI-REGULAR.TTF differ diff --git a/public/fonts/PangMenZhengDaoBiaoTiTiMianFeiBan-2.ttf b/public/fonts/PangMenZhengDaoBiaoTiTiMianFeiBan-2.ttf new file mode 100644 index 000000000..cd65b624d Binary files /dev/null and b/public/fonts/PangMenZhengDaoBiaoTiTiMianFeiBan-2.ttf differ diff --git a/public/images/left.png b/public/images/left.png new file mode 100644 index 000000000..26da1a512 Binary files /dev/null and b/public/images/left.png differ diff --git a/src/forge/Information/Component/publicBanner.jsx b/src/forge/Information/Component/publicBanner.jsx index f26dea5c3..c20a38c03 100644 --- a/src/forge/Information/Component/publicBanner.jsx +++ b/src/forge/Information/Component/publicBanner.jsx @@ -49,12 +49,36 @@ function PublicBanner(props){
{ - data && + data && deptId !=='xjykyzx' &&

{data.mainTitle}

} + { + data && deptId ==='xjykyzx' && +
+
+ {data.mainTitle} + {/*
2025
*/} +
+
+ 创 新 + 开 放 + 协 作 + 共 享 +
+
+
+ {data.subTitle} + + +
+
+ {/*

{data.mainTitle}

+

*/} +
+ }
{sectionHomepageShow && {sectionHomepageTitle}} diff --git a/src/forge/Information/Pages/headerPagebyKyzx.jsx b/src/forge/Information/Pages/headerPagebyKyzx.jsx new file mode 100644 index 000000000..73523d56a --- /dev/null +++ b/src/forge/Information/Pages/headerPagebyKyzx.jsx @@ -0,0 +1,312 @@ +import React, { useState, useEffect, Children } from 'react'; +import img1 from '../img/img1.png'; +import { httpUrl } from '../fetch'; +import { Link } from 'react-router-dom'; +import shijian from '../img/shijian.png'; +import xuexi from '../img/xuexiguanli.png'; +import { getHomePageList, gethomePageDocList, getAllList, getNewsAllList, getVIPLists } from '../api'; +import axios from 'axios'; +import Partner from '../Component/partner'; +import MemberList from '../Component/memberList'; +import '../indexZonebyKyzx.scss'; +import '../indexZone1.scss'; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; +import Slider from 'react-slick'; +import Left from '../../../home/Img/left.png'; +import Right from '../../../home/Img/right.png'; + + +function HeaderPageKyzx(props) { + const [projectList, setProjectList] = useState(undefined); + const [personList, setPersonList] = useState(undefined); + const [newsList, setNewsList] = useState(undefined); + const [partnerList, setParterList] = useState(undefined); + const { deptId, cateId } = props.match.params; + const { data, id, temp } = props; + const [mainList, setMainList] = useState(undefined); + const [tag,setTag] = useState(0); + const setting = { + dots: true, + infinite: true, + speed: 2000, + slidesToShow: 1, + slidesToScroll: 1, + pauseOnDotsHover: true, + autoplaySpeed: 5000, + pauseOnFocus: true, + autoplay: true, + arrows: true, + prevArrow: , + nextArrow: , + afterChange: (index)=> setTag(index) + } + + useEffect(() => { + if (id||cateId) { + getProjectList(); + getNewsList(); + getPersonList(); + getPartnerList(); + getMainList(); + } + }, [id,cateId]) + + function getPersonList() { + // 不分类 + // getHomePageList(id).then(result => { + // if (result) { + // setPersonList(result.data.rows); + // } + // }).catch(error => { }) + // 分类获取首页推荐的会员列表 + getVIPLists(id, {isHomepage: 1}).then(response=>{ + if(response){ + const list = response.data.rows && response.data.rows.filter(item=>item.zoneMemberList); + setPersonList(list); + } + }) + } + + function getNewsList() { + gethomePageDocList(id).then(result => { + if (result) { + setNewsList(result.data.rows); + } + }).catch(error => { }) + } + + function getProjectList() { + getAllList(id, { isHomepage: 1 }).then(result => { + if (result) { + let list = result.data.rows.map(item =>{ + let obj = {name:item.projectType,children:[]} + return obj + }) + //去重 + list = Array.from(new Set(list.map(JSON.stringify))).map(JSON.parse) + // 分组 + list.map(item=>{ + result.data.rows.map(subItem =>{ + if(item.name === subItem.projectType){ + item.children.push(subItem) + } + }) + + }) + // console.log('list', list) + + setProjectList(list); + } + }).catch(console.error()) + } + + function getPartnerList() { + const url = `${httpUrl}/zone/open/${id}/partners/list`; + axios.get(url).then(result => { + if (result) { + const array = result.data.rows; + const newArray = []; + for (let i in array) { + let e = array[i] + if (e.zonePartnersList && e.zonePartnersList.length > 0) { + e.zonePartnersList[0].typeName = e.typeName; + } + if (e.zonePartnersList.length > 0) { + newArray.push(e.zonePartnersList); + } + } + setParterList(newArray); + } + }).catch(error => { }) + } + function getMainList() { + getNewsAllList(id).then(result => { + if (result) { + let rows = result.data.rows; + setMainList(rows); + } + }).catch(error => { }) + } + return ( +
+ { + // 新闻动态 + data && data.cmsShow === 1 && newsList && newsList.length >= 0 && +
+

{data.homepageCmsTitle}

+
+
+ + { + newsList && newsList.length > 0 ? + newsList.map((i, k) => { + return ( +
+
+ {window.location.href=`/zone/${deptId}/newdetail/${i.id}`}} /> +
+
+ ) + }) + : + "" + } +
+
+
    + { + newsList.map((i, k) => { + return ( +
  • + {i.name} +

    + + + {i.publishTime} + +

    {i.visits}

    +

    +
  • + ) + }) + } +
+
+ {/* 图片下三个栏目 */} +
+ { + mainList && mainList.length > 0 ? + mainList.map((i, k) => { + if (i.name === "开源中心周报" || i.name === "开源中心月计划" || i.name === "开源中心活动") + return ( +
    +

    + + {i.name} +

    + { + i.cmsDocList && i.cmsDocList.length > 0 ? + i.cmsDocList.map((j, k) => { + return ( +
  • + {j.name} +
  • + ) + }) + : "" + } +
+ ) + }) + : + "" + } +
+
+ } + { + // 精选项目 + data && data.projectShow === 1 && projectList && projectList.length > 0 && +
+

{data.homepageProjectTitle}

+ { + projectList.map((item,idx) => ( +
+
{item.name}
+
+ + { + item.children.map((i, k) => { + return ( +
  • +
    {i.projectProperties && i.projectProperties.authorImageUrl && }
    +
    + window.open(i.projectURL)} className="z_p_title task-hide">{i.projectProperties && i.projectProperties.name} +

    {i.projectProperties && i.projectProperties.description ? i.projectProperties.description : "暂无~"}

    +
    + { + i.projectProperties.topics && +
      + { + i.projectProperties.topics.split(",").map(t => { + return ( +
    • {t}
    • + ) + }) + } +
    + } +
    +
    +
  • + ) + }) + } +
    +
    + + ) + + ) + } +
    + } + {data &&

    {data.firstTitle}

    } + { + // 专区简介 + data && (data.introductionTitle || data.introductionContent || data.introductionImage) && +
    +
    + {data.introductionTitle &&

    {data.introductionTitle}

    } +

    +
    + { + data.introductionImage && + + } +
    + } + { + // 核心贡献者 + data && data.memberShow === 1 && personList && personList.length > 0 && +
    +

    {data.homepageMemberTitle}

    + {/* */} + {personList && personList.map(item=>{ + return
    +

    {item.typeName}

    +
      + { + item.zoneMemberList.map((i, k) => { + return ( +
    • + +
      + {i.name} + {i.memberLevel && {i.memberLevel} } +
      +

      {i.introduction || "暂无~"}

      +
    • + ) + }) + } +
    +
    + })} +
    + } + + + { + // 合作伙伴 + data && data.partnersShow === 1 && partnerList && partnerList.length > 0 && +
    +

    {data.homepagePartnersTitle}

    + +
    + } +
    + ) +} +export default HeaderPageKyzx; \ No newline at end of file diff --git a/src/forge/Information/Pages/zoneVIP.jsx b/src/forge/Information/Pages/zoneVIP.jsx index 2ecec220c..ea6c6c4e6 100644 --- a/src/forge/Information/Pages/zoneVIP.jsx +++ b/src/forge/Information/Pages/zoneVIP.jsx @@ -88,7 +88,7 @@ function ZoneVIP(props){ return(

    { sectionMemberTitle }

    -

    { tempConfig[temp].vipDesc }

    +

    {deptId === 'xjykyzx'?tempConfig[temp].memberDesc:tempConfig[temp].vipDesc }

    { memberStatus === memberStatusEnum.notMember && } { memberStatus === memberStatusEnum.applying &&
    您的申请已提交,请耐心等待管理员审核!
    } setApplyVisible(!applyVisible)} current_user={props.current_user}/> diff --git a/src/forge/Information/index.jsx b/src/forge/Information/index.jsx index 582e7667f..bc6d3301d 100644 --- a/src/forge/Information/index.jsx +++ b/src/forge/Information/index.jsx @@ -59,6 +59,11 @@ const HeaderPageCCF = Loadable({ loading : Loading, }); +const HeaderPageKyzx = Loadable({ + loader : () => import("./Pages/headerPagebyKyzx"), + loading : Loading, +}); + const ProjectSource = Loadable({ loader: () => import("./Pages/projectSource"), loading: Loading, @@ -292,6 +297,7 @@ function Index(props){ deptId==="CCF-ODC" ? : deptId === "JCC" ? : deptId === "uos" ? : + deptId==="xjykyzx" ? : temp === tempEnum.zone ? : )} diff --git a/src/forge/Information/index.scss b/src/forge/Information/index.scss index d0705e466..299af147b 100644 --- a/src/forge/Information/index.scss +++ b/src/forge/Information/index.scss @@ -67,6 +67,15 @@ height: 450px; position: relative; padding-bottom: 88px; + .ky-content{ + position: absolute; + top: 0; + left: 0; + left: 50%; + transform: translate(-50%, 0); + width: 1200px; + + } .zone_content { position: absolute; display: flex; @@ -78,6 +87,70 @@ left: 50%; transform: translate(-50%, 0); padding-bottom: 88px; + .ky-main_t{ + color: #fff; + font-family: 'pangmen'; + font-size: 44px; + position: relative; + width: 396px; + text-align: center; + border-bottom: 1px solid #82D0FE; + line-height: 44px; + .ky-year{ + font-family: 'alibaba'; + position: absolute; + color: #000; + background-color: #82D0FE; + font-size: 16px; + border-bottom-right-radius: 16px; + line-height: 20px; + height: 20px; + padding: 0 12px 0 6px; + right: -50px; + top: -10px; + } + } + .ky-main_d{ + color: #fff; + font-size: 16px; + font-family: 'alibabaReg'; + text-align: center; + width: 396px; + span{ + margin:0 10px; + } + } + .ky-sub_t_wrap{ + width: 396px; + display: flex; + align-items: center; + justify-content: center; + padding-top: 16px; + .ky-sub_t{ + background-color: #82D0FE; + color: #000; + font-family: 'alibaba'; + font-size: 22px; + height: 50px; + line-height: 50px; + border-radius: 50px; + padding: 0 46px; + position: relative; + img{ + position: absolute; + width: 10px; + } + .ky-sub_img_left{ + left: 34px; + top: 10px; + } + .ky-sub_img_right{ + transform: rotate(180deg); + right: 34px; + bottom: 10px; + } + } + } .main_t{ color:#78d0f5; font-size:40px; @@ -969,6 +1042,12 @@ } } } + .zone_p_lists_ky{ + li{ + margin: 0 20px 20px 0 !important; + } + + } } .zone_contributor{ min-height: 466px; diff --git a/src/forge/Information/indexZonebyKyzx.scss b/src/forge/Information/indexZonebyKyzx.scss new file mode 100644 index 000000000..5567ddd92 --- /dev/null +++ b/src/forge/Information/indexZonebyKyzx.scss @@ -0,0 +1,270 @@ +@import './theme.scss'; + +.zone_news_ccf { + margin-top: -10px !important; + + .zone_new_first { + background: transparent !important; + padding: 0px !important; + flex: 1; + border-radius: 4px; + width: 0; + + .slick-track { + display: flex; + height: 100%; + + .slick-slide { + position: relative; + height: 100%; + + div { + height: 100%; + .newsBannerBox{ + display: flex; + align-items: center; + align-content: center; + } + .newsImg{ + width: 785px; + height: 590px; + position: relative; + z-index: 1; + } + } + } + } + + .slick-slider { + max-height: 595px; + overflow: hidden; + &:hover { + .slick-arrow { + display: block !important; + cursor: pointer; + z-index: 2; + } + } + + .slick-arrow { + width: 50px; + height: 50px; + position: absolute; + z-index: 1000; + display: none !important; + background: transparent; + + &:hover { + i { + color: rgba(225, 225, 225, 0.8); + } + } + + i { + font-size: 50px !important; + color: rgba(225, 225, 225, 0.3); + transition: 0.3s; + } + + &.slick-prev { + left: 10px; + } + + &.slick-next { + right: 10px; + } + } + + .slick-dots { + width: 260px; + text-align: left; + left: 50%; + margin-left: -115px; + bottom: 12%; + position: absolute; + display: flex !important; + z-index: 2; + + li { + background-color: rgba(225, 225, 225, 0.5); + position: relative; + height: 3px; + width: 46px; + margin-right: 15px; + + &::after { + position: absolute; + left: 0px; + width: 0px; + top: 0px; + height: 100%; + content: ""; + transition: 5.2s; + transition-property: width; + } + + &.slick-active::after { + background-color: #fff; + width: 100%; + } + + button { + position: absolute; + width: 100%; + height: 10px; + left: 0px; + background-color: transparent !important; + border: none; + cursor: pointer; + color: transparent; + + &::before { + content: ""; + } + } + } + } + } + } + + .zone_new_three_ccf { + margin-left: 30px; + display: flex; + flex-direction: column; + position: relative; + + .zone_n_value { + margin-top: 20px; + + .photo { + margin-bottom: 3px; + } + } + + &.spaceeTween { + justify-content: space-between; + } + + &.flexStart { + justify-content: flex-start; + + li { + margin-bottom: 30px; + } + } + + li { + background-color: #fff; + width: 385px; + padding: 22px 20px 19px; + border-radius: 4px; + margin-bottom: 25px !important; + position: relative; + overflow: hidden; + word-break: break-all; + + &:last-child { + margin-bottom: 0px; + } + } + + .zone_n_title { + height: 48px; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + } + } + + .List { + margin-bottom: 80px; + display: block; + + .mainlist { + display: inline-block; + width: 387px; + background-color: #fff; + box-shadow: 0px 0px 20px rgba(35, 54, 185, 0.06); + overflow: hidden; + margin: -30px 10px 0px 10px; + word-break: break-all; + padding: 20px; + min-height: 300px; + + p { + left: 10px !important; + + .you { + float: right; + } + + left: 5px; + font-weight: bold; + + img { + height: 20px; + margin-bottom: 3px; + } + } + + li { + margin: 10px !important; + list-style: inside; + } + } + } +} + +.zone_projects { + .zone_p_lists { + li { + height: 200px; + + .z_p_language { + .tag { + align-items: center; + width: 100%; + } + + .tag_li { + float: left; + white-space: nowrap; + position: relative; + margin-right: 10px !important; + margin-bottom: 10px !important; + top: 10px !important; + border: 0px solid; + width: auto; + height: 24px; + text-align: center; + line-height: 21px; + background-color: var(--tag-back); + border-radius: 2px; + color: var(--primary-color); + font-size: 13px; + padding: 0px 3px !important; + } + } + } + } +} + +.in_title_a { + height: 44px; + line-height: 44px; + font-weight: 500; + color: #1f2329; + font-size: 32px; + text-align: center; + margin-top: 40px; +} + +.memberLevel_tag{ + padding: 0px 5px; + line-height: 25px; + display: inline-block; + border: 1px solid var(--primary-color); + color: var(--primary-color); +} \ No newline at end of file diff --git a/src/forge/Information/tempInfo.js b/src/forge/Information/tempInfo.js index 595b0fa67..6083c0355 100644 --- a/src/forge/Information/tempInfo.js +++ b/src/forge/Information/tempInfo.js @@ -8,12 +8,14 @@ export const tempConfig = { hotTitle: '热门资讯', member: '专区会员', vipDesc: '社区根据您的贡献与扮演角色将用户划分成为不同的人员团队,并构建会员成长体系。您有兴趣成为会员,尽情发挥创意与智慧,与专区共同成长吗?', + memberDesc:'欢迎加入可控开源创新中心,在这里每一次智慧都将被珍视,每一次协作都将迸发力量,我们将一起开启一段充满创新和和成长的旅程!' }, zone1: { mainTitle: '新闻资讯', hotTitle: '热门新闻资讯', member: '荣誉榜单', vipDesc: '荣誉榜单记录用户在开源芯片社区的社区角与成长进度,欢迎广大用户参与到开源芯片项目,与社区共同成长!', + memberDesc:'荣誉榜单记录用户在开源芯片社区的社区角与成长进度,欢迎广大用户参与到开源芯片项目,与社区共同成长!' } }