dev-login
姜玉琦 2023-08-13 21:03:24 +08:00
commit 9194ede270
12 changed files with 1184 additions and 860 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -9,24 +9,34 @@
</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;"
<path viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
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" <path
fill="" p-id="1676"></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"
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path> fill="#fff" p-id="3687"></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>
</div> </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 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;">
<div v-show="nav == 0" v-for="(it, idx) in tableData1" class="data-item"> <div v-show="nav == 0" v-for="(it, idx) in tableData1" class="data-item">
@ -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" >
@ -117,15 +118,7 @@
<div class="div-text"> <div class="div-text">
<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;">
@ -361,20 +354,7 @@ 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;
}
}
}
} }
} }
.popup-project-introduction-min { .popup-project-introduction-min {

View File

@ -4,24 +4,34 @@
<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;"
<path viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
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" <path
fill="" p-id="1676"></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"
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path> fill="#fff" p-id="3687"></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>
</div> </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 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" >
@ -176,21 +186,7 @@ export default {
.font-size-tools { .font-size-tools {
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;
}
}
}
} }
} }

View File

@ -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"> 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> </i>
<svg class="icon svg-icon" @click="fontSize = 1" :class="fontSize==1?'active':''" <i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize==1?'active':''">
<svg class="icon svg-icon"
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-size0" @click="fontSize = 0" :class="fontSize==0?'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>
</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 {

View File

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

View File

@ -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,18 +329,18 @@ export default {
prjInfo:{}, prjInfo:{},
scheduleInfo:null, scheduleInfo:null,
projects:[], projects:[],
projectCategory:[]
} }
}, },
created() { created() {
this.init() this.init()
}, },
mounted() { mounted() {
this.$bus.$on("projectChange",res=>{ this.$bus.$on("projectChange",res=>{
this.loadProjectConstructionProgress(); this.loadProjectConstructionProgress();
}); });
this.$bus.$on("loadProjects",prjs=>{ this.$bus.$on("loadProjects",prjs=>{
this.projects=prjs; this.projects=prjs;
}) })
this.$bus.$on("deptChange",dept=>{ this.$bus.$on("deptChange",dept=>{
this.$api.quarterlyAssess.currentListByDept(dept.id).then(d=>{ this.$api.quarterlyAssess.currentListByDept(dept.id).then(d=>{
@ -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);
// //

View File

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