项洋 1 day ago
commit ca3682770f

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

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

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

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

Loading…
Cancel
Save