网络安全

main
严飞永 4 weeks ago
parent 7fbf3249eb
commit 3a9def8069

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

@ -0,0 +1,5 @@
<template>
<div>
223
</div>
</template>

@ -0,0 +1,268 @@
<template>
<div class="bodycontainer">
<div class="labels">
<div
class="label-item"
v-for="(item, index) in pieData"
:key="index"
:style="{
backgroundImage: `url(${require('@/assets/sentimeent/' +
(item.name === '小程序' ? '其他' : item.name) +
'.png')})`,
backgroundSize: '100% 100%',
}"
>
<div class="label-content">
<div class="percent" :style="{ color: getItemColor(index) }">
{{ getItemPercent(item) }}%
</div>
<div class="name">{{ item.name }}</div>
</div>
</div>
</div>
<div class="chart-container">
<div ref="chart" style="width: 400px; height: 300px;"></div>
</div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
data() {
return {
chart: null,
total: 0,
currentSelected: null,
pieData: [
{ value: 15, name: "上级下发" },
{ value: 3, name: "部门转发" },
{ value: 10, name: "小程序" },
{ value: 4, name: "无效" },
],
colorMap: ["#37a4ff", "#00ffde", "#ff7e2b", "#fbe84f"],
};
},
computed: {
legendData() {
return this.pieData.map((item) => ({
name: item.name,
value: item.value,
color: item.color,
}));
},
},
mounted() {
this.calculateTotal();
this.initChart();
},
methods: {
calculateTotal() {
this.total = this.pieData.reduce((sum, item) => sum + item.value, 0);
},
initChart() {
this.chart = echarts.init(this.$refs.chart);
const option = {
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b}: {c} ({d}%)",
},
series: [
{
name: "数据集",
type: "pie",
radius: ["50%", "70%"],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: "#fff",
borderWidth: 2,
},
label: {
show: false,
position: "center",
},
emphasis: {
label: {
show: true,
fontSize: "18",
fontWeight: "bold",
formatter: (params) => {
const percentage = ((params.value / this.total) * 100).toFixed(1);
return `{b|${params.name}}\n{hr|}\n{d|${percentage}%}`;
},
rich: {
b: {
fontSize: 16,
fontWeight: "bold",
color: "#333",
lineHeight: 26,
},
hr: {
borderColor: "#fff",
width: "100%",
borderWidth: 1,
height: 0,
},
d: {
fontSize: 16,
color: "#333",
lineHeight: 26,
},
},
},
},
data: this.pieData.map((item) => ({
value: item.value,
name: item.name,
itemStyle: { color: item.color },
})),
},
],
graphic: [
{
type: "text",
left: "center",
top: "center",
style: {
text: `总模块\n${this.total}`,
textAlign: "center",
fill: "#333",
fontSize: 18,
fontWeight: "bold",
},
},
],
};
this.chart.setOption(option);
//
this.chart.on("click", (params) => {
this.currentSelected = params;
this.updateCenterText();
});
//
window.addEventListener("resize", this.resizeHandler);
},
updateCenterText() {
if (this.currentSelected) {
const percentage = ((this.currentSelected.value / this.total) * 100).toFixed(1);
const option = {
graphic: [
{
type: "text",
left: "center",
top: "center",
style: {
text: `${this.currentSelected.name}\n${percentage}%`,
textAlign: "center",
fill: this.currentSelected.color,
fontSize: 18,
fontWeight: "bold",
},
},
],
};
this.chart.setOption(option);
} else {
const option = {
graphic: [
{
type: "text",
left: "center",
top: "center",
style: {
text: `总模块\n${this.total}`,
textAlign: "center",
fill: "#333",
fontSize: 18,
fontWeight: "bold",
},
},
],
};
this.chart.setOption(option);
}
},
resizeHandler() {
this.chart && this.chart.resize();
},
getItemColor(index) {
return this.colorMap[index] || "#ffffff";
},
getItemPercent(item) {
const total = this.pieData.reduce((sum, i) => sum + i.value, 0);
if (total === 0) return 0;
let percent = (item.value / total) * 100;
//
return percent.toFixed(1);
},
},
beforeDestroy() {
window.removeEventListener("resize", this.resizeHandler);
this.chart && this.chart.dispose();
},
};
</script>
<style lang="scss" scoped>
.bodycontainer {
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
.labels {
display: flex;
justify-content: space-between;
padding: 0 20px;
.label-item {
position: relative;
width: 170px;
height: 65px;
display: flex;
justify-content: center;
align-items: center;
.label-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.percent {
font-size: 28px;
font-weight: bold;
font-family: Arial;
line-height: 1.2;
margin-top: -10px;
}
.name {
font-family: AlibabaPuHuiTiR;
font-size: 20px;
color: #b4f9ff;
line-height: 22px;
text-align: justifyLeft;
font-style: normal;
text-transform: none;
margin-top: 5px;
}
}
}
}
.chart-container {
width: 400px;
height: 300px;
margin-top: 20px;
}
}
</style>

