Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
50e92e9f
提交
50e92e9f
authored
1月 20, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
54f74478
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
280 行增加
和
208 行删除
+280
-208
App.vue
src/App.vue
+3
-3
index.vue
...ew/components/fourSuppress/components/addDomain/index.vue
+5
-2
index.vue
...w/components/fourSuppress/components/allElement/index.vue
+4
-3
index.vue
...omponents/fourSuppress/components/allGovernment/index.vue
+4
-2
index.vue
...iew/components/fourSuppress/components/allUnion/index.vue
+6
-2
index.vue
src/views/bill/billHome/index.vue
+2
-2
index.vue
src/views/coopRestriction/index.vue
+15
-14
index.vue
src/views/decree/decreeHome/index.vue
+2
-2
index.vue
src/views/exportControl/index.vue
+2
-2
index.vue
src/views/finance/index.vue
+2
-2
index.vue
src/views/innovationSubject/index.vue
+177
-107
index.vue
...views/marketAccessRestrictions/marketAccessHome/index.vue
+2
-2
index.vue
src/views/ruleRestriction/index.vue
+14
-13
index.vue
src/views/scientificFunding/index.vue
+14
-13
index.vue
src/views/technologyFigures/index.vue
+26
-37
index.vue
src/views/thinkTank/index.vue
+2
-2
没有找到文件。
src/App.vue
浏览文件 @
50e92e9f
<
template
>
<div
id=
"app"
>
<div
class=
"pro-wrapper"
>
<div
class=
"home-page"
v-if=
"isCurrentOverview"
>
<div
class=
"home-page"
>
<div
class=
"navbar"
>
<div
class=
"nav-left"
>
<div
class=
"icon"
>
...
...
@@ -55,7 +55,7 @@
<router-view
/>
</div>
</div>
<div
class=
"content-page"
v-if=
"!isCurrentOverview"
>
<
!--
<
div
class=
"content-page"
v-if=
"!isCurrentOverview"
>
<div
class=
"navbar"
>
<div
class=
"nav-brand"
>
<div
class=
"brand-icon"
>
...
...
@@ -78,7 +78,7 @@
<div
class=
"main-container"
>
<router-view
/>
</div>
</div>
</div>
-->
<div
class=
"right-btn"
aria-disabled=
"true"
>
<div
class=
"item"
>
...
...
src/views/ZMOverView/components/fourSuppress/components/addDomain/index.vue
浏览文件 @
50e92e9f
...
...
@@ -2,7 +2,7 @@
<
template
>
<div
class=
"content-wrapper"
>
<div
class=
"btn-wrapper"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay"
>
<div
class=
"btn-wrapper"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay
(true)
"
>
<div
class=
"cards-mask"
>
<div
class=
"btn-box"
:style=
"
{ transform: `translateX(-${currentIndex * (307 + 16)}px)` }">
<div
class=
"btn-item-outer"
v-for=
"(item, indexx) in buttonsData"
:key=
"indexx"
>
...
...
@@ -1020,8 +1020,11 @@ watch(selectedField, handleGetDomainContainmentRanking);
const
currentIndex
=
ref
(
0
);
let
autoTimer
=
null
;
const
startAutoPlay
=
()
=>
{
const
startAutoPlay
=
isContiune
=>
{
if
(
!
isContiune
)
{
currentIndex
.
value
=
0
;
}
stopAutoPlay
();
if
(
buttonsData
.
value
.
length
>
5
)
{
autoTimer
=
setInterval
(()
=>
{
...
...
src/views/ZMOverView/components/fourSuppress/components/allElement/index.vue
浏览文件 @
50e92e9f
<
template
>
<div
class=
"content-wrapper"
>
<div
class=
"header"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay"
>
<div
class=
"header"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay
(true)
"
>
<div
class=
"header-arrow-left"
@
click=
"prev"
>
<img
src=
"../../assets/left-btn.png"
alt=
""
/>
</div>
...
...
@@ -459,8 +459,10 @@ const handleBox3Chart = async () => {
const
currentIndex
=
ref
(
0
);
let
autoTimer
=
null
;
const
startAutoPlay
=
()
=>
{
const
startAutoPlay
=
(
isContiune
)
=>
{
if
(
!
isContiune
)
{
currentIndex
.
value
=
0
}
stopAutoPlay
();
if
(
headerList
.
value
.
length
>=
5
)
{
autoTimer
=
setInterval
(()
=>
{
...
...
@@ -496,7 +498,6 @@ const prev = () => {
}
;
watch
(
activeDate
,
async
()
=>
{
// currentIndex.value = 0
handleGetBox2DataList
();
// 美对我要素打压情况
handleGetBox3DataList
();
// 美自身要素发展情况
handleBox2Chart
();
// 关键词云-上
...
...
src/views/ZMOverView/components/fourSuppress/components/allGovernment/index.vue
浏览文件 @
50e92e9f
<!--科技要闻-->
<
template
>
<div
class=
"content-wrapper"
>
<div
class=
"main-content"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay"
>
<div
class=
"main-content"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay
(true)
"
>
<div
class=
"cards-mask"
>
<div
class=
"cards-container"
:style=
"
{ transform: `translateX(-${currentIndex * (307 + 16)}px)` }">
<div
v-for=
"(card, index) in cardList"
:key=
"index"
class=
"government-card"
@
click=
"handleCardClick(card)"
>
...
...
@@ -627,8 +627,10 @@ const cardList = ref([
const
currentIndex
=
ref
(
0
);
let
autoTimer
=
null
;
const
startAutoPlay
=
()
=>
{
const
startAutoPlay
=
isContinue
=>
{
if
(
!
isContinue
)
{
currentIndex
.
value
=
0
;
}
stopAutoPlay
();
if
(
cardList
.
value
.
length
>
5
)
{
autoTimer
=
setInterval
(()
=>
{
...
...
src/views/ZMOverView/components/fourSuppress/components/allUnion/index.vue
浏览文件 @
50e92e9f
...
...
@@ -2,7 +2,7 @@
<
template
>
<div
class=
"content-wrapper"
>
<!-- 轮播栏目 -->
<div
class=
"carousel-list"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay"
>
<div
class=
"carousel-list"
@
mouseenter=
"stopAutoPlay"
@
mouseleave=
"startAutoPlay
(true)
"
>
<img
src=
"./assets/leftbtn.png"
alt
class=
"left-btn"
@
click=
"prev"
:class=
"
{ disabled: startIndex === 0 }" />
<div
class=
"content"
>
<div
class=
"carousel-container"
:style=
"
{ transform: `translateX(-${startIndex * (307 + 16)}px)` }">
...
...
@@ -172,8 +172,11 @@ const activeDate = inject("activeDate", ref("week"));
// 自动轮播定时器
let
autoTimer
=
null
;
const
startAutoPlay
=
()
=>
{
const
startAutoPlay
=
isContinue
=>
{
if
(
!
isContinue
)
{
startIndex
.
value
=
0
;
}
stopAutoPlay
();
if
(
carouselList
.
value
.
length
>
5
)
{
autoTimer
=
setInterval
(()
=>
{
...
...
@@ -903,6 +906,7 @@ watch(activeDate, async () => {
// fetchGeoJSON();
// initLeftDonut();
// initRightDonut();
startAutoPlay
();
});
</
script
>
...
...
src/views/bill/billHome/index.vue
浏览文件 @
50e92e9f
...
...
@@ -43,14 +43,14 @@
</div>
</div>
<div
class=
"home-box"
:class=
"
{ scrollHomeBox: isShow }" ref="containerRef">
<div
class=
"home-header"
v-show=
"!isShow"
>
<
!--
<
div
class=
"home-header"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科技法案"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main"
>
<div
class=
"home-main-header"
v-show=
"!isShow"
>
<div
class=
"home-main-header-center"
>
...
...
src/views/coopRestriction/index.vue
浏览文件 @
50e92e9f
...
...
@@ -40,14 +40,14 @@
</div>
<!-- 面包屑 -->
<div
class=
"breadcrumb"
v-show=
"!isShow"
>
<
!--
<
div
class=
"breadcrumb"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"合作限制"
></headerInfo>
</div>
</div>
</div>
-->
<!-- 主页面 -->
<div
class=
"main-content"
ref=
"homeMainRef"
:class=
"
{ 'scroll-main': isShow }">
<!-- 搜索栏部分 -->
...
...
@@ -180,7 +180,6 @@ const handleToPosi = id => {
});
}
};
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
@@ -191,20 +190,22 @@ const handleToPosi = id => {
.coop-page
{
width
:
100%
;
height
:
100%
;
.breadcrumb
{
width
:
100%
;
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
padding
:
0
160px
;
display
:
flex
;
justify-content
:
space-between
;
}
// .breadcrumb {
// width: 100%;
// height: 64px;
// background-image: url("./assets/images/bread-bg.png");
// background-size: cover;
// padding: 0 160px;
// display: flex;
// justify-content: space-between;
// }
.main-content
{
position
:
relative
;
overflow
:
auto
;
overflow
:
hidden
;
overflow-y
:
auto
;
width
:
100%
;
height
:
calc
(
100%
-
64px
)
;
height
:
100%
;
background
:
url("./assets/images/background.png")
;
background-size
:
100%
100%
;
padding
:
44px
160px
30px
160px
;
...
...
src/views/decree/decreeHome/index.vue
浏览文件 @
50e92e9f
...
...
@@ -44,14 +44,14 @@
</div>
<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=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"政令"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"searchDecreeText"
...
...
src/views/exportControl/index.vue
浏览文件 @
50e92e9f
...
...
@@ -37,14 +37,14 @@
</div>
</div>
</div>
<div
class=
"home-header"
v-show=
"!isShow"
>
<
!--
<
div
class=
"home-header"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"出口管制"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main"
ref=
"homeMainRef"
:class=
"
{ 'scroll-main': isShow }">
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
...
...
src/views/finance/index.vue
浏览文件 @
50e92e9f
<
template
>
<div
class=
"home-wrapper"
>
<div
class=
"home-header"
>
<
!--
<
div
class=
"home-header"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"投融资限制"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main"
>
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-center"
>
...
...
src/views/innovationSubject/index.vue
浏览文件 @
50e92e9f
...
...
@@ -40,14 +40,14 @@
</div>
<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=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"主要创新主体"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"input"
style=
"width: 838px; height: 100%"
placeholder=
"搜索创新主体"
/>
<div
class=
"search"
>
...
...
@@ -124,17 +124,25 @@
<div
class=
"box1-main"
>
<div
class=
"box1-main-left"
>
<div
class=
"box1-main-left-top"
>
<div
class=
"box1-main-left-top-item"
v-for=
"item in distributionList"
:key=
"item.name"
:style=
"
{ backgroundColor: item.color, color: item.textcolor }">
<div
class=
"box1-main-left-top-item"
v-for=
"item in distributionList"
:key=
"item.name"
:style=
"
{ backgroundColor: item.color, color: item.textcolor }"
>
<div
class=
"box1-main-left-top-item-text1"
>
{{
item
.
name
}}
</div>
<div
class=
"box1-main-left-top-item-text2"
>
{{
item
.
num
}}
</div>
</div>
</div>
<div
class=
"box1-main-left-down"
>
<div
class=
"box1-main-left-down-item"
v-for=
"(item, index) in zhouList"
:key=
"index"
:style=
"
{
backgroundColor:
index % 2 !== 0 ? 'rgba(248, 249, 250, 1)' : 'rgba(255, 255, 255, 1)'
}">
<div
class=
"box1-main-left-down-item"
v-for=
"(item, index) in zhouList"
:key=
"index"
:style=
"
{
backgroundColor: index % 2 !== 0 ? 'rgba(248, 249, 250, 1)' : 'rgba(255, 255, 255, 1)'
}"
>
<div
class=
"box1-main-left-down-item-index"
>
{{
index
+
1
}}
</div>
<div
class=
"box1-main-left-down-item-text"
>
{{
item
.
countName
}}
</div>
<div
class=
"box1-main-left-down-item-num"
>
{{
item
.
countNum
}}
</div>
...
...
@@ -158,10 +166,13 @@
</div>
<div
class=
"box2-main"
>
<div
class=
"box2-main-item"
v-for=
"(item, index) in warningList"
:key=
"index"
>
<div
class=
"item-left"
:class=
"
{
<div
class=
"item-left"
:class=
"
{
itemLeftStatus1: item.signalLevel === '一般风险',
itemLeftStatus2: item.signalLevel === '重大风险'
}">
}"
>
{{
item
.
signalLevel
}}
</div>
<div
class=
"item-right"
>
...
...
@@ -200,7 +211,7 @@
<div
class=
"right"
>
<div
class=
"right-top"
>
<div
class=
"title"
>
{{
news
.
newsTitle
}}
</div>
<div
class=
"time"
>
{{
news
.
newsDate
+
'.'
+
news
.
newsOrg
}}
</div>
<div
class=
"time"
>
{{
news
.
newsDate
+
"."
+
news
.
newsOrg
}}
</div>
</div>
<div
class=
"right-footer"
>
{{
news
.
newsContent
}}
</div>
</div>
...
...
@@ -222,7 +233,7 @@
<div
class=
"right"
>
<div
class=
"right-top"
>
<div
class=
"name"
>
{{
item
.
personName
}}
</div>
<div
class=
"time"
>
{{
item
.
time
+
'.'
+
item
.
orgName
}}
</div>
<div
class=
"time"
>
{{
item
.
time
+
"."
+
item
.
orgName
}}
</div>
</div>
<div
class=
"content"
>
{{
item
.
remarks
}}
</div>
</div>
...
...
@@ -235,16 +246,30 @@
<div
class=
"center-footer"
>
<div
class=
"home-main-footer-header"
>
<div
class=
"btn-box"
>
<div
class=
"btn"
:class=
"
{ btnActive: activeCate === cate }" v-for="(cate, index) in categoryList"
:key="index" @click="handleClickCate(cate)">
<div
class=
"btn"
:class=
"
{ btnActive: activeCate === cate }"
v-for="(cate, index) in categoryList"
:key="index"
@click="handleClickCate(cate)"
>
{{
cate
}}
</div>
</div>
<div
class=
"select-box"
>
<el-select
v-model=
"releaseTime"
pl
aceholder=
"2022"
style=
"width: 120px"
@
change=
"handleGetOverallRanking"
>
<el-option
v-for=
"item in releaseTimeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
<el-select
v-model=
"releaseTime"
pl
aceholder=
"2022"
style=
"width: 120px"
@
change=
"handleGetOverallRanking"
>
<el-option
v-for=
"item in releaseTimeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</div>
...
...
@@ -257,12 +282,22 @@
</div>
<div
class=
"title"
>
{{
"创新主体综合排名"
}}
</div>
</div>
<el-table
:data=
"innoItemList.datalist"
class=
"sanction-table"
stripe
empty-text=
"暂无数据"
header-row-class-name=
"table-header"
row-class-name=
"table-row"
>
<el-table-column
:prop=
"item.columnName"
:label=
"item.columnLabel"
v-for=
"item in innoItemList.headerlist"
><template
#
default=
"scope"
>
<el-table
:data=
"innoItemList.datalist"
class=
"sanction-table"
stripe
empty-text=
"暂无数据"
header-row-class-name=
"table-header"
row-class-name=
"table-row"
>
<el-table-column
:prop=
"item.columnName"
:label=
"item.columnLabel"
v-for=
"item in innoItemList.headerlist"
><template
#
default=
"scope"
>
{{
scope
.
row
.
columnValues
[
item
.
columnName
]
}}
</
template
>
</el-table-column>
</
template
>
</el-table-column>
<!-- <el-table-column prop="name" label="机构名称" width="200"> </el-table-column>
<el-table-column label="类型" width="200">
<template #default="scope">
...
...
@@ -296,23 +331,35 @@
</div>
<img
src=
"./assets/images/icon-right.png"
alt=
""
/>
</div>
</div>
</div>
<div
v-if=
"activeCate === '研究布局'"
>
<div
class=
"center-footer"
>
<div
class=
"home-main-footer-header"
>
<div
class=
"btn-box"
>
<div
class=
"btn"
:class=
"{ btnActive: activeCate === cate }"
v-for=
"(cate, index) in categoryList"
:key=
"index"
@
click=
"handleClickCate(cate)"
>
<div
class=
"btn"
:class=
"{ btnActive: activeCate === cate }"
v-for=
"(cate, index) in categoryList"
:key=
"index"
@
click=
"handleClickCate(cate)"
>
{{ cate }}
</div>
</div>
<div
class=
"select-box"
>
<el-select
v-model=
"releaseTime"
placeholder=
"2022"
style=
"width: 120px"
@
change=
"handleGetResearchField(), handleGetResearchFieldSubjectType()"
>
<el-option
v-for=
"item in releaseTimeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
<el-select
v-model=
"releaseTime"
placeholder=
"2022"
style=
"width: 120px"
@
change=
"handleGetResearchField(), handleGetResearchFieldSubjectType()"
>
<el-option
v-for=
"item in releaseTimeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</div>
...
...
@@ -326,7 +373,11 @@
</div>
<div
class=
"center-footer-layout-content"
>
<div
class=
"center-footer-layout-content-item"
>
<EChart
:option=
"pieOption(barOptionData)"
autoresize
:style=
"{ height: '370px', width: '750px' }"
/>
<EChart
:option=
"pieOption(barOptionData)"
autoresize
:style=
"{ height: '370px', width: '750px' }"
/>
<div
class=
"center-footer-elx-footer"
>
<img
src=
"./assets/images/ai.png"
alt=
""
/>
<div
class=
"center-footer-elx-footer-text"
>
...
...
@@ -335,10 +386,13 @@
<img
src=
"./assets/images/icon-right.png"
alt=
""
/>
</div>
</div>
<div
style=
"width: 1px;
height: 432px;background: rgba(234, 236, 238, 1);
"
></div>
<div
style=
"width: 1px;
height: 432px; background: rgba(234, 236, 238, 1)
"
></div>
<div
class=
"center-footer-layout-content-item"
>
<EChart
:option=
"raderOption(raderOptionData)"
autoresize
:style=
"{ height: '370px', width: '750px' }"
/>
<EChart
:option=
"raderOption(raderOptionData)"
autoresize
:style=
"{ height: '370px', width: '750px' }"
/>
<div
class=
"center-footer-elx-footer"
>
<img
src=
"./assets/images/ai.png"
alt=
""
/>
<div
class=
"center-footer-elx-footer-text"
>
...
...
@@ -355,44 +409,67 @@
<DivideHeader
id=
"position4"
class=
"divide4"
:titleText=
"'资源库'"
></DivideHeader>
<div
class=
"home-main-footer-header"
>
<div
class=
"btn-box"
>
<div
class=
"btn"
:class=
"{ btnActive: activeCate1 === cate.id }"
v-for=
"(cate, index) in categoryList1"
:key=
"index"
@
click=
"handleClickCate1(cate.id)"
>
<div
class=
"btn"
:class=
"{ btnActive: activeCate1 === cate.id }"
v-for=
"(cate, index) in categoryList1"
:key=
"index"
@
click=
"handleClickCate1(cate.id)"
>
{{ cate.typeName }}
</div>
</div>
<div
class=
"select-box"
>
<el-select
v-model=
"areaSelect"
placeholder=
"全部领域"
style=
"width: 120px"
@
change=
"handleFindListBySubjectTypeId"
>
<el-select
v-model=
"areaSelect"
placeholder=
"全部领域"
style=
"width: 120px"
@
change=
"handleFindListBySubjectTypeId"
>
<el-option
v-for=
"item in areaList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</div>
</div>
<div
class=
"home-main-footer-main"
>
<div
style=
" width: 1600px;"
>
<div
class=
"footer-main-item"
v-for=
"item in universityList"
:key=
"item.name"
@
click=
"handleClickToDetail(item.orgId)"
>
<img
:src=
"item.logoUrl"
style=
"height: 32px; width: 32px;"
/>
<div
style=
"width: 1600px"
>
<div
class=
"footer-main-item"
v-for=
"item in universityList"
:key=
"item.name"
@
click=
"handleClickToDetail(item.orgId)"
>
<img
:src=
"item.logoUrl"
style=
"height: 32px; width: 32px"
/>
<div
class=
"item-text"
>
{{ item.orgName }}
</div>
<div
class=
"item-text2"
>
{{ item.address }}
</div>
<div
class=
"item-text2"
>
{{ item.businessScope }}
</div>
<div
class=
"taglist"
>
<div
class=
"tag1"
v-for=
"(val, idx) in item.taglist"
:key=
"idx"
:class=
"{
<div
class=
"tag1"
v-for=
"(val, idx) in item.taglist"
:key=
"idx"
:class=
"{
tag2: val === '人工智能',
tag3: val === '新一代通信技术',
tag4: val === '生物科技',
tag5: val === '量子科技'
}"
>
}"
>
{{ val }}
</div>
</div>
</div>
</div>
<div
class=
"footer-box"
>
<div
class=
"footer-right"
>
<el-pagination
@
current-change=
"handleCurrentChange"
:pageSize=
"12"
:current-page=
"currentPage"
background
layout=
"prev, pager, next"
:total=
"total"
/>
<el-pagination
@
current-change=
"handleCurrentChange"
:pageSize=
"12"
:current-page=
"currentPage"
background
layout=
"prev, pager, next"
:total=
"total"
/>
</div>
</div>
</div>
...
...
@@ -440,19 +517,17 @@ import Message1 from "./assets/images/iconp9.png";
import
Message2
from
"./assets/images/iconp8.png"
;
import
Message3
from
"./assets/images/iconp5.png"
;
const
containerRef
=
ref
(
null
);
const
{
isShow
}
=
useContainerScroll
(
containerRef
);
const
currentPage
=
ref
(
1
);
const
total
=
ref
(
0
)
const
total
=
ref
(
0
)
;
const
pageSize
=
ref
(
16
);
// 处理页码改变事件
const
handleCurrentChange
=
page
=>
{
currentPage
.
value
=
page
;
handleFindListBySubjectTypeId
()
handleFindListBySubjectTypeId
()
;
};
// 地理分布
const
distributionList
=
ref
([
{
...
...
@@ -482,7 +557,6 @@ const distributionList = ref([
]);
const
distributionColorList
=
ref
([
{
color
:
"rgba(231, 243, 255, 1)"
,
textcolor
:
"rgba(22, 119, 255, 1)"
},
...
...
@@ -498,24 +572,24 @@ const distributionColorList = ref([
color
:
"rgba(249, 240, 255, 1)"
,
textcolor
:
"rgba(114, 46, 209, 1)"
}
])
])
;
//统计不同创新主体类型对应的主体数量
const
handleGetCountSubjectType
=
async
()
=>
{
try
{
const
res
=
await
getCountSubjectType
();
console
.
log
(
"统计不同创新主体类型对应的主体数量"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
distributionList
.
value
=
res
.
data
let
data
=
[]
distributionList
.
value
=
res
.
data
;
let
data
=
[]
;
res
.
data
.
map
((
item
,
index
)
=>
{
data
.
push
({
name
:
item
.
countName
,
num
:
item
.
countNum
,
color
:
distributionColorList
.
value
[
index
].
color
,
textcolor
:
distributionColorList
.
value
[
index
].
textcolor
,
})
})
distributionList
.
value
=
data
textcolor
:
distributionColorList
.
value
[
index
].
textcolor
})
;
})
;
distributionList
.
value
=
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取统计不同创新主体类型对应的主体数量error"
,
error
);
...
...
@@ -555,14 +629,14 @@ const handleGetCountGeography = async () => {
const
res
=
await
getCountGeography
();
console
.
log
(
"统计不同地理对应的主体数量"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
zhouList
.
value
=
res
.
data
zhouList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取统计不同地理对应的主体数量error"
,
error
);
}
};
// 点击查看详情
const
handleClickToDetail
=
(
university
)
=>
{
const
handleClickToDetail
=
university
=>
{
const
curRoute
=
router
.
resolve
({
name
:
"InnovativeInstitutions"
,
params
:
{
id
:
university
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
// const route = router.resolve("/InnovativeInstitutions");
...
...
@@ -624,7 +698,7 @@ const handleGetBillRiskSignal = async () => {
const
res
=
await
getBillRiskSignal
();
console
.
log
(
"风险信号"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
warningList
.
value
=
res
.
data
warningList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取风险信号error"
,
error
);
...
...
@@ -668,14 +742,13 @@ const handleGetNews = async () => {
const
res
=
await
getNews
();
console
.
log
(
"新闻资讯"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
newsList
.
value
=
res
.
data
newsList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取新闻资讯error"
,
error
);
}
};
// 社交媒体
const
messageList
=
ref
([
{
...
...
@@ -702,7 +775,7 @@ const handleGetSocialMediaInfo = async () => {
const
res
=
await
getSocialMediaInfo
();
console
.
log
(
"社交媒体"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
messageList
.
value
=
res
.
data
messageList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取社交媒体error"
,
error
);
...
...
@@ -738,7 +811,7 @@ const chart1Data = ref([
]);
const
colorList
=
[
"#69B1FF"
,
"#FFC069"
,
"#87E8DE"
,
"#85A5FF"
,
"#FF7875"
,
"#B37FEB"
];
const
innoItemList
=
ref
({})
const
innoItemList
=
ref
({})
;
// [
// {
// rank: "1",
...
...
@@ -802,20 +875,19 @@ const handleGetOverallRanking = async () => {
let
params
=
{
subjectTypeId
:
activeCate1
.
value
,
// arealist:
year
:
releaseTime
.
value
,
}
year
:
releaseTime
.
value
};
const
res
=
await
getOverallRanking
(
params
);
console
.
log
(
"综合排名"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
innoItemList
.
value
=
res
.
data
innoItemList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取综合排名error"
,
error
);
}
};
// 资源库
const
universityList
=
ref
({})
const
universityList
=
ref
({})
;
// [
// {
// pic: "src/views/innovationSubject/assets/images/u1.png",
...
...
@@ -903,7 +975,6 @@ const universityList = ref({})
// }
// ]
const
releaseTime
=
ref
(
"2022"
);
const
releaseTimeList
=
ref
([
{
...
...
@@ -926,12 +997,12 @@ const releaseTimeList = ref([
const
categoryList
=
ref
([
"创新主体排名"
,
"研究布局"
]);
const
activeCate
=
ref
(
"创新主体排名"
);
//研究领域布局情况
const
barOptionData
=
ref
([])
const
barOptionData
=
ref
([])
;
const
handleGetResearchField
=
async
()
=>
{
try
{
let
params
=
{
year
:
releaseTime
.
value
,
}
year
:
releaseTime
.
value
}
;
const
res
=
await
getResearchField
(
params
);
console
.
log
(
"研究领域布局情况"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
...
...
@@ -940,23 +1011,25 @@ const handleGetResearchField = async () => {
const
values
=
res
.
data
.
map
(
item
=>
item
.
amount
);
// 或者使用 item.percent,根据需求选择
const
total
=
res
.
data
.
reduce
((
sum
,
item
)
=>
sum
+
item
.
amount
,
0
);
barOptionData
.
value
=
{
names
,
values
,
total
}
names
,
values
,
total
};
}
}
catch
(
error
)
{
console
.
error
(
"获取研究领域布局情况error"
,
error
);
}
};
const
raderOptionData
=
ref
([])
const
raderOptionData
=
ref
([])
;
const
handleGetResearchFieldSubjectType
=
async
()
=>
{
try
{
let
params
=
{
year
:
releaseTime
.
value
,
}
year
:
releaseTime
.
value
}
;
const
res
=
await
getResearchFieldSubjectType
(
params
);
console
.
log
(
"研究领域布局情况"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
raderOptionData
.
value
=
res
.
data
raderOptionData
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取研究领域布局情况error"
,
error
);
...
...
@@ -969,14 +1042,14 @@ const areaList = ref([
value
:
"全部领域"
}
]);
const
areaSelect
=
ref
([])
const
areaSelect
=
ref
([])
;
//获取行业领域列表
const
handleGetAreaType
=
async
()
=>
{
try
{
const
res
=
await
getAreaType
();
console
.
log
(
"行业领域列表 "
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
areaList
.
value
=
res
.
data
areaList
.
value
=
res
.
data
;
}
}
catch
(
error
)
{
console
.
error
(
"获取行业领域列表 error"
,
error
);
...
...
@@ -984,16 +1057,16 @@ const handleGetAreaType = async () => {
};
const
categoryList1
=
ref
([
"研究型大学"
,
"国家实验室"
,
"科技企业"
,
"国防承包商"
]);
const
activeCate1
=
ref
(
''
);
const
activeCate1
=
ref
(
""
);
//类型列表
const
handleGetSubjectTypeList
=
async
()
=>
{
try
{
const
res
=
await
getSubjectTypeList
();
console
.
log
(
"类型列表"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
categoryList1
.
value
=
res
.
data
categoryList1
.
value
=
res
.
data
;
activeCate1
.
value
=
res
.
data
[
0
].
id
activeCate1
.
value
=
res
.
data
[
0
].
id
;
}
}
catch
(
error
)
{
console
.
error
(
"获取类型列表error"
,
error
);
...
...
@@ -1001,12 +1074,12 @@ const handleGetSubjectTypeList = async () => {
};
const
handleClickCate
=
cate
=>
{
activeCate
.
value
=
cate
;
handleGetOverallRanking
()
handleGetOverallRanking
()
;
};
const
handleClickCate1
=
cate
=>
{
activeCate1
.
value
=
cate
;
handleFindListBySubjectTypeId
()
handleFindListBySubjectTypeId
()
;
};
//资源库
...
...
@@ -1016,14 +1089,13 @@ const handleFindListBySubjectTypeId = async () => {
subjectTypeId
:
activeCate1
.
value
,
arealist
:
areaSelect
.
value
,
currentPage
:
currentPage
.
value
,
pageSize
:
16
,
}
pageSize
:
16
};
const
res
=
await
findListBySubjectTypeId
(
params
);
console
.
log
(
"资源库"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
universityList
.
value
=
res
.
data
.
content
total
.
value
=
res
.
data
.
totalElements
universityList
.
value
=
res
.
data
.
content
;
total
.
value
=
res
.
data
.
totalElements
;
}
}
catch
(
error
)
{
console
.
error
(
"获取资源库error"
,
error
);
...
...
@@ -1049,18 +1121,18 @@ const handleToPosi = id => {
};
onMounted
(
async
()
=>
{
handleGetAreaType
()
handleGetNews
()
handleGetSocialMediaInfo
()
handleGetBillRiskSignal
()
await
handleGetSubjectTypeList
()
handleGetCountGeography
()
handleGetCountSubjectType
()
handleGetOverallRanking
()
handleFindListBySubjectTypeId
()
handleGetResearchField
()
handleGetResearchFieldSubjectType
()
handleGetAreaType
()
;
handleGetNews
()
;
handleGetSocialMediaInfo
()
;
handleGetBillRiskSignal
()
;
await
handleGetSubjectTypeList
()
;
handleGetCountGeography
()
;
handleGetCountSubjectType
()
;
handleGetOverallRanking
()
;
handleFindListBySubjectTypeId
()
;
handleGetResearchField
()
;
handleGetResearchFieldSubjectType
()
;
let
chart1
=
getPieChart
(
chart1Data
.
value
,
colorList
);
setChart
(
chart1
,
"chart1"
);
});
...
...
@@ -1211,7 +1283,6 @@ onMounted(async () => {
padding
:
0
160px
;
display
:
flex
;
justify-content
:
space-between
;
}
.home-main-header-center
{
...
...
@@ -2216,7 +2287,6 @@ onMounted(async () => {
margin-left
:
24px
;
.center-footer-elx-footer
{
width
:
750px
;
height
:
88px
;
/* 自动布局 */
...
...
src/views/marketAccessRestrictions/marketAccessHome/index.vue
浏览文件 @
50e92e9f
...
...
@@ -2,14 +2,14 @@
<div
class=
"home-wrapper"
>
<div
class=
"home-main"
>
<div
class=
"home-main-header"
>
<div
class=
"home-main-header-top"
>
<
!--
<
div
class=
"home-main-header-top"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"市场准入限制"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main-header-center"
>
<el-input
v-model=
"input"
style=
"width: 838px; height: 100%"
placeholder=
"搜索市场准入限制调查"
/>
<div
class=
"search"
>
...
...
src/views/ruleRestriction/index.vue
浏览文件 @
50e92e9f
...
...
@@ -40,14 +40,14 @@
</div>
<!-- 面包屑 -->
<div
class=
"breadcrumb"
v-show=
"!isShow"
>
<
!--
<
div
class=
"breadcrumb"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"规则限制"
></headerInfo>
</div>
</div>
</div>
-->
<!-- 主页面 -->
<div
class=
"main-content"
ref=
"homeMainRef"
:class=
"
{ 'scroll-main': isShow }">
<!-- 搜索栏部分 -->
...
...
@@ -219,20 +219,21 @@ onMounted(async () => {
.coop-page
{
width
:
100%
;
height
:
100%
;
.breadcrumb
{
width
:
100%
;
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
display
:
flex
;
justify-content
:
space-between
;
padding
:
0
160px
;
}
//
.breadcrumb {
//
width: 100%;
//
height: 64px;
//
background-image: url("./assets/images/bread-bg.png");
//
background-size: cover;
//
display: flex;
//
justify-content: space-between;
//
padding: 0 160px;
//
}
.main-content
{
position
:
relative
;
overflow
:
auto
;
overflow
:
hidden
;
overflow-y
:
auto
;
width
:
100%
;
height
:
calc
(
100%
-
64px
)
;
height
:
100%
;
background
:
url("./assets/images/background.png")
;
background-size
:
100%
100%
;
padding
:
44px
160px
30px
160px
;
...
...
src/views/scientificFunding/index.vue
浏览文件 @
50e92e9f
...
...
@@ -2,14 +2,14 @@
<
template
>
<div
class=
"coop-page"
>
<!-- 面包屑 -->
<div
class=
"breadcrumb"
>
<
!--
<
div
class=
"breadcrumb"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科研资助体系"
></headerInfo>
</div>
</div>
</div>
-->
<!-- 主页面 -->
<div
class=
"main-content"
>
<!-- 搜索栏部分 -->
...
...
@@ -237,20 +237,21 @@ onMounted(async () => {
width
:
100%
;
height
:
100%
;
.breadcrumb
{
width
:
100%
;
height
:
64px
;
background-image
:
url("./assets/images/bread-bg.png")
;
background-size
:
cover
;
display
:
flex
;
justify-content
:
space-between
;
padding
:
0
160px
;
}
//
.breadcrumb {
//
width: 100%;
//
height: 64px;
//
background-image: url("./assets/images/bread-bg.png");
//
background-size: cover;
//
display: flex;
//
justify-content: space-between;
//
padding: 0 160px;
//
}
.main-content
{
overflow
:
auto
;
overflow
:
hidden
;
overflow-y
:
auto
;
width
:
100%
;
height
:
calc
(
100%
-
64px
)
;
height
:
100%
;
background
:
url("./assets/images/background.png")
;
background-size
:
100%
100%
;
padding
:
44px
160px
30px
160px
;
...
...
src/views/technologyFigures/index.vue
浏览文件 @
50e92e9f
...
...
@@ -38,13 +38,13 @@
</div>
</div>
<div
class=
"home-box"
:class=
"
{ scrollHomeBox: isShow }" ref="containerRef">
<div
class=
"home-header"
v-show=
"!isShow"
>
<
!--
<
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>
</div>
-->
<div
class=
"home-main"
>
<div
class=
"home-main-header"
v-show=
"!isShow"
>
<!--
<div
class=
"home-main-header-top"
>
...
...
@@ -1103,7 +1103,7 @@ onMounted(async () => {
}
.scrollHomeBox
{
width
:
100%
;
height
:
calc
(
100%
-
14
4px
);
height
:
calc
(
100%
-
6
4px
);
overflow-y
:
auto
;
}
.home-box
{
...
...
@@ -1112,43 +1112,32 @@ onMounted(async () => {
background
:
url("./assets/images/background.png")
;
background-size
:
100%
100%
;
overflow-y
:
auto
;
.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/header-bg.png")
;
box-sizing
:
border-box
;
padding-left
:
160px
;
display
:
flex
;
.header-item
{
margin
:
0
3px
;
}
.back-item
{
cursor
:
pointer
;
&
:hover
{
color
:
#ccc
;
}
}
}
//
.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/header-bg.png");
//
box-sizing: border-box;
//
padding-left: 160px;
//
display: flex;
//
.header-item {
//
margin: 0 3px;
//
}
//
.back-item {
//
cursor: pointer;
//
&:hover {
//
color: #ccc;
//
}
//
}
//
}
.home-main
{
// width: 1920px;
// margin: 0 auto;
// background: url("./assets/images/background.png");
// background-repeat: no-repeat;
// background-color: #fff;
// background-size: contain;
// width: 100%;
// height: 100%;
// overflow-y: auto;
// background: url("./assets/images/background.png");
// background-size: 100% 100%;
width
:
1600px
;
margin
:
0
auto
;
margin-top
:
48px
;
//
margin-top: 48px;
.home-main-header
{
display
:
flex
;
...
...
src/views/thinkTank/index.vue
浏览文件 @
50e92e9f
...
...
@@ -44,14 +44,14 @@
</div>
<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=
"home-main-header-top"
v-show=
"!isShow"
>
<div
class=
"header-left"
>
<HeaderMenu></HeaderMenu>
</div>
<div
class=
"header-right"
>
<headerInfo
curTitleName=
"科技智库"
></headerInfo>
</div>
</div>
</div>
-->
<div
class=
"home-main-header-center"
v-show=
"!isShow"
>
<el-input
v-model=
"searchThinktankText"
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论