update code
parent
5fbb80eb7c
commit
0f81beb7d9
|
@ -274,6 +274,26 @@ 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,
|
||||||
|
@ -282,5 +302,6 @@ export default {
|
||||||
countCompletionRate,
|
countCompletionRate,
|
||||||
queryByProjectType,
|
queryByProjectType,
|
||||||
queryByProjectTypeNoTree,
|
queryByProjectTypeNoTree,
|
||||||
toTree
|
toTree,
|
||||||
|
queryFinishProject
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,12 +23,16 @@ 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=>{
|
||||||
total+=(it.money?it.money:0)
|
if(it.money){
|
||||||
|
total+=it.money;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
totalObjs=tmps.filter(it=>it.costType==9 && it.year==y);
|
let yearObjs=tmps.filter(it=>it.costType==9 && it.year==y);
|
||||||
let totalY=0;
|
let totalY=0;
|
||||||
totalObjs.forEach(it=>{
|
yearObjs.forEach(it=>{
|
||||||
totalY+=(it.money?it.money:0)
|
if(it.money){
|
||||||
|
totalY+=it.money;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
let obj={
|
let obj={
|
||||||
totalInv:getValue(tmps,1).money||0,//总投资
|
totalInv:getValue(tmps,1).money||0,//总投资
|
||||||
|
|
|
@ -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} from '@/utils/request'
|
import {axios,download} from '@/utils/request'
|
||||||
export default {
|
export default {
|
||||||
project,
|
project,
|
||||||
dept,
|
dept,
|
||||||
|
@ -38,5 +38,6 @@ export default {
|
||||||
materialSeal,
|
materialSeal,
|
||||||
checkDetection,
|
checkDetection,
|
||||||
http:axios,
|
http:axios,
|
||||||
video
|
video,
|
||||||
|
downFile:download
|
||||||
}
|
}
|
|
@ -134,7 +134,6 @@ Vue.component("screen-header", {
|
||||||
},
|
},
|
||||||
//页面条状
|
//页面条状
|
||||||
pageJump(n,url){
|
pageJump(n,url){
|
||||||
debugger
|
|
||||||
if(n != this.nav){
|
if(n != this.nav){
|
||||||
|
|
||||||
if(url){
|
if(url){
|
||||||
|
|
|
@ -31,9 +31,6 @@
|
||||||
<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>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,8 @@
|
||||||
<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('甲方代表')||''">{{getPrjUser('甲方代表')||' ' }}</div>
|
<div class="company-text" :title="getPrjUser('甲方代表') || ''">
|
||||||
|
{{ getPrjUser('甲方代表') || ' ' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -31,7 +32,8 @@
|
||||||
<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()||''">{{ getProjectLevel()||' ' }} </div>
|
<div class="company-text" :title="getProjectLevel() || ''">{{
|
||||||
|
getProjectLevel() || ' ' }} </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -40,7 +42,8 @@
|
||||||
<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('项目经理')||''">{{getPrjUser('项目经理')||' ' }}</div>
|
<div class="company-text" :title="getPrjUser('项目经理') || ''">
|
||||||
|
{{ getPrjUser('项目经理') || ' ' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -49,7 +52,8 @@
|
||||||
<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('总监')||''">{{getPrjUser('总监')||' ' }}</div>
|
<div class="company-text" :title="getPrjUser('总监') || ''">
|
||||||
|
{{ getPrjUser('总监') || ' ' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -58,7 +62,8 @@
|
||||||
<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')||''">{{getPrjUser('总包单位','2')||' ' }}</div>
|
<div class="company-text" :title="getPrjUser('总包单位', '2') || ''">
|
||||||
|
{{ getPrjUser('总包单位', '2') || ' ' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -67,7 +72,8 @@
|
||||||
<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')||''">{{getPrjUser('监理单位','4')||' ' }}</div>
|
<div class="company-text" :title="getPrjUser('监理单位', '4') || ''">
|
||||||
|
{{ getPrjUser('监理单位', '4') || ' ' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -77,8 +83,10 @@
|
||||||
<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>
|
<div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0, '在岗人数')">在岗人数
|
||||||
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤</div>
|
</div>
|
||||||
|
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
@ -104,10 +112,12 @@
|
||||||
<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]" :preview-src-list="scheduleInfo.images"/>
|
<el-image :src="scheduleInfo.images[0]"
|
||||||
|
: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]" :preview-src-list="scheduleInfo.images" />
|
<el-image :src="scheduleInfo.images[1]"
|
||||||
|
:preview-src-list="scheduleInfo.images" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-else style="text-align: center;">
|
<div v-else style="text-align: center;">
|
||||||
|
@ -116,40 +126,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">
|
||||||
|
@ -171,7 +181,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>
|
||||||
|
@ -190,7 +200,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>
|
||||||
|
@ -211,7 +221,7 @@
|
||||||
</svg>
|
</svg>
|
||||||
本年完成
|
本年完成
|
||||||
</p>
|
</p>
|
||||||
<div><span>{{costOut.totalY||0}}</span> 万元</div>
|
<div><span>{{ costOut.totalYear || 0 }}</span> 万元</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -232,7 +242,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>
|
||||||
|
@ -277,7 +287,8 @@
|
||||||
</svg>
|
</svg>
|
||||||
计划开工日期
|
计划开工日期
|
||||||
</p>
|
</p>
|
||||||
<div><span>{{ getCurProject().scheduledStartTime||'' }}</span></div>
|
<div><span>{{ fmtDate(getCurProject().scheduledStartTime || '') }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -322,7 +333,8 @@
|
||||||
</svg>
|
</svg>
|
||||||
计划竣工日期
|
计划竣工日期
|
||||||
</p>
|
</p>
|
||||||
<div><span>{{ getCurProject().plannedCompletionTime||'' }}</span></div>
|
<div><span>{{ fmtDate(getCurProject().plannedCompletionTime || '') }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -367,7 +379,7 @@
|
||||||
</svg>
|
</svg>
|
||||||
实际开工日期
|
实际开工日期
|
||||||
</p>
|
</p>
|
||||||
<div><span>{{ getCurProject().actualOperatingTime|formatDate }}</span></div>
|
<div><span>{{ fmtDate(getCurProject().actualOperatingTime) }}</span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -412,7 +424,7 @@
|
||||||
</svg>
|
</svg>
|
||||||
合同工期
|
合同工期
|
||||||
</p>
|
</p>
|
||||||
<div><span>{{ getCurProject().projectTimeLimit||'-' }}</span> 天</div>
|
<div><span>{{ getCurProject().projectTimeLimit || '-' }}</span> 天</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -446,8 +458,9 @@
|
||||||
</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;" frameborder="0"></iframe>
|
<iframe v-if="mapName" :src="'maps/' + mapName" style="width:100%;height:100%;border:none;"
|
||||||
<img v-else :src="'images/830.png'" >
|
frameborder="0"></iframe>
|
||||||
|
<img v-else :src="'images/830.png'">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<module-one-1-2 label="项目节点计划预警">
|
<module-one-1-2 label="项目节点计划预警">
|
||||||
|
@ -482,19 +495,32 @@
|
||||||
<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 == 0 ? 'active' : ''" @click="doPrjRes(0, '报建')">报建</div>
|
<div :class="prjResNav == '03' ? 'active' : ''" @click="doPrjRes('03', '方案设计')">方案设计</div>
|
||||||
<div :class="prjResNav == 1 ? 'active' : ''" @click="doPrjRes(1, '设计')">设计</div>
|
<div :class="prjResNav == '04' ? 'active' : ''" @click="doPrjRes('04', '设计')">报建</div>
|
||||||
<div :class="prjResNav == 2 ? 'active' : ''" @click="doPrjRes(2, '合同')">合同</div>
|
<div :class="prjResNav == '05' ? 'active' : ''" @click="doPrjRes('05', '合同')">招采</div>
|
||||||
<div :class="prjResNav == 3 ? 'active' : ''" @click="doPrjRes(2, '验收成果')">验收成果</div>
|
<div :class="prjResNav == '06' ? 'active' : ''" @click="doPrjRes('06', '验收成果')">施工阶段</div>
|
||||||
|
<div :class="prjResNav == '07' ? 'active' : ''" @click="doPrjRes('07', '验收成果')">验收阶段</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="quality-table prj-result-table">
|
<div class="quality-table prj-result-table prj-finish-node">
|
||||||
<el-table :data="prjResultsData" style="width: 100%;background: transparent;" height="215"
|
<el-table :data="prjResultsData" class="elTable"
|
||||||
ref="fbsubordinateUnit">
|
style="width: 100%;background: transparent;" height="215" ref="fbsubordinateUnit">
|
||||||
|
|
||||||
<el-table-column prop="text" label="事项"> </el-table-column>
|
<el-table-column prop="nodeText" label="事项"> </el-table-column>
|
||||||
<el-table-column prop="start" label="计划完成时间"> </el-table-column>
|
<el-table-column prop="planEndDate" label="计划完成时间"> </el-table-column>
|
||||||
<el-table-column prop="end" label="实际完成时间"> </el-table-column>
|
<el-table-column prop="endDate" label="实际完成时间"> </el-table-column>
|
||||||
<el-table-column prop="states" label="状态"> </el-table-column>
|
<el-table-column prop="states" label="成果">
|
||||||
|
<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>0个</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
|
@ -603,20 +629,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: 0,
|
prjResNav: '03',
|
||||||
projectLvlDict:[],
|
projectLvlDict: [],
|
||||||
projectUsers:[],//项目用户,用于项目概况
|
projectUsers: [],//项目用户,用于项目概况
|
||||||
elPrjUser:0,
|
elPrjUser: 0,
|
||||||
//项目概况
|
//项目概况
|
||||||
top: 0,
|
top: 0,
|
||||||
introduceInterval: undefined,
|
introduceInterval: undefined,
|
||||||
|
@ -722,10 +748,10 @@ export default {
|
||||||
],
|
],
|
||||||
warningTypeInterval: undefined,
|
warningTypeInterval: undefined,
|
||||||
warningTypeIndex: 0,
|
warningTypeIndex: 0,
|
||||||
mapName:'',
|
mapName: '',
|
||||||
costOut:{
|
costOut: {},
|
||||||
|
finishBuildNode: [],
|
||||||
}
|
modleMap: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -734,71 +760,86 @@ 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: {
|
||||||
getMapName(name){
|
doDownFile(it){
|
||||||
if(name){
|
if (it && it.url) {
|
||||||
if(name.indexOf("医疗")>=0){
|
this.$api.downFile( it.url,{},it.original);
|
||||||
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 {};
|
||||||
|
@ -811,7 +852,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 {
|
||||||
|
@ -820,6 +861,14 @@ 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 => {
|
||||||
|
@ -840,37 +889,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();
|
||||||
});
|
});
|
||||||
|
@ -891,50 +940,69 @@ 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() {
|
||||||
|
@ -1168,7 +1236,8 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" >.proj-detail {
|
<style lang="less" >
|
||||||
|
.proj-detail {
|
||||||
.prj-process-list {
|
.prj-process-list {
|
||||||
padding: 20px
|
padding: 20px
|
||||||
}
|
}
|
||||||
|
@ -1229,4 +1298,36 @@ 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>
|
|
@ -120,9 +120,9 @@ 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 service.post(url, params, {
|
return service.get(url, params, {
|
||||||
transformRequest: [(params) => { return tansParams(params) }],
|
transformRequest: [(params) => { return tansParams(params) }],
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||||
responseType: 'blob',
|
responseType: 'blob',
|
||||||
|
@ -146,5 +146,7 @@ export function download(url, params, filename, config) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export { axios,service}
|
export { axios,service}
|
||||||
export default service
|
export default service
|
||||||
|
|
Loading…
Reference in New Issue