diff --git a/src/forge/Information/Component/publicBanner.jsx b/src/forge/Information/Component/publicBanner.jsx
index 9bd3e1c35..9d9cd9f9e 100644
--- a/src/forge/Information/Component/publicBanner.jsx
+++ b/src/forge/Information/Component/publicBanner.jsx
@@ -1,9 +1,12 @@
import React , { useState , useEffect, Fragment } from 'react';
-import { Menu } from 'antd';
+import { Menu, message } from 'antd';
import { Link } from 'react-router-dom';
import { tempConfig } from '../tempInfo';
import TopEdition from './TopEdition'
import leftImg from '../img/left.png';
+import MemberApply from './memberApply';
+import { memberStatusEnum } from '../Pages/zoneVIP';
+import { applyJoin, getAuditStatus } from '../api';
@@ -11,8 +14,10 @@ function PublicBanner(props){
const [ key , setKey ] = useState("1");
const { deptId } = props.match.params;
const { pathname } = props.history.location;
- const { data:{sectionHomepageShow, sectionHomepageTitle, sectionProjectShow,sectionDataSetShow,sectionDataSetTitle, sectionProjectTitle, sectionResourceShow, sectionResourceTitle, sectionCmsShow, sectionCmsTitle, sectionMemberShow, sectionMemberTitle, sectionHelperShow, sectionHelperTitle}, data , adminUrl, temp } = props;
+ const { data:{sectionHomepageShow, sectionHomepageTitle, sectionProjectShow,sectionDataSetShow,sectionDataSetTitle, sectionProjectTitle, sectionResourceShow, sectionResourceTitle, sectionCmsShow, sectionCmsTitle, sectionMemberShow, sectionMemberTitle, sectionHelperShow, sectionHelperTitle}, data , adminUrl, temp, showLoginDialog, showNotification, checkIfLogin, id } = props;
const isNSCC = deptId === "NSCC";
+ const [ memberStatus , setMemberStatus] = useState(memberStatusEnum.notMember);
+ const [ applyVisible , setApplyVisible ] = useState(false);
useEffect(()=>{
if(pathname){
@@ -47,6 +52,49 @@ function PublicBanner(props){
}
},[pathname])
+ useEffect(()=>{
+ if(id && deptId && deptId === "NSCC"){
+ getMemberStatus()
+ }
+ },[id, deptId])
+
+ function getMemberStatus() {
+ getAuditStatus(id).then(res => {
+ if (res && res.data && res.data.code === 200) {
+ setMemberStatus(res.data.data)
+ } else {
+ setMemberStatus(memberStatusEnum.notMember)
+ }
+ }).catch(() => { setMemberStatus(memberStatusEnum.notMember) })
+ }
+
+ function onOk(e) {
+ applyJoin(id, e).then(res => {
+ if (res && res.data) {
+ showNotification(res.data.msg)
+ setApplyVisible(!applyVisible)
+ if (res.data.code === 200) {
+ setMemberStatus(memberStatusEnum.applying)
+ }
+ }
+ })
+ }
+
+ function apply() {
+ if(checkIfLogin()===false){
+ showLoginDialog()
+ return false;
+ }else if(memberStatus === memberStatusEnum.applying){
+ message.info("您已提交申请,请耐心等待管理员审核!")
+ return;
+ }else if(memberStatus === memberStatusEnum.isMember){
+ message.info("您已加入会员!")
+ return;
+ }else{
+ setApplyVisible(!applyVisible)
+ }
+ }
+
return(
@@ -56,11 +104,15 @@ function PublicBanner(props){
{!isNSCC &&
{data.mainTitle}
}
{isNSCC &&
-
- {data.mainTitle}
-
+
+ {data.mainTitle}
+
+
}
+ {isNSCC &&
}
}
{
@@ -100,6 +152,7 @@ function PublicBanner(props){
{ adminUrl && {window.location.href=adminUrl}}>
后台管理 }
+ setApplyVisible(!applyVisible)} current_user={props.current_user}/>
)
}
diff --git a/src/forge/Information/Pages/homepage/component/specialProjectsByNSCC.jsx b/src/forge/Information/Pages/homepage/component/specialProjectsByNSCC.jsx
index 70ee3f500..d54f07171 100644
--- a/src/forge/Information/Pages/homepage/component/specialProjectsByNSCC.jsx
+++ b/src/forge/Information/Pages/homepage/component/specialProjectsByNSCC.jsx
@@ -1,11 +1,13 @@
-import React, { useEffect, useState } from 'react';
-import { getSpecialProjectDetail, getSpecialProjectList, getSpecialProjectTypeList, getImage, getSpecialReportList } from '../../../api';
-import { Col, Divider, Icon, Row, Tag } from 'antd';
+import React, { Fragment, useEffect, useState } from 'react';
+import { getSpecialProjectDetail, getSpecialProjectList, getSpecialProjectTypeList, getImage, getSpecialReportList, checkOpenedEnterprise } from '../../../api';
+import { Col, Divider, Icon, message } from 'antd';
import Nodata from '../../../../Nodata';
import '../index.scss';
import ProjectVerticalSlider from './projectVerticalSlider';
import { Link } from 'react-router-dom';
-function SpecialProjects({ data }) {
+import axios from 'axios';
+
+function SpecialProjects({ data, showLoginDialog, checkIfLogin }) {
const { key, homepageSpecialProjectTitle, id } = data || {};
const [typeList, setTypeList] = useState([]);
const [typeId, setTypeId] = useState(undefined);
@@ -78,13 +80,45 @@ function SpecialProjects({ data }) {
const docId = {
6: 1048
}
+ const orgId = {
+ 6: "Supercomputing",
+ }
return
})}
diff --git a/src/forge/Information/Pages/homepage/index.scss b/src/forge/Information/Pages/homepage/index.scss
index dc6fdef0a..fd9d70647 100644
--- a/src/forge/Information/Pages/homepage/index.scss
+++ b/src/forge/Information/Pages/homepage/index.scss
@@ -663,8 +663,6 @@
transition: height .5s;
.desc_spt{
padding-right: 30px;
- padding-bottom: 30px;
- border-bottom: 1px dashed #C7CADA;
transition: height .3s ease-out;
opacity: 1;
animation: animation1 .3s ease-in-out .3s backwards;
@@ -672,6 +670,24 @@
.proTypeBox_NSCC:hover .icon-shouqi{
color: #131415;
}
+ .gotoPM{
+ background-image:linear-gradient(95.71deg,#694dff 0%,#1d5bff 100%);
+ border-radius:6px;
+ transition: all 0.3s;
+ padding: 12px 13px;
+ letter-spacing: 1px;
+ &:hover{
+ background-image:linear-gradient(273.05deg,#694dff 0%,#1d5bff 100%);
+ .icon-jiantou3{
+ left: 5px;
+ }
+ }
+ .icon-jiantou3{
+ position: relative;
+ left: 0px;
+ transition: left .85s ease;
+ }
+ }
}
.carousel-row {
align-items: center;
@@ -768,6 +784,7 @@
overflow: hidden;
border-radius:15px;
z-index: 2;
+ min-height: 150px;
&:hover .firstDoc_Img{
transform: scale(1.05);
}
diff --git a/src/forge/Information/Pages/homepage/nscc.jsx b/src/forge/Information/Pages/homepage/nscc.jsx
index 00a145fd3..8b4a6ddec 100644
--- a/src/forge/Information/Pages/homepage/nscc.jsx
+++ b/src/forge/Information/Pages/homepage/nscc.jsx
@@ -131,7 +131,7 @@ function HeaderPageUos(props) {
}
-
+
diff --git a/src/forge/Information/Pages/zoneVIP.jsx b/src/forge/Information/Pages/zoneVIP.jsx
index ea6c6c4e6..bb20c6cc8 100644
--- a/src/forge/Information/Pages/zoneVIP.jsx
+++ b/src/forge/Information/Pages/zoneVIP.jsx
@@ -13,7 +13,7 @@ import {setZoneVisits} from '../api'
import '../indexZone1.scss';
-const memberStatusEnum = {
+export const memberStatusEnum = {
applying: '0',
isMember: '1',
notMember: '2'
diff --git a/src/forge/Information/img/button.png b/src/forge/Information/img/button.png
new file mode 100644
index 000000000..804a25fb2
Binary files /dev/null and b/src/forge/Information/img/button.png differ
diff --git a/src/forge/Information/img/button1.png b/src/forge/Information/img/button1.png
new file mode 100644
index 000000000..5e9671783
Binary files /dev/null and b/src/forge/Information/img/button1.png differ
diff --git a/src/forge/Information/index.jsx b/src/forge/Information/index.jsx
index a08a0b3e3..8e1a30594 100644
--- a/src/forge/Information/index.jsx
+++ b/src/forge/Information/index.jsx
@@ -192,7 +192,7 @@ function Index(props){
return(
- { (!sourcedetail && deptId!=="apply") && (id ?
: )}
+ { (!sourcedetail && deptId!=="apply") && (id ? : )}