吕天方 1 year ago
commit 1f4243683d

@ -5,6 +5,6 @@ ENV = 'development'
VUE_APP_BASE_API = '/dashboard'
# VUE_APP_BASE_API2 = 'http://39.101.188.84:9027'
VUE_APP_BASE_API2 = 'http://192.168.0.110:9035'
VUE_APP_BASE_API2 = 'http://localhost:9035'
BASE_API = 'http://10.10.3.35:9070'

@ -0,0 +1,48 @@
import request from "@/utils/request.js";
// 查询舆情走势图列表
export function listYqzs(query) {
return request({
url: '/tcZz/netWorkYq/yqzs/ListNoToken',
method: 'get',
params: query
})
}
// 查询舆情信息量统计列表
export function listYqxxlnum(query) {
return request({
url: '/tcZz/netWorkYq/yqxxlnum/list',
method: 'get',
params: query
})
}
// 查询舆情信息量统计明細列表
export function listYqxxltj(query) {
return request({
url: '/tcZz/netWorkYq/yqxxltj/ListNoToken',
method: 'get',
params: query
})
}
// 查询舆情信息量统计明細详细
export function getYqxxltj(id) {
return request({
url: '/tcZz/netWorkYq/yqxxltj/' + id,
method: 'get'
})
}
// 查询媒体类型列表
export function listMtlx(query) {
return request({
url: '/tcZz/netWorkYq/mtlx/list',
method: 'get',
params: query
})
}
// 查询涉事类型列表
export function listSslx(query) {
return request({
url: '/tcZz/netWorkYq/sslx/list',
method: 'get',
params: query
})
}

@ -0,0 +1,152 @@
import request from "@/utils/request.js";
// 查询数据来源统计列表
export function listDataSourceTj(query) {
return request({
url: '/tcZz/networkSecurity/DataSourceTj/list',
method: 'get',
params: query
})
}
// 查询硬探针、软探针列表
export function listRyz(query) {
return request({
url: '/tcZz/networkSecurity/ryz/list',
method: 'get',
params: query
})
}
// 查询系统监测列表
export function listXtjc(query) {
return request({
url: '/tcZz/networkSecurity/xtjc/ListNoToken',
method: 'get',
params: query
})
}
// 查询等保系统列表
export function listDbxt(query) {
return request({
url: '/tcZz/networkSecurity/dbxt/list',
method: 'get',
params: query
})
}
// 查询等保单位列表
export function listDbdw(query) {
return request({
url: '/tcZz/networkSecurity/dbdw/list',
method: 'get',
params: query
})
}
// 查询政府网站列表
export function listZfwz(query) {
return request({
url: '/tcZz/networkSecurity/zfwz/list',
method: 'get',
params: query
})
}
// 查询监管单位和网站监测
export function listJgdw(query) {
return request({
url: '/tcZz/networkSecurity/jgdw/ListNoToken',
method: 'get',
params: query
})
}
// 查询 IDC单位列表
export function listIdcdw(query) {
return request({
url: '/tcZz/networkSecurity/idcdw/list',
method: 'get',
params: query
})
}
// 查询网络监测统计列表
export function listWljgtj(query) {
return request({
url: '/tcZz/networkSecurity/wljgtj/list',
method: 'get',
params: query
})
}
// 查询网络监测列表
export function listCybersecurity(query) {
return request({
url: '/tcZz/networkSecurity/cybersecurity/ListNoToken',
method: 'get',
params: query
})
}
// 查询网络监测详细
export function getCybersecurity(id) {
return request({
url: '/tcZz/networkSecurity/cybersecurity/' + id,
method: 'get'
})
}
// 查询受攻击IPTOP5列表
export function listTop5(query) {
return request({
url: '/tcZz/networkSecurity/top5/list',
method: 'get',
params: query
})
}
// 查询分布情况列表
export function listFbqk(query) {
return request({
url: '/tcZz/networkSecurity/fbqk/list',
method: 'get',
params: query
})
}
// 查询地图统计列表
export function listMap(query) {
return request({
url: '/tcZz/networkSecurity/map/list',
method: 'get',
params: query
})
}
// 查询安全隐患列表
export function listAqyh(query) {
return request({
url: '/tcZz/networkSecurity/aqyh/list',
method: 'get',
params: query
})
}
// 查询通报完成情况列表
export function listTbwc(query) {
return request({
url: '/tcZz/networkSecurity/tbwc/list',
method: 'get',
params: query
})
}
// 查询部门通报列表
export function listBmtb(query) {
return request({
url: '/tcZz/networkSecurity/bmtb/list',
method: 'get',
params: query
})
}
// 查询最新隐患列表
export function listZxyh(query) {
return request({
url: '/tcZz/networkSecurity/zxyh/list',
method: 'get',
params: query
})
}
// 查询通报处置列表
export function listTbcz(query) {
return request({
url: '/tcZz/networkSecurity/tbcz/list',
method: 'get',
params: query
})
}

@ -2,7 +2,7 @@ import request from "@/utils/request.js";
//数据来源
export function dataLY() {
return request({
url: "/zongzhi/saftyscreen/source",
url: "/networkSecurity/DataSourceTj/list",
method: "get",
});
}

@ -8,68 +8,70 @@
align="center"
/> -->
<el-table-column
v-for="(item,key) in tableKey"
v-if="!item.dictType"
v-for="(item, key) in tableKey"
:key="key"
:prop="item.value"
:label="item.name"
align="center"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column v-else :label="item.name" :show-overflow-tooltip="true">
>
<template scope="scope">
{{ $filterDict(item.dictType,scope.row[item.value],item.dictType == 'town' ? true : false) }}
{{
dictType
? $filterDict(
item.dictType,
scope.row[item.value],
item.dictType == "town" ? true : false
)
: scope.row[item.value]
}}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
total: {
type: Number,
default: 0
default: 0,
},
pageNum: {
type: Number,
default: 1
default: 1,
},
pageSize: {
type: Number,
default: 10
default: 10,
},
tableTitle: {
type: String,
default: ''
default: "",
},
height: {
type: Number,
default: 740
default: 740,
},
tableList: {
type: Array,
default: () => []
default: () => [],
},
tableKey: {
type: Array,
default: () => []
}
default: () => [],
},
},
data() {
return {}
return {};
},
methods: {
getList() {
console.log(this.pageNum, this.pageSize)
}
}
}
console.log(this.pageNum, this.pageSize);
},
},
};
</script>
<style>
</style>

