Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
a924d505
提交
a924d505
authored
12月 18, 2025
作者:
huhuiqing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
智库动态接口对接
上级
cba2ee51
全部展开
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
104 行增加
和
9 行删除
+104
-9
overview.js
src/api/thinkTank/overview.js
+29
-0
index.vue
src/views/thinkTank/ThinkTankDetail/index.vue
+72
-7
index.vue
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
+0
-0
index.vue
src/views/thinkTank/index.vue
+3
-2
没有找到文件。
src/api/thinkTank/overview.js
浏览文件 @
a924d505
...
...
@@ -82,3 +82,32 @@ export function getThinkTankReport(params) {
params
:
params
})
}
/********* 智库信息 */
//智库百科:获取全局信息
export
function
getThinkTankSummary
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/summary/
${
params
.
id
}
`
,
})
}
//智库报告:获取智库报告类型
export
function
getThinkDynamicsReportType
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/reportType`
,
})
}
//智库动态:获取智库报告
export
function
getThinkDynamicsReport
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/report/
${
params
.
id
}
/
${
params
.
startDate
}
`
,
params
:
params
.
parmas
})
}
src/views/thinkTank/ThinkTankDetail/index.vue
浏览文件 @
a924d505
...
...
@@ -7,15 +7,15 @@
</div>
<div
class=
"header-top-center"
>
<div
class=
"center-top"
>
<div
class=
"name"
>
{{
"兰德公司"
}}
</div>
<div
class=
"e-name"
>
{{
"RAND Corporation"
}}
</div>
<div
class=
"name"
>
{{
thinkTank
.
name
}}
</div>
<div
class=
"e-name"
>
{{
thinkTank
.
ename
}}
</div>
</div>
<div
class=
"center-center"
>
{{
"全球顶尖政策研究机构,专注于国家安全、科技政策、医疗卫生、能源政策、公共安全等领域的研究。 "
}}
{{
thinkTank
.
describe
}}
</div>
<div
class=
"center-footer"
>
<div
class=
"tag"
>
{{
"国家安全"
}}
</div>
<div
class=
"tag"
>
{{
"科技政策"
}}
</div>
<div
class=
"tag"
v-for=
"tag in thinkTank.tags"
>
{{
tag
.
industryName
}}
</div>
</div>
</div>
<!--
<div
class=
"header-top-right"
>
{{
'查看智库官网'
}}
</div>
-->
...
...
@@ -58,19 +58,44 @@ import { ref, reactive, computed, onMounted } from "vue";
import
ThinkDaynamics
from
"./thinkDynamics/index.vue"
import
PolicyTracking
from
"./PolicyTracking/index.vue"
;
import
ThinkInfo
from
"./thinkInfo/index.vue"
;
import
{
getThinkTankSummary
}
from
"@/api/thinkTank/overview"
;
import
{
useRouter
}
from
"vue-router"
;
const
router
=
useRouter
();
const
tabActiveName
=
ref
(
"智库动态"
);
const
switchTab
=
name
=>
{
tabActiveName
.
value
=
name
;
};
const
thinkTank
=
ref
({})
// 获取智库基本信息
const
handleGetThinkTankSummary
=
async
()
=>
{
try
{
const
parmas
=
{
id
:
router
.
currentRoute
.
_value
.
params
.
id
}
const
res
=
await
getThinkTankSummary
(
parmas
);
console
.
log
(
"智库信息"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
thinkTank
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取智库列表error"
,
error
);
}
};
onMounted
(
async
()
=>
{
handleGetThinkTankSummary
()
});
</
script
>
<
style
lang=
"scss"
scoped
>
.wrap
{
width
:
1920px
;
height
:
984px
;
.header
{
width
:
1920px
;
height
:
188px
;
...
...
@@ -81,18 +106,23 @@ const switchTab = name => {
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
position
:
relative
;
.header-top
{
margin-top
:
24px
;
display
:
flex
;
.header-top-left
{
width
:
88px
;
height
:
88px
;
background
:
purple
;
}
.header-top-center
{
margin-left
:
22px
;
.center-top
{
display
:
flex
;
.name
{
height
:
26px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
...
...
@@ -103,6 +133,7 @@ const switchTab = name => {
letter-spacing
:
0px
;
text-align
:
left
;
}
.e-name
{
margin-left
:
11px
;
height
:
26px
;
...
...
@@ -115,6 +146,7 @@ const switchTab = name => {
text-align
:
left
;
}
}
.center-center
{
margin-top
:
4px
;
width
:
769px
;
...
...
@@ -126,10 +158,12 @@ const switchTab = name => {
line-height
:
24px
;
letter-spacing
:
0px
;
}
.center-footer
{
margin-top
:
9px
;
display
:
flex
;
gap
:
8px
;
.tag
{
height
:
26px
;
line-height
:
26px
;
...
...
@@ -148,6 +182,7 @@ const switchTab = name => {
}
}
}
.header-footer
{
width
:
340px
;
height
:
48px
;
...
...
@@ -156,8 +191,9 @@ const switchTab = name => {
left
:
160px
;
display
:
flex
;
gap
:
24px
;
.tab
{
width
:
9
2
px
;
width
:
9
4
px
;
height
:
48px
;
display
:
flex
;
align-items
:
center
;
...
...
@@ -165,14 +201,17 @@ const switchTab = name => {
gap
:
4px
;
cursor
:
pointer
;
border-bottom
:
2px
solid
transparent
;
.icon
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.text
{
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
...
...
@@ -181,23 +220,28 @@ const switchTab = name => {
font-weight
:
400
;
line-height
:
24px
;
}
.textActive
{
color
:
rgba
(
5
,
95
,
194
,
1
);
font-weight
:
700
;
}
}
.tabActive
{
border-bottom
:
2px
solid
rgba
(
5
,
95
,
194
,
1
);
}
}
}
.main
{
margin
:
0
auto
;
width
:
1600px
;
.main-header
{
height
:
64px
;
display
:
flex
;
justify-content
:
space-between
;
.search-box
{
margin-top
:
16px
;
display
:
flex
;
...
...
@@ -207,25 +251,30 @@ const switchTab = name => {
border
:
1px
solid
rgba
(
230
,
231
,
232
,
1
);
border-radius
:
4px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
.icon
{
width
:
16px
;
height
:
16px
;
margin
:
8px
7px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
}
}
}
.select-box
{
margin-top
:
16px
;
margin-right
:
5px
;
}
}
.main-content
{
display
:
flex
;
gap
:
16px
;
.left
{
width
:
300px
;
height
:
806px
;
...
...
@@ -235,11 +284,14 @@ const switchTab = name => {
box-shadow
:
0px
0px
20px
0px
rgba
(
94
,
95
,
95
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
position
:
relative
;
.select-box
{
margin-top
:
21px
;
.select-box-header
{
display
:
flex
;
gap
:
17px
;
.icon
{
margin-top
:
4px
;
width
:
8px
;
...
...
@@ -247,6 +299,7 @@ const switchTab = name => {
background
:
var
(
--
color-main-active
);
border-radius
:
0
4px
4px
0
;
}
.title
{
height
:
24px
;
color
:
var
(
--
color-main-active
);
...
...
@@ -258,39 +311,47 @@ const switchTab = name => {
text-align
:
left
;
}
}
.select-main
{
margin-left
:
25px
;
}
.select-main1
{
width
:
100px
;
}
}
}
.right
{
width
:
1284px
;
height
:
1377px
;
.card-box
{
width
:
1284px
;
height
:
1248px
;
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.footer-card
{
width
:
418px
;
height
:
300px
;
border-radius
:
10px
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.footer-card-top
{
width
:
384px
;
height
:
206px
;
margin
:
0
auto
;
margin-top
:
15px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.footer-card-title
{
margin
:
0
auto
;
margin-top
:
13px
;
...
...
@@ -302,6 +363,7 @@ const switchTab = name => {
font-weight
:
700
;
line-height
:
24px
;
}
.footer-card-footer
{
margin
:
0
auto
;
margin-top
:
5px
;
...
...
@@ -317,10 +379,12 @@ const switchTab = name => {
}
}
}
.right-footer
{
margin-top
:
43px
;
display
:
flex
;
justify-content
:
space-between
;
.info
{
height
:
19px
;
color
:
rgba
(
132
,
136
,
142
,
1
);
...
...
@@ -341,6 +405,7 @@ const switchTab = name => {
box-shadow
:
none
;
border-radius
:
10px
;
}
:deep
(
.el-input__wrapper
:hover
)
{
box-shadow
:
none
!
important
;
}
...
...
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
浏览文件 @
a924d505
差异被折叠。
点击展开。
src/views/thinkTank/index.vue
浏览文件 @
a924d505
...
...
@@ -684,7 +684,7 @@ const box5Data = ref({
]
}
);
//获取当前时间
十
年前的日期
//获取当前时间
x
年前的日期
function
getDateYearsAgo
(
years
)
{
// 获取当前日期
const
currentDate
=
new
Date
();
...
...
@@ -1202,8 +1202,9 @@ const handleGetetThinkTankReport = async () => {
}
;
const
handleClick
=
tank
=>
{
console
.
log
(
tank
)
// router.push(
{
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
}
}
);
const
curRoute
=
router
.
resolve
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
}
}
);
const
curRoute
=
router
.
resolve
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
,
name
:
tank
.
name
}
}
);
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论