update code

dev-login
haha 2023-08-23 00:03:22 +08:00
parent 40017c5aca
commit 0e0dc1234c
20 changed files with 366 additions and 258 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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
};

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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() {

View File

@ -8,4 +8,4 @@ const fixElTableErr = (table) => {
};
};
// 一定要在Vue.use之前执行此函数
fixElTableErr(Table);
fixElTableErr(Table);

View File

@ -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>

View File

@ -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) {

View File

@ -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。三工区雨水管道安装40mY35检查井完成管壁凿除、钢筋安装雨水支管安装及回填完成100m。',question:'治污减霾影响,基泰苗木迁移' },
{prj: '智能电子产业园', node: '滞后', task: '8月份办公楼装饰装修完成',porgress:'配套区21#宿舍楼室内装修完成93%幕墙完成93%外立面完成85%22#宿舍楼室内装修完成91%幕墙完成90%外立面完成90%25#办公楼二次结构完成95ALC板安装完成95屋面工程完成70%26#办公楼二次结构完成95ALC板安装完成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%21号厂房北侧正式围墙完成300米新开挖围墙160米基础钢筋绑扎完成厂房北侧、东侧永临道路施工完成950m西侧永临道路灰土施工完成250m厂房东侧、北侧基坑刷坡完成800米西侧刷坡完成100m厂房管桩工程桩累计完成169根共2050根累计完成8.24%其中已交地部分1200根CR- BL/5-6轴灰土换填完成32号厂房北侧永临道路180m开挖完成厂房清表完成8万平米43号厂房东北侧80米正式围墙回填完成东北侧永临道路开挖51号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+282K1+466段机动车道底基层10%石灰土完成K1+512K1+716段污水管道沟槽回填完成K1+511.47K1+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;

View File

@ -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;
}
})
*/

View File

@ -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 {

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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;
}

View File

@ -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