feat: 定时任务的处理

This commit is contained in:
herman94 2022-07-20 18:10:25 +08:00
parent 44edd530fc
commit 5dfe4b2350
1 changed files with 23 additions and 16 deletions

View File

@ -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){
<div className="message-item-content-serverity">缺陷类型{severityList[item.severity]}<span className="ml15">line{item.line}</span></div>
</div>
</div>
}):<div className="empty-status"><Spin size="large" >正在检测中,可能需要几分钟...</Spin></div>}
}):<div className="empty-status">{statuts === -1?<Empty/>:<Spin size="large" >正在检测中,可能需要几分钟...</Spin>}</div>}
</div>
</div>:
<div className="wrap-code">