@ -102,7 +102,7 @@ import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
import { TWEEN } from "three/examples/jsm/libs/tween.module.min.js";
import { inlandAttack, outlandAttack } from "@/api/common";
import { mapAttack } from "@/api/wlSafe";
import { listMap } from "@/api/networkSecurity";
export default {
filters: {
commaFilter(target) {
@ -563,17 +563,17 @@ export default {
methods: {
//
mapList() {
mapAttack({ pageSize: 20, pageNum: 1 }).then((res) => {
listMap({ pageSize: 20, pageNum: 1 }).then((res) => {
res.rows.forEach((value) => {
this.attackItem.forEach((value1, index1) => {
if (value1.country == value.name) {
this.attackItem[index1].attackNum = value.attackCount;
this.attackItem[index1].attackNum = value.count;
return;
}
});
this.attackItemTwo.forEach((value2, index2) => {
if (value2.country == value.name) {
this.attackItemTwo[index2].attackNum = value.attackCount;
this.attackItemTwo[index2].attackNum = value.count;
return;
}
});

@ -134,6 +134,9 @@
</template>
<script>
//,
import { listBmtb} from "@/api/networkSecurity";
import qs from "qs";
const docx = require("docx-preview");
import axios from "axios";
@ -353,8 +356,8 @@ export default {
},
//
getBMData() {
departmentTB().then((res) => {
this.notificationList = res.data;
listBmtb().then((res) => {
this.notificationList = res.rows;
});
},
//

@ -30,7 +30,7 @@
class="section-wrap-item"
:style="{
backgroundColor: index < 3 ? '#e8bf00' : '#4997f7',
width: (item.num / attackTotal) * 100 + '%',
width: (item.num / attack) * 100 + '%',
}"
/>
<div class="section-wrap-num">
@ -66,72 +66,46 @@
</template>
<script>
import { saftyscreenUnattack } from '@/api/zongzhi/st.js'
import { echartsJump } from '../../../../../public/static/echartsJump'
import { getAttackTypeDistribution, getTopIp } from '@/api/common'
import { saftyscreenUnattack } from "@/api/zongzhi/st.js";
import { echartsJump } from "../../../../../public/static/echartsJump";
import { listTop5, listFbqk } from "@/api/networkSecurity";
export default {
name: '',
name: "",
filters: {
commaFilter(target) {
return String(target).replace(/(\d)(?=(\d{3})+$)/g, '$1,')
}
return String(target).replace(/(\d)(?=(\d{3})+$)/g, "$1,");
},
},
props: {
currentIndex: {
type: Number,
default: 0
}
default: 0,
},
},
data() {
return {
isActive: 0,
attackTotal: 0,
data: [
{ value: 21791571, name: '扫描行为' },
{ value: 4997514, name: 'IDS规则' },
{ value: 2994595, name: '远程控制' },
{ value: 1077065, name: '挖矿' },
{ value: 953305, name: 'SMB远程溢出攻击' },
{ value: 443961, name: '其他' }
],
attackRanking: [
// {
// total: '10.53.221.176',
// num: 1821207,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.52.121.112',
// num: 1271992,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.53.236.147',
// num: 1184362,
// url: require('@/assets/privateOrder/general/top.png')
// },
// {
// total: '10.53.18.231',
// num: 1014549,
// url: require('@/assets/privateOrder/general/top5-.png')
// },
// {
// total: '172.96.100.207',
// num: 836344,
// url: require('@/assets/privateOrder/general/top5-.png')
// }
{ value: 21791571, name: "扫描行为" },
{ value: 4997514, name: "IDS规则" },
{ value: 2994595, name: "远程控制" },
{ value: 1077065, name: "挖矿" },
{ value: 953305, name: "SMB远程溢出攻击" },
{ value: 443961, name: "其他" },
],
controlList: []
// controlList: ['', '', ''] //
}
attackRanking: [],
controlList: [],
pieImg: [],
};
},
computed: {
attack() {
this.attackRanking.forEach((v) => {
this.attackTotal += v.num
})
return this.attackTotal
}
this.attackTotal += v.num;
});
return this.attackTotal;
},
},
watch: {
// currentIndex() {
@ -143,140 +117,127 @@ export default {
// }
},
mounted() {
this.getSaftyscreenUnattack()
// this.data = [
// { value: 1, name: '' },
// { value: 80, name: '' },
// { value: 90, name: '' },
// { value: 20, name: '' },
// { value: 50, name: '' }
// ]
// this.initDistribution()
// getAttackTypeDistribution().then((res) => {
// this.data = []
// res['T_ATTACK_TYPE_DISTRIBUTION[]'].forEach((ele) => {
// this.data.push({ value: ele.statistic_count, name: ele.data_name })
// })
// this.initDistribution()
// })
// getTopIp().then((res) => {
// const data = res['T_ATTACKED_IP_TOP5[]']
// for (let index = 0; index < data.length; index++) {
// this.attackRanking[index].total = data[index].data_name
// this.attackRanking[index].num = Number(data[index].statistic_count)
// this.attackTotal += Number(data[index].statistic_count)
// }
// })
this.getSaftyscreenUnattack();
},
methods: {
/**
* TOP5
*/
getSaftyscreenUnattack() {
saftyscreenUnattack().then(res => {
console.log(res.data)
this.attackRanking = res.data.map((item, index) => {
listTop5().then((res) => {
this.attackRanking = res.rows.map((item, index) => {
return {
name: item.attackIpRegion,
value: item.pt,
total: item.attackedIp,
num: item.count,
url: index + 1 <= 3 ? require('@/assets/privateOrder/general/top前三.png') : require('@/assets/privateOrder/general/top5-其他.png')
}
})
this.initDistribution()
// console.log(this.attackRanking)
})
// name: item.attackIpRegion,
// 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"),
};
});
this.attackRanking.sort(function (a, b) {
return b.num - a.num;
});
});
listFbqk().then((res) => {
console.log(res);
res.rows.forEach((value) => {
this.pieImg.push({
name: value.cityName,
value: value.zb,
});
});
this.initDistribution();
});
},
//
initDistribution() {
const chartDom = document.getElementById('section-pie')
const myChart = this.$echarts.init(chartDom)
const chartDom = document.getElementById("section-pie");
const myChart = this.$echarts.init(chartDom);
const option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)',
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
textStyle: {
fontSize: 26,
fontWight: 'bold'
}
fontWight: "bold",
},
},
color: [
'#6bd3ff',
'#2590fd',
'#f6ff00',
'#ffd616',
'#ff9314',
'#ffffff'
"#6bd3ff",
"#2590fd",
"#f6ff00",
"#ffd616",
"#ff9314",
"#ffffff",
],
legend: {
orient: 'vertical',
icon: 'circle',
right: '-5%',
top: '0',
orient: "vertical",
icon: "circle",
right: "-5%",
top: "0",
itemGap: 17,
padding: 8,
formatter: (name) => {
let total = 0
let target
this.attackRanking.forEach((v) => {
total += Number(v.value)
console.log(name);
let target;
this.pieImg.forEach((v) => {
if (v.name === name) {
target = v.value
target = v.value;
}
})
const arr = [
`{a|${((target / total) * 100).toFixed(1)} % } {b|${name}} `
]
return arr.join('\n')
});
const arr = [`{a|${Number(target).toFixed(1)} % } {b|${name}} `];
return arr;
},
textStyle: {
rich: {
a: {
fontSize: 35,
letterSpacing: 2,
color: 'rgba(255, 255, 255)'
color: "rgba(255, 255, 255)",
},
b: {
width: 270,
fontSize: 30,
color: 'rgba(183,223,255)'
}
color: "rgba(183,223,255)",
},
},
fontSize: 30,
color: 'rgba(255, 255, 255, .5)'
}
color: "rgba(255, 255, 255, .5)",
},
},
series: [
{
name: '分布情况',
type: 'pie',
radius: ['35%', '80%'],
center: ['21.5%', '48.3%'],
name: "分布情况",
type: "pie",
radius: ["35%", "80%"],
center: ["21.5%", "48.3%"],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
position: "center",
},
emphasis: {
label: {
show: false,
fontSize: '28',
fontWeight: 'bold'
}
fontSize: "28",
fontWeight: "bold",
},
},
labelLine: {
show: false
show: false,
},
data: this.attackRanking
}
]
}
myChart.setOption(option)
echartsJump(myChart, option)
}
}
}
data: this.pieImg,
},
],
};
myChart.setOption(option);
echartsJump(myChart, option);
},
},
};
</script>
<style lang='scss' scoped>
//
@ -384,7 +345,7 @@ export default {
margin: 35px auto;
width: 750px;
height: 334px;
background: url('~@/assets/privateOrder/general/first/circle-bg.png')
background: url("~@/assets/privateOrder/general/first/circle-bg.png")
no-repeat;
}
}

