安全监测事件修复

lijinlong
许宏杰 1 year ago
parent 4431427b0c
commit 2d428ffb26

@ -29,7 +29,8 @@
transform: translate(5px, -7px); transform: translate(5px, -7px);
" "
> >
/</span> /</span
>
<span class="content-total">{{ item.total }}</span> <span class="content-total">{{ item.total }}</span>
</div> </div>
</div> </div>
@ -40,11 +41,11 @@
v-for="(item, idx) in dataSource.bottom" v-for="(item, idx) in dataSource.bottom"
:key="idx" :key="idx"
class="section-bottom-item" class="section-bottom-item"
@click="showAttack(item.title,item.num)" @click="showAttack(item.title, item.num)"
> >
<img :src="item.url" alt="" /> <img :src="item.url" alt="" />
<span class="bottom-title">{{ item.title }}</span> <span class="bottom-title">{{ item.title }}</span>
<span class="bottom-num">{{ item.num |commaFilter }}</span> <span class="bottom-num">{{ item.num | commaFilter }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -57,12 +58,15 @@
v-for="(item, idx) in superviseObject" v-for="(item, idx) in superviseObject"
:key="idx" :key="idx"
:class="['section-object-item', item.className]" :class="['section-object-item', item.className]"
@click="showAttack(item.title,item.num)" @click="showAttack(item.title, item.num)"
> >
<img :src="item.url" alt="" /> <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-title">{{ item.title }}</span
<span class="item-content-num">{{ item.num | commaFilter }}</span> ><br />
<span class="item-content-num">{{
item.num | commaFilter
}}</span>
</div> </div>
</div> </div>
<div class="section-center" /> <div class="section-center" />
@ -84,7 +88,7 @@
<div class="monitor-detail"> <div class="monitor-detail">
<div <div
v-for="(item, index) in securityMonitor.detail" v-for="(item, index) in securityMonitor.detail"
v-show="index<3" v-show="index < 3"
:key="index" :key="index"
class="monitor-detail-item" class="monitor-detail-item"
> >
@ -100,23 +104,25 @@
<span>攻击源/IP</span> <span>攻击源/IP</span>
<span>攻击类型</span> <span>攻击类型</span>
</div> </div>
<vue-seamless-scroll <div @click="getAttackSource($event)">
:data="tableData" <vue-seamless-scroll
:class-option="classOption" :data="tableData"
class="monitorScroll" :class-option="classOption"
> class="monitorScroll"
<div
v-for="(item, idx) in tableData"
:key="idx"
class="monitor-list"
:data-obj="'安全监测'"
@click="getAttackSource(item.id)"
> >
<span>{{ item.attackTime }}</span> <div
<span>{{ item.attackedIp }}</span> v-for="(item, idx) in tableData"
<span>{{ $filterDict('tc_attack_type',item.attackType) }}</span> :key="idx"
</div> class="monitor-list"
</vue-seamless-scroll> >
<span :data-id="item.id">{{ item.attackTime }}</span>
<span :data-id="item.id">{{ item.attackedIp }}</span>
<span :data-id="item.id">{{
$filterDict("tc_attack_type", item.attackType)
}}</span>
</div>
</vue-seamless-scroll>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -178,7 +184,9 @@
<div class="dialog_little_title">攻击类型</div> <div class="dialog_little_title">攻击类型</div>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
<div class="dialog_little_ctn">{{ $filterDict('tc_attack_type',tableDataPop.attackType) }}</div> <div class="dialog_little_ctn">
{{ $filterDict("tc_attack_type", tableDataPop.attackType) }}
</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -222,7 +230,9 @@
<div class="dialog_little_title">网站安全等级</div> <div class="dialog_little_title">网站安全等级</div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="dialog_little_ctn">{{ $filterDict('tc_net_safety_level',tableDataPop.level) }}</div> <div class="dialog_little_ctn">
{{ $filterDict("tc_net_safety_level", tableDataPop.level) }}
</div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="dialog_little_title">联系电话</div> <div class="dialog_little_title">联系电话</div>
@ -252,20 +262,17 @@
<template <template
v-if=" v-if="
dialogType === '硬探针' || dialogType === '硬探针' ||
dialogType === '系统监测' || dialogType === '系统监测' ||
dialogType === '网站监测' || dialogType === '网站监测' ||
dialogType === 'IDC单位' || dialogType === 'IDC单位' ||
dialogType === '等保单位' || dialogType === '等保单位' ||
dialogType === '政府网站' || dialogType === '政府网站' ||
dialogType === '等保系统' || dialogType === '等保系统' ||
dialogType === '监管单位' || dialogType === '监管单位' ||
dialogType === '软探针' dialogType === '软探针'
" "
> >
<MyTable <MyTable :table-list="excelData" :table-key="excelDataHeader" />
:table-list="excelData"
:table-key="excelDataHeader"
/>
<div style="text-align: right; margin-top: 10px"> <div style="text-align: right; margin-top: 10px">
<paginations <paginations
v-show="total > 0" v-show="total > 0"
@ -278,10 +285,9 @@
</template> </template>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<span> <span>
<el-button <el-button class="dialog-btn" @click="dialogStatus = false"
class="dialog-btn" > </el-button
@click="dialogStatus = false" >
> </el-button>
</span> </span>
</span> </span>
</el-dialog> </el-dialog>
@ -289,20 +295,28 @@
</template> </template>
<script> <script>
import { getSource } from '@/api/common' import { getSource } from "@/api/common";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
import ModuleTitle from '../../common/ModuleTitle.vue' import ModuleTitle from "../../common/ModuleTitle.vue";
import attackSituation from './attackSituation.vue' import attackSituation from "./attackSituation.vue";
import ExcelTable from '@/components/ExcelTable' import ExcelTable from "@/components/ExcelTable";
import { listSystem, listUnit, listWeb, listIDCunit, listSource, saftyscreenSupervise, saftyscreenSafety, import {
listDetection, getDetection listSystem,
} from '@/api/zongzhi/st.js' listUnit,
listWeb,
listIDCunit,
listSource,
saftyscreenSupervise,
saftyscreenSafety,
listDetection,
getDetection,
} from "@/api/zongzhi/st.js";
import { import {
yingTanZhen, yingTanZhen,
yingTanZhenKeyValue, yingTanZhenKeyValue,
xitongjiance, xitongjiance,
xitongjianceKeyValue xitongjianceKeyValue,
} from './mock' } from "./mock";
import { import {
IDCKeyValue, IDCKeyValue,
IDC, IDC,
@ -313,24 +327,24 @@ import {
zfdwKeyValue, zfdwKeyValue,
zfdw, zfdw,
rtz, rtz,
rtzKeyValue rtzKeyValue,
} from './jianGuan' } from "./jianGuan";
import { getLatest, getSecurity } from '@/api/common' import { getLatest, getSecurity } from "@/api/common";
export default { export default {
components: { components: {
attackSituation, attackSituation,
ModuleTitle, ModuleTitle,
vueSeamlessScroll, vueSeamlessScroll,
ExcelTable ExcelTable,
}, },
filters: { filters: {
commaFilter(target) { commaFilter(target) {
if (target < 10000) { if (target < 10000) {
return String(target).replace(/(\d)(?=(\d{3})+$)/g, '$1,') return String(target).replace(/(\d)(?=(\d{3})+$)/g, "$1,");
} else { } else {
return (target / 10000).toFixed(2) + '万' return (target / 10000).toFixed(2) + "万";
} }
} },
}, },
data() { data() {
return { return {
@ -339,101 +353,101 @@ export default {
*/ */
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
}, // }, //
total: 0, // total: 0, //
time: null, time: null,
checkTotal: 0, checkTotal: 0,
checkParams: { checkParams: {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
}, },
// //
dialogWidth: 0, dialogWidth: 0,
dialogStatus: false, dialogStatus: false,
dialogType: '', dialogType: "",
safeDialog: false, safeDialog: false,
attackTime: null, attackTime: null,
tableTime: null, tableTime: null,
tableTotal: 0, tableTotal: 0,
currentIndex: 0, currentIndex: 0,
attackList: { attackList: {
options: ['受攻击IPTOP5', '分布情况'] options: ["受攻击IPTOP5", "分布情况"],
}, },
dataSource: { dataSource: {
top: [ top: [
{ {
title: '云端监测(G)', title: "云端监测(G)",
currentNum: 100, currentNum: 100,
total: 150, total: 150,
url: require('@/assets/privateOrder/general/icon-云端监测.png') url: require("@/assets/privateOrder/general/icon-云端监测.png"),
}, },
{ {
title: 'APT(M)', title: "APT(M)",
currentNum: 239, currentNum: 239,
total: 1000, total: 1000,
url: require('@/assets/privateOrder/general/icon-APT.png') url: require("@/assets/privateOrder/general/icon-APT.png"),
} },
], ],
bottom: [ bottom: [
{ {
title: '硬探针', title: "硬探针",
num: 6, num: 6,
url: require('@/assets/privateOrder/general/硬探针.png') url: require("@/assets/privateOrder/general/硬探针.png"),
}, },
{ {
title: '软探针', title: "软探针",
num: 125, num: 125,
url: require('@/assets/privateOrder/general/软探针.png') url: require("@/assets/privateOrder/general/软探针.png"),
}, },
{ {
title: '系统监测', title: "系统监测",
num: 2658, num: 2658,
url: require('@/assets/privateOrder/general/系统监测.png') url: require("@/assets/privateOrder/general/系统监测.png"),
} },
] ],
}, },
superviseObject: [ superviseObject: [
{ {
title: '政府网站', title: "政府网站",
num: 0, num: 0,
className: 'item1', className: "item1",
url: require('@/assets/privateOrder/general/icon-政府网站.png') url: require("@/assets/privateOrder/general/icon-政府网站.png"),
}, },
{ {
title: '监管单位', title: "监管单位",
num: 0, num: 0,
className: 'item2', className: "item2",
url: require('@/assets/privateOrder/general/icon-监管单位.png') url: require("@/assets/privateOrder/general/icon-监管单位.png"),
}, },
{ {
title: '网站监测', title: "网站监测",
num: 0, num: 0,
className: 'item3', className: "item3",
url: require('@/assets/privateOrder/general/icon-网站监测.png') url: require("@/assets/privateOrder/general/icon-网站监测.png"),
}, },
{ {
title: 'IDC单位', title: "IDC单位",
num: 0, num: 0,
className: 'item4', className: "item4",
url: require('@/assets/privateOrder/general/icon-IDC单位.png') url: require("@/assets/privateOrder/general/icon-IDC单位.png"),
}, },
{ {
title: '等保系统', title: "等保系统",
num: 0, num: 0,
className: 'item5', className: "item5",
url: require('@/assets/privateOrder/general/icon-等保系统.png') url: require("@/assets/privateOrder/general/icon-等保系统.png"),
}, },
{ {
title: '等保单位', title: "等保单位",
num: 0, num: 0,
className: 'item6', className: "item6",
url: require('@/assets/privateOrder/general/icon-等保单位.png') url: require("@/assets/privateOrder/general/icon-等保单位.png"),
} },
], ],
securityMonitor: { securityMonitor: {
url: require('@/assets/privateOrder/general/icon-网络攻击.png'), url: require("@/assets/privateOrder/general/icon-网络攻击.png"),
title: '网络攻击(次)', title: "网络攻击(次)",
total: 0, total: 0,
detail: [ detail: [
// { // {
@ -448,7 +462,7 @@ export default {
// title: '', // title: '',
// num: 796.152 // num: 796.152
// } // }
] ],
}, },
tableDataPop: { tableDataPop: {
// id: 1, // id: 1,
@ -492,8 +506,8 @@ export default {
// } // }
], ],
excelData: null, excelData: null,
excelDataHeader: null excelDataHeader: null,
} };
}, },
computed: { computed: {
classOption() { classOption() {
@ -505,29 +519,30 @@ export default {
openWatch: true, // dom openWatch: true, // dom
singleHeight: 0, // (0) direction => 0/1 singleHeight: 0, // (0) direction => 0/1
singleWidth: 0, // (0) direction => 2/3 singleWidth: 0, // (0) direction => 2/3
waitTime: 1000 // (1000ms) waitTime: 1000, // (1000ms)
} };
} },
}, },
created() {}, created() {},
destroyed() { destroyed() {
clearInterval(this.attackTime) // clearInterval(this.attackTime); //
clearInterval(this.tableTime) clearInterval(this.tableTime);
clearInterval(this.time) clearInterval(this.time);
}, },
mounted() { mounted() {
this.changeBtn() // this.changeBtn(); //
this.getSaftyscreenSupervise() this.getSaftyscreenSupervise();
this.getSaftyscreenSafety() this.getSaftyscreenSafety();
this.getListDetection() this.getListDetection();
this.time = setInterval(() => { // this.time = setInterval(() => {
//
if (this.tableData.length >= this.checkTotal) { if (this.tableData.length >= this.checkTotal) {
clearInterval(this.time) clearInterval(this.time);
} else { } else {
this.checkParams.pageNum = this.checkParams.pageNum + 1 this.checkParams.pageNum = this.checkParams.pageNum + 1;
this.getListDetection() this.getListDetection();
} }
}, 6000) }, 6000);
// this.getDataSource() // // this.getDataSource() //
// //
// getLatest().then((res) => { // getLatest().then((res) => {
@ -559,223 +574,231 @@ export default {
AttackClick(id) { AttackClick(id) {
return new Promise((resolve) => { return new Promise((resolve) => {
getLatest().then((res) => { getLatest().then((res) => {
res['T_LATEST_NEWS[]'].forEach((item) => { res["T_LATEST_NEWS[]"].forEach((item) => {
if (item.id === id) { if (item.id === id) {
this.tableDataPop.id = id this.tableDataPop.id = id;
this.tableDataPop.attackTime = item.attack_time this.tableDataPop.attackTime = item.attack_time;
this.tableDataPop.sourceIp = item.source_ip this.tableDataPop.sourceIp = item.source_ip;
this.tableDataPop.attackType = item.attack_type this.tableDataPop.attackType = item.attack_type;
this.tableDataPop.attackIpRegion = item.attack_ip_region this.tableDataPop.attackIpRegion = item.attack_ip_region;
this.tableDataPop.attackedIp = item.attacked_ip this.tableDataPop.attackedIp = item.attacked_ip;
this.tableDataPop.attackedType = item.attacked_type this.tableDataPop.attackedType = item.attacked_type;
this.tableDataPop.webLevel = item.web_level this.tableDataPop.webLevel = item.web_level;
this.tableDataPop.subordinateDept = item.subordinate_dept this.tableDataPop.subordinateDept = item.subordinate_dept;
this.tableDataPop.attackedIpRegion = item.attacked_ip_region this.tableDataPop.attackedIpRegion = item.attacked_ip_region;
item.contact_tel === undefined item.contact_tel === undefined
? (this.tableDataPop.contactTel = '-') ? (this.tableDataPop.contactTel = "-")
: (this.tableDataPop.contactTel = item.contact_tel) : (this.tableDataPop.contactTel = item.contact_tel);
item.contact_name === undefined item.contact_name === undefined
? (this.tableDataPop.contactName = '-') ? (this.tableDataPop.contactName = "-")
: (this.tableDataPop.contactName = item.contact_name) : (this.tableDataPop.contactName = item.contact_name);
resolve() resolve();
} }
}) });
}) });
}) });
}, },
async getAttackSource(id) { async getAttackSource(e) {
this.dialogWidth = '1000px' let id = e.target.dataset.id;
getDetection(id).then(res => { if (!id) return;
this.tableDataPop = res.data this.dialogWidth = "1000px";
this.dialogType = '安全监测' getDetection(id).then((res) => {
this.dialogStatus = true this.tableDataPop = res.data;
}) this.dialogType = "安全监测";
this.dialogStatus = true;
});
// await this.AttackClick(id) // await this.AttackClick(id)
}, },
/** /**
* 安全监管List * 安全监管List
*/ */
getListDetection() { getListDetection() {
listDetection(this.checkParams).then(res => { listDetection(this.checkParams).then((res) => {
this.tableData = [...this.tableData, ...res.rows] this.tableData = [...this.tableData, ...res.rows];
this.checkTotal = res.total this.checkTotal = res.total;
}) });
}, },
/** /**
* 安全监测攻击类型统计 * 安全监测攻击类型统计
*/ */
getSaftyscreenSafety() { getSaftyscreenSafety() {
saftyscreenSafety().then(res => { saftyscreenSafety().then((res) => {
this.securityMonitor.detail = res.data.list.map((item, index) => { this.securityMonitor.detail = res.data.list.map((item, index) => {
this.securityMonitor.total = this.securityMonitor.total + item.count this.securityMonitor.total = this.securityMonitor.total + item.count;
return { return {
title: this.$filterDict('tc_attack_type', item.attackType), title: this.$filterDict("tc_attack_type", item.attackType),
num: item.count num: item.count,
} };
}) });
}) });
}, },
/** /**
* 监管对象各类别统计量 * 监管对象各类别统计量
*/ */
getSaftyscreenSupervise() { getSaftyscreenSupervise() {
saftyscreenSupervise().then(res => { saftyscreenSupervise().then((res) => {
// this.superviseObject[4].num = res.data. // this.superviseObject[4].num = res.data.
res.data.forEach(item => { res.data.forEach((item) => {
this.superviseObject.forEach(it => { this.superviseObject.forEach((it) => {
if (item.name == it.title) { if (item.name == it.title) {
it.num = item.count it.num = item.count;
} }
}) });
}) });
console.log(res, 'aaa') console.log(res, "aaa");
}) });
}, },
/** /**
* 表格参数重置 * 表格参数重置
* */ * */
reset() { reset() {
this.total = 0 this.total = 0;
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
} };
this.excelData = [] this.excelData = [];
this.excelDataHeader = [] this.excelDataHeader = [];
}, },
/** /**
* 等保系统 * 等保系统
*/ */
getDbSteam() { getDbSteam() {
listSystem(this.queryParams).then(res => { listSystem(this.queryParams).then((res) => {
this.excelData = res.rows this.excelData = res.rows;
this.excelDataHeader = dbxtKeyValue this.excelDataHeader = dbxtKeyValue;
this.total = res.total this.total = res.total;
}) });
}, },
/** /**
* 等保单位 * 等保单位
*/ */
getDbUnit() { getDbUnit() {
listUnit(this.queryParams).then(res => { listUnit(this.queryParams).then((res) => {
this.excelData = res.rows this.excelData = res.rows;
this.excelDataHeader = dbdwKeyValue this.excelDataHeader = dbdwKeyValue;
this.total = res.total this.total = res.total;
}) });
}, },
/** /**
* 政府网站 * 政府网站
*/ */
getZfWeb() { getZfWeb() {
listWeb(this.queryParams).then(res => { listWeb(this.queryParams).then((res) => {
this.excelData = res.rows this.excelData = res.rows;
this.excelDataHeader = zfdwKeyValue this.excelDataHeader = zfdwKeyValue;
this.total = res.total this.total = res.total;
}) });
}, },
/** /**
* IDC单位 * IDC单位
*/ */
getIdcUnit() { getIdcUnit() {
listIDCunit(this.queryParams).then(res => { listIDCunit(this.queryParams).then((res) => {
this.excelData = res.rows this.excelData = res.rows;
this.excelDataHeader = IDCKeyValue this.excelDataHeader = IDCKeyValue;
this.total = res.total this.total = res.total;
}) });
}, },
/** /**
* 监管单位 || 网站监测 || 系统监测 * 监管单位 || 网站监测 || 系统监测
*/ */
getJgUnit() { getJgUnit() {
listSource(this.queryParams).then(res => { listSource(this.queryParams).then((res) => {
this.excelData = res.rows this.excelData = res.rows;
this.excelDataHeader = xitongjianceKeyValue this.excelDataHeader = xitongjianceKeyValue;
this.total = res.total this.total = res.total;
}) });
}, },
showAttack(item = '安全监测', total) { showAttack(item = "安全监测", total) {
if (typeof item === 'object') { if (typeof item === "object") {
// //
} else { } else {
this.reset() this.reset();
this.dialogType = item this.dialogType = item;
} }
if (this.dialogType === '等保系统') { if (this.dialogType === "等保系统") {
this.dialogWidth = '4000px' this.dialogWidth = "4000px";
this.getDbSteam() this.getDbSteam();
} }
if (this.dialogType === '等保单位') { if (this.dialogType === "等保单位") {
this.dialogWidth = '4000px' this.dialogWidth = "4000px";
this.getDbUnit() this.getDbUnit();
} }
if (this.dialogType === '政府网站') { if (this.dialogType === "政府网站") {
this.dialogWidth = '1800px' this.dialogWidth = "1800px";
this.getZfWeb() this.getZfWeb();
} }
if (this.dialogType === 'IDC单位') { if (this.dialogType === "IDC单位") {
this.dialogWidth = '1800px' this.dialogWidth = "1800px";
this.getIdcUnit() this.getIdcUnit();
} }
if (this.dialogType === '监管单位' || this.dialogType === '系统监测' || this.dialogType === '网站监测' || this.dialogType === '软探针' || this.dialogType === '硬探针') { if (
this.dialogWidth = '2100px' this.dialogType === "监管单位" ||
if (this.dialogType === '软探针') { this.dialogType === "系统监测" ||
this.queryParams.type = 4 this.dialogType === "网站监测" ||
} else if (this.dialogType === '硬探针') { this.dialogType === "软探针" ||
this.queryParams.type = 3 this.dialogType === "硬探针"
} else if (this.dialogType === '监管单位') { ) {
this.queryParams.type = 5 this.dialogWidth = "2100px";
} else if (this.dialogType === '网站监测') { if (this.dialogType === "软探针") {
this.queryParams.type = 6 this.queryParams.type = 4;
} else if (this.dialogType === "硬探针") {
this.queryParams.type = 3;
} else if (this.dialogType === "监管单位") {
this.queryParams.type = 5;
} else if (this.dialogType === "网站监测") {
this.queryParams.type = 6;
} else { } else {
this.queryParams.type = 7 this.queryParams.type = 7;
} }
this.getJgUnit() this.getJgUnit();
} }
this.$nextTick(() => { this.$nextTick(() => {
this.dialogStatus = true this.dialogStatus = true;
}) });
}, },
// //
getDataSource() { getDataSource() {
getSource(9).then((res) => { getSource(9).then((res) => {
const data = JSON.parse(res['[]'][0].T_static_data.DATA) const data = JSON.parse(res["[]"][0].T_static_data.DATA);
for (let i = 0; i < data.top.length; i++) { for (let i = 0; i < data.top.length; i++) {
for (let j = 0; j < this.dataSource.top.length; j++) { for (let j = 0; j < this.dataSource.top.length; j++) {
if (data.top[i].title === this.dataSource.top[j].title) { if (data.top[i].title === this.dataSource.top[j].title) {
this.dataSource.top[j].currentNum = data.top[i].currentNum this.dataSource.top[j].currentNum = data.top[i].currentNum;
this.dataSource.top[j].total = data.top[i].total this.dataSource.top[j].total = data.top[i].total;
} }
} }
} }
for (let i = 0; i < data.bottom.length; i++) { for (let i = 0; i < data.bottom.length; i++) {
for (let j = 0; j < this.dataSource.bottom.length; j++) { for (let j = 0; j < this.dataSource.bottom.length; j++) {
if (data.bottom[i].title === this.dataSource.bottom[j].title) { if (data.bottom[i].title === this.dataSource.bottom[j].title) {
this.dataSource.bottom[j].num = data.bottom[i].num this.dataSource.bottom[j].num = data.bottom[i].num;
} }
} }
} }
}) });
}, },
// //
mouseOver() { mouseOver() {
clearInterval(this.attackTime) clearInterval(this.attackTime);
}, },
// //
mouseLeave() { mouseLeave() {
this.changeBtn() this.changeBtn();
}, },
// //
changeBtn() { changeBtn() {
this.attackTime = setInterval(() => { this.attackTime = setInterval(() => {
this.currentIndex === 0 this.currentIndex === 0
? (this.currentIndex = 1) ? (this.currentIndex = 1)
: (this.currentIndex = 0) : (this.currentIndex = 0);
}, 11000) }, 11000);
} },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -821,103 +844,103 @@ export default {
} }
} }
.dialog-btn { .dialog-btn {
background: url("~@/assets/dialog/btn-bg.png") no-repeat; background: url("~@/assets/dialog/btn-bg.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
width: 160px; width: 160px;
height: 50px; height: 50px;
font-family: SourceHanSansCN-Regular; font-family: SourceHanSansCN-Regular;
font-size: 24px; font-size: 24px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
line-height: 10px; line-height: 10px;
letter-spacing: 2px; letter-spacing: 2px;
color: #ffffff; color: #ffffff;
} }
::v-deep .el-button { ::v-deep .el-button {
border: none; border: none;
} }
.dialog-footer :hover { .dialog-footer :hover {
.dialog-btn { .dialog-btn {
background: url("~@/assets/dialog/btn-bg-act.png") no-repeat; background: url("~@/assets/dialog/btn-bg-act.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
text-align: left; text-align: left;
padding-left: 40px; padding-left: 40px;
.el-dialog__title { .el-dialog__title {
font-family: SourceHanSansCN-Bold, san-serif; font-family: SourceHanSansCN-Bold, san-serif;
font-size: 24px; font-size: 24px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
line-height: 38px; line-height: 38px;
letter-spacing: 0px; letter-spacing: 0px;
color: #ffffff; color: #ffffff;
} }
} }
::v-deep .el-dialog { ::v-deep .el-dialog {
background: url("../../../../assets/dialog/弹窗背景-一般.png") no-repeat; background: url("../../../../assets/dialog/弹窗背景-一般.png") no-repeat;
width: 1820px; width: 1820px;
height: 1066px; height: 1066px;
background-size: 100% 100%; background-size: 100% 100%;
} }
::v-deep .el-dialog__headerbtn { ::v-deep .el-dialog__headerbtn {
top: 0; top: 0;
font-size: 30px; font-size: 30px;
font-weight: bolder; font-weight: bolder;
} }
::v-deep .el-dialog__footer { ::v-deep .el-dialog__footer {
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
} }
::v-deep .el-table th.el-table__cell { ::v-deep .el-table th.el-table__cell {
background-color: rgba(0, 0, 0, 0); background-color: rgba(0, 0, 0, 0);
} }
::v-deep .el-table { ::v-deep .el-table {
background-color: rgba(0, 0, 0, 0); background-color: rgba(0, 0, 0, 0);
color: #fff; color: #fff;
border: none; border: none;
} }
::v-deep.el-table::before { ::v-deep.el-table::before {
display: none; display: none;
} }
::v-deep .el-table tr { ::v-deep .el-table tr {
background-color: rgba(0, 0, 0, 0); background-color: rgba(0, 0, 0, 0);
} }
::v-deep .el-table .cell { ::v-deep .el-table .cell {
font-size: 26px; font-size: 26px;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
} }
::v-deep .el-table__header { ::v-deep .el-table__header {
background-color: rgba(76, 162, 248, 0.2); background-color: rgba(76, 162, 248, 0.2);
color: #fff; color: #fff;
} }
::v-deep .el-table__row { ::v-deep .el-table__row {
font-family: SourceHanSansCN-Regular, sans-serif; font-family: SourceHanSansCN-Regular, sans-serif;
font-size: 26px; font-size: 26px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
letter-spacing: 0px; letter-spacing: 0px;
color: #b7dfff; color: #b7dfff;
background-color: rgba(106, 184, 255, 0.2); background-color: rgba(106, 184, 255, 0.2);
border: solid 1px #6ab8ff; border: solid 1px #6ab8ff;
} }
::v-deep .el-table { ::v-deep .el-table {
tbody tr { tbody tr {
&:hover { &:hover {
td { td {
background-color: rgba(228, 223, 223, 0.3) !important; background-color: rgba(228, 223, 223, 0.3) !important;
}
}
} }
} }
::v-deep .el-table td.el-table__cell { }
border: none; }
} ::v-deep .el-table td.el-table__cell {
::v-deep .el-table th.el-table__cell { border: none;
border: none; }
} ::v-deep .el-table th.el-table__cell {
border: none;
}
} }
.dialog_title { .dialog_title {
font-family: SourceHanSansCN-Regular; font-family: SourceHanSansCN-Regular;

@ -120,9 +120,9 @@
> >
<span :data-url="item.fileUrl">{{ item.unitName }}</span> <span :data-url="item.fileUrl">{{ item.unitName }}</span>
<span>{{ item.riskName }}</span> <span :data-url="item.fileUrl">{{ item.riskName }}</span>
<span>{{ $filterDict("tc_yh_level", item.level) }}</span> <span :data-url="item.fileUrl">{{ $filterDict("tc_yh_level", item.level) }}</span>
<span> {{ $filterDict("tc_yh_source", item.riskSource) }}</span> <span :data-url="item.fileUrl"> {{ $filterDict("tc_yh_source", item.riskSource) }}</span>
</div> </div>
</vue-seamless-scroll> </vue-seamless-scroll>
</div> </div>
@ -150,10 +150,10 @@
<div class="item_name" :data-url="item.fileUrl"> <div class="item_name" :data-url="item.fileUrl">
{{ item.depName }} {{ item.depName }}
</div> </div>
<div class="item_ip" > <div class="item_ip" :data-url="item.fileUrl">
{{ item.ip }} {{ item.ip }}
</div> </div>
<span class="item_num" >{{ <span class="item_num" :data-url="item.fileUrl">{{
$filterDict("tc_steam_state", item.state) $filterDict("tc_steam_state", item.state)
}}</span> }}</span>
</div> </div>
@ -514,11 +514,8 @@ export default {
this.fileExtension = e.target.dataset.url.substring( this.fileExtension = e.target.dataset.url.substring(
e.target.dataset.url.lastIndexOf(".") + 1 e.target.dataset.url.lastIndexOf(".") + 1
); );
console.log(this.fileExtension)
if (this.fileExtension == "pdf") { if (this.fileExtension == "pdf") {
this.pdfUrl = process.env.VUE_APP_BASE_API2 +e.target.dataset.url; this.pdfUrl = process.env.VUE_APP_BASE_API2 +e.target.dataset.url;
console.log(this.pdfUrl,'aaa')
this.dialogDetails = true; this.dialogDetails = true;
} else if ( } else if (
this.fileExtension === "docx" || this.fileExtension === "docx" ||

Loading…
Cancel
Save