diff --git a/README.md b/README.md index cc5d75f8..58e72b1a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

前端react环境安装:

-

1、 安装node v6.9.x;此安装包含了node和npm。

+

1、 安装node v12.10.x;此安装包含了node和npm。

2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org

3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install

4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值

diff --git a/add.txt b/add.txt deleted file mode 100644 index 8bd5bb1d..00000000 --- a/add.txt +++ /dev/null @@ -1,34 +0,0 @@ - -新版tpi改动的文件: -Index.js -contex/TPIContextProvider.js -page/main/LeftViewContainer.js -taskList/TaskList.js -TPMIndexHOC.js -App.js -CodeRepositoryViewContainer.js - -Index.js - choose={context.chooses} - - -TPIContextProvider.js - -LeftViewContainer.js - -TaskList.js - -TPMIndexHOC.js - -MainContentContainer - 新:rep_content返回值多了一层 {content: '...'} - - - - -TODO - 待同步 - 1、timer图标样式更换 - index.html - WebSSHTimer.css - WebSSHTimer.js \ No newline at end of file diff --git a/config/webpack.config.prod.js b/config/webpack.config.prod.js index c0ba2bc7..467771a5 100644 --- a/config/webpack.config.prod.js +++ b/config/webpack.config.prod.js @@ -19,8 +19,7 @@ const getClientEnvironment = require("./env"); let publicPath = "/react/build/"; const publicUrl = publicPath.slice(0, -1); -// const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; -const shouldUseSourceMap = process.env.NODE_ENV !== "production"; +const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; const env = getClientEnvironment(publicPath); // This is the production configuration. @@ -55,8 +54,7 @@ module.exports = { }, bail: true, mode: "production", - // devtool: false, //测试版 - devtool: shouldUseSourceMap?'source-map':false, + devtool: false, //测试版 entry: [require.resolve("./polyfills"), paths.appIndexJs], output: { path: paths.appBuild, diff --git a/package-lock.json b/package-lock.json index 8ed419ba..da6baa38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4071,16 +4071,18 @@ }, "cross-env": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "resolved": "https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "dev": true, "requires": { "cross-spawn": "^7.0.1" }, "dependencies": { "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4089,26 +4091,30 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved": "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index e5d24473..2d378ad2 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "code-prettify": "^0.1.0", "codemirror": "^5.64.0", "connected-react-router": "4.4.1", - "cross-env": "^7.0.3", "css-loader": "^3.5.2", "dompurify": "^2.3.3", "dotenv": "4.0.0", diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e813d22a..00000000 --- a/readme.txt +++ /dev/null @@ -1,172 +0,0 @@ -其他的文档位置: -/educoder/public/react/public/js/readme.txt 关于js_min_all -/educoder/educoder/public/react/scripts/readme-cdn.txt 关于CDN -/educoder/public/react/src/modules/page/readme.txt 关于TPI -/educoder/public/editormd/lib/readme-marked.txt 关于md编辑器 marked.js - -1、 安装node v6.9.x;此安装包含了node和npm。 - -2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org - -3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install - -4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值 - -5、 启动服务(命令行-目录同3): npm start - -6、 build初始化 npm run build - -注意: -1、cnpm install 之前先需要修改下ruby mine的一个settings,防止ruby mine对node_modules目录里的内容建索引(详情见线上文档-react开发环境搭建) - - -线上文档-react开发环境搭建 地址: https://www.trustie.net/boards/6862/topics/46425 - -2、package.json中配置: -"proxy": "http://localhost:3000", -"port": "3007" - -目前暂时必须写为和上面的一样,ruby服务端口为3000,node服务端口为3007;当当前端口为3007时,程序会将axios发出的请求转到localhost:3000上,进行跨域请求。 - -3、静态js加载问题: - editormd源码改动,注释掉了564行 加载codemirror/codemirror.min的js代码。因为codemirror 已经加载了,codemirror对象会带有插件,重复加载会覆盖全局codemirror对象,使得之前加载的插件失效 - ----------------------------------------------------------------------------------------------- - -React开发相关知识点 - 需要了解的ES6的知识 https://www.trustie.net/boards/6862/topics/46427 - ----------------------------------------------------------------------------------------------- - -新加入的lib有: axios、material-ui、lodash、classnames、moment、immutability-helper - rc-tree、rc-form 、rc-rate、rc-pagination、rc-select 、showdown -考虑替代删除确认弹出框的组件http://react-component.github.io/tooltip/examples/onVisibleChange.html - - ----------------------------------------------------------------------------------------------- -TPI State整理 START ----------------------------------------------------------------------------------------------- -TPIContextProvider 详情接口的所有state - - Index.js - taskListLoading - challenges - challengesDrawerOpen - - MainContentContainer.js - repositoryCode: '', - currentPath: '', // 当前所选的path,可能是一个只读的path(只读path的话,challenge.athIndex为-1) - isEditablePath // 是否是可以编辑的path() - - open: false, // 繁忙等级等提示用Dialog, TODO 考虑重构封装到根组件 - gameBuilding: false, // 评测中标志 - codeStatus: 2, // 0 已修改 1 保存中 2 已保存 3 保存失败 - - codeLoading: false, // code加载中 - resetCodeDialogOpen: false, // TODO考虑重构封装到根组件 - resetPassedCodeDialogOpen: false, // TODO考虑重构封装到根组件 - - - LeftViewContainer.js - tabIndex: 0, 页签index - dialogOpen: false, - gameAnswer: '', 答案 - snackbarOpen: false, - comments: [], 评论 - comment_count_without_reply: 0, 评论数量 TODO 和详情接口字段重复 - // 默认pageSize为10 - currentPage: 1, 评论分页 - loadingComments: true, 评论加载中 - gotNewReply: false, 新的回复 - - CodeRepositoryViewContainer.js - drawerOpen: false, - loadingFirstRepoFiles: false, drawer里的loading状态 - fileTreeData: "", 文件树 - codeRepositoryViewExpanded: false, 展开状态 - - - CodeEvaluateView.js - testSetsInitedArray: testSetsExpandedArrayInitVal.slice(0), 测试集是否初始化标志 - evaluateViewExpanded: false, - tabIndex: 1, 页签index ----------------------------------------------------------------------------------------------- -TPI State整理 END ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 START ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 END ----------------------------------------------------------------------------------------------- -create_kindeditor.js __isR 表示是react环境,react环境下采用事件通知react组件来处理 - if (window['__isR'] === true) { - $(document).trigger("onReply", { commentContent:tContents, id:id, editor:params.editor } ); - } else { - params.form.submit(); - } - -editormd.min.js 直接注释掉了codemirror.min的加载,应该改成有codeMirror了则不加载 - // codemirror 已经加载了,codemirror会有插件,重复加载会使得之前加载的插件失效 - // editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { -对应提交项 -Revision: 73d95ce266d5d7e55a3a88d08d1247b3a08c7caf -Date: 2018/4/2 16:12:21 -Message: 切下一题时更新左侧editormd里的内容,更新右侧codemirror内容。 - -js_min_all.js 最后面手动加入了若干js代码,还没做分离、再合并处理 date:180507 - is_cdn_link tpi_html_show方法 - - - - ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 START ----------------------------------------------------------------------------------------------- -1、全部使用react重写 - 做法:第一屏使用新接口,之前的js脚本还是继续使用,有必要的话(需要局部刷新的),将部分jquery实现改为react实现 -利: - tpi中评论组件、文件树组件方便复用 - js、css库管理方便 - - 暂时不依赖于react的状态管理 - 之前的ajax请求还是可以暂时复用 - - -弊: - 接口评估? - rails模板要改成jsx语法 - 头部功能区域、底部静态链接区域会存在重复代码 : react版和非react版 - codemirror等组件的使用会不会有问题? - - 学习成本 - - !!目前决定,新页面或者评论组件所在页面使用react实现 ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 END ----------------------------------------------------------------------------------------------- - - -其他方式:comments组件build到新入口后,将代码copy到rails页面 ----------------------------------------------------------------------------------------------- -不错的库 START ----------------------------------------------------------------------------------------------- -https://livicons.com/icons-original -- 收费 动画icon -https://github.com/maxwellito/vivus -- 让SVG标签动起来 -http://ianlunn.github.io/Hover/ -- hover 动画 -https://github.com/legomushroom/mojs -https://github.com/juliangarnier/anime --js动画 -https://codepen.io/juliangarnier/pen/gmOwJX -https://github.com/daneden/animate.css - - -A responsive tour snippet, with a step-by-step guide(onboarding) to help users understand how to use your website. - -https://github.com/sorich87/bootstrap-tour -https://github.com/linkedin/hopscotch -https://github.com/Robophil/Product-Tour - -code editor -https://microsoft.github.io/monaco-editor/ \ No newline at end of file diff --git a/src/App.js b/src/App.js index 17527094..d3bca0ba 100644 --- a/src/App.js +++ b/src/App.js @@ -104,7 +104,7 @@ const ProjectIndex = Loadable({ }); const Home = Loadable({ - loader: () => import('./home/Index'), + loader: () => import('./home/index'), loading: Loading, }) diff --git a/src/home/FifthEdition.jsx b/src/home/FifthEdition.jsx deleted file mode 100644 index 09096de2..00000000 --- a/src/home/FifthEdition.jsx +++ /dev/null @@ -1,161 +0,0 @@ -import React , { useEffect } from 'react'; -import Slider from 'react-slick'; -import Beijing from './Img/unit/beijing.png'; -import SHJT from './Img/unit/SHJT.png'; -import DD from './Img/unit/DD.png'; -import HW from './Img/unit/HW.png'; -import ML from './Img/unit/ML.png'; -import QH from './Img/unit/QH.png'; -import QZ from './Img/unit/QZ.png'; -import TX from './Img/unit/TX.png'; -import XH from './Img/unit/XH.png'; -import XJY from './Img/unit/XJY.png'; -import ZC from './Img/unit/ZC.png'; -import GFKJ from './Img/unit/GFKJ.png'; -import BJHKHT from './Img/unit/BJHKHT.png'; -import ISCAS from './Img/unit/ISCAS.png'; -import NJDX from './Img/unit/NJDX.png'; -import CEC from './Img/unit/CEC.png'; -import KYRJLM from './Img/unit/KYRJLM.png'; -import WXYJY from './Img/unit/WXYJY.png'; -import HSKY from './Img/unit/HSKY.png'; -import LSLM from './Img/unit/LSLM.png'; -import TG from './Img/unit/TG.png'; -import LC from './Img/unit/LC.png'; -import YKD from './Img/unit/YKD.png'; -import Axios from 'axios'; -import { useState } from 'react'; -import { getImageUrl } from 'educoder'; - -const list = [ - {image_url:GFKJ, name:"国防科技大学",src:"https://www.nudt.edu.cn/"}, - {image_url:TG, name:"头歌",src:"https://www.educoder.net/"}, - {image_url:XJY, name:"长沙先进技术研究院",src:"https://www.hnjmrh.gov.cn/newweb/service/detail/305/"}, - {image_url:Beijing, name:"北京大学",src:"https://www.pku.edu.cn/"}, - {image_url:BJHKHT, name:"北京航空航天",src:"https://www.buaa.edu.cn/"}, - {image_url:ISCAS, name:"ISCAS",src:"http://www.iscas.ac.cn/"}, - {image_url:NJDX, name:"南京大学",src:"https://www.nju.edu.cn/"}, - {image_url:DD, name:"滴滴",src:"https://www.didiglobal.com/"}, - {image_url:CEC, name:"CEC",src:"https://www.cec.com.cn/"}, - {image_url:HW, name:"华为",src:"https://www.huawei.com/"}, - {image_url:ML, name:"木兰开源社区",src:"https://www.mulanos.cn/"}, - {image_url:TX, name:"腾讯",src:"https://www.tencent.com/zh-cn"}, - {image_url:KYRJLM, name:"中国开源软件推进联盟",src:"http://www.copu.org.cn/"}, - {image_url:XH, name:"中国计算机学会",src:"https://www.ccf.org.cn/"}, - {image_url:QZ, name:"openi启智",src:"https://www.openi.org.cn/"}, - {image_url:HSKY, name:"红山开源",src:"https://osredm.com/"}, - {image_url:LSLM, name:"绿色产业联盟",src:"https://www.opengcc.org/"}, - {image_url:ZC, name:"中创软件",src:"http://www.cvicse.com/"}, - {image_url:LC, name:"浪潮",src:"https://cloud.inspur.com/"}, - {image_url:YKD, name:"ucloud",src:"https://www.ucloud.cn/"} -] - -const settings = { - dots: false, - infinite: true, - slidesToShow: 1, - slidesToScroll: 1, - vertical: true, - verticalSwiping: true, - autoplay:true, - arrows:false -}; -function FifthEdition() { - const [ topics ,setTopics ] = useState(undefined); - - useEffect(()=>{ - // if(list.length>10){ - // Init(); - // } - getUnit(); - },[]) - - function getUnit(){ - const url =`/topics.json`; - Axios.get(url,{params:{ - topic_type:"cooperator", - limit:20, - group_size:5 - }}).then(result=>{ - if(result){ - setTopics(result.data.topics); - } - }).catch(error=>{}) - } - - function Init() { - let box = document.getElementById('scrollBox1'); - scrollUp(); - var myTimer = setInterval(scrollUp, 10); - // 鼠标移入container 元素上 清除定时器 停止滚动 - box.onmouseover = () => { - clearInterval(myTimer); - } - // 鼠标移出container 元素上 继续滚动 - // 60表示每隔60毫秒向上滚动一次 - box.onmouseout = () => { - myTimer = setInterval(scrollUp, 10); - } - } - - function scrollUp() { - let box = document.getElementById('scrollBox1'); - if(box){ - let con1 = document.getElementById('box1'); - if (box.scrollLeft >= con1.clientWidth) { - box.scrollLeft = 0; - } else { - box.scrollLeft++; - } - } - } - - return( -
- {/*
- - {list.length > 10 && - - } -
*/} - { - topics && topics.length>0 ? - - { - topics.map((i,k)=>{ - return( -
- { - i.map((j,k1)=>{ - return( - - ) - }) - } -
- ) - }) - } -
- :"" - } -
- ) -} -export default FifthEdition; \ No newline at end of file diff --git a/src/home/Footnav.jsx b/src/home/Footnav.jsx deleted file mode 100644 index b3940405..00000000 --- a/src/home/Footnav.jsx +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import Img from './Img/gitlink.png'; -import qqImg from './Img/qq.png'; -function Footnav() { - return( -
-
- - - -
*/} -
-
  • QQ群
  • -
    - QQ群 -
    -
    - - -
    -

    ©Copyright 2007~2021 国防科技大学GitLink团队 & IntelliDE
    湘ICP备 17009477号

    - - ) -} -export default Footnav; \ No newline at end of file diff --git a/src/home/Headnav.jsx b/src/home/Headnav.jsx deleted file mode 100644 index 0127e337..00000000 --- a/src/home/Headnav.jsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; -import './Index.scss'; -// import gitlink from './Img/gitlink.png'; -import { getImageUrl } from 'educoder'; - -function HeadNav({showLoginDialog,mygetHelmetapi}) { - const register = mygetHelmetapi && mygetHelmetapi.common && mygetHelmetapi.common.register; - const navbar = mygetHelmetapi && mygetHelmetapi.navbar; - return( -
    -
    - -
    - 登录 - 注册 -
    -
    -
    - ) -} -export default HeadNav; \ No newline at end of file diff --git a/src/home/Img/2-1bg.png b/src/home/Img/2-1bg.png deleted file mode 100644 index eedd4039..00000000 Binary files a/src/home/Img/2-1bg.png and /dev/null differ diff --git a/src/home/Img/2-2-1.png b/src/home/Img/2-2-1.png deleted file mode 100644 index 5adfb747..00000000 Binary files a/src/home/Img/2-2-1.png and /dev/null differ diff --git a/src/home/Img/2-2-2.png b/src/home/Img/2-2-2.png deleted file mode 100644 index 52c2f8b9..00000000 Binary files a/src/home/Img/2-2-2.png and /dev/null differ diff --git a/src/home/Img/2-2-3.png b/src/home/Img/2-2-3.png deleted file mode 100644 index 2fb92ba2..00000000 Binary files a/src/home/Img/2-2-3.png and /dev/null differ diff --git a/src/home/Img/2-2-head.png b/src/home/Img/2-2-head.png deleted file mode 100644 index 19167bc1..00000000 Binary files a/src/home/Img/2-2-head.png and /dev/null differ diff --git a/src/home/Img/2-2-ring.png b/src/home/Img/2-2-ring.png deleted file mode 100644 index f1278c5b..00000000 Binary files a/src/home/Img/2-2-ring.png and /dev/null differ diff --git a/src/home/Img/2-3-1.png b/src/home/Img/2-3-1.png deleted file mode 100644 index d3ffe77e..00000000 Binary files a/src/home/Img/2-3-1.png and /dev/null differ diff --git a/src/home/Img/2-3-1big.png b/src/home/Img/2-3-1big.png deleted file mode 100644 index d3ffe77e..00000000 Binary files a/src/home/Img/2-3-1big.png and /dev/null differ diff --git a/src/home/Img/2-3-2.png b/src/home/Img/2-3-2.png deleted file mode 100755 index 754ed62b..00000000 Binary files a/src/home/Img/2-3-2.png and /dev/null differ diff --git a/src/home/Img/2-3-2的副本.png b/src/home/Img/2-3-2的副本.png deleted file mode 100644 index 9d4bc7a7..00000000 Binary files a/src/home/Img/2-3-2的副本.png and /dev/null differ diff --git a/src/home/Img/2-3-3.png b/src/home/Img/2-3-3.png deleted file mode 100644 index 5728f839..00000000 Binary files a/src/home/Img/2-3-3.png and /dev/null differ diff --git a/src/home/Img/2-3-4.png b/src/home/Img/2-3-4.png deleted file mode 100644 index c3ba36e2..00000000 Binary files a/src/home/Img/2-3-4.png and /dev/null differ diff --git a/src/home/Img/2-3bg.png b/src/home/Img/2-3bg.png deleted file mode 100644 index b79e16a2..00000000 Binary files a/src/home/Img/2-3bg.png and /dev/null differ diff --git a/src/home/Img/2-4-1.png b/src/home/Img/2-4-1.png deleted file mode 100644 index e768466c..00000000 Binary files a/src/home/Img/2-4-1.png and /dev/null differ diff --git a/src/home/Img/2-4bg.png b/src/home/Img/2-4bg.png deleted file mode 100644 index 38271d61..00000000 Binary files a/src/home/Img/2-4bg.png and /dev/null differ diff --git a/src/home/Img/2-5-1.png b/src/home/Img/2-5-1.png deleted file mode 100644 index 788d5285..00000000 Binary files a/src/home/Img/2-5-1.png and /dev/null differ diff --git a/src/home/Img/2-5-2.png b/src/home/Img/2-5-2.png deleted file mode 100644 index 42ef098c..00000000 Binary files a/src/home/Img/2-5-2.png and /dev/null differ diff --git a/src/home/Img/2-5bg.png b/src/home/Img/2-5bg.png deleted file mode 100644 index e2fa217a..00000000 Binary files a/src/home/Img/2-5bg.png and /dev/null differ diff --git a/src/home/Img/2-6-1.png b/src/home/Img/2-6-1.png deleted file mode 100644 index 628b630f..00000000 Binary files a/src/home/Img/2-6-1.png and /dev/null differ diff --git a/src/home/Img/2-6-2.png b/src/home/Img/2-6-2.png deleted file mode 100644 index 69c41ca7..00000000 Binary files a/src/home/Img/2-6-2.png and /dev/null differ diff --git a/src/home/Img/3-1-1.png b/src/home/Img/3-1-1.png deleted file mode 100644 index cc43b5c5..00000000 Binary files a/src/home/Img/3-1-1.png and /dev/null differ diff --git a/src/home/Img/3-1-2.png b/src/home/Img/3-1-2.png deleted file mode 100644 index b1d0f7c1..00000000 Binary files a/src/home/Img/3-1-2.png and /dev/null differ diff --git a/src/home/Img/3-1.png b/src/home/Img/3-1.png deleted file mode 100644 index d1ecb87a..00000000 Binary files a/src/home/Img/3-1.png and /dev/null differ diff --git a/src/home/Img/3-2-1.png b/src/home/Img/3-2-1.png deleted file mode 100644 index 976193b4..00000000 Binary files a/src/home/Img/3-2-1.png and /dev/null differ diff --git a/src/home/Img/3-2-2.png b/src/home/Img/3-2-2.png deleted file mode 100644 index 85a19f95..00000000 Binary files a/src/home/Img/3-2-2.png and /dev/null differ diff --git a/src/home/Img/3-2.png b/src/home/Img/3-2.png deleted file mode 100644 index 737d3f2d..00000000 Binary files a/src/home/Img/3-2.png and /dev/null differ diff --git a/src/home/Img/3-3-1.png b/src/home/Img/3-3-1.png deleted file mode 100644 index a03097a5..00000000 Binary files a/src/home/Img/3-3-1.png and /dev/null differ diff --git a/src/home/Img/3-3-2.png b/src/home/Img/3-3-2.png deleted file mode 100644 index e8f6ac94..00000000 Binary files a/src/home/Img/3-3-2.png and /dev/null differ diff --git a/src/home/Img/3-3.png b/src/home/Img/3-3.png deleted file mode 100644 index c2cf179b..00000000 Binary files a/src/home/Img/3-3.png and /dev/null differ diff --git a/src/home/Img/3-4-1.png b/src/home/Img/3-4-1.png deleted file mode 100644 index f2e48d8e..00000000 Binary files a/src/home/Img/3-4-1.png and /dev/null differ diff --git a/src/home/Img/3-4-2.png b/src/home/Img/3-4-2.png deleted file mode 100644 index 340b169e..00000000 Binary files a/src/home/Img/3-4-2.png and /dev/null differ diff --git a/src/home/Img/3-4.png b/src/home/Img/3-4.png deleted file mode 100644 index baea02df..00000000 Binary files a/src/home/Img/3-4.png and /dev/null differ diff --git a/src/home/Img/3-bg.png b/src/home/Img/3-bg.png deleted file mode 100644 index 171172a3..00000000 Binary files a/src/home/Img/3-bg.png and /dev/null differ diff --git a/src/home/Img/4-1.png b/src/home/Img/4-1.png deleted file mode 100644 index 9dcf949d..00000000 Binary files a/src/home/Img/4-1.png and /dev/null differ diff --git a/src/home/Img/4-2.png b/src/home/Img/4-2.png deleted file mode 100644 index 8705a787..00000000 Binary files a/src/home/Img/4-2.png and /dev/null differ diff --git a/src/home/Img/4-3.png b/src/home/Img/4-3.png deleted file mode 100644 index 1ea4b161..00000000 Binary files a/src/home/Img/4-3.png and /dev/null differ diff --git a/src/home/Img/4-4.png b/src/home/Img/4-4.png deleted file mode 100644 index 4f877fbc..00000000 Binary files a/src/home/Img/4-4.png and /dev/null differ diff --git a/src/home/Img/4-bg.png b/src/home/Img/4-bg.png deleted file mode 100644 index 20282927..00000000 Binary files a/src/home/Img/4-bg.png and /dev/null differ diff --git a/src/home/Img/banner1.png b/src/home/Img/banner1.png deleted file mode 100644 index b419349f..00000000 Binary files a/src/home/Img/banner1.png and /dev/null differ diff --git a/src/home/Img/banner2.png b/src/home/Img/banner2.png deleted file mode 100644 index 35c8be4a..00000000 Binary files a/src/home/Img/banner2.png and /dev/null differ diff --git a/src/home/Img/banner3.png b/src/home/Img/banner3.png deleted file mode 100644 index 1a2912ba..00000000 Binary files a/src/home/Img/banner3.png and /dev/null differ diff --git a/src/home/Img/banner4.png b/src/home/Img/banner4.png deleted file mode 100644 index a5f07759..00000000 Binary files a/src/home/Img/banner4.png and /dev/null differ diff --git a/src/home/Img/codeafter.png b/src/home/Img/codeafter.png deleted file mode 100644 index fdff2d77..00000000 Binary files a/src/home/Img/codeafter.png and /dev/null differ diff --git a/src/home/Img/gitlink.png b/src/home/Img/gitlink.png deleted file mode 100644 index d99de480..00000000 Binary files a/src/home/Img/gitlink.png and /dev/null differ diff --git a/src/home/Img/left.png b/src/home/Img/left.png deleted file mode 100644 index e5173860..00000000 Binary files a/src/home/Img/left.png and /dev/null differ diff --git a/src/home/Img/qq.png b/src/home/Img/qq.png deleted file mode 100644 index bc243e43..00000000 Binary files a/src/home/Img/qq.png and /dev/null differ diff --git a/src/home/Img/right.png b/src/home/Img/right.png deleted file mode 100644 index f5a134bd..00000000 Binary files a/src/home/Img/right.png and /dev/null differ diff --git a/src/home/Img/top-1.png b/src/home/Img/top-1.png deleted file mode 100644 index 3b64a723..00000000 Binary files a/src/home/Img/top-1.png and /dev/null differ diff --git a/src/home/Img/top-2.png b/src/home/Img/top-2.png deleted file mode 100644 index bab46403..00000000 Binary files a/src/home/Img/top-2.png and /dev/null differ diff --git a/src/home/Img/top-3.png b/src/home/Img/top-3.png deleted file mode 100644 index 3824c1d3..00000000 Binary files a/src/home/Img/top-3.png and /dev/null differ diff --git a/src/home/Img/top-bg.png b/src/home/Img/top-bg.png deleted file mode 100644 index 68804601..00000000 Binary files a/src/home/Img/top-bg.png and /dev/null differ diff --git a/src/home/Img/unit/BJHKHT.png b/src/home/Img/unit/BJHKHT.png deleted file mode 100644 index f22552c9..00000000 Binary files a/src/home/Img/unit/BJHKHT.png and /dev/null differ diff --git a/src/home/Img/unit/CEC.png b/src/home/Img/unit/CEC.png deleted file mode 100644 index 0d9f02aa..00000000 Binary files a/src/home/Img/unit/CEC.png and /dev/null differ diff --git a/src/home/Img/unit/DD.png b/src/home/Img/unit/DD.png deleted file mode 100644 index 67550502..00000000 Binary files a/src/home/Img/unit/DD.png and /dev/null differ diff --git a/src/home/Img/unit/GFKJ.png b/src/home/Img/unit/GFKJ.png deleted file mode 100644 index 4c6413c4..00000000 Binary files a/src/home/Img/unit/GFKJ.png and /dev/null differ diff --git a/src/home/Img/unit/HSKY.png b/src/home/Img/unit/HSKY.png deleted file mode 100644 index 8b50bdf2..00000000 Binary files a/src/home/Img/unit/HSKY.png and /dev/null differ diff --git a/src/home/Img/unit/HW.png b/src/home/Img/unit/HW.png deleted file mode 100644 index cf7db256..00000000 Binary files a/src/home/Img/unit/HW.png and /dev/null differ diff --git a/src/home/Img/unit/ISCAS.png b/src/home/Img/unit/ISCAS.png deleted file mode 100644 index 0f9e58cf..00000000 Binary files a/src/home/Img/unit/ISCAS.png and /dev/null differ diff --git a/src/home/Img/unit/KYRJLM.png b/src/home/Img/unit/KYRJLM.png deleted file mode 100644 index 9108aa42..00000000 Binary files a/src/home/Img/unit/KYRJLM.png and /dev/null differ diff --git a/src/home/Img/unit/LC.png b/src/home/Img/unit/LC.png deleted file mode 100644 index 7dd81502..00000000 Binary files a/src/home/Img/unit/LC.png and /dev/null differ diff --git a/src/home/Img/unit/LSLM.png b/src/home/Img/unit/LSLM.png deleted file mode 100644 index 0e6bf66b..00000000 Binary files a/src/home/Img/unit/LSLM.png and /dev/null differ diff --git a/src/home/Img/unit/ML.png b/src/home/Img/unit/ML.png deleted file mode 100644 index 6b208d38..00000000 Binary files a/src/home/Img/unit/ML.png and /dev/null differ diff --git a/src/home/Img/unit/NJDX.png b/src/home/Img/unit/NJDX.png deleted file mode 100644 index ef81575b..00000000 Binary files a/src/home/Img/unit/NJDX.png and /dev/null differ diff --git a/src/home/Img/unit/QH.png b/src/home/Img/unit/QH.png deleted file mode 100644 index 6b91a993..00000000 Binary files a/src/home/Img/unit/QH.png and /dev/null differ diff --git a/src/home/Img/unit/QZ.png b/src/home/Img/unit/QZ.png deleted file mode 100644 index 5152155d..00000000 Binary files a/src/home/Img/unit/QZ.png and /dev/null differ diff --git a/src/home/Img/unit/SHJT.png b/src/home/Img/unit/SHJT.png deleted file mode 100644 index ea1b7ba4..00000000 Binary files a/src/home/Img/unit/SHJT.png and /dev/null differ diff --git a/src/home/Img/unit/TG.png b/src/home/Img/unit/TG.png deleted file mode 100644 index 052f012b..00000000 Binary files a/src/home/Img/unit/TG.png and /dev/null differ diff --git a/src/home/Img/unit/TX.png b/src/home/Img/unit/TX.png deleted file mode 100644 index 59f55a74..00000000 Binary files a/src/home/Img/unit/TX.png and /dev/null differ diff --git a/src/home/Img/unit/WXYJY.png b/src/home/Img/unit/WXYJY.png deleted file mode 100644 index d92f1436..00000000 Binary files a/src/home/Img/unit/WXYJY.png and /dev/null differ diff --git a/src/home/Img/unit/XH.png b/src/home/Img/unit/XH.png deleted file mode 100644 index 10af112b..00000000 Binary files a/src/home/Img/unit/XH.png and /dev/null differ diff --git a/src/home/Img/unit/XJY.png b/src/home/Img/unit/XJY.png deleted file mode 100644 index 26091222..00000000 Binary files a/src/home/Img/unit/XJY.png and /dev/null differ diff --git a/src/home/Img/unit/YKD.png b/src/home/Img/unit/YKD.png deleted file mode 100644 index cd54486d..00000000 Binary files a/src/home/Img/unit/YKD.png and /dev/null differ diff --git a/src/home/Img/unit/ZC.png b/src/home/Img/unit/ZC.png deleted file mode 100644 index 0ac9cbcd..00000000 Binary files a/src/home/Img/unit/ZC.png and /dev/null differ diff --git a/src/home/Img/unit/beijing.png b/src/home/Img/unit/beijing.png deleted file mode 100644 index fe0950b2..00000000 Binary files a/src/home/Img/unit/beijing.png and /dev/null differ diff --git a/src/home/Img/多层次bg@2x.png b/src/home/Img/多层次bg@2x.png deleted file mode 100644 index 526a93a1..00000000 Binary files a/src/home/Img/多层次bg@2x.png and /dev/null differ diff --git a/src/home/SecondEdition.jsx b/src/home/SecondEdition.jsx deleted file mode 100644 index c6457f44..00000000 --- a/src/home/SecondEdition.jsx +++ /dev/null @@ -1,216 +0,0 @@ -import React , { useEffect , useState } from 'react'; -import Img1 from './Img/2-2-1.png'; -import ImgHead from './Img/2-2-head.png'; -import Img2 from './Img/2-2-2.png'; -import Img3 from './Img/2-2-3.png'; -import Imgring from './Img/2-2-ring.png'; -import ImgS1 from './Img/2-3-1.png'; -import ImgS2 from './Img/2-3-2.png'; -import ImgS3 from './Img/2-3-3.png'; -import ImgS4 from './Img/2-3-4.png'; -import ImgM2 from './Img/2-6-2.png'; -import ImgM4 from './Img/2-6-1.png'; -import Codeafter from './Img/codeafter.png'; -import './code.scss'; - -const code=[ - {str:git remote add origin https://git.trustie.net/Gitlink/Gitlink.git}, - {str:git push -u origin master}, - {str:git branch dev}, - {str:git checkout dev}, - {str:git add .}, - {str:git commit -m "xxx"}, - {str:git push origin dev}, - {str:git checkout master}, - {str:git pull origin master}, - {str:git merge dev}, - {str:git push origin master} -] -const codes=[ - {str:latest: Pulling from appleboy/drone-ssh}, - {str:Digest:sha256:095ca4ceafcb751f1f22fe416057d3e2a6302f7b1f7011b17010973cb6bbdd9f}, - {str:Status:Image is up to date for appleboy/drone-ssh:latest}, - {str:======CMD======}, - {str:echo ====暂停容器开始======= }, - {str:docker rm -f mo-test}, - {str:docker rmi mo-test:1.0}, - {str:cd /opt/demo}, - {str:echo ====开始部署=======}, - {str:docker build -t mo-test:1.0 .}, - {str:docker run -d -p 8080:8080 --name mo-test mo-test:1.0}, - {str:echo ====部署成功======}, - {str:======END======}, -] - -function SecondEdition({setValue}) { - useEffect(()=>{ - window.addEventListener('scroll', handleScroll); - return ComponentWillUnmount; - },[]) - function ComponentWillUnmount() { - window.removeEventListener("scroll",handleScroll); - } - - const [ hadoop , setHadoop ] = useState(false); - const [ highDevops , setHighDevops ] = useState(false); - const [ multipleAnalyse , setMultipleAnalyse ] = useState(false); - const [ multidimensional , setMultidimensional ] = useState(false); - - const [ oneStop , setOneStop ] = useState(false); - - function handleScroll() { - let clientHeight = document.documentElement.clientHeight; //可视区域高度 - let scrollTop = document.documentElement.scrollTop; //滚动条滚动高度 - let f = checkPosi("hadoop",clientHeight,scrollTop); - if(f){ - setValue("#hadoop"); - setHadoop(true); - }else{ - setHadoop(false); - } - let f1 = checkPosi("oneStop",clientHeight,scrollTop); - if(f1){ - setValue("#oneStop"); - setOneStop(true); - }else{ - setOneStop(false); - setOneStop(false); - } - let f3 = checkPosi("highDevops",clientHeight,scrollTop); - if(f3){ - setValue("#highDevops"); - setHighDevops(true); - }else{ - setHighDevops(false); - setHighDevops(false); - } - let f4 = checkPosi("multipleAnalyse",clientHeight,scrollTop); - if(f4){ - setValue("#multipleAnalyse"); - setMultipleAnalyse(true); - }else{ - setMultipleAnalyse(false); - setMultipleAnalyse(false); - } - let f5 = checkPosi("multidimensional",clientHeight,scrollTop); - if(f5){ - setValue("#multidimensional"); - setMultidimensional(true); - }else{ - setMultidimensional(false); - setMultidimensional(false); - } - } - - function checkPosi(ele,clientHeight,scrollTop) { - if(document.getElementById(ele)){ - var a = document.getElementById(ele).offsetTop - scrollTop -(clientHeight/3); - var b = document.getElementById(ele).clientHeight + (clientHeight/4); - if(a>0 || a<-b){ - return false; - }else{ - return true; - } - } - } - return( -
    -
    -
    -
    -

    分布式协作开发

    -

    基于Git打造分布式代码托管环境,提供免费公、私有代码仓库;

    -

    支持在线文件编辑、代码分支管理、协作贡献统计、代码仓库复刻(Fork)、贡献合并请求(PR)、群智贡献审阅等功能;

    -
    -
    - { - code.map((i,k)=>{ - return( -
  • {k+1}{i.str}
  • - ) - }) - } - 运行结果 -
    -
    -

    让您的项目在这里健康、快速的成长!

    -
    -
    -
    -
    - - - - -
    -
    -

    一站式过程管理

    -

    提供疑修(Issue)、里程碑、通知提醒、标签归档等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪;

    -

    同时提供在线Wiki文档、组织多粒度管理等功能,为您搭建一站式的项目过程管理环境;

    -

    让您的团队协作更高效、过程更透明!

    -
    -
    - -
    -
    -
    - 高效流水线运维 -
    -
    - 融合DevOps思想,提供轻量级的工作流引擎(Engine), - 打通编码、测试、构建、部署等开发运维环节;支持 - 自定义配置、代码静态扫描、构建自动触发、容器镜像托管等功能,同时支持接入第三方运维工具。 -
    -
    -
    - -
    - - {/*
    - { - codes.map((i,k)=>{ - return( -
  • {k+1}{i.str}
  • - ) - }) - } -
    */} -
    - - -
    -

    让您的代码更加快速、可靠地形成高质量的产品!

    -
    -
    -
    - 多层次代码分析 -
    -

    提供软件软代码和芯片RTL代码的溯源分析、文件级和组件级许可证识别及风险分析、输入性开源漏洞检测和加固建议,支持分析结果的多层次可视化展示。

    -
    -
    -
    -
    -
    -
    -

    多维度用户画像

    -

    实时采集和分析平台中的各类开源资源数据,搭建多维度用户画像评估系统;

    -
    -
    - -
    -
    -
    -
    - -
    -
    -

    提供开发活动统计、贡献度日历、用户能力建模、角色与专业定位分析等功能。

    -

    让您在个人主页展示开发动态与创新能力!

    -
    -
    -
    -
    -
    - ) -} -export default SecondEdition \ No newline at end of file diff --git a/src/home/ThirdEdition.jsx b/src/home/ThirdEdition.jsx deleted file mode 100644 index ffd8e6f7..00000000 --- a/src/home/ThirdEdition.jsx +++ /dev/null @@ -1,219 +0,0 @@ -import React,{ useState , useEffect , useMemo } from 'react'; -import { Spin , Skeleton } from 'antd'; -import T311 from './Img/3-1-1.png'; -import T312 from './Img/3-1-2.png'; -import T321 from './Img/3-2-1.png'; -import T322 from './Img/3-2-2.png'; -import T331 from './Img/3-3-1.png'; -import T332 from './Img/3-3-2.png'; -import T341 from './Img/3-4-1.png'; -import T342 from './Img/3-4-2.png'; -import bg3 from './Img/3-1.png'; -import bg32 from './Img/3-2.png'; -import bg33 from './Img/3-3.png'; -import bg34 from './Img/3-4.png'; - -import './Index.scss'; -import Axios from 'axios'; - -function ThirdEdition() { - const [ active , setActive ] = useState(1); - const [ isSpin , setIsSpin ] = useState(true); - const [ flag , setFlag ] = useState(true); - const [ list1, setList1 ] = useState([]); - const [ list2, setList2 ] = useState([]); - const [ list3, setList3 ] = useState([]); - const [ list4, setList4 ] = useState([]); - - const doubleFlag = useMemo(()=>{ - return flag; - },[flag]) - - useEffect(()=>{ - let box = document.getElementById('thirdUl'); - var myTimer = setTimeout(intervalActive, 2500); - box.onmouseover = () => { - clearTimeout(myTimer); - setFlag(false); - } - box.onmouseleave = () => { - myTimer = setTimeout(intervalActive, 2500); - setFlag(true); - } - },[active,flag]) - - function intervalActive() { - if(doubleFlag){ - if(active < 4){ - let i = active + 1; - setActive(i); - }else{ - setActive(1); - } - } - } - - useEffect(()=>{ - if(active){ - getList(active); - } - },[active]) - - function getList(a) { - let params = a === 1 ? "activity_forum" : a===2 ? "excellent_project" : a=== 3 ? "pinned_forum" : "experience_forum"; - if(a===1 && (list1 && list1.length>0)){return} - if(a===2 && (list2 && list2.length>0)){return} - if(a===3 && (list3 && list3.length>0)){return} - if(a===4 && (list4 && list4.length>0)){return} - setIsSpin(true); - const url = `/topics.json?topic_type=${params}`; - Axios.get(url,{ - params:{ - limit:5 - } - }).then(result=>{ - if(result){ - let l = result.data.topics; - if(a===1){ - setList1(l); - }else if(a===2){ - setList2(l); - }else if(a===3){ - setList3(l); - }else{ - setList4(l); - } - setIsSpin(false); - } - }).catch(error=>{}) - } - - return( -
    -

    开发者的家园

    -

    一个实现群智激发与汇聚,产学研联合面向协同创新的开源社区

    -
    - -
    - -
    -

    - {active === 1 ? "GitLink分享最新平台资讯、社区活动通知、开源竞赛信息,把握开源生态发展脉搏" - : active===2 ? "GitLink汇聚精英企业仓库、前沿技术仓库、人气热门仓库,孵化优质开源创新成果" - :active===3 ? "GitLink集萃社区精选项目介绍、平台使用技巧等优秀文章,助力开源开放协同创新" - :"GitLink甄选技术研究、心得体会、经验交流等高质量内容,推动社区健康稳定发展"} -

    -
    - { - active === 1 && - - { - list1 && list1.length > 0 ? list1.map((i,k)=>{ - return( -
  • - {i.title} - {i.visits} - {i.created_time && i.created_time.split(" ")[0]} -
  • - ) - }):"" - } - { - list1 && list1.length === 0 && - } -
    - } - { - active === 2 && - - { - list2 && list2.length > 0? list2.map((i,k)=>{ - return( -
  • - {i.title} - {i.visits} - {/* {i.time} */} -
  • - ) - }):"" - } - { - list2 && list2.length === 0 && - } -
    - } - { - active === 3 && - - { - list3 && list3.length > 0 ? list3.map((i,k)=>{ - return( -
  • - {i.title} - {i.visits} - {i.created_time && i.created_time.split(" ")[0]} -
  • - ) - }):"" - } - { - list3 && list3.length === 0 && - } -
    - } - { - active === 4 && - - { - list4 && list4.length > 0 ? list4.map((i,k)=>{ - return( -
  • - {i.title} - {i.visits} - {i.created_time && i.created_time.split(" ")[0]} -
  • - ) - }):"" - } - { - list4 && list4.length === 0 && - } -
    - } -
    -
    -
    -
    -
    - ) -} -export default ThirdEdition; \ No newline at end of file diff --git a/src/home/TopEdition.jsx b/src/home/TopEdition.jsx deleted file mode 100644 index 9d68ef19..00000000 --- a/src/home/TopEdition.jsx +++ /dev/null @@ -1,68 +0,0 @@ -import React , { useEffect , useState } from 'react'; -import Slider from 'react-slick'; -import axios from 'axios'; -import { getImageUrl } from 'educoder'; -import Left from './Img/left.png'; -import Right from './Img/right.png'; - - -let setting={ - dots:true, - infinite: true, - speed: 2000, - slidesToShow: 1, - slidesToScroll: 1, - pauseOnDotsHover:true, - autoplaySpeed:5000, - pauseOnFocus:true, - autoplay:true, - arrows:true, - prevArrow:, - nextArrow: -} -function TopEdition({register,current_user}) { - - const [ bannerList , setBannerList ] = useState(undefined); - - useEffect(()=>{ - getBanner(); - },[]) - - function getBanner() { - const url = `/topics.json?topic_type=banner`; - axios.get(url,{ - params:{ - limit:4 - } - }).then(result=>{ - if(result){ - setBannerList(result.data.topics); - } - }).catch(error=>{}) - } - return( - - { - bannerList && bannerList.length > 0 ? - bannerList.map((i,k)=>{ - return( -
    - {/* style={{backgroundImage:`url(${getImageUrl(i.image)})`}} */} -
    - - { - k +1 === bannerList.length && (!(current_user && current_user.login)) ? -

    立即注册

    - :"" - } -
    -
    - ) - }) - : - "" - } -
    - ) -} -export default TopEdition; \ No newline at end of file diff --git a/src/home/code.scss b/src/home/code.scss deleted file mode 100644 index 57badcc7..00000000 --- a/src/home/code.scss +++ /dev/null @@ -1,79 +0,0 @@ -.hadoopCode{ - margin-left: 32px; - box-shadow: 0 0 0 2px rgba(255,255,255,0.1); - border-radius: 10px; - padding:18px 20px; - flex: 1; - margin-top: 60px; - position: relative; - &>img{ - position: absolute; - right: -50px; - bottom: -50px; - width: 805px; - border-radius: 4px; - opacity: 0; - z-index: 1; - } - li{ - display: flex; - flex-wrap: wrap; - font-size: 14px; - font-weight: 500; - line-height: 30px; - color: #E1E1E1; - } -} -pre { - font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; - word-break: break-all; - overflow: initial ; - .codenum{ - display: inline-block; - width: 15px; - text-align: left; - margin-right: 15px; - } - .code-green{ - color: #00FA30; - } - .code-red{ - color: #FF5058; - } - .code-blue{ - color: #05CFC8; - } -} -.highCodes{ - position: absolute; - top:0px; - right:0px; - width: 50%; - height: 100%; - padding:40px 30px; - color: #E1E1E1; -} -.activeCode{ - .word-item{ - animation: show .2s 1 forwards; - } - &>img.activeImg{ - right: 0px; - bottom: -20px; - opacity: 1; - width: 705px; - transition: 1s; - transition-delay: 3s; - } -} -.word-item { - opacity: 0; -} -@keyframes show { - from { - opacity: 0; - } - to { - opacity: 1; - } -} diff --git a/src/home/index.jsx b/src/home/index.jsx index 7105a89d..96b5c425 100644 --- a/src/home/index.jsx +++ b/src/home/index.jsx @@ -1,167 +1,153 @@ -import React , { useEffect , useState } from 'react'; -import "./Index.scss"; -import TopEdition from './TopEdition'; -import ThirdEdition from './ThirdEdition'; -import { Anchor } from 'antd'; -import F41 from './Img/4-1.png'; -import F42 from './Img/4-2.png'; -import F43 from './Img/4-3.png'; -import F44 from './Img/4-4.png'; -import SecondEdition from './SecondEdition'; -import FifthEdition from './FifthEdition'; +import React, { useEffect, useState } from 'react'; import { TPMIndexHOC } from '../modules/tpm/TPMIndexHOC'; -import Axios from 'axios'; +import { isMobile } from 'educoder'; +import './index.scss'; -function Index(props) { - const [ value , setValue ] = useState(""); - const [ flag , setFlag ] = useState(true); +import FirstSection from './FirstSection'; +import SecondSection from './SecondSection'; +import ThirdSection from './ThirdSection'; +import FourthSection from './FourthSection'; +import FifthSection from './FifthSection'; +import SixthSection from './SixthSection'; +import SeventhSection from './SeventhSection'; +import Footer from './Footer'; - const [ bannerTab , setBannerTab ] = useState(undefined); - const register = props && props.mygetHelmetapi && props.mygetHelmetapi.common && props.mygetHelmetapi.common.register; - const { current_user } = props; - useEffect(()=>{ - window.addEventListener("scroll",scrollListener); - getTab(); - return ComponentWillUnmount; - },[]) +let isHuawei = (/honor|huawei/i.test(navigator.userAgent.toLowerCase())); +function HomePage({ history }) { - function ComponentWillUnmount() { - window.removeEventListener("scroll",scrollListener); - } - - function getTab() { - const url = `/topics.json?topic_type=card`; - Axios.get(url,{ - params:{ - limit:3 - } - }).then(result=>{ - if(result){ - setBannerTab(result.data.topics); - } - }).catch(error=>{}) - } - - function scrollListener(event) { - - let third = document.getElementById("thirdContent").offsetTop; - let top = document.documentElement.scrollTop + 60; - if(top>= third) - { - setFlag(false) - }else{ - setFlag(true) + useEffect(() => { + window.addEventListener("scroll", scrollListener, false); + return () => { + window.removeEventListener("scroll", scrollListener, false); } - } + }, []); - function changeActive(params) { - if(params){ - setValue(params); - let h = params.split("#")[1]; - let t = document.getElementById(h).offsetTop; - document.documentElement.scrollTop = t-100; - }else{ - setValue(""); + const [first, setFirst] = useState(true); + const [second, setSecond] = useState(isMobile); + const [third, setThird] = useState(false || isHuawei); + const [fourth, setFourth] = useState(false || isHuawei); + const [fifth, setFifth] = useState(false || isHuawei); + const [sixth, setSixth] = useState(false || isHuawei); + + + let settings = JSON.parse(localStorage.chromesetting); + let main_web_site_url = settings.main_web_site_url; + + + function scrollListener() { + let clientHeight = document.body.clientHeight; + let clientWidth = document.body.clientWidth; + // let secondSection = document.querySelector(".home-second-section").offsetTop; + // let thirdSection = document.querySelector(".home-third-section").offsetTop; + // let fourthSection = document.querySelector(".home-fourth-section").offsetTop; + // let fifthSection = document.querySelector(".home-fifth-section").offsetTop; + // let sixthSection = document.querySelector(".home-sixth-section").offsetTop; + // let seventhSection = document.querySelector(".home-seventh-section").offsetTop; + let secondSection = document.getElementById("home-second-section").offsetTop; + let thirdSection = document.getElementById("home-third-section").offsetTop; + let fourthSection = document.getElementById("home-fourth-section").offsetTop; + let fifthSection = document.getElementById("home-fifth-section").offsetTop; + let sixthSection = document.getElementById("home-sixth-section").offsetTop; + let seventhSection = document.getElementById("home-seventh-section").offsetTop; + + let top = document.documentElement.scrollTop; + + + if (top >= clientHeight - 300) { + setFirst(false); + } else { + setFirst(true); + } + + if (clientWidth > 1100) { + // 第二个动效 + if (top >= secondSection - clientHeight * 0.8 && top < thirdSection) { + setSecond(true); + } else { + setSecond(false); + } + } else { + // 第二个动效 + if (top >= secondSection - clientHeight && top < thirdSection) { + setSecond(true); + } else { + setSecond(false); + } + } + + // 第三个动效 + if (top >= thirdSection - clientHeight && top < fourthSection) { + setThird(true); + } else { + setThird(false); + } + + // 第四个动效 + if (top >= fourthSection - clientHeight && top < fifthSection) { + setFourth(true); + } else { + setFourth(false); + } + + // 第五个动效 + if (top >= fifthSection - clientHeight && top < sixthSection) { + setFifth(true); + } else { + setFifth(false); + } + + // 第六个动效 + if (top >= sixthSection - clientHeight && top < seventhSection - 100) { + setSixth(true); + } else { + setSixth(false); + } + + if(isHuawei){ + setFourth(true); + setSixth(true); } } - return( + return (
    -
    - {/* */} - - { - bannerTab && bannerTab.length > 0 ? - - : - - } - + +
    +
    -
    -

    GitLink,新一代开源创新服务平台

    - { - flag && - -
  • changeActive("#hadoop")} className={value === "#hadoop"?"active":""}>分布式协作开发
  • -
  • changeActive("#oneStop")} className={value === "#oneStop"?"active":""}>一站式过程管理
  • -
  • changeActive("#highDevops")} className={value === "#highDevops"?"active":""}>高效流水线运维
  • -
  • changeActive("#multipleAnalyse")} className={value === "#multipleAnalyse"?"active":""}>多层次代码分析
  • -
  • changeActive("#multidimensional")} className={value === "#multidimensional"?"active":""}>多维度用户画像
  • -
    - } - -
    -
    - + +
    +
    -
    -

    加入GitLink,和社区伙伴们一起踏上开源创新的辉煌旅程!

    -
    - { !(current_user && current_user.login) && 立即注册 } -
    -
      -
    • - - 发现 - 探索丰富优质的开发资源 -
    • -
    • - - 加入 - 寻找志同道合的协作伙伴 -
    • -
    • - - 合作 - 开启开放共享的协同之旅 -
    • -
    • - - 贡献 - 书写开源创新的精彩成就 -
    • -
    + +
    +
    -
    -

    开源生态

    -

    GitLink与各大企业、高校、科研机构开展广泛的技术合作,推动我国开源软件生态的快速构建与发展

    - +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    ) } -export default TPMIndexHOC(Index); \ No newline at end of file + +export default TPMIndexHOC(HomePage, { noFooter: true }); diff --git a/src/home/index.scss b/src/home/index.scss index b60a31e3..e806fa72 100644 --- a/src/home/index.scss +++ b/src/home/index.scss @@ -1,1113 +1,335 @@ +.homePage { + background: #fff; + font-size: 16px; + // min-width: 800px; + // 首页多个部分公共样式 -body{ - overflow: auto!important; - background-color: #fff!important; -} -.homePage{ - background-color: #fff; -} -.topEdition{ - position: relative; - background-image: linear-gradient(to right,#081843,#000A1D); - margin-bottom: 159px; - .headNav{ - position: absolute; - width: 100%; - top:0px; - left: 0px; - color: #FFFFFF; - background-color: rgba(225,225,225,0.03); - z-index: 10000; - .headNavDiv{ - margin:0px auto; - padding:0px 30px; - height: 72px; - line-height: 72px; - display: flex; - justify-content: space-between; - align-items: center; - .headlist{ - display: flex; - font-weight: 400; - li{ - margin-right: 35px; - font-size: 16px; - a{ - color: #FFFFFF!important; - } - } - } - .regBtn{ - display: inline-block; - height: 30px; - line-height: 30px; - color: #fff!important; - width: 60px; - text-align: center; - border-radius: 5px; - background-color: #466AFF; - margin-left: 20px; - &:hover{ - background-color: rgba(70,106,255,0.85); - } - } - } - } - .slick-track{ - height: 679px; - display: flex; - .slick-slide{ - position: relative; - height:100%; - div{ - height: 100%; - .regform{ - &>div{ - overflow: hidden; - img{ - height: 100%; - width: 1920px; - position: relative; - left: 50%; - margin-left: -960px; - } - } - } - .regPrg{ - position: absolute; - z-index: 2; - width: 1200px; - left: 50%; - margin-left: -600px; - top:54%; - margin-top: -23px; - a{ - color: #fff!important; - display: inline-block; - background-color: #466AFF; - border-radius: 5px; - height: 46px; - line-height: 46px; - width: 98px; - text-align: center; - font-size: 18px; - letter-spacing: 2px; - &:hover{ - color: #FFFFFF!important; - background-color: #355CFF; - } - } - } - } - - // img{ - // position: absolute; - // width: 100%; - // height: 100%; - // top:0px; - // left: 0px; - // z-index: 1; - // } - } - } - .slick-slider{ - min-width: 1200px; - position: relative; - &:hover{ - .slick-arrow{ - display: block!important; - cursor: pointer; - z-index: 2; - } - } - .slick-arrow{ - position: absolute; - top:50%; - z-index: 1000; - background: transparent; - border: none; - margin-top:-50px; - display: none!important; - &: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: 50px; - } - &.slick-next{ - right: 50px; - } - } - .slick-dots{ - width: 1200px; - text-align: left; - left: 50%; - margin-left: -600px; - bottom: 25%; - 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; - } - } - } - } - .topEditionUl{ - position: absolute; - width: 1244px; - background-image: url('./Img/top-bg.png'); - height: 244px; - bottom: -139px; - left: 50%; - margin-left: -622px; - display: flex; - align-items: center; - justify-content: center; - z-index: 3; - a{ - background-image: url('./Img/top-2.png'); - height: 139px; - width: 353px; - padding:15px 24px; - color: #fff; - margin:0px 17px; - border-radius: 11px; - background-size: 100% 100%; - color: #fff!important; - &:hover{ - box-shadow: 0px 2px 7px rgba(225,225,225,0.85); - } - &:first-child{ - background-image: url('./Img/top-1.png'); - } - &:last-child{ - background-image: url('./Img/top-3.png'); - } - } - } -} -.secondEdition{ - .theTitle{ - height: 53px; - line-height: 53px; - font-size: 38px; - font-weight: 500; - color: #1E1E1E; - text-align: center; - margin: 42px 0px 30px!important; - } - .ant-affix{ - background-color: #fff; - box-shadow: 0px 2px 7px 0px rgba(0,0 ,0 ,0.09); - } - .ant-anchor-wrapper{ - width: 1200px; - margin:0px auto; - padding-left: 0px; - .ant-anchor{ - display: flex; - align-items: center; - justify-content: center; - .ant-anchor-ink{ - width: 100%; - height: 1px; - border-bottom: 1px solid rgba(153, 153, 153, 0.5); - bottom: 0px; - top:initial; - } - li{ - padding:18px 19px; - margin:0px 10px; - position: relative; - font-size: 18px; - a{ - color: #333333!important; - } - &.active::after{ - position: absolute; - left: 0px; - bottom: 0px; - height:2px; - background-color: #466AFF; - content: ""; - width: 100%; - } - } - } - } - .secondEditionContent{ - padding:65px 0px; - width: 1200px; - margin:0px auto; - .hadoop{ - background:url('./Img/2-1bg.png') no-repeat center center; - background-size:cover; - min-height: 753px; - padding:50px 56px; - .hadoopCon{ - display: flex; - width: 100%; - } - .descBox{ - max-width: 352px; - word-break: break-all; - .desc1{ - height: 50px; - line-height: 50px; - font-size: 36px; - font-weight: 600; - color: #FFFFFF; - background: -webkit-linear-gradient(90deg, #50EDFF 0%, #557CFF 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } - .desc2{ - height: 72px; - font-size: 18px; - font-weight: 500; - color: #69DAF5; - line-height: 36px; - margin-top: 97px; - } - .desc3{ - height: 108px; - font-size: 18px; - font-weight: 500; - color: #FFFFFF; - line-height: 36px; - margin-top: 70px; - } - } - - .hadoopdesc{ - color: #FFFFFF; - background: -webkit-linear-gradient(112deg, #FF8B75 0%, #DD2476 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - font-size: 18px; - line-height: 25px; - font-weight: 500; - text-align: center; - margin-top: 40px; - } - } - .oneStop{ - text-align: center; - opacity: 0.3; - transition: 2s; - .oneStopContent{ - display: flex; - .osLeftMain{ - display: flex; - justify-content: flex-start; - align-items: flex-start; - position: relative; - margin-bottom: 182px; - } - .osRightMain{ - margin-left: 22px; - text-align: left; - .osRightTitle{ - height: 50px; - font-size: 36px; - font-weight: 600; - color: #FFFFFF; - line-height: 50px; - background: -webkit-linear-gradient(112deg, #FF8B75 0%, #DD2476 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-top: 28px; - } - p{ - font-size: 20px; - color: #637497; - line-height: 36px; - margin-top: 50px; - margin-bottom: 0px!important; - span{ - color: #000; - font-weight: 500; - } - } - } - } - .osleftPosi,.imgring{ - transition: 3s; - opacity: 0; - } - .osleftPosi1,.osleftPosi2{ - position: absolute; - right:-200px; - top:102px; - transition: 2s; - opacity: 0; - z-index: 1; - } - .osleftPosi2{ - top:317px; - right:10px; - transition: 2.5s; - z-index: 2; - } - &.activeCode{ - opacity: 1; - .osleftPosi,.osleftPosi1,.osleftPosi2{ - opacity: 1; - } - .osleftPosi1{ - right:10px; - } - .osleftPosi2{ - top:217px; - } - .imgring{ - opacity: 1; - } - } - } - .highDevops{ - text-align: center; - &.activeCode{ - .highDoContent img{ - opacity: 1; - &.highImg1{ - bottom:62px; - } - &.highImg2{ - bottom:215px; - } - } - } - .highDoTitle{ - position: relative; - padding:2px; - width: 384px; - height: 90px; - margin:7px auto 0px; - border-radius: 10px; - span{ - position: absolute; - z-index: 3; - width: 380px; - height: 86px; - line-height: 86px; - border-radius: 10px; - left: 2px; - top:2px; - display: inline-block; - font-size: 36px; - font-weight: 600; - background: -webkit-linear-gradient(1deg, #D57CA0 12%, #4877F3 57%, #20C3EF 76%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } - &::before{ - position: absolute; - z-index: 2; - width: 380px; - height: 86px; - line-height: 86px; - background-color: #fff; - border-radius: 10px; - content: ""; - top:2px; - left: 2px; - } - &::after{ - position: absolute; - content: ""; - width: 100%; - height: 100%; - top:0px; - left: 0px; - border-radius: 10px; - background: -webkit-linear-gradient(1deg, #D57CA0 12%, #4877F3 57%, #20C3EF 76%); - z-index: 1; - } - } - .highDoSubtitle{ - color: #637497; - font-size: 20px; - line-height: 36px; - max-width: 950px; - margin:30px auto 28px; - text-align: center; - span{ - color: #000; - font-weight: 500; - } - } - .highDoContent{ - background:url('./Img/2-3bg.png') no-repeat center center; - background-size:cover; - height: 920px; - padding:20px 0px 114px; - position: relative; - display: flex; - flex-direction: column; - align-items: center; - &>div{ - display: flex; - flex-direction: column; - align-items: center; - } - img{ - opacity: 0; - transition: 2.4s; - } - .highImg1{ - position: absolute; - bottom:0px; - transition: 1s; - transition-delay: 1s; - left:10px; - } - .highImg2{ - position: absolute; - bottom:0px; - right:10px; - transition: 2s; - transition-delay: 1s; - } - .highDoBottondesc{ - font-size: 20px; - font-weight: 500; - color: #000000; - line-height: 39px - } - } - } - .multipleAnalyse{ - background:url('./Img/2-4bg.png') no-repeat center center; - background-size:cover; - height: 710px; - padding-left: 58px; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - opacity: 0.3; - transition: 2s; - &.activeCode{ - opacity: 1; - .maContent{ - transform: rotateY(360deg); - } - } - .title{ - display: inline-block; - font-size: 36px; - font-weight: 600; - margin-bottom: 26px; - background: -webkit-linear-gradient(1deg, #6D66FF 12%, #C148FF 57%, #F59F77 76%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - line-height: 50px; - margin-top: 20px; - } - .maContent{ - height: 400px; - width: 763px; - background:url('./Img/2-4-1.png') no-repeat; - background-size:100% 100%; - margin:26px 0px; - transition: 3s; - } - .desc{ - text-align: center; - max-width: 869px; - line-height: 30px; - color:#69DAF5 ; - font-weight: 400; - font-size: 18px; - } - } - .multidimensional{ - background:url('./Img/2-5bg.png') no-repeat center center; - background-size:cover; - height: 1139px; - padding:100px 0px 0px; - display: flex; - flex-direction: column; - opacity: 0.3; - transition: 1s; - .multidimensinalhalf{ - display: flex; - align-items: center; - position: relative; - height: 447px; - img{ - position: absolute; - left: 0px; - bottom: -20px; - opacity: 0; - transition: 3s; - } - .halfTitle{ - height: 50px; - font-size: 36px; - font-weight: 600; - color: #FFFFFF; - line-height: 50px; - background: -webkit-linear-gradient(112deg, #D57CA0 0%, #4877F3 51%, #20C3EF 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-bottom: 70px!important; - } - .halfsubTitle{ - font-size: 20px; - font-weight: 500; - line-height: 36px; - color: #000; - max-width: 350px; - span{ - color: #637497; - font-weight: normal; - } - } - } - .activeCode{ - opacity: 1; - .multidimensinalPart{ - img{ - left: 0px; - opacity: 1; - } - } - .multidimensinalhalf{ - img{ - left: 380px; - opacity: 1; - } - } - } - } - .multidimensinalPart{ - display: flex; - align-items: center; - margin-top: 50px; - position: relative; - height: 396px; - transition: 4s; - img{ - position: absolute; - left: 620px; - bottom: -20px; - opacity: 0; - transition: 3s; - } - p{ - max-width: 422px; - text-align: left; - font-weight: 500; - line-height: 32px; - color: #000; - font-size: 20px; - span{ - color: #637497; - font-weight: normal; - } - &:first-child{ - margin-bottom: 55px!important; - } - } - } - } -} - -.thirdEdition{ - background:url('./Img/3-bg.png') no-repeat center center; - background-size:cover; - min-height: 846px; - min-width: 1200px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - .title{ - height: 53px; - font-size: 38px; - font-weight: 500; - color: #FFFFFF; - line-height: 53px; - margin-bottom: 13px; - } - .subtitle{ - height: 39px; - font-size: 18px; - font-weight: 500; - color: #FFFFFF; - line-height: 39px; - opacity: 0.6; - } - .thirdUl{ - display: flex; - align-items: center; - padding-top: 50px; - padding-bottom: 25px; - margin-bottom: 0px; - justify-content: center; - min-width: 1200px; - li{ - padding:0px 67px; - color: #fff; - position: relative; - cursor: pointer; - width: 222px; - &:hover{ - .hoverli1 img{ - &:first-child{ - transform: translate(5px,7px); - } - &:last-child{ - transform: translate(-2px,0px); - } - } - .hoverli2 img{ - &:first-child{ - transform: translate(6px,-7px); - } - &:last-child{ - transform: translate(-2px,0px); - } - } - .hoverli3 img{ - &:first-child{ - right: -3px!important; - } - &:last-child{ - left: -3px; - } - } - .hoverli4 img{ - &:first-child{ - top: -5px; - } - &:last-child{ - top:13px!important; - } - } - } - &.active::after{ - position: absolute; - content: ""; - width: 10px; - height: 10px; - border-radius: 50%; - background-color: #466AFF; - left: 50%; - margin-left: -5px; - bottom: -25px; - } - &.active,&:hover{ - &>span{ - font-size: 22px; - } - } - &>span{ - font-weight: 400; - font-size: 18px; - margin-top:10px; - display: block; - height: 30px; - text-align: center; - line-height: 30px; - } - &>div{ - position: relative; - height: 40px; - width: 40px; - margin:0px 20px; - img{ - position: absolute; - transition: .1s; - &:first-child{ - z-index: 2; - } - &:last-child{ - z-index: 1; - } - } - } - } - } - .thirdLists{ - display: flex; - align-items: center; - margin-top: 48px; - min-height: 365px; - .listbox{ - margin-left: 54px; - flex: 1; - .listTitle{ - height: 30px; - font-size: 18px; - font-weight: 400; - color: #FFFFFF; - line-height: 30px; - position: relative; - margin-bottom: 75px!important; - opacity: 0.8; - &::after{ - position: absolute; - left: 0px; - width: 39px; - height: 3px; - content: ""; - bottom: -20px; - background-color: #466AFF; - opacity: 1; - } - } - .ant-skeleton-title,.ant-skeleton-paragraph > li{ - background-color: rgba(242,242,242 ,0.2); - } - } - li{ - display: flex; - height: 22px; - line-height: 22px; - font-size: 16px; - color: #fff; - margin-bottom: 30px!important; - a{ - flex:1; - color: #fff!important; - &:hover{ - text-decoration: underline; - } - } - span{ - margin-left: 40px; - } - .listboxcount{ - min-width: 60px; - text-align: left; - display: flex; - justify-content: space-between; - } - } - } -} - -.forthEdition{ - background:url('./Img/4-bg.png') no-repeat center center; - background-size:cover; - min-height: 621px; - min-width: 1200px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - .theTitle{ - height: 42px; - line-height: 42px; - font-size: 30px; - font-weight: 500; - color: #1E1E1E; - margin-bottom: 50px!important; - } - .qulikyreg{ - display: inline-block; - width: 137px; - text-align: center; - height: 58px; - line-height: 58px; - color: #fff!important; - background-color: #466AFF; - border-radius: 6px; - font-size: 18px; - &:hover{ - color: #FFFFFF!important; - background-color: #355CFF; - } - } - .forthUl{ - display: flex; - align-items: flex-end; - min-width: 1200px; - justify-content: space-between; - li{ - margin:0px 40px; - display: flex; - flex-direction: column; - align-items: center; - .forthtitle{ - height: 30px; - font-size: 22px; - font-weight: 500; - color: #1E1E1E; - line-height: 30px; - display: block; - margin-top: 25px; - } - .forthsubtitle{ - height: 22px; - font-size: 16px; - font-weight: 400; - color: #1E1E1E; - line-height: 22px; - margin-top: 15px; - } - } - } -} - -.fifthEdition{ - display: flex; - flex-direction: column; - align-items: center; - padding:68px 0px; - min-width: 1200px; - .footSlider{ - width: 100%; - .slick-track{ - display: flex; - .slick-slide{ - margin:0px 20px; - & > div{ - width: 300px; - height: 120px; - padding:15px; - display: flex; - align-items: center; - justify-content: center; - background: linear-gradient(180deg, #F1F7FF 0%, #F7FAFF 53%, #FFFFFF 100%); - box-shadow: 0px 1px 10px 3px rgba(0, 0, 0, 0.06); - border-radius: 4px; - margin:30px 0px; - a{ - display: block; - height: 100%; - width: 100%; - text-align: center; - img{ - max-width: 100%; - max-height: 100%; - } - } - } - } - } - } - .title{ - height: 53px; - font-size: 38px; - font-weight: 500; - color: #000000; - line-height: 53px; - } - .subtitle{ - height: 39px; - font-size: 18px; - font-weight: 500; - color: #1E1E1E; - line-height: 39px; - margin-top: 13px; - margin-bottom: 54px; - opacity: 0.6; - } - #scrollBox1{ - max-height: 332px; + // 1行省略号 + .ellipsis-1 { + white-space: nowrap; overflow: hidden; - margin: 35px 0px 0px; - width: 100%; - .unitMainSlider{ - width: 1200px; - margin:0px auto; - .slick-list{ - height: 140px; - width: 100%; - overflow: hidden; - .slickMainline{ - display: flex!important; - padding:10px 2px; - align-items: center; - justify-content: space-between; - a{ - background: #FFFFFF; - box-shadow: 0px 1px 8px 1px rgba(0, 0, 0, 0.06); - border-radius: 4px; - border: 1px solid #FFFFFF; - margin-right: 20px; - padding:20px; - height: 120px; - width: 220px; - display: flex; - align-items: center; - justify-content: center; - &:hover{ - border: 1px solid #8FCEFF; - } - img{ - max-width: 100%; - max-height: 100%; - } - &:last-child{ - margin-right: 0px; - } - } - } - } + text-overflow: ellipsis; + } + // 2行省略号 + .ellipsis-2 { + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical; + } + + // 5行省略号 + .ellipsis-5 { + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 5; + line-clamp: 5; + -webkit-box-orient: vertical; + } + + // 8行省略号 + .ellipsis-8 { + text-overflow: -o-ellipsis-lastline; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 8; + line-clamp: 8; + -webkit-box-orient: vertical; + } + + .link { + cursor: pointer; + &:hover { + opacity: 0.8; } } - ul.fifthList{ - display: flex; - flex-wrap: wrap; - flex-direction: column; - height: 332px; - width: 100%; - float: left; - li{ - border-bottom: none; - width: 320px; - height: 130px; - margin:15px 0px!important; - display: flex; - justify-content: center; - align-items: center; - &:nth-child(2n){ - margin:12px 0px 12px 30px!important; - } - &:nth-child(2n+1){ - margin:12px 30px 12px 0px!important; - } - &:hover a{ - width: 100%; - height: 100%; - box-shadow: 0px 1px 15px 7px rgba(0, 0, 0, 0.08); - } - a{ - width: 300px; - height: 120px; - background: #fff; - box-shadow: 0px 1px 10px 3px rgba(0, 0, 0, 0.06); - border-radius: 4px; - border: 2px solid #FFFFFF; - display: flex; - align-items: center; - justify-content: center; - transition:.2s; - } - img{ - max-width: 100%; - max-height: 100%; - } - } - + + .ant-btn-primary { + background-color: #2a3ee9; + border-color: #2a3ee9; + height: 3.5em; + box-shadow: 0px 0px 9px 2px rgba(65, 84, 241, 0.33) !important; + border-radius: 0.375em; } -} -.footEdition{ - background-color: #171B23; - .footContent{ - display: flex; - align-items: flex-start; - padding:86px 0px; - justify-content: space-around; + .homepage-btn { + width: 8.75em; + height: 3.5em; + font-size: 1em; + &:hover { + background-color: #4154f1; + border-color: #4154f1; + } + .icon-gengduoicon { + margin-left: 0.375em; + color: #ffbf2d; + font-size: 1em !important; + } + } + .text-center { + text-align: center; + } + + .homepage-main { width: 1200px; - margin:0px auto; - ul{ - min-width: 120px; - text-align: left; - margin-right: 80px; - &.center{ - text-align: center; + max-width: 96%; + margin: -1px auto 0; + } + + .homePage-blue-tit { + color: #000870; + font-size: 2.125em; + margin-bottom: 0; + } + + .homePage-subhead { + font-size: 1em; + color: #666; + } + + .homePage-white-tit { + font-size: 2.25em; + font-weight: 500; + color: #ffffff; + line-height: 3.125em; + } + + .homePage-white-subhead { + font-size: 1em; + font-weight: 400; + color: #fff; + line-height: 1.6875em; + opacity: 0.8; + } + + // 首页特定头部样式起 + + &.newHeaders { + // background-color: #1a2358; + background-color: #0037af; + } + .head-nav { + min-width: auto; + } + .head-nav ul#header-nav li a { + font-size: 1em; + color: #fff; + } + .head-nav ul#header-nav li:hover a, + .head-nav ul#header-nav li.active a { + color: #ffa13a; + } + .head-nav ul#header-nav li.active a::after { + background-color: #ffa13a; + } + + .logoDiv img { + min-width: 2.8125em; + height: 2.8125em; + } + + .color-home { + color: #fff; + } + + .color-home:hover { + color: #4154f1; + } + + .register-button { + height: 3em; + margin-left: 1.25em; + padding: 0 1.5625em; + font-size: 0.875em; + } + // 首页特定头部样式止 +} + +// 波浪样式起 +.waves { + position: relative; + width: 100%; + height: 8vh; + bottom: -0.5vh; +} +// .waves-low { +// height: 6vh; +// } +.parallax > use { + animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite; +} +.parallax > use:nth-child(1) { + animation-delay: -2s; + animation-duration: 7s; +} +.parallax > use:nth-child(2) { + animation-delay: -3s; + animation-duration: 10s; +} +.parallax > use:nth-child(3) { + animation-delay: -4s; + animation-duration: 13s; +} +.parallax > use:nth-child(4) { + animation-delay: -5s; + animation-duration: 20s; +} +@keyframes move-forever { + 0% { + transform: translate3d(-90px, 0, 0); + } + 100% { + transform: translate3d(85px, 0, 0); + } +} /*Shrinking for mobile*/ + +@media screen and (max-width: 1000px) { + .newContainer .home-first-section { + height: auto; + margin-top: -5vh; + .website-content { + height: 60vh; + } + .grid-picture { + background-size: auto 100%; + } + } +} +@media screen and (max-width: 1200px) { + .waves { + height: 6vh; + } + .newContainer .home-first-section { + .grid-picture { + background-size: auto 100%; + } + } + .home-fifth-section .circle-wave { + left: 1.5vw; + } + + .home-seventh-section { + .seventh-main .clients { + .start-icon { + top: 100px; + left: 150px; } - &>p{ - height: 22px; - font-size: 16px; - font-weight: 400; - color: #FFFFFF; - line-height: 22px; + .end-icon { + bottom: 100px; + right: 280px; } - &>img{ - width: 100px; - height: 100%; - margin-bottom: 30px; - margin-top: 25px; - border-radius: 10px; - } - li{ - height: 20px; - font-size: 14px; - font-weight: 400; - line-height: 20px; - color: #BDC2D1; - margin-bottom: 15px!important; - a{ - color: #BDC2D1!important; - &:hover{ - text-decoration: underline; + } + } + .home-footer { + height: 400px; + .arc { + margin: -100px -100px 0; + height: 200px; + border-radius: 50%; + } + .footer-main { + height: 200px; + } + } +} +@media screen and (min-width: 2000px) { + .homePage { + font-size: 20px; + &.newHeaders { + height: 4.375em; + .head-nav { + height: inherit; + ul#header-nav { + height: inherit; + li { + height: inherit; + font-size: 1em; + line-height: 4.375em; + a { + font-size: 1.1em; + } } } - &.thehead{ - height: 25px; - font-size: 18px; - font-weight: 600; - color: #FFFFFF; - line-height: 25px; - margin-bottom: 20px!important; + } + .login-box { + font-size: 0.9375em; + } + } + .homepage-main { + width: 1600px; + } + .home-first-section { + .website { + margin-right: 7%; + .website-vision { + justify-content: flex-start; + span { + margin-right: 1.5em; + } } } - .theline{ - .imgCon{ - padding:5px; - border-radius: 4px; - background-color: #fff; - img{ - width: 80px; - height: 80px; - border-radius: 3px; - } + .play-img { + width: 50%; + height: 600px; + .play-circle { + right: 21%; + } + .play-circle-circle1, + .play-circle-circle2, + .play-circle-circle3, + .play-circle-circle4, + .play-circle-circle5 { + right: 26.1%; + } + } + } + + .home-seventh-section { + .clients { + .start-icon { + top: 100px; + left: 380px; + } + .end-icon { + bottom: 130px; + right: 480px; + } + } + } + .footerbottom { + font-size: 16px !important; + } + } +} + +@media screen and (min-width: 2800px) { + .homePage { + font-size: 24px; + .homepage-main { + width: 2000px; + } + .home-first-section { + .website { + margin-right: 14%; + } + .play-img { + width: 40%; + .play-circle { + right: 21%; + } + .play-circle-circle1, + .play-circle-circle2, + .play-circle-circle3, + .play-circle-circle4, + .play-circle-circle5 { + right: 26.1%; } } } } } -.copyrightDesc{ - font-size: 12px; - font-weight: 400; - color: #BDC2D1; - line-height: 28px; - padding:15px 0px; - text-align: center; - background-color: #1B212C; - a{ - color: #BDC2D1!important; - } -} \ No newline at end of file