From 7915221e817ef309b2250f4f1d827ca52a835b39 Mon Sep 17 00:00:00 2001 From: haha Date: Sat, 26 Aug 2023 12:46:38 +0800 Subject: [PATCH] update code --- src/api/buildNode/index.js | 203 ++++++++++++++++++++-------------- src/pages/index.vue | 9 +- src/pages/index/indexDlg2.vue | 85 +++++++++++--- src/pages/projectQuality.vue | 20 +++- 4 files changed, 212 insertions(+), 105 deletions(-) diff --git a/src/api/buildNode/index.js b/src/api/buildNode/index.js index e26f469..55271ec 100644 --- a/src/api/buildNode/index.js +++ b/src/api/buildNode/index.js @@ -2,74 +2,72 @@ import request from "@/utils/request"; import { tryToJson } from "../../utils/tools"; import $dt from "dayjs"; -const updateItemState=it=>{ +const updateItemState = (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.planStartDate){ - return ; + if (!it.planStartDate) { + return; } - if(it.endDate){ - if(!it.planEndDate){ + if (it.endDate) { + if (!it.planEndDate) { it.finish = "正常完成"; it.finishState = 3; return; } - if(dt4>dt2){ + if (dt4 > dt2) { it.finish = "逾期完成"; it.finishState = 1; - }else{ + } else { it.finish = "正常完成"; it.finishState = 3; } return; } - if(it.startDate){ - if(!it.planEndDate){ + if (it.startDate) { + if (!it.planEndDate) { it.finish = "进行中"; it.finishState = 2; return; } - if(dt2 { - return new Promise(resolve=>{ - request({ - url: "bgscreen/projectBuildNode/selectScheduledAlerts", - method: "post", - data: data, - }).then(d=>{ - let tmps = (d.data || []).map(it => { + return new Promise((resolve) => { + request({ + url: "bgscreen/projectBuildNode/selectScheduledAlerts", + method: "post", + data: data, + }).then((d) => { + let tmps = (d.data || []).map((it) => { it.lvl = it.baseBuildNode.nodeLvl; - it.projectName=it.project?.projectName||''; + it.projectName = it.project?.projectName || ""; it.parentLvl = it.lvl.substring(0, it.lvl.length - 2); it.nodeText = it.baseBuildNode.nodeText; it.file = tryToJson(it.files, []); updateItemState(it); return it; + }); + resolve(tmps); }); - resolve(tmps); }); -}); }; // 获取当前节点及叶子节点 @@ -81,34 +79,62 @@ const selectCurrent = (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; - updateItemState(it); - 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.planStartDate && item3.parentLvl == item.lvl ); - }); - it.children=it.children.filter(item=>item.children.length>0||item.planStartDate); - }) - resolve(objs); - }) +const toTree = (nodes) => { + let tmps = nodes.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; + updateItemState(it); + 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.planStartDate && item3.parentLvl == item.lvl + ); }); -} + it.children = it.children.filter( + (item) => item.children.length > 0 || item.planStartDate + ); + }); + return objs; +}; + +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; + updateItemState(it); + 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.planStartDate && item3.parentLvl == item.lvl + ); + }); + it.children = it.children.filter( + (item) => item.children.length > 0 || item.planStartDate + ); + }); + resolve(objs); + }); + }); +}; const covertData = (objs) => { let tmps = objs.map((it) => { @@ -191,59 +217,70 @@ const covertData = (objs) => { /** * 节点完成率统计 - * @param {*} data - * @returns + * @param {*} data + * @returns */ -const countCompletionRate=data=>{ - return new Promise(resolve=>{ +const countCompletionRate = (data) => { + return new Promise((resolve) => { request({ - url: "bgscreen/projectBuildNode/countCompletionRate", - method: "post", - data: data, - }).then(d=>{ - let tmps=(d.data||[]).map(it=>{ + url: "bgscreen/projectBuildNode/countCompletionRate", + method: "post", + data: data, + }).then((d) => { + let tmps = (d.data || []).map((it) => { it.lvl = it.baseBuildNode.nodeLvl; - it.projectName=it.project?.projectName||''; + it.projectName = it.project?.projectName || ""; it.parentLvl = it.lvl.substring(0, it.lvl.length - 2); it.nodeText = it.baseBuildNode.nodeText; it.file = tryToJson(it.files, []); - it.percent=0; - if(+it.id>0){ - it.percent=(it.nodeId*100.0/it.id*1.0).toFixed(2); + it.percent = 0; + if (+it.id > 0) { + it.percent = (((it.nodeId * 100.0) / it.id) * 1.0).toFixed(2); } return it; - }) + }); resolve(tmps); - - }); + }); }); -} +}; -const queryByProjectType=type=>{ - return new Promise(resolve=>{ +const queryByProjectType = (type) => { + return new Promise((resolve) => { request({ - url: "bgscreen/projectBuildNode/queryByProjectType?type="+type, - method: "get" - }).then(d=>{ - let tmps = (d.data || []).map(it => { + url: "bgscreen/projectBuildNode/queryByProjectType?type=" + type, + method: "get", + }).then((d) => { + resolve(toTree(d.data || [])); + }); + }); +}; + + +const queryByProjectTypeNoTree = (type) => { + return new Promise((resolve) => { + request({ + url: "bgscreen/projectBuildNode/queryByProjectType?type=" + type, + method: "get", + }).then((d) => { + let tmps = (d.data || []).map((it) => { it.lvl = it.baseBuildNode.nodeLvl; - it.projectName=it.project?.projectName||''; + it.projectName = it.project?.projectName || ""; it.parentLvl = it.lvl.substring(0, it.lvl.length - 2); it.nodeText = it.baseBuildNode.nodeText; - it.file = tryToJson(it.files, []); updateItemState(it); return it; - }); - resolve(tmps); + }); + resolve(tmps); }); }); -} - +}; export default { selectScheduledAlerts, selectCurrent, covertData, listByProject, countCompletionRate, - queryByProjectType + queryByProjectType, + queryByProjectTypeNoTree, + toTree }; diff --git a/src/pages/index.vue b/src/pages/index.vue index 758ce3c..397fcbd 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -47,7 +47,7 @@ - +
在岗人数
今日出勤
@@ -231,6 +231,7 @@ export default { }, data() { return { + elDeptWorks:0, prj:{}, prjs:[], elSumKey:0, @@ -604,7 +605,7 @@ export default { let deptId = this.deptInfo?.id||0; if (this.infoNav == 0) { //查询在岗人数 - this.$api.attendance.getDeptWorksList(deptId).then(d => { + this.$api.attendance.getDeptWorksList(deptId,this.prj.id).then(d => { this.laborPersonnelTotal=0; this.laborPersonnelData=[{text: "劳务人员", value: 0},{text: "监理人员", value: 0},{text: "总包人员", value: 0}]; if(d.rows.length>0 && d.rows[0]!=null){ @@ -615,7 +616,8 @@ export default { this.laborPersonnelData.push({text: "监理人员", value: d.rows[0].supervisorPersonnel}); this.laborPersonnelTotal += d.rows[0].contractorPersonnel; this.laborPersonnelData.push({text: "总包人员", value: d.rows[0].contractorPersonnel}); - } + } + this.elDeptWorks++; }); } else { //查询出勤人数 @@ -631,6 +633,7 @@ export default { this.laborPersonnelTotal += d.rows[0].contractorPersonnel; this.laborPersonnelData.push({text: "总包人员", value: d.rows[0].contractorPersonnel}); } + this.elDeptWorks++; }); } }, diff --git a/src/pages/index/indexDlg2.vue b/src/pages/index/indexDlg2.vue index 44d5972..7a16a64 100644 --- a/src/pages/index/indexDlg2.vue +++ b/src/pages/index/indexDlg2.vue @@ -64,13 +64,34 @@ {{ it.constructionProgress }}
-
- 目前进展: -
- - {{ d.nodeText}}:{{d.finish }} - +
+
目前进展:
+
+
+
暂无.
@@ -181,13 +202,13 @@ export default { quarterly:q }), this.$api.schedule.selectByProjectType(n), - this.$api.buildNode.queryByProjectType(n) + this.$api.buildNode.queryByProjectTypeNoTree(n) ]; this.$api.http.all(ajaxs).then(res=>{ let prjs=res[0].data||[]; let tmps=res[1].data||[]; let nodes=res[2]||[]; - let findNodes=['01','02','03','04','05'] + let findNodes=['01','02','03','04','05']; this.tableData=prjs.map(it=>{ it.projectName=it.project?.projectName||''; it.projectSchedule=it.project?.projectSchedule||'1'; @@ -195,7 +216,8 @@ export default { if(objs.length>0){ it.existingProblem=objs[0].existingProblem||''; } - it.nodes=nodes.filter(item=>item.finish && item.projectId==it.id && findNodes.includes(item.lvl.substring(0,2))); + let nds=nodes.filter(item=>item.finish && item.projectId==it.id && findNodes.includes(item.lvl.substring(0,2))); + it.nodes=this.$api.buildNode.toTree(nds); return it; }) }) @@ -252,11 +274,10 @@ export default { line-height: 64px; } - .sp-lbl { - width: 140px; - + .sp-lbl { + white-space: nowrap; &.sp-lbl2 { - width: 218px; + white-space: nowrap; } } @@ -268,6 +289,12 @@ export default { .data-row { line-height: 64px; + .td-lvl2{ + padding-left: 36px; + } + .td-lvl3{ + padding-left: 72px; + } } } } @@ -287,10 +314,10 @@ export default { } .sp-lbl { - width: 140px; + white-space: nowrap; &.sp-lbl2 { - width: 218px; + white-space: nowrap; } } @@ -302,6 +329,12 @@ export default { .data-row { line-height: 48px; + .td-lvl2{ + padding-left: 24px; + } + .td-lvl3{ + padding-left: 48px; + } } } } @@ -324,7 +357,7 @@ export default { } .popup-project-introduction-min { transform: translateY(100px); - .node-list{ + .node-list{ .node-item{ &::after{ content: ","; @@ -335,6 +368,14 @@ export default { } } } + .table-lvl1{ + border-collapse: collapse; + border:solid 1px #fff; + td{ + vertical-align: top; + white-space: nowrap; + } + } } .data-item { border-bottom: solid 1px #fff; @@ -344,6 +385,7 @@ export default { .sp-lbl { display: inline-block; color: aquamarine; + white-space: nowrap; } .data-row { @@ -364,6 +406,17 @@ export default { border-bottom: solid 1px rgba(255, 255, 255, 0.1); padding: 4px 0px; + &.data-node{ + img{ + top:4px; + } + } + .td-lvl2{ + padding-left: 12px; + } + .td-lvl3{ + padding-left: 24px; + } } img { diff --git a/src/pages/projectQuality.vue b/src/pages/projectQuality.vue index 8fbba97..fa80b45 100644 --- a/src/pages/projectQuality.vue +++ b/src/pages/projectQuality.vue @@ -138,11 +138,12 @@ -
+
混泥土工程
二次构建工程
房间尺寸
抹灰工程
+
其它
{ + this.measuredTotal+=it.value; + }) this.elCheck++; }) }, @@ -615,5 +624,10 @@ export default { .hide-scroll>.screen-one-3-1{ overflow: hidden; } + .measured-data-list{ + &>div{ + padding:0px 8px; + } + } } \ No newline at end of file