diff --git a/src/forge/Quality/index.js b/src/forge/Quality/index.js index 023c1879..1297da98 100644 --- a/src/forge/Quality/index.js +++ b/src/forge/Quality/index.js @@ -5,7 +5,7 @@ import codesmell from '../Images/quality/codesmell.svg' import bug from '../Images/quality/bug.svg' import semibold from '../Images/quality/semibold.svg' import bugRed from '../Images/quality/bug-red.svg' -import {Button, Spin} from "antd"; +import {Button, Spin, Empty} from "antd"; import axios from "axios"; import './index.scss' @@ -13,7 +13,7 @@ function Quality(props){ var timer = null; const { projectsId , owner } = props.match.params; const [sonarList,setSonarList] = useState({}) //问题列表分析 - const [statuts,setStatus] = useState(2) + const [statuts,setStatus] = useState(-1) const [questionList,setQuestionList] = useState([]) //对应问题列表 const [isDetail,setDetail] = useState(false) // 是否为查看对应问题 const [codeDetailValue,setCodeDetailValue] = useState({}) //问题详情 单个数据 @@ -26,11 +26,14 @@ function Quality(props){ "MAJOR":"一般缺陷", } useEffect(()=>{ - timer = setInterval(()=>{ - getTask() - },3000) + getTask() },[]) + useEffect(()=>{ + // 拦截判断是否离开当前页面 + window.addEventListener('beforeunload', beforeunload); + },[]) + useEffect(()=>{ if(indexValue){ // document.getElementById('htmlDOM').innerHTML @@ -46,28 +49,35 @@ function Quality(props){ axios.get(`/${owner}/${projectsId}/sonar_tasks.json`) .then(({data:{data,message,status}}) => { if(status===-1){ - setStatus(2) - getTaskData() + setStatus(-1) } if(status === 0){ setSonarList(data) + clearInterval(timer) if(data.complete_status === 1) { setStatus(0) - clearInterval(timer) + getTaskDetail(data.task_id) + } + if(data.complete_status === 0){ + setStatus(2) + timer = setInterval(()=>{ + getTask() + },5000) } - getTaskDetail(data.task_id) } }).catch(function (error) { console.log(error); }); } + const beforeunload = (e) => { + console.log('我被切换了'); + } const getTaskData = () => { axios.post(`/${owner}/${projectsId}/sonar_tasks.json`) .then(({data:{data,message,status}}) => { if(status===0){ - setStatus(2) getTask() } }).catch(function (error) { @@ -85,10 +95,8 @@ function Quality(props){ }); } const handlecheck = () => { - if(statuts === 2 || statuts === -1 ) return - timer = setInterval(()=>{ - getTask() - },3000) + if(statuts === 2 ) return + getTaskData() setStatus(2) } const getCodeDetailData = (item,index) => { @@ -143,8 +151,7 @@ function Quality(props){
缺陷类型:{severityList[item.severity]}line:{item.line}行
- }):
正在检测中,可能需要几分钟...
} - + }):
{statuts === -1?:正在检测中,可能需要几分钟...}
} :