diff --git a/src/api/buildNode/index.js b/src/api/buildNode/index.js index 4e0ae23..c197d44 100644 --- a/src/api/buildNode/index.js +++ b/src/api/buildNode/index.js @@ -220,14 +220,18 @@ const covertData = (objs) => { * @param {*} data * @returns */ -const countCompletionRate = (data) => { +const countCompletionRate = (data,prjs) => { return new Promise((resolve) => { + if(!prjs || prjs.length==0){ + resolve([]); + return; + } request({ url: "bgscreen/projectBuildNode/countCompletionRate", method: "post", data: data, - }).then((d) => { - let tmps = (d.data || []).map((it) => { + }).then((d) => { + let tmps = (d.data || []).map((it) => { it.lvl = it.baseBuildNode.nodeLvl; it.projectName = it.project?.projectName || ""; it.parentLvl = it.lvl.substring(0, it.lvl.length - 2); @@ -238,8 +242,17 @@ const countCompletionRate = (data) => { it.percent = (((it.nodeId * 100.0) / it.id) * 1.0).toFixed(2); } return it; - }).sort((a,b)=>b.percent-a.percent); - resolve(tmps); + }).sort((a,b)=>a.projectId-b.projectId); + let retTmps=prjs.filter(it=>it.id>0).map(it=>{ + let o={...it}; + let finds=tmps.filter(item=>item.projectId==it.id); + if(finds.length>0){ + o={...it,...finds[0]}; + } + return o; + }); + + resolve(retTmps); }); }); }; diff --git a/src/pages/projectProgress.vue b/src/pages/projectProgress.vue index d008f66..1d93c08 100644 --- a/src/pages/projectProgress.vue +++ b/src/pages/projectProgress.vue @@ -526,12 +526,16 @@ export default { }, selectCompletionRate(){ let postData = {} + let prjs=[]; if (this.prjInfo.id == 0) { postData.id = this.dept.id; + prjs=this.projects||[]; } else { postData.projectId = this.prjInfo.id; - } - this.$api.buildNode.countCompletionRate(postData).then(d=>{ + prjs=[this.prjInfo]; + } + + this.$api.buildNode.countCompletionRate(postData,prjs).then(d=>{ this.completionData=d||[]; }) },