update code
parent
40017c5aca
commit
0e0dc1234c
|
@ -16,6 +16,9 @@
|
|||
<script crossorigin="anonymous" integrity="sha384-gb8mitZ44MWVFB3GKzmtx1OCjOh3Cj4mgusyTvNzl1Nu31l0em1FrApJindwVAe0" src="https://lib.baomitu.com/echarts/4.2.1/echarts.min.js"></script>
|
||||
<script src="https://cdn.makalu.cc/js/echarts/china.js"></script>
|
||||
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=6zAD8CIavtzWnkGg0a7roush5maGMIPn"></script>
|
||||
<style type="text/css">
|
||||
#webpack-dev-server-client-overlay{display: none;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
<script src="https://cdn.makalu.cc/js/h5splayer/h5splayerhelper.js"></script>
|
||||
|
||||
|
||||
<script src="https://cdn.makalu.cc/js/hkplug/jsencrypt.min.js"></script>
|
||||
<script src="https://cdn.makalu.cc/js/hkplug/jsWebControl-1.0.0.min.js"></script>
|
||||
<script src="https://cdn.makalu.cc/js/hkplug/jsencrypt.min.js"></script>
|
||||
<script src="https://cdn.makalu.cc/js/hkplug/jsWebControl-1.0.0.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
|
|
@ -2,6 +2,54 @@ import request from "@/utils/request";
|
|||
import { tryToJson } from "../../utils/tools";
|
||||
import $dt from "dayjs";
|
||||
|
||||
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.endDate){
|
||||
if(!it.planEndDate){
|
||||
it.finish = "正常完成";
|
||||
it.finishState = 3;
|
||||
return;
|
||||
}
|
||||
if(dt4>dt2){
|
||||
it.finish = "逾期完成";
|
||||
it.finishState = 1;
|
||||
}else{
|
||||
it.finish = "正常完成";
|
||||
it.finishState = 3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(it.startDate){
|
||||
if(!it.planEndDate){
|
||||
it.finish = "进行中";
|
||||
it.finishState = 2;
|
||||
return;
|
||||
}
|
||||
if(dt2<dt0){
|
||||
it.finish = "逾期" + (dt0 - dt2) / 3600 / 1000 / 24 + "天";
|
||||
it.finishState = 1;
|
||||
}else{
|
||||
it.finish = "进行中";
|
||||
it.finishState = 2;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(!it.startDate){
|
||||
it.finish = "未开始";
|
||||
it.finishState = 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 节点计划预警
|
||||
const selectScheduledAlerts = (data) => {
|
||||
return new Promise(resolve=>{
|
||||
|
@ -9,34 +57,7 @@ const selectScheduledAlerts = (data) => {
|
|||
url: "bgscreen/projectBuildNode/selectScheduledAlerts",
|
||||
method: "post",
|
||||
data: data,
|
||||
}).then(d=>{
|
||||
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.startDate && it.endDate){
|
||||
it.finish="未开工";
|
||||
it.finishState = 4;
|
||||
return;
|
||||
}
|
||||
if(it.planEndDate){
|
||||
if(dt2<dt0){
|
||||
it.finish = "逾期" + (dt0 - dt2) / 3600 / 1000 / 24 + "天";
|
||||
it.finishState = 1;
|
||||
}else{
|
||||
it.finish = "进行中";
|
||||
it.finishState = 2;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(it.startDate){
|
||||
it.finish = "进行中";
|
||||
it.finishState = 2;
|
||||
}
|
||||
|
||||
};
|
||||
}).then(d=>{
|
||||
let tmps = (d.data || []).map(it => {
|
||||
it.lvl = it.baseBuildNode.nodeLvl;
|
||||
it.projectName=it.project?.projectName||'';
|
||||
|
@ -66,12 +87,14 @@ const listByProject=(projectId)=>{
|
|||
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);
|
||||
|
@ -95,6 +118,8 @@ const covertData = (objs) => {
|
|||
return it;
|
||||
});
|
||||
return tmps.map((it) => {
|
||||
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; //计划结束
|
||||
|
@ -111,7 +136,7 @@ const covertData = (objs) => {
|
|||
it.finishState = 1;
|
||||
it.finish = "逾期" + (dt4 - dt2) / 3600 / 1000 / 24 + "天";
|
||||
} else {
|
||||
it.finish = "正常完工";
|
||||
it.finish = "正常完成";
|
||||
it.finishState = 3;
|
||||
}
|
||||
} else {
|
||||
|
@ -124,7 +149,7 @@ const covertData = (objs) => {
|
|||
it.finish = "逾期" + (dt2 - dt0) / 3600 / 1000 / 24 + "天";
|
||||
}
|
||||
} else {
|
||||
it.finish = "未开工";
|
||||
it.finish = "未开始";
|
||||
it.finishState = 4;
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +160,7 @@ const covertData = (objs) => {
|
|||
return it;
|
||||
}
|
||||
if (it.planStartDate && !it.startDate) {
|
||||
it.finish = "未开工";
|
||||
it.finish = "未开始";
|
||||
it.finishState = 4;
|
||||
return it;
|
||||
}
|
||||
|
@ -144,7 +169,7 @@ const covertData = (objs) => {
|
|||
it.finishState = 2;
|
||||
}
|
||||
if(it.endDate && !it.planEndDate){
|
||||
it.finish = "正常完工";
|
||||
it.finish = "正常完成";
|
||||
it.finishState = 3;
|
||||
return it;
|
||||
}
|
||||
|
@ -153,12 +178,12 @@ const covertData = (objs) => {
|
|||
it.finishState = 1;
|
||||
it.finish = "逾期" + (dt4 - dt2) / 3600 / 1000 / 24 + "天";
|
||||
} else {
|
||||
it.finish = "正常完工";
|
||||
it.finish = "正常完成";
|
||||
it.finishState = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
return it;
|
||||
});
|
||||
};
|
||||
|
@ -193,10 +218,31 @@ const countCompletionRate=data=>{
|
|||
});
|
||||
}
|
||||
|
||||
const queryByProjectType=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.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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
selectScheduledAlerts,
|
||||
selectCurrent,
|
||||
covertData,
|
||||
listByProject,
|
||||
countCompletionRate
|
||||
countCompletionRate,
|
||||
queryByProjectType
|
||||
};
|
||||
|
|
|
@ -12,6 +12,7 @@ import insurance from './insurance/index'
|
|||
import journalism from './journalism/index'
|
||||
import buildNode from './buildNode'
|
||||
import projectChecking from './projectChecking/index'
|
||||
import {axios} from '@/utils/request'
|
||||
export default {
|
||||
project,
|
||||
dept,
|
||||
|
@ -26,5 +27,6 @@ export default {
|
|||
insurance,
|
||||
journalism,
|
||||
buildNode,
|
||||
projectChecking
|
||||
projectChecking,
|
||||
http:axios
|
||||
}
|
|
@ -44,9 +44,10 @@ const groupByProjectCategory=(cb)=>{
|
|||
}
|
||||
let ret1= [getItems(1,1),getItems(1,2)];
|
||||
let ret2= [getItems(2,1),getItems(2,2)];
|
||||
let ret3= [getItems(4,1),getItems(4,2)];
|
||||
let ret3= [getItems(3,1),getItems(3,2)];
|
||||
let ret4= [getItems(4,1),getItems(4,2)];
|
||||
let rets= [
|
||||
ret1,ret2,ret3
|
||||
ret1,ret2,ret3,ret4
|
||||
];
|
||||
if(cb){
|
||||
cb(rets);
|
||||
|
@ -83,6 +84,12 @@ const getProjectUser=(projectId)=>{
|
|||
});
|
||||
}
|
||||
|
||||
const getInfo=()=>{
|
||||
return request({
|
||||
url:'getInfo',
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
export default{
|
||||
findProjectByDept,
|
||||
|
@ -91,7 +98,8 @@ export default{
|
|||
groupByProjectCategory,
|
||||
groupByCategory,
|
||||
groupByLevel,
|
||||
getProjectUser
|
||||
getProjectUser,
|
||||
getInfo
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -9,6 +9,15 @@ const currentListByDept=(deptId)=> {
|
|||
})
|
||||
}
|
||||
|
||||
const queryByProjectType=data=>{
|
||||
return request({
|
||||
url: `bgscreen/asscess/queryByProjectType`,
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
};
|
||||
|
||||
export default{
|
||||
currentListByDept
|
||||
currentListByDept,
|
||||
queryByProjectType
|
||||
}
|
||||
|
|
|
@ -7,6 +7,15 @@ const projectConstructionProgress=(projectId)=> {
|
|||
})
|
||||
}
|
||||
|
||||
export default{
|
||||
projectConstructionProgress
|
||||
|
||||
const selectByProjectType=type=>{
|
||||
return request({
|
||||
url: `bgscreen/schedule/selectByProjectType?type=${type}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export default{
|
||||
projectConstructionProgress,
|
||||
selectByProjectType
|
||||
}
|
||||
|
|
|
@ -58,7 +58,6 @@ Vue.component("header-btn", {
|
|||
this.localStorage=JSON.parse(localStorage.getItem("data1"))
|
||||
this.filterList()
|
||||
this.init()
|
||||
console.log(this.red)
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
|
|
|
@ -8,4 +8,4 @@ const fixElTableErr = (table) => {
|
|||
};
|
||||
};
|
||||
// 一定要在Vue.use之前执行此函数
|
||||
fixElTableErr(Table);
|
||||
fixElTableErr(Table);
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
</el-image>
|
||||
</div>
|
||||
<div class="item-right">
|
||||
<div v-if="it.timeout" class="text-timeout">超时</div>
|
||||
<div v-if="it.timeout && it.checkState!=4" class="text-timeout">超时</div>
|
||||
<div class="text-state" :class="'state'+it.checkState">{{ getCheckState(it.checkState) }}</div>
|
||||
<el-col :span="12" class="item-data">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">隐患类型:</span>
|
||||
|
|
|
@ -77,18 +77,18 @@
|
|||
<img src="images/icon2001.png"
|
||||
style="position: absolute;cursor: pointer;right: 13px;top: 12px;" @click="doShowDlg2">
|
||||
<div class="warning-info-title" style="padding-left: 20px;">
|
||||
<div :class="prjProcessNav == 0 ? 'active' : ''" @click="doPrjProcess(0, '在建项目')">在建项目({{ getPrjCateCount(0) }})
|
||||
<div :class="prjProcessNav == 1 ? 'active' : ''" @click="doPrjProcess(1, '在建项目')">在建项目({{ getPrjCateCount(0) }})
|
||||
</div>
|
||||
<div :class="prjProcessNav == 1 ? 'active' : ''" @click="doPrjProcess(1, '拟建项目')">拟建项目({{ getPrjCateCount(1) }})
|
||||
<div :class="prjProcessNav == 2 ? 'active' : ''" @click="doPrjProcess(2, '拟建项目')">拟建项目({{ getPrjCateCount(1) }})
|
||||
</div>
|
||||
<div :class="prjProcessNav == 2 ? 'active' : ''" @click="doPrjProcess(2, '完工项目')">完工项目({{ getPrjCateCount(3) }})
|
||||
<div :class="prjProcessNav == 4 ? 'active' : ''" @click="doPrjProcess(4, '完成项目')">完成项目({{ getPrjCateCount(3) }})
|
||||
</div>
|
||||
</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<div class="survey_content">
|
||||
<div class="survey_content_img">
|
||||
<svg v-if="prjProcessNav == 0" class="my-svg-icon"
|
||||
<svg v-if="prjProcessNav == 1" class="my-svg-icon"
|
||||
style="vertical-align: middle;fill: #fff;overflow: hidden;"
|
||||
viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="2883">
|
||||
|
@ -102,7 +102,7 @@
|
|||
d="M512.2048 975.9744c-4.7872 0-9.5744-1.1264-13.952-3.3536L70.2464 754.5856c-8.576-4.3776-15.0784-12.2624-16.9472-21.7088a30.72512 30.72512 0 0 1 15.0272-32.8192l192.1536-108.3648c18.176-10.24 41.2416-3.8144 51.4816 14.3616l11.6224 20.608-175.1808 98.7904 363.7504 185.2928 368.3584-189.2608-175.9488-100.736 11.7504-20.5312c10.368-18.1248 33.4592-24.3968 51.584-14.0288l192.2816 110.08c9.7792 5.6064 15.6928 16.1024 15.4368 27.3664a30.72 30.72 0 0 1-16.6656 26.624l-432.6656 222.3104a31.0272 31.0272 0 0 1-14.08 3.4048z"
|
||||
fill="#fff" p-id="2886"></path>
|
||||
</svg>
|
||||
<svg v-if="prjProcessNav == 1" class="my-svg-icon"
|
||||
<svg v-if="prjProcessNav == 2" class="my-svg-icon"
|
||||
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||
viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="2900">
|
||||
|
@ -119,7 +119,7 @@
|
|||
d="M221.952 365.824m-33.792 0a33.792 33.792 0 1 0 67.584 0 33.792 33.792 0 1 0-67.584 0Z"
|
||||
fill="#040000" p-id="2904"></path>
|
||||
</svg>
|
||||
<svg v-if="prjProcessNav == 2" class="my-svg-icon"
|
||||
<svg v-if="prjProcessNav == 4" class="my-svg-icon"
|
||||
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||
viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="2641">
|
||||
|
@ -306,13 +306,13 @@ export default {
|
|||
{ text: "劳务人员", value: 0 },
|
||||
],
|
||||
//项目进度
|
||||
prjProcessNav: 0,
|
||||
prjProcessNav: 1,
|
||||
prjPrcessText: '在建项目',
|
||||
prjPrcessTotal: 100,
|
||||
prjPrcessUrl: 'images/prj1.svg',
|
||||
prjPrcessData: [
|
||||
{ text: "正常推进项目", value: 30 },
|
||||
{ text: "进度滞后项目", value: 70 },
|
||||
{ text: "正常推进项目", value: 0 },
|
||||
{ text: "进度滞后项目", value: 0 },
|
||||
],
|
||||
//总投金额
|
||||
investmentAmountData1: [
|
||||
|
@ -532,7 +532,7 @@ export default {
|
|||
this.$refs.dlg1.showDialog()
|
||||
},
|
||||
doShowDlg2() {
|
||||
this.$refs.dlg2.showDialog(this.prjProcessNav)
|
||||
this.$refs.dlg2.showDialog(this.prjProcessNav,[this.getPrjCateCount(0),this.getPrjCateCount(1),this.getPrjCateCount(3)])
|
||||
},
|
||||
getPrjCateCount(n){
|
||||
if(this.projectCategory.length<n+1){
|
||||
|
@ -549,12 +549,13 @@ export default {
|
|||
return 0;
|
||||
},
|
||||
init() {
|
||||
this.$api.project.groupByProjectCategory(datas=>{
|
||||
this.$api.project.groupByProjectCategory(datas=>{
|
||||
this.projectCategory=datas;
|
||||
this.prjPrcessTotal=this.getPrjCateCount(0);
|
||||
let item=this.projectCategory.length>0?this.projectCategory[0]:null;
|
||||
this.prjPrcessData[0].value=item && item.length>0?item[0].cnt:0;
|
||||
this.prjPrcessData[1].value=item && item.length>1?item[1].cnt:0;
|
||||
this.doPrjProcess(1, '在建项目');
|
||||
this.elKey++;
|
||||
});
|
||||
|
||||
|
@ -575,11 +576,12 @@ export default {
|
|||
doPrjProcess(n, text) {
|
||||
this.prjProcessNav = n;
|
||||
this.prjPrcessText = text;
|
||||
this.prjPrcessTotal=this.getPrjCateCount(n);
|
||||
let item=this.projectCategory.length>n?this.projectCategory[n]:null;
|
||||
this.prjPrcessData[0].value=item && item.length>0?item[0].cnt:0;
|
||||
this.prjPrcessData[1].value=item && item.length>1?item[1].cnt:0;
|
||||
this.elSumKey++;
|
||||
n--;
|
||||
this.prjPrcessTotal=this.getPrjCateCount(n);
|
||||
let item=this.projectCategory.length>n?this.projectCategory[n]:null;
|
||||
this.prjPrcessData[0].value=item && item.length>0?item[0].cnt:0;
|
||||
this.prjPrcessData[1].value=item && item.length>1?item[1].cnt:0;
|
||||
this.elSumKey++;
|
||||
},
|
||||
//劳务人员概况
|
||||
onWarningInfoNav(n) {
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" ref="dlg" class="index-dlg3" :class="'font-size-'+fontSize">
|
||||
<template slot="title">
|
||||
<div class="warning-info-title" style="padding-left: 20px;">
|
||||
<div :class="nav == 0 ? 'active' : ''" class="nav-item" @click="toggleNav(0)">在建项目</div>
|
||||
<div :class="nav == 1 ? 'active' : ''" class="nav-item" @click="toggleNav(1)">拟建项目</div>
|
||||
<div :class="nav == 2 ? 'active' : ''" class="nav-item" @click="toggleNav(2)">前期项目</div>
|
||||
<div :class="nav == 1 ? 'active' : ''" class="nav-item" @click="toggleNav(1)">在建项目({{ cnts[0] }})</div>
|
||||
<div :class="nav == 2 ? 'active' : ''" class="nav-item" @click="toggleNav(2)">拟建项目({{ cnts[1] }})</div>
|
||||
<div :class="nav == 4 ? 'active' : ''" class="nav-item" @click="toggleNav(4)">完成项目({{ cnts[2] }})</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="font-size-tools">
|
||||
|
@ -39,99 +39,67 @@
|
|||
</div>
|
||||
|
||||
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px;">
|
||||
<div v-show="nav == 0" v-for="(it, idx) in tableData1" class="data-item">
|
||||
<div v-for="(it, idx) in tableData" class="data-item">
|
||||
<el-row class="data-row" >
|
||||
|
||||
<el-col :span="12" style="display: flex;">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
|
||||
<div class="div-text">{{ it.prj }}</div>
|
||||
<div class="div-text">{{ it.projectName }}</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12" style="display: flex;">
|
||||
<el-col :span="12" style="display: flex;" v-if="nav!=4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
|
||||
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
|
||||
<div class="div-text" :class="getState(it.projectSchedule)">{{ it.projectSchedule==1?'正常':'滞后' }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="data-row">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
|
||||
<div class="data-row" v-if="nav!=4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">{{quarterlyName}}季度节点任务:</span>
|
||||
<div class="div-text">
|
||||
<div class="text-more-2" style="color:#01A9FF;" :title="it.task">{{ it.task}}</div>
|
||||
<div class="text-more-2" style="color:#01A9FF;" :title="it.task">{{ it.planTarget}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-row" v-if="nav!=2">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
|
||||
<div class="div-text">{{ it.porgress }}</div>
|
||||
<div class="div-text">
|
||||
{{ it.constructionProgress }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row">
|
||||
<div class="data-row" v-else>
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
|
||||
<div class="div-text node-list">
|
||||
<span v-for="(d,idx) in it.nodes" :key="idx" v-if="it.nodes && it.nodes.length>0" class="node-item">
|
||||
{{ d.nodeText}}:<span :class="'finish-'+d.finishState">{{d.finish }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="!it.nodes || it.nodes.length==0">
|
||||
暂无.
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-row" v-if="nav==4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">验收进展:</span>
|
||||
<div class="div-text">{{ it.acceptanceProgress }}</div>
|
||||
</div>
|
||||
<div class="data-row" v-if="nav==4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">结算进展:</span>
|
||||
<div class="div-text">{{ it.purchaseProgress }}</div>
|
||||
</div>
|
||||
<div class="data-row" v-if="nav==4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">运维进展:</span>
|
||||
<div class="div-text">{{ it.designProgress }}</div>
|
||||
</div>
|
||||
<div class="data-row" v-if="nav!=4">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">存在的问题:</span>
|
||||
<div class="div-text">{{ it.question }}</div>
|
||||
<div class="div-text">{{ it.existingProblem }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-show="nav == 1" v-for="(it, idx) in tableData2" class="data-item">
|
||||
<el-row class="data-row" >
|
||||
|
||||
<el-col :span="12" style="display: flex;">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
|
||||
<div class="div-text">{{ it.prj }}</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6" style="display: flex;">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
|
||||
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<div class="data-row">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
|
||||
<div class="div-text">
|
||||
<div class="text-more-2" style="color:#01A9FF;" :title="it.task">{{ it.task}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
|
||||
<div class="div-text">{{ it.porgress }}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前存在问题:</span>
|
||||
<div class="div-text">{{ it.question }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="nav == 2" v-for="(it, idx) in tableData3" class="data-item">
|
||||
<el-row class="data-row" >
|
||||
|
||||
<el-col :span="12" style="display: flex;">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
|
||||
<div class="div-text">{{ it.prj }}</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6" style="display: flex;">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
|
||||
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<div class="data-row">
|
||||
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
|
||||
<div class="div-text">
|
||||
<div class="text-more-2" style="color:#01A9FF;" :title="it.task">{{ it.task}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="nav == 2" v-if="tableData1.length==0" style="text-align: center;margin-top:200px;">
|
||||
|
||||
<div v-if="tableData.length==0" style="text-align: center;margin-top:200px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
<div v-show="nav == 2" v-if="tableData2.length==0" style="text-align: center;margin-top:200px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
<div v-show="nav == 2" v-if="tableData3.length==0" style="text-align: center;margin-top:200px;">
|
||||
<img src="images/nodata.png" style="width: 240px;">
|
||||
<div style="text-align: center;">暂无数据</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</MyDialog>
|
||||
</template>
|
||||
|
||||
|
@ -144,99 +112,107 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
nav: 0,
|
||||
quarterlyName:'',
|
||||
nav: 1,
|
||||
show: false,
|
||||
fontSize:0,
|
||||
tableData1: [],
|
||||
tableData2: [],
|
||||
tableData3: [],
|
||||
cnts:[],
|
||||
tableData:[]
|
||||
};
|
||||
},
|
||||
|
||||
|
||||
mounted() {
|
||||
window.dlg2 = this
|
||||
|
||||
/**在建项目 */
|
||||
this.tableData1 = [
|
||||
|
||||
{prj: '泾河新城荟锦坊一期', node: '滞后', task: '主楼主体结构建设至3层',porgress:'13#楼负二层墙柱钢筋完成,14#楼负一层架体模板搭设完成90%,15#楼负一层墙柱钢筋绑扎完成,16#楼负二层墙柱钢筋40道绑扎完成,17#楼二层墙柱钢筋绑扎完成40%,18#楼负二层结构完成,19#楼负一层1100㎡板面钢筋绑扎完成90%,20#楼一层墙柱钢筋绑扎完成,21#楼一层钢筋绑扎完成。车库面积2.8万㎡,筏板完成1.68万㎡,占比60%,结构完成0.84万㎡,占比30%。',question:'资金及重污染天气影响' },
|
||||
{prj: '泾河新城荟锦坊二期', node: '滞后', task: '222',porgress:'土方工程总量42万立方,累计完成40万立方,占比95.23%;3#楼西单元2层墙柱铝膜完成30%,东单元1层结构完成,6#楼1层铝膜安装完成,7#楼-1层梁板钢筋完成60%,10#楼2层铝膜安装完成,11#楼东单元1层结构完成,西单元1层梁板模板完成40%,-1层地下车库筏板面积3.2万㎡,完成2.4万㎡,占比75%,结构完成1.76万㎡,占比55%。',question:'资金及重污染天气影响' },
|
||||
{prj: '泾干片区棚户区改造一期', node: '滞后', task: '/',porgress:'真石漆施工完成12.7万㎡,占比98%;园路硬化完成,室外管网完成85%,面层铺装完成20%',question:'重污染天气影响' },
|
||||
{prj: '滨河北路(泾河二街-茶马大道)', node: '滞后', task: '8月份沥青铺设完成',porgress:'一工区素土翻挖完成2.0万m³,回填完成1.2万m³。二工区8%灰土换填完成1500m³,软基处理完成500m³,雨水沟槽回填80m。三工区雨水管道安装40m,Y35检查井完成管壁凿除、钢筋安装,雨水支管安装及回填完成100m。',question:'治污减霾影响,基泰苗木迁移' },
|
||||
{prj: '智能电子产业园', node: '滞后', task: '8月份办公楼装饰装修完成',porgress:'配套区21#宿舍楼室内装修完成93%,幕墙完成93%,外立面完成85%,22#宿舍楼室内装修完成91%,幕墙完成90%,外立面完成90%,25#办公楼二次结构完成95%,ALC板安装完成95%,屋面工程完成70%,26#办公楼二次结构完成95%,ALC板安装完成95%,幕墙立柱完成7%;小动力电池六栋厂房14、15#厂房外墙砌体及构造柱完成45%,19#厂房二次结构完成97%,抹灰完成10%,20#厂房,二次结构完成97%,屋面工程完成70%。',question:'资金影响' },
|
||||
{prj: '泾河云廊创新创业街区(A区)一期', node: '滞后', task: '进行土方开挖',porgress:'现场应急库房和库房、标养室、卫生间安装完成,柱状喷淋、施工现场水泵房、水箱安装完成,土方清表完成,地质勘探完成60%。',question:'/' },
|
||||
{prj: '城市阳台公园', node: '滞后', task: '单体二次结构施工',porgress:'DK3土方填筑15800m³(外进土源),DK3一级配电箱安装完成,地勘补勘完成,中间报告已出;累计完成土方DK2填方18300m³,挖方18300m³,地形整理7000m³,DK3填方22200m³,挖方2100m³,累计清表15300m³。',question:'基泰园林苗木大面积未迁移' },
|
||||
{prj: '泊湾中心', node: '滞后', task: '2#楼酒店精装施工完成,1#、3#楼公区装修施工完成,市政接驳施工完成50%',porgress:'2#楼地辐热施工完成80%,1#楼排水管、桥架安装完成95%,1#楼窗框安装完成60%。锦江之星酒店完成装修样板间墙面壁布、木地板铺贴,卫生间墙地砖施工。',question:'资金及治污减霾影响、更换劳务' },
|
||||
{prj: '泾河新城医疗健康科技产业园一期', node: '滞后', task: '家具安装完成',porgress:'战时医院砌体施工完成;医技楼管线开槽完成85%,医疗板龙骨完成55% ;门诊楼地下室设备基础完成;2#发热门诊及9#感染疾病楼竖向风管安装完成,支架安装完成60%;3至5#住院楼室外防水完成90%,室外虹吸雨排完成30%;6至8#住院楼抹灰工程完成60%,液氧站屋面女儿墙支模架搭设完成;8#住院楼室外南侧道路硬化完成,医疗板龙骨完成70%;10#楼至13#楼玻璃安装完成95%,;10#至11#楼给排水管道完成95%,11至13#楼室外管网施工完成85%,室外景观土建工作完成30%。',question:'交大运营团队及部分需求未定,资金及治污减霾影响' },
|
||||
{prj: '泾河新城光伏新能源产业园项目 (一期)', node: '滞后', task: '电池车间、动力站二次结构施工、废水站基础施工',porgress:'(1)指挥部北侧观摩区道路道牙石及铺砖完成;通道绿化完成;安全体验广场,质量样板展区栏杆安装完成;智慧科技馆安装完成30%;(2)1号厂房北侧正式围墙完成300米,新开挖围墙160米基础钢筋绑扎完成;厂房北侧、东侧永临道路施工完成950m;西侧永临道路灰土施工完成250m;厂房东侧、北侧基坑刷坡完成800米,西侧刷坡完成100m;厂房管桩工程桩累计完成169根(共2050根,累计完成8.24%,其中已交地部分1200根);CR- BL/5-6轴灰土换填完成;(3)2号厂房北侧永临道路180m开挖完成;厂房清表完成8万平米;(4)3号厂房东北侧80米正式围墙回填完成;东北侧永临道路开挖;(5)1号110kV变电站北侧永临道路排水沟施工完成;场内基坑开挖施工;(6)临建项目部区域场平完成70%;临建工人生活区开挖回填完成30%;(7)配合2号厂房文物挖掘工作。',question:'/' },
|
||||
|
||||
|
||||
{prj: '云如逸小区', node: '正常', task: '3#楼主体施工至17层;5#楼主体施工至14层',porgress:'开敞空间完成负一层外街石材铺装95%。住宅区完成1#楼二层梁板模板安装,2#楼八层墙柱钢筋绑扎50%,3#楼七层梁板模板安装,5#楼二层梁板钢筋绑扎,6#楼九层叠合板安装,7#楼十层主体结构,8#楼十二层墙柱模板50%,12#楼四层墙柱钢筋绑扎,13#楼五层梁板模板安装,15#楼八层梁板模板安装,16#楼四层梁板模板安装;',question:'/' },
|
||||
{prj: '云语间小区', node: '正常', task: '1#楼主体结构施工至24层;3#楼主体结构施工至19层',porgress:'开敞空间水景石材铺装完成80%,大区完成1#楼十七层、2#楼十六层、3#楼十五层、5#楼八层主体结构。幼儿园承台开挖完成。',question:'/' },
|
||||
{prj: '文化艺术中心', node: '正常', task: '图书馆、文化馆地上主体结构完成2层,市政配套钢箱梁加工完成8片',porgress:'北地块图书馆:总体进展地下主体结构完成9985㎡,地上一层钢结构完成100%(2500㎡),地上二层钢结构完成80%(2000㎡)。本周地上三层钢结构完成50%(1250㎡)。南地块艺术中心:B区(1555㎡)地下一层结构完成;A区(5679㎡)筏板、钢筋、模板、预埋等施工完成。本周A区地下一层结构完成至90%。',question:'/' },
|
||||
{prj: '泾河智谷(一期)', node: '正常', task: '西段:室外绿化工程完成3000㎡',porgress:'一标段:精装修完成,细节问题销项中;幕墙工程48000㎡,已完成47860㎡,剩余140㎡;室外铺装15696㎡,已基本完成;安装工程、给排水全部完成;屋面高耐竹地板完成30%;电梯安装完成100%;绿化上木完成90株,下木完成3000㎡;二标段:10-15层精装修全部完成;1-9层装修总计18555.64㎡,累计完成18000㎡,完成率97%;幕墙总面积51000㎡,累计完成50400㎡,完成率98%;安装工程完成95%,室外工程透水砖及石材铺装完成约14750㎡,绿化上木完成59株,下木完成约3200㎡,裙楼屋面木栈道完成约60%、汀步完成90%、草坪灯完成,景观地埋灯完成95%。',question:'/' },
|
||||
{prj: '泾河新城泾河北岸滩面治理及生态修复工程', node: '正常', task: '溢流堰5座、水系格宾石笼防护400m、园路300m',porgress:'完成设计方案调整,通过副主任办公会审议。准备将设计方案上报主任办公会审议。',question:'方案未上主任办公会,前期签证变更未解决' },
|
||||
{prj: '1980泾造中心(二期)', node: '正常', task: '室外工程、绿化工程施工完成',porgress:'1号2号宿舍楼外墙真石漆完97%,室内安装完成70%,装修完成50%;6号厂房墙面板、屋面板安装完成60%,安装工程完成80%,二次结构完成80%;室外管网完成95%,绿化种植完成42%。',question:'/' },
|
||||
{prj: '泾河新城分布式光伏发电项目', node: '正常', task: '完成招标、施工单位进场',porgress:'泾造中心分布式光伏项目本周发电量1.49万KWh;安全管理:绘制1980光伏发电项目风险四色分布图。',question:'/' },
|
||||
{prj: '环湖路(泾河七街-茶马大道)', node: '正常', task: '/',porgress:'环湖路东段非机动车道沥青砼上面层施工完成。',question:'/' },
|
||||
{prj: '崇文新街西段(泾河七街-环湖路)', node: '正常', task: '/',porgress:'盲道施工完成50%;非机动车道沥青面层施工完成。',question:'/' },
|
||||
{prj: '湖滨二路西段(泾河七街-茶马大道)', node: '正常', task: '/',porgress:'非机动车道沥青混凝土铺设完成。',question:'茶马大道-环湖路西段因基泰苗木迁移未赔偿到位,基泰方阻碍进场施工' },
|
||||
{prj: '湖滨四路西段(泾河七街-环湖路)', node: '正常', task: '/',porgress:'非机动车道沥青混凝土铺设完成。',question:'茶马大道-环湖路西段因基泰苗木迁移未赔偿到位,基泰方阻碍进场施工' },
|
||||
{prj: '泾河五街南段', node: '正常', task: '/',porgress:'机动车道下面层沥青摊铺完成。',question:'重污染天气影响' },
|
||||
{prj: '城市会客厅西侧路(泾河大道-滨河北路段)', node: '正常', task: '/',porgress:'非机动车道沥青混凝土摊铺完成;人行道透水混凝土摊铺完成。',question:'/' },
|
||||
{prj: '环湖路(崇文塔西路-滨河北路)', node: '正常', task: '8月份沥青铺设完成',porgress:'完成K1+282~K1+466段机动车道底基层10%石灰土;完成K1+512~K1+716段污水管道沟槽回填;完成K1+511.47~K1+713.153段路基回填土方600立方米。',question:'崇文塔西路-环湖路中段因基泰苗木迁移未赔偿到位,基泰方阻碍进场施工' },
|
||||
{prj: '崇德生态广场', node: '正常', task: '园路施工完成1000m;绿化地形整理完成',porgress:'绿植苗木拔草养护,竹木栈道透水砼浇筑85米。园区透水混凝土路面不锈钢压边110米,园区道路透水砼施工150米,庭院灯基础开挖5个,海绵城市溢水井周边整平。',question:'施工证办理过程中因开发建设部和资规局对总平图审批业务职责划分不明确,暂时搁置办理施工证' },
|
||||
{prj: '泾河崇文智慧康养产业园', node: '正常', task: '桩基施工完成200根',porgress:'本周完成基坑土方清运13709 m³,累计完成清运约128161 m³(包含垃圾土清运),完成71.1%。喷射混凝土本周完成250㎡,累计完成3740㎡,完成70%。锚索完成180m,累计完成751m,完成70.1%。槽钢上周安装150m,累计完成640m,完成59%。CFG桩基本周完成263根,累计完成415根,累计完成38.7%。',question:'臭氧管控影响土方施工' },
|
||||
{prj: '泾河新城锦樾坊', node: '正常', task: '主体结构施工至21层',porgress:'1#楼16层结构1100㎡完成,2#楼17层结构1100㎡完成50%,3#、4#楼20层结构1100㎡完成50%,5#楼7层结构900㎡完成,6#楼12层结构900㎡完成,7#、8#楼主体结构封顶,车库总建筑面积54633㎡,结构完成93%。',question:'/' },
|
||||
{prj: '泾河新城智谷科创园(二期)', node: '正常', task: '东侧地块:土方施工完成;西侧地块:土方施工完成',porgress:'现场累计出土87万m³。本周完成试桩2根,累计完成支护桩438根;本周完成降水井50口,降水井全部完成。',question:'臭氧管控影响土方施工' },
|
||||
{prj: '泊跃人工智能产业园项目', node: '正常', task: '主体结构施工至12层',porgress:'东塔六层顶板铺设施工完成90%。',question:'/' },
|
||||
{prj: '泊域人才中心', node: '正常', task: '主体结构施工至9层',porgress:'完成南楼三层卫生间反坎、栏板结构施工。完成北楼五层结构施工。',question:'/' },
|
||||
{prj: '泊创中心', node: '正常', task: '商业及配套负一层主体结构施工完成',porgress:'1#楼一层顶板模板安装完成70%;2#楼完成二层模架安装;3#楼负一层顶板模板安装完成50%。',question:'/' },
|
||||
{prj: '瀛洲新苑(一期)、(二期)幼儿园', node: '正常', task: '/',porgress:'室内装修已全部完成。',question:'/' },
|
||||
{prj: '泾河新城智谷周边配套项目一期', node: '正常', task: '基础施工',porgress:'搭设围挡559.6m,铺设级配碎石3000㎡;铺设透水混凝土垫层2800㎡,透水混凝土面层铺设350㎡,PC透水砖铺贴1220㎡,石材道牙铺贴60m,石材砖铺贴200㎡;给水管敷设1700m,预埋线管2500m,铺设YJV3*6电缆线1800m;绿化场地平整14000㎡,铺植草坪2850㎡;园路收边钢带安装240m,混凝土预制雨水井安装8座,排水管铺设120m。',question:'/' },
|
||||
{prj: '云语间小区配建幼儿园', node: '正常', task: '/',porgress:'正在进行土方施工',question:'临建拆除后,现场约1.5万m³土需外运' },
|
||||
|
||||
|
||||
|
||||
]
|
||||
|
||||
/**拟建项目进展明细表 */
|
||||
this.tableData2 = [
|
||||
{prj: '永乐消防站', node: '正常', task: '基础施工、主楼主体施工',porgress:'正在进行EPC招采',question:'/' },
|
||||
{prj: '高庄学校', node: '正常', task: '征拆和文勘完成,土地交付',porgress:'推进自规部报送主任会审议方案。',question:'8户拆迁未完成' },
|
||||
{prj: '城市阳台-院士坊', node: '滞后', task: '土方开挖及基坑支护施工完成',porgress:'方案已通过主任办公会,正在走EPC招采',question:'东侧基泰苗木未迁移(30%)' },
|
||||
{prj: '电力管沟项目', node: '滞后', task: '完成电力管沟施工20%',porgress:'可研准备报至行政审批局。',question:'/' },
|
||||
{prj: '泾河新城第一污水处理厂工程', node: '滞后', task: '完成土地供应,施工单位进场,进行土方开挖',porgress:'北厂区文堪施工;完善并细化项目全景计划;完成EPC技术文件、品牌表及设计任务书编制;完成电子束和芬顿实验及数据对比;完善综合楼、南厂区临建及南北厂区连通管线方案;北厂区市政接口需求提资泾河市政;南厂区雨水接入需求提资泾河市政。',question:'1.土地未摘牌(外部);2.泾河一污南厂区与泾河大道进出场道路暂缺规划指标;3.泾河一污南厂区存在文物遗迹,需协调加快推进文物发掘工作。' },
|
||||
{prj: '泾河新城第一污水处理厂污水专线及便道', node: '滞后', task: '完成现场交地及文勘验收,进行土方开挖,顶管工作坑施工',porgress:'污水厂方案未确定无法进行方案设计,收集前期资料',question:'泾河一污缺少规划进出场道路指标,需协调解决泾河一污至泾河大道规划道路' },
|
||||
{prj: '云和悦过街天桥、云语间过街天桥、云如逸过街天桥', node: '滞后', task: '箱梁施工完成',porgress:'完成立项批复。现方案优化完成,下一步完成代建协议签署后开展初步设计。开始编制设计及初设任务书。',question:'/' },
|
||||
{prj: '棚改小区9-12', node: '滞后', task: '/',porgress:'已完成立项,方案比选完成,正在跟进管委会上会流程;',question:'1.无相关会议纪要及委托单; 2.土地正在报批。3.现场征地拆迁未完成9、12由于征地拆迁款未到位,现场无法进行剩余拆除及垃圾清运工作。' },
|
||||
{prj: '光伏公园', node: '滞后', task: '/',porgress:'方案已通过副主任专题会,等待上主任会;',question:'方案已上报开发建设部,等待上主任办公会,目前正在等待会议安排。' },
|
||||
{prj: '住区公园5', node: '滞后', task: '/',porgress:'根据开发建设部专家会意见优化完善设计方案,重新报送完成,已完成专家会,已报送专题会,待开会审议。',question:'方案未上副主任专题会及主任办公会' },
|
||||
{prj: '泾河新城崇文大桥两侧辅道工程(文塔南路-正阳西四路)', node: '滞后', task: '完成现场交地及文勘验收、完成招标,施工单位进场',porgress:'按现状完成方案设计,后续红线确定后进行方案修改,设计决策委员会已召开。修改专家意见。',question:'土地未报批;南接河提道路规划范围有所调整,等待资规局红线确认。' },
|
||||
{prj: '芯片项目南侧路(泾河十街-泾河八街)', node: '滞后', task: '管网工程全部完成',porgress:'可研完成。准备立项资料。',question:'土地正在报批,红线范围内存水泥路、堆土、建筑垃圾等未清理。新版红线有所变动,等待资规局提供新版红线图。' },
|
||||
{prj: '泾河八街南段(泾河大道-芯片项目南侧路)', node: '滞后', task: '管网工程全部完成',porgress:'可研完成。准备立项资料。',question:'土地正在报批,红线范围内存水泥路、堆土、建筑垃圾等未清理。新版红线有所变动,等待资规局提供新版红线图。' },
|
||||
{prj: '崇文塔北路北段(崇文塔东路-高泾大道)', node: '滞后', task: '/',porgress:'可研完成。准备立项资料。',question:'土地正在报批,红线范围内有拆迁建筑垃圾、杂树未清运。' },
|
||||
{prj: '泾河云廊天桥', node: '滞后', task: '/',porgress:'正在进行前期策划,收集前期资料',question:'/' },
|
||||
{prj: '城市阳台酒店', node: '滞后', task: '土方开挖及基坑支护施工',porgress:'品牌未确定',question:'品牌未确定' },
|
||||
{prj: '芯片产业园', node: '滞后', task: '机电、消防、装修施工',porgress:'3月24日已发EPC、监理单位招标公告;项目控制点已完成;青苗清表基本完成,迁坟暂未开始;临时开口审批手续已完成,正在办理临时围挡等手续;跟进办理项目部临建用地手续。',question:'1.方案未上会(外部); 2.村民的征迁赔偿款和遗留问题未处理,导致临时围墙无法施工,地形测绘工作无法进行' },
|
||||
{prj: '泾河水厂配套道路工程', node: '滞后', task: '/',porgress:'转为前期项目',question:'方案未开始(内部);因道路规划问题' },
|
||||
{prj: '泾河水厂供水工程、配套管线', node: '滞后', task: '/',porgress:'已完成招标代理、可研、稳评、水资源论证及环评招采。可研报告修编初版完成;取得不动产单元号和宗地代码,编制权籍调查报告;办理土地契税及印花税缴纳。',question:'1.因征地款未落实到位,围墙圈建无法实施;2.引汉济渭北关分水口位于泾阳县区域,需与泾阳县协调水权分配问题以及引汉济渭原水输水管线路由审批;3.厂区与原点大道之间联络通道无规划市政道路,暂缺规划指标;4.水厂规划用地剩余20亩地树木暂未清表。城建计划调整为前期项目。' },
|
||||
{prj: '崇文塔七路西段(泾河一街-泾河二路北段)', node: '滞后', task: '/',porgress:'转为前期项目',question:'/' },
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
methods: {
|
||||
getState(s){
|
||||
return 'state-'+['','正常','滞后'].indexOf(s);
|
||||
return 'state-'+s;
|
||||
},
|
||||
toggleNav(n) {
|
||||
this.nav = n;
|
||||
let d=new Date();
|
||||
let m=d.getMonth()+1;
|
||||
let q=+((m+2)/3).toFixed(0)
|
||||
this.quarterlyName=["","一","二","三","四"][+q];
|
||||
let y=d.getFullYear();
|
||||
if(n==1){
|
||||
this.loadData1(n,y,q);
|
||||
}
|
||||
if(n==2){
|
||||
this.loadData2(n,y,q);
|
||||
}
|
||||
if(n==4){
|
||||
this.loadData4(n);
|
||||
}
|
||||
|
||||
},
|
||||
showDialog(n) {
|
||||
loadData1(n,y,q){
|
||||
let ajaxs=[
|
||||
this.$api.quarterlyAssess.queryByProjectType({
|
||||
id:n,
|
||||
year:y,
|
||||
quarterly:q
|
||||
}),
|
||||
this.$api.schedule.selectByProjectType(n)
|
||||
];
|
||||
this.$api.http.all(ajaxs).then(res=>{
|
||||
let prjs=res[0].data||[];
|
||||
let tmps=res[1].data||[];
|
||||
this.tableData=prjs.map(it=>{
|
||||
it.projectName=it.project?.projectName||'';
|
||||
it.projectSchedule=it.project?.projectSchedule||'1';
|
||||
let objs=tmps.filter(item=>it.id==item.projectId);
|
||||
if(objs.length>0){
|
||||
it.constructionProgress=objs[0].constructionProgress||'';
|
||||
it.existingProblem=objs[0].existingProblem||'';
|
||||
}
|
||||
return it;
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
loadData2(n,y,q){
|
||||
let ajaxs=[
|
||||
this.$api.quarterlyAssess.queryByProjectType({
|
||||
id:n,
|
||||
year:y,
|
||||
quarterly:q
|
||||
}),
|
||||
this.$api.schedule.selectByProjectType(n),
|
||||
this.$api.buildNode.queryByProjectType(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']
|
||||
this.tableData=prjs.map(it=>{
|
||||
it.projectName=it.project?.projectName||'';
|
||||
it.projectSchedule=it.project?.projectSchedule||'1';
|
||||
let objs=tmps.filter(item=>it.id==item.projectId);
|
||||
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)));
|
||||
return it;
|
||||
})
|
||||
})
|
||||
},
|
||||
loadData4(n){
|
||||
this.$api.schedule.selectByProjectType(n).then(d=>{
|
||||
this.tableData=(d.data||[]).map(it=>{
|
||||
it.projectName=it.surProject?.projectName||''
|
||||
it.projectSchedule=it.surProject?.projectSchedule||'1'
|
||||
return it;
|
||||
});
|
||||
})
|
||||
},
|
||||
showDialog(n,cnts) {
|
||||
this.cnts=cnts;
|
||||
this.nav=n;
|
||||
this.toggleNav(n);
|
||||
this.show = true
|
||||
}
|
||||
},
|
||||
|
@ -348,7 +324,18 @@ export default {
|
|||
}
|
||||
.popup-project-introduction-min {
|
||||
transform: translateY(100px);
|
||||
|
||||
.node-list{
|
||||
.node-item{
|
||||
&::after{
|
||||
content: ",";
|
||||
}
|
||||
&:last-child{
|
||||
&::after{
|
||||
content: " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.data-item {
|
||||
border-bottom: solid 1px #fff;
|
||||
padding: 12px 0px 12px 20px;
|
||||
|
|
|
@ -10,4 +10,11 @@ Vue.prototype.$bus=new Vue();
|
|||
Vue.prototype.$apiPath="/jhapi"
|
||||
Vue.prototype.$dt=dayjs;
|
||||
Vue.prototype.$tryToJson=tryToJson
|
||||
window.jhcaches={};
|
||||
window.jhcaches={};
|
||||
/*
|
||||
Api.project.getInfo().then(d=>{
|
||||
if(d.code==200){
|
||||
window.__info__=d;
|
||||
}
|
||||
})
|
||||
*/
|
|
@ -223,11 +223,11 @@ export default {
|
|||
|
||||
&.font-size-2 {
|
||||
.header-title{
|
||||
font-size: 32px;
|
||||
font-size: 28px;
|
||||
}
|
||||
.popup-project-introduction-details {
|
||||
.main-content{
|
||||
font-size: 32px;
|
||||
font-size: 28px;
|
||||
line-height: 64px;
|
||||
|
||||
.head-title-tab {
|
||||
|
@ -256,7 +256,7 @@ export default {
|
|||
margin-top: 16px;
|
||||
.lbl-title {
|
||||
width: 150px;
|
||||
font-size: 32px;
|
||||
font-size: 28px;
|
||||
width: 240px !important;
|
||||
}
|
||||
}
|
||||
|
@ -298,7 +298,11 @@ export default {
|
|||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
.sp-state {
|
||||
top:18px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.node-item-lvl2 {
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
<template>
|
||||
<div class="build-node-item">
|
||||
<div class="build-node-item" style="position: relative;">
|
||||
<span class="lbl-title" v-show="showLabel" @click="doHeaderClick">
|
||||
<i class="el-icon-caret" :class="item.expend?'el-icon-caret-bottom':'el-icon-caret-right'"></i>
|
||||
<i class="el-icon-caret" :class="item.expend ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>
|
||||
{{ item.nodeText }}</span>
|
||||
<div class="date-info">
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">计划开始时间:</span>
|
||||
<span class="sp-date">{{formatDate(item.planStartDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">计划完成时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.planEndDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">实际开始时间:</span>
|
||||
<span class="sp-date">{{formatDate(item.startDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">实际完成时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.endDate)}}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">计划开始时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.planStartDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">计划完成时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.planEndDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">实际开始时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.startDate) }}</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span class="sp-label">实际完成时间:</span>
|
||||
<span class="sp-date">{{ formatDate(item.endDate) }}</span>
|
||||
</el-col>
|
||||
</div>
|
||||
<span :class="'finish-' + item.finishState" class="sp-state">{{ item.finish }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -39,22 +40,22 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
formatDate(dt){
|
||||
if(dt){
|
||||
formatDate(dt) {
|
||||
if (dt) {
|
||||
return this.$dt(dt).format("YYYY-MM-DD");
|
||||
}
|
||||
return "暂无";
|
||||
},
|
||||
doHeaderClick(){
|
||||
doHeaderClick() {
|
||||
this.$emit("header-click");
|
||||
}
|
||||
},
|
||||
|
@ -62,13 +63,23 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.build-node-item{
|
||||
.build-node-item {
|
||||
.lbl-title {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
.sp-label{
|
||||
|
||||
.sp-label {
|
||||
color: #d6f10a;
|
||||
}
|
||||
|
||||
.sp-state {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
width: 170px;
|
||||
line-height: 32px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -800,6 +800,14 @@ export default {
|
|||
this.getProjectId(id => {
|
||||
this.$api.project.getProjectBuildNode(id).then(d => {
|
||||
this.projectBuildNode = this.$api.buildNode.covertData(d.data || []).filter(it => it.lvl.length == 2);
|
||||
this.maxWidth=200*this.projectBuildNode.length;
|
||||
let n=0;
|
||||
for(let i=0;i<this.projectBuildNode.length;i++){
|
||||
if(this.projectBuildNode[i].finish=="进行中"){
|
||||
n=i;
|
||||
}
|
||||
}
|
||||
this.minWidth=n*200+100;
|
||||
});
|
||||
this.getDeptWorksList();
|
||||
});
|
||||
|
@ -809,7 +817,7 @@ export default {
|
|||
//设备概况点击事件定时器
|
||||
this.overviewInterval = setInterval(this.overviewClick, 5000);
|
||||
//重大节点预期预警
|
||||
this.getTimeAxisData()
|
||||
//this.getTimeAxisData()
|
||||
//项目概况
|
||||
this.getProjectOverview(JSON.parse(localStorage.getItem("data1")).id)
|
||||
//正在发生 定时器
|
||||
|
@ -996,55 +1004,55 @@ export default {
|
|||
planTime: '2021-07-01',
|
||||
actualTima: '2021-10-31',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '土地获取',
|
||||
planTime: '2021-03-01',
|
||||
actualTima: '2021-12-25',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '方案设计',
|
||||
planTime: '2021-05-01',
|
||||
actualTima: '2021-10-31',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
}, {
|
||||
title: '报建',
|
||||
planTime: '2021-09-15',
|
||||
actualTima: '2022-10-31',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '招采',
|
||||
planTime: '2021-10-15',
|
||||
actualTima: '2021-12-25',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '施工阶段',
|
||||
planTime: '2022-06-01',
|
||||
actualTima: '2023-12-31',
|
||||
expectDays: '60',
|
||||
state: 1, // 0 正常完工 1 预期
|
||||
state: 1, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '验收阶段',
|
||||
planTime: '2024-01-01',
|
||||
actualTima: '2024-06-30',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
{
|
||||
title: '交付阶段',
|
||||
planTime: '2024-07-01',
|
||||
actualTima: '2024-07-31',
|
||||
expectDays: '0',
|
||||
state: 0, // 0 正常完工 1 预期
|
||||
state: 0, // 0 正常完成 1 预期
|
||||
},
|
||||
]
|
||||
var index = 0
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
getPrjCateCount(0) }})</div>
|
||||
<div :class="pushNav == 1 ? 'active' : ''" @click="doPushNav(1, '拟建项目')">拟建项目({{
|
||||
getPrjCateCount(1) }})</div>
|
||||
<div :class="pushNav == 2 ? 'active' : ''" @click="doPushNav(2, '完工项目')">完工项目({{
|
||||
<div :class="pushNav == 2 ? 'active' : ''" @click="doPushNav(2, '完成项目')">完成项目({{
|
||||
getPrjCateCount(2) }})</div>
|
||||
</div>
|
||||
<el-row>
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
</div>
|
||||
<div class="video-enlarge-content">
|
||||
<div :style="playDivCss">
|
||||
<video src="rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4"></video>
|
||||
<video v-if="type != 'hk' && type != 'hzhk' && !exception" ref="playDiv"
|
||||
style="height: 100%;width: 100%" controls autoplay muted webkit-playsinline
|
||||
playsinline></video>
|
||||
|
|
|
@ -42,11 +42,17 @@
|
|||
}
|
||||
}
|
||||
.finish-0{
|
||||
color: #01A9FF;
|
||||
color: #e6a23c;
|
||||
}
|
||||
.finish-1{
|
||||
color: red;
|
||||
}
|
||||
.finish-2{
|
||||
color: #01A9FF;
|
||||
}
|
||||
.finish-3{
|
||||
color: green;
|
||||
}
|
||||
.finish-4{
|
||||
color: #a2c8f9;
|
||||
}
|
|
@ -79,12 +79,17 @@ service.interceptors.response.use(res => {
|
|||
isRelogin.show = true;
|
||||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
|
||||
isRelogin.show = false;
|
||||
location.href = '/index';
|
||||
if(location.href.indexOf("localhost")>=0){
|
||||
//location.href = `/#/login?redirect=${encodeURIComponent("http://localhost:3000/jhbs/")}`;
|
||||
location.href=`http://localhost/#/login?redirect=${encodeURI('http://localhost:3000/jhbs/')}`
|
||||
}else{
|
||||
location.href = `/#/login?redirect=${encodeURIComponent("/jhbs/")}`;
|
||||
}
|
||||
}).catch(() => {
|
||||
isRelogin.show = false;
|
||||
});
|
||||
}
|
||||
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
|
||||
return Promise.reject('error')
|
||||
} else if (code === 500) {
|
||||
Message({ message: msg, type: 'error' })
|
||||
return Promise.reject(new Error(msg))
|
||||
|
@ -140,4 +145,5 @@ export function download(url, params, filename, config) {
|
|||
})
|
||||
}
|
||||
|
||||
export { axios,service}
|
||||
export default service
|
||||
|
|
Loading…
Reference in New Issue