Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
2
合并请求
2
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
adf6d2a8
提交
adf6d2a8
authored
12月 26, 2025
作者:
胡卉清
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev_hhq' 到 'master'
部分显示问题修复 查看合并请求
!63
上级
bef8ac89
c861a4c8
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
132 行增加
和
79 行删除
+132
-79
App.vue
src/App.vue
+5
-0
index.vue
src/views/thinkTank/ReportDetail/index.vue
+26
-10
index.vue
src/views/thinkTank/ReportDetail/policyTracking/index.vue
+45
-45
index.vue
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
+22
-12
index.vue
src/views/thinkTank/index.vue
+34
-12
没有找到文件。
src/App.vue
浏览文件 @
adf6d2a8
...
...
@@ -141,6 +141,7 @@ body {
}
.el-popover
{
width
:
100%
;
font-family
:
"Microsoft YaHei"
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-style
:
Regular
;
...
...
@@ -150,6 +151,10 @@ body {
letter-spacing
:
0px
;
text-align
:
justify
;
}
.el-popper
[
data-popper-placement
^=
top
]>
.el-popper__arrow
:before
{
display
:
none
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/thinkTank/ReportDetail/index.vue
浏览文件 @
adf6d2a8
...
...
@@ -3,19 +3,21 @@
<div
class=
"header"
>
<div
class=
"header-top"
>
<div
class=
"header-top-left"
>
<div
class=
"title"
>
{{
"中美经济竞争:复杂经济和地缘政治关系中的收益和风险"
}}
</div>
<div
class=
"en-title"
>
{{
"U.S.-China Economic CompetitionGains and Risks in a Complex Economic and Geopolitical Relationship"
}}
</div>
<div
class=
"tag-box"
>
<div
class=
"tag"
>
{{
"外交"
}}
</div>
<div
class=
"tag"
>
{{
"军事"
}}
</div>
<div
class=
"tag"
>
{{
"经济"
}}
</div>
<img
:src=
"thinkInfo.contentUrl"
alt=
""
/>
<div>
<div
class=
"title"
>
{{
thinkInfo
.
name
}}
</div>
<div
class=
"en-title"
>
{{
thinkInfo
.
ename
}}
</div>
<div
class=
"tag-box"
v-for=
"value in thinkInfo.tags"
>
<div
class=
"tag"
>
{{
value
}}
</div>
</div>
</div>
</div>
<div
class=
"header-top-right"
>
<div
class=
"name"
>
{{
"兰德科技智库"
}}
</div>
<div
class=
"time"
>
{{
"2025年6月23日"
}}
</div>
<div
class=
"name"
>
{{
thinkInfo
.
thinkTankName
}}
</div>
<div
class=
"time"
>
{{
thinkInfo
.
times
}}
</div>
</div>
</div>
<div
class=
"header-bottom"
>
...
...
@@ -81,6 +83,9 @@ import {
import
{
useRouter
}
from
"vue-router"
;
const
router
=
useRouter
();
const
reportUrl
=
ref
(
''
)
const
thinkInfo
=
ref
({})
// 获取报告全局信息
const
handleGetThinkTankReportSummary
=
async
()
=>
{
try
{
...
...
@@ -89,6 +94,7 @@ const handleGetThinkTankReportSummary = async () => {
console
.
log
(
"报告全局信息"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
reportUrl
.
value
=
res
.
data
.
reportUrl
thinkInfo
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取报告全局信息error"
,
error
);
...
...
@@ -130,7 +136,15 @@ onMounted(async () => {
margin-right
:
160px
;
.header-top-left
{
display
:
flex
;
img
{
width
:
88px
;
height
:
88px
}
.title
{
margin-left
:
20px
;
height
:
26px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
...
...
@@ -142,6 +156,7 @@ onMounted(async () => {
}
.en-title
{
margin-left
:
20px
;
height
:
24px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
Microsoft
YaHei
;
...
...
@@ -156,6 +171,7 @@ onMounted(async () => {
margin-top
:
11px
;
display
:
flex
;
gap
:
8px
;
margin-left
:
20px
;
.tag
{
height
:
26px
;
...
...
src/views/thinkTank/ReportDetail/policyTracking/index.vue
浏览文件 @
adf6d2a8
...
...
@@ -76,26 +76,26 @@
<div
class=
"point"
>
<img
src=
"@/assets/images/dot.png"
alt=
""
/>
</div>
<div
class=
"line"
v-if=
"index
<
5
"
></div>
<div
class=
"line"
></div>
</div>
<div
class=
"box2-item-center"
>
<div
class=
"title"
>
{{
item
.
sjbt
}}
</div>
<div
class=
"content"
>
{{
item
.
sjnr
}}
</div>
<div
class=
"title"
>
{{
item
.
newsTitle
}}
</div>
<div
class=
"content"
>
{{
item
.
newsContent
}}
</div>
</div>
<div
class=
"box2-item-right"
>
<div
class=
"time"
>
{{
item
.
tim
e
}}
</div>
<div
class=
"time"
>
{{
item
.
newsDat
e
}}
</div>
<div
class=
"img-box"
>
<img
:src=
"item.
imageUrl
"
alt=
""
/>
<img
:src=
"item.
newsImage
"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"box2-footer"
>
<
!--
<
div
class=
"box2-footer"
>
<div
class=
"text"
>
{{
"查看更多"
}}
</div>
<div
class=
"icon"
>
<img
src=
"@/assets/images/icon-double-down.png"
alt=
""
/>
</div>
</div>
</div>
-->
</div>
</div>
</
template
>
...
...
@@ -277,42 +277,42 @@ const handleGetThinkTankReportPolicy = async () => {
// 相关政策动态
const
box2Data
=
ref
([
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
},
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
},
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
},
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
},
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
},
{
title
:
"这是示例标题a"
,
content
:
"这是示例内容"
,
time
:
"2025-08-30"
,
img
:
1
}
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
},
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
},
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
},
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
},
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
},
//
{
//
title: "这是示例标题a",
//
content: "这是示例内容",
//
time: "2025-08-30",
//
img: 1
//
}
]);
const
handleGetThinkTankReportPolicyAction
=
async
()
=>
{
...
...
@@ -435,7 +435,7 @@ onMounted(async () => {
overflow-y
:
auto
;
.box1-item
{
height
:
128px
;
//
height: 128px;
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
display
:
flex
;
position
:
relative
;
...
...
@@ -462,7 +462,7 @@ onMounted(async () => {
.title
{
margin-top
:
16px
;
height
:
24px
;
//
height: 24px;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
18px
;
...
...
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
浏览文件 @
adf6d2a8
...
...
@@ -82,10 +82,10 @@
</div>
<div
class=
"right"
>
<div
class=
"tag"
v-for=
"(val, idx) in item.hylyList"
:key=
"idx"
>
{{
val
.
name
}}
{{
val
}}
</div>
<div
class=
"tag"
v-for=
"(val, idx) in item.serialNum"
:key=
"idx"
>
{{
val
.
name
}}
{{
val
}}
</div>
</div>
<div
class=
"more"
>
...
...
@@ -381,7 +381,7 @@ const handleCurrentChange = page => {
const
handleGetThinkTankReportContent
=
async
()
=>
{
try
{
const
res
=
await
getThinkTankReportContent
(
router
.
currentRoute
.
_value
.
params
.
id
);
console
.
log
(
"主要观点"
,
res
.
data
.
totalElements
);
console
.
log
(
"主要观点"
,
res
.
data
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
majorOpinions
.
value
=
res
.
data
.
content
;
total
.
value
=
res
.
data
.
totalElements
...
...
@@ -646,15 +646,18 @@ onMounted(() => {
}
.center
{
width
:
770px
;
height
:
64px
;
width
:
910px
;
margin-left
:
13px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
display
:
flex
;
align-items
:
center
;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
.title
{
margin-top
:
12px
;
height
:
26
px
;
// height: 55
px;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
...
...
@@ -663,8 +666,12 @@ onMounted(() => {
letter-spacing
:
0px
;
text-align
:
left
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
// text-overflow: ellipsis;
// white-space: nowrap;
display
:
-
webkit-box
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
}
.desc
{
...
...
@@ -687,8 +694,11 @@ onMounted(() => {
width
:
180px
;
height
:
22px
;
display
:
flex
;
gap
:
8px
;
justify-content
:
flex-end
;
margin-top
:
26px
;
margin-left
:
20px
;
height
:
22px
;
display
:
flex
;
.tag
{
height
:
22px
;
...
...
src/views/thinkTank/index.vue
浏览文件 @
adf6d2a8
...
...
@@ -78,7 +78,7 @@
<div
class=
"title-right"
>
{{
item
.
country
}}
</div>
</div>
<el-popover
effect=
"dark"
trigger=
"click"
:content=
"item.desc"
placement=
"top-start"
>
<el-popover
effect=
"dark"
:content=
"item.desc"
placement=
"top-start"
>
<template
#
reference
>
<div
class=
"content"
>
{{
item
.
desc
}}
</div>
</
template
>
...
...
@@ -168,9 +168,14 @@
{{ item.status || "一般风险" }}
</div>
<div
class=
"item-right"
>
<div
class=
"text"
>
{{ item.title }}
</div>
<el-popover
effect=
"dark"
:content=
"item.title"
placement=
"top-start"
>
<
template
#
reference
>
<div
class=
"text"
>
{{
item
.
title
}}
</div>
</
template
>
</el-popover>
<div
class=
"time"
>
{{ item.time }}
</div>
</div>
</div>
...
...
@@ -205,7 +210,13 @@
<div
class=
"title"
>
{{ news.newsTitle }}
</div>
<div
class=
"time"
>
{{ news.newsOrg }}
</div>
</div>
<div
class=
"right-footer"
>
{{ news.newsContent }}
</div>
<el-popover
effect=
"dark"
:content=
"news.newsContent"
placement=
"top-start"
>
<
template
#
reference
>
<div
class=
"right-footer"
>
{{
news
.
newsContent
}}
</div>
</
template
>
</el-popover>
</div>
</div>
</div>
...
...
@@ -314,10 +325,15 @@
:class=
"{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ index + 1 }}
</div>
<div
class=
"item-center"
:class=
"{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ item.clause }}
</div>
<el-popover
effect=
"dark"
:content=
"item.clause"
placement=
"top-start"
>
<
template
#
reference
>
<div
class=
"item-center"
:class=
"
{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }">
{{
item
.
clause
}}
</div>
</
template
>
</el-popover>
<div
class=
"item-right"
>
{{ `${item.count}份报告 >` }}
</div>
</div>
</div>
...
...
@@ -388,9 +404,14 @@
<div
class=
"footer-card-top"
>
<img
:src=
"item.imageUrl"
alt=
""
/>
</div>
<div
class=
"footer-card-title"
>
{{ item.name }}
</div>
<el-popover
effect=
"dark"
:content=
"item.name"
placement=
"top-start"
>
<
template
#
reference
>
<div
class=
"footer-card-title"
>
{{
item
.
name
}}
</div>
</
template
>
</el-popover>
<div
class=
"footer-card-footer"
>
<div
class=
"time"
>
{{ item.times }}
</div>
<div
class=
"from"
>
{{ item.thinkTankName }}
</div>
...
...
@@ -2178,6 +2199,7 @@ onMounted(async () => {
}
.time
{
width
:
90px
;
margin-left
:
10px
;
line-height
:
47px
;
color
:
rgba
(
132
,
136
,
142
,
1
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论