@ -41,7 +41,7 @@
v-for="(item, idx) in dataSource.bottom"
:key="idx"
class="section-bottom-item"
@click="showAttack(item.title, item.num)"
@click="showAttack(item.title, item.type)"
>
<img :src="item.url" alt="" />
<span class="bottom-title">{{ item.title }}</span>
@ -58,7 +58,7 @@
v-for="(item, idx) in superviseObject"
:key="idx"
:class="['section-object-item', item.className]"
@click="showAttack(item.title, item.num)"
@click="showAttack(item.title, item.type)"
>
<img :src="item.url" alt="" />
<div class="item-content">
@ -81,7 +81,7 @@
<img :src="securityMonitor.url" alt="" />
<div class="monitor-info-des">
<span class="info-des-title">{{ securityMonitor.title }}</span>
<span class="info-des-total">{{ monitorForm.totalSum }}</span>
<span class="info-des-total">{{ monitorForm.netAttack }}</span>
</div>
</div>
<span class="monitor-line">|</span>
@ -95,11 +95,11 @@
<span class="detail-item-title">{{ item.title }}</span>
<span class="detail-item-num">{{
item.title == "入侵攻击"
? monitorForm.rqSum
? monitorForm.rqAttack
: item.title == "恶意扫描"
? monitorForm.eySum
? monitorForm.smAttack
: item.title == "僵木蠕病毒"
? monitorForm.jmrSum
? monitorForm.bdAttack
: 0
}}</span>
</div>
@ -112,7 +112,7 @@
<span>攻击源/IP</span>
<span>攻击类型</span>
</div>
<div @click="getAttackSource($event)">
<div>
<vue-seamless-scroll
:data="tableData"
:class-option="classOption"
@ -122,12 +122,13 @@
v-for="(item, idx) in tableData"
:key="idx"
class="monitor-list"
@click="getAttackSource(item)"
>
<span :data-id="item.id">{{ item.attackTime }}</span>
<span :data-id="item.id">{{ item.sourceIp }}</span>
<span :data-id="item.id">{{
$filterDict("tc_attack_type", item.attackType)
$moment(item.startTime).format("YYYY-MM-DD")
}}</span>
<span :data-id="item.id">{{ item.attackyIp }}</span>
<span :data-id="item.id">{{ item.attackType }}</span>
</div>
</vue-seamless-scroll>
</div>
@ -176,7 +177,7 @@
<div class="dialog_little_title">攻击发起时间</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.attackTime }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.startTime }}</div>
</el-col>
</el-row>
<el-row>
@ -184,7 +185,7 @@
<div class="dialog_little_title">攻击源IP</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.sourceIp }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.attackyIp }}</div>
</el-col>
</el-row>
<el-row>
@ -193,7 +194,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ $filterDict("tc_attack_type", tableDataPop.attackType) }}
{{ tableDataPop.attackType }}
</div>
</el-col>
</el-row>
@ -203,7 +204,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ tableDataPop.attackIpRegion }}
{{ tableDataPop.attackIpArea }}
</div>
</el-col>
</el-row>
@ -212,7 +213,7 @@
<div class="dialog_little_title">受攻击IP</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ tableDataPop.attackedIp }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.sAttackIp }}</div>
</el-col>
</el-row>
<el-row>
@ -221,7 +222,7 @@
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">
{{ tableDataPop.attackedIpRegion }}
{{ tableDataPop.sAttackIpArea }}
</div>
</el-col>
</el-row>
@ -239,14 +240,14 @@
</el-col>
<el-col :span="6">
<div class="dialog_little_ctn">
{{ $filterDict("tc_net_safety_level", tableDataPop.level) }}
{{ 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.phoneNum }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.linkTel }}</div>
</el-col>
</el-row>
<el-row>
@ -287,7 +288,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="showAttack"
@pagination="showAttack1"
/>
</div>
</template>
@ -308,19 +309,6 @@ import vueSeamlessScroll from "vue-seamless-scroll";
import ModuleTitle from "../../common/ModuleTitle.vue";
import attackSituation from "./attackSituation.vue";
import ExcelTable from "@/components/ExcelTable";
import {
listSystem,
listUnit,
listWeb,
listIDCunit,
listSource,
saftyscreenSupervise,
saftyscreenSafety,
listDetection,
getDetection,
listTj,
listSourceTj,
} from "@/api/zongzhi/st.js";
import {
yingTanZhen,
yingTanZhenKeyValue,
@ -339,9 +327,21 @@ import {
rtz,
rtzKeyValue,
} from "./jianGuan";
import { getLatest, getSecurity } from "@/api/common";
//===============
import { dataLY } from "@/api/wlSafe";
import {
listDataSourceTj,
listRyz,
listXtjc,
listDbxt,
listDbdw,
listZfwz,
listJgdw,
listIdcdw,
listWljgtj,
listCybersecurity,
getCybersecurity,
} from "@/api/networkSecurity";
export default {
components: {
attackSituation,
@ -366,6 +366,7 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
isStatus: 1,
}, //
total: 0, //
time: null,
@ -408,19 +409,18 @@ export default {
title: "硬探针",
num: 0,
url: require("@/assets/privateOrder/general/硬探针.png"),
type: 3,
type: 1,
},
{
title: "软探针",
num: 0,
url: require("@/assets/privateOrder/general/软探针.png"),
type: 4,
type: 2,
},
{
title: "系统监测",
num: 0,
url: require("@/assets/privateOrder/general/系统监测.png"),
type: 7,
},
],
},
@ -436,14 +436,14 @@ export default {
num: 0,
className: "item2",
url: require("@/assets/privateOrder/general/icon-监管单位.png"),
type: 5,
type: 1,
},
{
title: "网站监测",
num: 0,
className: "item3",
url: require("@/assets/privateOrder/general/icon-网站监测.png"),
type: 6,
type: 2,
},
{
title: "IDC单位",
@ -471,24 +471,19 @@ export default {
detail: [
{
title: "入侵攻击",
// num: 1455.92
num: 1455.92,
},
{
title: "恶意扫描",
// num: 2325.24
num: 2325.24,
},
{
title: "僵木蠕病毒",
// num: 796.152
num: 796.152,
},
],
},
monitorForm: {
totalSum: 0,
rqSum: 0,
eySum: 0,
jmrSum: 0,
},
monitorForm: {},
tableDataPop: {
// id: 1,
// attackTime: '2023-07-30',
@ -556,146 +551,83 @@ export default {
clearInterval(this.time);
},
mounted() {
listSourceTj().then((res) => {
this.dataSource.top[0].currentNum = res.rows[0].lable1;
this.dataSource.top[0].total = res.rows[0].lable1Sume;
this.dataSource.top[1].currentNum = res.rows[0].lable2;
this.dataSource.top[1].total = res.rows[0].lable2Sume;
});
this.changeBtn(); //
this.getSaftyscreenSupervise();
this.getSaftyscreenSafety();
this.getListDetection();
this.time = setInterval(() => {
//
if (this.tableData.length >= this.checkTotal) {
clearInterval(this.time);
} else {
this.checkParams.pageNum = this.checkParams.pageNum + 1;
this.getListDetection();
}
}, 6000);
// this.getDataSource() //
//
// getLatest().then((res) => {
// this.tableData = []
// res['T_LATEST_NEWS[]'].forEach((item) => {
// this.tableData.push({
// id: item.id,
// date: item.attack_time.substring(0, 10),
// ip: item.attack_ip_region + '/' + item.source_ip,
// type: item.attack_type
// })
// })
// })
// getSecurity().then((res) => {
// const data = res['T_SECURITY_MONITOR[]']
// this.securityMonitor.total = (data[0].statistic_count / 10000).toFixed(2)
// this.securityMonitor.detail[0].num = (
// data[1].statistic_count / 10000
// ).toFixed(2)
// this.securityMonitor.detail[1].num = (
// data[2].statistic_count / 10000
// ).toFixed(2)
// this.securityMonitor.detail[2].num = (
// data[3].statistic_count / 10000
// ).toFixed(2)
// })
//
this.getsjly();
this.changeBtn(); //
// this.getSaftyscreenSupervise();
// this.getSaftyscreenSafety();
// this.getListDetection();
// this.time = setInterval(() => {
// //
// if (this.tableData.length >= this.checkTotal) {
// clearInterval(this.time);
// } else {
// this.checkParams.pageNum = this.checkParams.pageNum + 1;
// this.getListDetection();
// }
// }, 6000);
},
methods: {
getsjly() {
dataLY().then((res) => {
//APT(M)
listDataSourceTj().then((res) => {
console.log(res);
res.data.forEach((value, index) => {
this.dataSource.bottom.forEach((value2, index2) => {
if (value.type == value2.type) {
this.dataSource.bottom[index2].num = value.count;
return;
}
});
this.superviseObject.forEach((value3, index3) => {
if (value.type == value3.type) {
this.superviseObject[index3].num = value.count;
return;
}
});
});
this.dataSource.top[0].currentNum = res.rows[0].lable1;
this.dataSource.top[0].total = res.rows[0].lable1Sum;
this.dataSource.top[1].currentNum = res.rows[0].lable2;
this.dataSource.top[1].total = res.rows[0].lable2Sum;
});
},
//================
AttackClick(id) {
return new Promise((resolve) => {
getLatest().then((res) => {
res["T_LATEST_NEWS[]"].forEach((item) => {
if (item.id === id) {
this.tableDataPop.id = id;
this.tableDataPop.attackTime = item.attack_time;
this.tableDataPop.sourceIp = item.source_ip;
this.tableDataPop.attackType = item.attack_type;
this.tableDataPop.attackIpRegion = item.attack_ip_region;
this.tableDataPop.attackedIp = item.attacked_ip;
this.tableDataPop.attackedType = item.attacked_type;
this.tableDataPop.webLevel = item.web_level;
this.tableDataPop.subordinateDept = item.subordinate_dept;
this.tableDataPop.attackedIpRegion = item.attacked_ip_region;
item.contact_tel === undefined
? (this.tableDataPop.contactTel = "-")
: (this.tableDataPop.contactTel = item.contact_tel);
item.contact_name === undefined
? (this.tableDataPop.contactName = "-")
: (this.tableDataPop.contactName = item.contact_name);
resolve();
}
});
});
//
listWljgtj().then((res) => {
this.monitorForm = res.rows[0];
});
//
listCybersecurity({
isStatus: 1,
}).then((res) => {
this.tableData = res.rows;
});
},
async getAttackSource(e) {
let id = e.target.dataset.id;
if (!id) return;
//================
getAttackSource(e) {
this.dialogWidth = "1000px";
getDetection(id).then((res) => {
this.tableDataPop = res.data;
getCybersecurity(e.id).then((res) => {
this.dialogType = "安全监测";
this.tableDataPop = res.data;
this.dialogStatus = true;
});
// await this.AttackClick(id)
},
/**
* 安全监管List
*/
getListDetection() {
listDetection(this.checkParams).then((res) => {
this.tableData = [...this.tableData, ...res.rows];
this.checkTotal = res.total;
});
},
// getListDetection() {
// listDetection(this.checkParams).then((res) => {
// this.tableData = [...this.tableData, ...res.rows];
// this.checkTotal = res.total;
// });
// },
/**
* 安全监测攻击类型统计
*/
getSaftyscreenSafety() {
listTj({ isStatus: 1 }).then((res) => {
this.monitorForm = res.rows[0];
});
},
// getSaftyscreenSafety() {
// listTj({ isStatus: 1 }).then((res) => {
// this.monitorForm = res.rows[0];
// });
// },
/**
* 监管对象各类别统计量
*/
getSaftyscreenSupervise() {
saftyscreenSupervise().then((res) => {
res.data.forEach((item) => {
this.superviseObject.forEach((it) => {
if (item.name == it.title) {
it.num = item.count;
}
});
});
console.log(res, "aaa");
});
},
// getSaftyscreenSupervise() {
// saftyscreenSupervise().then((res) => {
// res.data.forEach((item) => {
// this.superviseObject.forEach((it) => {
// if (item.name == it.title) {
// it.num = item.count;
// }
// });
// });
// console.log(res, "aaa");
// });
// },
/**
* 表格参数重置
* */
@ -703,72 +635,56 @@ export default {
this.total = 0;
this.queryParams = {
pageNum: 1,
isStatus: 1,
pageSize: 10,
};
this.excelData = [];
this.excelDataHeader = [];
},
/**
* 等保系统
*/
getDbSteam() {
listSystem(this.queryParams).then((res) => {
this.excelData = res.rows;
//
getDbxt() {
listDbxt(this.queryParams).then((res) => {
this.excelDataHeader = dbxtKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
},
/**
* 等保单位
*/
//
getDbUnit() {
listUnit(this.queryParams).then((res) => {
this.excelData = res.rows;
listDbdw(this.queryParams).then((res) => {
this.excelDataHeader = dbdwKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
},
/**
* 政府网站
*/
//
getZfWeb() {
listWeb(this.queryParams).then((res) => {
this.excelData = res.rows;
listZfwz(this.queryParams).then((res) => {
this.excelDataHeader = zfdwKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
},
/**
* IDC单位
*/
// IDC
getIdcUnit() {
listIDCunit(this.queryParams).then((res) => {
this.excelData = res.rows;
listIdcdw(this.queryParams).then((res) => {
this.excelDataHeader = IDCKeyValue;
this.total = res.total;
});
},
/**
* 监管单位 || 网站监测 || 系统监测
*/
getJgUnit() {
listSource(this.queryParams).then((res) => {
this.excelData = res.rows;
this.excelDataHeader = xitongjianceKeyValue;
this.total = res.total;
});
},
showAttack(item = "安全监测", total) {
showAttack(item, type) {
if (typeof item === "object") {
//
this.queryParams.pageNum = item.page;
this.queryParams.pageSize = item.limit;
} else {
this.reset();
this.dialogType = item;
}
if (this.dialogType === "等保系统") {
this.dialogWidth = "4000px";
this.getDbSteam();
this.getDbxt();
}
if (this.dialogType === "等保单位") {
this.dialogWidth = "4000px";
@ -782,53 +698,46 @@ export default {
this.dialogWidth = "1800px";
this.getIdcUnit();
}
if (
this.dialogType === "监管单位" ||
this.dialogType === "系统监测" ||
this.dialogType === "网站监测" ||
this.dialogType === "软探针" ||
this.dialogType === "硬探针"
) {
if (this.dialogType === "监管单位" || this.dialogType === "网站监测") {
this.dialogWidth = "2100px";
if (this.dialogType === "软探针") {
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 {
this.queryParams.type = 7;
if (!this.queryParams.type) {
this.queryParams.type = type;
}
this.getJgUnit();
listJgdw(this.queryParams).then((res) => {
this.excelDataHeader = xitongjianceKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
}
if (this.dialogType == "系统监测") {
this.dialogWidth = "2100px";
if (!this.queryParams.type) {
this.queryParams.type = type;
}
listXtjc(this.queryParams).then((res) => {
this.excelDataHeader = xitongjianceKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
}
if (this.dialogType === "硬探针" || this.dialogType === "软探针") {
this.dialogWidth = "2100px";
if (!this.queryParams.type) {
this.queryParams.type = type;
}
listRyz(this.queryParams).then((res) => {
this.excelDataHeader = rtzKeyValue;
this.excelData = res.rows;
this.total = res.total;
});
}
this.$nextTick(() => {
this.dialogStatus = true;
});
},
//
// getDataSource() {
// getSource(9).then((res) => {
// const data = JSON.parse(res["[]"][0].T_static_data.DATA);
// for (let i = 0; i < data.top.length; i++) {
// for (let j = 0; j < this.dataSource.top.length; j++) {
// if (data.top[i].title === this.dataSource.top[j].title) {
// this.dataSource.top[j].currentNum = data.top[i].currentNum;
// this.dataSource.top[j].total = data.top[i].total;
// }
// }
// }
// for (let i = 0; i < data.bottom.length; i++) {
// for (let j = 0; j < this.dataSource.bottom.length; j++) {
// if (data.bottom[i].title === this.dataSource.bottom[j].title) {
// this.dataSource.bottom[j].num = data.bottom[i].num;
// }
// }
// }
// });
// },
showAttack1(e) {
this.showAttack(e);
},
//
mouseOver() {
clearInterval(this.attackTime);

@ -6,8 +6,8 @@
<div class="safetyBox">
<div v-for="(item, idx) in safetyList" :key="idx">
<div class="safetyBox_item">
<div class="pone">{{ item.totalNum | commaFilter }}</div>
<div class="ptwo">{{ item.typeName }}</div>
<div class="pone">{{ item.yhCount | commaFilter }}</div>
<div class="ptwo">{{ item.yhName }}</div>
</div>
</div>
</div>
@ -47,7 +47,8 @@
class="table_item"
>
<div class="item_one">
{{ notificationStatus(item.timeRangeFlag) }}
<!-- {{ notificationStatus(item.timeRangeFlag) }} -->
{{ item.timeRangeFlag }}
</div>
<div class="item_two">{{ item.notificationCount }}</div>
<div class="item_three">{{ item.completionCount }}</div>
@ -123,13 +124,9 @@
class="dangerText"
>
<span :data-url="item.fileUrl">{{ item.unitName }}</span>
<span :data-url="item.fileUrl">{{ item.riskName }}</span>
<span :data-url="item.fileUrl">{{
$filterDict("tc_yh_level", item.level)
}}</span>
<span :data-url="item.fileUrl">
{{ $filterDict("tc_yh_source", item.riskSource) }}</span
>
<span :data-url="item.fileUrl">{{ item.yhName }}</span>
<span :data-url="item.fileUrl">{{ item.level }}</span>
<span :data-url="item.fileUrl"> {{ item.yhLy }}</span>
</div>
</vue-seamless-scroll>
</div>
@ -154,13 +151,13 @@
class="ctn_item"
>
<div class="item_name" :data-url="item.fileUrl">
{{ item.depName }}
{{ item.unitName }}
</div>
<div class="item_ip" :data-url="item.fileUrl">
{{ item.ip }}
{{ item.ipAddress }}
</div>
<span class="item_num" :data-url="item.fileUrl">{{
$filterDict("tc_steam_state", item.state)
item.czState
}}</span>
</div>
</vue-seamless-scroll>
@ -242,7 +239,7 @@ import vueSeamlessScroll from "vue-seamless-scroll";
import ModuleTitle from "../../common/ModuleTitle.vue";
import ReportingStatistics from "./ReportingStatistics.vue";
// import { getSafeHazardSatistic, getNotificationList } from '@/api/common'
import { dangerList, informList } from "./data.js";
import { listAqyh, listTbwc, listZxyh, listTbcz } from "@/api/networkSecurity";
import qs from "qs";
const docx = require("docx-preview");
import axios from "axios";
@ -274,11 +271,13 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
isStatus: 1,
},
total2: 0,
queryParams2: {
pageNum: 1,
pageSize: 10,
isStatus: 1,
},
loading: true,
//
@ -450,28 +449,23 @@ export default {
* 安全隐患大屏数据
*/
safeListDP() {
listCounty().then((res) => {
listAqyh().then((res) => {
this.safetyList = res.rows;
// res.data.forEach((value, index) => {
// this.safetyList.forEach((value1, index1) => {
// if (value.type == value1.type) {
// this.safetyList[index1].value = value.count;
// }
// });
// });
});
},
/**
* 通报完成情况
*/
getTBOver() {
tbFinish().then((res) => {
console.log(res);
res.data.forEach((value1, index1) => {
this.notificationFinishList[index1].notificationCount = value1.count;
this.notificationFinishList[index1].completionCount = value1.complete;
listTbwc().then((res) => {
res.rows.forEach((value1, index1) => {
this.notificationFinishList[index1].timeRangeFlag = value1.timeName;
this.notificationFinishList[index1].notificationCount =
value1.tbCount;
this.notificationFinishList[index1].completionCount =
value1.overCount;
this.notificationFinishList[index1].completionPercent =
value1.pt * 100;
value1.overScale;
});
});
},
@ -479,7 +473,7 @@ export default {
* 最新隐患
*/
getListDanger() {
listDanger(this.queryParams).then((res) => {
listZxyh(this.queryParams).then((res) => {
this.dangerList = [...this.dangerList, ...res.rows];
this.total = res.total;
});
@ -488,8 +482,7 @@ export default {
* 通报处置
*/
getlistTb() {
listTb(this.queryParams2).then((res) => {
console.log(res, "www");
listTbcz(this.queryParams2).then((res) => {
this.informList = [...this.informList, ...res.rows];
this.total2 = res.total;
});
@ -556,6 +549,7 @@ export default {
});
return;
}
console.log(e);
this.fileExtension = e.target.dataset.url.substring(
e.target.dataset.url.lastIndexOf(".") + 1
);

@ -11,12 +11,12 @@
const IDCKeyValue = [
{
name: "IDC名称",
value: "unitName",
value: "ldcName",
},
{
name: "所属区域",
value: "areaId",
dictType: "town",
dictType: "tc_area",
},
{
name: "IP段信息",
@ -39,58 +39,58 @@ const dbdwKeyValue = [
width: 350,
},
{
value: "postCode", // 邮政 编码
value: "postalCode", // 邮政 编码
name: "邮政编码",
},
{
value: "unitProvince", // 单位地址 —省
value: "addressProvince", // 单位地址 —省
name: "单位地址—省",
},
{
value: "unitCity", // 单位地址 —市
value: "addressCity", // 单位地址 —市
name: "单位地址—市",
},
{
value: "unitCounty", // 单位地址—区 /县
value: "addressCounty", // 单位地址—区 /县
name: "单位地址—区/县",
},
{
value: "unitStreet",
value: "unitAddress",
name: "单位地址",
},
{
value: "areaCode", // 行政区域 代码
value: "countyCode", // 行政区域 代码
name: "行政区域代码",
},
{
value: "affiliation", // 隶属 关系
value: "lsGx", // 隶属 关系
name: "隶属关系",
width: 280,
},
{
value: "unitType", // 单位 类型
name: "单位类型",
dictType: "tc_unit_type",
// dictType: "tc_unit_type",
},
{
value: "tmtType", // 行业 类型
value: "industryType", // 行业 类型
name: "行业类型",
dictType: "tc_tmt_type",
// dictType: "tc_tmt_type",
},
{
value: "fuzeName", // 单位责任人—姓名
value: "fzrName", // 单位责任人—姓名
name: "单位责任人—姓名",
},
{
value: "fuzeDuty", // 单位责任人—职务/职称
value: "fzrDuty", // 单位责任人—职务/职称
name: "单位责任人—职务",
},
{
value: "fuzeTel", // 单位责任人— 办公电话
value: "fzrTel", // 单位责任人— 办公电话
name: "单位责任人—办公电话",
},
{
value: "fuzeEmail", // 单位责任人— 电子邮件
value: "fzrEmail", // 单位责任人— 电子邮件
name: "单位责任人—电子邮件",
// width: 300
},
@ -1517,7 +1517,7 @@ const dbdw = [
const zfdwKeyValue = [
{
name: "网址",
value: "url",
value: "webUrl",
},
{
name: "资产名称",
@ -4363,25 +4363,25 @@ const zfdw = [
];
const rtzKeyValue = [
{
key: "资产名称",
value: "assetName",
name: "资产名称",
value: "zcName",
},
{
key: "所属分组",
value: "group",
name: "所属单位",
value: "affUnit",
},
{
key: "IP地址",
value: "IPAddress",
name: "IP地 址",
value: "sysyemIp",
},
{
key: "操作系统",
value: "operatingSystem",
name: "操作系统",
value: "os",
width: 600,
},
{
key: "终端版本",
value: "terminalVersion",
name: "版本",
value: "versions",
},
];
const rtz = [
@ -5151,7 +5151,7 @@ const rtz = [
];
const dbxtKeyValue = [
{
value: "steamName",
value: "systemName",
name: "系统名称",
width: 450,
},
@ -5163,7 +5163,7 @@ const dbxtKeyValue = [
{
value: "safetyLevel",
name: "信息系统安全保护等级",
dictType: "tc_net_safety_level",
// dictType: "tc_net_safety_level",
},
{
value: "unitName",
@ -5171,16 +5171,16 @@ const dbxtKeyValue = [
width: 450,
},
{
value: "yewuType",
value: "businessType",
name: "业务类型",
},
{
value: "servicesArea",
value: "serviceArea",
name: "服务范围",
width: 230,
},
{
value: "servicesObj",
value: "serviceObj",
name: "服务对象",
width: 230,
},
@ -5189,40 +5189,40 @@ const dbxtKeyValue = [
name: "覆盖范围",
},
{
value: "networkNature",
value: "networkProperty",
name: "网络性质",
},
{
value: "systemSitutation",
value: "systemHlql",
name: "系统互联情况",
width: 300,
},
{
value: "useTime",
value: "startTime",
name: "投入运行使用日期",
width: 250,
},
{
value: "isRate",
value: "isLevel",
name: "系统是否分级",
dictType: "tc_yes_no",
},
{
value: "rankTime",
value: "systemDjtime",
name: "系统定级时间",
width: 200,
},
{
value: "reviewCase",
value: "psQk",
name: "专家评审情况",
},
{
value: "isParent",
value: "isHaveDep",
name: "是否有主管部门",
dictType: "tc_yes_no",
},
{
value: "rankReport",
value: "systemDjbg",
name: "系统定级报告",
},
{

@ -84,22 +84,22 @@ const yingTanZhen = [
const xitongjianceKeyValue = [
{
name: "单位名称",
value: "affUnit",
value: "unitName",
width: 450,
},
{
name: "网站/系统名称",
value: "systeamName",
value: "systemName",
width: 450,
},
{
name: "URL",
value: "url",
value: "systemUrl",
width: 450,
},
{
name: "IP地址",
value: "ipAddress",
value: "sysyemIp",
},
// {
// name: "采用端口",
@ -108,12 +108,12 @@ const xitongjianceKeyValue = [
{
name: "是否关注重点",
value: "isFocus",
dictType: "tc_yes_no",
// dictType: "tc_yes_no",
},
{
name: "等保级别",
value: "level",
dictType: "tc_net_safety_level",
// dictType: "tc_net_safety_level",
},
// {
// key: '网站联系人',

@ -26,9 +26,13 @@
>
{{ item.name }}</span
>
<el-progress
<!-- <el-progress
:percentage="item.value || 0"
:color="item.color"
></el-progress> -->
<el-progress
:percentage="Number(item.info) || 0"
:color="item.color"
></el-progress>
<div class="StatisticsText">
{{ item.info | commaFilter }}
@ -144,17 +148,13 @@
</template>
</el-table>
<div style="text-align: right">
<el-pagination
:current-page="queryData.pageNum"
:page-sizes="[10, 20, 30, 50, 100]"
:page-size="queryData.pageSize"
layout="total, sizes, prev, pager, next, jumper"
<paginations
v-show="total > 0"
:total="total"
popper-class="select_bottom"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
:page.sync="queryData.pageNum"
:limit.sync="queryData.pageSize"
@pagination="showAttack"
/>
</div>
</div>
<span slot="footer" class="dialog-footer">
@ -176,27 +176,21 @@
<div style="padding: 0 0 0 80px; height: 730px; overflow: auto">
<el-row>
<el-col :span="3" class="detail_title">标题</el-col>
<el-col :span="21" class="detail_text">{{
rowDta.sentimentName
}}</el-col>
<el-col :span="21" class="detail_text">{{ rowDta.title }}</el-col>
</el-row>
<el-row>
<el-col :span="3" class="detail_title">内容</el-col>
<el-col :span="21" class="detail_text">{{
rowDta.sentimentContent || ""
rowDta.content || ""
}}</el-col>
</el-row>
<el-row>
<el-col :span="3" class="detail_title">来源</el-col>
<el-col :span="21" class="detail_text">{{
$filterDict("tc_yq_media", rowDta.source)
}}</el-col>
<el-col :span="21" class="detail_text">{{ rowDta.source }}</el-col>
</el-row>
<el-row>
<el-col :span="3" class="detail_title">时间</el-col>
<el-col :span="21" class="detail_text">{{
rowDta.publishTime
}}</el-col>
<el-col :span="21" class="detail_text">{{ rowDta.dateTime }}</el-col>
</el-row>
</div>
<span slot="footer" class="dialog-footer">
@ -230,6 +224,12 @@ import { title } from "../../../../settings";
//=======
import { yuqingChart, yuqingMsgStats, dtsxListGet } from "@/api/publicOpinion";
import { yuqingListA, getWlyq } from "@/api/consensusList";
import {
listYqzs,
listYqxxlnum,
listYqxxltj,
getYqxxltj,
} from "@/api/netWorkYq";
export default {
components: {
@ -256,36 +256,36 @@ export default {
// url: require('@/assets/sentimeent/icon-1.png')
// },
{
value: 2,
value: 0,
name: "本地相关信息量",
info: "0",
color: "#4799f8",
url: require("@/assets/sentimeent/舆情icon-2.png"),
type: 3,
type: 1,
},
{
value: 3,
value: 0,
name: "本地敏感信息量",
info: "0",
color: "#ff5432",
url: require("@/assets/sentimeent/舆情icon-5.png"),
type: 1,
type: 2,
},
{
value: 4,
value: 0,
name: "推送预警信息量",
info: "0",
color: "#ffed61",
url: require("@/assets/sentimeent/舆情icon-4.png"),
type: 4,
type: 3,
},
{
value: 5,
value: 0,
name: "聚焦本地媒体量",
info: "0",
color: "#20b028",
url: require("@/assets/sentimeent/舆情icon-3.png"),
type: 5,
type: 4,
},
],
Warning: [
@ -347,7 +347,8 @@ export default {
queryData: {
pageNum: 1,
pageSize: 10,
sentimentType: "",
type: "",
isStatus: 1,
},
//
positiveOpinion: [],
@ -375,76 +376,8 @@ export default {
clearInterval(this.attackTime); //
},
mounted() {
// publicOpinionTrendChart().then((res) => {
// this.opinionTime = this.initTime()
// this.positiveOpinion = [225389, 190638, 194116, 175397, 173355, 163703, 196261]
// this.negativeOpinion = [20902, 22124, 21617, 20806, 22561, 21754, 22062]
// let str = ''
// res['T_SUBJECT_SEVEN_DAY[]'] = res['T_SUBJECT_SEVEN_DAY[]']?.length > 0 ? res['T_SUBJECT_SEVEN_DAY[]'] : []
// // res['T_SUBJECT_SEVEN_DAY[]'].forEach((item) => {
// // str = Number(item.created_time.split('-')[1]) + '.' + Number(item.created_time.split('-')[2])
// // if (!this.opinionTime.includes(str)) {
// // this.opinionTime.unshift(str)
// // }
// // })
// //
// res['T_SUBJECT_SEVEN_DAY[]'].forEach((item) => {
// str = Number(item.created_time.split('-')[1]) + '.' + Number(item.created_time.split('-')[2])
// if (this.opinionTime.includes(str)) {
// const index = this.opinionTime.findIndex(item => item === str)
// this.positiveOpinion[index] = 0
// this.negativeOpinion[index] = 0
// }
// })
// res['T_SUBJECT_SEVEN_DAY[]'].forEach((item) => {
// str = Number(item.created_time.split('-')[1]) + '.' + Number(item.created_time.split('-')[2])
// this.opinionTime.forEach((time, index) => {
// if (time === str) {
// if (item.orientation === '1' || item.orientation === '3') {
// this.positiveOpinion[index] += Number(item.count)
// }
// if (item.orientation === '2') {
// this.negativeOpinion[index] = item.count
// }
// }
// })
// })
// this.lineBox()
// })
// statisticsOfPublicOpinionInformation().then(res => {
// res['T_GET_PARAMETER[]']?.forEach(item => {
// this.Statistics.forEach(e => {
// if (e.name === this.obj[item.NAME]) {
// e.value = Number(item.CODE) / (Number(res['T_GET_PARAMETER[]'][2].CODE) + Number(res['T_GET_PARAMETER[]'][3].CODE) + Number(res['T_GET_PARAMETER[]'][4].CODE) + Number(res['T_GET_PARAMETER[]'][5].CODE)) * 100 || 0
// e.info = Number(item.CODE) || 0
// }
// })
// if (item.NAME === 'newsCount') {
// this.newsCount = item.CODE
// }
// if (item.NAME === 'warningCount') {
// this.warningCount = item.CODE
// }
// })
// })
// allProjects().then(res => {
// res['[]']?.forEach(item => {
// if (item.T_ALL_PROJECTS.subject_name === '1') {
// this.obj[''] = item.T_ALL_PROJECTS.subject_id
// }
// if (item.T_ALL_PROJECTS.subject_name === '') {
// this.obj[''] = ''
// }
// if (item.T_ALL_PROJECTS.subject_name === '') {
// this.obj[''] = ''
// }
// if (item.T_ALL_PROJECTS.subject_name === '') {
// this.obj[''] = ''
// }
// })
// })
this.changeBtn();
this.getFilterData();
// this.getFilterData();
//
this.getyqData();
},
@ -462,23 +395,23 @@ export default {
}
return timeArr;
},
getFilterData() {
this.filterTime = setInterval(() => {
this.getData();
}, 600000);
},
getData() {
statisticsOfPublicOpinionInformation().then((res) => {
res["T_GET_PARAMETER[]"].forEach((item) => {
if (item.NAME === "newsCount") {
this.newsCount = item.CODE;
}
if (item.NAME === "warningCount") {
this.warningCount = item.CODE;
}
});
});
},
// getFilterData() {
// this.filterTime = setInterval(() => {
// this.getData();
// }, 600000);
// },
// getData() {
// statisticsOfPublicOpinionInformation().then((res) => {
// res["T_GET_PARAMETER[]"].forEach((item) => {
// if (item.NAME === "newsCount") {
// this.newsCount = item.CODE;
// }
// if (item.NAME === "warningCount") {
// this.warningCount = item.CODE;
// }
// });
// });
// },
//
//
mouseOver() {
@ -498,60 +431,29 @@ export default {
},
//
getyqData() {
yuqingChart().then((res) => {
listYqzs().then((res) => {
console.log(res);
this.allDate = res.data;
this.allDate = res.rows;
//
this.allDate.sort(function (a, b) {
return new Date(a.publishTime) - new Date(b.publishTime);
return new Date(a.dateTime) - new Date(b.dateTime);
});
let arr = [];
res.data.forEach((value) => {
this.allDate.forEach((value) => {
//
arr.push(value.publishTime);
});
//
this.date = arr.filter(function (item, index) {
//==
return arr.indexOf(item) === index;
});
this.date.forEach((value) => {
this.newDate.push(value.slice(6));
let arr2 = res.data.filter((m) => {
return m.publishTime == value;
});
console.log(arr2);
arr2.forEach((e) => {
if (e.type == 1 && arr2.length < 2) {
this.negativeOpinion.push(e.count);
this.positiveOpinion.push(0);
} else if (e.type == 2 && arr2.length < 2) {
this.positiveOpinion.push(e.count);
this.negativeOpinion.push(0);
} else if (e.type == 1 && arr2.length == 2) {
this.negativeOpinion.push(e.count);
} else if (e.type == 2 && arr2.length == 2) {
this.positiveOpinion.push(e.count);
}
});
this.newDate.push(this.$moment(value.dateTime).format("MM-DD"));
this.positiveOpinion.push(value.count1);
this.negativeOpinion.push(value.count2);
});
this.lineBox();
});
},
//
getyqMsgStats() {
yuqingMsgStats().then((res) => {
let arr = res.data;
if (!arr) return;
this.Statistics.forEach((value1, index1) => {
arr.forEach((value2, index2) => {
if (value1.type == value2.type) {
this.Statistics[index1].info = value2.count;
this.Statistics[index1].value = value2.pt;
return;
}
});
});
listYqxxlnum().then((res) => {
this.Statistics[0].info = res.rows[0].count1;
this.Statistics[1].info = res.rows[0].count2;
this.Statistics[2].info = res.rows[0].count3;
this.Statistics[3].info = res.rows[0].count4;
});
dtsxListGet({ isStatus: 1 }).then((res) => {
@ -698,82 +600,42 @@ export default {
//
clickDetails(val, type) {
this.tableHeader = [
{ key: "标题", value: "sentimentName" },
{ key: "标题", value: "title" },
{ key: "来源", width: 120, value: "source" },
{ key: "时间", width: 200, value: "publishTime" },
{ key: "时间", width: 200, value: "dateTime" },
];
this.queryData = {
pageNum: 1,
pageSize: 10,
sentimentType: type,
type,
isStatus: 1,
};
this.dialogTitle = val;
this.wlyqList();
},
// list
wlyqList() {
yuqingListA(this.queryData).then((res) => {
console.log(res);
listYqxxltj(this.queryData).then((res) => {
this.currentPageData = res.rows;
this.currentPageData.forEach((value, index) => {
this.currentPageData[index].source = this.$filterDict(
"tc_yq_media",
value.source
);
});
this.total = res.total;
this.dialogStatus = true;
});
},
// [0~10],[10~20]...,
setCurrentPageData() {
const begin = (this.currentPage - 1) * this.pageSize;
const end = this.currentPage * this.pageSize;
this.currentPageData = this.tableData.slice(begin, end);
},
handleSizeChange(val) {
this.queryData.pageSize = val;
this.wlyqList();
},
handleCurrentChange(val) {
this.queryData.pageNum = val;
//
showAttack(e) {
console.log(e);
this.queryData.pageNum = e.page;
this.queryData.pageSize = e.limit;
this.wlyqList();
},
rowClick(row) {
this.dialogDetails = true;
getWlyq(row.id).then((res) => {
getYqxxltj(row.id).then((res) => {
this.rowDta = res.data;
});
},
dialogClose() {
this.dialogStatus = false;
this.pageSize = 20;
this.currentPage = 1;
},
format(data) {
var time = new Date(data);
var y = time.getFullYear();
var m = time.getMonth() + 1;
var d = time.getDate();
var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds();
return (
y +
"-" +
this.add0(m) +
"-" +
this.add0(d) +
" " +
this.add0(hh) +
":" +
this.add0(mm) +
":" +
this.add0(ss)
);
},
add0(m) {
return m < 10 ? "0" + m : m;
},
},
};

@ -34,11 +34,12 @@ import { mediaList } from "@/api/common";
import { echartsJump } from "../../../../../public/static/echartsJump";
import { yuqingTypes } from "@/api/publicOpinion";
import { listMtlx } from "@/api/netWorkYq";
export default {
data() {
return {
types: [ 1, 2, 3, 4, 5, 6, 7,8,],
types: [1, 2, 3, 4, 5, 6, 7, 8],
piedata: [
{
name: "报刊",
@ -80,26 +81,19 @@ export default {
},
mounted() {
// mediaList().then(res => {
// this.piedata = []
// res['T_MEDIA_LIST[]'].forEach(media => {
// this.piedata.push({ name: media.source_type_name, value: media.rate })
// })
// this.pieBox()
// })
this.getData();
},
methods: {
getData() {
yuqingTypes({ type: "1" }).then((res) => {
res.data.forEach((value, index) => {
if(!value) return
this.types.forEach((value1, index1) => {
if (value.type == value1) {
this.piedata[index1].value = value.pt;
listMtlx().then((res) => {
res.rows.forEach((value, index) => {
this.piedata.forEach((value1, index1) => {
if (value.name == value1.name) {
this.piedata[index1].value = value.zb;
}
});
});
console.log(this.piedata);
this.pieBox();
});
},

@ -34,6 +34,8 @@
import { tagsList } from "@/api/common";
import { echartsJump } from "../../../../../public/static/echartsJump";
import { yuqingTypes } from "@/api/publicOpinion";
import { listSslx } from "@/api/netWorkYq";
export default {
data() {
return {
@ -120,19 +122,12 @@ export default {
this.getData();
},
methods: {
filterUrl(e) {
const result = this.imgList.filter((item) => item.type == e);
console.log(result[0]);
return result[0].url;
},
getData() {
yuqingTypes({ type: "2" }).then((res) => {
res.data.forEach((value, index) => {
console.log(value);
if(!value) return
this.imgList.forEach((value1, index1) => {
if (value.type == value1.type) {
this.piedata[index1].value = value.pt;
listSslx().then((res) => {
res.rows.forEach((value, index) => {
this.piedata.forEach((value1, index1) => {
if (value.name == value1.name) {
this.piedata[index1].value = value.zb;
}
});
});

Loading…
Cancel
Save