杜函宇 1 year ago
commit cdac35518f

@ -1,129 +1,247 @@
import request from '@/utils/request.js' import request from "@/utils/request.js";
// 网络安全官 // 网络安全官
export function listSafetyadmin(query) { export function listSafetyadmin(query) {
return request({ return request({
url: '/zongzhi/safetyadmin/list', url: "/zongzhi/safetyadmin/list",
method: 'get', method: "get",
params: query params: query,
}) });
}
export function listTown(query) {
return request({
url: "/zongzhi/town/list",
method: "get",
params: query,
});
} }
// 查询网评员列表 // 查询网评员列表
export function listCommentator(query) { export function listCommentator(query) {
return request({ return request({
url: '/zongzhi/commentator/list', url: "/zongzhi/commentator/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询网络平台列表 // 查询网络平台列表
export function listPingtai(query) { export function listPingtai(query) {
return request({ return request({
url: '/zongzhi/pingtai/list', url: "/zongzhi/pingtai/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询网络安全支持单位列表 // 查询网络安全支持单位列表
export function listNetSafetyZcUnit(query) { export function listNetSafetyZcUnit(query) {
return request({ return request({
url: '/zongzhi/supportunit/list', url: "/zongzhi/supportunit/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询网络民情责任人列表 // 查询网络民情责任人列表
export function listPrincipal(query) { export function listPrincipal(query) {
return request({ return request({
url: '/zongzhi/principal/list', url: "/zongzhi/principal/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询网络文明自愿者列表 // 查询网络文明自愿者列表
export function listVolunteer(query) { export function listVolunteer(query) {
return request({ return request({
url: '/zongzhi/volunteer/list', url: "/zongzhi/volunteer/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询网络文章列表 // 查询网络文章列表
export function listArticle(query) { export function listArticle(query) {
return request({ return request({
url: '/zongzhi/article/list', url: "/zongzhi/article/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询重点企业名录列表 // 查询重点企业名录列表
export function listEnterprise(query) { export function listEnterprise(query) {
return request({ return request({
url: '/zongzhi/enterprise/list', url: "/zongzhi/enterprise/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询重点领域监管列表 // 查询重点领域监管列表
export function listDomain(query) { export function listDomain(query) {
return request({ return request({
url: '/zongzhi/domain/list', url: "/zongzhi/domain/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询重点工作项目列表 // 查询重点工作项目列表
export function listWork(query) { export function listWork(query) {
return request({ return request({
url: '/zongzhi/work/list', url: "/zongzhi/work/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询工作动态列表 // 查询工作动态列表 dongtai/list
export function listDongtai(query) { export function listDongtai(query) {
return request({ return request({
url: '/zongzhi/dongtai/list', url: "/zongzhi/managescreen/workdynamics",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询等保系统列表 // 查询等保系统列表
export function listSystem(query) { export function listSystem(query) {
return request({ return request({
url: '/zongzhi/system/list', url: "/zongzhi/system/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询等保单位列表 // 查询等保单位列表
export function listUnit(query) { export function listUnit(query) {
return request({ return request({
url: '/zongzhi/dengbaounit/list', url: "/zongzhi/dengbaounit/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询政府网站列表 // 查询政府网站列表
export function listWeb(query) { export function listWeb(query) {
return request({ return request({
url: '/zongzhi/web/list', url: "/zongzhi/web/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询IDC单位列表 // 查询IDC单位列表
export function listIDCunit(query) { export function listIDCunit(query) {
return request({ return request({
url: '/zongzhi/idcunit/list', url: "/zongzhi/idcunit/list",
method: 'get', method: "get",
params: query params: query,
}) });
}
// 查询数据来源列表
export function listSource(query) {
return request({
url: "/zongzhi/source/list",
method: "get",
params: query,
});
}
export function saftyscreenSupervise() {
return request({
url: "/zongzhi/saftyscreen/supervise",
method: "get",
});
}
// 受攻击IPTop5
export function saftyscreenUnattack() {
return request({
url: "/zongzhi/saftyscreen/unattack",
method: "get",
});
}
// 安全检测数据统计
export function saftyscreenSafety() {
return request({
url: "/zongzhi/saftyscreen/safety",
method: "get",
});
}
// 查询安全检测列表
export function listDetection(query) {
return request({
url: "/zongzhi/detection/list",
method: "get",
params: query,
});
}
// 网络平台
export function listPlatform(query) {
return request({
url: "/zongzhi/pingtai/list",
method: "get",
params: query,
});
}
// 查询安全检测详细
export function getDetection(id) {
return request({
url: "/zongzhi/detection/" + id,
method: "get",
});
}
// 查询安全隐患列表
export function listDanger(query) {
return request({
url: "/zongzhi/danger/list",
method: "get",
params: query,
});
}
// 清朗专项行动动态
export function zhuanxiang(query) {
return request({
url: "/zongzhi/zhuanxiang/list",
method: "get",
params: query,
});
}
// 查询安全隐患详细
export function getDanger(id) {
return request({
url: "/zongzhi/danger/" + id,
method: "get",
});
}
// 查询通报列表
export function listTb(query) {
return request({
url: "/zongzhi/tb/list",
method: "get",
params: query,
});
}
// 查询通报详细
export function getTb(id) {
return request({
url: "/zongzhi/tb/" + id,
method: "get",
});
}
// 举报总数和处置率
export function networkreport() {
return request({
url: "/zongzhi/managescreen/networkreport",
method: "get",
});
}
// 清朗专项行动数据统计 /zongzhi/managescreen/action
export function managescreen() {
return request({
url: "/zongzhi/managescreen/action",
method: "get",
});
} }

@ -18,7 +18,7 @@
></el-table-column> ></el-table-column>
<el-table-column v-else :label="item.name" :show-overflow-tooltip="true"> <el-table-column v-else :label="item.name" :show-overflow-tooltip="true">
<template scope="scope"> <template scope="scope">
{{ $filterDict(item.dictType,scope.row[item.value]) }} {{ $filterDict(item.dictType,scope.row[item.value],item.dictType == 'town' ? true : false) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -1,23 +1,40 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-08-21 08:54:24
* @LastEditors: JC9527
* @LastEditTime: 2023-08-21 15:29:23
*/
import { getDictList } from '@/api/zongzhi/common.js' import { getDictList } from '@/api/zongzhi/common.js'
import { listTown } from '@/api/zongzhi/st.js'
const dict = { const dict = {
state: { state: {
dictObject: {} dictObject: {},
townList: []
}, },
mutations: { mutations: {
SET_DICT: (state, dict) => { SET_DICT: (state, dict) => {
state.dictObject = dict state.dictObject = dict
},
SET_TOWN: (state, town) => {
state.townList = town
} }
}, },
actions: { actions: {
getDictType({ commit }) { getDictType({ commit }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const query = { const query = {
list: 'sys_user_sex,tc_net_sx,tc_yq_media,tc_enter_type,tc_inlet_yewu,tc_item_type,tc_yq_type,tc_event_type,tc_cy_type,tc_yq_state' list: 'sys_user_sex,tc_net_sx,tc_yq_media,tc_enter_type,tc_inlet_yewu,tc_item_type,tc_net_safety_level,tc_yes_no,tc_unit_type,tc_tmt_type,tc_db_steam_state,tc_attack_type,tc_yh_level,tc_yh_source,tc_yq_type,tc_event_type,tc_cy_type,tc_yq_state'
} }
getDictList(query) getDictList(query)
.then((res) => { .then((res) => {
// console.log(res)
commit('SET_DICT', res.data) commit('SET_DICT', res.data)
resolve() getownList().then((town) => {
commit('SET_TOWN', town)
resolve()
})
}) })
.catch((error) => { .catch((error) => {
reject(error) reject(error)
@ -26,5 +43,20 @@ const dict = {
} }
} }
} }
// 获取各镇/村
function getownList() {
return new Promise((resolve, reject) => {
const lsit = []
listTown({ pageNum: 1, pageSize: 200 })
.then((res) => {
res.rows.forEach((item) => {
lsit.push({ value: item.id, label: item.name })
})
resolve(lsit)
})
.catch((error) => {
reject(error)
})
})
}
export default dict export default dict

@ -1,12 +1,25 @@
import store from '@/store' import store from '@/store'
export function filterDict(type, value) { export function filterDict(type, value, isTown = false) {
const dict = store.getters.dictObject if (!value) return
// console.log(dict, type, value) if (isTown) {
// debugger return filterTown(value)
const result = dict[type].filter((item) => item.dictValue == value) } else {
const dict = store.getters.dictObject
const result = dict[type].filter((item) => item.dictValue == value)
if (result.length > 0) {
return result[0].dictLabel
} else {
return '未匹配到'
}
}
}
export function filterTown(id) {
const townList = store.state.dict.townList
const result = townList.filter((item) => item.value == id)
if (result.length > 0) { if (result.length > 0) {
return result[0].dictLabel return result[0].label
} else { } else {
return '未匹配到' return '未匹配到'
} }

@ -3,7 +3,7 @@
* Copyright (c) 2019 safesoft * Copyright (c) 2019 safesoft
*/ */
const baseURL = process.env.VUE_APP_BASE_API const baseURL = process.env.VUE_APP_BASE_API2
// 日期格式化 // 日期格式化
export function parseTime(time, pattern) { export function parseTime(time, pattern) {
@ -110,7 +110,7 @@ export function selectDictLabels(datas, value, separator) {
// 通用下载方法 // 通用下载方法
export function download(fileName) { export function download(fileName) {
window.location.href = baseURL + '/common/download?fileName=' + encodeURI(fileName) + '&delete=' + true window.location.href = baseURL + '/zongzhi/common/download?fileName=' + encodeURI(fileName) + '&delete=' + true
} }
// 字符串格式化(%s ) // 字符串格式化(%s )

@ -1,8 +1,8 @@
<!-- <!--
* @Author: lough * @Author: lough
* @Date: 2021-12-21 14:12:54 * @Date: 2021-12-21 14:12:54
* @LastEditors: lough * @LastEditors: JC9527
* @LastEditTime: 2022-09-08 10:26:49 * @LastEditTime: 2023-08-21 16:54:37
* @Description: * @Description:
--> -->
<template> <template>
@ -30,7 +30,7 @@
</template> </template>
<script> <script>
import { getreportNum } from '@/api/common' import { networkreport } from '@/api/zongzhi/st.js'
export default { export default {
data() { data() {
return { return {
@ -39,12 +39,18 @@ export default {
} }
}, },
mounted() { mounted() {
this.reportTotalCount = 45 // this.reportTotalCount = 45
this.completedPercent = 100 // this.completedPercent = 100
// getreportNum().then(res => { // getreportNum().then(res => {
// this.reportTotalCount = res.data.reportTotalCount // this.reportTotalCount = res.data.reportTotalCount
// this.completedPercent = res.data.completedPercent // this.completedPercent = res.data.completedPercent
// }) // })
networkreport().then(res => {
this.reportTotalCount = res.data.count
this.completedPercent = res.data.handle
});
// console.log(data)
} }
} }

@ -3,7 +3,7 @@
* @Author: kery.chen * @Author: kery.chen
* @Description: 总体概览左侧 * @Description: 总体概览左侧
* @Date: 2021-11-30 11:08:50 * @Date: 2021-11-30 11:08:50
* @LastEditTime: 2022-08-22 17:25:45 * @LastEditTime: 2023-08-21 16:01:49
* @FilePath : \\tcingiocpro\\src\\views\\privateOrder\\ecosphere\\components\\componentLeft.vue * @FilePath : \\tcingiocpro\\src\\views\\privateOrder\\ecosphere\\components\\componentLeft.vue
--> -->
<template> <template>
@ -155,8 +155,9 @@
@click.stop="dynamicClick(item)" @click.stop="dynamicClick(item)"
> >
<div class="item_txt"> <div class="item_txt">
<span :data-obj="item.materialsName"> <!-- materialsName -->
{{ item.materialsName }} <span :data-obj="item.name">
{{ item.name }}
</span> </span>
</div> </div>
<div class="item_bottom"> <div class="item_bottom">
@ -201,7 +202,7 @@
@mouseover="zoologyMouseOver(idx)" @mouseover="zoologyMouseOver(idx)"
@mouseleave="zoologyMouseLeave" @mouseleave="zoologyMouseLeave"
@click=" @click="
networkPlatformClick(item.name); networkPlatformClick(item.name,item.type);
currentIndex = idx; currentIndex = idx;
" "
> >
@ -482,7 +483,7 @@
<script> <script>
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 { listEnterprise, listDomain, listWork, listDongtai } from '@/api/zongzhi/st.js' import { listEnterprise, listDomain, listWork, listDongtai, listPlatform } from '@/api/zongzhi/st.js'
import { import {
getBilibiliData, getBilibiliData,
getRedBookData, getRedBookData,
@ -534,24 +535,28 @@ export default {
name: '网站', name: '网站',
num: 0, num: 0,
subList: [], subList: [],
type:1,
url: require('@/assets/ecosphere/icon-网站.png') url: require('@/assets/ecosphere/icon-网站.png')
}, },
{ {
name: '抖音', name: '抖音',
num: 0, num: 0,
subList: [], subList: [],
type:2,
url: require('@/assets/ecosphere/icon-抖音.png') url: require('@/assets/ecosphere/icon-抖音.png')
}, },
{ {
name: '微信', name: '微信',
num: 0, num: 0,
subList: [], subList: [],
type:3,
url: require('@/assets/ecosphere/icon-微信.png') url: require('@/assets/ecosphere/icon-微信.png')
}, },
{ {
name: '微博', name: '微博',
num: 0, num: 0,
subList: [], subList: [],
type:4,
url: require('@/assets/ecosphere/icon微博.png') url: require('@/assets/ecosphere/icon微博.png')
}, },
@ -559,24 +564,28 @@ export default {
name: '今日头条', name: '今日头条',
num: 0, num: 0,
subList: [], subList: [],
type:5,
url: require('@/assets/ecosphere/icon-头条.png') url: require('@/assets/ecosphere/icon-头条.png')
}, },
{ {
name: '快手', name: '快手',
num: 0, num: 0,
subList: [], subList: [],
type:6,
url: require('@/assets/ecosphere/icon-快手.png') url: require('@/assets/ecosphere/icon-快手.png')
}, },
{ {
name: 'B站', name: 'B站',
num: 0, num: 0,
subList: [], subList: [],
type:7,
url: require('@/assets/ecosphere/icon-b站.png') url: require('@/assets/ecosphere/icon-b站.png')
}, },
{ {
name: '小红书', name: '小红书',
num: 0, num: 0,
subList: [], subList: [],
type:8,
url: require('@/assets/ecosphere/icon-小红书.png') url: require('@/assets/ecosphere/icon-小红书.png')
} }
], ],
@ -634,16 +643,17 @@ export default {
methods: { methods: {
// //
getDynamicData() { getDynamicData() {
listDongtai(this.dtParams).then(res => { listDongtai().then(res => {
this.dynamicList = res.rows console.log(res)
this.dtTotal = res.total this.dynamicList = res.data
// this.dtTotal = res.total
}) })
// const tableObject = require('./data.json') // const tableObject = require('./data.json')
// this.dynamicList = tableObject[''] // this.dynamicList = tableObject['']
}, },
// //
networkPlatformClick(val) { async networkPlatformClick(val,type) {
this.currentPage = 1 this.currentPage = 1
this.pageSize = 10 this.pageSize = 10
this.dialogTitle = val this.dialogTitle = val
@ -653,9 +663,16 @@ export default {
this.tableHeader = ['账号ID', 'URL'] this.tableHeader = ['账号ID', 'URL']
this.zoologyWidth = '1000px' this.zoologyWidth = '1000px'
this.tableData = [] this.tableData = []
this.tableData = [ // this.tableData = [
{ 账号ID: 1, URL: 'https://www.bilibili.com/' } // { ID: 1, URL: 'https://www.bilibili.com/' }
] // ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['URL'] = item.dns
this.tableData.push(obj)
})
// res['T_DATA_BILIBILI[]'].forEach((item) => { // res['T_DATA_BILIBILI[]'].forEach((item) => {
// this.tableData.push({ ID: item.account_id, URL: item.url }) // this.tableData.push({ ID: item.account_id, URL: item.url })
// }) // })
@ -666,12 +683,19 @@ export default {
this.tableHeader = ['账号ID', 'URL'] this.tableHeader = ['账号ID', 'URL']
this.zoologyWidth = '1000px' this.zoologyWidth = '1000px'
this.tableData = [] this.tableData = []
this.tableData = [ // this.tableData = [
{ 账号ID: 1, URL: 'https://www.xiaohongshu.com/explore' } // { ID: 1, URL: 'https://www.xiaohongshu.com/explore' }
] // ]
// res['T_DATA_RED_BOOK[]'].forEach((item) => { // res['T_DATA_RED_BOOK[]'].forEach((item) => {
// this.tableData.push({ ID: item.account_id, URL: item.url }) // this.tableData.push({ ID: item.account_id, URL: item.url })
// }) // })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['URL'] = item.dns
this.tableData.push(obj)
})
this.networkPlatformData() this.networkPlatformData()
// }) // })
} else if (val === '今日头条') { } else if (val === '今日头条') {
@ -679,9 +703,16 @@ export default {
this.tableHeader = ['账号ID', '简介'] this.tableHeader = ['账号ID', '简介']
this.zoologyWidth = '1200px' this.zoologyWidth = '1200px'
this.tableData = [] this.tableData = []
this.tableData = [ // this.tableData = [
{ 账号ID: 1, 简介: '今日头条是北京字节跳动科技有限公司开发的一款基于数据挖掘的推荐引擎产品为用户推荐信息、提供连接人与信息的服务的产品。由张一鸣于2012年3月创建2012年8月发布第一个版本。' } // { ID: 1, : '2012320128' }
] // ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['简介'] = item.intro
this.tableData.push(obj)
})
// res['T_DATA_TODAY_HEADLINE[]'].forEach((item) => { // res['T_DATA_TODAY_HEADLINE[]'].forEach((item) => {
// this.tableData.push({ // this.tableData.push({
// ID: item.account_id, // ID: item.account_id,
@ -695,9 +726,16 @@ export default {
this.tableHeader = ['账号ID', '简介'] this.tableHeader = ['账号ID', '简介']
this.zoologyWidth = '1000px' this.zoologyWidth = '1000px'
this.tableData = [] this.tableData = []
this.tableData = [ // this.tableData = [
{ 账号ID: 1, 简介: '快手是北京快手科技有限公司旗下的产品。快手 [1-2]的前身叫“GIF快手”诞生于2011年3月最初是一款用来制作、分享GIF图片的手机应用。2012年11月快手从纯粹的工具应用转型为短视频社区用于用户记录和分享生产、生活的平台。后来随着智能手机、平板电脑的普及和移动流量成本的下降快手在2015年以后迎来市场' } // { ID: 1, : ' [1-2]GIF20113GIF2012112015' }
] // ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['简介'] = item.intro
this.tableData.push(obj)
})
// res['T_DATA_QUICK_WORKER[]'].forEach((item) => { // res['T_DATA_QUICK_WORKER[]'].forEach((item) => {
// this.tableData.push({ // this.tableData.push({
// ID: item.account_id, // ID: item.account_id,
@ -711,9 +749,16 @@ export default {
this.tableHeader = ['账号ID', '行业属性'] this.tableHeader = ['账号ID', '行业属性']
this.zoologyWidth = '1000px' this.zoologyWidth = '1000px'
this.tableData = [] this.tableData = []
this.tableData = [ // this.tableData = [
{ 账号ID: 1, 行业属性: '自媒体' } // { ID: 1, : '' }
] // ]
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号ID'] = item.name
obj['行业属性'] = this.getProps(item.props)
this.tableData.push(obj)
})
// res['T_DATA_WECHAT[]'].forEach((item) => { // res['T_DATA_WECHAT[]'].forEach((item) => {
// this.tableData.push({ // this.tableData.push({
// ID: item.account_id, // ID: item.account_id,
@ -727,12 +772,21 @@ export default {
this.tableHeader = ['网站名称', '真实IP', '网站域名', '备案许可证号'] this.tableHeader = ['网站名称', '真实IP', '网站域名', '备案许可证号']
this.zoologyWidth = '2000px' this.zoologyWidth = '2000px'
this.tableData = [] this.tableData = []
this.tableData.push({ // this.tableData.push({
网站名称: '百度', // : '',
真实IP: '220.181.111.188', // IP: '220.181.111.188',
网站域名: 'https://www.xiaohongshu.com/explore', // : 'https://www.xiaohongshu.com/explore',
备案许可证号: '京ICP证030173号', // : 'ICP030173',
numOrder: 1 // numOrder: 1
// })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['网站名称'] = item.name
obj['真实IP'] = item.ipAddress
obj['网站域名'] = item.dns
obj['备案许可证号'] = item.licenceNum
this.tableData.push(obj)
}) })
// res['T_big_screen_website_data[]'].forEach((item) => { // res['T_big_screen_website_data[]'].forEach((item) => {
// const startIndex = item.licence_num.indexOf('') // const startIndex = item.licence_num.indexOf('')
@ -754,10 +808,18 @@ export default {
this.zoologyWidth = '1000px' this.zoologyWidth = '1000px'
this.tableData = [] this.tableData = []
// res['T_big_screen_weibo_data[]'].forEach((item) => { // res['T_big_screen_weibo_data[]'].forEach((item) => {
this.tableData.push({ // this.tableData.push({
账号名称: '大红矛', // : '',
认证: '微博原创视频博主', // : '',
地区: '北京' // : ''
// })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {}
obj['账号名称'] = item.name
obj['认证'] = item.authentication
obj['地区'] = item.area
this.tableData.push(obj)
}) })
// }) // })
this.networkPlatformData() this.networkPlatformData()
@ -768,16 +830,42 @@ export default {
this.zoologyWidth = '1500px' this.zoologyWidth = '1500px'
this.tableData = [] this.tableData = []
// res['T_big_screen_tik_tok[]'].forEach((item) => { // res['T_big_screen_tik_tok[]'].forEach((item) => {
this.tableData.push({ // this.tableData.push({
账号: '1124693722', // : '1124693722',
简介: '无', // : '',
粉丝数: 25 // : 25
})
// }) // })
let res = await listPlatform({type:type});
res.rows.map((item)=>{
let obj = {};
obj['账号'] = item.name;
obj['简介'] = item.intro;
obj['粉丝数'] = item.fansNum;
this.tableData.push(obj)
})
this.tableData.sort((a, b) => b.粉丝数 - a.粉丝数) this.tableData.sort((a, b) => b.粉丝数 - a.粉丝数)
this.networkPlatformData()
// }) // })
} }
this.networkPlatformData()
},
getProps(props){
switch(props){
case 1:
return '房产';
case 2:
return '汽车';
case 3:
return '自媒体';
case 4:
return '餐饮';
case 5:
return '电子竞技';
case 6:
return '财务'
default :
break;
}
}, },
networkPlatformData() { networkPlatformData() {
this.total = this.tableData.length this.total = this.tableData.length

@ -3,7 +3,7 @@
* @Author: kery.chen * @Author: kery.chen
* @Description: 总体概览右侧 * @Description: 总体概览右侧
* @Date: 2021-11-30 11:08:50 * @Date: 2021-11-30 11:08:50
* @LastEditTime: 2022-11-15 13:46:59 * @LastEditTime: 2023-08-22 08:57:33
* @FilePath : \\tcingiocpro\\src\\views\\privateOrder\\ecosphere\\components\\componentRight.vue * @FilePath : \\tcingiocpro\\src\\views\\privateOrder\\ecosphere\\components\\componentRight.vue
--> -->
<template> <template>
@ -162,7 +162,9 @@
window.JSZip = require('jszip') window.JSZip = require('jszip')
import { qlzxdtData } from './json' import { qlzxdtData } from './json'
import { getreportNum } from '@/api/common' import { getreportNum } from '@/api/common'
import { zhuanxiang, managescreen } from '@/api/zongzhi/st.js'
import { echartsJump } from '../../../../../public/static/echartsJump' import { echartsJump } from '../../../../../public/static/echartsJump'
import { download } from "@/utils/safesoft"
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from 'vue-seamless-scroll'
import image from '../../../../assets/ecosphere/饼图标注.png' import image from '../../../../assets/ecosphere/饼图标注.png'
import ModuleTitle from '../../common/ModuleTitle.vue' import ModuleTitle from '../../common/ModuleTitle.vue'
@ -324,8 +326,10 @@ export default {
}, },
mounted() { mounted() {
this.qlzxdtList = qlzxdtData this.qlzxdtList = qlzxdtData
// this.zhuanxiangList()
// //
this.reportingProcessTimer() this.reportingProcessTimer()
this.inItPie() this.inItPie()
// getreportNum().then(res => { // getreportNum().then(res => {
// this.pieData[0].value = res.data.reportTotalCount - 12 // this.pieData[0].value = res.data.reportTotalCount - 12
@ -340,6 +344,25 @@ export default {
changeImg(item, index) { changeImg(item, index) {
item.index = index item.index = index
}, },
//
async zhuanxiangList(){
let res = await zhuanxiang();
let imgArr
let qlzxdtList = JSON.parse(JSON.stringify(res.rows))
this.qlzxdtList = qlzxdtList
for(let i = 0; i < qlzxdtList.length; i++){
imgArr = qlzxdtList[i].zhuanxiangImg
imgArr = imgArr.split(',')
this.qlzxdtList[i].zhuanxiangImg = imgArr
for(let j = 0; j < imgArr.length; j++){
imgArr[j] = process.env.VUE_APP_BASE_API3 + imgArr[j]
}
}
// zhuanxiang().then(res => {
// console.log(this.qlzxdtList)
// })
},
// //
inItPie() { inItPie() {
const chartDom = document.getElementById('pie') const chartDom = document.getElementById('pie')

@ -66,6 +66,7 @@
</template> </template>
<script> <script>
import { saftyscreenUnattack } from '@/api/zongzhi/st.js'
import { echartsJump } from '../../../../../public/static/echartsJump' import { echartsJump } from '../../../../../public/static/echartsJump'
import { getAttackTypeDistribution, getTopIp } from '@/api/common' import { getAttackTypeDistribution, getTopIp } from '@/api/common'
export default { export default {
@ -94,31 +95,31 @@ export default {
{ value: 443961, name: '其他' } { value: 443961, name: '其他' }
], ],
attackRanking: [ attackRanking: [
{ // {
total: '10.53.221.176', // total: '10.53.221.176',
num: 1821207, // num: 1821207,
url: require('@/assets/privateOrder/general/top前三.png') // url: require('@/assets/privateOrder/general/top.png')
}, // },
{ // {
total: '10.52.121.112', // total: '10.52.121.112',
num: 1271992, // num: 1271992,
url: require('@/assets/privateOrder/general/top前三.png') // url: require('@/assets/privateOrder/general/top.png')
}, // },
{ // {
total: '10.53.236.147', // total: '10.53.236.147',
num: 1184362, // num: 1184362,
url: require('@/assets/privateOrder/general/top前三.png') // url: require('@/assets/privateOrder/general/top.png')
}, // },
{ // {
total: '10.53.18.231', // total: '10.53.18.231',
num: 1014549, // num: 1014549,
url: require('@/assets/privateOrder/general/top5-其他.png') // url: require('@/assets/privateOrder/general/top5-.png')
}, // },
{ // {
total: '172.96.100.207', // total: '172.96.100.207',
num: 836344, // num: 836344,
url: require('@/assets/privateOrder/general/top5-其他.png') // url: require('@/assets/privateOrder/general/top5-.png')
} // }
], ],
controlList: [] controlList: []
// controlList: ['', '', ''] // // controlList: ['', '', ''] //
@ -142,14 +143,15 @@ export default {
// } // }
}, },
mounted() { mounted() {
this.data = [ this.getSaftyscreenUnattack()
{ value: 1, name: '韩国' }, // this.data = [
{ value: 80, name: '日本' }, // { value: 1, name: '' },
{ value: 90, name: '美国' }, // { value: 80, name: '' },
{ value: 20, name: '英国' }, // { value: 90, name: '' },
{ value: 50, name: '加拿大' } // { value: 20, name: '' },
] // { value: 50, name: '' }
this.initDistribution() // ]
// this.initDistribution()
// getAttackTypeDistribution().then((res) => { // getAttackTypeDistribution().then((res) => {
// this.data = [] // this.data = []
// res['T_ATTACK_TYPE_DISTRIBUTION[]'].forEach((ele) => { // res['T_ATTACK_TYPE_DISTRIBUTION[]'].forEach((ele) => {
@ -167,6 +169,25 @@ export default {
// }) // })
}, },
methods: { methods: {
/**
* TOP5
*/
getSaftyscreenUnattack() {
saftyscreenUnattack().then(res => {
console.log(res.data)
this.attackRanking = res.data.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)
})
},
// //
initDistribution() { initDistribution() {
const chartDom = document.getElementById('section-pie') const chartDom = document.getElementById('section-pie')
@ -198,7 +219,7 @@ export default {
formatter: (name) => { formatter: (name) => {
let total = 0 let total = 0
let target let target
this.data.forEach((v) => { this.attackRanking.forEach((v) => {
total += Number(v.value) total += Number(v.value)
if (v.name === name) { if (v.name === name) {
target = v.value target = v.value
@ -247,7 +268,7 @@ export default {
labelLine: { labelLine: {
show: false show: false
}, },
data: this.data data: this.attackRanking
} }
] ]
} }

@ -84,6 +84,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"
:key="index" :key="index"
class="monitor-detail-item" class="monitor-detail-item"
> >
@ -111,9 +112,9 @@
:data-obj="'安全监测'" :data-obj="'安全监测'"
@click="getAttackSource(item.id)" @click="getAttackSource(item.id)"
> >
<span :data-obj="'安全监测'">{{ item.date }}</span> <span>{{ item.attackTime }}</span>
<span :data-obj="'安全监测'">{{ item.ip }}</span> <span>{{ item.attackedIp }}</span>
<span :data-obj="'安全监测'" :title="item.type">{{ item.type }}</span> <span>{{ $filterDict('tc_attack_type',item.attackType) }}</span>
</div> </div>
</vue-seamless-scroll> </vue-seamless-scroll>
</div> </div>
@ -177,7 +178,7 @@
<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">{{ 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>
@ -208,26 +209,26 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <!-- <el-row>
<el-col :span="6"> <el-col :span="6">
<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">{{ tableDataPop.attackedType }}</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>
<el-col :span="6"> <el-col :span="6">
<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">{{ tableDataPop.webLevel }}</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>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.contactTel }}</div> <div class="dialog_little_ctn">{{ tableDataPop.phoneNum }}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -236,14 +237,14 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="dialog_little_ctn"> <div class="dialog_little_ctn">
{{ tableDataPop.subordinateDept }} {{ tableDataPop.affUnit }}
</div> </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>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="dialog_little_ctn">{{ tableDataPop.contactName }}</div> <div class="dialog_little_ctn">{{ tableDataPop.linkMan }}</div>
</el-col> </el-col>
</el-row> </el-row>
</template> </template>
@ -271,7 +272,7 @@
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getAllList" @pagination="showAttack"
/> />
</div> </div>
</template> </template>
@ -293,7 +294,9 @@ 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 } from '@/api/zongzhi/st.js' import { listSystem, listUnit, listWeb, listIDCunit, listSource, saftyscreenSupervise, saftyscreenSafety,
listDetection, getDetection
} from '@/api/zongzhi/st.js'
import { import {
yingTanZhen, yingTanZhen,
yingTanZhenKeyValue, yingTanZhenKeyValue,
@ -336,10 +339,15 @@ export default {
*/ */
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 1 pageSize: 10
}, // }, //
total: 0, // total: 0, //
time: null,
checkTotal: 0,
checkParams: {
pageNum: 1,
pageSize: 10
},
// //
dialogWidth: 0, dialogWidth: 0,
dialogStatus: false, dialogStatus: false,
@ -388,100 +396,100 @@ export default {
superviseObject: [ superviseObject: [
{ {
title: '政府网站', title: '政府网站',
num: 446, num: 0,
className: 'item1', className: 'item1',
url: require('@/assets/privateOrder/general/icon-政府网站.png') url: require('@/assets/privateOrder/general/icon-政府网站.png')
}, },
{ {
title: '监管单位', title: '监管单位',
num: 2098, num: 0,
className: 'item2', className: 'item2',
url: require('@/assets/privateOrder/general/icon-监管单位.png') url: require('@/assets/privateOrder/general/icon-监管单位.png')
}, },
{ {
title: '网站监测', title: '网站监测',
num: 2658, 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: 1, 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: 181, num: 0,
className: 'item5', className: 'item5',
url: require('@/assets/privateOrder/general/icon-等保系统.png') url: require('@/assets/privateOrder/general/icon-等保系统.png')
}, },
{ {
title: '等保单位', title: '等保单位',
num: 109, 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: 3225.5, total: 0,
detail: [ detail: [
{ // {
title: '入侵攻击', // title: '',
num: 1455.92 // num: 1455.92
}, // },
{ // {
title: '恶意扫描', // title: '',
num: 2325.24 // num: 2325.24
}, // },
{ // {
title: '僵木蠕病毒', // title: '',
num: 796.152 // num: 796.152
} // }
] ]
}, },
tableDataPop: { tableDataPop: {
id: 1, // id: 1,
attackTime: '2023-07-30', // attackTime: '2023-07-30',
sourceIp: '192.168.0.114', // sourceIp: '192.168.0.114',
attackType: '网络爬虫', // attackType: '',
attackIpRegion: '美国', // attackIpRegion: '',
attackedIp: '192.168.5.0', // attackedIp: '192.168.5.0',
attackedIpRegion: '太仓', // attackedIpRegion: '',
attackedType: '网络爬虫', // attackedType: '',
webLevel: '1级别', // webLevel: '1',
contactTel: '18703885598', // contactTel: '18703885598',
subordinateDept: '网络安全部', // subordinateDept: '',
contactName: '张三' // contactName: ''
}, },
tableData: [ tableData: [
{ // {
date: '2022-02-13', // date: '2022-02-13',
ip: '荷兰/178.128.242.134', // ip: '/178.128.242.134',
type: '挖矿' // type: ''
}, // },
{ // {
date: '2022-02-13', // date: '2022-02-13',
ip: '荷兰/178.128.242.134', // ip: '/178.128.242.134',
type: '挖矿' // type: ''
}, // },
{ // {
date: '2022-02-13', // date: '2022-02-13',
ip: '杭州市/60.190.232.14', // ip: '/60.190.232.14',
type: '扫描行为' // type: ''
}, // },
{ // {
date: '2022-02-13', // date: '2022-02-13',
ip: '荷兰/178.128.242.134', // ip: '/178.128.242.134',
type: '挖矿' // type: ''
}, // },
{ // {
date: '2022-02-13', // date: '2022-02-13',
ip: '荷兰/178.128.242.134', // ip: '/178.128.242.134',
type: '挖矿' // type: ''
} // }
], ],
excelData: null, excelData: null,
excelDataHeader: null excelDataHeader: null
@ -505,9 +513,21 @@ export default {
destroyed() { destroyed() {
clearInterval(this.attackTime) // clearInterval(this.attackTime) //
clearInterval(this.tableTime) clearInterval(this.tableTime)
clearInterval(this.time)
}, },
mounted() { mounted() {
this.changeBtn() // 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() // // this.getDataSource() //
// //
// getLatest().then((res) => { // getLatest().then((res) => {
@ -565,72 +585,157 @@ export default {
}, },
async getAttackSource(id) { async getAttackSource(id) {
this.dialogWidth = '1000px' this.dialogWidth = '1000px'
getDetection(id).then(res => {
this.tableDataPop = res.data
this.dialogType = '安全监测'
this.dialogStatus = true
})
// await this.AttackClick(id) // await this.AttackClick(id)
this.dialogStatus = true },
this.dialogType = '安全监测' /**
* 安全监管List
*/
getListDetection() {
listDetection(this.checkParams).then(res => {
this.tableData = [...this.tableData, ...res.rows]
this.checkTotal = res.total
})
},
/**
* 安全监测攻击类型统计
*/
getSaftyscreenSafety() {
saftyscreenSafety().then(res => {
this.securityMonitor.detail = res.data.list.map((item, index) => {
this.securityMonitor.total = this.securityMonitor.total + item.count
return {
title: this.$filterDict('tc_attack_type', item.attackType),
num: item.count
}
})
})
},
/**
* 监管对象各类别统计量
*/
getSaftyscreenSupervise() {
saftyscreenSupervise().then(res => {
// this.superviseObject[4].num = res.data.
res.data.forEach(item => {
this.superviseObject.forEach(it => {
if (item.name == it.title) {
it.num = item.count
}
})
})
console.log(res, 'aaa')
})
},
/**
* 表格参数重置
* */
reset() {
this.total = 0
this.queryParams = {
pageNum: 1,
pageSize: 10
}
this.excelData = []
this.excelDataHeader = []
},
/**
* 等保系统
*/
getDbSteam() {
listSystem(this.queryParams).then(res => {
this.excelData = res.rows
this.excelDataHeader = dbxtKeyValue
this.total = res.total
})
},
/**
* 等保单位
*/
getDbUnit() {
listUnit(this.queryParams).then(res => {
this.excelData = res.rows
this.excelDataHeader = dbdwKeyValue
this.total = res.total
})
},
/**
* 政府网站
*/
getZfWeb() {
listWeb(this.queryParams).then(res => {
this.excelData = res.rows
this.excelDataHeader = zfdwKeyValue
this.total = res.total
})
},
/**
* IDC单位
*/
getIdcUnit() {
listIDCunit(this.queryParams).then(res => {
this.excelData = res.rows
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 = '安全监测', total) {
this.dialogType = item if (typeof item === 'object') {
if (item === '等保系统') { //
} else {
this.reset()
this.dialogType = item
}
if (this.dialogType === '等保系统') {
this.dialogWidth = '4000px' this.dialogWidth = '4000px'
listSystem(this.queryParams).then(res => { this.getDbSteam()
this.excelData = res.rows
this.excelDataHeader = dbxtKeyValue
this.total = res.total
this.dialogStatus = true
})
} }
// this.tableTotal = total // if (this.dialogType === '等保单位') {
// this.dialogStatus = false this.dialogWidth = '4000px'
// setTimeout(() => { this.getDbUnit()
// if (item === '') { }
// this.dialogWidth = '1800px' if (this.dialogType === '政府网站') {
// this.excelData = yingTanZhen this.dialogWidth = '1800px'
// this.excelDataHeader = yingTanZhenKeyValue this.getZfWeb()
// } }
// if (item === '' || item === '') { if (this.dialogType === 'IDC单位') {
// this.dialogWidth = '2100px' this.dialogWidth = '1800px'
// this.excelData = xitongjiance this.getIdcUnit()
// this.excelDataHeader = xitongjianceKeyValue }
// } if (this.dialogType === '监管单位' || this.dialogType === '系统监测' || this.dialogType === '网站监测' || this.dialogType === '软探针' || this.dialogType === '硬探针') {
// if (item === '') { this.dialogWidth = '2100px'
// this.dialogWidth = '2100px' if (this.dialogType === '软探针') {
// this.excelData = xitongjiance this.queryParams.type = 4
// this.excelDataHeader = xitongjianceKeyValue } else if (this.dialogType === '硬探针') {
// } this.queryParams.type = 3
// if (item === 'IDC') { } else if (this.dialogType === '监管单位') {
// this.dialogWidth = '1800px' this.queryParams.type = 5
// this.excelData = IDC } else if (this.dialogType === '网站监测') {
// this.excelDataHeader = IDCKeyValue this.queryParams.type = 6
// } } else {
// if (item === '') { this.queryParams.type = 7
// this.dialogWidth = '3300px' }
// this.excelData = dbdw
// this.excelDataHeader = dbdwKeyValue this.getJgUnit()
// } }
// if (item === '') { this.$nextTick(() => {
// this.dialogWidth = '4000px' this.dialogStatus = true
// listSystem().then(res => { })
// this.excelData = res.rows
// this.excelDataHeader = dbxtKeyValue
// this.dialogStatus = true
// })
// }
// if (item === '') {
// this.dialogWidth = '1800px'
// this.excelData = zfdw
// this.excelDataHeader = zfdwKeyValue
// }
// if (item === '') {
// this.dialogWidth = '1800px'
// this.excelData = rtz
// this.excelDataHeader = rtzKeyValue
// }
// this.dialogType = item
// if (item.target?.dataset.obj) {
// this.dialogType = item.target.dataset.obj
// }
// }, 0)
}, },
// //
getDataSource() { getDataSource() {

@ -101,7 +101,7 @@
</div> </div>
</module-title> </module-title>
<!-- 最新隐患 --> <!-- 最新隐患 -->
<div v-show="dangerCurrentIndex === 0" @click="rowDetails($event)"> <div v-show="dangerCurrentIndex === 0">
<div class="dangerTitle"> <div class="dangerTitle">
<span>单位名称</span> <span>单位名称</span>
<span>隐患名称</span> <span>隐患名称</span>
@ -117,18 +117,17 @@
v-for="(item, idx) in dangerList" v-for="(item, idx) in dangerList"
:key="idx" :key="idx"
class="dangerText" class="dangerText"
:data-obj="JSON.stringify(item)" @click="rowDetails(item)"
> >
<span :data-obj="JSON.stringify(item)" :title="item.systemName">{{ <span>{{
item.systemName item.unitName
}}</span> }}</span>
<span :data-obj="JSON.stringify(item)" :title="item.dangerNmae">{{ <span>{{
item.dangerNmae item.riskName
}}</span>
<span :data-obj="JSON.stringify(item)">{{ item.grade }}</span>
<span :data-obj="JSON.stringify(item)" :title="item.source">{{
item.source
}}</span> }}</span>
<span>{{ $filterDict('tc_yh_level',item.level) }}</span>
<span>
{{ $filterDict('tc_yh_source',item.riskSource) }}</span>
</div> </div>
</vue-seamless-scroll> </vue-seamless-scroll>
</div> </div>
@ -149,23 +148,19 @@
v-for="(item, index) in informList" v-for="(item, index) in informList"
:key="index" :key="index"
class="ctn_item" class="ctn_item"
:data-obj="JSON.stringify(item)"
> >
<div <div
:data-obj="JSON.stringify(item)"
class="item_name" class="item_name"
:title="item.name"
> >
{{ item.name }} {{ item.depName }}
</div> </div>
<div <div
:data-obj="JSON.stringify(item)"
class="item_ip" class="item_ip"
:title="item.domainName"
> >
{{ item.domainName }} {{ item.domainName }}
</div> </div>
<span :data-obj="JSON.stringify(item)" class="item_num">{{ <span class="item_num">{{
item.status item.status
}}</span> }}</span>
</div> </div>
@ -242,6 +237,7 @@
</template> </template>
<script> <script>
import { listDanger, getDanger, listTb, getTb } from '@/api/zongzhi/st.js'
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 ReportingStatistics from './ReportingStatistics.vue' import ReportingStatistics from './ReportingStatistics.vue'
@ -274,6 +270,16 @@ export default {
}, },
data() { data() {
return { return {
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10
},
total2: 0,
queryParams2: {
pageNum: 1,
pageSize: 10
},
loading: true, loading: true,
// //
announceCurrentIndex: 0, announceCurrentIndex: 0,
@ -347,11 +353,11 @@ export default {
animate: true, animate: true,
positionTimer: null, positionTimer: null,
// //
dangerList: dangerList, dangerList: [],
animate2: false, animate2: false,
positionTimer2: null, positionTimer2: null,
// //
informList: informList, informList: [],
dialogStatus: false, dialogStatus: false,
rowDta: {}, rowDta: {},
dialogDetails: false, dialogDetails: false,
@ -391,10 +397,31 @@ export default {
destroyed() { destroyed() {
clearInterval(this.announceTime) clearInterval(this.announceTime)
clearInterval(this.dangerTime) clearInterval(this.dangerTime)
clearInterval(this.dangerListTime)
clearInterval(this.tbTime)
}, },
mounted() { mounted() {
this.dangerChange()
this.getListDanger()
this.dangerListTime = setInterval(() => { //
if (this.dangerList.length >= this.total) {
clearInterval(this.dangerListTime)
} else {
this.queryParams.pageNum = this.queryParams.pageNum + 1
this.getListDanger()
}
}, 6000)
this.getlistTb()
this.tbTime = setInterval(() => { //
if (this.informList.length >= this.total2) {
clearInterval(this.tbTime)
} else {
this.queryParams2.pageNum = this.queryParams2.pageNum + 1
this.getlistTb()
}
}, 6000)
// this.announceChange() // this.announceChange()
// this.dangerChange()
// getSafeHazardSatistic().then((res) => { // getSafeHazardSatistic().then((res) => {
// if (res['T_HAZARD_SATISTIC[]']) { // if (res['T_HAZARD_SATISTIC[]']) {
// this.safetyList = [] // this.safetyList = []
@ -414,6 +441,25 @@ export default {
// }) // })
}, },
methods: { methods: {
/**
* 最新隐患
*/
getListDanger() {
listDanger(this.queryParams).then(res => {
this.dangerList = [...this.dangerList, ...res.rows]
this.total = res.total
})
},
/**
* 通报处置
*/
getlistTb() {
listTb(this.queryParams2).then(res => {
console.log(res, 'www')
this.informList = [...this.informList, ...res.rows]
this.total2 = res.total
})
},
// //
mouseOver(status) { mouseOver(status) {
if (status === 'danger') { if (status === 'danger') {

@ -10,16 +10,17 @@
// IDC数据 // IDC数据
const IDCKeyValue = [ const IDCKeyValue = [
{ {
key: 'IDC名称', name: 'IDC名称',
value: 'name' value: 'unitName'
}, },
{ {
key: '所属区域', name: '所属区域',
value: 'region' value: 'areaId',
dictType: 'town'
}, },
{ {
key: 'IP段信息', name: 'IP段信息',
value: 'IDCmsg' value: 'ipData'
} }
] ]
const IDC = [ const IDC = [
@ -34,61 +35,63 @@ const IDC = [
const dbdwKeyValue = [ const dbdwKeyValue = [
{ {
value: 'unitName', // 单位 名称 value: 'unitName', // 单位 名称
key: '单位名称', name: '单位名称',
width: 350 width: 350
}, },
{ {
value: 'postalCode', // 邮政 编码 value: 'postCode', // 邮政 编码
key: '邮政编码' name: '邮政编码'
}, },
{ {
value: 'province', // 单位地址 —省 value: 'unitProvince', // 单位地址 —省
key: '单位地址—省' name: '单位地址—省'
}, },
{ {
value: 'city', // 单位地址 —市 value: 'unitCity', // 单位地址 —市
key: '单位地址—市' name: '单位地址—市'
}, },
{ {
value: 'county', // 单位地址—区 /县 value: 'unitCounty', // 单位地址—区 /县
key: '单位地址—区/县' name: '单位地址—区/县'
}, },
{ {
value: 'unitAdress', value: 'unitStreet',
key: '单位地址' name: '单位地址'
}, },
{ {
value: 'regionCode', // 行政区域 代码 value: 'areaCode', // 行政区域 代码
key: '行政区域代码' name: '行政区域代码'
}, },
{ {
value: 'Subordination', // 隶属 关系 value: 'affiliation', // 隶属 关系
key: '隶属关系', name: '隶属关系',
width: 280 width: 280
}, },
{ {
value: 'UnitType', // 单位 类型 value: 'unitType', // 单位 类型
key: '单位类型' name: '单位类型',
dictType: 'tc_unit_type'
}, },
{ {
value: 'IndustryType', // 行业 类型 value: 'tmtType', // 行业 类型
key: '行业类型' name: '行业类型',
dictType: 'tc_tmt_type'
}, },
{ {
value: 'unitPrincipal', // 单位责任人—姓名 value: 'fuzeName', // 单位责任人—姓名
key: '单位责任人—姓名' name: '单位责任人—姓名'
}, },
{ {
value: 'unitTitle', // 单位责任人—职务/职称 value: 'fuzeDuty', // 单位责任人—职务/职称
key: '单位责任人—职务' name: '单位责任人—职务'
}, },
{ {
value: 'unitPhone', // 单位责任人— 办公电话 value: 'fuzeTel', // 单位责任人— 办公电话
key: '单位责任人—办公电话' name: '单位责任人—办公电话'
}, },
{ {
value: 'unitEmail', // 单位责任人— 电子邮件 value: 'fuzeEmail', // 单位责任人— 电子邮件
key: '单位责任人—电子邮件' name: '单位责任人—电子邮件'
// width: 300 // width: 300
} }
// { // {
@ -1513,16 +1516,17 @@ const dbdw = [
// 政府网站数据 // 政府网站数据
const zfdwKeyValue = [ const zfdwKeyValue = [
{ {
key: '网址', name: '网址',
value: 'url' value: 'url'
}, },
{ {
key: '资产名称', name: '资产名称',
value: 'name' value: 'assetName'
}, },
{ {
key: '资产重要等级', name: '资产重要等级',
value: 'leave' value: 'assetLevel',
dictType: 'tc_net_safety_level'
} }
] ]
@ -5152,13 +5156,14 @@ const dbxtKeyValue = [
width: 450 width: 450
}, },
{ {
value: 'recordCode', value: 'beianNum',
name: '备案编号', name: '备案编号',
width: 300 width: 300
}, },
{ {
value: 'safetyLevel', value: 'safetyLevel',
name: '信息系统安全保护等级' name: '信息系统安全保护等级',
dictType: 'tc_net_safety_level'
}, },
{ {
value: 'unitName', value: 'unitName',
@ -5199,7 +5204,8 @@ const dbxtKeyValue = [
}, },
{ {
value: 'isRate', value: 'isRate',
name: '系统是否分级' name: '系统是否分级',
dictType: 'tc_yes_no'
}, },
{ {
value: 'rankTime', value: 'rankTime',
@ -5212,7 +5218,8 @@ const dbxtKeyValue = [
}, },
{ {
value: 'isParent', value: 'isParent',
name: '是否有主管部门' name: '是否有主管部门',
dictType: 'tc_yes_no'
}, },
{ {
value: 'rankReport', value: 'rankReport',
@ -5221,6 +5228,7 @@ const dbxtKeyValue = [
{ {
value: 'systemState', value: 'systemState',
name: '系统状态', name: '系统状态',
dictType: 'tc_db_steam_state',
with: 300 with: 300
} }
] ]

@ -83,35 +83,37 @@ const yingTanZhen = [
] ]
const xitongjianceKeyValue = [ const xitongjianceKeyValue = [
{ {
key: '单位名称', name: "单位名称",
value: 'unitName', value: "affUnit",
width:450 width: 450,
}, },
{ {
key: '网站/系统名称', name: "网站/系统名称",
value: 'systemName', value: "systeamName",
width:450 width: 450,
}, },
{ {
key: 'URL', name: "URL",
value: 'URL', value: "url",
width:450 width: 450,
}, },
{ {
key: 'IP地址', name: "IP地址",
value: 'IPAddress' value: "ipAddress",
}, },
{ {
key: '采用端口', name: "采用端口",
value: 'portName' value: "portName",
}, },
{ {
key: '是否关注重点', name: "是否关注重点",
value: 'isFocus' value: "isFocus",
dictType: "tc_yes_no",
}, },
{ {
key: '等保级别', name: "等保级别",
value: 'level' value: "level",
dictType: "tc_net_safety_level",
}, },
// { // {
// key: '网站联系人', // key: '网站联系人',
@ -133,7 +135,7 @@ const xitongjianceKeyValue = [
// key: '备注', // key: '备注',
// value: 'remarks' // value: 'remarks'
// } // }
] ];
const xitongjiance=[ const xitongjiance=[
{ {
"unitName": "太仓市通源汽车检测服务有限公司", "unitName": "太仓市通源汽车检测服务有限公司",

Loading…
Cancel
Save