forked from Gitlink/forgeplus-react
feat: 定时任务的处理
This commit is contained in:
parent
44edd530fc
commit
5dfe4b2350
|
@ -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">
|
||||
|
|
Loading…
Reference in New Issue