Merge branch 'dev' of http://62.234.3.186:3000/sxyanzhu/jhbigscreen into dev
commit
9194ede270
|
@ -27,7 +27,6 @@ const safetySummaryByProject=(deptId,roleType)=>{
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//质量整改-安全分类汇总(按项目)
|
//质量整改-安全分类汇总(按项目)
|
||||||
const qualitySummaryByProject=(deptId,roleType)=>{
|
const qualitySummaryByProject=(deptId,roleType)=>{
|
||||||
return request({
|
return request({
|
||||||
|
@ -36,6 +35,17 @@ const qualitySummaryByProject=(deptId,roleType)=>{
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default{
|
//项目监测预警查询,用于大屏项目概况
|
||||||
safetySummary,qualitySummary,safetySummaryByProject,qualitySummaryByProject
|
const getMonitAndWarning=(deptId,projectId=0)=>{
|
||||||
|
return request({
|
||||||
|
url: `bgscreen/problemmodify/getMonitAndWarning?deptId=${deptId}&projectId=${projectId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default{
|
||||||
|
safetySummary,qualitySummary,safetySummaryByProject,qualitySummaryByProject,getMonitAndWarning
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,70 @@ const getProgressProjects=()=>{
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
export default{
|
const groupByProjectCategory=(cb)=>{
|
||||||
findProjectByDept,
|
request({
|
||||||
getProjectBuildNode,
|
url:`bgscreen/project/groupByProjectCategory`,
|
||||||
getProgressProjects
|
method: 'get'
|
||||||
|
}).then(res=>{
|
||||||
|
let objs=(res.data||[]).map(it=>{
|
||||||
|
return {
|
||||||
|
id:it.deptName,
|
||||||
|
label:it.projectName,
|
||||||
|
schedule:it.projectSchedule,
|
||||||
|
cnt:it.deptId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const getItems=(id,schedule)=>{
|
||||||
|
let tmps=objs.filter(d=>d.id==id && d.schedule==schedule);
|
||||||
|
if(tmps.length>0){
|
||||||
|
return tmps[0];
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
id:id,schedule:schedule,cnt:0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let ret1= [getItems(1,1),getItems(1,2)];
|
||||||
|
let ret2= [getItems(2,1),getItems(2,2)];
|
||||||
|
let ret3= [getItems(3,1),getItems(3,2)];
|
||||||
|
let rets= [
|
||||||
|
ret1,ret2,ret3
|
||||||
|
];
|
||||||
|
if(cb){
|
||||||
|
cb(rets);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const groupByCategory=(deptId,type)=>{
|
||||||
|
return request({
|
||||||
|
url: `bgscreen/project/groupByCategory`,
|
||||||
|
method: 'post',
|
||||||
|
data:{
|
||||||
|
deptId:deptId,
|
||||||
|
id:type
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const groupByLevel=(deptId,type)=>{
|
||||||
|
return request({
|
||||||
|
url: `bgscreen/project/groupByLevel`,
|
||||||
|
method: 'post',
|
||||||
|
data:{
|
||||||
|
deptId:deptId,
|
||||||
|
id:type
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default{
|
||||||
|
findProjectByDept,
|
||||||
|
getProjectBuildNode,
|
||||||
|
getProgressProjects,
|
||||||
|
groupByProjectCategory,
|
||||||
|
groupByCategory,
|
||||||
|
groupByLevel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
Vue.component("project-overview-chart", {
|
Vue.component("project-overview-chart", {
|
||||||
template: `
|
template: `
|
||||||
<div style="position: relative" @click="doClick">
|
<div class='project-overview-chart' style="position: relative" @click="doClick">
|
||||||
<div :style="{'height': height+'px'}" ref="warningPieChart">
|
<div :style="{'height': height+'px'}" ref="warningPieChart">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -124,20 +124,23 @@ Vue.component("project-overview-chart", {
|
||||||
title: {
|
title: {
|
||||||
text: this.maintitle||total_datas,
|
text: this.maintitle||total_datas,
|
||||||
subtext: this.text,
|
subtext: this.text,
|
||||||
x: "85",
|
textAlign:'center',
|
||||||
y: "89",
|
top:'top',
|
||||||
|
itemGap :10,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#0dd2fd",
|
color: "#0dd2fd",
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
align: "center",
|
align: "center",
|
||||||
width: "200px",
|
|
||||||
},
|
},
|
||||||
subtextStyle: {
|
subtextStyle: {
|
||||||
color: "#a5b5f0",
|
color: "#a5b5f0",
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
|
padding:[95,0,0,110],
|
||||||
|
left:'left'
|
||||||
|
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'item',
|
trigger: 'item',
|
||||||
|
|
|
@ -10,6 +10,9 @@ Vue.component("rank-chart", {
|
||||||
height:{
|
height:{
|
||||||
type:Number
|
type:Number
|
||||||
},
|
},
|
||||||
|
width:{
|
||||||
|
type:Number
|
||||||
|
},
|
||||||
showval:{
|
showval:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false
|
default:false
|
||||||
|
@ -119,7 +122,7 @@ Vue.component("rank-chart", {
|
||||||
fontSize:'14',
|
fontSize:'14',
|
||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
width: this.showval?280:300,
|
width: this.width?this.width:this.showval?280:300,
|
||||||
color: '#c6d9fa',
|
color: '#c6d9fa',
|
||||||
padding:[0,0,0,10],
|
padding:[0,0,0,10],
|
||||||
fontSize:'16',
|
fontSize:'16',
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
<template>
|
||||||
|
<el-row :key="elKey">
|
||||||
|
<el-col :span="8">
|
||||||
|
<div class="time-study-value">
|
||||||
|
<p>今日预警数</p>
|
||||||
|
<div class="analyse-num"><span>{{ todayCnt }}</span> 个</div>
|
||||||
|
</div>
|
||||||
|
<div class="time-study-value">
|
||||||
|
<p>本周预警数</p>
|
||||||
|
<div class="analyse-num"><span>{{ weekCnt}}</span> 个</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
|
<div class="survey-oil-title">
|
||||||
|
<div class="survey-oil-hr"></div>
|
||||||
|
<div class="survey-oil-text">预警类型</div>
|
||||||
|
</div>
|
||||||
|
<div class="analyse-number-max" id="afootOverflowType" style="height: unset;">
|
||||||
|
<div class="glr-login-number-max analyse-num-max" v-for="(item, idx) in warningType" style="height: unset;"
|
||||||
|
:key="idx">
|
||||||
|
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
||||||
|
<div class="glr-login-number analyse-login-numbe">
|
||||||
|
<div><img src="images/text_red_spot.png">{{ item.name }}</div>
|
||||||
|
<div class="glr-rate-value glr-rate-red-value">
|
||||||
|
<span>{{ item.data }}/{{ item.total }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'JhbigscreenMonitAndWarning',
|
||||||
|
props:{
|
||||||
|
type:{
|
||||||
|
type:String,
|
||||||
|
default:'index'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
elKey:0,
|
||||||
|
prjInfo:{},
|
||||||
|
deptInfo:{},
|
||||||
|
todayCnt:0,
|
||||||
|
weekCnt:0,
|
||||||
|
warningType: [
|
||||||
|
{
|
||||||
|
name: 'AI预警',
|
||||||
|
data: 0,
|
||||||
|
total: 0
|
||||||
|
}, {
|
||||||
|
name: '安全预警',
|
||||||
|
data: 0,
|
||||||
|
total: 0
|
||||||
|
}, {
|
||||||
|
name: '质量预警',
|
||||||
|
data: 0,
|
||||||
|
total: 0
|
||||||
|
}, {
|
||||||
|
name: '环境预警',
|
||||||
|
data: 0,
|
||||||
|
total: 0
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
this.$bus.$on("projectChange", res => {
|
||||||
|
this.prjInfo = res;
|
||||||
|
if(this.deptInfo.text){
|
||||||
|
this.getMonitAndWarning();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$bus.$on("deptChange",dept=>{
|
||||||
|
this.deptInfo=dept;
|
||||||
|
if(this.prjInfo.id){
|
||||||
|
this.getMonitAndWarning();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getMonitAndWarning(){
|
||||||
|
let prjId=0;
|
||||||
|
if(this.type=='detail'){
|
||||||
|
prjId=this.prjInfo.id;
|
||||||
|
}
|
||||||
|
this.$api.problemmodify.getMonitAndWarning(this.deptInfo.id,prjId).then(d=>{
|
||||||
|
let tmps=d.data?.today||[];
|
||||||
|
let sum=0;
|
||||||
|
tmps.forEach(it=>{
|
||||||
|
sum+=it.id;
|
||||||
|
})
|
||||||
|
this.todayCnt=sum;
|
||||||
|
sum=0;
|
||||||
|
tmps=d.data?.week||[];
|
||||||
|
tmps.forEach(it=>{
|
||||||
|
sum+=it.id;
|
||||||
|
})
|
||||||
|
this.weekCnt=sum;
|
||||||
|
let data=0;
|
||||||
|
sum=0;
|
||||||
|
tmps=d.data?.group||[];
|
||||||
|
let objs=tmps.filter(it=>it.infoType==0);
|
||||||
|
objs.forEach(it=>{
|
||||||
|
sum+=it.id;
|
||||||
|
if(it.checkState==4){
|
||||||
|
data+=it.id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.warningType[1].data=data;
|
||||||
|
this.warningType[1].total=sum;
|
||||||
|
data=0;
|
||||||
|
sum=0;
|
||||||
|
tmps=d.data?.group||[];
|
||||||
|
objs=tmps.filter(it=>it.infoType==1);
|
||||||
|
objs.forEach(it=>{
|
||||||
|
sum+=it.id;
|
||||||
|
if(it.checkState!=4){
|
||||||
|
data+=it.id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.warningType[2].data=data;
|
||||||
|
this.warningType[2].total=sum;
|
||||||
|
this.elKey++;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
|
@ -8,30 +8,37 @@
|
||||||
<div class="screen-content">
|
<div class="screen-content">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6" style="position: relative;">
|
<el-col :span="6" style="position: relative;">
|
||||||
<module-one-2-1 label="集团项目总览">
|
<module-one-2-1 label="集团项目总览" :key="elKey">
|
||||||
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 0px;top: 8px;" @click="doShowDlg1">
|
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 0px;top: 8px;"
|
||||||
|
@click="doShowDlg1">
|
||||||
<div class="survey_title">
|
<div class="survey_title">
|
||||||
<div class="survey_title_btn">
|
<div class="survey_title_btn">
|
||||||
<div :class="overview==0?'survey_title_btn_min active':'survey_title_btn_min'" @click="onClickoOverview(0)">项目数</div>
|
<div :class="overview == 0 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
|
||||||
|
@click="onClickoOverview(0)">项目数</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="survey_title_btn">
|
<div class="survey_title_btn">
|
||||||
<div :class="overview==1?'survey_title_btn_min active':'survey_title_btn_min'" @click="onClickoOverview(1)">项目总投资</div>
|
<div :class="overview == 1 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
|
||||||
|
@click="onClickoOverview(1)">项目总投资</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="survey_title_btn">
|
<div class="survey_title_btn">
|
||||||
<div :class="overview==2?'survey_title_btn_min active':'survey_title_btn_min'" @click="onClickoOverview(2)">项目年投资</div>
|
<div :class="overview == 2 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
|
||||||
|
@click="onClickoOverview(2)">项目年投资</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<project-overview-chart @clickme="doShowDlg3" :key="overview" :sp="''" :maintitle="overviewTotal" :legend-opt="legendOpt1" :typedata="typeDistributionData" :text="overviewText" :height="230"></project-overview-chart>
|
<project-overview-chart @clickme="doShowDlg3" :key="overview" :sp="''"
|
||||||
|
:maintitle="overviewTotal" :legend-opt="legendOpt1" :typedata="typeDistributionData"
|
||||||
|
:text="overviewText" :height="230"></project-overview-chart>
|
||||||
|
|
||||||
<rank-chart :data="availabilityData" :showval="true" :height="240"></rank-chart>
|
<rank-chart :data="availabilityData" :showval="true" :height="300" :width="projectCategoryWidth"></rank-chart>
|
||||||
|
|
||||||
</module-one-2-1>
|
</module-one-2-1>
|
||||||
<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="qualityNav==0?'active':''" @click="qualityNav=0">安全管理</div>
|
<div :class="qualityNav == 0 ? 'active' : ''" @click="qualityNavClick(0)">安全管理</div>
|
||||||
<div :class="qualityNav==1?'active':''" @click="qualityNav=1">质量管理</div>
|
<div :class="qualityNav == 1 ? 'active' : ''" @click="qualityNavClick(1)">质量管理</div>
|
||||||
</div>
|
</div>
|
||||||
<project-overview-chart :sp="'\n'" maintitle="205" :legend-opt="legendOpt2" :typedata="dangersDatas" text="隐患总数" :height="230"></project-overview-chart>
|
<project-overview-chart :sp="'\n'" :maintitle="qualityNavTotal" :legend-opt="legendOpt2" :key="elKey"
|
||||||
|
:typedata="dangersDatas" :text="qualityNavTitle" :height="220" style="top:0px"></project-overview-chart>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
@ -53,31 +60,73 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="survey_content_number labour-survey_content_number">
|
<div class="survey_content_number labour-survey_content_number">
|
||||||
<div class="survey_content_value"><span>{{laborPersonnelTotal}}</span> 人</div>
|
<div class="survey_content_value"><span>{{ laborPersonnelTotal }}</span> 人
|
||||||
|
</div>
|
||||||
<p>{{ staffText }}</p>
|
<p>{{ staffText }}</p>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<staff-survey-chart :height="220" :data="laborPersonnelData" :width="140"></staff-survey-chart>
|
<staff-survey-chart :height="220" :data="laborPersonnelData"
|
||||||
|
:width="140"></staff-survey-chart>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" style="position: relative;">
|
<el-col :span="12" style="position: relative;">
|
||||||
<module-one-1-1 label="项目进度汇总">
|
<module-one-1-1 label="项目进度汇总">
|
||||||
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 0px;top: 8px;" @click="doShowDlg2">
|
<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="warning-info-title" style="padding-left: 20px;">
|
||||||
<div :class="prjProcessNav==0?'active':''" @click="doPrjProcess(0,'在建项目')">在建项目</div>
|
<div :class="prjProcessNav == 0 ? 'active' : ''" @click="doPrjProcess(0, '在建项目')">在建项目({{ getPrjCateCount(0) }})
|
||||||
<div :class="prjProcessNav==1?'active':''" @click="doPrjProcess(1,'拟建项目')">拟建项目</div>
|
</div>
|
||||||
<div :class="prjProcessNav==2?'active':''" @click="doPrjProcess(2,'验收项目')">前期项目</div>
|
<div :class="prjProcessNav == 1 ? 'active' : ''" @click="doPrjProcess(1, '拟建项目')">拟建项目({{ getPrjCateCount(1) }})
|
||||||
|
</div>
|
||||||
|
<div :class="prjProcessNav == 2 ? 'active' : ''" @click="doPrjProcess(2, '验收项目')">前期项目({{ getPrjCateCount(2) }})
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="survey_content">
|
<div class="survey_content">
|
||||||
<div class="survey_content_img">
|
<div class="survey_content_img">
|
||||||
<svg v-if="prjProcessNav==0" 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"><path d="M510.0032 492.9536c-12.16 0-24.3456-2.3808-35.9424-7.1168L71.7824 300.5952c-11.3408-4.6336-18.816-15.5648-19.072-27.8016s6.784-23.4496 17.92-28.544l400.1536-183.296a100.1728 100.1728 0 0 1 82.7648-0.3072l398.1056 178.8416c11.1616 5.0176 18.2784 16.1792 18.1248 28.416s-7.5776 23.2192-18.8672 27.9296l-404.3264 189.7216a94.26944 94.26944 0 0 1-36.5824 7.3984zM160.64 270.592l336.7424 158.3872a33.0496 33.0496 0 0 0 25.5232-0.1024l338.9952-162.3808-333.5424-149.8112a38.6688 38.6688 0 0 0-32 0.128L160.64 270.592z" fill="#fff" p-id="2884"></path><path d="M510.1568 722.7648c-14.4896 0-28.9536-3.3536-42.1632-10.0864L68.3264 509.0816c-8.576-4.3776-15.0784-12.2624-16.9472-21.6832a30.7072 30.7072 0 0 1 15.0272-32.8192l189.6704-106.9568c19.5584-11.0336 44.3136-4.1216 55.3472 15.4368l10.2144 18.1248-175.1808 98.7904L495.872 657.92a31.5392 31.5392 0 0 0 28.672-0.0512l354.0224-181.9136-175.9488-100.736 10.3424-18.0736c11.1616-19.4816 35.968-26.2144 55.4496-15.0784l189.7984 108.672c9.7792 5.6064 15.6928 16.1024 15.4368 27.3664s-6.656 21.4784-16.6656 26.624l-404.352 207.7696a92.53376 92.53376 0 0 1-42.4704 10.2656z" fill="#fff" p-id="2885"></path><path 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 == 0" class="my-svg-icon"
|
||||||
<svg v-if="prjProcessNav==1" 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"><path d="M702.976 981.76H149.76c-57.088 0-103.424-46.336-103.424-103.424V306.688c0-57.088 46.336-103.424 103.424-103.424h553.216c57.088 0 103.424 46.336 103.424 103.424v571.648c0 57.088-46.592 103.424-103.424 103.424zM149.76 264.704c-23.04 0-41.984 18.944-41.984 41.984v571.648c0 23.04 18.944 41.984 41.984 41.984h553.216c23.04 0 41.984-18.944 41.984-41.984V306.688c0-23.04-18.944-41.984-41.984-41.984H149.76z" fill="#040000" p-id="2901"></path><path d="M873.984 890.112h-66.816c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.816c25.344 0 46.08-20.736 46.08-46.08V152.576c0-25.344-20.736-46.08-46.08-46.08H294.144c-25.344 0-46.08 20.736-46.08 46.08v59.136c0 16.896-13.824 30.72-30.72 30.72s-30.72-13.824-30.72-30.72V152.576c0-59.392 48.128-107.52 107.52-107.52h579.84c59.392 0 107.52 48.128 107.52 107.52v630.272c0 59.136-48.384 107.264-107.52 107.264z" fill="#040000" p-id="2902"></path><path d="M771.072 521.984H82.944c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h688.128c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM652.032 391.424H326.144c-15.616 0-28.16-12.544-28.16-28.16s12.544-28.16 28.16-28.16h325.888c15.616 0 28.16 12.544 28.16 28.16s-12.544 28.16-28.16 28.16z" fill="#040000" p-id="2903"></path><path 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>
|
style="vertical-align: middle;fill: #fff;overflow: hidden;"
|
||||||
<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="2641"><path d="M997.76 494.72l-133.12-76.8 128-72.32a32 32 0 0 0 0-55.68L704 123.52a32 32 0 0 0-32 0L512 213.76 346.88 118.4a32 32 0 0 0-32 0L26.24 284.8a32 32 0 0 0 0 55.68l133.76 76.8-128 72.32a32 32 0 0 0 0 55.68L192 635.52v114.56a32 32 0 0 0 16 27.52l288 166.4a32 32 0 0 0 32 0l288-166.4a32 32 0 1 0-32-55.68L512 880l-256-147.84v-59.52l64 39.04a32 32 0 0 0 32 0L512 620.8l166.4 96a32 32 0 0 0 32 0l106.24-64 181.12-105.6a32 32 0 0 0 0-55.68zM512 288l224 128L512 547.2l-224-128L384 362.88z m172.8-99.84l224 128-108.8 64L576 250.88z m-353.92-5.12L448 250.88l-91.52 53.12L224 380.16 106.24 312.32zM114.56 517.12l108.8-64L320 512l128 71.68-108.8 64z m579.2 135.04L576 583.68 700.16 512l99.84-57.6 117.12 67.84z" fill="#1B213F" p-id="2642"></path></svg>
|
viewBox="0 0 1024 1024" version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg" p-id="2883">
|
||||||
|
<path
|
||||||
|
d="M510.0032 492.9536c-12.16 0-24.3456-2.3808-35.9424-7.1168L71.7824 300.5952c-11.3408-4.6336-18.816-15.5648-19.072-27.8016s6.784-23.4496 17.92-28.544l400.1536-183.296a100.1728 100.1728 0 0 1 82.7648-0.3072l398.1056 178.8416c11.1616 5.0176 18.2784 16.1792 18.1248 28.416s-7.5776 23.2192-18.8672 27.9296l-404.3264 189.7216a94.26944 94.26944 0 0 1-36.5824 7.3984zM160.64 270.592l336.7424 158.3872a33.0496 33.0496 0 0 0 25.5232-0.1024l338.9952-162.3808-333.5424-149.8112a38.6688 38.6688 0 0 0-32 0.128L160.64 270.592z"
|
||||||
|
fill="#fff" p-id="2884"></path>
|
||||||
|
<path
|
||||||
|
d="M510.1568 722.7648c-14.4896 0-28.9536-3.3536-42.1632-10.0864L68.3264 509.0816c-8.576-4.3776-15.0784-12.2624-16.9472-21.6832a30.7072 30.7072 0 0 1 15.0272-32.8192l189.6704-106.9568c19.5584-11.0336 44.3136-4.1216 55.3472 15.4368l10.2144 18.1248-175.1808 98.7904L495.872 657.92a31.5392 31.5392 0 0 0 28.672-0.0512l354.0224-181.9136-175.9488-100.736 10.3424-18.0736c11.1616-19.4816 35.968-26.2144 55.4496-15.0784l189.7984 108.672c9.7792 5.6064 15.6928 16.1024 15.4368 27.3664s-6.656 21.4784-16.6656 26.624l-404.352 207.7696a92.53376 92.53376 0 0 1-42.4704 10.2656z"
|
||||||
|
fill="#fff" p-id="2885"></path>
|
||||||
|
<path
|
||||||
|
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"
|
||||||
|
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">
|
||||||
|
<path
|
||||||
|
d="M702.976 981.76H149.76c-57.088 0-103.424-46.336-103.424-103.424V306.688c0-57.088 46.336-103.424 103.424-103.424h553.216c57.088 0 103.424 46.336 103.424 103.424v571.648c0 57.088-46.592 103.424-103.424 103.424zM149.76 264.704c-23.04 0-41.984 18.944-41.984 41.984v571.648c0 23.04 18.944 41.984 41.984 41.984h553.216c23.04 0 41.984-18.944 41.984-41.984V306.688c0-23.04-18.944-41.984-41.984-41.984H149.76z"
|
||||||
|
fill="#040000" p-id="2901"></path>
|
||||||
|
<path
|
||||||
|
d="M873.984 890.112h-66.816c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.816c25.344 0 46.08-20.736 46.08-46.08V152.576c0-25.344-20.736-46.08-46.08-46.08H294.144c-25.344 0-46.08 20.736-46.08 46.08v59.136c0 16.896-13.824 30.72-30.72 30.72s-30.72-13.824-30.72-30.72V152.576c0-59.392 48.128-107.52 107.52-107.52h579.84c59.392 0 107.52 48.128 107.52 107.52v630.272c0 59.136-48.384 107.264-107.52 107.264z"
|
||||||
|
fill="#040000" p-id="2902"></path>
|
||||||
|
<path
|
||||||
|
d="M771.072 521.984H82.944c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h688.128c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM652.032 391.424H326.144c-15.616 0-28.16-12.544-28.16-28.16s12.544-28.16 28.16-28.16h325.888c15.616 0 28.16 12.544 28.16 28.16s-12.544 28.16-28.16 28.16z"
|
||||||
|
fill="#040000" p-id="2903"></path>
|
||||||
|
<path
|
||||||
|
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"
|
||||||
|
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">
|
||||||
|
<path
|
||||||
|
d="M997.76 494.72l-133.12-76.8 128-72.32a32 32 0 0 0 0-55.68L704 123.52a32 32 0 0 0-32 0L512 213.76 346.88 118.4a32 32 0 0 0-32 0L26.24 284.8a32 32 0 0 0 0 55.68l133.76 76.8-128 72.32a32 32 0 0 0 0 55.68L192 635.52v114.56a32 32 0 0 0 16 27.52l288 166.4a32 32 0 0 0 32 0l288-166.4a32 32 0 1 0-32-55.68L512 880l-256-147.84v-59.52l64 39.04a32 32 0 0 0 32 0L512 620.8l166.4 96a32 32 0 0 0 32 0l106.24-64 181.12-105.6a32 32 0 0 0 0-55.68zM512 288l224 128L512 547.2l-224-128L384 362.88z m172.8-99.84l224 128-108.8 64L576 250.88z m-353.92-5.12L448 250.88l-91.52 53.12L224 380.16 106.24 312.32zM114.56 517.12l108.8-64L320 512l128 71.68-108.8 64z m579.2 135.04L576 583.68 700.16 512l99.84-57.6 117.12 67.84z"
|
||||||
|
fill="#1B213F" p-id="2642"></path>
|
||||||
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="survey_content_number labour-survey_content_number">
|
<div class="survey_content_number labour-survey_content_number">
|
||||||
|
@ -86,7 +135,8 @@
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<staff-survey-chart :height="220" :unit="'个'" :data="prjPrcessData" :width="140"></staff-survey-chart>
|
<staff-survey-chart :height="220" :unit="'个'" :data="prjPrcessData"
|
||||||
|
:width="140"></staff-survey-chart>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
|
@ -103,51 +153,41 @@
|
||||||
西咸新区暨泾河新城2023年“安全生产月”启动仪式
|
西咸新区暨泾河新城2023年“安全生产月”启动仪式
|
||||||
</div>
|
</div>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
<module-one-1-1 label="成本管理">
|
<module-one-1-1 label="成本管理" :key="elKey">
|
||||||
<div class="glr-max">
|
<div class="glr-max" style="position: relative;">
|
||||||
<div class="glr-min">
|
<div class="glr-min">
|
||||||
<div class="glr-title">总投金额</div>
|
<div class="glr-title">合同总额</div>
|
||||||
<div class="labour-education">
|
<div class="labour-education">
|
||||||
<people-number :number="'515.97'" unit="万元"></people-number>
|
<div style="transform: scale(0.8);margin-left:-20px">
|
||||||
<div class="survey_content">
|
<people-number :number="numberWithCommas(prjInfo.contractAmount*1.0||0)||'0.00'" unit="万元"></people-number>
|
||||||
|
</div>
|
||||||
|
<div class="survey_content" style="position: absolute;right: 15px;top: -4px;">
|
||||||
<div class="survey_content_img labour-education_bgd">
|
<div class="survey_content_img labour-education_bgd">
|
||||||
<svg 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="16007"><path d="M544.853333 545.322667v54.826666h100.053334a33.749333 33.749333 0 1 1 0 67.541334h-99.989334v91.648a33.749333 33.749333 0 0 1-67.52 0v-91.648h-98.282666a33.749333 33.749333 0 0 1 0-67.52h98.282666v-54.848h-98.282666a33.749333 33.749333 0 0 1 0-67.52h76.565333l-90.176-151.658667a33.856 33.856 0 0 1 58.133333-34.453333l88.298667 148.501333 88.362667-148.501333a33.856 33.856 0 0 1 58.069333 34.453333l-90.176 151.68h76.693333a33.749333 33.749333 0 0 1 0 67.498667H544.853333zM512 110.186667a400 400 0 0 0-284.16 117.674666A400.426667 400.426667 0 0 0 110.208 512a400 400 0 0 0 117.674667 284.16A400.426667 400.426667 0 0 0 512 913.792a400 400 0 0 0 284.16-117.674667A400.426667 400.426667 0 0 0 913.792 512a400 400 0 0 0-117.653333-284.16A400.426667 400.426667 0 0 0 512 110.208zM512 42.666667c259.2 0 469.333333 210.133333 469.333333 469.333333s-210.133333 469.333333-469.333333 469.333333S42.666667 771.2 42.666667 512 252.8 42.666667 512 42.666667z" fill="#8A8A8A" p-id="16008"></path></svg>
|
<svg 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="16007">
|
||||||
|
<path
|
||||||
|
d="M544.853333 545.322667v54.826666h100.053334a33.749333 33.749333 0 1 1 0 67.541334h-99.989334v91.648a33.749333 33.749333 0 0 1-67.52 0v-91.648h-98.282666a33.749333 33.749333 0 0 1 0-67.52h98.282666v-54.848h-98.282666a33.749333 33.749333 0 0 1 0-67.52h76.565333l-90.176-151.658667a33.856 33.856 0 0 1 58.133333-34.453333l88.298667 148.501333 88.362667-148.501333a33.856 33.856 0 0 1 58.069333 34.453333l-90.176 151.68h76.693333a33.749333 33.749333 0 0 1 0 67.498667H544.853333zM512 110.186667a400 400 0 0 0-284.16 117.674666A400.426667 400.426667 0 0 0 110.208 512a400 400 0 0 0 117.674667 284.16A400.426667 400.426667 0 0 0 512 913.792a400 400 0 0 0 284.16-117.674667A400.426667 400.426667 0 0 0 913.792 512a400 400 0 0 0-117.653333-284.16A400.426667 400.426667 0 0 0 512 110.208zM512 42.666667c259.2 0 469.333333 210.133333 469.333333 469.333333s-210.133333 469.333333-469.333333 469.333333S42.666667 771.2 42.666667 512 252.8 42.666667 512 42.666667z"
|
||||||
|
fill="#8A8A8A" p-id="16008"></path>
|
||||||
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<staff-survey-chart unit="万元" :height="60" :data="investmentAmountData1" :width="240" :max="24.563"></staff-survey-chart>
|
<div>
|
||||||
<staff-survey-chart unit="万元" :height="60" :data="investmentAmountData2" :width="240" :max="24.615"></staff-survey-chart>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<staff-survey-chart unit="万元" :height="60" :data="investmentAmountData1"
|
||||||
|
:max="prjInfo.contractAmount*1.0 || 10000" :width="200"></staff-survey-chart>
|
||||||
|
<staff-survey-chart unit="万元" :height="60" :data="investmentAmountData2"
|
||||||
|
:max="prjInfo.contractAmount*1.0 || 10000" :width="200"></staff-survey-chart>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
<module-one-1-1 label="项目监测预警">
|
<module-one-1-1 label="项目监测预警">
|
||||||
<el-row>
|
<MonitAndWarning></MonitAndWarning>
|
||||||
<el-col :span="8">
|
|
||||||
<div class="time-study-value">
|
|
||||||
<p>今日预警数</p>
|
|
||||||
<div class="analyse-num"><span>6</span> 个</div>
|
|
||||||
</div>
|
|
||||||
<div class="time-study-value">
|
|
||||||
<p>本周预警数</p>
|
|
||||||
<div class="analyse-num"><span>23</span> 个</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="16">
|
|
||||||
<div class="survey-oil-title">
|
|
||||||
<div class="survey-oil-hr"></div>
|
|
||||||
<div class="survey-oil-text">预警类型</div>
|
|
||||||
</div>
|
|
||||||
<div class="analyse-number-max" id="afootOverflowType" style="height: unset;">
|
|
||||||
<div class="glr-login-number-max analyse-num-max" v-for="(item,idx) in warningType" style="height: unset;" :key="idx">
|
|
||||||
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|
||||||
<div class="glr-login-number analyse-login-numbe">
|
|
||||||
<div><img src="images/text_red_spot.png">{{item.name}}</div>
|
|
||||||
<div class="glr-rate-value glr-rate-red-value"><span>{{item.data}}/{{item.total}}</span></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -171,17 +211,20 @@ import indexDlg1 from './index/indexDlg1'
|
||||||
import indexDlg2 from './index/indexDlg2'
|
import indexDlg2 from './index/indexDlg2'
|
||||||
import indexDlg3 from './index/indexDlg3'
|
import indexDlg3 from './index/indexDlg3'
|
||||||
import indexMap from './index/map.vue'
|
import indexMap from './index/map.vue'
|
||||||
|
import MonitAndWarning from './components/MonitAndWarning.vue'
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
components: {
|
components: {
|
||||||
indexDlg1,
|
indexDlg1,
|
||||||
indexDlg2,
|
indexDlg2,
|
||||||
indexDlg3,
|
indexDlg3,
|
||||||
indexMap
|
indexMap,
|
||||||
|
MonitAndWarning
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
elKey: 0,
|
||||||
|
prjInfo: {},
|
||||||
loading: true,
|
loading: true,
|
||||||
legendOpt1: {
|
legendOpt1: {
|
||||||
icon: "rect",
|
icon: "rect",
|
||||||
|
@ -201,17 +244,21 @@ export default {
|
||||||
},
|
},
|
||||||
legendOpt2: {
|
legendOpt2: {
|
||||||
icon: "rect",
|
icon: "rect",
|
||||||
|
orient: "horizontal",
|
||||||
|
left:'50%',
|
||||||
|
top:'top',
|
||||||
|
itemGap:0,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
rich: {
|
rich: {
|
||||||
name: {
|
name: {
|
||||||
color: "#c3dbfd",
|
color: "#c3dbfd",
|
||||||
padding: [10, 5, 20, 5],
|
padding: [5, 2, 20, 2],
|
||||||
},
|
},
|
||||||
percent: {
|
percent: {
|
||||||
color: "#4676FD",
|
color: "#4676FD",
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
padding: [0, 5, 0, 5],
|
padding: [0, 2, 0, 2],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -222,22 +269,9 @@ export default {
|
||||||
{ text: '西安市地铁2号线二期工程施工总承包项目2标段', id: 2, type: 2 },
|
{ text: '西安市地铁2号线二期工程施工总承包项目2标段', id: 2, type: 2 },
|
||||||
{ text: '苏州桑田岛项目', id: 3, type: 2 },
|
{ text: '苏州桑田岛项目', id: 3, type: 2 },
|
||||||
],
|
],
|
||||||
dangersDatas:[
|
dangersDatas: [],
|
||||||
{ name:'四口,临边防护工程', value:'0' },
|
|
||||||
{ name:'混泥土', value:'0' },
|
|
||||||
{ name:'移动脚手架', value:'0' } ,
|
|
||||||
{ name:'砌体', value:'0' },
|
|
||||||
{ name:'模板支架', value:'0' },
|
|
||||||
{ name:'外墙', value:'0' }
|
|
||||||
],
|
|
||||||
|
|
||||||
//原因类型分析
|
//原因类型分析
|
||||||
availabilityData:[
|
availabilityData: [],
|
||||||
{value: 7,prop: 42.9, text: '新区级'},
|
|
||||||
{value: 9,prop: 22.9, text: '省级'},
|
|
||||||
{value: 10,prop: 20, text: '市级'},
|
|
||||||
{value: 39,prop: 14.2, text: '新城级'},
|
|
||||||
],
|
|
||||||
overviewText: '项目数量',
|
overviewText: '项目数量',
|
||||||
overviewTotal: 100,
|
overviewTotal: 100,
|
||||||
//项目概况
|
//项目概况
|
||||||
|
@ -248,6 +282,8 @@ export default {
|
||||||
],
|
],
|
||||||
//质量管理
|
//质量管理
|
||||||
qualityNav: 0,
|
qualityNav: 0,
|
||||||
|
qualityNavTitle:'',
|
||||||
|
qualityNavTotal:0,
|
||||||
//劳务人员
|
//劳务人员
|
||||||
infoNav: 0,
|
infoNav: 0,
|
||||||
staffText: '在岗人员',
|
staffText: '在岗人员',
|
||||||
|
@ -269,10 +305,10 @@ export default {
|
||||||
],
|
],
|
||||||
//总投金额
|
//总投金额
|
||||||
investmentAmountData1: [
|
investmentAmountData1: [
|
||||||
{ text:"融资金额", value:'0' },
|
{ text: "付款金额", value: 0 },
|
||||||
],
|
],
|
||||||
investmentAmountData2: [
|
investmentAmountData2: [
|
||||||
{ text:"缺口金额", value:'0' },
|
{ text: "挂账金额", value: 0 },
|
||||||
],
|
],
|
||||||
//设备概况
|
//设备概况
|
||||||
overview: 0,
|
overview: 0,
|
||||||
|
@ -384,29 +420,9 @@ export default {
|
||||||
//正在发生
|
//正在发生
|
||||||
warningInterval: undefined,
|
warningInterval: undefined,
|
||||||
forIndex: 0,
|
forIndex: 0,
|
||||||
|
projectCategory:[],
|
||||||
//预警类型
|
projectCategoryWidth:200,
|
||||||
warningType:[
|
deptInfo:{},
|
||||||
{
|
|
||||||
name:'AI预警',
|
|
||||||
data:0,
|
|
||||||
total:0
|
|
||||||
},{
|
|
||||||
name:'安全预警',
|
|
||||||
data:1,
|
|
||||||
total:5
|
|
||||||
},{
|
|
||||||
name:'质量预警',
|
|
||||||
data:2,
|
|
||||||
total:6
|
|
||||||
},{
|
|
||||||
name:'环境预警',
|
|
||||||
data:3,
|
|
||||||
total:12
|
|
||||||
},
|
|
||||||
],
|
|
||||||
warningTypeInterval:undefined,
|
|
||||||
warningTypeIndex:0,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -416,8 +432,67 @@ export default {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
});
|
});
|
||||||
|
this.$bus.$on("projectChange", res => {
|
||||||
|
this.prjInfo = res;
|
||||||
|
this.investmentAmountData1[0].value = "" + res.paidAmount * 1.0;
|
||||||
|
this.investmentAmountData2[0].value = "" + res.onAccountAmount * 1.0;
|
||||||
|
this.elKey++;
|
||||||
|
});
|
||||||
|
this.$bus.$on("deptChange",dept=>{
|
||||||
|
this.deptInfo=dept;
|
||||||
|
this.onClickoOverview(0)
|
||||||
|
this.qualityNavClick(0);
|
||||||
|
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
qualityNavClick(n){
|
||||||
|
this.qualityNav=n;
|
||||||
|
if(n==0){
|
||||||
|
this.qualityNavTitle="安全隐患总数";
|
||||||
|
this.$api.problemmodify.safetySummary(this.deptInfo.id,0).then(d=>{
|
||||||
|
this.dangersDatas=(d||[]).map(it=>{
|
||||||
|
return {
|
||||||
|
text:it.problemArea,
|
||||||
|
prop:'0.0',
|
||||||
|
name:it.problemArea,
|
||||||
|
value:+it.roleType||0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let sum=0;
|
||||||
|
this.dangersDatas.forEach(it=>{
|
||||||
|
sum+=it.value*1;
|
||||||
|
})
|
||||||
|
this.qualityNavTotal=sum;
|
||||||
|
this.elKey++;
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.qualityNavTitle="质量隐患总数";
|
||||||
|
this.$api.problemmodify.qualitySummary(this.deptInfo.id,0).then(d=>{
|
||||||
|
this.dangersDatas=(d||[]).map(it=>{
|
||||||
|
return {
|
||||||
|
text:it.problemArea,
|
||||||
|
prop:'0.0',
|
||||||
|
name:it.problemArea,
|
||||||
|
value:+it.roleType||0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let sum=0;
|
||||||
|
this.dangersDatas.forEach(it=>{
|
||||||
|
sum+=it.value*1;
|
||||||
|
})
|
||||||
|
this.qualityNavTotal=sum;
|
||||||
|
this.elKey++;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
numberWithCommas(x) {
|
||||||
|
x = x.toString();
|
||||||
|
var pattern = /(-?\d+)(\d{3})/;
|
||||||
|
while (pattern.test(x))
|
||||||
|
x = x.replace(pattern, "$1,$2");
|
||||||
|
return x;
|
||||||
|
},
|
||||||
doShowDlg3() {
|
doShowDlg3() {
|
||||||
this.$refs.dlg3.showDialog()
|
this.$refs.dlg3.showDialog()
|
||||||
},
|
},
|
||||||
|
@ -427,47 +502,49 @@ export default {
|
||||||
doShowDlg2() {
|
doShowDlg2() {
|
||||||
this.$refs.dlg2.showDialog(this.prjProcessNav)
|
this.$refs.dlg2.showDialog(this.prjProcessNav)
|
||||||
},
|
},
|
||||||
|
getPrjCateCount(n){
|
||||||
|
if(this.projectCategory.length<n+1){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
let tmps=this.projectCategory[n];
|
||||||
|
if(tmps && tmps.length>0){
|
||||||
|
let sum=0;
|
||||||
|
tmps.forEach(d=>{
|
||||||
|
sum+=d.cnt;
|
||||||
|
})
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
init() {
|
init() {
|
||||||
|
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.elKey++;
|
||||||
|
});
|
||||||
|
|
||||||
this.localStorage = JSON.parse(localStorage.getItem("data1"))
|
this.localStorage = JSON.parse(localStorage.getItem("data1"))
|
||||||
|
|
||||||
//地图数据
|
//地图数据
|
||||||
this.chartMap()
|
this.chartMap()
|
||||||
//设备概况点击事件定时器
|
//设备概况点击事件定时器
|
||||||
this.overviewInterval = setInterval(this.overviewClick,5000);
|
//this.overviewInterval = setInterval(this.overviewClick, 5000);
|
||||||
//重大节点预期预警
|
//重大节点预期预警
|
||||||
this.majorInterval = setInterval(this.timer, 5000);
|
this.majorInterval = setInterval(this.timer, 5000);
|
||||||
//正在发生 定时器
|
//正在发生 定时器
|
||||||
this.warningInterval = setInterval(this.automaticRoll, 5000);
|
this.warningInterval = setInterval(this.automaticRoll, 5000);
|
||||||
//预警类型 定时器
|
|
||||||
this.warningTypeInterval = setInterval(this.automaticRollType,5000);
|
|
||||||
},
|
},
|
||||||
doPrjProcess(n, text) {
|
doPrjProcess(n, text) {
|
||||||
this.prjProcessNav = n;
|
this.prjProcessNav = n;
|
||||||
this.prjPrcessText = text;
|
this.prjPrcessText = text;
|
||||||
if(n==0){
|
this.prjPrcessTotal=this.getPrjCateCount(n);
|
||||||
this.prjPrcessTotal=100;
|
let item=this.projectCategory.length>n?this.projectCategory[n]:null;
|
||||||
this.prjPrcessData=[
|
this.prjPrcessData[0].value=item && item.length>0?item[0].cnt:0;
|
||||||
{ text:"正常推进项目", value:13 },
|
this.prjPrcessData[1].value=item && item.length>1?item[1].cnt:0;
|
||||||
{ text:"进度滞后项目", value:22 },
|
this.elKey++;
|
||||||
]
|
|
||||||
}
|
|
||||||
if(n==1){
|
|
||||||
this.prjPrcessTotal=90;
|
|
||||||
this.prjPrcessData=[
|
|
||||||
{ text:"规划中项目", value:4 },
|
|
||||||
{ text:"审批中项目", value:9 },
|
|
||||||
{ text:"设计中项目", value:8 },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
if(n==2){
|
|
||||||
this.prjPrcessTotal=130;
|
|
||||||
this.prjPrcessData=[
|
|
||||||
{ text:"进度滞后项目", value:0 },
|
|
||||||
{ text:"正常推进项目", value:0 },
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
//劳务人员概况
|
//劳务人员概况
|
||||||
onWarningInfoNav(n, text) {
|
onWarningInfoNav(n, text) {
|
||||||
|
@ -509,19 +586,67 @@ export default {
|
||||||
//设备概况点击事件
|
//设备概况点击事件
|
||||||
onClickoOverview(n) {
|
onClickoOverview(n) {
|
||||||
this.overview = n
|
this.overview = n
|
||||||
|
|
||||||
if (this.overview == 0) {
|
if (this.overview == 0) {
|
||||||
this.overviewTotal=65;
|
this.projectCategoryWidth=290;
|
||||||
this.overviewText = "项目数";
|
this.overviewText = "项目数";
|
||||||
this.surveyUrlSb = 'images/survey_icon_1.png'
|
this.surveyUrlSb = 'images/survey_icon_1.png'
|
||||||
|
|
||||||
} else if (this.overview == 1) {
|
} else if (this.overview == 1) {
|
||||||
this.overviewTotal=515.97;
|
this.projectCategoryWidth=210;
|
||||||
this.overviewText = "项目总投资";
|
this.overviewText = "项目总投资";
|
||||||
this.surveyUrlSb = 'images/survey_icon_2.png'
|
this.surveyUrlSb = 'images/survey_icon_2.png'
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.overviewTotal=134.86;
|
this.projectCategoryWidth=210;
|
||||||
this.overviewText = "项目年投资";
|
this.overviewText = "项目年投资";
|
||||||
this.surveyUrlSb = 'images/survey_icon_3.png'
|
this.surveyUrlSb = 'images/survey_icon_3.png'
|
||||||
}
|
}
|
||||||
|
this.$api.project.groupByCategory(this.deptInfo.id,n).then(d=>{
|
||||||
|
let tmps=(d.data||[]).map(it=>{
|
||||||
|
return {
|
||||||
|
id:it.id,
|
||||||
|
name:it.projectName,
|
||||||
|
value:it.deptId/10000.0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let sum=0;
|
||||||
|
tmps.forEach(it=>{
|
||||||
|
sum+=it.value;
|
||||||
|
})
|
||||||
|
this.overviewTotal=sum;
|
||||||
|
this.typeDistributionData=tmps;
|
||||||
|
this.elKey++;
|
||||||
|
})
|
||||||
|
this.$api.project.groupByLevel(this.deptInfo.id,n).then(d=>{
|
||||||
|
let tmps=(d.data||[]).map(it=>{
|
||||||
|
return {
|
||||||
|
id:it.id,
|
||||||
|
text:it.projectName,
|
||||||
|
value:it.deptId/10000.0,
|
||||||
|
prop:0,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let sum=0;
|
||||||
|
tmps.forEach(it=>{
|
||||||
|
sum+=it.value;
|
||||||
|
})
|
||||||
|
let total=0;
|
||||||
|
tmps.forEach((it,idx)=>{
|
||||||
|
it.prop=sum==0?0:(it.value*100.0/sum).toFixed(1)
|
||||||
|
|
||||||
|
if(idx<tmps.length-1){
|
||||||
|
total+=it.prop*1;
|
||||||
|
}else{
|
||||||
|
if(sum>0){
|
||||||
|
it.prop=(100-total).toFixed(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.availabilityData=tmps;
|
||||||
|
this.elKey++;
|
||||||
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
//地图数据
|
//地图数据
|
||||||
chartMap() {
|
chartMap() {
|
||||||
|
@ -661,21 +786,8 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
automaticRollType(){
|
|
||||||
var height = window.$(".glr-login-number-max").innerHeight()
|
|
||||||
if(window.$("#afootOverflowType").scrollTop() == height*this.warningType.length - window.$("#afootOverflowType").innerHeight()){
|
|
||||||
this.warningTypeIndex = 0
|
|
||||||
}else{
|
|
||||||
this.warningTypeIndex = this.warningTypeIndex + 1
|
|
||||||
}
|
|
||||||
window.$("#afootOverflowType").animate({scrollTop:(height*this.warningTypeIndex)+'px'})
|
|
||||||
},
|
|
||||||
listMinMouseoverType(){
|
|
||||||
clearInterval(this.warningTypeInterval);
|
|
||||||
},
|
|
||||||
listMinMouseoutType(){
|
|
||||||
this.warningTypeInterval=setInterval(this.automaticRollType,5000);
|
|
||||||
},
|
|
||||||
|
|
||||||
automaticRoll() {
|
automaticRoll() {
|
||||||
var height = window.$(".afoot-con-for").innerHeight()
|
var height = window.$(".afoot-con-for").innerHeight()
|
||||||
|
@ -700,26 +812,31 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">#app {
|
||||||
#app {
|
|
||||||
.center-image .screen-one-2-1 {
|
.center-image .screen-one-2-1 {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-svg-icon {
|
.my-svg-icon {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-svg-icon * {
|
.my-svg-icon * {
|
||||||
fill: #389DE3;
|
fill: #389DE3;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.people-number-con div:nth-child(3) {
|
.people-number-con div:nth-child(3) {
|
||||||
background: none;
|
background: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.labour-education .number-unit {
|
.labour-education .number-unit {
|
||||||
position: relative;
|
position: relative;
|
||||||
bottom: -8px;
|
bottom: -8px;
|
||||||
}
|
}
|
||||||
|
.number-unit{
|
||||||
|
word-break: keep-all;
|
||||||
}
|
}
|
||||||
</style>
|
}</style>
|
||||||
|
|
|
@ -9,23 +9,33 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="font-size-tools">
|
<div class="font-size-tools">
|
||||||
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
|
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize==2?'active':''">
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
<svg class="icon svg-icon"
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M741.96894493 895.86428833l-89.12883988-217.48854506H317.69440381L232.08582869 895.86428833H164.38571167L446.0422962 200.63571166h74.87058778l288.82705529 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 513.40765239h321.91517757v42.12504211H737.68083754z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="" p-id="1676"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
|
|
||||||
</svg>
|
</svg>
|
||||||
<svg class="icon svg-icon" :class="fontSize==1?'active':''" @click="fontSize = 1" style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686"><path d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z" fill="#727272" p-id="3687"></path>
|
</i>
|
||||||
</svg>
|
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize==1?'active':''">
|
||||||
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
|
<svg class="icon svg-icon"
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M741.96894493 899.61428833l-89.12883989-217.48854506H317.69440381L232.08582869 899.61428833H164.38571167L446.0422962 204.38571166h74.87058778l288.8270553 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 550.0449541h321.91517757v42.12504212H737.68083754z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="" p-id="1692"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
</i>
|
||||||
|
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize==0?'active':''">
|
||||||
|
<svg class="icon svg-icon"
|
||||||
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
|
<path
|
||||||
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
|
fill="#fff" p-id="3687"></path>
|
||||||
|
</svg>
|
||||||
|
</i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px;">
|
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px;">
|
||||||
|
@ -52,16 +62,7 @@
|
||||||
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
|
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
|
||||||
<div class="div-text">{{ it.date }}</div>
|
<div class="div-text">{{ it.date }}</div>
|
||||||
</div>
|
</div>
|
||||||
<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.porgress }}</div>
|
|
||||||
</el-col>
|
|
||||||
<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.question }}</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-show="nav == 1" v-for="(it, idx) in tableData2" class="data-item">
|
<div v-show="nav == 1" v-for="(it, idx) in tableData2" class="data-item">
|
||||||
<el-row class="data-row" >
|
<el-row class="data-row" >
|
||||||
|
@ -118,14 +119,6 @@
|
||||||
<div class="text-more-2" style="color:#01A9FF;" :title="it.date">{{ it.date}}</div>
|
<div class="text-more-2" style="color:#01A9FF;" :title="it.date">{{ it.date}}</div>
|
||||||
</div>
|
</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>
|
||||||
<div v-show="nav == 2" v-if="tableData1.length==0" style="text-align: center;margin-top:200px;">
|
<div v-show="nav == 2" v-if="tableData1.length==0" style="text-align: center;margin-top:200px;">
|
||||||
<img src="images/nodata.png" style="width: 240px;">
|
<img src="images/nodata.png" style="width: 240px;">
|
||||||
|
@ -362,19 +355,6 @@ export default {
|
||||||
top: -40px;
|
top: -40px;
|
||||||
right: 100px;
|
right: 100px;
|
||||||
|
|
||||||
.svg-icon {
|
|
||||||
width: 40px !important;
|
|
||||||
height: 40px !important;
|
|
||||||
cursor: pointer;
|
|
||||||
*{
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
&.active{
|
|
||||||
*{
|
|
||||||
fill: aqua;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.popup-project-introduction-min {
|
.popup-project-introduction-min {
|
||||||
|
|
|
@ -4,23 +4,33 @@
|
||||||
<template slot="title">项目季度考核目标</template>
|
<template slot="title">项目季度考核目标</template>
|
||||||
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px 0px;">
|
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px 0px;">
|
||||||
<div class="font-size-tools">
|
<div class="font-size-tools">
|
||||||
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
|
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize==2?'active':''">
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
<svg class="icon svg-icon"
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M741.96894493 895.86428833l-89.12883988-217.48854506H317.69440381L232.08582869 895.86428833H164.38571167L446.0422962 200.63571166h74.87058778l288.82705529 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 513.40765239h321.91517757v42.12504211H737.68083754z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="" p-id="1676"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
|
|
||||||
</svg>
|
</svg>
|
||||||
<svg class="icon svg-icon" :class="fontSize==1?'active':''" @click="fontSize = 1" style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686"><path d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z" fill="#727272" p-id="3687"></path>
|
</i>
|
||||||
</svg>
|
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize==1?'active':''">
|
||||||
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
|
<svg class="icon svg-icon"
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M741.96894493 899.61428833l-89.12883989-217.48854506H317.69440381L232.08582869 899.61428833H164.38571167L446.0422962 204.38571166h74.87058778l288.8270553 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 550.0449541h321.91517757v42.12504212H737.68083754z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="" p-id="1692"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
</i>
|
||||||
|
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize==0?'active':''">
|
||||||
|
<svg class="icon svg-icon"
|
||||||
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
|
<path
|
||||||
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
|
fill="#fff" p-id="3687"></path>
|
||||||
|
</svg>
|
||||||
|
</i>
|
||||||
</div>
|
</div>
|
||||||
<div v-for="(it, idx) in tableData" class="data-item">
|
<div v-for="(it, idx) in tableData" class="data-item">
|
||||||
<el-row class="data-row" >
|
<el-row class="data-row" >
|
||||||
|
@ -177,20 +187,6 @@ export default {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -40px;
|
top: -40px;
|
||||||
right: 100px;
|
right: 100px;
|
||||||
|
|
||||||
.svg-icon {
|
|
||||||
width: 40px !important;
|
|
||||||
height: 40px !important;
|
|
||||||
cursor: pointer;
|
|
||||||
*{
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
&.active{
|
|
||||||
*{
|
|
||||||
fill: aqua;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="progress-dlg3" :class="'font-size-' + fontSize">
|
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="progress-dlg3" :class="'font-size-' + fontSize">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div style="display: flex; align-items: center;justify-content: space-between;">
|
<div style="display: flex; align-items: center;justify-content: space-between;">
|
||||||
<div style="font-size: 24px;font-weight: bold;text-align: center;flex-grow: 1;">项目形象进度</div>
|
<div style="font-size: 24px;font-weight: bold;">项目形象进度</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="head-title-select" @mouseleave="hideScreenUlSel2" v-if="localStorage2">
|
<div class="head-title-select" @mouseleave="hideScreenUlSel2" v-if="localStorage2">
|
||||||
<div class="head-select">
|
<div class="head-select">
|
||||||
|
@ -21,28 +21,33 @@
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<div class="font-size-tools">
|
<div class="font-size-tools">
|
||||||
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
|
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize==2?'active':''">
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
<svg class="icon svg-icon"
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
|
|
||||||
<path
|
|
||||||
d="M741.96894493 895.86428833l-89.12883988-217.48854506H317.69440381L232.08582869 895.86428833H164.38571167L446.0422962 200.63571166h74.87058778l288.82705529 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 513.40765239h321.91517757v42.12504211H737.68083754z"
|
|
||||||
fill="" p-id="1676"></path>
|
|
||||||
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
|
|
||||||
</svg>
|
|
||||||
<svg class="icon svg-icon" @click="fontSize = 1" :class="fontSize==1?'active':''"
|
|
||||||
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="#fff" p-id="3687"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
</svg>
|
</svg>
|
||||||
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
|
</i>
|
||||||
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize==1?'active':''">
|
||||||
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
|
<svg class="icon svg-icon"
|
||||||
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
<path
|
<path
|
||||||
d="M741.96894493 899.61428833l-89.12883989-217.48854506H317.69440381L232.08582869 899.61428833H164.38571167L446.0422962 204.38571166h74.87058778l288.8270553 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 550.0449541h321.91517757v42.12504212H737.68083754z"
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
fill="" p-id="1692"></path>
|
fill="#fff" p-id="3687"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
</i>
|
||||||
|
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize==0?'active':''">
|
||||||
|
<svg class="icon svg-icon"
|
||||||
|
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
|
||||||
|
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
|
||||||
|
<path
|
||||||
|
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
|
||||||
|
fill="#fff" p-id="3687"></path>
|
||||||
|
</svg>
|
||||||
|
</i>
|
||||||
</div>
|
</div>
|
||||||
<div class="modify-btn btn-left">
|
<div class="modify-btn btn-left">
|
||||||
<svg class="my-svg-icon-aaa" @click="modifyLeftBtn"
|
<svg class="my-svg-icon-aaa" @click="modifyLeftBtn"
|
||||||
|
@ -62,6 +67,7 @@
|
||||||
p-id="4998"></path>
|
p-id="4998"></path>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="display: flex;align-items: center;height: 782px;">
|
||||||
<div class="prj-info-list" v-if="scheduleInfo && JSON.stringify(scheduleInfo) != '{}'">
|
<div class="prj-info-list" v-if="scheduleInfo && JSON.stringify(scheduleInfo) != '{}'">
|
||||||
<div class="col-1" style="width:500px;padding-top:12px;">
|
<div class="col-1" style="width:500px;padding-top:12px;">
|
||||||
<el-carousel height="500px" v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0">
|
<el-carousel height="500px" v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0">
|
||||||
|
@ -126,6 +132,7 @@
|
||||||
<img src="images/nodata.png" style="width: 240px;">
|
<img src="images/nodata.png" style="width: 240px;">
|
||||||
<div style="text-align: center;">暂无数据</div>
|
<div style="text-align: center;">暂无数据</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</MyDialog>
|
</MyDialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -273,19 +280,6 @@ export default {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 18px;
|
top: 18px;
|
||||||
right: 400px;
|
right: 400px;
|
||||||
|
|
||||||
.svg-icon {
|
|
||||||
width: 40px !important;
|
|
||||||
height: 40px !important;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
* {
|
|
||||||
fill: aqua;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup-project-introduction-details {
|
.popup-project-introduction-details {
|
||||||
|
|
|
@ -356,33 +356,7 @@
|
||||||
</div>
|
</div>
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
<module-one-1-1 label="项目安全/质量隐患">
|
<module-one-1-1 label="项目安全/质量隐患">
|
||||||
<el-row>
|
<MonitAndWarning type="detail"></MonitAndWarning>
|
||||||
<el-col :span="8">
|
|
||||||
<div class="time-study-value">
|
|
||||||
<p>今日预警数</p>
|
|
||||||
<div class="analyse-num"><span>8</span> 个</div>
|
|
||||||
</div>
|
|
||||||
<div class="time-study-value">
|
|
||||||
<p>本周预警数</p>
|
|
||||||
<div class="analyse-num"><span>28</span> 个</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="16">
|
|
||||||
<div class="survey-oil-title">
|
|
||||||
<div class="survey-oil-hr"></div>
|
|
||||||
<div class="survey-oil-text">预警类型</div>
|
|
||||||
</div>
|
|
||||||
<div class="analyse-number-max" id="afootOverflowType" style="height: unset;">
|
|
||||||
<div class="glr-login-number-max analyse-num-max" v-for="item in warningType" style="height: unset;">
|
|
||||||
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|
||||||
<div class="glr-login-number analyse-login-numbe">
|
|
||||||
<div><img src="images/text_red_spot.png">{{item.name}}</div>
|
|
||||||
<div class="glr-rate-value glr-rate-red-value"><span>{{item.data}}/{{item.total}}</span></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</module-one-1-1>
|
</module-one-1-1>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -397,8 +371,11 @@ import '../components/module/module-one-1-2'
|
||||||
import '../components/background_video'
|
import '../components/background_video'
|
||||||
import '../components/header'
|
import '../components/header'
|
||||||
import '../components/staff-survey-chart'
|
import '../components/staff-survey-chart'
|
||||||
|
import MonitAndWarning from './components/MonitAndWarning.vue'
|
||||||
export default {
|
export default {
|
||||||
|
components:{
|
||||||
|
MonitAndWarning
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dept:null,
|
dept:null,
|
||||||
|
|
|
@ -83,12 +83,12 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12" >
|
<el-col :span="12" >
|
||||||
<module-one-1-2 label="项目推进明细">
|
<module-one-1-2 label="项目推进明细">
|
||||||
<el-row style="padding: 20px;">
|
<el-row style="padding: 20px;" :key="elKey">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<div class="warning-info-title my-warning-info-title">
|
<div class="warning-info-title my-warning-info-title">
|
||||||
<div :class="pushNav==0?'active':''" @click="doPushNav(0,'在建项目')">在建项目(100)</div>
|
<div :class="pushNav==0?'active':''" @click="doPushNav(0,'在建项目')">在建项目({{ getPrjCateCount(0) }})</div>
|
||||||
<div :class="pushNav==1?'active':''" @click="doPushNav(1,'拟建项目')">拟建项目(20)</div>
|
<div :class="pushNav==1?'active':''" @click="doPushNav(1,'拟建项目')">拟建项目({{ getPrjCateCount(1) }})</div>
|
||||||
<div :class="pushNav==2?'active':''" @click="doPushNav(2,'验收项目')">验收项目(10)</div>
|
<div :class="pushNav==2?'active':''" @click="doPushNav(2,'前期项目')">前期项目({{ getPrjCateCount(2) }})</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
@ -268,6 +268,7 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
elKey:0,
|
||||||
//节点完成率
|
//节点完成率
|
||||||
completionData:[
|
completionData:[
|
||||||
{name:"泾河新城荟锦坊二期",cnt:50,step:'施工阶段'},
|
{name:"泾河新城荟锦坊二期",cnt:50,step:'施工阶段'},
|
||||||
|
@ -282,8 +283,8 @@ export default {
|
||||||
pushText:'在建项目',
|
pushText:'在建项目',
|
||||||
pushCount:35,
|
pushCount:35,
|
||||||
pushData:[
|
pushData:[
|
||||||
{ text:"正常推进项目", value:13 },
|
{ text:"正常推进项目", value:0 },
|
||||||
{ text:"进度滞后项目", value:22 },
|
{ text:"进度滞后项目", value:1 },
|
||||||
],
|
],
|
||||||
costIndex:0,
|
costIndex:0,
|
||||||
direction:'right',
|
direction:'right',
|
||||||
|
@ -328,7 +329,7 @@ export default {
|
||||||
prjInfo:{},
|
prjInfo:{},
|
||||||
scheduleInfo:null,
|
scheduleInfo:null,
|
||||||
projects:[],
|
projects:[],
|
||||||
|
projectCategory:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -396,26 +397,12 @@ export default {
|
||||||
doPushNav(n,t){
|
doPushNav(n,t){
|
||||||
this.pushNav=n;
|
this.pushNav=n;
|
||||||
this.pushText=t;
|
this.pushText=t;
|
||||||
this.pushCount=[35,21,0][n];
|
|
||||||
this.pushUrl=['images/company_6.png','images/company_5.png','images/company_4.png'][n]
|
this.pushUrl=['images/company_6.png','images/company_5.png','images/company_4.png'][n]
|
||||||
if(n==0){
|
this.pushCount=this.getPrjCateCount(n);
|
||||||
this.pushData=[
|
let item=this.projectCategory.length>n?this.projectCategory[n]:null;
|
||||||
{ text:"正常推进项目", value:13 },
|
this.pushData[0].value=item && item.length>0?item[0].cnt:0;
|
||||||
{ text:"进度滞后项目", value:22 }
|
this.pushData[1].value=item && item.length>1?item[1].cnt:0;
|
||||||
]
|
this.elKey++;
|
||||||
}
|
|
||||||
if(n==1){
|
|
||||||
this.pushData=[
|
|
||||||
{ text:"正常推进项目", value:4 },
|
|
||||||
{ text:"进度滞后项目", value:17 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
if(n==2){
|
|
||||||
this.pushData=[
|
|
||||||
{ text:"正常推进项目", value:0 },
|
|
||||||
{ text:"进度滞后项目", value:0 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
modifyLeftBtn(){
|
modifyLeftBtn(){
|
||||||
this.direction = 'left'
|
this.direction = 'left'
|
||||||
|
@ -484,7 +471,20 @@ export default {
|
||||||
planMouseout(){
|
planMouseout(){
|
||||||
this.planInterval=setInterval(this.manufacturingPlanRoll,5000);
|
this.planInterval=setInterval(this.manufacturingPlanRoll,5000);
|
||||||
},
|
},
|
||||||
|
getPrjCateCount(n){
|
||||||
|
if(this.projectCategory.length<n+1){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
let tmps=this.projectCategory[n];
|
||||||
|
if(tmps && tmps.length>0){
|
||||||
|
let sum=0;
|
||||||
|
tmps.forEach(d=>{
|
||||||
|
sum+=d.cnt;
|
||||||
|
})
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
init(){
|
init(){
|
||||||
if(localStorage.length == 0){
|
if(localStorage.length == 0){
|
||||||
var company = {text:'城投公司',id:1,type:1}
|
var company = {text:'城投公司',id:1,type:1}
|
||||||
|
@ -498,7 +498,14 @@ export default {
|
||||||
this.localStorage1 = JSON.parse(localStorage.getItem("company"))
|
this.localStorage1 = JSON.parse(localStorage.getItem("company"))
|
||||||
this.localStorage2 = JSON.parse(localStorage.getItem("project"))
|
this.localStorage2 = JSON.parse(localStorage.getItem("project"))
|
||||||
}
|
}
|
||||||
|
this.$api.project.groupByProjectCategory(datas=>{
|
||||||
|
this.projectCategory=datas;
|
||||||
|
this.pushCount=this.getPrjCateCount(0);
|
||||||
|
let item=this.projectCategory.length>0?this.projectCategory[0]:null;
|
||||||
|
this.pushData[0].value=item && item.length>0?item[0].cnt:0;
|
||||||
|
this.pushData[1].value=item && item.length>1?item[1].cnt:0;
|
||||||
|
this.elKey++;
|
||||||
|
});
|
||||||
//设备概况点击事件定时器
|
//设备概况点击事件定时器
|
||||||
this.overviewInterval = setInterval(this.overviewClick,5000);
|
this.overviewInterval = setInterval(this.overviewClick,5000);
|
||||||
//重大节点预期预警
|
//重大节点预期预警
|
||||||
|
|
|
@ -1,3 +1,43 @@
|
||||||
.el-tooltip__popper{
|
.el-tooltip__popper{
|
||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
}
|
}
|
||||||
|
.font-size-tools{
|
||||||
|
.set-font-size{
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&.active{
|
||||||
|
color: aqua;
|
||||||
|
.svg-icon{
|
||||||
|
*{
|
||||||
|
fill: aqua;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.svg-icon{
|
||||||
|
width: 40px !important;
|
||||||
|
height: 40px !important;
|
||||||
|
}
|
||||||
|
&.font-size2{
|
||||||
|
&::after{
|
||||||
|
content: "+";
|
||||||
|
font-style: normal;
|
||||||
|
right: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
position: absolute;
|
||||||
|
font-size: 16px !important;
|
||||||
|
}
|
||||||
|
margin-right:4px;
|
||||||
|
}
|
||||||
|
&.font-size0{
|
||||||
|
&::after{
|
||||||
|
content: "-";
|
||||||
|
font-style: normal;
|
||||||
|
right: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
position: absolute;
|
||||||
|
font-size: 16px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue