diff --git a/src/glcc/img/openmmlab/logo.png b/src/glcc/img/openmmlab/logo.png new file mode 100644 index 00000000..42c2448e Binary files /dev/null and b/src/glcc/img/openmmlab/logo.png differ diff --git a/src/glcc/openmmlab/SliderLeft/index.jsx b/src/glcc/openmmlab/SliderLeft/index.jsx new file mode 100644 index 00000000..e7e65260 --- /dev/null +++ b/src/glcc/openmmlab/SliderLeft/index.jsx @@ -0,0 +1,37 @@ +import React, { useEffect, useState } from 'react'; +import Slider from 'react-slick'; +import axios from 'axios'; +import './index.scss'; + + +let setting = { + infinite: true, + dots: true, + speed: 750, + slidesToShow: 1, + slidesToScroll: 1, + pauseOnDotsHover: true, + autoplaySpeed: 50000, + // pauseOnFocus: true, + centerMode: true, + centerPadding: "0px", + autoplay: true, + arrows: false, +} +function SliderLeft() { + + return ( + +
+ MMDetection 是 OpenMMLab 中的通用目标检测算法平台, +
+ +
+ MMDetection 是 Ope +
+ +
+ ) +} +export default SliderLeft; + diff --git a/src/glcc/openmmlab/SliderLeft/index.scss b/src/glcc/openmmlab/SliderLeft/index.scss new file mode 100644 index 00000000..32e0f03f --- /dev/null +++ b/src/glcc/openmmlab/SliderLeft/index.scss @@ -0,0 +1,102 @@ +.slider_left { + .slick-slider { + overflow: hidden; + } + .slider_content { + color: #3a4965; + } + + .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; + } + } + } + } + } + } + .slick-slider { + position: relative; + + .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; + } + } + } + } +} diff --git a/src/glcc/openmmlab/SliderRight/index.jsx b/src/glcc/openmmlab/SliderRight/index.jsx new file mode 100644 index 00000000..be3b7086 --- /dev/null +++ b/src/glcc/openmmlab/SliderRight/index.jsx @@ -0,0 +1,59 @@ +import React, { useEffect, useState } from 'react'; +import Slider from 'react-slick'; +import { projectList } from '../../api'; +import './index.scss'; + + +let setting = { + infinite: true, + dots: true, + speed: 750, + slidesToShow: 1, + slidesToScroll: 1, + pauseOnDotsHover: true, + autoplaySpeed: 50000, + // pauseOnFocus: true, + centerMode: true, + centerPadding: "0px", + autoplay: true, + arrows: false, +} +function SliderLeft() { + + const [list, setList] = useState([]); + + useEffect(()=>{ + const params = { + curPage: 1, + keyword:'openmmlab', + pageSize: 10000 + } + projectList(params).then(response=>{ + if(response && response.message === "success"){ + setList(response.data.rows); + } + }) + },[]) + + return ( + + { + list && list.map((item, i) => { + return ( +
+
+ {i + 1} +

{ goDetail(item.fake_id) }}>{item.title}

+ {item.tag} +
+

{item.content}

+ {item.created_time && item.created_time.split(' ')[0]} +
+ ) + }) + } +
+ ) +} +export default SliderLeft; + diff --git a/src/glcc/openmmlab/SliderRight/index.scss b/src/glcc/openmmlab/SliderRight/index.scss new file mode 100644 index 00000000..baf5d9be --- /dev/null +++ b/src/glcc/openmmlab/SliderRight/index.scss @@ -0,0 +1,92 @@ +.slider_right { + width: 30%; + height: 520px; + overflow: hidden; + .slick-track > div { + max-width: 83.3%; + position: relative; + transition: all 0.7s; + } + .news-slide-item { + height: 11.25em; + overflow: hidden; + background-image: linear-gradient( + to bottom right, + #e9f5ff 0%, + #f1f2fd 25%, + #e8f2ff 50%, + #e1eaff 75%, + #c6d3ff 100% + ); + margin-bottom: 10px; + padding: 1.25em 1.8em 1.6em; + border: 1px solid #fff; + border-radius: .3em; + + .slide-title { + display: flex; + align-items: center; + } + .slide-title-content { + color: #000870; + font-size: 1em; + margin-bottom: 0 !important; + flex: auto; + } + .order-num { + flex: none; + display: inline-block; + margin-right: 1em; + color: #fff; + border-radius: 50%; + width: 1.75em; + height: 1.75em; + line-height: 1.75em; + background: linear-gradient( + 272deg, + #4154f1 0%, + #4154f1 47%, + #4154f1 100% + ); + box-shadow: 0px 0px 9px 2px rgba(65, 84, 241, 0.33); + text-align: center; + } + + .slide-tag { + flex: none; + color: #fff; + padding: .2em .75em; + background: #586dff; + border-radius: .2em; + } + + + .news-time { + font-size: .95em; + font-weight: 400; + color: #3c476e; + } + + p { + margin:1em 0 .5em; + color: #3c476e; + font-size: .9em; + + } + } + .slick-center { + margin-left: 100px; + } + + .slick-slide:nth-child(n) .slide-tag{ + background: #586dff; + } + + .slick-slide:nth-child(2n) .slide-tag{ + background: #e53939; + } + + .slick-slide:nth-child(3n) .slide-tag{ + background: #ff7300; + } +} diff --git a/src/glcc/openmmlab/index.jsx b/src/glcc/openmmlab/index.jsx index 5274ef49..39538bba 100644 --- a/src/glcc/openmmlab/index.jsx +++ b/src/glcc/openmmlab/index.jsx @@ -1,8 +1,10 @@ import React from 'react'; -import banner from "../img/studentProject.png"; -import './index.scss'; +import logo from "../img/openmmlab/logo.png"; import { useEffect } from 'react'; -import ProjectList from '../project/projectList'; +import SliderLeft from './SliderLeft'; +import SliderRight from './SliderRight'; +import './index.scss'; + @@ -12,9 +14,24 @@ function Openmmlab(props) { }, []) return ( -
- - +
+
+ +
+ +

深度学习时代最完整的计算机视觉开源算法体系

+
+ +
+
+ +
+
+ +
+
+
+
) } diff --git a/src/glcc/openmmlab/index.scss b/src/glcc/openmmlab/index.scss index 89d55bdd..b1a48a79 100644 --- a/src/glcc/openmmlab/index.scss +++ b/src/glcc/openmmlab/index.scss @@ -1,223 +1,45 @@ -.glcc_project{ - background-color: #ebf2ff; - .head{ - background-color:rgba(188, 208, 255, 0.27); - border:1px solid #ffffff; - text-align: center; - a{ - padding: 18px 20px 20px; - display: inline-block; - color: #273778; - font-size: 18px; - font-weight:700; - line-height: 30px; - &.active{ - border-bottom: 1px solid #5474df;; - } - &:last-child{ - margin-left: 40px; - } - } - } - .gobackBox{ - width: 1200px; - margin: 0 auto; - padding: 25px 0 12px; - color: #202d40; - font-size: 16px; - border-bottom: 1px dashed #bec5d5; - a{ - color:#a4aabb; - } - } - .listBox{ - background-image:linear-gradient(180deg,#ebf2ff 0%,#ebf2ff 43.09%,#f3f4f8 100%); - position: relative; - .list{ - width: 1200px; - margin: 0 auto; - position: relative; - z-index: 1; - .search{ - width: 40%; - margin: 0 auto; - padding: 25px 0 40px; - &.task{ - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - .ant-input-group-wrapper{width: 40%;} - } - } - .search .ant-btn, .search .ant-input{ - height: 48px; - } - .search .ant-btn{font-size: 30px;} - .search .ant-input{ - font-size: 16px; - border-color: #ebf2ff; - &:hover{ - border-color: #466aff; - } - } - } - .search{ - .ant-btn-primary{ - background-color:#466aff; - border-color: #466aff; - } - } - .bgPng3, .bgPng4{ - width: 146px; - position: absolute; - z-index: 0; - top: 162px; - left: 100px; - } - .bgPng4{ - top: 450px; - left: auto; - right: 310px; - } - } +.glcc_openmmlab { + font-family: PingFang SC; + + .first_selection{ + // height: 742px; + padding:8px 0 63px; + background-image: linear-gradient(180deg,#e5e7fc 0%,#f5f7fa 47.28%,#d4daec 100%); + border-radius: 4px; } - .glcc-banner { - width: 100%; + + .openmmlab_head { + text-align: center; + margin: 8px auto; } - // 项目详情框 - .projectDetailBox{ - &.byTask{ - background-image:linear-gradient(180deg,#f1f5ff 0%,#ffffff 100%); - border:1px solid #ffffff; - border-radius:4px; - box-shadow:0px 0px 10px rgba(100, 141, 255, 0.2); - padding: 30px 30px 50px; - .taskItem{ - .center{ - width: 640px; - } - } - } - &.nodata{width: 200px;} - font-size:15px; - line-height:30px; - .projectDetailHead{ - color:#465474; - padding-bottom: 12px; - border-bottom: 1px dashed #bec5d5; - line-height: 36px; - .name{ - font-weight:700; - color:#3753c5; - font-size:20px; - } - .type{ - display: inline-block; - border:1px solid #6680bb; - border-radius:4px; - margin-left: 12px; - padding: 4px 6px; - line-height: 26px; - } - .linkUrl{ - color: #466aff; - } - } - .taskItem { + .openmmlab_logo { + width: 287px; + } + .openmmlab_des { + font-weight: 500; + color: #4a5a7a; + font-size: 15px; + line-height: 26px; + text-align: center; + } + + .openmmlab_main { + width: 1200px; + margin: 0 auto; + } + + .openmmlab_slider{ display: flex; justify-content: space-between; - border:1px solid #ffffff; - &:hover{ box-shadow: 0px 0px 12px rgba(71, 105, 198, 0.4);} - .oneLine{ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .left{ - width: 316px; - background-image: url('../img/projectDetailTaskBg.png'); - background-size: 100% 100%; - padding: 22px 20px; - color:#25304a; - .taskTitle{ - cursor: pointer; - color:#1834a7; - font-size:18px; - display: -webkit-box; - overflow: hidden; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - text-overflow: ellipsis; - } - .email span{color:#466aff;} - .leftWidth{width: 270px;} - } - .center{ - width: 665px; - text-align: left; - padding: 20px; - display: flex; - flex-direction: column; - justify-content: space-between; - .taskDesc{ - color:#6b6b6b; - display: -webkit-box; - overflow: hidden; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - text-overflow: ellipsis; - } - .taskUrl{ - color:#465474; - font-size:16px; - line-height: 28px; - margin-bottom: 5px; - a{color:#466aff;} - } - .applyBut{ - background-color:#466aff; - border-color: #466aff; - &:hover{background-color:#5d7cff;} - &:focus{background-color:#1140ff;} - } - .taskReward{color:#ff8800;} - } - .right{ - margin-top: 35px; - padding-right: 10px; - width: 120px; - font-weight:700; - color:#ff8800; - font-size:24px; - } - } } - .projectItemPopover{ - width: 1200px; - .ant-popover-content .ant-popover-arrow{ - border-width: 12px; - } + + .slider_left { + width: 766px; + height: 520px; + background-image: linear-gradient(180deg, #edf1f8 0%, #f9fbff 100%); + border: 1px solid #ffffff; + border-radius: 6px; + box-shadow: 0px 0px 8px rgba(138, 168, 227, 0.21); + padding:18px 33px; } - .projectItemPopover .ant-popover-inner{ - transform: translateY(8px); - background-image:linear-gradient(180deg,#f1f5ff 0%,#ffffff 100%); - border:1px solid #ffffff; - border-radius:4px; - box-shadow:0px 0px 10px rgba(100, 141, 255, 0.2); - .ant-popover-inner-content{ - padding: 30px 30px 50px; - } - } - .lookDetail{ - border-color: #466aff; - color: #466aff; - &:hover{ - border-color: #5d7cff; - color: #5d7cff; - } - &:focus{ - border-color: #1140ff; - color: #1140ff; - } - } \ No newline at end of file +}