From 3b5fcfdee2c03ac8020029b882a1e74aaa42cef6 Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Fri, 8 Nov 2024 10:15:43 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=BA=90=E5=BA=A6=E9=87=8F-projectAct?=
=?UTF-8?q?ivity=E2=80=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Server/measurement/componet/companyData.jsx | 5 ++++-
src/forge/Server/measurement/config.js | 14 ++++++++------
src/forge/Server/measurement/dimension.jsx | 9 ++++-----
3 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/src/forge/Server/measurement/componet/companyData.jsx b/src/forge/Server/measurement/componet/companyData.jsx
index 5f5c34e24..0f8f32a73 100644
--- a/src/forge/Server/measurement/componet/companyData.jsx
+++ b/src/forge/Server/measurement/componet/companyData.jsx
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
import StackImg from './stackImg';
import Pie from './pie';
import { Select } from 'antd';
+import Nodata from '../../../Nodata';
function CompanyData({ data }){
@@ -102,7 +103,7 @@ function CompanyData({ data }){
},[c4])
return(
-
+ (!c1 && !c2 && !c3 && !c4) ?
{
c1userValue && c1userDrop && c1userDrop.length>0 &&
@@ -161,6 +162,8 @@ function CompanyData({ data }){
+ :
+
)
}
export default CompanyData;
\ No newline at end of file
diff --git a/src/forge/Server/measurement/config.js b/src/forge/Server/measurement/config.js
index dc264cca6..cfd2f8a44 100644
--- a/src/forge/Server/measurement/config.js
+++ b/src/forge/Server/measurement/config.js
@@ -17,7 +17,7 @@ export const subField={
项目影响:"influence"
}
export const thirdData = {
- developmentEfficiency:["PRNum","PRTime","commitNum","issueTime","individualHistory"],
+ developmentEfficiency:["PRNum","PRTime","commitNum","issueTime","ProjectActivity"],
developmentQuality:["commitMessageQuality","issueNum"],
individual:["individualLoss","individualNum","longTermIndividualNum"],
company:["companyLead","companyLoss","companyNum","longTermCompanyNum"],
@@ -30,7 +30,7 @@ export const fieldData = {
issueTime:"Issue处理间隔",
commitMessageQuality:"Commit message质量",
issueNum:"Issue数量",
- individualHistory:"项目活跃度",
+ ProjectActivity:"项目活跃度",
individualLoss:"长期贡献者稳定性",
individualNum:"活跃开发者占比",
longTermIndividualNum:"长期贡献者占比",
@@ -53,10 +53,12 @@ export const detailByName={
PR数量:{desc:"通过分析项目每月提交的PR数量对PR数量指标进行度量"},
PR处理间隔:{desc:"通过分析每个月新增PR的平均处理间隔对PR处理间隔(小时)指标进行度量"},
Issue处理间隔:{desc:"通过分析每个月新增Issue的平均处理间隔对Issue处理间隔(小时)指标进行度量"},
- 活跃开发者占比:{desc:"通过分析每个月活跃的活跃开发者占比数量对活跃开发者指标进行度量"},
- 项目活跃度:{desc:"不同类型的贡献者每月/周给master分支的贡献次数",month:true,user_login:true},
- 长期贡献者占比:{desc:"通过分析每个月活跃的长期个体贡献者数量对长期个体贡献者数量指标进行度量"},
- 长期贡献者稳定性:{desc:"通过分析具体的即将流失的长期贡献者流失概率对个体贡献者稳定性指标进行度量",bar:true},
+
+ 活跃开发者占比:{desc:"通过分析每个月活跃的个体贡献者数量对个体贡献者数量指标进行度量",descTitle:"个体贡献者数量"},//个体贡献者数量
+ 项目活跃度:{desc:"不同类型的贡献者每月/周给master分支的贡献次数",month:true,user_login:true,descTitle:"所有个体开发者贡献历史"},//所有个体开发者贡献历史
+ 长期贡献者占比:{desc:"通过分析每个月活跃的长期个体贡献者数量对长期个体贡献者数量指标进行度量",descTitle:"长期个体贡献者数量"},//长期个体贡献者数量
+ 长期贡献者稳定性:{desc:"通过分析具体的即将流失的长期贡献者流失概率对个体贡献者流失预测指标进行度量",bar:true,descTitle:"个体贡献者流失预测"},//个体贡献者流失预测
+
公司贡献者数量:{desc:"通过分析每月做出了贡献的公司贡献者数量对公司贡献者数量指标进行度量"},
长期公司贡献者数量:{desc:"通过分析每月的长期对项目做出贡献的公司贡献者数量对长期公司贡献者数量指标进行度量"},
公司主导:{desc:"从每月公司贡献占比、每月公司总贡献、每月公司贡献最高模块中总贡献、公司总提交数四个方面对公司主导指标进行度量",radar:true},
diff --git a/src/forge/Server/measurement/dimension.jsx b/src/forge/Server/measurement/dimension.jsx
index 4b24dea60..94045c8c4 100644
--- a/src/forge/Server/measurement/dimension.jsx
+++ b/src/forge/Server/measurement/dimension.jsx
@@ -63,16 +63,15 @@ function Dimension(props){
}
let data = res && res.data;
if(data){
+ console.log(data.score);
let d = data[t] ? data[t].value : data.value;
- let s = data.score || data[t].score;
+ let s = data.score !== undefined ? data.score : data[t].score;
setData(d);
if(t==="companyLoss"){
d = d.map(i=>{return { month:i.Company , count : (i["Predicted State"] || 0.0)}});
- console.log(d);
setData(d);
}else if(t === "companyNum" || t === "longTermCompanyNum" || t==="companyLead"){
- d = [Object.assign(data.value)];
- console.log(d);
+ d = Object.keys(data.value).length === 0 ?[]:[Object.assign(data.value)];
setData(d);
}
setScore(s);
@@ -128,7 +127,7 @@ function Dimension(props){
-
{dValue}
+
{dValue && (detailByName[dValue.replace(/\s/g, '')].descTitle ? detailByName[dValue.replace(/\s/g, '')].descTitle : dValue)}
{dValue && detailByName[dValue.replace(/\s/g, '')].desc}
{
data && data.length > 0 ?