Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
b243f69b
提交
b243f69b
authored
12月 19, 2025
作者:
闫鹏
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'yp-dev' 到 'master'
Yp dev 查看合并请求
!47
上级
6db3f5e1
34ad808f
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
91 行增加
和
17 行删除
+91
-17
exportControl.js
src/api/exportControl.js
+13
-1
panel1.vue
src/views/exportControl/analysis/components/panel1.vue
+13
-2
dialog.vue
src/views/exportControl/components/dialog.vue
+1
-1
news.vue
src/views/exportControl/components/news.vue
+2
-1
index.vue
src/views/exportControl/index.vue
+62
-12
没有找到文件。
src/api/exportControl.js
浏览文件 @
b243f69b
...
...
@@ -176,7 +176,7 @@ export function getRiskSignal(moduleId = "0103") {
/**
* 社交媒体
*/
*/
export
function
getSocialMediaInfo
(
moduleId
=
"0103"
)
{
return
request200
(
request
({
...
...
@@ -186,6 +186,18 @@ export function getSocialMediaInfo(moduleId = "0103") {
);
}
/**
* 新闻资讯
*/
export
function
getNewsInfo
(
moduleId
=
"0103"
)
{
return
request200
(
request
({
method
:
"GET"
,
url
:
`/api/commonFeature/news/
${
moduleId
}
`
})
);
}
/**
* 查询重点人物
* @returns {Promise<{
...
...
src/views/exportControl/analysis/components/panel1.vue
浏览文件 @
b243f69b
...
...
@@ -124,6 +124,9 @@ const fetchKeyEntityList = async (date = "2025-11-11", keyword = "") => {
};
onMounted
(
async
()
=>
{
// 确保默认值正确设置
domainValue
.
value
=
domainOptions
[
0
].
value
;
typeValue
.
value
=
typeOptions
[
0
].
value
;
try
{
const
[
entitiesGrowthTrendData
,
entitiesUpdateCountData
]
=
await
Promise
.
all
([
getEntitiesGrowthTrend
(),
...
...
@@ -163,6 +166,10 @@ onMounted(async () => {
}
});
const
domainOptions
=
[
{
value
:
""
,
label
:
"全部"
},
{
value
:
"1"
,
label
:
"人工智能"
...
...
@@ -249,6 +256,10 @@ const domainOptions = [
}
];
const
typeOptions
=
[
{
value
:
""
,
label
:
"全部"
},
{
value
:
"1"
,
label
:
"人物"
...
...
@@ -262,8 +273,8 @@ const typeOptions = [
label
:
"地址"
}
];
const
domainValue
=
ref
(
domainOptions
[
0
].
value
);
const
typeValue
=
ref
(
typeOptions
[
1
].
value
);
const
domainValue
=
ref
(
""
);
const
typeValue
=
ref
(
""
);
const
bar1Option
=
shallowRef
({});
const
bar1DataIsEmpty
=
ref
(
false
);
watch
(
...
...
src/views/exportControl/components/dialog.vue
浏览文件 @
b243f69b
...
...
@@ -19,7 +19,7 @@
</
template
>
<
script
setup
>
const
emit
=
defineEmits
([
"click"
]);
const
emit
=
defineEmits
([
"click"
,
"info-click"
]);
defineProps
({
avatar
:
{
type
:
String
,
...
...
src/views/exportControl/components/news.vue
浏览文件 @
b243f69b
...
...
@@ -2,7 +2,7 @@
<div
class=
"news-list"
>
<div
v-for=
"(item, index) in listData"
:key=
"index"
class=
"news-item"
@
click=
"handleItemClick(item)"
>
<div
class=
"news-image"
>
<img
:src=
"item.image"
:alt=
"item.title"
/>
<img
:src=
"item.image
|| newsImg
"
:alt=
"item.title"
/>
</div>
<div
class=
"news-content"
>
<div
class=
"news-header"
>
...
...
@@ -19,6 +19,7 @@
</
template
>
<
script
setup
>
import
newsImg
from
"@/assets/images/news-img.png"
;
const
props
=
defineProps
({
listData
:
{
type
:
Array
,
...
...
src/views/exportControl/index.vue
浏览文件 @
b243f69b
...
...
@@ -220,7 +220,7 @@
<
template
#
default
>
<div
class=
"news-list"
>
<NewsList
:list-data=
"
customNewsData
"
/>
<NewsList
:list-data=
"
newsList"
@
click=
"handleNewsInfoClick
"
/>
</div>
</
template
>
</custom-container>
...
...
@@ -232,7 +232,7 @@
<MessageBubble
v-for=
"(item, index) in socialMediaList"
@
click=
"handlePerClick(item)"
@
info-click=
"handle
Info
Click(item)"
@
info-click=
"handle
Media
Click(item)"
:key=
"index"
:avatar=
"item.avatar"
:name=
"item.name"
...
...
@@ -607,6 +607,17 @@
</
template
>
</el-dialog>
</div>
<el-dialog
v-model=
"mediaVisible"
title=
"社交媒体信息"
width=
"500"
:before-close=
"handleMediaClose"
>
<div
class=
"dialog-content"
>
{{ currentMedia }}
</div>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<!--
<el-button
@
click=
"mediaVisible = false"
>
Cancel
</el-button>
-->
<el-button
type=
"primary"
@
click=
"mediaVisible = false"
>
确定
</el-button>
</div>
</
template
>
</el-dialog>
</template>
<
script
setup
>
...
...
@@ -664,14 +675,6 @@ import bill10 from "./assets/images/bill10.png";
import
bill11
from
"./assets/images/bill11.png"
;
import
bill12
from
"./assets/images/bill12.png"
;
import
fudanIcon
from
"./assets/images/fudan.png"
;
import
fukongIcon
from
"./assets/images/fukong.png"
;
import
hualingIcon
from
"./assets/images/hualing.png"
;
import
jimuxiIcon
from
"./assets/images/jimuxi.png"
;
import
shenggongIcon
from
"./assets/images/shenggong.png"
;
import
shoushiIcon
from
"./assets/images/shoushi.png"
;
import
tianyiIcon
from
"./assets/images/tianyi.png"
;
import
aircasIcon
from
"./assets/images/aircas.png"
;
import
{
getEntitiesDataCount
,
getEntitiesDataInfo
,
...
...
@@ -682,7 +685,8 @@ import {
getSanctionProcess
,
getSanDomainCount
,
getRiskSignal
,
getSocialMediaInfo
getSocialMediaInfo
,
getNewsInfo
}
from
"@/api/exportControl"
;
import
{
getMultipleBarChart_m
}
from
"./utils/charts"
;
import
{
formatAnyDateToChinese
}
from
"./utils"
;
...
...
@@ -718,6 +722,9 @@ const riskSignalList = ref([]);
// 社交媒体信息
const
socialMediaList
=
ref
([]);
// 新闻资讯
const
newsList
=
ref
([]);
onMounted
(
async
()
=>
{
try
{
const
[
dataCount
,
entitiesDataInfo
,
industryCountByYear
,
countDomainByYear
]
=
await
Promise
.
all
([
...
...
@@ -762,6 +769,8 @@ onMounted(async () => {
await
fetchRiskSignals
(
"0103"
);
// 获取社交媒体信息
await
fetchSocialMediaInfo
();
// 获取新闻资讯
await
fetchNewsInfo
();
await
fetchEntitiesList
(
currentPage
.
value
,
pageSize
.
value
);
await
fetchSanctionProcess
(
sanctionPage
.
value
,
10
);
// 获取雷达图数据
...
...
@@ -828,7 +837,7 @@ watch(
// trendOption.value = getMultipleBarChart_m(res);
// }
// 整理数据并更新趋势图
if
(
res
&&
res
.
yearDomainCount
)
{
if
(
res
&&
res
[
0
]
.
yearDomainCount
)
{
trendOption
.
value
=
processYearDomainCountData
(
res
[
0
].
yearDomainCount
);
}
}
...
...
@@ -1179,6 +1188,24 @@ const fetchSocialMediaInfo = async () => {
}
};
// 添加获取新闻资讯的方法
const
fetchNewsInfo
=
async
()
=>
{
try
{
const
data
=
await
getNewsInfo
();
if
(
data
&&
Array
.
isArray
(
data
))
{
newsList
.
value
=
data
.
map
(
item
=>
({
avatar
:
item
.
newsImage
,
name
:
item
.
newsTitle
,
time
:
formatTime
(
item
.
newsDate
),
source
:
item
.
newsOrg
,
description
:
item
.
newsContent
}));
}
}
catch
(
err
)
{
console
.
error
(
"获取新闻资讯失败:"
,
err
);
}
};
const
handlePerClick
=
item
=>
{
console
.
log
(
"点击了社交媒体消息:"
,
item
);
const
route
=
router
.
resolve
({
...
...
@@ -1406,6 +1433,18 @@ const handleToMoreNews = () => {
window
.
open
(
route
.
href
,
"_blank"
);
};
const
handleNewsInfoClick
=
item
=>
{
console
.
log
(
"点击了社交媒体消息的更多信息:"
,
item
);
const
route
=
router
.
resolve
({
path
:
"/newsAnalysis"
,
query
:
{
newsId
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
};
onMounted
(
async
()
=>
{
handleGetHylyList
();
let
chart1
=
getMultiLineChart
(
chart1Data
.
value
.
title
,
chart1Data
.
value
.
data
[
0
].
value
,
chart1Data
.
value
.
data
[
1
].
value
);
...
...
@@ -1422,6 +1461,17 @@ const handleOrgClick = item => {
currentOrgList
.
value
=
item
.
ruleOrgList
;
dialogVisible
.
value
=
true
;
};
const
mediaVisible
=
ref
(
false
);
const
currentMedia
=
ref
(
""
);
const
handleMediaClose
=
()
=>
{
mediaVisible
.
value
=
false
;
};
const
handleMediaClick
=
item
=>
{
console
.
log
(
item
,
item
.
name
);
currentMedia
.
value
=
item
.
content
;
mediaVisible
.
value
=
true
;
};
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论