update code

dev-login
haha 2023-09-06 00:37:37 +08:00
parent 5fbb80eb7c
commit 0f81beb7d9
7 changed files with 272 additions and 147 deletions

View File

@ -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 {
selectScheduledAlerts,
selectCurrent,
@ -282,5 +302,6 @@ export default {
countCompletionRate,
queryByProjectType,
queryByProjectTypeNoTree,
toTree
toTree,
queryFinishProject
};

View File

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

View File

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

View File

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

View File

@ -31,9 +31,6 @@
<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="year" label="年度投资(万元)" width="120"> </el-table-column>
</el-table>

View File

@ -22,7 +22,8 @@
<div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info">
<div class="company-title">甲方代表</div>
<div class="company-text" :title="getPrjUser('甲方代表')||''">{{getPrjUser('甲方代表')||' ' }}</div>
<div class="company-text" :title="getPrjUser('甲方代表') || ''">
{{ getPrjUser('甲方代表') || ' ' }}</div>
</div>
</div>
</el-col>
@ -31,7 +32,8 @@
<div class="company-img"><img src="images/company_6.png"></div>
<div class="company-info">
<div class="company-title">项目等级</div>
<div class="company-text" :title="getProjectLevel()||''">{{ getProjectLevel()||' ' }} </div>
<div class="company-text" :title="getProjectLevel() || ''">{{
getProjectLevel() || ' ' }} </div>
</div>
</div>
</el-col>
@ -40,7 +42,8 @@
<div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info">
<div class="company-title">项目经理</div>
<div class="company-text" :title="getPrjUser('项目经理')||''">{{getPrjUser('项目经理')||' ' }}</div>
<div class="company-text" :title="getPrjUser('项目经理') || ''">
{{ getPrjUser('项目经理') || ' ' }}</div>
</div>
</div>
</el-col>
@ -49,7 +52,8 @@
<div class="company-img"><img src="images/company_11.png"></div>
<div class="company-info">
<div class="company-title">项目总监</div>
<div class="company-text" :title="getPrjUser('总监')||''">{{getPrjUser('总监')||' ' }}</div>
<div class="company-text" :title="getPrjUser('总监') || ''">
{{ getPrjUser('总监') || ' ' }}</div>
</div>
</div>
</el-col>
@ -58,7 +62,8 @@
<div class="company-img"><img src="images/company_3.png"></div>
<div class="company-info">
<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>
</el-col>
@ -67,7 +72,8 @@
<div class="company-img"><img src="images/company_10.png"></div>
<div class="company-info">
<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>
</el-col>
@ -77,8 +83,10 @@
<module-one-1-1 label="劳务人员概况">
<div class="warning-info">
<div class="warning-info-title">
<div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0, '在岗人数')">在岗人数</div>
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤</div>
<div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0, '在岗人数')">在岗人数
</div>
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1, '今日出勤')">今日出勤
</div>
</div>
<el-row>
<el-col :span="8">
@ -104,10 +112,12 @@
<el-col :span="8" class="col-img">
<template v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0">
<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 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>
</template>
<div v-else style="text-align: center;">
@ -211,7 +221,7 @@
</svg>
本年完成
</p>
<div><span>{{costOut.totalY||0}}</span> 万元</div>
<div><span>{{ costOut.totalYear || 0 }}</span> 万元</div>
</div>
</div>
</div>
@ -277,7 +287,8 @@
</svg>
计划开工日期
</p>
<div><span>{{ getCurProject().scheduledStartTime||'' }}</span></div>
<div><span>{{ fmtDate(getCurProject().scheduledStartTime || '') }}</span>
</div>
</div>
</div>
</div>
@ -322,7 +333,8 @@
</svg>
计划竣工日期
</p>
<div><span>{{ getCurProject().plannedCompletionTime||'' }}</span></div>
<div><span>{{ fmtDate(getCurProject().plannedCompletionTime || '') }}</span>
</div>
</div>
</div>
</div>
@ -367,7 +379,7 @@
</svg>
实际开工日期
</p>
<div><span>{{ getCurProject().actualOperatingTime|formatDate }}</span></div>
<div><span>{{ fmtDate(getCurProject().actualOperatingTime) }}</span></div>
</div>
</div>
</div>
@ -446,7 +458,8 @@
</div>
<div class="aerial-view-max">
<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;"
frameborder="0"></iframe>
<img v-else :src="'images/830.png'">
</div>
</div>
@ -482,19 +495,32 @@
<el-col :span="6">
<module-one-1-1 label="项目成果">
<div class="warning-info-title" style="padding-left: 20px;">
<div :class="prjResNav == 0 ? 'active' : ''" @click="doPrjRes(0, '报建')">报建</div>
<div :class="prjResNav == 1 ? 'active' : ''" @click="doPrjRes(1, '设计')">设计</div>
<div :class="prjResNav == 2 ? 'active' : ''" @click="doPrjRes(2, '合同')">合同</div>
<div :class="prjResNav == 3 ? 'active' : ''" @click="doPrjRes(2, '验收成果')">验收成果</div>
<div :class="prjResNav == '03' ? 'active' : ''" @click="doPrjRes('03', '方案设计')">方案设计</div>
<div :class="prjResNav == '04' ? 'active' : ''" @click="doPrjRes('04', '设计')">报建</div>
<div :class="prjResNav == '05' ? 'active' : ''" @click="doPrjRes('05', '合同')">招采</div>
<div :class="prjResNav == '06' ? 'active' : ''" @click="doPrjRes('06', '验收成果')">施工阶段</div>
<div :class="prjResNav == '07' ? 'active' : ''" @click="doPrjRes('07', '验收成果')">验收阶段</div>
</div>
<div class="quality-table prj-result-table">
<el-table :data="prjResultsData" style="width: 100%;background: transparent;" height="215"
ref="fbsubordinateUnit">
<div class="quality-table prj-result-table prj-finish-node">
<el-table :data="prjResultsData" class="elTable"
style="width: 100%;background: transparent;" height="215" ref="fbsubordinateUnit">
<el-table-column prop="text" label="事项"> </el-table-column>
<el-table-column prop="start" label="计划完成时间"> </el-table-column>
<el-table-column prop="end" label="实际完成时间"> </el-table-column>
<el-table-column prop="states" label="状态"> </el-table-column>
<el-table-column prop="nodeText" label="事项"> </el-table-column>
<el-table-column prop="planEndDate" label="计划完成时间"> </el-table-column>
<el-table-column prop="endDate" 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>
</div>
</module-one-1-1>
@ -613,7 +639,7 @@ export default {
project: null,
scheduleInfo: null,
projectBuildNode: null,
prjResNav: 0,
prjResNav: '03',
projectLvlDict: [],
projectUsers: [],//
elPrjUser: 0,
@ -723,9 +749,9 @@ export default {
warningTypeInterval: undefined,
warningTypeIndex: 0,
mapName: '',
costOut:{
}
costOut: {},
finishBuildNode: [],
modleMap: []
}
},
created() {
@ -751,12 +777,27 @@ export default {
this.getMapName(res.projectName);
}
this.loadData();
this.loadFilshNode();
});
this.$bus.$on("deptChange", dept => {
this.dept = dept;
});
},
methods: {
doDownFile(it){
if (it && it.url) {
this.$api.downFile( it.url,{},it.original);
}
},
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) {
@ -820,6 +861,14 @@ export default {
}
func();
},
loadFilshNode() {
this.getProjectId(id => {
this.$api.buildNode.queryFinishProject(id).then(d => {
this.finishBuildNode = d || [];
this.doPrjRes('03');
})
});
},
loadData() {
this.getProjectId(id => {
this.$api.schedule.projectConstructionProgress(id).then(d => {
@ -935,6 +984,25 @@ export default {
},
doPrjRes(n, text) {
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() {
@ -1168,7 +1236,8 @@ export default {
};
</script>
<style lang="less" >.proj-detail {
<style lang="less" >
.proj-detail {
.prj-process-list {
padding: 20px
}
@ -1229,4 +1298,36 @@ export default {
.prj-result-table th .cell {
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,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)", })
return service.post(url, params, {
return service.get(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob',
@ -146,5 +146,7 @@ export function download(url, params, filename, config) {
})
}
export { axios,service}
export default service