Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
c333cf55
提交
c333cf55
authored
3月 08, 2026
作者:
闫鹏
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'yp-dev' 到 'master'
Yp dev 查看合并请求
!144
上级
78df6244
7e6e75d4
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
171 行增加
和
129 行删除
+171
-129
exportControl.js
src/api/exportControl.js
+3
-5
index.vue
src/components/base/messageBubble/index.vue
+20
-48
index.vue
src/components/base/newsList/index.vue
+14
-17
index.vue
...ew/components/fourSuppress/components/addDomain/index.vue
+2
-1
index.vue
...w/components/fourSuppress/components/allElement/index.vue
+7
-0
worldCloudChart.js
...urSuppress/components/allElement/uitls/worldCloudChart.js
+15
-16
index.vue
...iew/components/fourSuppress/components/allUnion/index.vue
+38
-5
index.vue
src/views/decree/decreeLayout/deepdig/index.vue
+21
-9
index.vue
src/views/exportControl/index.vue
+22
-26
charts.js
src/views/exportControl/utils/charts.js
+29
-2
没有找到文件。
src/api/exportControl.js
浏览文件 @
c333cf55
...
...
@@ -51,7 +51,8 @@ export function getEntitiesDataInfo() {
method
:
"GET"
,
// url: '/api/entitiesDataInfo/latestInfoSelect',
// url: "/api/entitiesDataInfo/getLatestInfo",
url
:
"/api/sanctionList/export/getLatestInfo"
// url: "/api/sanctionList/export/getLatestInfo"
url
:
"/api/sanctionList/export/getLatestEntityListInfo"
})
);
}
...
...
@@ -121,7 +122,7 @@ export function getSanctionsInfoCount() {
* sanReason: string
* }[]>}
*/
export
function
getSanctionProcess
(
typeName
=
"实体清单"
,
pageNum
=
1
,
pageSize
=
10
,
isCn
=
false
)
{
export
function
getSanctionProcess
(
typeName
=
"实体清单"
,
pageNum
=
1
,
pageSize
=
10
,
isCn
=
false
)
{
return
request200
(
request
({
method
:
"POST"
,
...
...
@@ -835,7 +836,6 @@ export function getScientificImpactEntityList(startTime) {
);
}
/**
* 概览页--获取出口管制制裁措施
* @param {Object} data
...
...
@@ -854,6 +854,4 @@ export function getExportControlList(data) {
);
}
//
src/components/base/messageBubble/index.vue
浏览文件 @
c333cf55
...
...
@@ -6,7 +6,7 @@
<img
src=
"./message-icon.svg"
alt=
""
/>
</div>
<div
class=
"header-title"
>
<slot
name=
'title'
>
{{
"社交媒体"
}}
</slot>
<slot
name=
"title"
>
{{
"社交媒体"
}}
</slot>
</div>
<div
class=
"more"
@
click=
"handleToMoreNews"
>
{{
"更多 +"
}}
</div>
</div>
...
...
@@ -15,10 +15,12 @@
<div
class=
"avatar-container"
>
<img
:src=
"item[props.imageUrl] || avatarUser"
:alt=
"item[props.name]"
class=
"avatar"
/>
<div
class=
"avatar-containerOne"
v-if=
"isRepublicanParty"
><img
src=
"./image2.png"
alt=
""
class=
"avatar-imageOne"
/></div>
<div
class=
"avatar-containerTwo"
v-if=
"isUnitedStatesSenate"
><img
src=
"./image3.png"
alt=
""
class=
"avatar-imageTwo"
/></div>
<div
class=
"avatar-containerOne"
v-if=
"isRepublicanParty"
>
<img
src=
"./image2.png"
alt=
""
class=
"avatar-imageOne"
/>
</div>
<div
class=
"avatar-containerTwo"
v-if=
"isUnitedStatesSenate"
>
<img
src=
"./image3.png"
alt=
""
class=
"avatar-imageTwo"
/>
</div>
</div>
<div
class=
"bubble-container"
>
<div
class=
"bubble"
>
...
...
@@ -50,11 +52,10 @@
</div>
-->
</div>
</div>
</
template
>
<
script
setup
>
import
{
computed
}
from
'vue'
;
import
{
computed
}
from
"vue"
;
import
avatarUser
from
"@/assets/images/avatar_user.png"
;
const
emit
=
defineEmits
([
"click"
,
"info-click"
]);
...
...
@@ -89,34 +90,32 @@ const props = defineProps({
},
content
:
{
type
:
String
,
default
:
"content"
default
:
"content"
}
});
const
formattedTime
=
computed
(
(
index
)
=>
{
const
formattedTime
=
computed
(
index
=>
{
const
date
=
new
Date
(
index
);
if
(
isNaN
(
date
.
getTime
()))
{
return
index
;
// 如果不是有效日期,返回原值
}
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
"0"
);
const
day
=
String
(
date
.
getDate
());
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
);
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
"0"
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
"0"
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
"0"
);
// return `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}`;
return
`
${
month
}
月
${
day
}
日
${
hours
}
:
${
minutes
}
`
;
});
const
handleClickPerson
=
(
item
)
=>
{
const
handleClickPerson
=
item
=>
{
emit
(
"person-click"
,
item
);
};
const
handleInfoClick
=
(
item
)
=>
{
const
handleInfoClick
=
item
=>
{
emit
(
"info-click"
,
item
);
};
const
handleToMoreNews
=
(
item
)
=>
{
const
handleToMoreNews
=
item
=>
{
emit
(
"more-click"
,
item
);
};
</
script
>
...
...
@@ -164,13 +163,13 @@ const handleToMoreNews = (item) => {
}
.more
{
width
:
45
px
;
width
:
50
px
;
height
:
24px
;
position
:
absolute
;
top
:
12px
;
right
:
27px
;
color
:
rgb
(
5
,
95
,
194
);
font-family
:
'Source Han Sans CN'
;
font-family
:
"Source Han Sans CN"
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
24px
;
...
...
@@ -209,16 +208,13 @@ const handleToMoreNews = (item) => {
}
.avatar-containerOne
{
left
:
2px
;
top
:
29px
;
.avatar-imageOne
{
width
:
20px
;
height
:
20px
;
}
}
.avatar-containerTwo
{
...
...
@@ -226,14 +222,11 @@ const handleToMoreNews = (item) => {
top
:
29px
;
.avatar-imageTwo
{
width
:
20px
;
height
:
20px
;
}
}
.avatar
{
width
:
42px
;
height
:
42px
;
...
...
@@ -260,7 +253,6 @@ const handleToMoreNews = (item) => {
align-items
:
center
;
margin-bottom
:
5px
;
.name
{
color
:
rgb
(
59
,
65
,
75
);
font-family
:
"Source Han Sans CN"
;
...
...
@@ -290,7 +282,6 @@ const handleToMoreNews = (item) => {
line-height
:
24px
;
letter-spacing
:
0px
;
text-align
:
justify
;
}
.triangle
{
...
...
@@ -308,7 +299,7 @@ const handleToMoreNews = (item) => {
/* 内层:原有颜色的三角形,覆盖在外层上面,模拟描边效果 */
.
triangle
:
:
after
{
content
:
''
;
content
:
""
;
position
:
absolute
;
top
:
-8px
;
/* 向上偏移1px,对齐中心 */
...
...
@@ -320,31 +311,12 @@ const handleToMoreNews = (item) => {
border-bottom
:
8px
solid
transparent
;
border-right
:
8px
solid
rgba
(
246
,
250
,
255
,
1
);
}
}
}
}
}
}
/* 响应式设计 */
@media
(
max-width
:
768px
)
{
.message-bubble
{
...
...
src/components/base/newsList/index.vue
浏览文件 @
c333cf55
...
...
@@ -16,7 +16,9 @@
</div>
<div
class=
"right"
>
<div
class=
"right-top"
>
<div
class=
"title"
><span
class=
"text-inner"
>
{{
news
[
props
.
title
]
}}
</span></div>
<div
class=
"title"
>
<span
class=
"text-inner"
>
{{
news
[
props
.
title
]
}}
</span>
</div>
<div
class=
"time"
>
{{
news
[
props
.
from
]
}}
</div>
</div>
<div
class=
"right-footer"
>
{{
news
[
props
.
content
]
}}
</div>
...
...
@@ -29,7 +31,6 @@
<
script
setup
>
import
DefaultIconNews
from
"@/assets/icons/default-icon-news.png"
;
const
props
=
defineProps
({
// 新闻列表数据
newsList
:
{
type
:
Array
,
...
...
@@ -38,7 +39,7 @@ const props = defineProps({
img
:
{
type
:
String
,
default
:
'img'
default
:
"img"
},
title
:
{
type
:
String
,
...
...
@@ -51,15 +52,14 @@ const props = defineProps({
content
:
{
type
:
String
,
default
:
"content"
},
}
});
const
emit
=
defineEmits
([
'item-click'
,
'more-click'
]);
const
emit
=
defineEmits
([
"item-click"
,
"more-click"
]);
const
handleToMoreNews
=
()
=>
{
emit
(
'more-click'
)
emit
(
"more-click"
);
};
const
handleToNewsAnalysis
=
(
item
,
index
)
=>
{
emit
(
'item-click'
,
item
,
index
)
emit
(
"item-click"
,
item
,
index
);
};
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
@@ -74,7 +74,6 @@ const handleToNewsAnalysis = (item, index) => {
gap
:
0
!
important
;
overflow
:
hidden
;
.news-header
{
height
:
48px
!
important
;
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
)
!
important
;
...
...
@@ -105,7 +104,7 @@ const handleToNewsAnalysis = (item, index) => {
margin-left
:
17px
!
important
;
height
:
26px
!
important
;
color
:
var
(
--
color-main-active
)
!
important
;
font-family
:
'Source Han Sans CN'
!
important
;
font-family
:
"Source Han Sans CN"
!
important
;
font-size
:
20px
!
important
;
font-weight
:
700
!
important
;
line-height
:
26px
!
important
;
...
...
@@ -113,13 +112,13 @@ const handleToNewsAnalysis = (item, index) => {
}
.more
{
width
:
45
px
;
width
:
54
px
;
height
:
24px
;
position
:
absolute
;
top
:
12px
;
right
:
27px
;
color
:
rgba
(
20
,
89
,
187
,
1
);
font-family
:
'Source Han Sans CN'
;
font-family
:
"Source Han Sans CN"
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
24px
;
...
...
@@ -149,7 +148,6 @@ const handleToNewsAnalysis = (item, index) => {
.right-top
.text-inner
{
border-bottom-color
:
rgb
(
5
,
95
,
194
)
!
important
;
}
}
...
...
@@ -178,7 +176,7 @@ const handleToNewsAnalysis = (item, index) => {
width
:
500px
;
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
'Source Han Sans CN'
;
font-family
:
"Source Han Sans CN"
;
font-size
:
16px
;
font-weight
:
700
;
line-height
:
24px
;
...
...
@@ -188,7 +186,6 @@ const handleToNewsAnalysis = (item, index) => {
.text-inner
{
border-bottom
:
1px
solid
transparent
;
}
}
...
...
@@ -198,7 +195,7 @@ const handleToNewsAnalysis = (item, index) => {
height
:
22px
;
margin-top
:
14px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
'Source Han Sans CN'
;
font-family
:
"Source Han Sans CN"
;
font-size
:
14px
;
font-weight
:
400
;
line-height
:
22px
;
...
...
@@ -212,7 +209,7 @@ const handleToNewsAnalysis = (item, index) => {
width
:
657px
;
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
'Source Han Sans CN'
;
font-family
:
"Source Han Sans CN"
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
24px
;
...
...
src/views/ZMOverView/components/fourSuppress/components/addDomain/index.vue
浏览文件 @
c333cf55
...
...
@@ -4,7 +4,8 @@
<div
class=
"content-wrapper"
>
<div
class=
"btn-wrapper"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay(true)"
>
<div
class=
"cards-mask"
>
<div
class=
"btn-box"
:style=
"
{ transform: `translateX(-${currentIndex * (cardWidth + cardGap)}px)` }">
<!--
<div
class=
"btn-box"
:style=
"
{ transform: `translateX(-${currentIndex * (cardWidth + cardGap)}px)` }"> -->
<div
class=
"btn-box"
>
<div
class=
"btn-item-outer"
v-for=
"(item, indexx) in buttonsData"
:key=
"indexx"
>
<div
v-for=
"(value, index) in item"
...
...
src/views/ZMOverView/components/fourSuppress/components/allElement/index.vue
浏览文件 @
c333cf55
...
...
@@ -246,6 +246,7 @@
/>
<
div
class
=
"chart-header"
>
{{
"关键词云"
}}
<
/div
>
<
div
class
=
"box3Chart"
id
=
"box3Chart"
><
/div
>
<!--
<
Echarts
:
option
=
"usChinaSanctionTrendOptions"
height
=
"100%"
><
/Echarts> --
>
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -259,6 +260,7 @@ import { onMounted, ref, computed, inject, watch, onUnmounted } from "vue";
import
router
from
"@/router"
;
import
setChart
from
"@/utils/setChart"
;
import
getWordCloudChart
from
"./uitls/worldCloudChart"
;
import
"echarts-wordcloud"
;
import
{
getElementCount
,
getNewDynamics
,
...
...
@@ -268,6 +270,7 @@ import {
getKeyWordDown
,
getOrderInfo
}
from
"@/api/zmOverview/allElement"
;
import
Echarts
from
"@/components/Chart/index.vue"
;
const
activeDate
=
inject
(
"activeDate"
);
...
...
@@ -409,6 +412,7 @@ const handleGetBox2ChartData = async () => {
try
{
const
res
=
await
getKeyWordUp
(
params
);
console
.
log
(
"关键词云-上"
,
res
);
console
.
log
(
"关键词云-上 参数"
,
params
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
box2ChartData
.
value
=
res
.
data
.
map
(
item
=>
{
return
{
...
...
@@ -422,6 +426,8 @@ const handleGetBox2ChartData = async () => {
const
handleBox2Chart
=
async
()
=>
{
await
handleGetBox2ChartData
();
let
box2Chart
=
getWordCloudChart
(
box2ChartData
.
value
);
console
.
log
(
"关键词云-上 options =>"
,
box2Chart
);
console
.
log
(
"关键词云-上 box2ChartData =>"
,
box2ChartData
.
value
);
setChart
(
box2Chart
,
"box2Chart"
);
}
;
...
...
@@ -504,6 +510,7 @@ const handleGetBox3ChartData = async () => {
const
handleBox3Chart
=
async
()
=>
{
await
handleGetBox3ChartData
();
let
box3Chart
=
getWordCloudChart
(
box3ChartData
.
value
);
console
.
log
(
"关键词云-下"
,
box3Chart
);
setChart
(
box3Chart
,
"box3Chart"
);
}
;
...
...
src/views/ZMOverView/components/fourSuppress/components/allElement/uitls/worldCloudChart.js
浏览文件 @
c333cf55
const
getWordCloudChart
=
(
data
)
=>
{
const
getWordCloudChart
=
data
=>
{
const
option
=
{
grid
:
{
left
:
0
,
top
:
0
,
right
:
0
,
bottom
:
0
,
bottom
:
0
},
series
:
[
{
type
:
"wordCloud"
,
width
:
'80%'
,
height
:
'80%'
,
shape
:
"rect"
,
//
width
:
"80%"
,
height
:
"80%"
,
shape
:
"circle"
,
//
// 其他形状你可以使用形状路径
// 或者自定义路径
// shape: 'circle' // 圆形(默认)
...
...
@@ -31,6 +29,7 @@ const getWordCloudChart = (data) => {
drawOutOfBound
:
false
,
// 是否超出画布
// 字体
textStyle
:
{
fontweight
:
"bold"
,
// normal: {
// color: function () {
// return 'rgb(' + [
...
...
@@ -47,22 +46,23 @@ const getWordCloudChart = (data) => {
"rgba(220, 190, 68, 1)"
,
"rgba(96, 58, 186, 1)"
,
"rgba(32, 121, 69, 1)"
,
"rgba(22, 119, 255, 1)"
,
"rgba(22, 119, 255, 1)"
];
return
colors
[
parseInt
(
Math
.
random
()
*
colors
.
length
)];
},
emphasis
:
{
shadowBlur
:
5
,
shadowColor
:
"#333"
,
},
fontweight
:
"bold"
}
},
// 设置词云数据
data
:
data
,
},
],
data
:
data
}
]
};
return
option
}
return
option
;
}
;
export
default
getWordCloudChart
\ No newline at end of file
export
default
getWordCloudChart
;
src/views/ZMOverView/components/fourSuppress/components/allUnion/index.vue
浏览文件 @
c333cf55
...
...
@@ -969,6 +969,14 @@ const initRightDonut = async () => {
color
:
`rgba(${Math.floor(Math.random() * 256)
}
, ${Math.floor(Math.random() * 256)
}
, ${Math.floor(
Math.random() * 256
)
}
, 1)`
}
,
label
:
{
show
:
true
,
position
:
"outside"
,
fontWeight
:
"bold"
,
fontSize
:
14
,
color
:
"#333"
,
distance
:
10
}
}
;
let
item1
=
{
...
...
@@ -976,7 +984,15 @@ const initRightDonut = async () => {
value
:
res
.
data
[
i
].
amount
,
x
:
Math
.
random
()
*
10
,
y
:
Math
.
random
()
*
10
,
symbolSize
:
res
.
data
[
i
].
amount
*
9
symbolSize
:
res
.
data
[
i
].
amount
*
9
,
label
:
{
show
:
true
,
position
:
"outside"
,
fontWeight
:
"bold"
,
fontSize
:
14
,
color
:
"#333"
,
distance
:
10
}
}
;
// 先判断data中是否包含上述数据
...
...
@@ -1000,7 +1016,10 @@ const initRightDonut = async () => {
}
,
lineStyle
:
{
width
:
res
.
data
[
i
].
amount
,
curveness
:
0.2
curveness
:
0.3
,
color
:
`rgba(${Math.floor(Math.random() * 256)
}
, ${Math.floor(Math.random() * 100 + 100)
}
, ${Math.floor(
Math.random() * 256
)
}
, 0.6)`
}
}
;
...
...
@@ -1043,7 +1062,7 @@ const initRightDonut = async () => {
{
type
:
"graph"
,
layout
:
"circular"
,
symbolSize
:
5
0
,
symbolSize
:
8
0
,
roam
:
true
,
label
:
{
show
:
true
...
...
@@ -1051,7 +1070,8 @@ const initRightDonut = async () => {
edgeSymbol
:
[
"circle"
,
""
],
edgeSymbolSize
:
[
4
,
80
],
edgeLabel
:
{
fontSize
:
20
fontSize
:
20
,
show
:
false
}
,
data
:
data
,
// links: [],
...
...
@@ -1059,7 +1079,20 @@ const initRightDonut = async () => {
lineStyle
:
{
opacity
:
0.9
,
width
:
2
,
curveness
:
0
curveness
:
0.3
}
,
emphasis
:
{
focus
:
"adjacency"
,
lineStyle
:
{
width
:
4
}
,
label
:
{
show
:
true
,
position
:
"outside"
,
fontWeight
:
"bold"
,
fontSize
:
16
,
distance
:
10
}
}
}
]
...
...
src/views/decree/decreeLayout/deepdig/index.vue
浏览文件 @
c333cf55
...
...
@@ -4,7 +4,12 @@
<AnalysisBox
title=
"相关政令关联分析"
:showAllBtn=
"false"
>
<div
class=
"box1-main"
>
<div
class=
"left"
>
<el-empty
v-if=
"siderList.length === 0"
style=
"padding-top: 240px;"
description=
"暂无数据"
:image-size=
"100"
/>
<el-empty
v-if=
"siderList.length === 0"
style=
"padding-top: 240px"
description=
"暂无数据"
:image-size=
"100"
/>
<div
class=
"left-item"
:class=
"
{ leftItemActive: siderActiveIndex === index }"
...
...
@@ -66,7 +71,12 @@
<div
class=
"title"
>
{{
"政令主要内容"
}}
</div>
</div>
<div
class=
"list-main"
>
<el-empty
v-if=
"showList.length === 0"
style=
"padding-top: 150px;"
description=
"暂无数据"
:image-size=
"100"
/>
<el-empty
v-if=
"showList.length === 0"
style=
"padding-top: 150px"
description=
"暂无数据"
:image-size=
"100"
/>
<div
class=
"list-item"
v-for=
"(val, idx) in showList"
:key=
"idx"
>
<div
class=
"id"
>
{{
idx
+
1
}}
</div>
<div
class=
"title"
>
{{
val
.
content
}}
</div>
...
...
@@ -411,10 +421,11 @@ onMounted(() => {
margin
-
top
:
22
px
;
.
info
-
item
{
display
:
flex
;
height
:
30
px
;
min
-
height
:
30
px
;
max
-
height
:
60
px
;
margin
-
bottom
:
8
px
;
.
item
-
left
{
margin
-
top
:
3
px
;
//
margin-top: 3px;
width
:
100
px
;
height
:
24
px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
...
...
@@ -425,12 +436,12 @@ onMounted(() => {
}
.
item
-
right
{
width
:
769
px
;
height
:
30
px
;
//
height: 30px;
color
:
rgba
(
59
,
65
,
75
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
size
:
16
px
;
font
-
weight
:
400
;
line
-
height
:
30
px
;
line
-
height
:
25
px
;
}
.
item
-
right1
{
display
:
flex
;
...
...
@@ -491,7 +502,7 @@ onMounted(() => {
overflow
-
y
:
auto
;
.
list
-
item
{
width
:
1180
px
;
height
:
54
px
;
min
-
height
:
65
px
;
box
-
sizing
:
border
-
box
;
border
-
radius
:
4
px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
...
...
@@ -515,13 +526,14 @@ onMounted(() => {
.
title
{
margin
-
left
:
13
px
;
margin
-
top
:
12
px
;
height
:
30
px
;
margin
-
bottom
:
12
px
;
// height: 30px;
width
:
1100
px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
size
:
16
px
;
font
-
weight
:
400
;
line
-
height
:
30
px
;
line
-
height
:
25
px
;
}
.
open
{
width
:
16
px
;
...
...
src/views/exportControl/index.vue
浏览文件 @
c333cf55
...
...
@@ -112,13 +112,11 @@
<div
class=
"box1-top-content"
>
<div
class=
"box1-top-content-item"
>
<span
class=
"box1-top-content-item-title"
>
· 发布机构:
</span>
<span
class=
"box1-top-content-item-content"
>
{{
item
.
postOrgName
}}
</span>
<span
class=
"box1-top-content-item-content"
>
{{
item
.
postOrgName
}}
</span>
</div>
<div
class=
"box1-top-content-item"
>
<span
class=
"box1-top-content-item-title"
>
· 生效日期:
</span>
<span
class=
"box1-top-content-item-content"
>
{{
item
.
postDate
}}
</span>
<span
class=
"box1-top-content-item-content"
>
{{
item
.
postDate
}}
</span>
</div>
<div
class=
"box1-top-content-item"
>
<span
class=
"box1-top-content-item-title"
>
· 涉及领域:
</span>
...
...
@@ -356,8 +354,7 @@
<el-table-column
label=
"重点领域"
width=
"180"
>
<
template
#
default=
"scope"
>
<div
style=
"display: flex; align-items: center; gap: 5px"
>
<el-tag
v-for=
"tag in scope.row.tags"
:key=
"tag"
:type=
"getTagType(tag)"
>
{{
<el-tag
v-for=
"tag in scope.row.tags"
:key=
"tag"
:type=
"getTagType(tag)"
>
{{
tag
}}
</el-tag>
</div>
...
...
@@ -373,23 +370,22 @@
<el-row
:gutter=
"20"
style=
"width: 1600px; margin: 0 auto; height: 505px; margin-top: 16px"
>
<el-col
:span=
"8"
>
<custom-container
title=
"
制裁
领域分布"
:titleIcon=
"radarIcon"
height=
"480px"
>
<custom-container
title=
"
实体
领域分布"
:titleIcon=
"radarIcon"
height=
"480px"
>
<
template
#
header-right
>
<el-checkbox
v-model=
"domainChecked"
label=
"50%规则"
size=
"large"
/>
</
template
>
<
template
#
default
>
<EChart
:option=
"radarOption"
autoresize
:style=
"
{ height: '4
5
0px' }" />
<EChart
:option=
"radarOption"
autoresize
:style=
"
{ height: '4
6
0px' }" />
</
template
>
</custom-container>
</el-col>
<el-col
:span=
"16"
>
<custom-container
title=
"
制裁
清单数量增长趋势"
:titleIcon=
"qushiIcon"
height=
"480px"
>
<custom-container
title=
"
实体
清单数量增长趋势"
:titleIcon=
"qushiIcon"
height=
"480px"
>
<
template
#
header-right
>
<div
style=
"display: flex; align-items: center; gap: 16px"
>
<el-checkbox
v-model=
"trendChecked"
label=
"50%规则"
size=
"large"
/>
<el-select
v-model=
"selectedEntityId"
placeholder=
"请选择清单类型"
style=
"width: 160px"
>
<el-option
v-for=
"item in infoList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.id"
/>
<el-option
v-for=
"item in infoList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.id"
/>
</el-select>
</div>
</
template
>
...
...
@@ -419,8 +415,7 @@
<template
#
default
>
<div
class=
"box4"
>
<div
style=
"height: 90%; overflow-y: auto; padding-top: 10px"
>
<div
class=
"box4-item"
v-for=
"(item, idx) in sanctionProcessList"
:key=
"item.title"
>
<div
class=
"box4-item"
v-for=
"(item, idx) in sanctionProcessList"
:key=
"item.title"
>
<div
class=
"box4-item-left"
>
<el-image
:src=
"dotIcon"
alt=
"图片"
class=
"box4-item-left-icon"
/>
<div
...
...
@@ -502,8 +497,7 @@
)?.[
0
]
}}
</div>
<CommonPrompt
:content=
"scope.row.name"
style=
"flex: 1; overflow: hidden"
/>
<CommonPrompt
:content=
"scope.row.name"
style=
"flex: 1; overflow: hidden"
/>
</div>
</
template
>
</el-table-column>
...
...
@@ -511,8 +505,7 @@
<el-table-column
prop=
"domains"
label=
"涉及领域"
min-width=
"150"
>
<
template
#
default=
"scope"
>
<div
class=
"domain-tags"
>
<el-tag
v-for=
"tag in scope.row.domains"
:key=
"tag"
:type=
"getTagType(tag)"
>
{{
<el-tag
v-for=
"tag in scope.row.domains"
:key=
"tag"
:type=
"getTagType(tag)"
>
{{
tag
}}
</el-tag>
</div>
...
...
@@ -600,8 +593,7 @@
<div
class=
"left-main"
>
<el-checkbox-group
v-model=
"checkedTech"
>
<div
class=
"checkbox-grid"
>
<el-checkbox
v-for=
"item in techOptions"
:key=
"item.value"
:label=
"item.value"
>
{{
<el-checkbox
v-for=
"item in techOptions"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-checkbox>
</div>
...
...
@@ -634,12 +626,10 @@
</div>
<img
:src=
"item.orgLogoUrl || comTitle"
alt=
""
/>
<div
class=
"main"
>
<div
class=
"main-title"
@
click=
"handleTitleClick(item)"
>
{{
item
.
title
}}
</div>
<div
class=
"main-title"
@
click=
"handleTitleClick(item)"
>
{{
item
.
title
}}
</div>
<div
class=
"main-desc"
>
{{
item
.
desc
}}
</div>
<div
class=
"tag-box"
>
<div
v-for=
"tag in item.tags"
:key=
"tag"
class=
"tag-item"
>
{{
tag
}}
</div>
<div
v-for=
"tag in item.tags"
:key=
"tag"
class=
"tag-item"
>
{{
tag
}}
</div>
</div>
<div
:class=
"
{ 'count-tag': item.countTag }">
{{
item
.
countTag
}}
</div>
...
...
@@ -711,7 +701,7 @@
</template>
<
script
setup
>
import
NewsList
from
"@/components/base/
N
ewsList/index.vue"
;
import
NewsList
from
"@/components/base/
n
ewsList/index.vue"
;
import
RiskSignal
from
"@/components/RiskSignal/RiskSignal.vue"
;
import
{
onMounted
,
ref
,
computed
,
reactive
,
shallowRef
,
watch
,
nextTick
}
from
"vue"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
...
...
@@ -1160,6 +1150,7 @@ const radarOption = ref({
confine
:
true
},
legend
:
{
show
:
false
,
top
:
"0%"
,
icon
:
"circle"
,
itemWidth
:
12
,
...
...
@@ -1175,9 +1166,13 @@ const radarOption = ref({
},
data
:
[]
},
grid
:
{
top
:
"5%"
,
bottom
:
"5%"
},
radar
:
{
radius
:
"
55
%"
,
center
:
[
"50%"
,
"5
5
%"
],
radius
:
"
60
%"
,
center
:
[
"50%"
,
"5
0
%"
],
// shape: 'circle',
indicator
:
[],
axisName
:
{
...
...
@@ -3522,6 +3517,7 @@ const handleMediaClick = item => {
margin-top
:
21px
;
height
:
450px
;
display
:
flex
;
gap
:
20px
;
.center-center-news
{
flex-shrink
:
0
;
...
...
src/views/exportControl/utils/charts.js
浏览文件 @
c333cf55
...
...
@@ -1001,12 +1001,39 @@ export const getMultipleBarChart_m = object => {
},
xAxis
:
{
type
:
"category"
,
data
:
names
data
:
names
,
axisLabel
:
{
margin
:
20
},
axisLabel
:
{
formatter
:
"{value} 年"
,
color
:
"rgba(95, 101, 108, 1)"
,
margin
:
20
},
axisLine
:
{
lineStyle
:
{
color
:
"rgb(231, 243, 255)"
,
width
:
1
}
},
axisTick
:
{
show
:
false
}
},
yAxis
:
{
type
:
"value"
,
splitNumber
:
5
,
alignTicks
:
false
alignTicks
:
false
,
name
:
"个"
,
nameLocation
:
"end"
,
nameGap
:
10
,
nameTextStyle
:
{
color
:
"rgba(95, 101, 108, 1)"
,
fontSize
:
14
,
fontWeight
:
400
,
fontFamily
:
"Microsoft YaHei"
,
padding
:
[
0
,
0
,
0
,
0
]
}
},
series
:
datas
};
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论