@ -9,32 +9,27 @@
<div> <div>
<div v-show="currentIndex === 0"> <div v-show="currentIndex === 0">
<div class="section-ranking"> <div class="section-ranking">
<div <div v-for="(item, index) in attackRanking2" :key="index" class="section-ranking-item">
v-for="(item, index) in attackRanking"
:key="index"
class="section-ranking-item"
>
<img :src="item.url" alt="" /> <img :src="item.url" alt="" />
<span <span class="section-ranking-item-index" style="color:#ffffff;">
class="section-ranking-item-index"
:style="{
color: index < 3 ? '#6d5300' : '#93d3fa',
}"
>
{{ index + 1 }} {{ index + 1 }}
</span> </span>
<div class="section-ranking-content"> <div class="section-ranking-content">
<span class="section-ranking-content-total">{{ item.total }}</span> <span class="section-ranking-content-total">
<!-- <span>园区财政局</span> -->
{{ item.total }}</span>
<div class="section-ranking-content-warp"> <div class="section-ranking-content-warp">
<div <div class="section-wrap-item"
class="section-wrap-item" :style="{
:style="{ backgroundImage: index < 3 ? backgroundColors[index] :'linear-gradient(to right, #041528, #4997f7)',
backgroundColor: index < 3 ? '#e8bf00' : '#4997f7', width: (item.num / attack2) * 100 + '%',
width: (item.num / attack) * 100 + '%', }" />
}" <div class="section-wrap-num"
/> :style="{
<div class="section-wrap-num"> color: index < 3 ? wordcolor[index]:'#4997f7'
<span>{{ item.num | commaFilter }}</span> <span></span> }"
>
<span>{{ item.num | commaFilter }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -46,15 +41,10 @@
<div class="section-distribution"> <div class="section-distribution">
<div class="section-control"> <div class="section-control">
<ul class="section-control-wrap"> <ul class="section-control-wrap">
<li <li v-for="(item, index) in controlList" :key="index" :class="[
v-for="(item, index) in controlList" { active: isActive === index },
:key="index" 'section-control-wrap-item',
:class="[ ]" @click="isActive = index">
{ active: isActive === index },
'section-control-wrap-item',
]"
@click="isActive = index"
>
{{ item }} {{ item }}
</li> </li>
</ul> </ul>
@ -69,6 +59,7 @@
import { saftyscreenUnattack } from "@/api/zongzhi/st.js"; import { saftyscreenUnattack } from "@/api/zongzhi/st.js";
import { echartsJump } from "../../../../../public/static/echartsJump"; import { echartsJump } from "../../../../../public/static/echartsJump";
import { listTop5, listFbqk } from "@/api/networkSecurity"; import { listTop5, listFbqk } from "@/api/networkSecurity";
import { color } from "echarts/lib/export";
export default { export default {
name: "", name: "",
filters: { filters: {
@ -94,7 +85,50 @@ export default {
{ value: 953305, name: "SMB远程溢出攻击" }, { value: 953305, name: "SMB远程溢出攻击" },
{ value: 443961, name: "其他" }, { value: 443961, name: "其他" },
], ],
topImages: [
require("@/assets/privateOrder/general/top2.png"),
require("@/assets/privateOrder/general/top1.png"),
require("@/assets/privateOrder/general/top3.png"),
],
backgroundColors: [
'linear-gradient(to right, #031222, #EB6111)',
'linear-gradient(to right, #041223, #EBB811)',
'linear-gradient(to right, #041528, #EBBC11)',
],
wordcolor:[
'#EA6111',
'#EAB711',
'#EAB711',
],
attackRanking: [], attackRanking: [],
attackRanking2: [ // attackRanking2
{
total: "园区财政局 10.28.15.100",
num: 10821207,
url: require("@/assets/privateOrder/general/top1.png"),
},
{
total: "园区市监局 10.29.34.8",
num: 8421207,
url: require("@/assets/privateOrder/general/top2.png"),
},
{
total: "园区投资局 10.31.25.32",
num: 7011207,
url: require("@/assets/privateOrder/general/top3.png"),
},
{
total: "行政审批局 10.31.25.61",
num: 921207,
url: require("@/assets/privateOrder/general/top4.png"),
},
{
total: "环境保护局 2.43.100.12",
num: 721207,
url: require("@/assets/privateOrder/general/top4.png"),
},
],
controlList: [], controlList: [],
pieImg: [], pieImg: [],
}; };
@ -106,6 +140,12 @@ export default {
}); });
return this.attackTotal; return this.attackTotal;
}, },
attack2() {
this.attackRanking2.forEach((v) => {
this.attackTotal += v.num;
});
return this.attackTotal;
},
}, },
watch: { watch: {
// currentIndex() { // currentIndex() {
@ -131,10 +171,7 @@ export default {
// value: item.pt, // value: item.pt,
total: item.sattackIp, total: item.sattackIp,
num: Number(item.sattackCount), num: Number(item.sattackCount),
url: url: index < 3 ? this.topImages[index] : require("@/assets/privateOrder/general/top4.png"),
index + 1 <= 3
? require("@/assets/privateOrder/general/top前三.png")
: require("@/assets/privateOrder/general/top5-其他.png"),
}; };
}); });
this.attackRanking.sort(function (a, b) { this.attackRanking.sort(function (a, b) {
@ -242,79 +279,89 @@ export default {
<style lang='scss' scoped> <style lang='scss' scoped>
// //
.section-ranking { .section-ranking {
height: 364px; height: 442px;
overflow: hidden;
overflow-y: auto;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding-top: 25px;
.section-ranking-item { .section-ranking-item {
margin-top: 25px; margin-top: 20px;
display: flex; display: flex;
position: relative; position: relative;
padding-bottom: 20px;
border-bottom: 1px solid #32466B;
.section-ranking-item-index { .section-ranking-item-index {
position: absolute; position: absolute;
top: 50%; top: 30%;
transform: translateY(-50%); transform: translateY(-50%);
left: 19px; left: 18px;
font-family: DIN-Bold; font-family: DIN;
font-size: 15px; font-weight: bold;
font-size: 19.9px;
} }
} }
.section-ranking-content { .section-ranking-content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; // justify-content: space-between;
margin-left: 10px; margin-left: 10px;
.section-ranking-content-total { .section-ranking-content-total {
font-family: DIN-Medium; font-family: DIN-Medium;
font-size: 34px; // font-family: AlibabaPuHuiTiR;
font-size: 22px;
color: #ffffff; color: #ffffff;
opacity: 0.7; margin-bottom: 10px;
} }
.section-ranking-content-warp { .section-ranking-content-warp {
width: 531px; width: 682px;
height: 12px; height: 12px;
background-color: rgba($color: #6ab8ff, $alpha: 0.1); background-color: rgba($color: #6ab8ff, $alpha: 0.1);
padding: 1px; padding: 1px;
border-radius: 6px;
border: solid 2px #07437c;
position: relative; position: relative;
} }
.section-wrap-item { .section-wrap-item {
height: 8px; height: 12px;
border-radius: 4px;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
&:hover { &:hover {
cursor: pointer; cursor: pointer;
} }
} }
.section-wrap-num { .section-wrap-num {
position: absolute; position: absolute;
right: -169px; right: 0px;
bottom: -8px; bottom: 25px;
span:nth-child(1) {
span{
font-family: DIN-Medium; font-family: DIN-Medium;
font-size: 30px; font-size: 30px;
color: #fff36f; font-weight: bold;
}
span:nth-child(2) {
font-size: 18px;
color: #fff;
} }
} }
} }
} }
// //
.section-distribution { .section-distribution {
margin-top: 25px; margin-top: 25px;
height: 400px; height: 400px;
width: 100%; width: 100%;
.section-control { .section-control {
height: 50px; height: 50px;
width: 100%; width: 100%;
margin: 16px; margin: 16px;
.section-control-wrap { .section-control-wrap {
display: flex; display: flex;
height: 100%; height: 100%;
@ -324,16 +371,19 @@ export default {
margin-top: -20px; margin-top: -20px;
// margin: 0; // margin: 0;
justify-content: space-evenly; justify-content: space-evenly;
.section-control-wrap-item { .section-control-wrap-item {
font-family: SourceHanSansCN-Regular; font-family: SourceHanSansCN-Regular;
color: #b7dfff; color: #b7dfff;
text-align: center; text-align: center;
line-height: 50px; line-height: 50px;
font-size: 28px; font-size: 28px;
&:hover { &:hover {
cursor: pointer; cursor: pointer;
} }
} }
.active { .active {
border-bottom: 4px solid #b7dfff; border-bottom: 4px solid #b7dfff;
border-radius: 2px; border-radius: 2px;
@ -341,12 +391,12 @@ export default {
} }
} }
} }
#section-pie { #section-pie {
margin: 35px auto; margin: 35px auto;
width: 750px; width: 750px;
height: 334px; height: 334px;
background: url("~@/assets/privateOrder/general/first/circle-bg.png") background: url("~@/assets/privateOrder/general/first/circle-bg.png") no-repeat;
no-repeat;
} }
} }
</style> </style>

@ -1,12 +1,24 @@
<template> <template>
<div></div> <div class="maincontainer">
<!-- <maparea></maparea> -->
</div>
</template> </template>
<script> <script>
import maparea from "@/views/privateOrder/security/components/map.vue";
export default { export default {
components: { maparea },
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
.maincontainer {
width: 100%;
height: 100%;
// background-color: antiquewhite;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
</style> </style>

@ -22,6 +22,10 @@
<span style=" <span style="
display: inline-block; display: inline-block;
color: #11D1E9; color: #11D1E9;
font-size: 22px;
font-family: DIN-Medium;
font-style: italic;
font-weight: bold;
transform: translate(2px, -3px); transform: translate(2px, -3px);
"> ">
/</span> /</span>
@ -46,12 +50,12 @@
<div class="section-bg"> <div class="section-bg">
<div v-for="(item, idx) in superviseObject" :key="idx" :class="['section-object-item', item.className]" <div v-for="(item, idx) in superviseObject" :key="idx" :class="['section-object-item', item.className]"
@click="showAttack(item.title, item.type)"> @click="showAttack(item.title, item.type)">
<img :src="item.url" alt="" />
<div class="item-content"> <div class="item-content">
<span class="item-content-title">{{ item.title }}</span><br />
<span class="item-content-num">{{ <span class="item-content-num">{{
item.num | commaFilter item.num | commaFilter
}}</span> }}</span>
<span class="item-content-title">{{ item.title }}</span>
</div> </div>
</div> </div>
<div class="section-center" /> <div class="section-center" />
@ -61,33 +65,35 @@
<div class="section-securityMonitor"> <div class="section-securityMonitor">
<module-title>安全监测</module-title> <module-title>安全监测</module-title>
<div class="section-monitor"> <div class="section-monitor">
<!-- 描述 -->
<div class="section-monitor-top"> <div class="section-monitor-top">
<div class="monitor-info"> <div class="monitor-info">
<img :src="securityMonitor.url" alt="" /> <img :src="securityMonitor.url" alt="" />
</div>
<div class="monitortop">
<div class="monitor-info-des"> <div class="monitor-info-des">
<span class="info-des-title">{{ securityMonitor.title }}</span> <span class="info-des-title">{{ securityMonitor.title }}</span>
<span class="info-des-total">{{ monitorForm.netAttack }}</span> <span class="info-des-total">{{ monitorForm.netAttack }}</span>
</div> </div>
</div> <div class="monitor-detail">
<span class="monitor-line">|</span> <div v-for="(item, index) in securityMonitor.detail" v-show="index < 3" :key="index"
<div class="monitor-detail"> class="monitor-detail-item">
<div v-for="(item, index) in securityMonitor.detail" v-show="index < 3" :key="index" <span class="detail-item-title">{{ item.title }}</span>
class="monitor-detail-item"> <span class="detail-item-num">{{
<span class="detail-item-title">{{ item.title }}</span> item.title == "入侵攻击"
<span class="detail-item-num">{{ ? monitorForm.rqAttack
item.title == "挖矿软件" : item.title == "恶意扫描"
? monitorForm.rqAttack ? monitorForm.smAttack
: item.title == "Web攻击" : item.title == "僵木蠕病毒"
? monitorForm.smAttack ? monitorForm.bdAttack
: item.title == "可疑通信" : 0
? monitorForm.bdAttack }}</span>
: 0 </div>
}}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="section-monitor-bottom"> <div class="section-monitor-bottom">
<div class="monitor-box"> <!-- <div class="monitor-box">
<div class="monitor-title"> <div class="monitor-title">
<span>时间</span> <span>时间</span>
<span>攻击源/IP</span> <span>攻击源/IP</span>
@ -104,11 +110,34 @@
</div> </div>
</vue-seamless-scroll> </vue-seamless-scroll>
</div> </div>
</div> -->
<div class="firewall-table">
<div class="table-header">
<div class="header-cell" style="width: 220px">时间</div>
<div class="header-cell" style="width: 120px">攻击源/IP</div>
<div class="header-cell" style="width: 170px">攻击类型</div>
</div>
<vue-seamless-scroll :data="tableData" :class-option="classOption" class="scroll-container">
<div class="table-body">
<div class="table-row" v-for="(item, idx) in tableData" :key="idx"
:class="{ 'odd-row': idx % 2 === 0 }">
<div class="cell" style="width: 220px"><span :data-id="item.id">{{
$moment(item.startTime).format("YYYY-MM-DD")
}}</span></div>
<div class="cell" style="width: 120px">
<span :data-id="item.id">{{ item.attackyIp }}</span>
</div>
<div class="cell violation-text">
<span :data-id="item.id">{{ item.attackType }}</span>
</div>
</div>
</div>
</vue-seamless-scroll>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="section-attackRanking" @mouseover="mouseOver" @mouseleave="mouseLeave"> <div class="section-attackRanking" @mouseover="mouseOver" @mouseleave="mouseLeave" style="margin-top: -7px;">
<module-title> <module-title>
受攻击情况 受攻击情况
<div slot="operate" class="btn-wrap"> <div slot="operate" class="btn-wrap">
@ -120,7 +149,7 @@
</div> </div>
</module-title> </module-title>
<!-- 受攻击情况 --> <!-- 受攻击情况 -->
<!-- <attackSituation :current-index="currentIndex"></attackSituation> --> <attackSituation :current-index="currentIndex"></attackSituation>
</div> </div>
</div> </div>
<!-- 安全监测详细弹框 --> <!-- 安全监测详细弹框 -->
@ -414,20 +443,20 @@ export default {
}, },
], ],
securityMonitor: { securityMonitor: {
url: require("@/assets/privateOrder/general/icon-网络攻击.png"), url: require("@/assets/privateOrder/general/安全检测icon.png"),
title: "网络攻击(万)", title: "网络攻击(万)",
total: 0, total: 0,
detail: [ detail: [
{ {
title: "挖矿软件", title: "入侵攻击",
num: 0, num: 0,
}, },
{ {
title: "Web攻击", title: "恶意扫描",
num: 0, num: 0,
}, },
{ {
title: "可疑通信", title: "僵木蠕病毒",
num: 0, num: 0,
}, },
], ],
@ -444,7 +473,7 @@ export default {
// attackedType: '', // attackedType: '',
// webLevel: '1', // webLevel: '1',
// contactTel: '18703885598', // contactTel: '18703885598',
// subordinateDept: '', // subor DIN-MediumateDept: '',
// contactName: '' // contactName: ''
}, },
tableData: [ tableData: [
@ -729,6 +758,72 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
//
.firewall-table {
width: 100%;
border-radius: 4px;
overflow: hidden;
margin-top: 20px;
height: 290px;
.table-header {
display: flex;
background-color: #1a3b6e;
background: url("~@/assets/privateOrder/general/背景表格头.png");
background-size: 100% 100%;
background-repeat: no-repeat;
font-family: AlibabaPuHuiTiM;
.header-cell {
padding: 12px;
color: #ffffff;
font-size: 18px;
font-weight: normal;
flex: 1;
text-align: center;
}
}
.scroll-container {
height: 340px;
overflow: hidden;
}
.table-body {
width: 100%;
font-family: AlibabaPuHuiTiM;
.table-row {
display: flex;
background-color: black;
border-bottom: 1px solid #193859;
&:hover {
background-color: rgba(33, 150, 243, 0.1) !important;
}
&.odd-row {
background-color: rgba(18, 40, 69, 0.7);
background: url("~@/assets/privateOrder/general/背景表格斑马纹.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.cell {
padding: 12px;
color: #B9CCDF;
font-size: 16px;
flex: 1;
text-align: center;
}
.violation-text {
color: #B9CCDF;
}
}
}
}
.screen-dialog { .screen-dialog {
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
@ -922,36 +1017,33 @@ export default {
.module-container { .module-container {
width: 1512px; width: 1512px;
height: 950px; height: 985px;
margin: 130px 0 0 50px; margin: 130px 0 0 100px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
align-content: space-between; align-content: space-between;
.section-securityMonitor, .section-securityMonitor {
.section-dataSource { width: 680px;
width: 720px; height: 515px;
height: 480px;
} }
.section-securityMonitor { .section-dataSource {
padding-top: 35px; width: 680px;
height: 470px;
} }
.section-attackRanking { .section-attackRanking {
width: 742px; width: 742px;
height: 447px; height: 447px;
padding-top: 35px;
:hover {
cursor: pointer;
}
} }
.section-superviseObject { .section-superviseObject {
width: 751px; width: 751px;
height: 447px; height: 470px;
margin-top: -7px;
} }
} }
@ -1013,7 +1105,7 @@ export default {
.attack-num { .attack-num {
display: inline-block; display: inline-block;
align-self: center; align-self: center;
font-family: DIN-Medium; font-family: DIN-Medium-Medium;
font-size: 35px; font-size: 35px;
color: #ffffff; color: #ffffff;
@ -1132,27 +1224,27 @@ export default {
.section-top { .section-top {
width: 100%; width: 100%;
height: 140px; height: 122px;
display: flex; display: flex;
margin-top: 24px; margin-top: 24px;
// margin-left: 12px; // margin-left: 12px;
// margin-bottom: 20px; // margin-bottom: 20px;
justify-content: flex-end; justify-content: flex-end;
gap: 54px; gap: 34px;
.section-top-item { .section-top-item {
width: 320px; width: 301px;
height: 100%; height: 130px;
display: flex; display: flex;
justify-content: space-around; justify-content: center;
gap: 35.44px;
background: url("~@/assets/privateOrder/general/数据来源bg.png"); background: url("~@/assets/privateOrder/general/数据来源bg.png");
background-size: 100% 100%; background-size: 100% 100%;
align-items: flex-start;
img { img {
width: 75px; width: 75px;
height: 104px; height: 104px;
align-self: center;
} }
.top-item-content { .top-item-content {
@ -1160,13 +1252,12 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
height: 60%; gap: 5px;
margin-top: 8%;
div { div {
text-align: left; text-align: left;
font-family: AlibabaPuHuiTiR; font-family: AlibabaPuHuiTiR;
font-size: 28px; font-size: 18.62px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
letter-spacing: 1px; letter-spacing: 1px;
@ -1175,7 +1266,7 @@ export default {
.content-currentNum, .content-currentNum,
.content-total { .content-total {
text-align: left; text-align: left;
font-family: DIN; font-family: DIN-Medium;
font-size: 28px; font-size: 28px;
font-weight: bold; font-weight: bold;
font-stretch: normal; font-stretch: normal;
@ -1184,11 +1275,13 @@ export default {
.content-currentNum { .content-currentNum {
color: #11D1E9; color: #11D1E9;
font-style: italic;
} }
.content-total { .content-total {
color: #ffffff; color: #475C81;
opacity: 0.5; opacity: 0.5;
font-style: italic;
} }
} }
} }
@ -1199,13 +1292,13 @@ export default {
width: 100%; width: 100%;
height: 192px; height: 192px;
display: flex; display: flex;
margin-top: 24px; margin-top: 34px;
justify-content: flex-end; justify-content: flex-end;
gap: 28px; gap: 34px;
.section-bottom-item { .section-bottom-item {
width: 213px; width: 189px;
height: 224px; height: 200px;
position: relative; position: relative;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -1215,27 +1308,29 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
img { img {
width: 103px; width: 65px;
height: 132px; height: 90px;
} }
.bottom-title { .bottom-title {
font-size: 28px; // font-family: Adobe Heiti Std;
font-size: 18.2px;
color: #fff; color: #fff;
font-family: SourceHanSansCN-Regular; margin-top: 10px;
text-shadow: 0 0 10px #77adeb;
} }
.bottom-num { .bottom-num {
font-size: 30px; font-size: 26px;
width: 100%; width: 100%;
height: 40px; height: 40px;
text-align: center;
color: #11D1E9; color: #11D1E9;
margin-top: 10px; margin-top: 14px;
margin-bottom: 5px; display: flex;
padding: 5px 0px; justify-content: center;
background-color: #fff; padding-top: 3px;
font-weight: bold;
font-family: DIN-Medium;
font-style: italic;
background: url("~@/assets/privateOrder/general/数据来源BG3.png"); background: url("~@/assets/privateOrder/general/数据来源BG3.png");
background-size: 100% 100%; background-size: 100% 100%;
// font-family: ConthraxSb-Regular; // font-family: ConthraxSb-Regular;
@ -1254,9 +1349,10 @@ export default {
.section-bg { .section-bg {
position: relative; position: relative;
top: 54px; top: 33px;
width: 100%; left: 34px;
height: 351px; width: 90%;
height: 370px;
background: url("~@/assets/privateOrder/general/circle.png") no-repeat; background: url("~@/assets/privateOrder/general/circle.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
@ -1272,28 +1368,43 @@ export default {
transition: 0.2s; transition: 0.2s;
} }
.item-content {
background-image: url(~@/assets/privateOrder/general/底座.png);
background-size: 100% 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding-bottom: 35px;
margin-left: -32px;
margin-bottom: 10px;
}
.item-content-title { .item-content-title {
font-family: SourceHanSansCN-Regular; font-family: AlibabaPuHuiTiR;
font-size: 28px; font-size: 18.2px;
color: #b7dfff; color: #E4F0FF;
} }
.item-content-num { .item-content-num {
font-family: DIN-Bold; font-family: DIN-Medium;
font-size: 44px; font-weight: bold;
font-size: 32px;
margin-bottom: 5px;
color: #11D1E9;
font-style: italic; font-style: italic;
color: #ffffff;
} }
} }
.section-center { .section-center {
position: absolute; position: absolute;
top: 72px; top: -13px;
left: 336px; left: 190px;
width: 73px; width: 303px;
height: 100px; height: 216.35px;
background: url("~@/assets/privateOrder/general/icon-监管.png"); background: url("~@/assets/privateOrder/general/盾牌.png");
background-size: 100%; background-repeat: no-repeat;
background-size: 100% 100%;
} }
} }
} }
@ -1356,19 +1467,20 @@ export default {
// //
.section-monitor { .section-monitor {
height: 387px; height: 424px;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-evenly; // justify-content: space-evenly;
.section-monitor-top { .section-monitor-top {
width: 100%; width: 100%;
height: 120px; height: 120px;
display: flex; display: flex;
margin-top: 5px; margin-top: 5px;
justify-content: space-between; justify-content: space-around;
background: url("~@/assets/privateOrder/general/bg-安全监测.png") 100% no-repeat; background: url("~@/assets/privateOrder/general/安全检测底图.png") bottom no-repeat;
background-size: 100% 50%;
.monitor-line { .monitor-line {
display: inline-block; display: inline-block;
@ -1386,28 +1498,37 @@ export default {
img { img {
align-self: center; align-self: center;
width: 80%;
height: 100%;
} }
}
.monitor-info-des { .monitortop {
align-self: center; display: flex;
display: flex; flex-direction: column;
flex-direction: column; justify-content: space-around;
justify-content: space-between; }
height: 70%;
.info-des-title { .monitor-info-des {
font-family: SourceHanSansCN-Regular; width: 88%;
font-size: 24px; height: 33px;
color: #ffffff; display: flex;
} justify-content: space-around;
align-items: center;
background-image: url(~@/assets/privateOrder/general/网络攻击.png);
background-size: 100% 100%;
.info-des-total { .info-des-title {
font-family: PangMenZhengDao-3; font-family: AlibabaPuHuiTiM;
font-size: 40px; font-size: 18.62px;
font-style: italic; color: #ffffff;
letter-spacing: 2px; }
color: #fff36f;
} .info-des-total {
font-family: DIN-Medium;
font-weight: bold;
font-size: 24px;
color: #99F17A;
} }
} }
@ -1421,17 +1542,18 @@ export default {
justify-content: center; justify-content: center;
flex: 1; flex: 1;
flex-direction: column; flex-direction: column;
gap: 10px;
.detail-item-title { .detail-item-title {
font-family: SourceHanSansCN-Regular; // font-family: SourceHanSansCN-Regular;
font-size: 26px; font-size: 15.96px;
color: #68cff9; color: #99A5BF;
} }
.detail-item-num { .detail-item-num {
font-family: DIN-Medium; font-family: DIN-Medium;
font-size: 34px; font-size: 17.29px;
color: #ffffff; color: #1ED1FF;
} }
} }
} }
@ -1439,10 +1561,9 @@ export default {
.section-monitor-bottom { .section-monitor-bottom {
width: 100%; width: 100%;
height: 229px; height: 255px;
display: flex; display: flex;
margin-top: -33px; justify-content: space-between;
justify-content: space-around;
.monitor-box { .monitor-box {
width: 720px; width: 720px;
@ -1486,7 +1607,7 @@ export default {
span { span {
display: inline-block; display: inline-block;
font-family: DIN-Medium; font-family: DIN-Medium-Medium;
font-size: 28px; font-size: 28px;
letter-spacing: 0px; letter-spacing: 0px;
color: #ffffff; color: #ffffff;

@ -62,6 +62,9 @@ export default {
-khtml-user-select: none; /*早期浏览器*/ -khtml-user-select: none; /*早期浏览器*/
user-select: none; user-select: none;
position: relative; position: relative;
background: url("~@/assets/sentimeent/背景底图.png") no-repeat;;
background-size: 100% 100%;
} }
.left-container { .left-container {
position: absolute; position: absolute;
@ -70,7 +73,7 @@ export default {
z-index: 3; z-index: 3;
width: 1603px; width: 1603px;
height: $ScreenHeight; height: $ScreenHeight;
background: url("~@/assets/privateOrder/common/bg-left.png") no-repeat; // background: url("~@/assets/privateOrder/common/bg-left.png") no-repeat;
} }
.right-container { .right-container {
@ -80,8 +83,8 @@ export default {
z-index: 3; z-index: 3;
width: 1603px; width: 1603px;
height: $ScreenHeight; height: $ScreenHeight;
background: url("~@/assets/privateOrder/common/bg-right.png") right center // background: url("~@/assets/privateOrder/common/bg-right.png") right center
no-repeat; // no-repeat;
/* &:before { /* &:before {
background-color: rgba(197, 197, 197, 0.062); background-color: rgba(197, 197, 197, 0.062);
width: 2560px; width: 2560px;

Loading…
Cancel
Save