jhbigscreen/src/api/buildNode/index.js

132 lines
3.7 KiB
JavaScript
Raw Normal View History

2023-08-20 00:25:52 +08:00
import request from "@/utils/request";
import { tryToJson } from "../../utils/tools";
import $dt from "dayjs";
// 节点计划预警
const selectScheduledAlerts = (data) => {
return request({
url: "bgscreen/projectBuildNode/selectScheduledAlerts",
method: "post",
data: data,
});
};
// 获取当前节点及叶子节点
const selectCurrent = (data) => {
return request({
url: "bgscreen/projectBuildNode/selectCurrent",
method: "post",
data: data,
});
};
const listByProject=(projectId)=>{
return new Promise(resolve=>{
request({
url: `bgscreen/projectBuildNode/listByProject?projectId=${projectId}`,
method: "get",
}).then(d=>{
let tmps = (d.data || []).map(it => {
it.lvl = it.baseBuildNode.nodeLvl;
it.parentLvl = it.lvl.substring(0, it.lvl.length - 2);
it.nodeText = it.baseBuildNode.nodeText;
it.file = tryToJson(it.files, []);
it.expend=true;
return it;
});
let objs = tmps.filter(d => d.parentLvl.length == 0);
objs.forEach(it => {
it.children = tmps.filter(item => item.parentLvl == it.lvl)
it.children.forEach(item => {
item.children = tmps.filter(item3 => item3.parentLvl == item.lvl);
});
})
resolve(objs);
})
});
}
const covertData = (objs) => {
let tmps = objs.map((it) => {
it.lvl = it.baseBuildNode.nodeLvl;
it.parentLvl = it.lvl.substring(0, it.lvl.length - 2);
it.nodeText = it.baseBuildNode.nodeText;
it.file = tryToJson(it.files, []);
return it;
});
return tmps.map((it) => {
let dt0 = +$dt($dt(new Date()).format("YYYY-MM-DD")); //当时时间
let dt1 = it.planStartDate ? +$dt(it.planStartDate) : 0; //计划开始
let dt2 = it.planEndDate ? +$dt(it.planEndDate) : 0; //计划结束
let dt3 = it.startDate ? +$dt(it.startDate) : 0; //实际开始
let dt4 = it.endDate ? +$dt(it.endDate) : 0; //实际结束
if (it.lvl.length == 2) {
if (!it.planStartDate || !it.planEndDate) {
it.finish = "";
it.finishState = -1;
return it;
}
if (it.endDate) {
if (dt4 > dt2) {
it.finishState = 1;
it.finish = "逾期" + (dt4 - dt2) / 3600 / 1000 / 24 + "天";
} else {
it.finish = "正常完工";
it.finishState = 3;
}
} else {
if (it.startDate) {
if (dt2 >= dt0) {
it.finish = "进行中";
it.finishState = 2;
} else {
it.finishState = 1;
it.finish = "逾期" + (dt2 - dt0) / 3600 / 1000 / 24 + "天";
}
} else {
it.finish = "未开工";
it.finishState = 4;
}
}
} else {
if (!it.planStartDate &&!it.planEndDate &&!it.startDate &&!it.endDate) {
it.finish = "";
it.finishState = -1;
return it;
}
if (it.planStartDate && !it.startDate) {
it.finish = "未开工";
it.finishState = 4;
return it;
}
if (!it.endDate) {
it.finish = "进行中";
it.finishState = 2;
}
if(it.endDate && !it.planEndDate){
it.finish = "正常完工";
it.finishState = 3;
return it;
}
if(it.endDate && it.planEndDate){
if(dt4>dt2){
it.finishState = 1;
it.finish = "逾期" + (dt4 - dt2) / 3600 / 1000 / 24 + "天";
} else {
it.finish = "正常完工";
it.finishState = 3;
}
}
}
return it;
});
};
export default {
selectScheduledAlerts,
selectCurrent,
covertData,
listByProject
};