网络舆情调用接口

duhanyu
杜函宇 1 year ago
parent 03a3eee5b3
commit 046c3a52cc

@ -46,3 +46,44 @@ export function listSslx(query) {
params: query
})
}
// 查询动态筛选列表
export function listDtsx(query) {
return request({
url: '/tcZz/netWorkYq/dtsx/list',
method: 'get',
params: query
})
}
// 查询词云列表
export function listCy(query) {
return request({
url: '/tcZz/netWorkYq/cy/ListNoToken',
method: 'get',
params: query
})
}
// 查询舆情预警列表
export function listYqyj(query) {
return request({
url: '/tcZz/netWorkYq/yqyj/list',
method: 'get',
params: query
})
}
// 查询舆情报告列表
export function listYqbg(query) {
return request({
url: '/tcZz/netWorkYq/yqbg/list',
method: 'get',
params: query
})
}
// 查询 转办量、转办详情列表
export function listZbxq(query) {
return request({
url: '/tcZz/netWorkYq/zbxq/list',
method: 'get',
params: query
})
}

@ -3,7 +3,7 @@ import request from '@/utils/request.js'
// 查询字典
export function getDictList(query) {
return request({
url: '/system/dict/data/getlist',
url: '/system/dict/data/list',
method: 'get',
params: query
})

@ -29,7 +29,7 @@ const dict = {
getDictType({ commit }) {
return new Promise((resolve, reject) => {
const query = {
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,tc_steam_state,tc_wz_type",
dictType: "bg_type",
};
getDictList(query)
.then((res) => {

@ -135,7 +135,7 @@
<script>
//,
import { listBmtb} from "@/api/networkSecurity";
import { listBmtb } from "@/api/networkSecurity";
import qs from "qs";
const docx = require("docx-preview");
@ -173,7 +173,7 @@ export default {
queryData: {
pageSize: 20,
pageNum: 1,
areaId: "",
isStatus: 1,
},
};
},
@ -254,8 +254,8 @@ export default {
echartsJump(myChartPieFirst, optionFirst);
},
clickFunc(val) {
this.queryData.areaId = val.area || val.data.area;
console.log(this.queryData);
// this.queryData.areaId = val.area || val.data.area;
// console.log(this.queryData);
//
this.dangerList = [];
departmentList(this.queryData).then((res) => {
@ -356,7 +356,7 @@ export default {
},
//
getBMData() {
listBmtb().then((res) => {
listBmtb({ isStatus: 1 }).then((res) => {
this.notificationList = res.rows;
});
},
@ -378,13 +378,24 @@ export default {
});
},
// top4
clickTop4(name) {
this.status = "top4";
// querySecurityByName({ deptName: name }).then((res) => {
// this.dialogStatus = true
// this.dialogTitle = name
// this.dangerList = res.data
// })
clickTop4(val) {
this.dialogTitle = val.depName + "通报文件";
this.dangerList = [];
listBmtb({ depName: val.depName,isStatus: 1 }).then((res) => {
res.rows.forEach((value) => {
if (value.fileName) {
let arr1 = value.fileName.split(",");
let arr2 = value.fileUrl.split(",");
arr1.forEach((value1, index1) => {
this.dangerList.push({
fileName: value1,
fileUrl: arr2[index1],
});
});
}
});
this.dialogStatus = true;
});
},
},
};

@ -226,14 +226,14 @@
</div>
</el-col>
</el-row>
<!-- <el-row>
<el-row>
<el-col :span="6">
<div class="dialog_little_title">受攻击目标类型</div>
</el-col>
<el-col :span="18">
<div class="dialog_little_ctn">{{ $filterDict('tc_attack_type',tableDataPop.attackType) }}</div>
<div class="dialog_little_ctn">{{ tableDataPop.type }}</div>
</el-col>
</el-row> -->
</el-row>
<el-row>
<el-col :span="6">
<div class="dialog_little_title">网站安全等级</div>

@ -93,7 +93,7 @@ const xitongjianceKeyValue = [
width: 450,
},
{
name: "URL",
name: "URL/IP",
value: "systemUrl",
width: 450,
},

@ -13,6 +13,7 @@
<script>
import { getyqZblNum } from "@/api/common";
import { sectorZB } from "@/api/wlSafe";
// import { listZbxq} from "@/api/netWorkYq";
export default {
data() {
@ -26,13 +27,14 @@ export default {
},
methods: {
getData() {
sectorZB().then((res) => {
res.data.forEach(value => {
this.lineName.push(value.dep_name)
this.lineValue.push(value.count)
});
this.lineBox();
});
// listZbxq().then((res) => {
// console.log(res);
// res.rows.forEach(value => {
// this.lineName.push(value.depName)
// this.lineValue.push(value.yqState)
// });
// this.lineBox();
// });
},
lineBox() {

@ -44,6 +44,7 @@ class Tag {
}
import { keyWords } from "@/api/common";
import { wordCloud } from "@/api/publicOpinion";
import { listCy } from "@/api/netWorkYq";
export default {
props: {},
@ -70,16 +71,24 @@ export default {
},
methods: {
getDataList() {
this.$store.getters.dictObject["tc_cy_type"].forEach((value) => {
// this.$store.getters.dictObject["tc_cy_type"].forEach((value) => {
// this.data.push({
// name: value.dictLabel,
// count: 888,
// });
// });
listCy().then((res) => {
res.rows.forEach((value) => {
this.data.push({
name: value.dictLabel,
count: 888,
name: value.cyName,
count: value.cyCount,
});
});
this.$nextTick(() => {
this.init();
this.animate();
});
});
},
init() {
const tags = document.querySelectorAll(".tag");

@ -16,13 +16,13 @@
<div class="Statistics">
<div
v-for="item in Statistics"
:key="item.value"
:key="item.type"
class="StatisticsInfo"
>
<img :src="item.url" alt="" />
<span
style="cursor: pointer"
@click="clickDetails(item.name, item.type)"
@click="clickDetails(item.name, item.type, item.flag)"
>
{{ item.name }}</span
>
@ -31,11 +31,12 @@
:color="item.color"
></el-progress> -->
<el-progress
:percentage="Number(item.info) || 0"
:percentage="Number(item.info)"
:color="item.color"
></el-progress>
<div class="StatisticsText">
{{ item.info | commaFilter }}
<!-- {{ item.info | commaFilter }} -->
{{ item.info }}
<div class="StatisticsText-2"></div>
</div>
</div>
@ -80,7 +81,7 @@
:step="oldNewsCount" -->
<NumberGrow
class="yV"
:value="dtsx.jcxxCount"
:value="dtsx.jcCount"
:step="oldNewsCount"
></NumberGrow>
</div>
@ -89,19 +90,19 @@
<!-- :value="newsCount - warningCount" -->
<NumberGrow
class="bV"
:value="dtsx.pcxxCount"
:value="dtsx.pcCount"
:step="oldNewsCount - oldWarningCount"
></NumberGrow>
</div>
<div class="total">
<div class="name">舆情预警</div>
<div class="warn">
{{ dtsx.yqyjCount || 0 }}
{{ dtsx.yqCount }}
</div>
<div class="total_info">
<!-- :value="warningCount" -->
<NumberGrow
:value="dtsx.yqyjZb"
:value="dtsx.yqZb"
:step="oldWarningCount"
></NumberGrow>
</div>
@ -229,6 +230,7 @@ import {
listYqxxlnum,
listYqxxltj,
getYqxxltj,
listDtsx,
} from "@/api/netWorkYq";
export default {
@ -256,7 +258,7 @@ export default {
// url: require('@/assets/sentimeent/icon-1.png')
// },
{
value: 0,
flag: false,
name: "本地相关信息量",
info: "0",
color: "#4799f8",
@ -264,7 +266,7 @@ export default {
type: 1,
},
{
value: 0,
flag: false,
name: "本地敏感信息量",
info: "0",
color: "#ff5432",
@ -272,7 +274,7 @@ export default {
type: 2,
},
{
value: 0,
flag: false,
name: "推送预警信息量",
info: "0",
color: "#ffed61",
@ -280,7 +282,7 @@ export default {
type: 3,
},
{
value: 0,
flag: false,
name: "聚焦本地媒体量",
info: "0",
color: "#20b028",
@ -357,6 +359,8 @@ export default {
date: [],
newDate: [],
dtsx: {},
//========
listTotal: 0,
};
},
computed: {},
@ -450,14 +454,49 @@ export default {
//
getyqMsgStats() {
listYqxxlnum().then((res) => {
if (res.rows.length > 0) {
if (res.rows[0].count1) {
this.Statistics[0].info = res.rows[0].count1;
this.Statistics[0].flag = true;
} else {
this.wlyqListNums(0, this.Statistics[0].type);
}
if (res.rows[0].count2) {
this.Statistics[1].info = res.rows[0].count2;
this.Statistics[1].flag = true;
}else{
this.wlyqListNums(1, this.Statistics[1].type);
}
if (res.rows[0].count3) {
this.Statistics[2].info = res.rows[0].count3;
this.Statistics[2].flag = true;
}else{
this.wlyqListNums(2, this.Statistics[2].type);
}
if (res.rows[0].count4) {
this.Statistics[3].info = res.rows[0].count4;
this.Statistics[3].flag = true;
}else{
this.wlyqListNums(3, this.Statistics[3].type);
}
}else{
this.wlyqListNums(0, this.Statistics[0].type);
this.wlyqListNums(1, this.Statistics[1].type);
this.wlyqListNums(2, this.Statistics[2].type);
this.wlyqListNums(3, this.Statistics[3].type);
}
});
dtsxListGet({ isStatus: 1 }).then((res) => {
//
listDtsx().then((res) => {
this.dtsx = res.rows[0];
this.dtsx.jcCount = this.dtsx.jcCount ? Number(this.dtsx.jcCount) : 0;
this.dtsx.pcCount = this.dtsx.pcCount ? Number(this.dtsx.pcCount) : 0;
this.dtsx.yqCount = this.dtsx.yqCount
? Number(this.dtsx.yqCount)
: this.dtsx.jcCount - this.dtsx.pcCount;
this.dtsx.yqZb = this.dtsx.yqZb
? this.dtsx.yqZb
: Math.round((this.dtsx.yqCount / this.dtsx.jcCount) * 100);
});
},
// 线
@ -598,7 +637,7 @@ export default {
echartsJump(myChart, options);
},
//
clickDetails(val, type) {
clickDetails(val, type, flag) {
this.tableHeader = [
{ key: "标题", value: "title" },
{ key: "来源", width: 120, value: "source" },
@ -611,7 +650,15 @@ export default {
isStatus: 1,
};
this.dialogTitle = val;
if (!flag) {
this.wlyqList();
}
},
// list
wlyqListNums(a,b) {
listYqxxltj({ type: b }).then((res) => {
this.Statistics[a].info = res.total;
});
},
// list
wlyqList() {
@ -623,7 +670,6 @@ export default {
},
//
showAttack(e) {
console.log(e);
this.queryData.pageNum = e.page;
this.queryData.pageSize = e.limit;
this.wlyqList();

@ -23,18 +23,15 @@
</module-title>
<div class="warningBox" @click="openDetailLog()">
<div class="warningBox-BJ"></div>
<div class="warning-title" :title="currentWarningObj.sentimentName">
{{ currentWarningObj.sentimentName }}
<div class="warning-title" :title="currentWarningObj.title">
{{ currentWarningObj.title }}
</div>
<div
class="warning-content"
:title="currentWarningObj.sentimentContent"
>
{{ currentWarningObj.sentimentContent }}
<div class="warning-content" :title="currentWarningObj.content">
{{ currentWarningObj.content }}
</div>
<div class="warning-time">{{ currentWarningObj.publishTime }}</div>
<div class="warning-time">{{ currentWarningObj.dateTime }}</div>
<div class="warning-source">
{{ $filterDict("tc_yq_media", currentWarningObj.source) }}
{{ currentWarningObj.source }}
</div>
</div>
</div>
@ -42,11 +39,7 @@
<module-title>舆情报告</module-title>
<div class="report">
<div class="report-top">
<div
class="Tips"
style="cursor: pointer"
@click="reportDetails('提示单')"
>
<div class="Tips" style="cursor: pointer" @click="reportDetails(1)">
<i class="report-icon"></i>
<div style="display: inline-block; margin: 33px 0 0 14px">
<div class="report-title">提示单()</div>
@ -56,7 +49,7 @@
<div
class="Transfer"
style="cursor: pointer"
@click="reportDetails('转办单')"
@click="reportDetails(2)"
>
<i class="report-icon"></i>
<div style="display: inline-block; margin: 33px 0 0 14px">
@ -66,17 +59,17 @@
</div>
</div>
<div class="report-bottom">
<div class="Special-report" @click="reportDetails('专报')">
<div class="Special-report" @click="reportDetails(3)">
<div class="Special-icon"></div>
<div class="Special-title">专报</div>
<div class="Special-num">{{ Transfer[0].bg }}</div>
</div>
<div class="Monthly-report" @click="reportDetails('月报')">
<div class="Monthly-report" @click="reportDetails(4)">
<div class="Monthly-icon"></div>
<div class="Monthly-title">月报</div>
<div class="Monthly-num">{{ Transfer[1].bg }}</div>
</div>
<div class="depth-report" @click="reportDetails('深度报告')">
<div class="depth-report" @click="reportDetails(5)">
<div class="depth-icon"></div>
<div class="depth-title">深度报告</div>
<div class="depth-num">{{ Transfer[2].bg }}</div>
@ -123,14 +116,14 @@
class="monitor-list"
>
<!-- @click="rowClick(item.attUrl,'details')" -->
<span :title="item.sentimentName">{{
item.sentimentName
<span :title="item.yqTitle">{{
item.yqTitle
}}</span>
<span :title="item.depName">{{ item.depName }}</span>
<span
:title="item.opinionStatusName"
:style="activation(item.sentimentState)"
>{{ $filterDict("tc_yq_state", item.sentimentState) }}</span
:title="item.yqState"
:style="activation(item.yqState)"
>{{ item.yqState }}</span
>
</div>
</vue-seamless-scroll>
@ -172,7 +165,7 @@
<el-table-column
v-if="item !== '序号'"
:key="item"
prop="sentimentName"
prop="title"
align="center"
show-overflow-tooltip
label="标题名称"
@ -263,25 +256,25 @@
<el-row>
<el-col :span="3" class="detail_title">标题</el-col>
<el-col :span="21" class="detail_text">
{{ currentWarningObj.sentimentName }}
{{ currentWarningObj.title }}
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="detail_title">内容</el-col>
<el-col :span="21" class="detail_text">{{
currentWarningObj.sentimentContent
currentWarningObj.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", currentWarningObj.source)
currentWarningObj.source
}}</el-col>
</el-row>
<el-row>
<el-col :span="3" class="detail_title">时间</el-col>
<el-col :span="21" class="detail_text">{{
currentWarningObj.publishTime
currentWarningObj.dateTime
}}</el-col>
</el-row>
</div>
@ -320,6 +313,7 @@ import {
//================
import { yuqingListA } from "@/api/consensusList";
import { yqbg } from "@/api/publicOpinion";
import { listYqyj ,listYqbg,listZbxq} from "@/api/netWorkYq";
export default {
components: {
@ -381,12 +375,14 @@ export default {
formData: {
pageSize: 1,
pageNum: 1,
isStatus: 1,
},
//
yqTotal: 0,
bgForm: {
pageNum: 1,
pageSize: 10,
isStatus: 1,
},
newbgForm: {},
currentPage: 1, // 1
@ -408,24 +404,24 @@ export default {
},
activation() {
return (status) => {
if (status === 1) {
return { color: "#ff4c4c" };
} else if (status === 2) {
return { color: "#ff8839" };
} else if (status === 3) {
return { color: "#35ca29" };
}
// if (status === '') {
// return { color: '#ff4c4c' }
// } else if (status === '') {
// return { color: '#ff8839' }
// } else if (status === '') {
// return { color: '#ffed1f' }
// } else if (status === '') {
// return { color: '#53edff' }
// } else if (status === '') {
// return { color: '#35ca29' }
// if (status === 1) {
// return { color: "#ff4c4c" };
// } else if (status === 2) {
// return { color: "#ff8839" };
// } else if (status === 3) {
// return { color: "#35ca29" };
// }
if (status === '待处理') {
return { color: '#ff8839' }
} else if (status === '处理中') {
return { color: '#ff8839' }
} else if (status === '已处理') {
return { color: '#ffed1f' }
} else if (status === '待核查') {
return { color: '#53edff' }
} else if (status === '已归档') {
return { color: '#35ca29' }
}
// const myMap = new Map([
// ["", { color: "#ffed1f" }],
// ["", { color: "#53edff" }],
@ -454,27 +450,26 @@ export default {
},
methods: {
getDataList() {
yqbg().then((res) => {
this.tsdNum = res.data.reminder;
this.zbdNum = res.data.isturn;
res.data.reportList.forEach((value, index) => {
this.Transfer.forEach((value1, index1) => {
if (value.sentimentReportType == value1.type) {
this.Transfer[index1].bg = value.count;
return;
}
});
});
console.log(this.Transfer);
});
//
yuqingListA({}).then((res) => {
// yqbg().then((res) => {
// this.tsdNum = res.data.reminder;
// this.zbdNum = res.data.isturn;
// res.data.reportList.forEach((value, index) => {
// this.Transfer.forEach((value1, index1) => {
// if (value.sentimentReportType == value1.type) {
// this.Transfer[index1].bg = value.count;
// return;
// }
// });
// });
// console.log(this.Transfer);
// });
listZbxq({isStatus:1}).then((res) => {
this.turnDetailsList = res.rows;
});
},
//
getOneList() {
yuqingListA(this.formData).then((res) => {
listYqyj(this.formData).then((res) => {
this.yqTotal = res.total;
this.currentWarningObj = res.rows[0];
});
@ -516,40 +511,19 @@ export default {
: (this.currentIndex = 0);
}, 11000);
},
async reportDetails(val) {
reportDetails(val) {
this.tableHeader = [{ label: "标题名称", prop: "attName" }];
// console.log(this.$filterDict(bg_type,val));
this.dialogTitle = val;
if (val === "提示单") {
this.newbgForm = {
...this.bgForm,
reminder: 1,
};
} else if (val === "转办单") {
this.newbgForm = {
...this.bgForm,
isturn: 1,
};
} else if (val === "专报") {
this.newbgForm = {
...this.bgForm,
sentimentReportType: 1,
};
} else if (val === "月报") {
this.newbgForm = {
...this.bgForm,
sentimentReportType: 2,
};
} else if (val === "深度报告") {
this.newbgForm = {
...this.bgForm,
sentimentReportType: 3,
type: val,
};
}
this.getyqbgType();
},
//
getyqbgType() {
yuqingListA(this.newbgForm).then((res) => {
listYqbg(this.newbgForm).then((res) => {
this.currentPageData = res.rows;
this.total = res.total;
this.dialogStatus = true;

Loading…
Cancel
Save