'样式修复'

This commit is contained in:
namezlx 2023-08-18 13:40:36 +08:00
parent 6e6adde752
commit f00b9830bf
3 changed files with 53 additions and 20 deletions

View File

@ -0,0 +1,8 @@
.lastLineScroll {
max-height: 280px;
overflow-y: scroll;
}
.lastTwoScroll {
max-height: 520px;
overflow-y: scroll;
}

View File

@ -3,8 +3,9 @@ import { Button, Tooltip } from 'antd';
import Nodata from '../../../forge/Nodata';
import { useEffect } from 'react';
import { getProjectById } from '../../api';
import './index.scss';
export default ({ detail, projectId }) => {
export default ({ detail, projectId, listLen }) => {
const [info, setInfo] = useState(detail);
useEffect(()=>{
@ -27,21 +28,29 @@ export default ({ detail, projectId }) => {
<div>项目简介:&nbsp;&nbsp;{info.projectIntro}</div>
</div>
{/* 课题列表 */}
{info.registrationTaskList && info.registrationTaskList.length ? info.registrationTaskList.map((item, index)=>{
return <div className='taskItem mt20' key={index}>
<div className="left">
<div className="taskTitle"><Tooltip title={item.taskName}>{item.taskName}</Tooltip></div>
<div className='mt20 oneLine leftWidth'>导师姓名: &nbsp;&nbsp;{item.tutorName}</div>
{item.tutorMail && <div className='mb20 email oneLine leftWidth'>邮箱地址: &nbsp;&nbsp;<span><Tooltip title={item.tutorMail}>{item.tutorMail}</Tooltip></span></div>}
<div className={
info.registrationTaskList &&
info.registrationTaskList.length &&
listLen == 2 &&
info.registrationTaskList.length >= 2
? 'lastLineScroll' : listLen == 3 &&
info.registrationTaskList.length >= 3 ? 'lastTwoScroll' : '' }>
{info.registrationTaskList && info.registrationTaskList.length ? info.registrationTaskList.map((item, index)=>{
return <div className='taskItem mt20' key={index}>
<div className="left">
<div className="taskTitle"><Tooltip title={item.taskName}>{item.taskName}</Tooltip></div>
<div className='mt20 oneLine leftWidth'>导师姓名: &nbsp;&nbsp;{item.tutorName}</div>
{item.tutorMail && <div className='mb20 email oneLine leftWidth'>邮箱地址: &nbsp;&nbsp;<span><Tooltip title={item.tutorMail}>{item.tutorMail}</Tooltip></span></div>}
</div>
<div className="center">
<div className="taskDesc"><Tooltip title={item.taskDesc}>{item.taskDesc}</Tooltip></div>
{item.taskUrl && <div className="taskUrl oneLine">课题链接: &nbsp;&nbsp;<a href={item.taskUrl} target={"_blank"}>{item.taskUrl}</a></div>}
<div></div>
</div>
<div className="right oneLine taskUrl"><span className='taskReward'>{item.taskReward}</span></div>
</div>
<div className="center">
<div className="taskDesc"><Tooltip title={item.taskDesc}>{item.taskDesc}</Tooltip></div>
{item.taskUrl && <div className="taskUrl oneLine">课题链接: &nbsp;&nbsp;<a href={item.taskUrl} target={"_blank"}>{item.taskUrl}</a></div>}
<div></div>
</div>
<div className="right oneLine taskUrl"><span className='taskReward'>{item.taskReward}</span></div>
</div>
}) : <Nodata _html="课题暂无数据" small={true}/>}
}) : <Nodata _html="课题暂无数据" small={true}/>}
</div>
</div>: <div className="projectDetailBox nodata"><Nodata _html="暂无数据" small={true}/></div>
)
}

View File

@ -14,6 +14,7 @@ const { Search } = Input;
function ProjectList() {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
const [listLen, setListLen] = useState(null);
useEffect(() => {
setLoading(true);
@ -31,11 +32,26 @@ function ProjectList() {
}, [])
// taskList
function changeVisible(visible, item) {
function changeVisible(visible, item, index) {
if (visible) {
let height = document.documentElement.clientWidth / 1920 * 500 + 70 + document.querySelector(`.${item.gitlinkLastUrl}`).offsetTop + item.registrationTaskList.length * 320;
document.querySelector('#taskList').style.height = height + 'px';
// let height = document.documentElement.clientWidth / 1920 * 500 + 70 + document.querySelector(`.${item.gitlinkLastUrl}`).offsetTop + item.registrationTaskList.length * 320;
// document.querySelector('#taskList').style.height = height + 'px';
document.querySelector('#taskList').style.height = 'auto';
//
if(data && data.length && data.length > 0){
const len = data.length;
const num = len%3 == 0 ? 3 : len%3;
//
if(len - index <= num){
setListLen(2)
}
//
if(len - index <= num + 3 && len - index > num){
setListLen(3)
}
}
} else {
setListLen(null);
document.querySelector('#taskList').style.height = 'auto';
}
}
@ -46,10 +62,10 @@ function ProjectList() {
<div className='projectListBox'>
{data && data.map((item, index) => {
return <Popover
onVisibleChange={(visible) => { changeVisible(visible, item) }}
onVisibleChange={(visible) => { changeVisible(visible, item, index) }}
key={index}
placement={(index + 1) % 3 === 0 ? 'bottomRight' : (index + 1) % 3 % 2 === 0 ? 'bottom' : 'bottomLeft'}
content={<ProjectDetail detail={item}/>}
content={<ProjectDetail detail={item} listLen = {listLen} />}
trigger='click'
overlayClassName='projectItemPopover'
autoAdjustOverflow={false}