Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
af7079a0
提交
af7079a0
authored
12月 19, 2025
作者:
胡卉清
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev_hhq' 到 'master'
Dev hhq 查看合并请求
!49
上级
88b6f73b
e17d9815
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
440 行增加
和
68 行删除
+440
-68
overview.js
src/api/thinkTank/overview.js
+196
-4
Timeline.vue
src/views/overView/component/Timeline.vue
+6
-4
index.vue
src/views/overView/index.vue
+24
-22
index.vue
src/views/thinkTank/ReportDetail/index.vue
+37
-12
index.vue
src/views/thinkTank/ReportDetail/policyTracking/index.vue
+104
-18
index.vue
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
+0
-0
index.vue
src/views/thinkTank/ThinkTankDetail/PolicyTracking/index.vue
+0
-0
index.vue
src/views/thinkTank/ThinkTankDetail/index.vue
+73
-8
index.vue
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
+0
-0
index.vue
src/views/thinkTank/ThinkTankDetail/thinkInfo/index.vue
+0
-0
right-left-icon1.png
src/views/thinkTank/assets/images/right-left-icon1.png
+0
-0
right-left-icon2.png
src/views/thinkTank/assets/images/right-left-icon2.png
+0
-0
index.vue
src/views/thinkTank/index.vue
+0
-0
没有找到文件。
src/api/thinkTank/overview.js
浏览文件 @
af7079a0
...
@@ -10,6 +10,15 @@ export function getThinkTankList() {
...
@@ -10,6 +10,15 @@ export function getThinkTankList() {
})
})
}
}
//智库概览:获取智库发布
export
function
getNewReport
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankOverview/newReport`
,
})
}
// 风险信号
// 风险信号
export
function
getThinkTankRiskSignal
()
{
export
function
getThinkTankRiskSignal
()
{
return
request
({
return
request
({
...
@@ -20,10 +29,10 @@ export function getThinkTankRiskSignal() {
...
@@ -20,10 +29,10 @@ export function getThinkTankRiskSignal() {
}
}
// 政策建议趋势分布
// 政策建议趋势分布
export
function
getThinkTankPolicyIndustryChange
()
{
export
function
getThinkTankPolicyIndustryChange
(
params
)
{
return
request
({
return
request
({
method
:
'GET'
,
method
:
'GET'
,
url
:
`/api/thinkTankOverview/policyIndustryChange`
,
url
:
`/api/thinkTankOverview/policyIndustryChange
/
${
params
}
`
,
})
})
}
}
...
@@ -44,4 +53,188 @@ export function getThinkTankDonation() {
...
@@ -44,4 +53,188 @@ export function getThinkTankDonation() {
url
:
`/api/thinkTankOverview/donation`
,
url
:
`/api/thinkTankOverview/donation`
,
})
})
}
}
\ No newline at end of file
//智库概览:获取智库研究热点
export
function
getThinkTankHot
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankOverview/research/hot/
${
params
}
`
,
})
}
// 行业领域字典列表
export
function
getHylyList
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/billImpactAnalysis/industry/hylyList`
,
})
}
//获取智库报告
export
function
getThinkTankReport
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankOverview/report`
,
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
})
}
//提出建议领域分布
export
function
getThinkPolicyIndustry
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/policyIndustry/
${
params
.
id
}
/
${
params
.
year
}
`
,
})
}
//获取相关政策领域分布
export
function
getThinkPolicyIndustryTotal
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/policyIndustryTotal/
${
params
.
id
}
/
${
params
.
year
}
`
,
})
}
//获取热门研究方向变化趋势
export
function
getThinkPolicyIndustryChange
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/policyIndustryChange/
${
params
.
id
}
/
${
params
.
year
}
`
,
})
}
//获取智库政策
export
function
getThinkPolicy
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/policy/
${
params
.
id
}
/
${
params
.
startDate
}
`
,
})
}
//智库百科基本信息
export
function
getThinkTankInfoBasic
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/basic/
${
params
}
`
,
})
}
//获取全球分支机构
export
function
getThinkTankInfoBranch
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/branch/
${
params
}
`
,
})
}
//获取经费来源统计
export
function
getThinkTankFundsTotal
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/fundsTotal/
${
params
}
`
,
})
}
//获取经费来源
export
function
getThinkTankFundsSource
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/fundsSource/
${
params
}
`
,
})
}
//获取研究领域演变
export
function
getThinkTankResearchAreae
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/researchArea/
${
params
}
`
,
})
}
//获取核心研究人员
export
function
getThinkTankPerson
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankInfo/person/
${
params
}
`
,
})
}
//获取报告内容摘要
export
function
getThinkTankReportAbstract
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/abstract/
${
params
}
`
,
})
}
//获取报告主要观点
export
function
getThinkTankReportContent
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/content/
${
params
}
`
,
})
}
//获取涉及科技领域
export
function
getThinkTankReportIndustry
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/industry/
${
'Rand_RRA3572-1'
}
`
,
})
}
//获取科技领域词云
export
function
getThinkTankReportIndustryCloud
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/industry/
${
params
.
id
}
/
${
params
.
industryId
}
`
,
})
}
//获取政策建议落实情况
export
function
getThinkTankReportPolicy
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/policy/
${
params
}
`
,
})
}
//获取相关政策动态
export
function
getThinkTankReportPolicyAction
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/thinkTankReport/policyAction/
${
params
}
`
,
})
}
src/views/overView/component/Timeline.vue
浏览文件 @
af7079a0
...
@@ -177,7 +177,7 @@ export default {
...
@@ -177,7 +177,7 @@ export default {
/* 向上节点:线往下伸 */
/* 向上节点:线往下伸 */
.dot.up
::after
{
.dot.up
::after
{
bottom
:
100%
;
bottom
:
100%
;
height
:
1
80
px
;
height
:
1
65
px
;
/* 圆环底部 → 卡片顶 */
/* 圆环底部 → 卡片顶 */
}
}
...
@@ -185,15 +185,15 @@ export default {
...
@@ -185,15 +185,15 @@ export default {
.dot.down
::after
{
.dot.down
::after
{
top
:
100%
;
top
:
100%
;
height
:
1
80
px
;
height
:
1
65
px
;
}
}
.card
{
.card
{
position
:
absolute
;
position
:
absolute
;
height
:
1
80
px
;
height
:
1
65
px
;
width
:
320px
;
width
:
320px
;
padding
:
8px
12px
;
padding
:
8px
12px
;
text-align
:
left
;
text-align
:
left
;
cursor
:
pointer
;
cursor
:
pointer
;
...
@@ -208,6 +208,7 @@ export default {
...
@@ -208,6 +208,7 @@ export default {
line-height
:
26px
;
line-height
:
26px
;
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
justify
;
text-align
:
justify
;
margin-bottom
:
10px
;
}
}
.title
{
.title
{
...
@@ -218,6 +219,7 @@ export default {
...
@@ -218,6 +219,7 @@ export default {
line-height
:
26px
;
line-height
:
26px
;
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
justify
;
text-align
:
justify
;
margin-bottom
:
10px
;
}
}
.content
{
.content
{
...
...
src/views/overView/index.vue
浏览文件 @
af7079a0
...
@@ -52,27 +52,20 @@
...
@@ -52,27 +52,20 @@
}}
}}
</div>
</div>
</div>
</div>
<img
<img
class=
"item-card-content-title-image"
:src=
"organizationNews[organizationNewsShow].image"
class=
"item-card-content-title-image"
alt=
""
/>
:src=
"organizationNews[organizationNewsShow].image"
alt=
""
/>
</div>
</div>
<div
class=
"item-header-divider"
></div>
<div
class=
"item-header-divider"
></div>
<div
class=
"item-card-content-text"
>
<div
class=
"item-card-content-text"
>
{{
organizationNews
[
organizationNewsShow
].
content
}}
{{
organizationNews
[
organizationNewsShow
].
content
}}
</div>
</div>
<div
style=
"display: flex; margin-top: 30px"
>
<div
style=
"display: flex; margin-top: 30px"
>
<div
<div
class=
"item-card-content-tag"
v-for=
"(tag, index) in organizationNews[organizationNewsShow].tag"
class=
"item-card-content-tag"
:key=
"index"
:style=
"
{
v-for=
"(tag, index) in organizationNews[organizationNewsShow].tag"
:key=
"index"
:style=
"
{
color: tag.textColor,
color: tag.textColor,
background: tag.color,
background: tag.color,
border: `1px solid ${tag.textColor}`
border: `1px solid ${tag.textColor}`
}"
}">
>
{{
tag
.
text
}}
{{
tag
.
text
}}
</div>
</div>
</div>
</div>
...
@@ -114,13 +107,10 @@
...
@@ -114,13 +107,10 @@
<div
style=
"padding: 30px 23px; height: 400px"
>
<div
style=
"padding: 30px 23px; height: 400px"
>
<div
class=
"waring-item"
v-for=
"(item, index) in warningList"
:key=
"index"
>
<div
class=
"waring-item"
v-for=
"(item, index) in warningList"
:key=
"index"
>
<div
style=
"display: flex; height: 47px"
>
<div
style=
"display: flex; height: 47px"
>
<div
<div
class=
"waring-status"
:style=
"
{
class=
"waring-status"
color: item.status === 0 ? '#CE4F51' : item.status === 1 ? '#FA8C16' : '#52C41A',
:style=
"
{
backgroundColor: item.status === 0 ? '#FFF1F0' : item.status === 1 ? '#FFF7E6' : '#F6FFED'
color: item.status === 0 ? '#CE4F51' : item.status === 1 ? '#FA8C16' : '#52C41A',
}">
backgroundColor: item.status === 0 ? '#FFF1F0' : item.status === 1 ? '#FFF7E6' : '#F6FFED'
}"
>
{{
item
.
status
===
0
?
"特别重大"
:
item
.
status
===
1
?
"重大风险"
:
"一般风险"
}}
{{
item
.
status
===
0
?
"特别重大"
:
item
.
status
===
1
?
"重大风险"
:
"一般风险"
}}
</div>
</div>
<div
class=
"waring-text"
>
<div
class=
"waring-text"
>
...
@@ -424,7 +414,7 @@ function changeOrganizationNews(type) {
...
@@ -424,7 +414,7 @@ function changeOrganizationNews(type) {
:
(
organizationNewsShow
.
value
=
organizationNewsShow
.
value
+
1
);
:
(
organizationNewsShow
.
value
=
organizationNewsShow
.
value
+
1
);
}
}
}
}
onMounted
(()
=>
{});
onMounted
(()
=>
{
});
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -450,6 +440,7 @@ onMounted(() => {});
...
@@ -450,6 +440,7 @@ onMounted(() => {});
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding-left
:
160px
;
padding-left
:
160px
;
position
:
relative
;
position
:
relative
;
.header-search-box
{
.header-search-box
{
position
:
absolute
;
position
:
absolute
;
top
:
14px
;
top
:
14px
;
...
@@ -457,6 +448,7 @@ onMounted(() => {});
...
@@ -457,6 +448,7 @@ onMounted(() => {});
display
:
flex
;
display
:
flex
;
gap
:
12px
;
gap
:
12px
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
.header-search-left
{
.header-search-left
{
width
:
360px
;
width
:
360px
;
height
:
36px
;
height
:
36px
;
...
@@ -464,18 +456,22 @@ onMounted(() => {});
...
@@ -464,18 +456,22 @@ onMounted(() => {});
border-radius
:
4px
;
border-radius
:
4px
;
background
:
rgba
(
255
,
255
,
255
,
0
.3
);
background
:
rgba
(
255
,
255
,
255
,
0
.3
);
display
:
flex
;
display
:
flex
;
.input-box
{
.input-box
{
width
:
324px
;
width
:
324px
;
}
}
.icon
{
.icon
{
width
:
36px
;
width
:
36px
;
height
:
36px
;
height
:
36px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
}
}
.header-search-right
{
.header-search-right
{
width
:
36px
;
width
:
36px
;
height
:
36px
;
height
:
36px
;
...
@@ -483,10 +479,12 @@ onMounted(() => {});
...
@@ -483,10 +479,12 @@ onMounted(() => {});
border-radius
:
4px
;
border-radius
:
4px
;
background
:
rgba
(
255
,
255
,
255
,
0
.3
);
background
:
rgba
(
255
,
255
,
255
,
0
.3
);
cursor
:
pointer
;
cursor
:
pointer
;
.header-img-box
{
.header-img-box
{
width
:
19px
;
width
:
19px
;
height
:
24px
;
height
:
24px
;
margin
:
4px
auto
;
margin
:
4px
auto
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
@@ -590,6 +588,7 @@ onMounted(() => {});
...
@@ -590,6 +588,7 @@ onMounted(() => {});
font-size
:
14px
;
font-size
:
14px
;
}
}
}
}
.item-header-text-1
{
.item-header-text-1
{
// width: 150px;
// width: 150px;
height
:
48px
;
height
:
48px
;
...
@@ -641,7 +640,7 @@ onMounted(() => {});
...
@@ -641,7 +640,7 @@ onMounted(() => {});
}
}
.item-card-content-tag
{
.item-card-content-tag
{
width
:
7
4
px
;
width
:
7
6
px
;
height
:
24px
;
height
:
24px
;
padding
:
1px
8px
1px
8px
;
padding
:
1px
8px
1px
8px
;
margin
:
2px
;
margin
:
2px
;
...
@@ -682,7 +681,7 @@ onMounted(() => {});
...
@@ -682,7 +681,7 @@ onMounted(() => {});
.item-card-content
{
.item-card-content
{
height
:
100%
;
height
:
100%
;
width
:
calc
(
100%
-
50px
)
;
width
:
454px
;
padding
:
20px
;
padding
:
20px
;
.item-card-content-header
{
.item-card-content-header
{
...
@@ -1002,10 +1001,12 @@ onMounted(() => {});
...
@@ -1002,10 +1001,12 @@ onMounted(() => {});
}
}
}
}
}
}
:deep
(
.el-input__wrapper
)
{
:deep
(
.el-input__wrapper
)
{
box-shadow
:
none
;
box-shadow
:
none
;
background
:
none
;
background
:
none
;
}
}
:deep
(
.el-input__wrapper
:hover
)
{
:deep
(
.el-input__wrapper
:hover
)
{
box-shadow
:
none
!
important
;
box-shadow
:
none
!
important
;
}
}
...
@@ -1013,6 +1014,7 @@ onMounted(() => {});
...
@@ -1013,6 +1014,7 @@ onMounted(() => {});
:deep
(
.el-input__wrapper.is-focus
)
{
:deep
(
.el-input__wrapper.is-focus
)
{
box-shadow
:
none
!
important
;
box-shadow
:
none
!
important
;
}
}
:deep
(
.el-input__inner
::placeholder
)
{
:deep
(
.el-input__inner
::placeholder
)
{
color
:
rgba
(
132
,
136
,
142
,
1
);
color
:
rgba
(
132
,
136
,
142
,
1
);
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
...
...
src/views/thinkTank/ReportDetail/index.vue
浏览文件 @
af7079a0
...
@@ -63,10 +63,10 @@
...
@@ -63,10 +63,10 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main"
>
<ReportAnalysis
v-if=
"tabActiveName === '报告分析'"
></ReportAnalysis>
<ReportAnalysis
v-if=
"tabActiveName === '报告分析'"
></ReportAnalysis>
<PolicyTracking
v-else
></PolicyTracking>
<PolicyTracking
v-else
></PolicyTracking>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -86,7 +86,8 @@ const switchTab = name => {
...
@@ -86,7 +86,8 @@ const switchTab = name => {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.wrap
{
.wrap
{
width
:
1920px
;
width
:
1920px
;
height
:
984px
;
// height: 984px;
.header
{
.header
{
width
:
1920px
;
width
:
1920px
;
height
:
188px
;
height
:
188px
;
...
@@ -95,12 +96,14 @@ const switchTab = name => {
...
@@ -95,12 +96,14 @@ const switchTab = name => {
border-top
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
border-top
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.header-top
{
.header-top
{
margin-top
:
20px
;
margin-top
:
20px
;
margin-left
:
248px
;
margin-left
:
248px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
margin-right
:
160px
;
margin-right
:
160px
;
.header-top-left
{
.header-top-left
{
.title
{
.title
{
height
:
26px
;
height
:
26px
;
...
@@ -112,6 +115,7 @@ const switchTab = name => {
...
@@ -112,6 +115,7 @@ const switchTab = name => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.en-title
{
.en-title
{
height
:
24px
;
height
:
24px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
color
:
rgba
(
95
,
101
,
108
,
1
);
...
@@ -122,10 +126,12 @@ const switchTab = name => {
...
@@ -122,10 +126,12 @@ const switchTab = name => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.tag-box
{
.tag-box
{
margin-top
:
11px
;
margin-top
:
11px
;
display
:
flex
;
display
:
flex
;
gap
:
8px
;
gap
:
8px
;
.tag
{
.tag
{
height
:
26px
;
height
:
26px
;
padding
:
0
8px
;
padding
:
0
8px
;
...
@@ -143,6 +149,7 @@ const switchTab = name => {
...
@@ -143,6 +149,7 @@ const switchTab = name => {
}
}
}
}
}
}
.header-top-right
{
.header-top-right
{
.name
{
.name
{
height
:
24px
;
height
:
24px
;
...
@@ -154,6 +161,7 @@ const switchTab = name => {
...
@@ -154,6 +161,7 @@ const switchTab = name => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
right
;
text-align
:
right
;
}
}
.time
{
.time
{
height
:
24px
;
height
:
24px
;
margin-top
:
5px
;
margin-top
:
5px
;
...
@@ -167,6 +175,7 @@ const switchTab = name => {
...
@@ -167,6 +175,7 @@ const switchTab = name => {
}
}
}
}
}
}
.header-bottom
{
.header-bottom
{
margin
:
0
auto
;
margin
:
0
auto
;
margin-top
:
30px
;
margin-top
:
30px
;
...
@@ -174,13 +183,15 @@ const switchTab = name => {
...
@@ -174,13 +183,15 @@ const switchTab = name => {
height
:
48px
;
height
:
48px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.tab-box
{
.tab-box
{
width
:
224px
;
width
:
224px
;
height
:
48px
;
height
:
48px
;
display
:
flex
;
display
:
flex
;
gap
:
24px
;
gap
:
24px
;
.tab
{
.tab
{
width
:
9
2
px
;
width
:
9
4
px
;
height
:
48px
;
height
:
48px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -188,14 +199,17 @@ const switchTab = name => {
...
@@ -188,14 +199,17 @@ const switchTab = name => {
gap
:
4px
;
gap
:
4px
;
cursor
:
pointer
;
cursor
:
pointer
;
border-bottom
:
2px
solid
transparent
;
border-bottom
:
2px
solid
transparent
;
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.text
{
.text
{
height
:
24px
;
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
...
@@ -204,18 +218,22 @@ const switchTab = name => {
...
@@ -204,18 +218,22 @@ const switchTab = name => {
font-weight
:
400
;
font-weight
:
400
;
line-height
:
24px
;
line-height
:
24px
;
}
}
.textActive
{
.textActive
{
color
:
rgba
(
5
,
95
,
194
,
1
);
color
:
rgba
(
5
,
95
,
194
,
1
);
font-weight
:
700
;
font-weight
:
700
;
}
}
}
}
.tabActive
{
.tabActive
{
border-bottom
:
2px
solid
rgba
(
5
,
95
,
194
,
1
);
border-bottom
:
2px
solid
rgba
(
5
,
95
,
194
,
1
);
}
}
}
}
.btn-box
{
.btn-box
{
display
:
flex
;
display
:
flex
;
gap
:
12px
;
gap
:
12px
;
.btn
{
.btn
{
width
:
120px
;
width
:
120px
;
height
:
36px
;
height
:
36px
;
...
@@ -227,16 +245,19 @@ const switchTab = name => {
...
@@ -227,16 +245,19 @@ const switchTab = name => {
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
gap
:
8px
;
gap
:
8px
;
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.text
{
.text
{
width
:
6
4
px
;
width
:
6
6
px
;
height
:
22px
;
height
:
22px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
...
@@ -247,18 +268,21 @@ const switchTab = name => {
...
@@ -247,18 +268,21 @@ const switchTab = name => {
text-align
:
center
;
text-align
:
center
;
}
}
}
}
.btn1
{
.btn1
{
border-radius
:
6px
;
border-radius
:
6px
;
background
:
var
(
--
color-main-active
);
background
:
var
(
--
color-main-active
);
.text
{
color
:
rgba
(
255
,
255
,
255
,
1
);
.text
{
}
color
:
rgba
(
255
,
255
,
255
,
1
);
}
}
}
}
}
}
}
}
}
.main
{
width
:
100%
;
.main
{
}
width
:
100%
;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/thinkTank/ReportDetail/policyTracking/index.vue
浏览文件 @
af7079a0
...
@@ -17,10 +17,10 @@
...
@@ -17,10 +17,10 @@
<div
class=
"box1-main"
>
<div
class=
"box1-main"
>
<div
class=
"box1-item"
v-for=
"(item, index) in box1Data"
:key=
"index"
>
<div
class=
"box1-item"
v-for=
"(item, index) in box1Data"
:key=
"index"
>
<div
class=
"left"
>
<div
class=
"left"
>
{{
i
tem
.
id
}}
{{
i
ndex
+
1
}}
</div>
</div>
<div
class=
"center"
>
<div
class=
"center"
>
<div
class=
"title"
>
{{
item
.
title
}}
</div>
<div
class=
"title"
>
{{
item
.
content
}}
</div>
<div
class=
"tag-box"
>
<div
class=
"tag-box"
>
<div
class=
"tag"
v-for=
"(val, idx) in item.tagList"
:key=
"idx"
>
<div
class=
"tag"
v-for=
"(val, idx) in item.tagList"
:key=
"idx"
>
{{
val
}}
{{
val
}}
...
@@ -28,8 +28,15 @@
...
@@ -28,8 +28,15 @@
</div>
</div>
<div
class=
"file-box"
>
<div
class=
"file-box"
>
<div
class=
"file-item"
v-for=
"(vall, idxx) in item.fileList"
:key=
"idxx"
>
<div
class=
"file-item"
v-for=
"(vall, idxx) in item.fileList"
:key=
"idxx"
>
<div
class=
"file-item-left"
>
{{
vall
.
type
}}
</div>
<div
class=
"file-item-left"
>
法案
</div>
<div
class=
"file-item-center"
>
{{
vall
.
name
}}
</div>
<div
class=
"file-item-center"
>
{{
vall
.
relationBillsList
}}
</div>
<div
class=
"file-item-right"
>
<img
src=
"@/assets/images/icon-right-circle.png"
alt=
""
/>
</div>
</div>
<div
class=
"file-item"
v-for=
"(vall, idxx) in item.fileList"
:key=
"idxx"
>
<div
class=
"file-item-left"
>
政令
</div>
<div
class=
"file-item-center"
>
{{
vall
.
relationAdList
}}
</div>
<div
class=
"file-item-right"
>
<div
class=
"file-item-right"
>
<img
src=
"@/assets/images/icon-right-circle.png"
alt=
""
/>
<img
src=
"@/assets/images/icon-right-circle.png"
alt=
""
/>
</div>
</div>
...
@@ -46,14 +53,7 @@
...
@@ -46,14 +53,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"box1-footer"
>
<div
class=
"info"
>
{{
`共105项调查`
}}
</div>
<div
class=
"page-box"
>
<el-pagination
:page-size=
"10"
background
layout=
"prev, pager, next"
:total=
"120"
/>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -79,13 +79,13 @@
...
@@ -79,13 +79,13 @@
<div
class=
"line"
v-if=
"index
<
5
"
></div>
<div
class=
"line"
v-if=
"index
<
5
"
></div>
</div>
</div>
<div
class=
"box2-item-center"
>
<div
class=
"box2-item-center"
>
<div
class=
"title"
>
{{
item
.
title
}}
</div>
<div
class=
"title"
>
{{
item
.
sjbt
}}
</div>
<div
class=
"content"
>
{{
item
.
content
}}
</div>
<div
class=
"content"
>
{{
item
.
sjnr
}}
</div>
</div>
</div>
<div
class=
"box2-item-right"
>
<div
class=
"box2-item-right"
>
<div
class=
"time"
>
{{
item
.
time
}}
</div>
<div
class=
"time"
>
{{
item
.
time
}}
</div>
<div
class=
"img-box"
>
<div
class=
"img-box"
>
<img
:src=
"item.im
g
"
alt=
""
/>
<img
:src=
"item.im
ageUrl
"
alt=
""
/>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -102,7 +102,12 @@
...
@@ -102,7 +102,12 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
getThinkTankReportPolicy
,
getThinkTankReportPolicyAction
}
from
"@/api/thinkTank/overview"
;
import
{
useRouter
}
from
"vue-router"
;
const
router
=
useRouter
();
// 政策建议落实情况
// 政策建议落实情况
const
box1Data
=
ref
([
const
box1Data
=
ref
([
{
{
...
@@ -257,6 +262,19 @@ const box1Data = ref([
...
@@ -257,6 +262,19 @@ const box1Data = ref([
}
}
]);
]);
const
handleGetThinkTankReportPolicy
=
async
()
=>
{
try
{
const
res
=
await
getThinkTankReportPolicy
(
router
.
currentRoute
.
_value
.
params
.
id
);
console
.
log
(
"政策建议落实情况"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
box1Data
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取政策建议落实情况rror"
,
error
);
}
};
// 相关政策动态
// 相关政策动态
const
box2Data
=
ref
([
const
box2Data
=
ref
([
{
{
...
@@ -296,6 +314,24 @@ const box2Data = ref([
...
@@ -296,6 +314,24 @@ const box2Data = ref([
img
:
1
img
:
1
}
}
]);
]);
const
handleGetThinkTankReportPolicyAction
=
async
()
=>
{
try
{
const
res
=
await
getThinkTankReportPolicyAction
(
router
.
currentRoute
.
_value
.
params
.
id
);
console
.
log
(
"相关政策动态"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
box2Data
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取相关政策动态rror"
,
error
);
}
};
onMounted
(
async
()
=>
{
handleGetThinkTankReportPolicy
()
handleGetThinkTankReportPolicyAction
()
});
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -303,11 +339,14 @@ const box2Data = ref([
...
@@ -303,11 +339,14 @@ const box2Data = ref([
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
gap
:
16px
;
gap
:
16px
;
height
:
100%
;
.box-header
{
.box-header
{
width
:
100%
;
width
:
100%
;
height
:
50px
;
height
:
50px
;
display
:
flex
;
display
:
flex
;
position
:
relative
;
position
:
relative
;
.header-left
{
.header-left
{
margin-top
:
18px
;
margin-top
:
18px
;
width
:
8px
;
width
:
8px
;
...
@@ -315,6 +354,7 @@ const box2Data = ref([
...
@@ -315,6 +354,7 @@ const box2Data = ref([
border-radius
:
0
4px
4px
0
;
border-radius
:
0
4px
4px
0
;
background
:
var
(
--
color-main-active
);
background
:
var
(
--
color-main-active
);
}
}
.title
{
.title
{
margin-left
:
14px
;
margin-left
:
14px
;
margin-top
:
14px
;
margin-top
:
14px
;
...
@@ -325,6 +365,7 @@ const box2Data = ref([
...
@@ -325,6 +365,7 @@ const box2Data = ref([
font-size
:
20px
;
font-size
:
20px
;
font-weight
:
700
;
font-weight
:
700
;
}
}
.header-btn-box
{
.header-btn-box
{
position
:
absolute
;
position
:
absolute
;
top
:
15px
;
top
:
15px
;
...
@@ -332,6 +373,7 @@ const box2Data = ref([
...
@@ -332,6 +373,7 @@ const box2Data = ref([
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
gap
:
8px
;
gap
:
8px
;
.btn
{
.btn
{
height
:
28px
;
height
:
28px
;
padding
:
0
8px
;
padding
:
0
8px
;
...
@@ -345,11 +387,13 @@ const box2Data = ref([
...
@@ -345,11 +387,13 @@ const box2Data = ref([
font-weight
:
400
;
font-weight
:
400
;
line-height
:
28px
;
line-height
:
28px
;
}
}
.btnActive
{
.btnActive
{
color
:
var
(
--
color-main-active
);
color
:
var
(
--
color-main-active
);
border
:
1px
solid
var
(
--
color-main-active
);
border
:
1px
solid
var
(
--
color-main-active
);
}
}
}
}
.header-right
{
.header-right
{
position
:
absolute
;
position
:
absolute
;
top
:
14px
;
top
:
14px
;
...
@@ -357,9 +401,11 @@ const box2Data = ref([
...
@@ -357,9 +401,11 @@ const box2Data = ref([
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
gap
:
4px
;
gap
:
4px
;
.icon
{
.icon
{
width
:
28px
;
width
:
28px
;
height
:
28px
;
height
:
28px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
@@ -367,26 +413,32 @@ const box2Data = ref([
...
@@ -367,26 +413,32 @@ const box2Data = ref([
}
}
}
}
}
}
.left
{
.left
{
height
:
1442px
;
height
:
100%
;
.box1
{
.box1
{
margin-top
:
16px
;
margin-top
:
16px
;
width
:
1104px
;
width
:
1104px
;
height
:
1
405px
;
height
:
1
00%
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
border
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
border
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
border-radius
:
10px
;
border-radius
:
10px
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.box1-main
{
.box1-main
{
width
:
1056px
;
width
:
1056px
;
height
:
1280px
;
height
:
1280px
;
margin
:
0
auto
;
margin
:
0
auto
;
overflow
:
auto
;
.box1-item
{
.box1-item
{
height
:
128px
;
height
:
128px
;
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
display
:
flex
;
display
:
flex
;
position
:
relative
;
position
:
relative
;
.left
{
.left
{
width
:
28px
;
width
:
28px
;
height
:
28px
;
height
:
28px
;
...
@@ -402,8 +454,10 @@ const box2Data = ref([
...
@@ -402,8 +454,10 @@ const box2Data = ref([
font-weight
:
400
;
font-weight
:
400
;
letter-spacing
:
0px
;
letter-spacing
:
0px
;
}
}
.center
{
.center
{
margin-left
:
18px
;
margin-left
:
18px
;
.title
{
.title
{
margin-top
:
16px
;
margin-top
:
16px
;
height
:
24px
;
height
:
24px
;
...
@@ -415,10 +469,12 @@ const box2Data = ref([
...
@@ -415,10 +469,12 @@ const box2Data = ref([
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.tag-box
{
.tag-box
{
display
:
flex
;
display
:
flex
;
margin-top
:
7px
;
margin-top
:
7px
;
gap
:
8px
;
gap
:
8px
;
.tag
{
.tag
{
height
:
22px
;
height
:
22px
;
padding
:
0
8px
;
padding
:
0
8px
;
...
@@ -435,10 +491,12 @@ const box2Data = ref([
...
@@ -435,10 +491,12 @@ const box2Data = ref([
text-align
:
left
;
text-align
:
left
;
}
}
}
}
.file-box
{
.file-box
{
margin-top
:
7px
;
margin-top
:
7px
;
display
:
flex
;
display
:
flex
;
gap
:
8px
;
gap
:
8px
;
.file-item
{
.file-item
{
height
:
32px
;
height
:
32px
;
padding
:
0
8px
;
padding
:
0
8px
;
...
@@ -446,6 +504,7 @@ const box2Data = ref([
...
@@ -446,6 +504,7 @@ const box2Data = ref([
background
:
rgba
(
246
,
250
,
255
,
1
);
background
:
rgba
(
246
,
250
,
255
,
1
);
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
.file-item-left
{
.file-item-left
{
height
:
22px
;
height
:
22px
;
padding
:
0
4px
;
padding
:
0
4px
;
...
@@ -460,6 +519,7 @@ const box2Data = ref([
...
@@ -460,6 +519,7 @@ const box2Data = ref([
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.file-item-center
{
.file-item-center
{
margin-left
:
12px
;
margin-left
:
12px
;
color
:
var
(
--
color-main-active
);
color
:
var
(
--
color-main-active
);
...
@@ -470,10 +530,12 @@ const box2Data = ref([
...
@@ -470,10 +530,12 @@ const box2Data = ref([
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.file-item-right
{
.file-item-right
{
margin-left
:
12px
;
margin-left
:
12px
;
width
:
20px
;
width
:
20px
;
height
:
20px
;
height
:
20px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
@@ -482,6 +544,7 @@ const box2Data = ref([
...
@@ -482,6 +544,7 @@ const box2Data = ref([
}
}
}
}
}
}
.right
{
.right
{
position
:
absolute
;
position
:
absolute
;
top
:
16px
;
top
:
16px
;
...
@@ -491,6 +554,7 @@ const box2Data = ref([
...
@@ -491,6 +554,7 @@ const box2Data = ref([
justify-content
:
flex-end
;
justify-content
:
flex-end
;
align-items
:
center
;
align-items
:
center
;
gap
:
9px
;
gap
:
9px
;
.text
{
.text
{
height
:
24px
;
height
:
24px
;
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
...
@@ -501,9 +565,11 @@ const box2Data = ref([
...
@@ -501,9 +565,11 @@ const box2Data = ref([
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
right
;
text-align
:
right
;
}
}
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
@@ -512,12 +578,14 @@ const box2Data = ref([
...
@@ -512,12 +578,14 @@ const box2Data = ref([
}
}
}
}
}
}
.box1-footer
{
.box1-footer
{
height
:
50px
;
height
:
50px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding
:
20px
;
padding
:
20px
;
.info
{
.info
{
color
:
rgba
(
132
,
136
,
142
,
1
);
color
:
rgba
(
132
,
136
,
142
,
1
);
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
...
@@ -539,24 +607,30 @@ const box2Data = ref([
...
@@ -539,24 +607,30 @@ const box2Data = ref([
border-radius
:
10px
;
border-radius
:
10px
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.box2-main
{
.box2-main
{
margin
:
0
auto
;
margin
:
0
auto
;
margin-top
:
15px
;
margin-top
:
15px
;
width
:
459px
;
width
:
459px
;
height
:
654px
;
height
:
654px
;
overflow
:
hidden
;
.box2-item
{
.box2-item
{
height
:
109px
;
height
:
109px
;
display
:
flex
;
display
:
flex
;
.box2-item-left
{
.box2-item-left
{
.point
{
.point
{
margin-left
:
14px
;
margin-left
:
14px
;
width
:
10px
;
width
:
10px
;
height
:
10px
;
height
:
10px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.line
{
.line
{
width
:
2px
;
width
:
2px
;
height
:
109px
;
height
:
109px
;
...
@@ -564,8 +638,10 @@ const box2Data = ref([
...
@@ -564,8 +638,10 @@ const box2Data = ref([
margin-left
:
18px
;
margin-left
:
18px
;
}
}
}
}
.box2-item-center
{
.box2-item-center
{
margin-left
:
11px
;
margin-left
:
11px
;
.title
{
.title
{
width
:
314px
;
width
:
314px
;
height
:
24px
;
height
:
24px
;
...
@@ -580,6 +656,7 @@ const box2Data = ref([
...
@@ -580,6 +656,7 @@ const box2Data = ref([
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.content
{
.content
{
width
:
314px
;
width
:
314px
;
height
:
48px
;
height
:
48px
;
...
@@ -593,8 +670,10 @@ const box2Data = ref([
...
@@ -593,8 +670,10 @@ const box2Data = ref([
overflow
:
hidden
;
overflow
:
hidden
;
}
}
}
}
.box2-item-right
{
.box2-item-right
{
margin-left
:
18px
;
margin-left
:
18px
;
.time
{
.time
{
height
:
22px
;
height
:
22px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
color
:
rgba
(
95
,
101
,
108
,
1
);
...
@@ -608,11 +687,13 @@ const box2Data = ref([
...
@@ -608,11 +687,13 @@ const box2Data = ref([
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.img-box
{
.img-box
{
margin-top
:
14px
;
margin-top
:
14px
;
width
:
78px
;
width
:
78px
;
height
:
50px
;
height
:
50px
;
border-radius
:
2px
;
border-radius
:
2px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
@@ -621,6 +702,7 @@ const box2Data = ref([
...
@@ -621,6 +702,7 @@ const box2Data = ref([
}
}
}
}
}
}
.box2-footer
{
.box2-footer
{
margin
:
10px
auto
;
margin
:
10px
auto
;
width
:
108px
;
width
:
108px
;
...
@@ -630,9 +712,11 @@ const box2Data = ref([
...
@@ -630,9 +712,11 @@ const box2Data = ref([
justify-content
:
center
;
justify-content
:
center
;
gap
:
4px
;
gap
:
4px
;
cursor
:
pointer
;
cursor
:
pointer
;
&
:hover
{
&
:hover
{
background
:
var
(
--
color-bg-hover
);
background
:
var
(
--
color-bg-hover
);
}
}
.text
{
.text
{
color
:
var
(
--
color-main-active
);
color
:
var
(
--
color-main-active
);
height
:
22px
;
height
:
22px
;
...
@@ -642,9 +726,11 @@ const box2Data = ref([
...
@@ -642,9 +726,11 @@ const box2Data = ref([
line-height
:
22px
;
line-height
:
22px
;
letter-spacing
:
0px
;
letter-spacing
:
0px
;
}
}
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
...
...
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
浏览文件 @
af7079a0
差异被折叠。
点击展开。
src/views/thinkTank/ThinkTankDetail/PolicyTracking/index.vue
浏览文件 @
af7079a0
差异被折叠。
点击展开。
src/views/thinkTank/ThinkTankDetail/index.vue
浏览文件 @
af7079a0
...
@@ -3,19 +3,19 @@
...
@@ -3,19 +3,19 @@
<div
class=
"header"
>
<div
class=
"header"
>
<div
class=
"header-top"
>
<div
class=
"header-top"
>
<div
class=
"header-top-left"
>
<div
class=
"header-top-left"
>
<img
src=
"
"
alt=
""
/>
<img
:src=
"thinkTank.imageUrl
"
alt=
""
/>
</div>
</div>
<div
class=
"header-top-center"
>
<div
class=
"header-top-center"
>
<div
class=
"center-top"
>
<div
class=
"center-top"
>
<div
class=
"name"
>
{{
"兰德公司"
}}
</div>
<div
class=
"name"
>
{{
thinkTank
.
name
}}
</div>
<div
class=
"e-name"
>
{{
"RAND Corporation"
}}
</div>
<div
class=
"e-name"
>
{{
thinkTank
.
ename
}}
</div>
</div>
</div>
<div
class=
"center-center"
>
<div
class=
"center-center"
>
{{
"全球顶尖政策研究机构,专注于国家安全、科技政策、医疗卫生、能源政策、公共安全等领域的研究。 "
}}
{{
thinkTank
.
describe
}}
</div>
</div>
<div
class=
"center-footer"
>
<div
class=
"center-footer"
>
<div
class=
"tag"
>
{{
"国家安全"
}}
</div>
<div
class=
"tag"
v-for=
"tag in thinkTank.tags"
>
{{
tag
.
industryName
}}
</div>
<div
class=
"tag"
>
{{
"科技政策"
}}
</div>
</div>
</div>
</div>
</div>
<!--
<div
class=
"header-top-right"
>
{{
'查看智库官网'
}}
</div>
-->
<!--
<div
class=
"header-top-right"
>
{{
'查看智库官网'
}}
</div>
-->
...
@@ -58,19 +58,44 @@ import { ref, reactive, computed, onMounted } from "vue";
...
@@ -58,19 +58,44 @@ import { ref, reactive, computed, onMounted } from "vue";
import
ThinkDaynamics
from
"./thinkDynamics/index.vue"
import
ThinkDaynamics
from
"./thinkDynamics/index.vue"
import
PolicyTracking
from
"./PolicyTracking/index.vue"
;
import
PolicyTracking
from
"./PolicyTracking/index.vue"
;
import
ThinkInfo
from
"./thinkInfo/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
tabActiveName
=
ref
(
"智库动态"
);
const
switchTab
=
name
=>
{
const
switchTab
=
name
=>
{
tabActiveName
.
value
=
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
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.wrap
{
.wrap
{
width
:
1920px
;
width
:
1920px
;
height
:
984px
;
height
:
984px
;
.header
{
.header
{
width
:
1920px
;
width
:
1920px
;
height
:
188px
;
height
:
188px
;
...
@@ -81,18 +106,23 @@ const switchTab = name => {
...
@@ -81,18 +106,23 @@ const switchTab = name => {
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
position
:
relative
;
position
:
relative
;
.header-top
{
.header-top
{
margin-top
:
24px
;
margin-top
:
24px
;
display
:
flex
;
display
:
flex
;
.header-top-left
{
.header-top-left
{
width
:
88px
;
width
:
88px
;
height
:
88px
;
height
:
88px
;
background
:
purple
;
background
:
purple
;
}
}
.header-top-center
{
.header-top-center
{
margin-left
:
22px
;
margin-left
:
22px
;
.center-top
{
.center-top
{
display
:
flex
;
display
:
flex
;
.name
{
.name
{
height
:
26px
;
height
:
26px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
...
@@ -103,6 +133,7 @@ const switchTab = name => {
...
@@ -103,6 +133,7 @@ const switchTab = name => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.e-name
{
.e-name
{
margin-left
:
11px
;
margin-left
:
11px
;
height
:
26px
;
height
:
26px
;
...
@@ -115,6 +146,7 @@ const switchTab = name => {
...
@@ -115,6 +146,7 @@ const switchTab = name => {
text-align
:
left
;
text-align
:
left
;
}
}
}
}
.center-center
{
.center-center
{
margin-top
:
4px
;
margin-top
:
4px
;
width
:
769px
;
width
:
769px
;
...
@@ -126,10 +158,12 @@ const switchTab = name => {
...
@@ -126,10 +158,12 @@ const switchTab = name => {
line-height
:
24px
;
line-height
:
24px
;
letter-spacing
:
0px
;
letter-spacing
:
0px
;
}
}
.center-footer
{
.center-footer
{
margin-top
:
9px
;
margin-top
:
9px
;
display
:
flex
;
display
:
flex
;
gap
:
8px
;
gap
:
8px
;
.tag
{
.tag
{
height
:
26px
;
height
:
26px
;
line-height
:
26px
;
line-height
:
26px
;
...
@@ -148,6 +182,7 @@ const switchTab = name => {
...
@@ -148,6 +182,7 @@ const switchTab = name => {
}
}
}
}
}
}
.header-footer
{
.header-footer
{
width
:
340px
;
width
:
340px
;
height
:
48px
;
height
:
48px
;
...
@@ -156,8 +191,9 @@ const switchTab = name => {
...
@@ -156,8 +191,9 @@ const switchTab = name => {
left
:
160px
;
left
:
160px
;
display
:
flex
;
display
:
flex
;
gap
:
24px
;
gap
:
24px
;
.tab
{
.tab
{
width
:
9
2
px
;
width
:
9
4
px
;
height
:
48px
;
height
:
48px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -165,14 +201,17 @@ const switchTab = name => {
...
@@ -165,14 +201,17 @@ const switchTab = name => {
gap
:
4px
;
gap
:
4px
;
cursor
:
pointer
;
cursor
:
pointer
;
border-bottom
:
2px
solid
transparent
;
border-bottom
:
2px
solid
transparent
;
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.text
{
.text
{
height
:
24px
;
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
...
@@ -181,23 +220,28 @@ const switchTab = name => {
...
@@ -181,23 +220,28 @@ const switchTab = name => {
font-weight
:
400
;
font-weight
:
400
;
line-height
:
24px
;
line-height
:
24px
;
}
}
.textActive
{
.textActive
{
color
:
rgba
(
5
,
95
,
194
,
1
);
color
:
rgba
(
5
,
95
,
194
,
1
);
font-weight
:
700
;
font-weight
:
700
;
}
}
}
}
.tabActive
{
.tabActive
{
border-bottom
:
2px
solid
rgba
(
5
,
95
,
194
,
1
);
border-bottom
:
2px
solid
rgba
(
5
,
95
,
194
,
1
);
}
}
}
}
}
}
.main
{
.main
{
margin
:
0
auto
;
margin
:
0
auto
;
width
:
1600px
;
width
:
1600px
;
.main-header
{
.main-header
{
height
:
64px
;
height
:
64px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.search-box
{
.search-box
{
margin-top
:
16px
;
margin-top
:
16px
;
display
:
flex
;
display
:
flex
;
...
@@ -207,25 +251,30 @@ const switchTab = name => {
...
@@ -207,25 +251,30 @@ const switchTab = name => {
border
:
1px
solid
rgba
(
230
,
231
,
232
,
1
);
border
:
1px
solid
rgba
(
230
,
231
,
232
,
1
);
border-radius
:
4px
;
border-radius
:
4px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
margin
:
8px
7px
;
margin
:
8px
7px
;
cursor
:
pointer
;
cursor
:
pointer
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
}
}
.select-box
{
.select-box
{
margin-top
:
16px
;
margin-top
:
16px
;
margin-right
:
5px
;
margin-right
:
5px
;
}
}
}
}
.main-content
{
.main-content
{
display
:
flex
;
display
:
flex
;
gap
:
16px
;
gap
:
16px
;
.left
{
.left
{
width
:
300px
;
width
:
300px
;
height
:
806px
;
height
:
806px
;
...
@@ -235,11 +284,14 @@ const switchTab = name => {
...
@@ -235,11 +284,14 @@ const switchTab = name => {
box-shadow
:
0px
0px
20px
0px
rgba
(
94
,
95
,
95
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
94
,
95
,
95
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
position
:
relative
;
position
:
relative
;
.select-box
{
.select-box
{
margin-top
:
21px
;
margin-top
:
21px
;
.select-box-header
{
.select-box-header
{
display
:
flex
;
display
:
flex
;
gap
:
17px
;
gap
:
17px
;
.icon
{
.icon
{
margin-top
:
4px
;
margin-top
:
4px
;
width
:
8px
;
width
:
8px
;
...
@@ -247,6 +299,7 @@ const switchTab = name => {
...
@@ -247,6 +299,7 @@ const switchTab = name => {
background
:
var
(
--
color-main-active
);
background
:
var
(
--
color-main-active
);
border-radius
:
0
4px
4px
0
;
border-radius
:
0
4px
4px
0
;
}
}
.title
{
.title
{
height
:
24px
;
height
:
24px
;
color
:
var
(
--
color-main-active
);
color
:
var
(
--
color-main-active
);
...
@@ -258,39 +311,47 @@ const switchTab = name => {
...
@@ -258,39 +311,47 @@ const switchTab = name => {
text-align
:
left
;
text-align
:
left
;
}
}
}
}
.select-main
{
.select-main
{
margin-left
:
25px
;
margin-left
:
25px
;
}
}
.select-main1
{
.select-main1
{
width
:
100px
;
width
:
100px
;
}
}
}
}
}
}
.right
{
.right
{
width
:
1284px
;
width
:
1284px
;
height
:
1377px
;
height
:
1377px
;
.card-box
{
.card-box
{
width
:
1284px
;
width
:
1284px
;
height
:
1248px
;
height
:
1248px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
.footer-card
{
.footer-card
{
width
:
418px
;
width
:
418px
;
height
:
300px
;
height
:
300px
;
border-radius
:
10px
;
border-radius
:
10px
;
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.footer-card-top
{
.footer-card-top
{
width
:
384px
;
width
:
384px
;
height
:
206px
;
height
:
206px
;
margin
:
0
auto
;
margin
:
0
auto
;
margin-top
:
15px
;
margin-top
:
15px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.footer-card-title
{
.footer-card-title
{
margin
:
0
auto
;
margin
:
0
auto
;
margin-top
:
13px
;
margin-top
:
13px
;
...
@@ -302,6 +363,7 @@ const switchTab = name => {
...
@@ -302,6 +363,7 @@ const switchTab = name => {
font-weight
:
700
;
font-weight
:
700
;
line-height
:
24px
;
line-height
:
24px
;
}
}
.footer-card-footer
{
.footer-card-footer
{
margin
:
0
auto
;
margin
:
0
auto
;
margin-top
:
5px
;
margin-top
:
5px
;
...
@@ -317,10 +379,12 @@ const switchTab = name => {
...
@@ -317,10 +379,12 @@ const switchTab = name => {
}
}
}
}
}
}
.right-footer
{
.right-footer
{
margin-top
:
43px
;
margin-top
:
43px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.info
{
.info
{
height
:
19px
;
height
:
19px
;
color
:
rgba
(
132
,
136
,
142
,
1
);
color
:
rgba
(
132
,
136
,
142
,
1
);
...
@@ -341,6 +405,7 @@ const switchTab = name => {
...
@@ -341,6 +405,7 @@ const switchTab = name => {
box-shadow
:
none
;
box-shadow
:
none
;
border-radius
:
10px
;
border-radius
:
10px
;
}
}
:deep
(
.el-input__wrapper
:hover
)
{
:deep
(
.el-input__wrapper
:hover
)
{
box-shadow
:
none
!
important
;
box-shadow
:
none
!
important
;
}
}
...
...
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
浏览文件 @
af7079a0
差异被折叠。
点击展开。
src/views/thinkTank/ThinkTankDetail/thinkInfo/index.vue
浏览文件 @
af7079a0
差异被折叠。
点击展开。
src/views/thinkTank/assets/images/right-left-icon1.png
0 → 100644
浏览文件 @
af7079a0
801 Bytes
src/views/thinkTank/assets/images/right-left-icon2.png
0 → 100644
浏览文件 @
af7079a0
792 Bytes
src/views/thinkTank/index.vue
浏览文件 @
af7079a0
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论