Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
2dda3480
提交
2dda3480
authored
1月 07, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
c5add0d2
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
369 行增加
和
372 行删除
+369
-372
App.vue
src/App.vue
+44
-75
home-header-icon1.png
src/assets/icons/home-header-icon1.png
+0
-0
home-header-icon2.png
src/assets/icons/home-header-icon2.png
+0
-0
home-header-icon3.png
src/assets/icons/home-header-icon3.png
+0
-0
home-header-icon4.png
src/assets/icons/home-header-icon4.png
+0
-0
home-header-icon5.png
src/assets/icons/home-header-icon5.png
+0
-0
headerInfo.vue
src/components/headerInfo.vue
+51
-0
headerMenu.vue
src/components/headerMenu.vue
+108
-0
index.vue
src/views/bill/billHome/index.vue
+67
-80
index.vue
src/views/coopRestriction/index.vue
+10
-25
index.vue
src/views/decree/decreeHome/index.vue
+27
-34
index.vue
src/views/exportControl/index.vue
+0
-0
index.vue
src/views/finance/index.vue
+12
-26
index.vue
src/views/innovationSubject/index.vue
+10
-26
index.vue
...views/marketAccessRestrictions/marketAccessHome/index.vue
+10
-26
index.vue
src/views/ruleRestriction/index.vue
+10
-26
index.vue
src/views/scientificFunding/index.vue
+10
-26
index.vue
src/views/technologyFigures/index.vue
+10
-28
index.vue
src/views/thinkTank/index.vue
+0
-0
没有找到文件。
src/App.vue
浏览文件 @
2dda3480
<
template
>
<div
id=
"app"
>
<el-container
class=
"wrapper"
>
<el-header>
<nav
class=
"navbar"
>
<div
class=
"nav-brand"
>
<div
class=
"brand-icon"
>
<img
src=
"@/assets/icons/header-logo.png"
alt=
""
/>
</div>
<div
class=
"brand-text"
@
click=
"handleToHome"
>
<div
class=
"text-ch"
>
某方向风险监测预警系统
</div>
</div>
<div
class=
"wrapper"
>
<div
class=
"navbar"
>
<div
class=
"nav-brand"
>
<div
class=
"brand-icon"
>
<img
src=
"@/assets/icons/header-logo.png"
alt=
""
/>
</div>
<div
class=
"user-info"
>
<div
class=
"email"
>
<img
src=
"@/assets/icons/header-icon.png"
alt=
""
/>
</div>
<div
class=
"avator"
>
<img
src=
"@/assets/icons/header-avator.png"
alt=
""
/>
</div>
<span
class=
"user"
>
管理员
</span>
<div
class=
"brand-text"
@
click=
"handleToHome"
>
<div
class=
"text-ch"
>
某方向风险监测预警系统
</div>
</div>
</nav>
</el-header>
<el-main
class=
"main-container"
>
<router-view
/>
</el-main>
<div
class=
"ai-btn"
@
click=
"openAiBox"
>
<div
class=
"icon"
>
<img
src=
"@/assets/icons/ai-icon.png"
alt=
""
/>
</div>
<div
class=
"user-info"
>
<div
class=
"email"
>
<img
src=
"@/assets/icons/header-icon.png"
alt=
""
/>
</div>
<div
class=
"avator"
>
<img
src=
"@/assets/icons/header-avator.png"
alt=
""
/>
</div>
<
div
class=
"text"
>
智能问答
</div
>
<
span
class=
"user"
>
管理员
</span
>
</div>
</div>
<div
class=
"main-container"
>
<router-view
/>
</div>
<div
class=
"ai-btn"
@
click=
"openAiBox"
>
<div
class=
"icon"
>
<img
src=
"@/assets/icons/ai-icon.png"
alt=
""
/>
</div>
<div
class=
"text"
>
智能问答
</div>
</div>
<div
class=
"ai-dialog"
v-if=
"isShowAiBox"
>
<AiBox
@
close=
"closeAiBox"
/>
</div>
</
el-container
>
</
div
>
</div>
</
template
>
...
...
@@ -46,7 +43,7 @@ import { Monitor, House, User, Location, Document, Bell, Message, ArrowDown } fr
import
{
useRouter
}
from
"vue-router"
;
import
Breadcrumb
from
"@/components/BreadCrumb/index.vue"
;
import
AiBox
from
"./components/AiBox.vue"
;
import
{
getPersonType
}
from
'@/api/common/index'
import
{
getPersonType
}
from
"@/api/common/index"
;
// import { useDraggable } from "@vueuse/core";
const
router
=
useRouter
();
...
...
@@ -86,29 +83,25 @@ const handleHomeCommand = command => {
router
.
push
(
command
);
};
const
personTypeList
=
ref
([])
const
personTypeList
=
ref
([])
;
// 获取人物类别
const
handleGetPersonType
=
async
()
=>
{
const
handleGetPersonType
=
async
()
=>
{
try
{
const
res
=
await
getPersonType
()
console
.
log
(
'res'
,
res
);
if
(
res
.
code
===
200
)
{
personTypeList
.
value
=
res
.
data
const
res
=
await
getPersonType
()
;
console
.
log
(
"res"
,
res
);
if
(
res
.
code
===
200
)
{
personTypeList
.
value
=
res
.
data
;
}
else
{
personTypeList
.
value
=
[]
personTypeList
.
value
=
[]
;
}
window
.
sessionStorage
.
setItem
(
'personTypeList'
,
JSON
.
stringify
(
personTypeList
.
value
))
}
catch
(
error
)
{
}
}
window
.
sessionStorage
.
setItem
(
"personTypeList"
,
JSON
.
stringify
(
personTypeList
.
value
));
}
catch
(
error
)
{}
};
onMounted
(()
=>
{
handleGetPersonType
()
})
handleGetPersonType
();
});
</
script
>
<
style
>
...
...
@@ -141,7 +134,7 @@ body {
text-align
:
justify
;
}
.el-popper
[
data-popper-placement
^=
top
]>
.el-popper__arrow
:before
{
.el-popper
[
data-popper-placement
^=
"top"
]
>
.el-popper__arrow
:before
{
display
:
none
;
}
</
style
>
...
...
@@ -164,20 +157,19 @@ body {
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
background
:
white
;
color
:
#333
;
height
:
100%
;
background
:
#fff
;
color
:
rgba
(
10
,
18
,
30
,
1
);
border-bottom
:
1px
solid
#e5e7eb
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0
.1
);
position
:
relative
;
box-sizing
:
border-box
;
height
:
96
px
;
height
:
72
px
;
}
.main-container
{
/* 移除宽度限制,让子页面自己控制布局 */
width
:
100%
;
height
:
984
px
;
height
:
1008
px
;
position
:
relative
;
}
...
...
@@ -191,7 +183,6 @@ body {
.brand-icon
{
width
:
48px
;
height
:
48px
;
img
{
width
:
100%
;
height
:
100%
;
...
...
@@ -309,13 +300,6 @@ body {
.wrapper
{
position
:
relative
;
.target
{
// position: absolute;
// bottom: 20%;
// right: 46px;
z-index
:
9999
;
}
.ai-btn
{
position
:
absolute
;
bottom
:
240px
;
...
...
@@ -344,7 +328,6 @@ body {
text-align
:
center
;
}
}
.ai-dialog
{
position
:
absolute
;
right
:
100px
;
...
...
@@ -353,18 +336,4 @@ body {
}
}
.el-header
{
padding
:
0
;
height
:
96px
;
position
:
relative
;
z-index
:
1
;
}
.el-main
{
padding
:
0
;
height
:
calc
(
100vh
-
96px
);
overflow
:
hidden
;
overflow-y
:
auto
;
background-color
:
rgba
(
246
,
251
,
255
,
1
);
}
</
style
>
src/assets/icons/home-header-icon1.png
0 → 100644
浏览文件 @
2dda3480
1.3 KB
src/assets/icons/home-header-icon2.png
0 → 100644
浏览文件 @
2dda3480
1.7 KB
src/assets/icons/home-header-icon3.png
0 → 100644
浏览文件 @
2dda3480
1.5 KB
src/assets/icons/home-header-icon4.png
0 → 100644
浏览文件 @
2dda3480
1.6 KB
src/assets/icons/home-header-icon5.png
0 → 100644
浏览文件 @
2dda3480
1.4 KB
src/components/headerInfo.vue
0 → 100644
浏览文件 @
2dda3480
<
template
>
<div
class=
"info-wrapper"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
{{
curTitleName
}}
</div>
</div>
</
template
>
<
script
setup
>
import
{
ref
,
onMounted
}
from
"vue"
;
import
router
from
"@/router"
;
const
props
=
defineProps
({
curTitleName
:
{
type
:
String
,
required
:
true
}
});
// 返回首页
const
handleBackHome
=
()
=>
{
router
.
push
({
path
:
"/overview"
});
};
</
script
>
<
style
lang=
"scss"
scoped
>
.info-wrapper
{
height
:
64px
;
line-height
:
64px
;
display
:
flex
;
justify-content
:
flex-end
;
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
700
;
color
:
#fff
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
}
</
style
>
\ No newline at end of file
src/components/headerMenu.vue
0 → 100644
浏览文件 @
2dda3480
<
template
>
<div
class=
"menu-wrapper"
>
<div
class=
"menu-item"
>
<div
class=
"menu-item-icon"
>
<img
src=
"@/assets/icons/home-header-icon1.png"
alt=
""
/>
</div>
<div
class=
"menu-item-text"
>
{{
"首页"
}}
</div>
</div>
<div
class=
"menu-item"
>
<div
class=
"menu-item-icon1"
>
<img
src=
"@/assets/icons/home-header-icon2.png"
alt=
""
/>
</div>
<div
class=
"menu-item-text"
>
{{
"国家"
}}
</div>
</div>
<div
class=
"menu-item"
>
<div
class=
"menu-item-icon2"
>
<img
src=
"@/assets/icons/home-header-icon3.png"
alt=
""
/>
</div>
<div
class=
"menu-item-text"
>
{{
"领域"
}}
</div>
</div>
<div
class=
"menu-item"
>
<div
class=
"menu-item-icon3"
>
<img
src=
"@/assets/icons/home-header-icon4.png"
alt=
""
/>
</div>
<div
class=
"menu-item-text"
>
{{
"要素"
}}
</div>
</div>
<div
class=
"menu-item"
>
<div
class=
"menu-item-icon4"
>
<img
src=
"@/assets/icons/home-header-icon5.png"
alt=
""
/>
</div>
<div
class=
"menu-item-text"
>
{{
"事件"
}}
</div>
</div>
</div>
</
template
>
<
style
lang=
"scss"
scoped
>
.menu-wrapper
{
width
:
644px
;
height
:
64px
;
display
:
flex
;
justify-content
:
space-between
;
.menu-item
{
display
:
flex
;
gap
:
11px
;
width
:
112px
;
height
:
64px
;
justify-content
:
center
;
align-items
:
center
;
.menu-item-icon
{
// margin-top: 2px;
width
:
22px
;
height
:
22px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.menu-item-icon1
{
// margin-top: 4px;
width
:
24px
;
height
:
24px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.menu-item-icon2
{
// margin-top: 4px;
width
:
24px
;
height
:
22px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.menu-item-icon3
{
// margin-top: 2px;
width
:
20px
;
height
:
20px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.menu-item-icon4
{
width
:
22px
;
height
:
20px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.menu-item-text
{
// margin-top: 16px;
height
:
32px
;
color
:
rgba
(
255
,
255
,
255
,
1
);
font-family
:
Microsoft
YaHei
;
font-style
:
Bold
;
font-size
:
24px
;
font-weight
:
700
;
line-height
:
32px
;
letter-spacing
:
0px
;
text-align
:
left
;
}
}
}
</
style
>
\ No newline at end of file
src/views/bill/billHome/index.vue
浏览文件 @
2dda3480
...
...
@@ -39,11 +39,12 @@
</div>
<div
class=
"home-box"
:class=
"
{ scrollHomeBox: isShow }" ref="containerRef">
<div
class=
"home-header"
v-show=
"!isShow"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
科技法案
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科技法案"
></headerInfo>
</div>
</div>
<div
class=
"home-main"
>
<div
class=
"home-main-header"
v-show=
"!isShow"
>
...
...
@@ -198,12 +199,12 @@
<div
class=
"inner-box-title"
>
{{
bill
.
news
?.
newsTitle
}}
</div>
<div
class=
"inner-box-time"
>
{{
bill
.
news
?.
newsTime
.
replace
(
'T'
,
' '
)
}}
</div>
<div
class=
"inner-box-time"
>
{{
bill
.
news
?.
newsTime
.
replace
(
"T"
,
" "
)
}}
</div>
</div>
<div
class=
"inner-box-content"
>
{{
bill
.
news
?.
newsContent
}}
{{
bill
.
news
?.
newsContent
}}
</div>
</div>
</div>
...
...
@@ -223,7 +224,12 @@
</div>
</div>
<div
class=
"box2-main"
>
<div
class=
"box2-main-item"
v-for=
"(item, index) in warningList"
:key=
"index"
@
click=
"handleClickToDetailO(item)"
>
<div
class=
"box2-main-item"
v-for=
"(item, index) in warningList"
:key=
"index"
@
click=
"handleClickToDetailO(item)"
>
<div
class=
"item-left"
:class=
"
{
...
...
@@ -333,24 +339,23 @@
<img
src=
"./assets/images/tips-icon.png"
alt=
""
/>
</div>
<div
class=
"header-right-text"
>
{{
"数据来源:美国国会官方网站"
}}
</div>
-->
<div
class=
"box5-select"
>
<el-select
v-model=
"box5Select"
placeholder=
"选择领域"
@
change=
"handleBox5Change"
style=
"width: 150px"
>
<el-option
label=
"全部领域"
value=
"全部领域"
/>
<el-option
v-for=
"item in categoryList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</div>
<div
class=
"box5-select"
>
<el-select
v-model=
"box5Select"
placeholder=
"选择领域"
@
change=
"handleBox5Change"
style=
"width: 150px"
>
<el-option
label=
"全部领域"
value=
"全部领域"
/>
<el-option
v-for=
"item in categoryList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</div>
</div>
</div>
<div
...
...
@@ -395,14 +400,14 @@
<img
src=
"./assets/images/tips-icon.png"
alt=
""
/>
</div>
-->
<!--
<div
class=
"header-right-text"
>
{{
"数据来源:美国国会官方网站"
}}
</div>
-->
<el-select
v-model=
"box7selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box7YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-select
v-model=
"box7selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box7YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</div>
<!--
<div
class=
"box-center"
>
...
...
@@ -440,14 +445,14 @@
<img
src=
"./assets/images/tips-icon.png"
alt=
""
/>
</div>
-->
<!--
<div
class=
"header-right-text"
>
{{
"数据来源:美国国会官方网站"
}}
</div>
-->
<el-select
v-model=
"box8selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box8YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-select
v-model=
"box8selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box8YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</div>
<!--
<div
class=
"box-center"
>
...
...
@@ -508,14 +513,14 @@
<
img
src
=
"./assets/images/tips-icon.png"
alt
=
""
/>
<
/div> --
>
<!--
<
div
class
=
"header-right-text"
>
{{
"数据来源:美国国会官方网站"
}}
<
/div> --
>
<
el
-
select
v
-
model
=
"box9selectetedTime"
placeholder
=
"选择时间"
style
=
"width: 90px"
>
<
el
-
option
v
-
for
=
"item in box9YearList"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
el
-
select
v
-
model
=
"box9selectetedTime"
placeholder
=
"选择时间"
style
=
"width: 90px"
>
<
el
-
option
v
-
for
=
"item in box9YearList"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
/div
>
<
/div
>
<!--
<
div
class
=
"box-center"
>
...
...
@@ -755,7 +760,8 @@
import
{
onMounted
,
ref
,
computed
,
onUnmounted
,
nextTick
,
watch
}
from
"vue"
;
import
router
from
"@/router/index"
;
import
setChart
from
"@/utils/setChart"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
{
getBillIndustry
,
getHotBills
,
...
...
@@ -840,7 +846,7 @@ const formatMessageTime = timeStr => {
}
;
// 跳转人物主页
const
handleClcikToCharacter
=
async
(
id
)
=>
{
const
handleClcikToCharacter
=
async
id
=>
{
const
personTypeList
=
JSON
.
parse
(
window
.
sessionStorage
.
getItem
(
"personTypeList"
));
let
type
=
0
;
...
...
@@ -943,18 +949,14 @@ const curBill = ref({
// 查看详情
const
handleClickToDetail
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"billId"
,
curBill
.
value
.
billId
);
const
route
=
router
.
resolve
(
{
path
:
"/billLayout"
,
query
:
{
billId
:
curBill
.
value
.
billId
,
}
,
const
route
=
router
.
resolve
({
path
:
"/billLayout"
,
query
:
{
billId
:
curBill
.
value
.
billId
}
);
}
);
console
.
log
(
route
);
window
.
open
(
route
.
href
,
"_blank"
);
}
;
// 查看详情 传递参数
...
...
@@ -990,7 +992,6 @@ const handleToMoreNews = () => {
// 风险信号
const
warningList
=
ref
([]);
const
box7selectetedTime
=
ref
(
"2025"
);
const
box7YearList
=
ref
([
{
...
...
@@ -1848,25 +1849,11 @@ onUnmounted(() => {});
overflow
-
y
:
auto
;
.
home
-
header
{
height
:
64
px
;
color
:
#
fff
;
font
-
family
:
Microsoft
YaHei
;
font
-
size
:
20
px
;
font
-
weight
:
700
;
line
-
height
:
26
px
;
line
-
height
:
64
px
;
background
:
url
(
"./assets/images/header-bg.png"
);
box
-
sizing
:
border
-
box
;
padding
-
left
:
160
px
;
padding
:
0
160
px
;
display
:
flex
;
.
header
-
item
{
margin
:
0
3
px
;
}
.
back
-
item
{
cursor
:
pointer
;
&
:
hover
{
color
:
#
ccc
;
}
}
justify
-
content
:
space
-
between
;
}
.
home
-
main
{
width
:
1600
px
;
...
...
src/views/coopRestriction/index.vue
浏览文件 @
2dda3480
...
...
@@ -41,12 +41,11 @@
<!-- 面包屑 -->
<div
class=
"breadcrumb"
v-show=
"!isShow"
>
<div
class=
"breadcrumb-box"
>
<div
class=
"breadcrumb-item"
>
国家科技安全
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item"
>
合作限制
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"合作限制"
></headerInfo>
</div>
</div>
<!-- 主页面 -->
...
...
@@ -136,6 +135,8 @@
<
script
setup
>
import
{
ref
,
onMounted
,
nextTick
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
comTitle
from
"./common/comTitle.vue"
;
import
newData
from
"./components/dataNew/index.vue"
;
import
askPage
from
"./components/askPage/index.vue"
;
...
...
@@ -201,25 +202,9 @@ const handleBackHome = () => {
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
padding
:
17px
0px
21px
0px
;
.breadcrumb-box
{
margin-left
:
160px
;
display
:
flex
;
// align-items: center;
.breadcrumb-item
{
font-size
:
20px
;
font-weight
:
700
;
font-family
:
"Microsoft YaHei"
;
line-height
:
30px
;
color
:
#fff
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#999
;
}
}
}
padding
:
0
160px
;
display
:
flex
;
justify-content
:
space-between
;
}
.main-content
{
position
:
relative
;
...
...
src/views/decree/decreeHome/index.vue
浏览文件 @
2dda3480
...
...
@@ -2,7 +2,12 @@
<div
class=
"home-wrapper"
>
<div
class=
"search-header"
v-show=
"isShow"
>
<div
class=
"home-main-header-center"
>
<el-input
v-model=
"searchDecreeText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 680px; height: 100%"
placeholder=
"搜索科技政令"
/>
<el-input
v-model=
"searchDecreeText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 680px; height: 100%"
placeholder=
"搜索科技政令"
/>
<div
class=
"search"
>
<div
class=
"search-icon"
>
<img
src=
"./assets/images/search-icon.png"
alt=
""
/>
...
...
@@ -40,14 +45,20 @@
<div
class=
"home-main"
:class=
"
{ scrollHomeMain: isShow }" ref="containerRef">
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
行政令
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"行政令"
></headerInfo>
</div>
</div>
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"searchDecreeText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 838px; height: 100%"
placeholder=
"搜索科技政令"
/>
<el-input
v-model=
"searchDecreeText"
@
keyup
.
enter=
"handleSearch"
style=
"width: 838px; height: 100%"
placeholder=
"搜索科技政令"
/>
<div
class=
"search"
>
<div
class=
"search-icon"
>
<img
src=
"./assets/images/search-icon.png"
alt=
""
/>
...
...
@@ -539,8 +550,9 @@
<
script
setup
>
import
{
onMounted
,
ref
,
computed
,
watch
}
from
"vue"
;
import
*
as
echarts
from
"echarts"
;
import
router
from
"@/router"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
{
getDepartmentList
,
getLatestDecree
,
...
...
@@ -763,7 +775,6 @@ const warningList = ref([
// postDate: "一天前",
// riskLevel: "特别重大"
// }
]);
const
handlegetDecreeRiskSignal
=
async
()
=>
{
try
{
...
...
@@ -1164,7 +1175,7 @@ const pubTime = ref([
{
id
:
"2023"
,
name
:
"2023年"
},
{
id
:
"2022"
,
name
:
"2022年"
},
{
id
:
"2021"
,
name
:
"2021年"
},
{
id
:
"2020"
,
name
:
"2020年"
}
,
{
id
:
"2020"
,
name
:
"2020年"
}
// { id: "更早时间", name: "更早时间" }
]);
const
activePubTime
=
ref
([
"2025"
]);
...
...
@@ -1213,7 +1224,7 @@ const handleGetDecreeOrderList = async () => {
return
{
id
:
item
.
id
,
time
:
item
.
postDate
,
title
:
item
.
proposeOrgName
+
': '
+
item
.
name
,
title
:
item
.
proposeOrgName
+
": "
+
item
.
name
,
desc
:
item
.
describe
,
img
:
item
.
orgImage
,
tagList
:
item
.
industryList
...
...
@@ -1274,18 +1285,17 @@ const handleSwithCurDecree = name => {
};
// 搜索
const
searchDecreeText
=
ref
(
''
)
const
searchDecreeText
=
ref
(
""
);
const
handleSearch
=
()
=>
{
const
curRoute
=
router
.
resolve
({
path
:
"/searchResults"
,
query
:
{
searchText
:
searchDecreeText
.
value
,
areaName
:
'政令'
areaName
:
"政令"
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
};
onMounted
(
async
()
=>
{
handleGetAreaList
();
...
...
@@ -1419,28 +1429,11 @@ onMounted(async () => {
.home-main-header-top
{
width
:
100%
;
height
:
64px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
64px
;
background
:
url("./assets/images/header-bg.png")
;
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
700
;
color
:
#fff
;
box-sizing
:
border-box
;
padding-left
:
160px
;
display
:
flex
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
justify-content
:
space-between
;
padding
:
0
160px
;
}
.home-main-header-center
{
margin-top
:
48px
;
...
...
src/views/exportControl/index.vue
浏览文件 @
2dda3480
差异被折叠。
点击展开。
src/views/finance/index.vue
浏览文件 @
2dda3480
<
template
>
<div
class=
"home-wrapper"
>
<div
class=
"home-header"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
投融资限制
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"投融资限制"
></headerInfo>
</div>
</div>
<div
class=
"home-main"
>
<div
class=
"home-main-header"
>
...
...
@@ -145,11 +146,7 @@
<custom-container
titleType=
"danger"
title=
"风险信号"
:titleIcon=
"dangerIcon"
height=
"450px"
>
<
template
#
default
>
<div
class=
"box2-main"
>
<div
class=
"box2-main-item"
v-for=
"(item, index) in warningList"
:key=
"index"
>
<div
class=
"box2-main-item"
v-for=
"(item, index) in warningList"
:key=
"index"
>
<div
class=
"item-left"
:class=
"
{
...
...
@@ -517,6 +514,8 @@
<
script
setup
>
import
{
onMounted
,
ref
,
computed
}
from
"vue"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
setChart
from
"@/utils/setChart"
;
import
*
as
echarts
from
"echarts"
;
import
{
DArrowRight
,
Warning
,
Search
}
from
"@element-plus/icons-vue"
;
...
...
@@ -1317,25 +1316,12 @@ onMounted(async () => {
.home-header
{
height
:
64px
;
color
:
#fff
;
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
700
;
line-height
:
26px
;
line-height
:
64px
;
background
:
url("@/assets/images/nav-bg.png")
;
box-sizing
:
border-box
;
padding-left
:
160px
;
display
:
flex
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
justify-content
:
space-between
;
padding
:
0
160px
;
}
.box1
{
...
...
@@ -1698,7 +1684,7 @@ onMounted(async () => {
}
.home-wrapper
{
width
:
100%
;
width
:
100%
;
height
:
calc
(
100vh
-
96px
);
position
:
relative
;
overflow-y
:
hidden
;
...
...
src/views/innovationSubject/index.vue
浏览文件 @
2dda3480
...
...
@@ -41,11 +41,12 @@
<div
class=
"home-main"
:class=
"
{ scrollHomeMain: isShow }" ref="containerRef">
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
主要创新主体
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"主要创新主体"
></headerInfo>
</div>
</div>
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"input"
style=
"width: 838px; height: 100%"
placeholder=
"搜索创新主体"
/>
...
...
@@ -403,6 +404,8 @@
import
{
onMounted
,
ref
,
computed
}
from
"vue"
;
import
*
as
echarts
from
"echarts"
;
import
router
from
"@/router"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
DivideHeader
from
"@/components/DivideHeader.vue"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
...
...
@@ -1193,31 +1196,12 @@ onMounted(async () => {
.home-main-header-top
{
width
:
100%
;
height
:
64px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
64px
;
background
:
url("./assets/images/header-bg.png")
;
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
700
;
color
:
#fff
;
box-sizing
:
border-box
;
padding
-left
:
160px
;
padding
:
0
160px
;
display
:
flex
;
justify-content
:
space-between
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
}
.home-main-header-center
{
...
...
src/views/marketAccessRestrictions/marketAccessHome/index.vue
浏览文件 @
2dda3480
...
...
@@ -3,13 +3,12 @@
<div
class=
"home-main"
>
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
>
<!--
<span>
国家科技安全
</span>
>
<span>
中美博弈概览
</span>
>
<span>
市场准入限制
</span>
-->
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
市场准入限制
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"市场准入限制"
></headerInfo>
</div>
</div>
<div
class=
"home-main-header-center"
>
<el-input
v-model=
"input"
style=
"width: 838px; height: 100%"
placeholder=
"搜索市场准入限制调查"
/>
...
...
@@ -611,6 +610,8 @@ import setChart from "@/utils/setChart";
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
router
from
"@/router"
;
import
DivideHeader
from
"@/components/DivideHeader.vue"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
getMultiLineChart
from
"./utils/multiLineChart"
;
import
getPieChart
from
"./utils/piechart"
;
...
...
@@ -1525,27 +1526,10 @@ onMounted(async () => {
box
-
sizing
:
border
-
box
;
width
:
100
%
;
height
:
64
px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font
-
family
:
Microsoft
YaHei
;
font
-
size
:
16
px
;
font
-
weight
:
400
;
line
-
height
:
64
px
;
background
:
url
(
"./assets/images/header-bg.png"
);
font
-
family
:
Microsoft
YaHei
;
font
-
size
:
20
px
;
font
-
weight
:
700
;
color
:
#
fff
;
padding
-
left
:
160
px
;
padding
:
0
160
px
;
display
:
flex
;
.
header
-
item
{
margin
:
0
3
px
;
}
.
back
-
item
{
cursor
:
pointer
;
&
:
hover
{
color
:
#
ccc
;
}
}
justify
-
content
:
space
-
between
;
}
.
home
-
main
-
header
-
center
{
margin
-
top
:
48
px
;
...
...
src/views/ruleRestriction/index.vue
浏览文件 @
2dda3480
...
...
@@ -41,12 +41,11 @@
<!-- 面包屑 -->
<div
class=
"breadcrumb"
v-show=
"!isShow"
>
<div
class=
"breadcrumb-box"
>
<div
class=
"breadcrumb-item"
>
国家科技安全
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item"
>
规则限制
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"规则限制"
></headerInfo>
</div>
</div>
<!-- 主页面 -->
...
...
@@ -145,7 +144,8 @@ import newData from "./components/dataNew/index.vue";
import
askPage
from
"./components/askPage/index.vue"
;
import
dataSub
from
"./components/dataSub/index.vue"
;
import
resLib
from
"./components/resLib/index.vue"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
// 搜索框
...
...
@@ -205,25 +205,9 @@ const handleBackHome = () => {
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
padding
:
17px
0px
21px
0px
;
.breadcrumb-box
{
margin-left
:
160px
;
display
:
flex
;
// align-items: center;
.breadcrumb-item
{
font-size
:
20px
;
font-weight
:
700
;
font-family
:
"Microsoft YaHei"
;
line-height
:
30px
;
color
:
#fff
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#999
;
}
}
}
display
:
flex
;
justify-content
:
space-between
;
padding
:
0
160px
;
}
.main-content
{
position
:
relative
;
...
...
src/views/scientificFunding/index.vue
浏览文件 @
2dda3480
...
...
@@ -2,12 +2,11 @@
<div
class=
"coop-page"
>
<!-- 面包屑 -->
<div
class=
"breadcrumb"
>
<div
class=
"breadcrumb-box"
>
<div
class=
"breadcrumb-item"
>
国家科技安全
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"breadcrumb-item"
>
>
</div>
<div
class=
"breadcrumb-item"
>
科研资助体系
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科研资助体系"
></headerInfo>
</div>
</div>
<!-- 主页面 -->
...
...
@@ -116,7 +115,8 @@ import newData from "./components/dataNew/index.vue";
import
askPage
from
"./components/askPage/index.vue"
;
import
dataSub
from
"./components/dataSub/index.vue"
;
import
resLib
from
"./components/resLib/index.vue"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
...
...
@@ -210,25 +210,9 @@ const dataList = ref([
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
padding
:
17px
0px
21px
0px
;
.breadcrumb-box
{
margin-left
:
160px
;
display
:
flex
;
// align-items: center;
.breadcrumb-item
{
font-size
:
20px
;
font-weight
:
700
;
font-family
:
"Microsoft YaHei"
;
line-height
:
30px
;
color
:
#fff
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#999
;
}
}
}
display
:
flex
;
justify-content
:
space-between
;
padding
:
0
160px
;
}
.main-content
{
overflow
:
auto
;
...
...
src/views/technologyFigures/index.vue
浏览文件 @
2dda3480
...
...
@@ -3,11 +3,12 @@
<div
class=
"home-main"
>
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
>
<div
class=
"header-item"
>
国家科技安全
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item back-item"
@
click=
"handleBackHome"
>
中美博弈概览
</div>
<div
class=
"header-item"
>
>
</div>
<div
class=
"header-item"
>
科技人物观点
</div>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科技人物观点"
></headerInfo>
</div>
</div>
<div
class=
"home-main-header-center"
>
<el-input
v-model=
"input"
style=
"width: 838px; height: 100%"
placeholder=
"搜索科技人物及观点"
/>
...
...
@@ -324,7 +325,8 @@ import { useRouter } from "vue-router";
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
DivideHeader
from
"@/components/DivideHeader.vue"
;
import
setChart
from
"@/utils/setChart"
;
import
HeaderMenu
from
"@/components/headerMenu.vue"
;
import
headerInfo
from
"@/components/headerInfo.vue"
;
// 图表工具函数(仅保留用到的)
import
getWordCloudChart
from
"./utils/worldCloudChart"
;
import
getMultiLineChart
from
"./utils/multiLineChart"
;
...
...
@@ -506,30 +508,10 @@ onMounted(() => {
box-sizing
:
border-box
;
width
:
100%
;
height
:
64px
;
color
:
rgba
(
95
,
101
,
108
,
1
);
font-family
:
Microsoft
YaHei
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
64px
;
background
:
url("./assets/images/header-bg.png")
;
font-family
:
Microsoft
YaHei
;
font-size
:
20px
;
font-weight
:
700
;
color
:
#fff
;
padding-left
:
160px
;
padding
:
0
160px
;
display
:
flex
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
justify-content
:
space-between
;
}
.home-main-header-center
{
...
...
src/views/thinkTank/index.vue
浏览文件 @
2dda3480
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论