pull/72/head
lukeyan 1 year ago
commit 823d8d42d1

@ -143,3 +143,35 @@ export function roadSafetyDetail(params) {
params
})
}
//防攻击安全
export function preventSafety(params) {
return request({
url: '/safety/signboard/prevent/safety',
method: 'post',
params
})
}
//防攻击安全详情
export function preventSafetyDetail(params) {
return request({
url: '/safety/signboard/prevent/safety/detail',
method: 'post',
params
})
}
//网络安全
export function networkSafety(params) {
return request({
url: '/safety/signboard/network/safety',
method: 'post',
params
})
}
//网络安全详情
export function networkSafetyDetail(params) {
return request({
url: '/safety/signboard/network/safety/detail',
method: 'post',
params
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

@ -42,8 +42,49 @@
<div class="topBKChildBg"></div>
</div>
</div>
<div class="middleBK"></div>
<div class="bottomBK"></div>
<div class="middleBK">
<div class="topBKChild" v-if="roadDetailData.enterpriseRectifications">
<div class="tjsjTitle">企业整改</div>
<div class="zhuangshi"></div>
<div class="tjsjChild">
<div class="imgBox_yellow"><img src="../../assets/companyCanban/icon/反馈整改完成.png" alt=""></div>
<div class="textBox">
<div class="numText">{{ roadDetailData.enterpriseRectifications[0].safeRuleName }}</div>
<div class="numNum_yellow">{{ roadDetailData.enterpriseRectifications[0].numValue }}</div>
</div>
</div>
<div class="tjsjChild">
<div class="imgBox_red"><img src="../../assets/companyCanban/icon/反馈整改未完成.png" alt=""></div>
<div class="textBox">
<div class="numText">{{ roadDetailData.enterpriseRectifications[1].safeRuleName }}</div>
<div class="numNum_yellow">{{ roadDetailData.enterpriseRectifications[1].numValue }}</div>
</div>
</div>
</div>
<div class="topBKChild" v-if="roadDetailData.perimeterInspections">
<div class="tjsjTitle">企业周边交通设施检查</div>
<div class="zhuangshi"></div>
<div class="tjsjChild">
<div class="imgBox_blue"><img src="../../assets/companyCanban/icon/设备完善.png" alt=""></div>
<div class="textBox">
<div class="numText">{{ roadDetailData.perimeterInspections[0].safeRuleName }}</div>
<div class="numNum_yellow">{{ roadDetailData.perimeterInspections[0].numValue }}</div>
</div>
</div>
<div class="tjsjChild">
<div class="imgBox_red"><img src="../../assets/companyCanban/icon/设备缺失.png" alt=""></div>
<div class="textBox">
<div class="numText">{{ roadDetailData.perimeterInspections[1].safeRuleName }}</div>
<div class="numNum_yellow">{{ roadDetailData.perimeterInspections[1].numValue }}</div>
</div>
</div>
</div>
</div>
<div class="bottomBK">
<div class="tjsjTitle">违章数据</div>
<div class="zhuangshi"></div>
<div class="wzsj" id="wzsj"></div>
</div>
</el-dialog>
</div>
</template>
@ -74,6 +115,7 @@ export default {
this.$nextTick(() => {
this.initytjc()
this.initjtsg()
this.initwzsj()
})
})
},
@ -178,14 +220,144 @@ export default {
]
};
option && myChart.setOption(option);
}
},
initwzsj() {
let myChart = echarts.init(document.getElementById("wzsj"));
const dateList = this.roadDetailData.list_113.map(item => {
return item.statisticsDate
})
// const jingnwaiList = this.roadDetailData.list_113.map(item => {
// return item.numValue
// })
const jingnneiList = this.roadDetailData.list_113.map(item => {
return item.numValue
})
const option = {
tooltip: {
trigger: "axis",
},
grid: {
top: "5%",
right: "5%",
bottom: "15%",
left: "15%",
},
// legend: [{
// data: [''],
// top: '5%',
// width: 100,
// selectedMode: false,
// textStyle: {
// color: 'rgba(255, 255, 255, 0.7)'
// },
// }, {
// top: '5%',
// right: 'center',
// width: 200,
// data: [''],
// textStyle: {
// color: 'rgba(255, 255, 255, 0.7)'
// },
// },],
xAxis: {
type: "category",
show: true,
minInterval: 1,
splitLine: {
show: false,
},
axisLabel: {
show: true, //
color: "#D0DEEE", //
},
minorTick: { show: false },
data: dateList,
},
yAxis: {
type: "value",
show: true,
minInterval: 1,
splitLine: {
show: false,
},
minorTick: { show: false },
axisLabel: {
show: true, //
color: "#FFF", //
},
},
series: [
// {
// name: "",
// type: "line",
// showSymbol: false,
// stack: "Total",
// emphasis: {
// focus: "series",
// },
// areaStyle: {
// opacity: 0.8,
// color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
// {
// offset: 0,
// color: "rgb(128, 255, 165)",
// },
// {
// offset: 1,
// color: "rgb(1, 191, 236)",
// },
// ]),
// },
// smooth: true,
// itemStyle: {
// normal: {
// color: "#00d2c4",
// },
// },
// data: jingnwaiList,
// },
{
name: "",
type: "line",
showSymbol: false,
stack: "Total",
emphasis: {
focus: "series",
},
areaStyle: {
opacity: 0.8,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgb(255, 191, 0)",
},
{
offset: 1,
color: "rgb(224, 62, 76)",
},
]),
},
smooth: true,
itemStyle: {
normal: {
color: "#FFCB6A",
},
},
data: jingnneiList,
},
],
};
option && myChart.setOption(option);
},
},
}
</script>
<style lang="less" scoped>
.fangyi {
height: 36.42%;
height: 34%;
width: 100%;
margin-bottom: 20px;
background: url('~@/assets/safetyIndex/主屏板块1.png') no-repeat;
@ -305,7 +477,7 @@ export default {
color: #D9E7FF;
letter-spacing: 1px;
font-weight: 500;
width: 100%;
width: 120%;
height: 16px;
text-align: center;
}
@ -335,8 +507,9 @@ export default {
.el-dialog__body {
box-sizing: border-box;
padding: 15px;
padding: 20px;
height: 580px;
box-sizing: border-box;
.topBK {
height: 175px;
@ -404,10 +577,205 @@ export default {
}
.middleBK {
height: 175px;
height: 100px;
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 20px;
.topBKChild {
width: 385px;
height: 100%;
margin: 10px 0;
background: url('~@/assets/companyCanban/09091.png') no-repeat;
background-size: 100% 100%;
position: relative;
padding-top: 10px;
box-sizing: border-box;
z-index: 0;
display: flex;
justify-content: space-around;
align-items: center;
.tjsjTitle {
position: absolute;
left: 14px;
top: 10px;
font-size: 16px;
color: #FFE6D9;
letter-spacing: 0;
line-height: 16px;
text-shadow: 0 0 8px rgba(255, 119, 52, 0.50);
font-weight: 500;
z-index: 10;
}
.zhuangshi {
position: absolute;
left: 0;
top: 0;
background: url('~@/assets/companyCanban/矩形(装饰).png') no-repeat;
background-size: 100% 100%;
width: 15px;
height: 15px;
z-index: 10;
}
.tjsjChild {
height: 60px;
width: calc(50% - 11px);
display: flex;
// justify-content: center;
align-items: center;
position: relative;
margin: 20px 0;
.imgBox_yellow {
margin-left: 10px;
width: 40px;
height: 40px;
border: 1px solid rgba(169, 121, 64, 1);
box-shadow: 0px 0px 6px 0px rgba(195, 143, 74, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(169, 121, 64, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(169, 121, 64, 0.37) 100%);
display: flex;
img {
width: 100%;
height: 100%;
}
}
.imgBox_red {
margin-left: 10px;
width: 40px;
height: 40px;
border: 1px solid rgba(169, 64, 64, 1);
box-shadow: 0px 0px 6px 0px rgba(195, 74, 74, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(169, 64, 64, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(169, 64, 64, 0.37) 100%);
display: flex;
img {
width: 100%;
height: 100%;
}
}
.imgBox_blue {
margin-left: 10px;
width: 40px;
height: 40px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
img {
width: 100%;
height: 100%;
}
}
.textBox {
margin-left: 15px;
.numNum_yellow {
font-size: 18px;
color: #FFE6D9;
letter-spacing: 0.9px;
line-height: 33px;
text-shadow: 0 0 8px rgba(255, 119, 52, 0.50);
font-weight: 500;
}
.numNum_red {
font-size: 18px;
color: #FFD9D9;
letter-spacing: 0.9px;
line-height: 33px;
text-shadow: 0 0 8px rgba(255, 52, 52, 0.50);
font-weight: 500;
}
.numNum_blue {
font-size: 18px;
color: #EBF9FF;
letter-spacing: 0.9px;
line-height: 33px;
text-shadow: 0 0 8px rgba(21, 154, 255, 0.50);
font-weight: 500;
}
.numText {
font-size: 12px;
color: #D0DEEE;
letter-spacing: 0;
line-height: 16px;
font-weight: 300;
}
}
}
.tjsjChild::after {
content: "";
background: url('~@/assets/companyCanban/矩形背景0122.png') no-repeat;
background-size: 100% 100%;
opacity: 0.5;
top: 0;
left: 0;
bottom: 0;
right: 0;
position: absolute;
z-index: 0;
}
}
}
.bottomBK {
margin-top: 20px;
height: 230px;
width: 100%;
background: url('~@/assets/companyCanban/09091.png') no-repeat;
background-size: 100% 100%;
position: relative;
padding-top: 10px;
box-sizing: border-box;
z-index: 0;
#wzsj {
width: 100%;
height: 100%;
}
.tjsjTitle {
position: absolute;
left: 14px;
top: 10px;
font-size: 16px;
color: #FFE6D9;
letter-spacing: 0;
line-height: 16px;
text-shadow: 0 0 8px rgba(255, 119, 52, 0.50);
font-weight: 500;
z-index: 10;
}
.zhuangshi {
position: absolute;
left: 0;
top: 0;
background: url('~@/assets/companyCanban/矩形(装饰).png') no-repeat;
background-size: 100% 100%;
width: 15px;
height: 15px;
z-index: 10;
}
}
}
}

@ -0,0 +1,875 @@
<template>
<div class="qyyg">
<div class="title" @click="showDialog"><img src="../../assets/safetyIndex/装饰009991.png" alt="">防攻击安全</div>
<div class="fangyiBox" v-if="staffStatisticsList && staffStatisticsList.length">
<div class="topBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业人防达标.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[0].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[0].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业物防达标.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[1].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[1].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="topBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业技防达标.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[2].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[2].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业整改.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[3].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[3].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="bottomBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业定期开展反恐实战演练、培训.png" alt=""></div>
<div class="sjText">
<div class="changText">{{ staffStatisticsList[4].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[4].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
</div>
<el-dialog title="防攻击安全上报数据详情" :visible.sync="diaVisible" class="picForm">
<div class="xfsswh1" v-if="detailList.airDefenses && detailList.airDefenses.length">
<div class="tjsjTitle">企业人防达标情况</div>
<div class="zhuangshi"></div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/重要岗位人员是否进行安….png" alt=""></div>
<div class="sjText">
<div>{{ detailList.airDefenses[0].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.airDefenses[0].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/应急力量是否匹配.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.airDefenses[1].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.airDefenses[1].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否安排巡逻防控力量.png" alt=""></div>
<div class="sjText">
<el-tooltip :content="detailList.airDefenses[2].safeRuleName" placement="bottom">
<div class="sjtexttext">{{ detailList.airDefenses[2].safeRuleName }}</div>
</el-tooltip>
<div class="onlineStatus" v-if="detailList.airDefenses[2].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否安排人员24小时值班.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.airDefenses[3].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.airDefenses[3].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否建立联防联动联治机制.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.airDefenses[4].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.airDefenses[4].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否定期开展实战演练情况.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.airDefenses[5].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.airDefenses[5].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="xfsswh" v-if="detailList.physicalDefenses && detailList.physicalDefenses.length">
<div class="tjsjTitle">企业技防达标情况</div>
<div class="zhuangshi"></div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否有实体防护措施.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.physicalDefenses[0].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.physicalDefenses[0].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否配备必要的防爆器械.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.physicalDefenses[1].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.physicalDefenses[1].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/车辆进出口是否安装冲撞….png" alt=""></div>
<div class="sjText">
<el-tooltip :content="detailList.physicalDefenses[2].safeRuleName" placement="bottom">
<div class="sjtexttext">{{ detailList.physicalDefenses[2].safeRuleName }}</div>
</el-tooltip>
<div class="onlineStatus" v-if="detailList.physicalDefenses[2].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="xfsswh" v-if="detailList.technicalDefenses && detailList.technicalDefenses.length">
<div class="tjsjTitle">企业物防达标情况</div>
<div class="zhuangshi"></div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否全方位安装视屏监控….png" alt=""></div>
<div class="sjText">
<el-tooltip :content="detailList.technicalDefenses[0].safeRuleName" placement="bottom">
<div class="sjtexttext">{{ detailList.technicalDefenses[0].safeRuleName }}</div>
</el-tooltip>
<div class="onlineStatus" v-if="detailList.technicalDefenses[0].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否安装访客登记系统.png" alt=""></div>
<div class="sjText">
<div>{{ detailList.technicalDefenses[1].safeRuleName }}</div>
<div class="onlineStatus" v-if="detailList.technicalDefenses[1].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/是否安装入侵和紧急报警….png" alt=""></div>
<div class="sjText">
<el-tooltip :content="detailList.technicalDefenses[2].safeRuleName" placement="bottom">
<div class="sjtexttext">{{ detailList.technicalDefenses[2].safeRuleName }}</div>
</el-tooltip>
<div class="onlineStatus" v-if="detailList.technicalDefenses[2].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { preventSafety, preventSafetyDetail } from '@/api/companyCanban'
export default {
props: ['companyId'],
data() {
return {
staffStatisticsList: [],
diaVisible: false,
companyID: this.companyId,
detailList: {},
}
},
created() {
this.getstaffStatistics()
},
methods: {
getstaffStatistics() {
preventSafety({ companyId: this.companyID }).then(res => {
this.staffStatisticsList = res.data
})
},
showDialog() {
preventSafetyDetail({ companyId: this.companyID }).then(res => {
this.detailList = res.data
this.diaVisible = true
})
},
}
}
</script>
<style lang="less" scoped>
.qyyg {
height: 28.06%;
width: 100%;
margin-bottom: 20px;
background: url('~@/assets/safetyIndex/主屏板块1.png') no-repeat;
background-size: 100% 100%;
.title {
width: 100%;
height: 33px;
background: url('~@/assets/safetyIndex/标题样式.png') no-repeat;
background-size: 100% 100%;
font-size: 16px;
color: #D9E7FF;
letter-spacing: 1px;
text-align: center;
font-weight: 500;
display: flex;
align-items: center;
cursor: pointer;
img {
width: 16px;
height: 16px;
margin: 0 12px;
}
}
.fangyiBox {
width: 100%;
height: calc(100% - 33px);
.topBox {
width: 100%;
height: 33.33%;
display: flex;
justify-content: space-around;
align-items: center;
box-sizing: border-box;
.sjItem {
width: 180px;
height: 55px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
padding: 8px;
box-sizing: border-box;
.iconBox {
width: 42px;
height: 42px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
img {
width: 22px;
height: 22px;
}
}
.sjText {
width: 128px;
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
.bottomBox {
width: 100%;
height: 33.33%;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0 10px;
.sjItem {
width: 380;
height: 55px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
padding: 8px;
box-sizing: border-box;
.iconBox {
width: 42px;
height: 42px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
img {
width: 22px;
height: 22px;
}
}
.sjText {
width: 313px;
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
}
}
.picForm {
/deep/ .el-dialog {
background-color: rgba(0, 0, 0, 0);
background: url('~@/assets/head/编组 3021112.png') no-repeat;
background-size: 100% 100%;
width: 841px;
height: 640px;
position: relative;
.el-dialog__title {
font-size: 16px;
color: #EBFFF4;
letter-spacing: 2px;
text-shadow: 0 0 9px rgba(21, 255, 195, 0.77);
font-weight: 400;
}
.el-dialog__body {
box-sizing: border-box;
padding: 15px;
height: 580px;
.xfsswh1 {
width: 100%;
height: 233px;
margin: 10px 0;
background: url('~@/assets/companyCanban/09091.png') no-repeat;
background-size: 100% 100%;
position: relative;
padding: 0 10px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
.tjsjTitle {
position: absolute;
left: 14px;
top: 10px;
font-size: 16px;
color: #FFE6D9;
letter-spacing: 0;
line-height: 16px;
text-shadow: 0 0 8px rgba(255, 119, 52, 0.50);
font-weight: 500;
}
.zhuangshi {
position: absolute;
left: 0;
top: 0;
background: url('~@/assets/companyCanban/矩形(装饰).png') no-repeat;
background-size: 100% 100%;
width: 15px;
height: 15px;
}
.sjItem {
width: 250px;
height: 60px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
align-items: center;
padding: 8px;
.iconBox {
width: 46px;
height: 46px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
}
.sjText {
font-size: 12px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
width: 170px;
overflow: hidden;
white-space: nowrap; //
text-overflow: ellipsis; //...
.sjtexttext {
width: 170px;
overflow: hidden;
white-space: nowrap; //
text-overflow: ellipsis; //...
}
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
.xfsswh {
width: 100%;
height: 120px;
margin: 10px 0;
background: url('~@/assets/companyCanban/09091.png') no-repeat;
background-size: 100% 100%;
position: relative;
padding: 0 10px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
.tjsjTitle {
position: absolute;
left: 14px;
top: 10px;
font-size: 16px;
color: #FFE6D9;
letter-spacing: 0;
line-height: 16px;
text-shadow: 0 0 8px rgba(255, 119, 52, 0.50);
font-weight: 500;
}
.zhuangshi {
position: absolute;
left: 0;
top: 0;
background: url('~@/assets/companyCanban/矩形(装饰).png') no-repeat;
background-size: 100% 100%;
width: 15px;
height: 15px;
}
.sjItem {
width: 250px;
height: 60px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
align-items: center;
padding: 8px;
.iconBox {
width: 46px;
height: 46px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
}
.sjText {
font-size: 12px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
width: 170px;
overflow: hidden;
white-space: nowrap; //
text-overflow: ellipsis; //...
.sjtexttext {
width: 170px;
overflow: hidden;
white-space: nowrap; //
text-overflow: ellipsis; //...
}
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
}
}
}
</style>

@ -15,6 +15,8 @@
</div>
<div class="rightBox">
<daolu :companyId="companyId" v-if="companyId"></daolu>
<fanggopngji :companyId="companyId" v-if="companyId"></fanggopngji>
<wangluo :companyId="companyId" v-if="companyId"></wangluo>
</div>
</div>
</template>
@ -28,6 +30,8 @@ import xiaofang from './xiaofang.vue'
import lieguan from './lieguan.vue'
import zhian from './zhian.vue'
import daolu from './daolu.vue'
import fanggopngji from './fanggopngji.vue'
import wangluo from './wangluo.vue'
import { companyBaseInfo } from '@/api/companyCanban'
export default {
@ -40,6 +44,8 @@ export default {
lieguan,
zhian,
daolu,
fanggopngji,
wangluo
},
data() {
return {

@ -0,0 +1,699 @@
<template>
<div class="fangyi">
<div class="title" @click="showDialog"><img src="../../assets/safetyIndex/装饰009991.png" alt="">网络安全</div>
<div class="fangyiBox" v-if="staffStatisticsList && staffStatisticsList.length">
<div class="topBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/漏洞整改.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[0].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[0].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/行政案件.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[1].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[1].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="topBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/重大网络安全….png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[2].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[2].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/网站应急系统….png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[3].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[3].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="topBox">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/等保顶级评审.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[4].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[4].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/企业演习、培训.png" alt=""></div>
<div class="sjText">
<div>{{ staffStatisticsList[5].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="staffStatisticsList[5].numValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
</div>
<el-dialog title="网络安全上报数据详情" :visible.sync="diaVisible" class="picForm">
<div class="kankuiBody">
<div class="topFankui" v-if="fangyiList.feedback && fangyiList.feedback.length">
<div class="topFankuiItem_green">
<div class="topText">{{ fangyiList.feedback[0].safeRuleName }}</div>
<div class="greenNum">{{ fangyiList.feedback[0].numValue }}</div>
<div class="dizuo"></div>
</div>
<div class="topFankuiItem_red">
<div class="topText">{{ fangyiList.feedback[1].safeRuleName }}</div>
<div class="greenNum">{{ fangyiList.feedback[1].numValue }}</div>
<div class="dizuo"></div>
</div>
</div>
<div class="bottomFankui" v-if="fangyiList.networks && fangyiList.networks.length">
<div class="bottomFankuiItem">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/漏洞整改.png" alt=""></div>
<div class="sjText">
<div>{{ fangyiList.networks[0].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="fangyiList.networks[0].sumNumValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/行政案件.png" alt=""></div>
<div class="sjText">
<div>{{ fangyiList.networks[1].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="fangyiList.networks[1].sumNumValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
<div class="bottomFankuiItem">
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/重大网络安全事件.png" alt=""></div>
<div class="sjText">
<div>{{ fangyiList.networks[2].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="fangyiList.networks[2].sumNumValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/网站应急系统备案.png" alt=""></div>
<div class="sjText">
<div>{{ fangyiList.networks[3].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="fangyiList.networks[3].sumNumValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
<div class="sjItem">
<div class="iconBox"><img src="../../assets/companyCanban/icon/等保顶级评审.png" alt=""></div>
<div class="sjText">
<div>{{ fangyiList.networks[4].levelIndexTwo }}</div>
<div class="onlineStatus" v-if="fangyiList.networks[4].sumNumValue == '是'">
<div class="green"></div>
<div class="red"></div>
</div>
<div class="outlineStatus" v-else>
<div class="green"></div>
<div class="red"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { networkSafety, networkSafetyDetail } from '@/api/companyCanban'
export default {
props: ['companyId'],
data() {
return {
companyID: this.companyId,
staffStatisticsList: [],
fangyiList: {},
diaVisible: false,
}
},
created() {
console.log(this.companyID, 'this.companyID');
networkSafety({ companyId: this.companyID }).then(res => {
this.staffStatisticsList = res.data
})
},
methods: {
showDialog() {
networkSafetyDetail({ companyId: this.companyID }).then(res => {
this.fangyiList = res.data
this.diaVisible = true
})
},
},
}
</script>
<style lang="less" scoped>
.fangyi {
height: calc(37.94% - 40px);
width: 100%;
margin-bottom: 20px;
background: url('~@/assets/safetyIndex/主屏板块1.png') no-repeat;
background-size: 100% 100%;
.title {
width: 100%;
height: 33px;
background: url('~@/assets/safetyIndex/标题样式.png') no-repeat;
background-size: 100% 100%;
font-size: 16px;
color: #D9E7FF;
letter-spacing: 1px;
text-align: center;
font-weight: 500;
display: flex;
align-items: center;
cursor: pointer;
img {
width: 16px;
height: 16px;
margin: 0 12px;
}
}
.fangyiBox {
width: 100%;
height: calc(100% - 33px);
.topBox {
width: 100%;
height: 33.33%;
display: flex;
justify-content: space-around;
align-items: center;
box-sizing: border-box;
.sjItem {
width: 180px;
height: 55px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
padding: 8px;
box-sizing: border-box;
.iconBox {
width: 42px;
height: 42px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
img {
width: 22px;
height: 22px;
}
}
.sjText {
width: 128px;
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
.bottomBox {
width: 100%;
height: 33.33%;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0 10px;
.sjItem {
width: 380;
height: 55px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
padding: 8px;
box-sizing: border-box;
.iconBox {
width: 42px;
height: 42px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
img {
width: 22px;
height: 22px;
}
}
.sjText {
width: 228px;
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
}
.picForm {
/deep/ .el-dialog {
background-color: rgba(0, 0, 0, 0);
background: url('~@/assets/companyFile/背景2.png') no-repeat;
background-size: 100% 100%;
width: 811px;
height: 480px;
position: relative;
.el-dialog__title {
font-size: 16px;
color: #EBFFF4;
letter-spacing: 2px;
text-shadow: 0 0 9px rgba(21, 255, 195, 0.77);
font-weight: 400;
}
.el-dialog__body {
box-sizing: border-box;
height: 420px;
padding: 15px;
.kankuiBody {
background: url('~@/assets/companyCanban/09091.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 100%;
.topFankui {
height: 180px;
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
.topFankuiItem_green {
width: 180px;
height: 180px;
background: url('~@/assets/companyCanban/上_00000.png') no-repeat;
background-size: 100% 100%;
position: relative;
font-size: 12px;
color: #DDFFF9;
letter-spacing: 0;
font-weight: 400;
letter-spacing: 1px;
padding-top: 70px;
text-align: center;
.topText {
text-align: center;
}
.greenNum {
font-size: 18px;
color: #13FFD4;
letter-spacing: 2.25px;
font-weight: 600;
height: 36px;
line-height: 36px;
text-align: center;
}
.dizuo {
width: 160px;
height: 70px;
background: url('~@/assets/companyCanban/底座2_00000.png') no-repeat;
background-size: 100% 100%;
position: absolute;
left: 10px;
bottom: 0;
}
}
.topFankuiItem_red {
width: 180px;
height: 180px;
background: url('~@/assets/companyCanban/红色上_00000.png') no-repeat;
background-size: 100% 100%;
position: relative;
font-size: 12px;
color: #DDFFF9;
letter-spacing: 0;
font-weight: 400;
letter-spacing: 1px;
padding-top: 70px;
text-align: center;
.topText {
text-align: center;
}
.greenNum {
font-size: 18px;
color: #FF4646;
letter-spacing: 2.25px;
font-weight: 600;
height: 36px;
line-height: 36px;
text-align: center;
}
.dizuo {
width: 160px;
height: 70px;
background: url('~@/assets/companyCanban/底座红色_00000.png') no-repeat;
background-size: 100% 100%;
position: absolute;
left: 10px;
bottom: 0;
}
}
}
.bottomFankui {
height: 200px;
width: 100%;
.bottomFankuiItem {
height: 50%;
width: 100%;
display: flex;
justify-content: space-evenly;
.sjItem {
width: 200px;
height: 60px;
background: url('~@/assets/companyCanban/7691备份.png') no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
align-items: center;
padding: 8px;
.iconBox {
width: 46px;
height: 46px;
border: 1px solid rgba(64, 145, 169, 1);
box-shadow: 0px 0px 6px 0px rgba(74, 176, 195, 1);
box-sizing: border-box;
background-image: linear-gradient(180deg, rgba(74, 176, 195, 0.37) 0%, rgba(98, 155, 227, 0.02) 43%, rgba(74, 176, 195, 0.37) 100%);
display: flex;
justify-content: center;
align-items: center;
}
.sjText {
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
letter-spacing: 0;
line-height: 16px;
font-weight: 400;
margin-left: 10px;
.percent {
font-size: 18px;
color: #FFFFFF;
letter-spacing: 1.12px;
font-weight: 700;
margin-top: 8px;
}
.onlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
background: #2CFED3;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(44, 254, 211, 0.65);
box-shadow: 0px 0px 4px 0px rgba(33, 121, 195, 0.56);
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(183, 33, 33, 0.50);
}
}
.outlineStatus {
margin-top: 8px;
width: 56px;
height: 18px;
display: flex;
justify-content: space-between;
.green {
width: 18px;
height: 18px;
border-radius: 50%;
opacity: 0.5;
background: #1C9980;
}
.red {
width: 18px;
height: 18px;
border-radius: 50%;
background: #FF2D2D;
box-shadow: inset 0px 1px 2px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 8px 1px rgba(254, 67, 44, 0.65);
box-shadow: 0px 0px 4px 0px rgba(195, 33, 33, 0.56);
}
}
}
}
}
}
}
}
}
}
}
</style>

@ -1,9 +1,9 @@
<template>
<div class="xfwp">
<div class="title" @click="showDialog"><img src="../../assets/safetyIndex/装饰009991.png" alt="">消防安全</div>
<div class="bodyBox">
<div class="bodyBox" v-if="fireData && fireData.length">
<div class="bodyBoxImg"><img src="../../assets/companyCanban/消防.png" alt=""></div>
<div class="topBody" v-if="fireData.length">
<div class="topBody" v-if="fireData">
<div class="huozai">
<img src="../../assets/companyCanban/icon/火灾事故.png" alt="">
<div class="huozaiText">火灾事故</div>
@ -15,7 +15,7 @@
<div class="yellow">{{ fireData[3].numValue }}</div>
</div>
</div>
<div class="topBody">
<div class="topBody" v-if="fireData">
<div class="huozai">
<img src="../../assets/companyCanban/icon/消防违建.png" alt="">
<div class="huozaiText">消防违规</div>
@ -28,7 +28,8 @@
</div>
</div>
</div>
<el-dialog title="消防安全上报数据详情" :visible.sync="diaVisible" class="picForm" v-if="fireDetailList.length">
<el-dialog title="消防安全上报数据详情" :visible.sync="diaVisible" class="picForm"
v-if="fireDetailList && fireDetailList.length">
<div class="xfsswh">
<div class="tjsjTitle">消防设施维护</div>
<div class="zhuangshi"></div>

Loading…
Cancel
Save