网络安全

main
严飞永 3 weeks ago
parent da1d55454f
commit 06098cd2b4

@ -79,6 +79,8 @@ export default {
type: "pie",
hoverAnimation: true,
radius: ["40%", "50%"],
// center: ["50%", "40%"], // ["50%", "50%"] y
avoidLabelOverlap: false,
labelLine: {
show: false,
@ -90,6 +92,7 @@ export default {
formatter: "{b}{c} ",
borderWidth: 1,
borderRadius: 4,
fontSize:26,
rich: {
a: {
color: "#6E7079",
@ -104,7 +107,7 @@ export default {
},
b: {
color: "#4C5058",
fontSize: 14,
fontSize: 28,
fontWeight: "bold",
lineHeight: 33,
},
@ -142,7 +145,7 @@ export default {
},
b: {
color: "#4C5058",
fontSize: 14,
fontSize: 28,
fontWeight: "bold",
lineHeight: 33,
},
@ -169,8 +172,8 @@ export default {
children: [
{
type: "text",
left: 30,
top: 0,
left: 60,
top: 30,
style: {
text: "9",
fontFamily: "DIN, DIN",
@ -185,11 +188,11 @@ export default {
},
{
type: "text",
left: 10,
top: 50,
left: 35,
top: 90,
style: {
text: "总模块",
fontSize: 18,
fontSize: 26,
fill: "#99A5BF",
lineHeight: 22,
textAlign: "center",
@ -202,10 +205,10 @@ export default {
type: "image",
z: 100,
style: {
width: 90,
height: 90,
x: -5,
y: -5,
width: 190,
height: 190,
x: -28,
y: -23,
image: require("@/assets/sentimeent/统计分析椭圆.png")
},
},
@ -213,10 +216,10 @@ export default {
type: "image",
z: 99,
style: {
width: 130,
height: 130,
x: -25,
y: -25,
width: 180,
height: 180,
x: -20,
y: -18,
image: require("@/assets/sentimeent/外椭圆.png")
},
}
@ -272,7 +275,7 @@ export default {
justify-content: flex-start;
margin-top: -60px;
gap: 20px;
width: 70%;
width: 85%;
.label-item {
position: relative;
@ -295,8 +298,8 @@ export default {
.name {
font-family: AlibabaPuHuiTiR;
font-size: 16px;
color: #b4f9ff;
font-size: 26px;
color: #B9CCDF;
line-height: 22px;
text-align: center;
font-style: normal;

@ -19,16 +19,13 @@
<!-- <span>园区财政局</span> -->
{{ item.total }}</span>
<div class="section-ranking-content-warp">
<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-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'
}"
>
<div class="section-wrap-num" :style="{
color: index < 3 ? wordcolor[index] : '#4997f7'
}">
<span>{{ item.num | commaFilter }}</span>
</div>
</div>
@ -50,7 +47,17 @@
</ul>
</div>
<div id="section-pie" />
<!-- 饼图下方标签 -->
<div class="labels">
<div v-for="(item, index) in pieImg" :key="index" class="label-item">
<div class="label-content">
<div class="percent" :style="{ backgroundColor: getLabelColor(index) }"></div>
<div class="name">{{ item.name }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
@ -95,39 +102,39 @@ export default {
'linear-gradient(to right, #041223, #EBB811)',
'linear-gradient(to right, #041528, #EBBC11)',
],
wordcolor:[
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"),
},
],
{
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: [],
@ -160,6 +167,10 @@ export default {
this.getSaftyscreenUnattack();
},
methods: {
getLabelColor(index) {
const colors = ["#1C6CE5", "#1CA6E5", "#1AF8CC", "#B9D5E0", "#FF9C71", "#EFC91C", "#9AA0E8", "#EE77D6", "#51E77E"];
return colors[index % colors.length];
},
/**
* TOP5
*/
@ -190,88 +201,222 @@ export default {
});
},
//
// initDistribution() {
// const chartDom = document.getElementById("section-pie");
// const myChart = this.$echarts.init(chartDom);
// //
// const centerContent = {
// type: "group",
// left: "center",
// top: "center",
// z: 100,
// children: [
// {
// type: "text",
// left: 30,
// top: 0,
// style: {
// text: "9",
// fontFamily: "DIN, DIN",
// fontWeight: "bold",
// fontSize: 40,
// fill: "#fff",
// lineHeight: 22,
// textAlign: "justifyLeft",
// fontStyle: "normal",
// textTransform: "none"
// }
// },
// {
// type: "text",
// left: 10,
// top: 50,
// style: {
// text: "",
// fontSize: 18,
// fill: "#99A5BF",
// lineHeight: 22,
// textAlign: "center",
// fontStyle: "normal",
// textTransform: "none"
// }
// },
// {
// type: "image",
// z: 100,
// style: {
// width: 90,
// height: 90,
// x: -5,
// y: -5,
// image: require("@/assets/sentimeent/.png")
// },
// },
// {
// type: "image",
// z: 99,
// style: {
// width: 130,
// height: 130,
// x: -25,
// y: -25,
// image: require("@/assets/sentimeent/.png")
// },
// }
// ]
// };
// const option = {
// graphic: [centerContent],
// color: ["#1C6CE5", "#1CA6E5", "#1AF8CC", "#B9D5E0", "#FF9C71", "#EFC91C", "#9AA0E8", "#EE77D6", "#51E77E"],
// series: [{
// name: "",
// type: "pie",
// hoverAnimation: true,
// radius: ["40%", "50%"], //
// avoidLabelOverlap: false,
// labelLine: {
// show: false,
// },
// label: {
// show: false,
// position: "outside",
// },
// data: this.pieImg,
// emphasis: {
// labelLine: {
// show: true,
// length: 30,
// },
// label: {
// show: true,
// position: "outside",
// formatter: "{c}%",
// borderWidth: 1,
// borderRadius: 4,
// rich: {
// a: { color: "#6E7079", lineHeight: 22, align: "center" },
// hr: { borderColor: "#8C8D8E", width: "100%", borderWidth: 1, height: 0 },
// b: { color: "#4C5058", fontSize: 14, fontWeight: "bold", lineHeight: 33 },
// per: { color: "#fff", backgroundColor: "#4C5058", padding: [3, 4], borderRadius: 4 },
// },
// },
// },
// }],
// };
// myChart.setOption(option);
// echartsJump(myChart, option); //
// },
initDistribution() {
const chartDom = document.getElementById("section-pie");
const myChart = this.$echarts.init(chartDom);
//
const centerContent = {
type: "group",
left: "center",
top: "center",
z: 100,
children: [
// {
// type: "text",
// left: 30,
// top: 0,
// style: {
// text: "9",
// fontFamily: "DIN, DIN",
// fontWeight: "bold",
// fontSize: 40,
// fill: "#fff",
// lineHeight: 22,
// textAlign: "justifyLeft",
// fontStyle: "normal",
// textTransform: "none"
// }
// },
// {
// type: "text",
// left: 10,
// top: 50,
// style: {
// text: "",
// fontSize: 18,
// fill: "#99A5BF",
// lineHeight: 22,
// textAlign: "center",
// fontStyle: "normal",
// textTransform: "none"
// }
// },
// {
// type: "image",
// z: 100,
// style: {
// width: 90,
// height: 90,
// x: -5,
// y: -5,
// image: require("@/assets/sentimeent/.png")
// },
// },
// {
// type: "image",
// z: 99,
// style: {
// width: 130,
// height: 130,
// x: -25,
// y: -25,
// image: require("@/assets/sentimeent/.png")
// },
// }
]
};
const option = {
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
textStyle: {
fontSize: 26,
fontWight: "bold",
graphic: [centerContent],
color: ["#1C6CE5", "#1CA6E5", "#1AF8CC", "#B9D5E0", "#FF9C71", "#EFC91C", "#9AA0E8", "#EE77D6", "#51E77E"],
series: [{
name: "分布情况",
type: "pie",
hoverAnimation: true,
radius: ["40%", "50%"], //
avoidLabelOverlap: false,
labelLine: {
show: false,
},
},
color: [
"#6bd3ff",
"#2590fd",
"#f6ff00",
"#ffd616",
"#ff9314",
"#ffffff",
],
legend: {
orient: "vertical",
icon: "circle",
right: "-10%",
top: "10%",
itemGap: 17,
padding: 8,
formatter: (name) => {
// console.log(name);
let target;
this.pieImg.forEach((v) => {
if (v.name === name) {
target = v.value;
}
});
const arr = [`{a|${Number(target).toFixed(1)} % } {b|${name}} `];
return arr;
label: {
show: false,
position: "outside",
},
textStyle: {
rich: {
a: {
fontSize: 35,
letterSpacing: 2,
color: "rgba(255, 255, 255)",
},
b: {
width: 270,
fontSize: 30,
color: "rgba(183,223,255)",
},
data: this.pieImg,
emphasis: {
labelLine: {
show: true,
length: 30,
},
fontSize: 30,
color: "rgba(255, 255, 255, .5)",
},
},
series: [
{
name: "分布情况",
type: "pie",
radius: ["55%", "80%"],
center: ["21.5%", "48.3%"],
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
emphasis: {
label: {
show: false,
fontSize: "28",
fontWeight: "bold",
show: true,
position: "outside",
formatter: "{c}%",
borderWidth: 1,
borderRadius: 4,
fontSize: 29,
rich: {
a: { color: "#6E7079", lineHeight: 29, align: "center" },
hr: { borderColor: "#8C8D8E", width: "100%", borderWidth: 1, height: 0 },
b: { color: "#4C5058", fontSize: 29, fontWeight: "bold", lineHeight: 33 },
per: { color: "#fff", backgroundColor: "#4C5058", padding: [3, 4], borderRadius: 4 },
},
},
labelLine: {
show: false,
},
data: this.pieImg,
},
],
}],
};
myChart.setOption(option);
echartsJump(myChart, option);
echartsJump(myChart, option); //
},
},
};
@ -279,7 +424,7 @@ export default {
<style lang='scss' scoped>
//
.section-ranking {
height: 442px;
height: 100%;
overflow: hidden;
overflow-y: auto;
width: 100%;
@ -287,20 +432,20 @@ export default {
flex-direction: column;
.section-ranking-item {
margin-top: 20px;
margin-top: 42px;
display: flex;
position: relative;
padding-bottom: 20px;
padding-bottom: 27px;
border-bottom: 1px solid #32466B;
.section-ranking-item-index {
position: absolute;
top: 30%;
transform: translateY(-50%);
left: 18px;
left: 16px;
font-family: DIN;
font-weight: bold;
font-size: 19.9px;
font-size: 26px;
}
}
@ -313,13 +458,13 @@ export default {
.section-ranking-content-total {
font-family: DIN-Medium;
// font-family: AlibabaPuHuiTiR;
font-size: 22px;
font-size: 28px;
color: #ffffff;
margin-bottom: 10px;
}
.section-ranking-content-warp {
width: 682px;
width: 779px;
height: 12px;
background-color: rgba($color: #6ab8ff, $alpha: 0.1);
padding: 1px;
@ -342,9 +487,9 @@ export default {
right: 0px;
bottom: 25px;
span{
span {
font-family: DIN-Medium;
font-size: 30px;
font-size: 36px;
font-weight: bold;
}
}
@ -368,7 +513,7 @@ export default {
width: 100%;
list-style: none;
padding: 0;
margin-top: -20px;
margin-top: -171px;
// margin: 0;
justify-content: space-evenly;
@ -394,9 +539,50 @@ export default {
#section-pie {
margin: 35px auto;
width: 750px;
height: 334px;
background: url("~@/assets/privateOrder/general/first/circle-bg.png") no-repeat;
width: 800px;
height: 534px;
// background: url("~@/assets/privateOrder/general/first/circle-bg.png") no-repeat;
}
}
.labels {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-top: -40px; //
z-index: 1;
.label-item {
width: auto;
height: 18px;
display: flex;
justify-content: center;
align-items: center;
margin: 5px 15px;
.label-content {
display: flex;
align-items: center;
justify-content: center;
.percent {
width: 10px;
height: 10px;
margin-right: 5px;
border-radius: 50%;
}
.name {
font-family: AlibabaPuHuiTiR;
font-size: 32px;
color: #b4f9ff;
line-height: 22px;
text-align: center;
font-style: normal;
text-transform: none;
}
}
}
}
</style>

@ -16,20 +16,21 @@
<div v-for="(item, idx) in dataSource.top" :key="idx" class="section-top-item">
<img :src="item.url" alt="" />
<div class="top-item-content">
<div>{{ item.title }}</div>
<div> {{item.title}} </div>
<div>
<span class="content-currentNum">{{ item.currentNum }}</span>
<span class="content-currentNum"> {{item.currentNum}} </span>
<span style="
display: inline-block;
color: #11D1E9;
font-size: 22px;
font-size: 34px;
margin-left: 3px;
font-family: DIN-Medium;
font-style: italic;
font-weight: bold;
transform: translate(2px, -3px);
">
/</span>
<span class="content-total">{{ item.total }}</span>
<span class="content-total"> {{item.total }}</span>
</div>
</div>
</div>
@ -37,9 +38,9 @@
<div class="section-bottom">
<div v-for="(item, idx) in dataSource.bottom" :key="idx" class="section-bottom-item"
@click="showAttack(item.title, item.type)">
<span class="bottom-title">{{ item.title }}</span>
<span class="bottom-title"> {{item.title}} </span>
<img :src="item.url" alt="" />
<span class="bottom-num">{{ item.num | commaFilter }}</span>
<span class="bottom-num"> {{item.num | commaFilter}} </span>
</div>
</div>
</div>
@ -51,10 +52,10 @@
<div v-for="(item, idx) in superviseObject" :key="idx" :class="['section-object-item', item.className]"
@click="showAttack(item.title, item.type)">
<div class="item-content">
<span class="item-content-num">{{
item.num | commaFilter
}}</span>
<span class="item-content-title">{{ item.title }}</span>
<span class="item-content-num">
{{item.num | commaFilter}}
</span>
<span class="item-content-title"> {{item.title}} </span>
</div>
</div>
@ -72,22 +73,22 @@
</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>
<span class="info-des-title"> {{securityMonitor.title}} </span>
<span class="info-des-total"> {{monitorForm.netAttack}} </span>
</div>
<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 == "入侵攻击"
<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>
: 0}}
</span>
</div>
</div>
</div>
@ -102,11 +103,11 @@
<div>
<vue-seamless-scroll :data="tableData" :class-option="classOption" class="monitorScroll">
<div v-for="(item, idx) in tableData" :key="idx" class="monitor-list" @click="getAttackSource(item)">
<span :data-id="item.id">{{
<span :data-id="item.id">
$moment(item.startTime).format("YYYY-MM-DD")
}}</span>
<span :data-id="item.id">{{ item.attackyIp }}</span>
<span :data-id="item.id">{{ item.attackType }}</span>
</span>
<span :data-id="item.id"> item.attackyIp </span>
<span :data-id="item.id"> item.attackType </span>
</div>
</vue-seamless-scroll>
</div>
@ -121,14 +122,14 @@
<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: 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>
<span :data-id="item.id"> {{item.attackyIp}} </span>
</div>
<div class="cell violation-text">
<span :data-id="item.id">{{ item.attackType }}</span>
<span :data-id="item.id"> {{item.attackType}} </span>
</div>
</div>
</div>
@ -143,9 +144,9 @@
<div slot="operate" class="btn-wrap">
<div v-for="(item, idx) in attackList.options" :key="idx" class="btn"
:class="{ active: currentIndex === idx }" @click="currentIndex = idx">
{{ item }}
{{item }}
<div :class="[idx === 0 ? 'topIP' : 'distributed']" />
</div>
</div>
</div>
</module-title>
<!-- 受攻击情况 -->
@ -162,7 +163,7 @@
<div class="dialog_little_title">攻击发起时间</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.startTime }}</div>
<div class="dialog_little_ctn"> {{tableDataPop.startTime}} </div>
</el-col>
</el-row>
<el-row>
@ -170,7 +171,7 @@
<div class="dialog_little_title">攻击源IP</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.attackyIp }}</div>
<div class="dialog_little_ctn"> {{tableDataPop.attackyIp}} </div>
</el-col>
</el-row>
<el-row>
@ -179,7 +180,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ tableDataPop.attackType }}
{{tableDataPop.attackType }}
</div>
</el-col>
</el-row>
@ -189,7 +190,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ tableDataPop.attackIpArea }}
tableDataPop.attackIpArea
</div>
</el-col>
</el-row>
@ -198,7 +199,7 @@
<div class="dialog_little_title">攻击源IP省份</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.type }}</div>
<div class="dialog_little_ctn"> {{tableDataPop.type}} </div>
</el-col>
</el-row>
<el-row>
@ -207,7 +208,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ tableDataPop.sattackIp }}
{{tableDataPop.sattackIp}}
</div>
</el-col>
</el-row>
@ -216,7 +217,7 @@
<div class="dialog_little_title">受攻击IP国家</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.sattackIpArea }}</div>
<div class="dialog_little_ctn"> {{tableDataPop.sattackIpArea}} </div>
</el-col>
</el-row>
<el-row>
@ -225,14 +226,14 @@
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">
{{ tableDataPop.netLevel }}
{{tableDataPop.netLevel }}
</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_title">攻击状态</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.affUnit }}</div>
<div class="dialog_little_ctn"> {{tableDataPop.affUnit}} </div>
</el-col>
</el-row>
<el-row>
@ -241,14 +242,14 @@
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">
{{ tableDataPop.affUnit }}
tableDataPop.affUnit
</div>
</el-col> -->
<!-- <el-col :span="6">
<div class="dialog_little_title">联系人</div>
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.linkMan }}</div>
<div class="dialog_little_ctn"> tableDataPop.linkMan </div>
</el-col> -->
</el-row>
</template>
@ -763,8 +764,8 @@ export default {
width: 100%;
border-radius: 4px;
overflow: hidden;
margin-top: 20px;
height: 290px;
margin-top: 44px;
height: 345px;
.table-header {
display: flex;
@ -777,7 +778,7 @@ export default {
.header-cell {
padding: 12px;
color: #ffffff;
font-size: 18px;
font-size: 24px;
font-weight: normal;
flex: 1;
text-align: center;
@ -792,6 +793,7 @@ export default {
.table-body {
width: 100%;
font-family: AlibabaPuHuiTiM;
.table-row {
display: flex;
background-color: black;
@ -810,9 +812,9 @@ export default {
.cell {
padding: 12px;
padding: 20px;
color: #B9CCDF;
font-size: 16px;
font-size: 26px;
flex: 1;
text-align: center;
}
@ -1016,9 +1018,9 @@ export default {
height: 100%;
.module-container {
width: 1512px;
width: 100%;
height: 100%;
margin: 204px 0 0 100px;
margin: 204px 0 0 0px;
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
@ -1027,23 +1029,26 @@ export default {
.section-securityMonitor {
width: 50%;
height: 50%;
padding: 0px 50px 0px 0px;
}
.section-dataSource {
width: 50%;
height: 50%;
padding: 50px 50px 50px 0px;
}
.section-attackRanking {
width: 50%;
height: 50%;
padding: 0px 50px 0px 0px;
}
.section-superviseObject {
width: 50%;
height: 50%;
// margin-top: -7px;
padding: 50px 50px 50px 0px;
}
}
@ -1171,10 +1176,10 @@ export default {
cursor: pointer;
.btn {
height: 43px;
height: 100%;
width: auto;
font-family: AlibabaPuHuiTiR;
font-size: 18px;
font-size: 25px;
display: flex;
justify-content: center;
align-items: center;
@ -1182,6 +1187,7 @@ export default {
color: #b7dfff;
// border: 1px solid #ccc;
padding: 10px;
&.active {
color: #fff;
display: flex;
@ -1223,9 +1229,9 @@ export default {
.section-top {
width: 100%;
height: 122px;
height: 224px;
display: flex;
margin-top: 24px;
margin-top: 38px;
// margin-left: 12px;
// margin-bottom: 20px;
justify-content: flex-end;
@ -1233,17 +1239,17 @@ export default {
.section-top-item {
width: 382px;
height: 183%;
height: 224px;
display: flex;
justify-content: center;
gap: 35.44px;
gap: 25.44px;
background: url("~@/assets/privateOrder/general/数据来源bg.png");
background-size: 100% 100%;
align-items: flex-start;
img {
width: 75px;
height: 104px;
width: 116px;
height: 170px;
}
.top-item-content {
@ -1256,7 +1262,7 @@ export default {
div {
text-align: left;
font-family: AlibabaPuHuiTiR;
font-size: 18.62px;
font-size: 28.62px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 1px;
@ -1266,7 +1272,7 @@ export default {
.content-total {
text-align: left;
font-family: DIN-Medium;
font-size: 28px;
font-size: 40px;
font-weight: bold;
font-stretch: normal;
letter-spacing: 0px;
@ -1289,15 +1295,15 @@ export default {
.section-bottom {
width: 100%;
height: 192px;
height: 293px;
display: flex;
margin-top: 34px;
margin-top: 42px;
justify-content: flex-end;
gap: 42px;
.section-bottom-item {
width: 240px;
height: 293px;
height: 303px;
position: relative;
display: flex;
flex-direction: column;
@ -1307,31 +1313,31 @@ export default {
background-size: 100% 100%;
img {
width: 65px;
height: 90px;
width: 116px;
height: 160px;
}
.bottom-title {
// font-family: Adobe Heiti Std;
font-size: 18.2px;
font-size: 28px;
color: #fff;
margin-top: 10px;
}
.bottom-num {
font-size: 26px;
font-size: 40px;
width: 100%;
height: 40px;
height: 60px;
color: #11D1E9;
margin-top: 14px;
display: flex;
justify-content: center;
padding-top: 3px;
align-items: center;
font-weight: bold;
font-family: DIN-Medium;
font-style: italic;
background: url("~@/assets/privateOrder/general/数据来源BG3.png");
background-size: 100% 100%;
margin-top: 20px;
// font-family: ConthraxSb-Regular;
}
}
@ -1340,27 +1346,30 @@ export default {
//
.section-object {
height: 364px;
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
// justify-content: center;
align-items: center;
.section-bg {
position: relative;
top: 33px;
left: 34px;
// top: 33px;
// left: 34px;
width: 90%;
height: 370px;
background: url("~@/assets/privateOrder/general/circle.png") no-repeat;
background-size: 100% 100%;
height: 70%;
margin-top: 7%;
background: url("~@/assets/privateOrder/general/circle.png") bottom;
background-repeat: no-repeat;
background-size: 100% 79%;
.section-object-item {
position: absolute;
width: 250px;
height: 100px;
width: 138px;
height: 150px;
display: flex;
&:hover {
cursor: pointer;
transform: scale(1.1);
@ -1368,27 +1377,28 @@ export default {
}
.item-content {
width: 100%;
height: 100%;
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;
margin-top: 42px;
}
.item-content-title {
font-family: AlibabaPuHuiTiR;
font-size: 18.2px;
color: #E4F0FF;
font-size: 28px;
color: #E4F0FF;padding-bottom: 30px;
}
.item-content-num {
font-family: DIN-Medium;
font-weight: bold;
font-size: 32px;
font-size: 40px;
margin-bottom: 5px;
color: #11D1E9;
font-style: italic;
@ -1397,10 +1407,10 @@ export default {
.section-center {
position: absolute;
top: -13px;
left: 190px;
width: 303px;
height: 216.35px;
top: 23px;
left: 208px;
width: 343px;
height: 279px;
background: url("~@/assets/privateOrder/general/盾牌.png");
background-repeat: no-repeat;
background-size: 100% 100%;
@ -1466,7 +1476,7 @@ export default {
//
.section-monitor {
height: 424px;
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
@ -1474,12 +1484,12 @@ export default {
.section-monitor-top {
width: 100%;
height: 120px;
height: 221px;
display: flex;
margin-top: 5px;
padding: 39px 0 0 0 ;
justify-content: space-around;
background: url("~@/assets/privateOrder/general/安全检测底图.png") bottom no-repeat;
background-size: 100% 50%;
background-size: 100% 30%;
.monitor-line {
display: inline-block;
@ -1494,15 +1504,18 @@ export default {
display: flex;
width: 254px;
justify-content: space-around;
align-items: flex-end;
}
img {
align-self: center;
width: 80%;
height: 100%;
}
.monitor-info img {
align-self: flex-end;
width: 80%;
height: 70%;
margin-bottom: 5%;
}
.monitortop {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
@ -1510,7 +1523,7 @@ export default {
.monitor-info-des {
width: 88%;
height: 33px;
height: 60px;
display: flex;
justify-content: space-around;
align-items: center;
@ -1519,21 +1532,23 @@ export default {
.info-des-title {
font-family: AlibabaPuHuiTiM;
font-size: 18.62px;
font-size: 28px;
color: #ffffff;
}
.info-des-total {
font-family: DIN-Medium;
font-weight: bold;
font-size: 24px;
font-size: 36px;
color: #99F17A;
}
}
.monitor-detail {
width: 394px;
width: 600px;
display: flex;
margin-top: 10px;
margin-bottom: 1%;
.monitor-detail-item {
display: flex;
@ -1545,13 +1560,13 @@ export default {
.detail-item-title {
// font-family: SourceHanSansCN-Regular;
font-size: 15.96px;
font-size: 24px;
color: #99A5BF;
}
.detail-item-num {
font-family: DIN-Medium;
font-size: 17.29px;
font-size: 26px;
color: #1ED1FF;
}
}
@ -1560,7 +1575,7 @@ export default {
.section-monitor-bottom {
width: 100%;
height: 255px;
height: auto;
display: flex;
justify-content: space-between;

@ -1,14 +1,14 @@
<template>
<div class="container">
<div class="module-container">
<div class="section">
<div class="section1">
<module-title>安全隐患</module-title>
<div class="safetyBox">
<div v-for="(item, idx) in safetyList" :key="idx">
<div class="safetyBox_item">
<!-- <div class="pone">{{ item.yhCount | commaFilter }}</div>
<div class="ptwo">{{ item.yhName }}</div> -->
<div class="pone">{{ item.value }} <span></span> </div>
<div class="pone"><div style="margin-top: -20px;">{{ item.value }} <span></span></div> </div>
<div class="ptwo">{{ item.title }}</div>
</div>
</div>
@ -50,7 +50,7 @@
</div>
</div>
</div>
<div class="firewall-table" style="height: 230px;">
<div class="firewall-table" style="height: 320px;">
<div class="table-header">
<div class="header-cell" style="width: 220px">时间</div>
<div class="header-cell" style="width: 120px">通报数量</div>
@ -107,7 +107,7 @@
@mouseover="mouseOver('announce')"
@mouseleave="mouseLeave('announce')"
-->
<div class="section section-plateStatistics">
<div class="section2 section-plateStatistics">
<module-title>
通报统计
<div slot="operate" class="btn-wrap">
@ -128,7 +128,7 @@
@mouseover="mouseOver('danger')"
@mouseleave="mouseLeave('danger')"
-->
<div class="section section-newestRisk">
<div class="section2 section-newestRisk">
<module-title>
隐患来源
@ -211,7 +211,7 @@
</div>
</vue-seamless-scroll>
</div> -->
<div class="firewall-table" style="height: 100%;">
<div class="firewall-table" style="height: 100%;margin-top: 20px;">
<div class="table-header">
<div class="header-cell" style="width: 220px">单位名称</div>
<div class="header-cell" style="width: 120px">隐患名称</div>
@ -265,7 +265,7 @@
</div>
</div>
</div> -->
<div v-if="dangerCurrentIndex === 1" class="firewall-table"style="height: 85%;">
<div v-if="dangerCurrentIndex === 1" class="firewall-table" style="height: 85%;margin-top: 20px;">
<div class="table-header">
<div class="header-cell" style="width: 220px">单位名称</div>
<div class="header-cell" style="width: 120px">目标IP/域名</div>
@ -277,13 +277,14 @@
<div v-for="(item, index) in informList" :key="index" class="table-row"
:class="{ 'odd-row': index % 2 === 0 }" @click="rowDetails($event)">
<div class="cell" style="width: 220px">
<span :data-url="item.fileUrl">{{ item.unitName }}</span>
<!-- <span :data-url="item.fileUrl">{{ item.unitName }}</span> -->
<span :data-url="item.fileUrl">园区单位</span>
</div>
<div class="cell" style="width: 120px">
<span :data-url="item.fileUrl">{{ item.ipAddress }}</span>
</div>
<div class="cell yellownumb" style="width: 170px">
<span :data-url="item.fileUrl" >{{ item.czState }}</span>
<span :data-url="item.fileUrl">{{ item.czState }}</span>
</div>
</div>
</div>
@ -858,8 +859,8 @@ export default {
width: 100%;
border-radius: 4px;
overflow: hidden;
margin-top: 20px;
height: 290px;
margin-top: 50px;
height: 300px;
.table-header {
display: flex;
@ -872,7 +873,7 @@ export default {
.header-cell {
padding: 12px;
color: #ffffff;
font-size: 18px;
font-size: 28px;
font-weight: normal;
flex: 1;
text-align: center;
@ -906,9 +907,9 @@ export default {
.cell {
padding: 12px;
padding: 17px;
color: #B9CCDF;
font-size: 16px;
font-size: 28px;
flex: 1;
text-align: center;
font-family: AlibabaPuHuiTiR;
@ -927,7 +928,8 @@ export default {
color: #99F17A;
font-family: DIN-Regular;
}
.yellownumb{
.yellownumb {
color: #fff36f;
}
}
@ -939,23 +941,37 @@ export default {
height: 100%;
.module-container {
width: 1540px;
height:100%;
width: 100%;
height: 100%;
float: right;
margin: 204px 100px 0 0;
margin: 204px 0px 0 0;
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
// align-content: space-between;
.section {
.section1 {
height: 50%;
width: 50%;
padding: 50px 50px 50px 0px;
}
.section2 {
height: 50%;
width: 50%;
padding: 0px 50px 50px 0px;
}
.section {
width: 50%;
height: 50%;
padding: 50px 0px 50px 0px;
}
.section-plateStatistics {
height: 50%;
width: 50%;
:hover {
cursor: pointer;
}
@ -1139,10 +1155,10 @@ export default {
cursor: pointer;
.btn {
height: 43px;
height: 100%;
width: auto;
font-family: AlibabaPuHuiTiR;
font-size: 18px;
font-size: 25px;
display: flex;
justify-content: center;
align-items: center;
@ -1188,42 +1204,47 @@ export default {
display: flex;
flex-flow: row wrap;
justify-content: space-between;
margin-top: 10px;
padding: 50px 0 0 0;
height: 100%;
.safetyBox_item {
width: 168px;
margin: 5px 39px 5px 39px;
width: 268px;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
// margin: 5px 39px 5px 39px;
}
.pone {
width: 181px;
height: 161px;
width: 100%;
height: 190px;
text-align: center;
// line-height: 144px;
font-family: DIN;
font-weight: bold;
font-style: italic;
font-size: 32px;
font-size: 40px;
font-stretch: normal;
color: #11D1E9;
background: url("~@/assets/privateOrder/general/安全隐患底座.png") bottom;
background-size: 100% 90%;
span {
font-size: 20px;
font-size: 28px;
font-style: normal;
}
}
.ptwo {
font-family: AlibabaPuHuiTiR;
font-size: 19.5px;
font-size: 30px;
font-weight: normal;
font-stretch: normal;
text-wrap: nowrap;
text-align: center;
color: #B9CCDF;
width: 190px;
width: 100%;
}
}
@ -1231,20 +1252,22 @@ export default {
.wrapCtn {
display: flex;
flex-direction: column;
height: 100%;
.leftNotification {
height: 106px;
height: 136px;
// height: 300px;
width: 100%;
margin-top: 30px;
margin-top: 52px;
color: #ffffff;
background: url("~@/assets/privateOrder/general/通报背景图.png") no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: space-between;
img {
width: 128px;
width: 160px;
height: 100%;
}
@ -1293,7 +1316,7 @@ export default {
// }
// }
.leftNotification-bottom {
width: 207px;
width: auto;
height: auto;
margin-left: 15px;
display: flex;
@ -1306,7 +1329,7 @@ export default {
div:nth-child(1) {
font-family: AlibabaPuHuiTiR;
// font-size: 33px;
font-size: 22px;
font-size: 26px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 1px;
@ -1318,7 +1341,7 @@ export default {
margin-top: 10px;
font-family: AlibabaPuHuiTiR;
// font-size: 30px;
font-size: 17.29px;
font-size: 24px;
font-weight: normal;
font-stretch: normal;
letter-spacing: 2px;
@ -1343,6 +1366,7 @@ export default {
div:nth-child(1) {
font-family: AlibabaPuHuiTiR;
font-size: 26px;
color: #99A5BF;
}
@ -1371,6 +1395,7 @@ export default {
div:nth-child(1) {
font-family: AlibabaPuHuiTiR;
color: #99A5BF;
font-size: 26px;
}
.numerone {
@ -1611,6 +1636,7 @@ export default {
margin-bottom: 15px;
background: url("~@/assets/privateOrder/general/first/通报处置-tr-bg.png");
.item_name {
font-family: SourceHanSansCN-Medium;
font-size: 28px;

@ -66,24 +66,28 @@ export default {
background-size: 100% 100%;
}
.left-container {
z-index: 3;
position: absolute;
left: 0;
top: 0;
z-index: 3;
width: 1603px;
width: 31%;
height: $ScreenHeight;
// background: url("~@/assets/privateOrder/common/bg-left.png") no-repeat;
margin-left: 100px;
pointer-events: auto;
padding-bottom: 204px;
}
.right-container {
z-index: 3;
position: absolute;
right: 0;
top: 0;
z-index: 3;
width: 1603px;
width: 31%;
height: $ScreenHeight;
margin-right: 100px;
pointer-events: auto;
padding-bottom: 204px;
}
// background: url("~@/assets/privateOrder/common/bg-right.png") right center
// no-repeat;
/* &:before {
@ -97,7 +101,6 @@ export default {
z-index: 1000;
pointer-events: none;
} */
}
.center-container {
z-index: 3;

Loading…
Cancel
Save