Compare commits

..

No commits in common. "db3b88db30a2586969951be5fa739e0f5ce5142a" and "5fbb80eb7caef9dc356cc6f70d6b4bf9280331d9" have entirely different histories.

8 changed files with 153 additions and 280 deletions

View File

@ -274,26 +274,6 @@ const queryByProjectTypeNoTree = (type) => {
}); });
}); });
}; };
const queryFinishProject=projectId=>{
return new Promise((resolve)=>{
request({
url: "bgscreen/projectBuildNode/queryFinishProject?projectId=" + projectId,
method: "get",
}).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);
it.nodeText = it.baseBuildNode.nodeText;
return it;
});
resolve(tmps);
})
});
}
export default { export default {
selectScheduledAlerts, selectScheduledAlerts,
selectCurrent, selectCurrent,
@ -302,6 +282,5 @@ export default {
countCompletionRate, countCompletionRate,
queryByProjectType, queryByProjectType,
queryByProjectTypeNoTree, queryByProjectTypeNoTree,
toTree, toTree
queryFinishProject
}; };

View File

@ -23,16 +23,12 @@ const selectYearAndMonth=(data)=> {
let totalObjs=tmps.filter(it=>it.costType==9); let totalObjs=tmps.filter(it=>it.costType==9);
let total=0; let total=0;
totalObjs.forEach(it=>{ totalObjs.forEach(it=>{
if(it.money){ total+=(it.money?it.money:0)
total+=it.money;
}
}); });
let yearObjs=tmps.filter(it=>it.costType==9 && it.year==y); totalObjs=tmps.filter(it=>it.costType==9 && it.year==y);
let totalY=0; let totalY=0;
yearObjs.forEach(it=>{ totalObjs.forEach(it=>{
if(it.money){ totalY+=(it.money?it.money:0)
totalY+=it.money;
}
}); });
let obj={ let obj={
totalInv:getValue(tmps,1).money||0,//总投资 totalInv:getValue(tmps,1).money||0,//总投资

View File

@ -17,7 +17,7 @@ import materialSeal from './materialSeal/index'
import costOut from './costOut/index' import costOut from './costOut/index'
import checkDetection from './checkDetection/index' import checkDetection from './checkDetection/index'
import video from './video/index' import video from './video/index'
import {axios,download} from '@/utils/request' import {axios} from '@/utils/request'
export default { export default {
project, project,
dept, dept,
@ -38,6 +38,5 @@ export default {
materialSeal, materialSeal,
checkDetection, checkDetection,
http:axios, http:axios,
video, video
downFile:download
} }

View File

@ -134,6 +134,7 @@ Vue.component("screen-header", {
}, },
//页面条状 //页面条状
pageJump(n,url){ pageJump(n,url){
debugger
if(n != this.nav){ if(n != this.nav){
if(url){ if(url){

View File

@ -31,6 +31,9 @@
<el-table-column prop="endTime" label="建成时限" width="100"> </el-table-column> <el-table-column prop="endTime" label="建成时限" width="100"> </el-table-column>
<el-table-column prop="taotal" label="总投资(万元)" width="120"> </el-table-column> <el-table-column prop="taotal" label="总投资(万元)" width="120"> </el-table-column>
<el-table-column prop="year" label="年度投资(万元)" width="120"> </el-table-column> <el-table-column prop="year" label="年度投资(万元)" width="120"> </el-table-column>
</el-table> </el-table>

View File

@ -22,8 +22,7 @@
<div class="company-img"><img src="images/company_11.png"></div> <div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">甲方代表</div> <div class="company-title">甲方代表</div>
<div class="company-text" :title="getPrjUser('甲方代表') || ''"> <div class="company-text" :title="getPrjUser('甲方代表')||''">{{getPrjUser('甲方代表')||' ' }}</div>
{{ getPrjUser('甲方代表') || ' ' }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -32,8 +31,7 @@
<div class="company-img"><img src="images/company_6.png"></div> <div class="company-img"><img src="images/company_6.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">项目等级</div> <div class="company-title">项目等级</div>
<div class="company-text" :title="getProjectLevel() || ''">{{ <div class="company-text" :title="getProjectLevel()||''">{{ getProjectLevel()||' ' }} </div>
getProjectLevel() || ' ' }} </div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -42,8 +40,7 @@
<div class="company-img"><img src="images/company_11.png"></div> <div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">项目经理</div> <div class="company-title">项目经理</div>
<div class="company-text" :title="getPrjUser('项目经理') || ''"> <div class="company-text" :title="getPrjUser('项目经理')||''">{{getPrjUser('项目经理')||' ' }}</div>
{{ getPrjUser('项目经理') || ' ' }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -52,8 +49,7 @@
<div class="company-img"><img src="images/company_11.png"></div> <div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">项目总监</div> <div class="company-title">项目总监</div>
<div class="company-text" :title="getPrjUser('总监') || ''"> <div class="company-text" :title="getPrjUser('总监')||''">{{getPrjUser('总监')||' ' }}</div>
{{ getPrjUser('总监') || ' ' }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -62,8 +58,7 @@
<div class="company-img"><img src="images/company_3.png"></div> <div class="company-img"><img src="images/company_3.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">总包单位</div> <div class="company-title">总包单位</div>
<div class="company-text" :title="getPrjUser('总包单位', '2') || ''"> <div class="company-text" :title="getPrjUser('总包单位','2')||''">{{getPrjUser('总包单位','2')||' ' }}</div>
{{ getPrjUser('总包单位', '2') || ' ' }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -72,8 +67,7 @@
<div class="company-img"><img src="images/company_10.png"></div> <div class="company-img"><img src="images/company_10.png"></div>
<div class="company-info"> <div class="company-info">
<div class="company-title">监理单位</div> <div class="company-title">监理单位</div>
<div class="company-text" :title="getPrjUser('监理单位', '4') || ''"> <div class="company-text" :title="getPrjUser('监理单位','4')||''">{{getPrjUser('监理单位','4')||' ' }}</div>
{{ getPrjUser('监理单位', '4') || ' ' }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -83,10 +77,8 @@
<module-one-1-1 label="劳务人员概况"> <module-one-1-1 label="劳务人员概况">
<div class="warning-info"> <div class="warning-info">
<div class="warning-info-title"> <div class="warning-info-title">
<div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0, '在岗人数')">在岗人数 <div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0, '在岗人数')">在岗人数</div>
</div> <div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤</div>
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤
</div>
</div> </div>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
@ -112,12 +104,10 @@
<el-col :span="8" class="col-img"> <el-col :span="8" class="col-img">
<template v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0"> <template v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0">
<div class="data-img" style="margin-top: 0px;"> <div class="data-img" style="margin-top: 0px;">
<el-image :src="scheduleInfo.images[0]" <el-image :src="scheduleInfo.images[0]" :preview-src-list="scheduleInfo.images"/>
:preview-src-list="scheduleInfo.images" />
</div> </div>
<div class="data-img" v-if="scheduleInfo.images.length > 1"> <div class="data-img" v-if="scheduleInfo.images.length > 1">
<el-image :src="scheduleInfo.images[1]" <el-image :src="scheduleInfo.images[1]" :preview-src-list="scheduleInfo.images" />
:preview-src-list="scheduleInfo.images" />
</div> </div>
</template> </template>
<div v-else style="text-align: center;"> <div v-else style="text-align: center;">
@ -126,40 +116,40 @@
</div> </div>
</el-col> </el-col>
<el-col :span="16" class="col-data"> <el-col :span="16" class="col-data">
<template v-if="getCurProject().projectType == 1" > <template v-if="getCurProject().projectType==1" >
<div class="data-label">施工进展:</div> <div class="data-label">施工进展:</div>
<div class="data-text scroll" style="max-height: 220px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 220px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.constructionProgress || '暂无' : '暂无' }} {{ scheduleInfo ? scheduleInfo.constructionProgress || '暂无' : '暂无' }}
</div> </div>
</template> </template>
<template v-if="getCurProject().projectType == 2" > <template v-if="getCurProject().projectType==2" >
<div class="data-label">报建设计进展:</div> <div class="data-label">报建设计进展:</div>
<div class="data-text scroll" style="max-height: 110px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 110px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.designProgress || '暂无' : '暂无' }}</div> {{ scheduleInfo ? scheduleInfo.designProgress || '暂无' : '暂无' }}</div>
<div class="data-label">融资招采进展:</div> <div class="data-label">融资招采进展:</div>
<div class="data-text scroll" style="max-height: 110px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 110px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.purchaseProgress || '暂无' : '暂无' }}</div> {{ scheduleInfo ? scheduleInfo.purchaseProgress || '暂无' : '暂无' }}</div>
</template> </template>
<template v-if="getCurProject().projectType == 3" ></template> <template v-if="getCurProject().projectType==3" ></template>
<template v-if="getCurProject().projectType == 4" > <template v-if="getCurProject().projectType==4" >
<div class="data-label">验收进展:</div> <div class="data-label">验收进展:</div>
<div class="data-text scroll" style="max-height: 70px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 70px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.acceptanceProgress || '暂无' : '暂无' }}</div> {{ scheduleInfo ? scheduleInfo.acceptanceProgress || '暂无' : '暂无' }}</div>
<div class="data-label">结算进展:</div> <div class="data-label">结算进展:</div>
<div class="data-text scroll" style="max-height: 70px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 70px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.purchaseProgress || '暂无' : '暂无' }}</div> {{ scheduleInfo ? scheduleInfo.purchaseProgress || '暂无' : '暂无' }}</div>
<div class="data-label">运维进展:</div> <div class="data-label">运维进展:</div>
<div class="data-text scroll" style="max-height: 70px; overflow-y: auto;"> <div class="data-text scroll" style="max-height: 70px; overflow-y: auto;">
{{ scheduleInfo ? scheduleInfo.designProgress || '暂无' : '暂无' }}</div> {{ scheduleInfo ? scheduleInfo.designProgress || '暂无' : '暂无' }}</div>
</template> </template>
</el-col> </el-col>
</el-row> </el-row>
</module-one-1-1> </module-one-1-1>
</el-col> </el-col>
<el-col :span="12" :key="'co' + elCostOut"> <el-col :span="12" :key="'co'+elCostOut">
<div class="modify-project-amount" @mouseout="costMouseout" @mouseover="costMouseover"> <div class="modify-project-amount" @mouseout="costMouseout" @mouseover="costMouseover">
<div class="modify-btn"><img src="images/foot_left.png" @click="modifyLeftBtn"></div> <div class="modify-btn"><img src="images/foot_left.png" @click="modifyLeftBtn"></div>
<div class="modify-content" id="modifyContent"> <div class="modify-content" id="modifyContent">
@ -181,7 +171,7 @@
</svg> </svg>
总投资 总投资
</p> </p>
<div><span>{{ costOut.totalInv || 0 }}</span> 万元</div> <div><span>{{ costOut.totalInv||0 }}</span> 万元</div>
</div> </div>
</div> </div>
</div> </div>
@ -200,7 +190,7 @@
fill="#070102" p-id="15830"></path> fill="#070102" p-id="15830"></path>
</svg> </svg>
本月完成</p> 本月完成</p>
<div><span>{{ costOut.curMonth || 0 }}</span> 万元</div> <div><span>{{costOut.curMonth||0}}</span> 万元</div>
</div> </div>
</div> </div>
</div> </div>
@ -221,7 +211,7 @@
</svg> </svg>
本年完成 本年完成
</p> </p>
<div><span>{{ costOut.totalYear || 0 }}</span> 万元</div> <div><span>{{costOut.totalY||0}}</span> 万元</div>
</div> </div>
</div> </div>
</div> </div>
@ -242,7 +232,7 @@
</svg> </svg>
开累完成 开累完成
</p> </p>
<div><span>{{ costOut.totalMonth || 0 }}</span> 万元</div> <div><span>{{costOut.totalMonth||0}}</span> 万元</div>
</div> </div>
</div> </div>
</div> </div>
@ -287,8 +277,7 @@
</svg> </svg>
计划开工日期 计划开工日期
</p> </p>
<div><span>{{ fmtDate(getCurProject().scheduledStartTime || '') }}</span> <div><span>{{ getCurProject().scheduledStartTime||'' }}</span></div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -333,8 +322,7 @@
</svg> </svg>
计划竣工日期 计划竣工日期
</p> </p>
<div><span>{{ fmtDate(getCurProject().plannedCompletionTime || '') }}</span> <div><span>{{ getCurProject().plannedCompletionTime||'' }}</span></div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -379,7 +367,7 @@
</svg> </svg>
实际开工日期 实际开工日期
</p> </p>
<div><span>{{ fmtDate(getCurProject().actualOperatingTime) }}</span></div> <div><span>{{ getCurProject().actualOperatingTime|formatDate }}</span></div>
</div> </div>
</div> </div>
</div> </div>
@ -424,7 +412,7 @@
</svg> </svg>
合同工期 合同工期
</p> </p>
<div><span>{{ getCurProject().projectTimeLimit || '-' }}</span> </div> <div><span>{{ getCurProject().projectTimeLimit||'-' }}</span> </div>
</div> </div>
</div> </div>
</div> </div>
@ -458,9 +446,8 @@
</div> </div>
<div class="aerial-view-max"> <div class="aerial-view-max">
<div class="aerial-view-min"> <div class="aerial-view-min">
<iframe v-if="mapName" :src="'maps/' + mapName" style="width:100%;height:100%;border:none;" <iframe v-if="mapName" :src="'maps/'+mapName" style="width:100%;height:100%;border:none;" frameborder="0"></iframe>
frameborder="0"></iframe> <img v-else :src="'images/830.png'" >
<img v-else :src="'images/830.png'">
</div> </div>
</div> </div>
<module-one-1-2 label="项目节点计划预警"> <module-one-1-2 label="项目节点计划预警">
@ -495,32 +482,19 @@
<el-col :span="6"> <el-col :span="6">
<module-one-1-1 label="项目成果"> <module-one-1-1 label="项目成果">
<div class="warning-info-title" style="padding-left: 20px;"> <div class="warning-info-title" style="padding-left: 20px;">
<div :class="prjResNav == '03' ? 'active' : ''" @click="doPrjRes('03', '方案设计')">方案设计</div> <div :class="prjResNav == 0 ? 'active' : ''" @click="doPrjRes(0, '报建')">报建</div>
<div :class="prjResNav == '04' ? 'active' : ''" @click="doPrjRes('04', '设计')">报建</div> <div :class="prjResNav == 1 ? 'active' : ''" @click="doPrjRes(1, '设计')">设计</div>
<div :class="prjResNav == '05' ? 'active' : ''" @click="doPrjRes('05', '合同')">招采</div> <div :class="prjResNav == 2 ? 'active' : ''" @click="doPrjRes(2, '合同')">合同</div>
<div :class="prjResNav == '06' ? 'active' : ''" @click="doPrjRes('06', '验收成果')">施工阶段</div> <div :class="prjResNav == 3 ? 'active' : ''" @click="doPrjRes(2, '验收成果')">验收成果</div>
<div :class="prjResNav == '07' ? 'active' : ''" @click="doPrjRes('07', '验收成果')">验收阶段</div>
</div> </div>
<div class="quality-table prj-result-table prj-finish-node"> <div class="quality-table prj-result-table">
<el-table :data="prjResultsData" class="elTable" <el-table :data="prjResultsData" style="width: 100%;background: transparent;" height="215"
style="width: 100%;background: transparent;" height="215" ref="fbsubordinateUnit"> ref="fbsubordinateUnit">
<el-table-column prop="nodeText" label="事项"> </el-table-column> <el-table-column prop="text" label="事项"> </el-table-column>
<el-table-column prop="planEndDate" label="计划完成时间"> </el-table-column> <el-table-column prop="start" label="计划完成时间"> </el-table-column>
<el-table-column prop="endDate" label="实际完成时间"> </el-table-column> <el-table-column prop="end" label="实际完成时间"> </el-table-column>
<el-table-column prop="states" label="成果"> <el-table-column prop="states" label="状态"> </el-table-column>
<template slot-scope="{row}">
<el-popover placement="top-start" popper-class="prj-detail-finish-node-pop" trigger="hover" v-if="row && row.files && row.files.length>0">
<div class="node-file-list">
<div v-for="(it,idx) in row.files" :key="idx" @click="doDownFile(it)" class="node-file-item" title="点击下载">
{{ it.original }}
</div>
</div>
<span slot="reference" style="cursor: pointer;">{{row.files.length}} </span>
</el-popover>
<span v-else>/</span>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</module-one-1-1> </module-one-1-1>
@ -629,20 +603,20 @@ import MonitAndWarning from './components/MonitAndWarning.vue'
import projectInfoDlg from './detail/projectInfoDlg.vue' import projectInfoDlg from './detail/projectInfoDlg.vue'
export default { export default {
components: { components: {
MonitAndWarning, projectInfoDlg MonitAndWarning,projectInfoDlg
}, },
data() { data() {
return { return {
elCostOut: 0, elCostOut:0,
prjs: [], prjs: [],
dept: null, dept: null,
project: null, project: null,
scheduleInfo: null, scheduleInfo: null,
projectBuildNode: null, projectBuildNode: null,
prjResNav: '03', prjResNav: 0,
projectLvlDict: [], projectLvlDict:[],
projectUsers: [],// projectUsers:[],//
elPrjUser: 0, elPrjUser:0,
// //
top: 0, top: 0,
introduceInterval: undefined, introduceInterval: undefined,
@ -748,10 +722,10 @@ export default {
], ],
warningTypeInterval: undefined, warningTypeInterval: undefined,
warningTypeIndex: 0, warningTypeIndex: 0,
mapName: '', mapName:'',
costOut: {}, costOut:{
finishBuildNode: [],
modleMap: [] }
} }
}, },
created() { created() {
@ -760,86 +734,71 @@ export default {
this.projectLvlDict = d || []; this.projectLvlDict = d || [];
}); });
}, },
mounted() { mounted() {
window.xapp = this window.xapp=this
this.$bus.$on("loadProjects", prjs => { this.$bus.$on("loadProjects", prjs => {
this.prjs = prjs; this.prjs = prjs;
}); });
this.$bus.$on("projectChange", res => { this.$bus.$on("projectChange", res => {
this.project = res; this.project = res;
this.mapName = ""; this.mapName="";
if (res.id == 0) { if(res.id==0){
if (this.prjs.length > 1) { if(this.prjs.length>1){
this.getMapName(this.prjs[1].projectName); this.getMapName(this.prjs[1].projectName);
} }
} else { }else{
this.getMapName(res.projectName); this.getMapName(res.projectName);
} }
this.loadData(); this.loadData();
this.loadFilshNode();
}); });
this.$bus.$on("deptChange", dept => { this.$bus.$on("deptChange", dept => {
this.dept = dept; this.dept = dept;
}); });
}, },
methods: { methods: {
doDownFile(it){ getMapName(name){
if (it && it.url) { if(name){
this.$api.downFile( "/jhapi"+it.url,{},it.original); if(name.indexOf("医疗")>=0){
} this.mapName="map1.html?time="+ +new Date();
},
fmtDate(d) {
if (!d) {
return "";
}
if (d.indexOf(":") >= 0) {
return this.$dt(d).format("YYYY-MM-DD");
}
return d;
},
getMapName(name) {
if (name) {
if (name.indexOf("医疗") >= 0) {
this.mapName = "map1.html?time=" + +new Date();
return; return;
} else if (name.indexOf('体育中心') >= 0) { }else if(name.indexOf('体育中心')>=0){
this.mapName = "map2.html?time=" + +new Date(); this.mapName="map2.html?time="+ +new Date();
return; return;
} }
} }
this.mapName = ""; this.mapName="";
}, },
getPrjUser(t, deptType) { getPrjUser(t,deptType){
if (this.projectUsers && this.projectUsers.length > 0) { if(this.projectUsers && this.projectUsers.length>0){
if (deptType) { if(deptType){
let tmps = this.projectUsers.filter(it => it.deptType == deptType); let tmps=this.projectUsers.filter(it=>it.deptType==deptType);
if (tmps.length > 0) { if(tmps.length>0){
return tmps[0].deptName; return tmps[0].deptName;
} }
} else { }else{
let tmps = this.projectUsers.filter(it => it.jobTypeName == t); let tmps=this.projectUsers.filter(it=>it.jobTypeName==t);
if (tmps.length > 0) { if(tmps.length>0){
return tmps[0].nickName + ' ' + tmps[0].phonenumber; return tmps[0].nickName+' '+tmps[0].phonenumber;
} }
} }
} }
return ""; return "";
}, },
getProjectLevel() { getProjectLevel(){
let lvl = this.getCurProject()?.projiectLevel || ''; let lvl=this.getCurProject()?.projiectLevel||'';
if (lvl) { if(lvl){
let tmps = this.projectLvlDict.filter(d => d.dictValue == lvl); let tmps = this.projectLvlDict.filter(d => d.dictValue == lvl);
return tmps.length > 0 ? tmps[0].dictLabel : ''; return tmps.length > 0 ? tmps[0].dictLabel : '';
} }
return ""; return "";
}, },
getCurProject() { getCurProject(){
if (!this.project) { if(!this.project){
return {}; return {};
} }
if (this.project.id == 0) { if(this.project.id==0){
if (this.prjs.length > 1) { if(this.prjs.length>1){
return this.prjs[1]; return this.prjs[1];
} }
return {}; return {};
@ -852,7 +811,7 @@ export default {
if (prjId == 0) { if (prjId == 0) {
if (this.prjs.length == 0) { if (this.prjs.length == 0) {
setTimeout(func, 100); setTimeout(func, 100);
} else { } else {
cb && cb(this.prjs[1].id); cb && cb(this.prjs[1].id);
} }
} else { } else {
@ -861,14 +820,6 @@ export default {
} }
func(); func();
}, },
loadFilshNode() {
this.getProjectId(id => {
this.$api.buildNode.queryFinishProject(id).then(d => {
this.finishBuildNode = d || [];
this.doPrjRes('03');
})
});
},
loadData() { loadData() {
this.getProjectId(id => { this.getProjectId(id => {
this.$api.schedule.projectConstructionProgress(id).then(d => { this.$api.schedule.projectConstructionProgress(id).then(d => {
@ -889,37 +840,37 @@ export default {
this.getCostOut(id); this.getCostOut(id);
}); });
}, },
getCostOut(id) { getCostOut(id){
let dt = this.$dt(new Date()) let dt=this.$dt(new Date())
this.$api.costOut.selectYearAndMonth({ this.$api.costOut.selectYearAndMonth({
projectId: id, projectId:id,
year: dt.$y, year:dt.$y,
month: dt.$M month:dt.$M
}).then(d => { }).then(d=>{
this.costOut = d; this.costOut=d;
this.elCostOut++; this.elCostOut++;
}) })
}, },
getProjectUser() { getProjectUser(){
this.getProjectId(id => { this.getProjectId(id => {
this.$api.project.getProjectUser(id).then(d => { this.$api.project.getProjectUser(id).then(d=>{
this.projectUsers = d.data || []; this.projectUsers=d.data||[];
this.elPrjUser++; this.elPrjUser++;
}); });
}); });
}, },
getProjectBuildNode() { getProjectBuildNode() {
this.getProjectId(id => { this.getProjectId(id => {
this.$api.project.getProjectBuildNode(id).then(d => { this.$api.project.getProjectBuildNode(id).then(d => {
this.projectBuildNode = this.$api.buildNode.covertData(d.data || []).filter(it => it.lvl.length == 2); this.projectBuildNode = this.$api.buildNode.covertData(d.data || []).filter(it => it.lvl.length == 2);
this.maxWidth = 200 * this.projectBuildNode.length; this.maxWidth=200*this.projectBuildNode.length;
let n = 0; let n=0;
for (let i = 0; i < this.projectBuildNode.length; i++) { for(let i=0;i<this.projectBuildNode.length;i++){
if (this.projectBuildNode[i].finish == "进行中") { if(this.projectBuildNode[i].finish=="进行中"){
n = i; n=i;
} }
} }
this.minWidth = n * 200 + 100; this.minWidth=n*200+100;
}); });
this.getDeptWorksList(); this.getDeptWorksList();
}); });
@ -940,69 +891,50 @@ export default {
this.costInterval = setInterval(this.manufacturingCostRoll, 5000); this.costInterval = setInterval(this.manufacturingCostRoll, 5000);
}, },
// //
getDeptWorksList() { getDeptWorksList(){
if (this.infoNav == 0) { if (this.infoNav == 0) {
// //
this.$api.attendance.getDeptWorksList(this.dept?.id || 0, this.project?.id || 0).then(d => { this.$api.attendance.getDeptWorksList(this.dept?.id||0,this.project?.id||0).then(d => {
this.laborPersonnelTotal = 0; this.laborPersonnelTotal=0;
this.laborPersonnelData = [{ text: "劳务人员", value: 0 }, { text: "监理人员", value: 0 }, { text: "总包人员", value: 0 }]; this.laborPersonnelData=[{text: "劳务人员", value: 0},{text: "监理人员", value: 0},{text: "总包人员", value: 0}];
if (d.rows.length > 0 && d.rows[0] != null) { if(d.rows.length>0 && d.rows[0]!=null){
this.laborPersonnelData = []; this.laborPersonnelData=[];
this.laborPersonnelTotal += d.rows[0].servicePersonnel; this.laborPersonnelTotal += d.rows[0].servicePersonnel;
this.laborPersonnelData.push({ text: "劳务人员", value: d.rows[0].servicePersonnel }); this.laborPersonnelData.push({text: "劳务人员", value: d.rows[0].servicePersonnel});
this.laborPersonnelTotal += d.rows[0].supervisorPersonnel; this.laborPersonnelTotal += d.rows[0].supervisorPersonnel;
this.laborPersonnelData.push({ text: "监理人员", value: d.rows[0].supervisorPersonnel }); this.laborPersonnelData.push({text: "监理人员", value: d.rows[0].supervisorPersonnel});
this.laborPersonnelTotal += d.rows[0].contractorPersonnel; this.laborPersonnelTotal += d.rows[0].contractorPersonnel;
this.laborPersonnelData.push({ text: "总包人员", value: d.rows[0].contractorPersonnel }); this.laborPersonnelData.push({text: "总包人员", value: d.rows[0].contractorPersonnel});
} }
}); });
} else { } else {
// //
this.$api.attendance.getWorkAttendanceList(this.dept?.id || 0, this.project?.id || 0).then(d => { this.$api.attendance.getWorkAttendanceList(this.dept?.id||0,this.project?.id||0).then(d => {
this.laborPersonnelTotal = 0; this.laborPersonnelTotal=0;
this.laborPersonnelData = [{ text: "劳务人员", value: 0 }, { text: "监理人员", value: 0 }, { text: "总包人员", value: 0 }]; this.laborPersonnelData=[{text: "劳务人员", value: 0},{text: "监理人员", value: 0},{text: "总包人员", value: 0}];
if (d.rows.length > 0 && d.rows[0] != null) { if(d.rows.length>0 && d.rows[0]!=null){
this.laborPersonnelData = []; this.laborPersonnelData=[];
this.laborPersonnelTotal += d.rows[0].servicePersonnel; this.laborPersonnelTotal += d.rows[0].servicePersonnel;
this.laborPersonnelData.push({ text: "劳务人员", value: d.rows[0].servicePersonnel }); this.laborPersonnelData.push({text: "劳务人员", value: d.rows[0].servicePersonnel});
this.laborPersonnelTotal += d.rows[0].supervisorPersonnel; this.laborPersonnelTotal += d.rows[0].supervisorPersonnel;
this.laborPersonnelData.push({ text: "监理人员", value: d.rows[0].supervisorPersonnel }); this.laborPersonnelData.push({text: "监理人员", value: d.rows[0].supervisorPersonnel});
this.laborPersonnelTotal += d.rows[0].contractorPersonnel; this.laborPersonnelTotal += d.rows[0].contractorPersonnel;
this.laborPersonnelData.push({ text: "总包人员", value: d.rows[0].contractorPersonnel }); this.laborPersonnelData.push({text: "总包人员", value: d.rows[0].contractorPersonnel});
} }
}); });
} }
}, },
// //
projectIntroduction() { projectIntroduction() {
//this.popupShow = true //this.popupShow = true
this.$refs.prjInfoDlg.showDialog(this.prjs, this.project, this.projectUsers); this.$refs.prjInfoDlg.showDialog(this.prjs,this.project,this.projectUsers);
}, },
closeProjectIntroduction() { closeProjectIntroduction() {
this.popupShow = false this.popupShow = false
}, },
doPrjRes(n, text) { doPrjRes(n, text) {
this.prjResNav = n; this.prjResNav = n;
if (n == '06') {
this.prjResultsData = this.finishBuildNode.filter(d => d.lvl.length == 4 && d.lvl.substring(0, 2) == '06').map(it => {
if (it.files) {
it.files = JSON.parse(it.files);
} else {
it.files = [];
}
return it;
});
} else {
this.prjResultsData = this.finishBuildNode.filter(d => d.lvl.length == 6 && d.lvl.substring(0, 2) == n).map(it => {
if (it.files) {
it.files = JSON.parse(it.files);
} else {
it.files = [];
}
return it;
});
}
}, },
// //
modifyLeftBtn() { modifyLeftBtn() {
@ -1236,8 +1168,7 @@ export default {
}; };
</script> </script>
<style lang="less" > <style lang="less" >.proj-detail {
.proj-detail {
.prj-process-list { .prj-process-list {
padding: 20px padding: 20px
} }
@ -1298,36 +1229,4 @@ export default {
.prj-result-table th .cell { .prj-result-table th .cell {
color: aquamarine; color: aquamarine;
} }
}</style>
.prj-finish-node {
.el-table__body-wrapper {
&::-webkit-scrollbar {
width: 8px;
height: 8px;
}
&::-webkit-scrollbar-thumb {
background-color: rgb(1, 169, 255);
border-radius: 4px;
}
tr {
cursor: pointer;
}
}
}
}
.prj-detail-finish-node-pop{
.node-file-list{
.node-file-item{
line-height: 24px;
cursor: pointer;
&:hover{
color:rgb(1, 169, 255);
}
}
}
}
</style>

View File

@ -120,16 +120,14 @@ service.interceptors.response.use(res => {
) )
// 通用下载方法 // 通用下载方法
export function download(url, params, filename, config={}) { export function download(url, params, filename, config) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", }) downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
return axios({ return service.post(url, params, {
url:url, transformRequest: [(params) => { return tansParams(params) }],
method:"get", headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
params:params||{}, responseType: 'blob',
responseType: 'blob',
...config ...config
}).then(async ({data}) => { }).then(async (data) => {
const isBlob = blobValidate(data); const isBlob = blobValidate(data);
if (isBlob) { if (isBlob) {
const blob = new Blob([data]) const blob = new Blob([data])
@ -148,7 +146,5 @@ export function download(url, params, filename, config={}) {
}) })
} }
export { axios,service} export { axios,service}
export default service export default service

View File

@ -23,8 +23,8 @@ module.exports = defineConfig({
} }
}, },
'/jhapi':{ '/jhapi':{
target: `http://62.234.3.186/jhapi/`, //target: `http://62.234.3.186/jhapi/`,
//target: `http://127.0.0.1:8090/jhapi/`, target: `http://127.0.0.1:8090/jhapi/`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/jhapi':'/' '^/jhapi':'/'