From 939dd0b59cead3065fd92306f6d2c95fd1712b1c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 31 Oct 2024 18:25:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=BA=90=E5=BA=A6=E9=87=8F-=E5=88=9D?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/webpackDevServer.config.js | 15 +++- package.json | 2 +- src/forge/Server/Index.jsx | 4 +- src/forge/Server/measurement/api.js | 7 +- .../Server/measurement/componet/indicator.jsx | 3 +- .../Server/measurement/componet/stack.jsx | 1 + src/forge/Server/measurement/config.js | 2 +- src/forge/Server/measurement/fetch.js | 2 +- src/forge/Server/measurement/index.jsx | 90 ++++++++++++------- src/services/project.js | 10 +-- 10 files changed, 90 insertions(+), 46 deletions(-) diff --git a/config/webpackDevServer.config.js b/config/webpackDevServer.config.js index f12d31594..a4f3a2c57 100644 --- a/config/webpackDevServer.config.js +++ b/config/webpackDevServer.config.js @@ -80,7 +80,20 @@ module.exports = function(proxy, allowedHost) { disableDotRule: true, }, public: allowedHost, - proxy, + proxy:{ + "/api/OSS_Health_Measuring":{ + target: 'http://60.205.224.11:8060', + changeOrigin: true, + }, + "/api/OHM_can_get":{ + target: 'http://60.205.224.11:8060', + changeOrigin: true, + }, + "/api":{ + target: "https://testforgeplus.trustie.net", + changeOrigin: true, + } + }, before(app) { // This lets us open files from the runtime error overlay. app.use(errorOverlayMiddleware()); diff --git a/package.json b/package.json index e1f0cf371..f0c3872de 100644 --- a/package.json +++ b/package.json @@ -200,7 +200,7 @@ "eslintConfig": { "extends": "react-app" }, - "proxy": "http://60.205.224.11:8060", + "proxy": "https://testforgeplus.trustie.net", "port": "3007", "devDependencies": { "@babel/core": "^7.23.6", diff --git a/src/forge/Server/Index.jsx b/src/forge/Server/Index.jsx index 63c7ae1da..615af317d 100644 --- a/src/forge/Server/Index.jsx +++ b/src/forge/Server/Index.jsx @@ -46,11 +46,11 @@ function ServerIndex(props){ return(
- () } - > + > */} () diff --git a/src/forge/Server/measurement/api.js b/src/forge/Server/measurement/api.js index d733bb30e..e55778d89 100644 --- a/src/forge/Server/measurement/api.js +++ b/src/forge/Server/measurement/api.js @@ -8,10 +8,9 @@ export function getMainScore(owner,repo) { }); } -export function getCommit(params) { +export function getChange(owner,repo) { return fetch({ - url: `/api/commits`, - method: 'post', - data:params + url: `/api/OHM_can_get/${owner}/${repo}`, + method: 'get' }); } diff --git a/src/forge/Server/measurement/componet/indicator.jsx b/src/forge/Server/measurement/componet/indicator.jsx index 7fe3cedaa..32311bc6d 100644 --- a/src/forge/Server/measurement/componet/indicator.jsx +++ b/src/forge/Server/measurement/componet/indicator.jsx @@ -20,7 +20,8 @@ function Radar({data , subCardIndex}){ title: "指标名称", dataIndex: "name", render:(value)=>{ - return({fieldData[value]}) + // return({fieldData[value]}) + return fieldData[value] } }, { diff --git a/src/forge/Server/measurement/componet/stack.jsx b/src/forge/Server/measurement/componet/stack.jsx index e66dbc087..d0b53e957 100644 --- a/src/forge/Server/measurement/componet/stack.jsx +++ b/src/forge/Server/measurement/componet/stack.jsx @@ -17,6 +17,7 @@ function Stack(){ tooltip: { trigger: 'axis' }, + color:['#5871FF',"#FFBE38"], // legend: { // data: ['Email', 'Union Ads'] // }, diff --git a/src/forge/Server/measurement/config.js b/src/forge/Server/measurement/config.js index 370258a06..e9bafd316 100644 --- a/src/forge/Server/measurement/config.js +++ b/src/forge/Server/measurement/config.js @@ -46,7 +46,7 @@ export const fieldData = { } export const scoreComp = (score)=>{ - let value = parseInt(score); + let value = Math.round(score); return = 80 ? "#466aff" : (value<80 && value>=60) ? "#E18419" :"#F70202"}}>{value} } diff --git a/src/forge/Server/measurement/fetch.js b/src/forge/Server/measurement/fetch.js index a2e9af9bc..fc80a988a 100644 --- a/src/forge/Server/measurement/fetch.js +++ b/src/forge/Server/measurement/fetch.js @@ -3,6 +3,6 @@ import javaFetch from "./javaFetch"; // let actionUrl = settings && settings.common.softbot; let actionUrl = 'http://60.205.224.11:8060'; -const service = javaFetch(actionUrl); +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 3b3bbd12d..4b50b9c56 100644 --- a/src/forge/Server/measurement/index.jsx +++ b/src/forge/Server/measurement/index.jsx @@ -1,4 +1,4 @@ -import React, {useState, useEffect} from "react"; +import React, {useState, useEffect , useRef} from "react"; import './index.scss'; import Logo from '../img/logo4.png'; import { Button , Spin } from 'antd'; @@ -10,14 +10,16 @@ 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 , getCommit } from './api'; -import res from './xiuos.json'; +import { getMainScore , getChange } from './api'; +// import res from './xiuos.json'; function Index(props){ const [cardIndex, setCardIndex] = useState(firstData[0]); const [ subCardIndex, setSubCardIndex] = useState(1); - const { type , owner , projectsId } = props.match.params; + const [ loading , setLoading ] = useState(false); + + const { owner , projectsId } = props.match.params; const [ datas , setDatas ] = useState(); const [ scoreNormal , setScoreNormal ] = useState(); @@ -27,15 +29,56 @@ function Index(props){ const [ subMenus , setSubMenus ] = useState([]); const [ subDatas , setSubDatas ] = useState([]); - const [ fieldDatas , setFieldDatas ] = useState([]) - + const [ fieldDatas , setFieldDatas ] = useState([]); + let interval = undefined; + const count = useRef(); useEffect(()=>{ if(owner && projectsId){ - Init(); + checkData(); } },[owner,projectsId]) + // 根据接口判断是否已经生成数据报告 + async function checkData(){ + getChange(owner,projectsId).then(res=>{ + if(res && res.statue === "YES"){ + Init(); + clearInterval(interval); + } + }) + } + + // 获取接口,整个页面数据都从此接口返回 + function Init(){ + getMainScore(owner,projectsId).then(res=>{ + if(res){ + setDatas(res); + setScoreNormal(res && res.score); + getlist(res && res.score); + } + }) + } + // 开始体验,定时调用接口 + function getReportStart(){ + setLoading(true); + count.current = 20; + checkData(); + interval = setInterval(() => { + if (count.current > 1) { + let old = count.current; + count.current = old - 1; + console.log(count); + checkData(); + } else { + //倒计时结束,提示繁忙 + clearInterval(interval); + setLoading(true); + props.showNotification("当前服务繁忙,请稍后再试"); + } + }, 30000) + } + // 切换一级维度tab useEffect(()=>{ if(score && cardIndex){ @@ -67,20 +110,6 @@ function Index(props){ } },[cardIndex,score]) - // 获取接口,整个页面数据都从此接口返回 - function Init(){ - getMainScore(owner,projectsId).then(res=>{ - if(res){ - } - }) - // getCommit({owner,repo:projectsId}).then(res=>{ - - // }) - setDatas(res); - console.log(res); - setScoreNormal(res && res.score); - getlist(res && res.score); - } // 将一级维度的值转为数组 function getlist(values){ @@ -88,23 +117,24 @@ function Index(props){ return {name:i,...values[field[i]],color:colorsField[i]}; }) setScore(d); - let sn = d.reduce((sum, item) => parseInt(sum + parseInt(item.WeightedScore)), 0); + let sn = d.reduce((sum, item) => Math.round(sum + Math.round(item.WeightedScore)), 0); setScoreNum(sn); } + return(
开源软件健康度量服务
{ - false && + !datas &&

欢迎使用开源软件健康度量服务

-
开源软件健康度量服务是一种代码库分析工具,旨在通过深入分析代码库的关键活动数据来评估开源项目的健康状况。该服务通过收集和分析代码库中的贡献者、提交(commit)、合并请求(pulrequest)、疑修(issue)等数据指标,为项目开发者、维护者提供了一个全面的项目健康报告
+
开源软件健康度量服务是一种代码库分析工具,旨在通过深入分析代码库的关键活动数据来评估开源项目的健康状况。该服务通过收集和分析代码库中的贡献者、提交(commit)、合并请求(pullRequest)、疑修(issue)等数据指标,为项目开发者、维护者提供了一个全面的项目健康报告
- -
服务报告生成中...
+ {!loading && } + { loading &&
服务报告生成中...
}
} { @@ -129,7 +159,7 @@ function Index(props){
    {
  • - {parseInt(scoreNum)} + {Math.round(scoreNum)} 开源生态健康度
    { @@ -138,17 +168,17 @@ function Index(props){ }) }
    - {parseInt(scoreNum)}/100 + {Math.round(scoreNum)}/100
  • } { score.map((i,k)=>{ return(
  • - {parseInt(i.WeightedScore)} + {Math.round(i.WeightedScore)} {i.name}
    - {parseInt(i.WeightedScore)}/{i.Weight*100} + {Math.round(i.WeightedScore)}/{i.Weight*100}
  • ) }) diff --git a/src/services/project.js b/src/services/project.js index a64f371d2..1aa9345f1 100644 --- a/src/services/project.js +++ b/src/services/project.js @@ -3,11 +3,11 @@ import { url, zoneUrl } from '../ssrUrl'; let baseUrl = `${url}/api` let baseZoneUrl = `${zoneUrl}/api` -// if (__CLIENT__ ) { -// let settings = localStorage.chromesetting && localStorage.chromesetting !== 'undefined' &&JSON.parse(localStorage.chromesetting); -// baseUrl = settings && settings.common && settings.common.main_site_url ? `${settings.common.main_site_url}/api` : baseUrl; -// baseZoneUrl = settings ? `${settings && settings.common.zone}/api` : `${zoneUrl}/api`; -// } +if (__CLIENT__ ) { + let settings = localStorage.chromesetting && localStorage.chromesetting !== 'undefined' &&JSON.parse(localStorage.chromesetting); + baseUrl = settings && settings.common && settings.common.main_site_url ? `${settings.common.main_site_url}/api` : baseUrl; + baseZoneUrl = settings ? `${settings && settings.common.zone}/api` : `${zoneUrl}/api`; +} console.log("__CLIENT__",__CLIENT__,baseUrl); const axiosInstance = axios.create({