diff --git a/src/forge/Server/measurement/fetch.js b/src/forge/Server/measurement/fetch.js
deleted file mode 100644
index fc80a988..00000000
--- a/src/forge/Server/measurement/fetch.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import javaFetch from "./javaFetch";
-// let settings = localStorage && localStorage.chromesetting && localStorage.chromesetting !=="undefined" && JSON.parse(localStorage.chromesetting);
-// let actionUrl = settings && settings.common.softbot;
-let actionUrl = 'http://60.205.224.11:8060';
-
-const service = javaFetch("");
-export const httpUrl = actionUrl;
-export default service;
\ No newline at end of file
diff --git a/src/forge/Server/measurement/index.jsx b/src/forge/Server/measurement/index.jsx
index 4b50b9c5..b203275a 100644
--- a/src/forge/Server/measurement/index.jsx
+++ b/src/forge/Server/measurement/index.jsx
@@ -10,11 +10,13 @@ import person from '../img/person.png';
import Rader from './componet/radar';
import Indicator from './componet/indicator';
import { scoreComp , field , firstData , colorsField, secondData , subField , thirdData } from './config';
-import { getMainScore , getChange } from './api';
+import axios from "axios";
+import cookie from 'react-cookies';
// import res from './xiuos.json';
function Index(props){
+ const [ dataLoading , setDataLoading ] = useState(true);
const [cardIndex, setCardIndex] = useState(firstData[0]);
const [ subCardIndex, setSubCardIndex] = useState(1);
const [ loading , setLoading ] = useState(false);
@@ -33,34 +35,50 @@ function Index(props){
let interval = undefined;
const count = useRef();
+
useEffect(()=>{
if(owner && projectsId){
- checkData();
+ console.log(cookie.load("opensource"));
+ if(cookie.load("opensource") && cookie.load("opensource")===`${owner}_${projectsId}`){
+ getReportStart();
+ }else{
+ checkData();
+ }
}
},[owner,projectsId])
// 根据接口判断是否已经生成数据报告
async function checkData(){
- getChange(owner,projectsId).then(res=>{
- if(res && res.statue === "YES"){
+ const url = `/v1/${owner}/${projectsId}/oss_health_measuring/can_get`;
+ axios(url).then(res=>{
+ if(res && res.data && res.data.statue === "YES"){
Init();
clearInterval(interval);
+ cookie.remove("opensource");
+ }else if(res && res.data && res.data.statue === "NO"){
+ setDataLoading(false);
}
})
}
- // 获取接口,整个页面数据都从此接口返回
+ // 获取数据接口
function Init(){
- getMainScore(owner,projectsId).then(res=>{
- if(res){
- setDatas(res);
- setScoreNormal(res && res.score);
- getlist(res && res.score);
+ const url = `/v1/${owner}/${projectsId}/oss_health_measuring/keyid`;
+ axios(url,{params:{
+ key_id:"score"
+ }}).then(res=>{
+ if(res && res.data){
+ let data = res.data;
+ setTimeout(()=>{setDataLoading(false)},300);
+ setDatas(data);
+ setScoreNormal(data);
+ getlist(data);
}
})
}
// 开始体验,定时调用接口
function getReportStart(){
+
setLoading(true);
count.current = 20;
checkData();
@@ -73,7 +91,7 @@ function Index(props){
} else {
//倒计时结束,提示繁忙
clearInterval(interval);
- setLoading(true);
+ setLoading(false);
props.showNotification("当前服务繁忙,请稍后再试");
}
}, 30000)
@@ -126,19 +144,20 @@ function Index(props){
return(
开源软件健康度量服务
+ { dataLoading &&
}
{
- !datas &&
+ !dataLoading && !datas &&
欢迎使用开源软件健康度量服务
开源软件健康度量服务是一种代码库分析工具,旨在通过深入分析代码库的关键活动数据来评估开源项目的健康状况。该服务通过收集和分析代码库中的贡献者、提交(commit)、合并请求(pullRequest)、疑修(issue)等数据指标,为项目开发者、维护者提供了一个全面的项目健康报告
- {!loading &&
}
+ {!loading &&
}
{ loading &&
服务报告生成中...
}
}
{
- datas &&
+ !dataLoading && datas &&
{
scoreNormal &&
@@ -224,7 +243,7 @@ function Index(props){
diff --git a/src/forge/Server/measurement/javaFetch.js b/src/forge/Server/measurement/javaFetch.js
deleted file mode 100644
index 4fc34077..00000000
--- a/src/forge/Server/measurement/javaFetch.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import { notification ,message} from 'antd';
-import axios from 'axios';
-
-// export const TokenKey = 'autologin_trustie';
-
-export default function javaFetch(actionUrl){
- if (window.location.href.indexOf('localhost') < 0) {
- axios.defaults.withCredentials = true;
- }
-
- // 创建axios实例
- const service = axios.create({
- baseURL: actionUrl,
- timeout: 1800000, // 请求超时时间
- });
-
- // request拦截器
-// service.interceptors.request.use(config => {
-// if (cookie.load(TokenKey)) {
-// config.headers['Authorization'] = cookie.load(TokenKey); // 让每个请求携带自定义token 请根据实际情况自行修改
-// }
-// if (window.location.port === "3007") {
-// // 模拟token为登录用户
-// const token = cookie.load(TokenKey);
-// if (config.url.indexOf('?') === -1) {
-// config.url = `${config.url}?token=${token}`;
-// } else {
-// config.url = `${config.url}&token=${token}`;
-// }
-// }
-// return config;
-// }, error => {
-// console.log(error);
-// });
- // respone拦截器
- service.interceptors.response.use(
- response => {
- const res = response||{};
- if (res.status === 400) {
- message.error(res.data.message || '操作失败');
- return Promise.reject('error');
- }
- if (res.status === 401) {
- message.error(res.data.message || '登录信息已过期');
- return Promise.reject('error');
- }
- if (res.status === 403) {
- message.error(res.data.message || '无权限!');
- return Promise.reject('error');
- }
- if (res.status === 40001) {
- notification.open({
- message: "提示",
- description: '账户或密码错误!',
- });
- return Promise.reject('error');
- }
- if (response.status !== 200 && res.status !== 200) {
- notification.open({
- message: "提示",
- description: res.message,
- });
- } else {
- return response.data;
- }
- },
- error => {
- let res = error.response||{};
- if (res.status === 400) {
- message.error(res.data.message || '操作失败');
- return Promise.reject('error');
- }
- if (res.status === 401) {
- message.error(res.data.message || '登录信息已过期');
- return Promise.reject('error');
- }
- if (res.status === 403) {
- message.error(res.data.message || '无权限!');
- return Promise.reject('error');
- }
- notification.open({
- message: "提示",
- description: error.message,
- });
- return Promise.reject(error);
- }
- );
-
-
- return service;
-}
\ No newline at end of file