Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
6738cddb
提交
6738cddb
authored
1月 09, 2026
作者:
huhuiqing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
科研资助接口对接
上级
2399015e
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
231 行增加
和
19 行删除
+231
-19
overview.js
src/api/scientificFunding/overview.js
+136
-0
comTitle.vue
src/views/scientificFunding/common/comTitle.vue
+16
-12
index.vue
src/views/scientificFunding/components/askPage/index.vue
+0
-0
index.vue
src/views/scientificFunding/components/dataNew/index.vue
+0
-0
index.vue
src/views/scientificFunding/components/dataSub/index.vue
+0
-0
index.vue
src/views/scientificFunding/components/resLib/index.vue
+0
-0
index.vue
src/views/scientificFunding/index.vue
+79
-7
没有找到文件。
src/api/scientificFunding/overview.js
0 → 100644
浏览文件 @
6738cddb
// 科研资助体系
import
request
from
"@/api/request.js"
;
// 资助体系:来源机构列表
/**
* @param {moduleId}
*/
export
function
getFundSourceOrg
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/fundSourceOrg`
,
})
}
/**
* 资助体系:最新资助项目
*/
export
function
getNewProject
()
{
return
request
({
method
:
"GET"
,
url
:
`/api/fund/newProject`
})
}
// 获取新闻资讯
/**
* @param {moduleId}
*/
export
function
getNews
(
moduleId
=
"0107"
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/commonFeature/news/
${
moduleId
}
`
,
})
}
/**
* 社交媒体
*/
export
function
getSocialMediaInfo
(
moduleId
=
"0107"
)
{
return
request
({
method
:
"GET"
,
url
:
`/api/commonFeature/remarks/
${
moduleId
}
`
})
}
// 获取风险信号
/**
* @param {moduleId}
*/
export
function
getRiskSignal
(
moduleId
=
"0107"
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/commonFeature/riskSignal/
${
moduleId
}
`
,
})
}
//资助体系v2.0:资助领域分布情况:资助经费
export
function
findFundField
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/countryFundsAreaList/
${
params
.
year
}
`
,
})
}
//资助体系v2.0:资助领域分布情况:资助项目
export
function
findCountryProjectAreaList
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/countryProjectAreaList/
${
params
.
year
}
`
,
})
}
//资助体系v2.0:资助经费变化情况:资助经费
export
function
getCountryFundingChange
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/countryFundingChange/
${
params
.
startDate
}
`
})
}
//资助体系v2.0:资助经费变化情况:资助项目
export
function
getCountryFundProjectChange
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/countryFundProjectChange/
${
params
.
startDate
}
`
})
}
//资助体系v2.0:机构资助领域情况
export
function
getOrgFundsArea
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/countryFundsArea/
${
params
.
year
}
`
,
})
}
//资助体系v2.0:项目资助强度分布
export
function
getOrgFundStrength
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/orgFundStrength/
${
params
.
year
}
`
,
})
}
//资助体系:来源机构列表
export
function
geFundSourceOrg
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/fundSourceOrg`
,
})
}
// 获取行业领域列表
export
function
getAreaType
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/commonDict/areaType`
,
})
}
//资助体系v2.0:资助项目列表分页
export
function
getProjectListNew
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/fund/getProjectListNew`
,
params
})
}
src/views/scientificFunding/common/comTitle.vue
浏览文件 @
6738cddb
<
template
>
<div
class=
"com-title"
>
<div
class=
"cl1"
></div>
<div
class=
"com-title"
>
<div
class=
"cl1"
></div>
<div
class=
"cl2"
></div>
<div
class=
"title"
>
{{
title
}}
</div>
<div
class=
"cl3"
></div>
</div>
</div>
</
template
>
<
script
setup
>
import
{
ref
}
from
"vue"
;
// 传入的title数据
const
props
=
defineProps
({
title
:
{
type
:
String
,
default
:
""
}
title
:
{
type
:
String
,
default
:
""
}
});
</
script
>
<
style
scoped
lang=
"scss"
>
*
{
margin
:
0
;
padding
:
0
;
margin
:
0
;
padding
:
0
;
}
.com-title
{
width
:
1575px
;
height
:
42px
;
width
:
1575px
;
height
:
42px
;
display
:
flex
;
align-items
:
center
;
.cl1
{
width
:
24px
;
height
:
30px
;
background-color
:
rgba
(
174
,
214
,
255
,
1
);
margin-right
:
8px
;
}
.cl2
{
width
:
8px
;
height
:
30px
;
background-color
:
rgba
(
174
,
214
,
255
,
1
);
margin-right
:
8px
;
}
.title
{
width
:
152px
;
height
:
42px
;
...
...
@@ -51,6 +55,7 @@ const props = defineProps({
line-height
:
42px
;
margin-right
:
8px
;
}
.cl3
{
width
:
1367px
;
height
:
1px
;
...
...
@@ -58,5 +63,4 @@ const props = defineProps({
box-sizing
:
border-box
;
}
}
</
style
>
src/views/scientificFunding/components/askPage/index.vue
浏览文件 @
6738cddb
差异被折叠。
点击展开。
src/views/scientificFunding/components/dataNew/index.vue
浏览文件 @
6738cddb
差异被折叠。
点击展开。
src/views/scientificFunding/components/dataSub/index.vue
浏览文件 @
6738cddb
差异被折叠。
点击展开。
src/views/scientificFunding/components/resLib/index.vue
浏览文件 @
6738cddb
差异被折叠。
点击展开。
src/views/scientificFunding/index.vue
浏览文件 @
6738cddb
<!--科研资助体系-->
<
template
>
<div
class=
"coop-page"
>
<!-- 面包屑 -->
...
...
@@ -67,12 +68,12 @@
</div>
<!-- 6个数据 -->
<div
class=
"data"
>
<div
v-for=
"
item
in dataList"
:key=
"item.id"
class=
"data-item"
>
<img
:src=
"item.
image
"
alt=
""
/>
<div
class=
"data-item-title"
>
{{
item
.
titl
e
}}
</div>
<div
class=
"data-item-name"
>
{{
item
.
name
}}
</div>
<div
class=
"data-item-abb"
>
{{
item
.
abb
}}
</div>
<div
class=
"data-item-num"
:style=
"
{ color:
item.color }">
{{
item
.
num
}}
</div>
<div
v-for=
"
(item, index)
in dataList"
:key=
"item.id"
class=
"data-item"
>
<img
:src=
"item.
logoUrl
"
alt=
""
/>
<div
class=
"data-item-title"
>
{{
item
.
orgNam
e
}}
</div>
<div
class=
"data-item-name"
>
{{
item
.
orgNameEn
}}
</div>
<div
class=
"data-item-abb"
>
{{
item
.
orgAbbEn
}}
</div>
<div
class=
"data-item-num"
:style=
"
{ color:
color[index] }">
{{
item
.
num
+
'项'
}}
</div>
</div>
</div>
<!-- 最新动态 -->
...
...
@@ -108,7 +109,7 @@
</
template
>
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
comTitle
from
"./common/comTitle.vue"
;
import
newData
from
"./components/dataNew/index.vue"
;
...
...
@@ -119,6 +120,11 @@ import HeaderMenu from "@/components/headerMenu.vue";
import
headerInfo
from
"@/components/headerInfo.vue"
;
import
scrollToTop
from
"@/utils/scrollToTop"
;
import
{
getFundSourceOrg
}
from
"@/api/scientificFunding/overview"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
import
img01
from
"./assets/images/img01.png"
;
...
...
@@ -195,6 +201,30 @@ const dataList = ref([
color
:
"rgb(5, 95, 194)"
}
]);
const
color
=
ref
([
"rgb(206, 79, 81)"
,
"rgba(114, 46, 209, 1)"
,
"rgba(19, 168, 168, 1)"
,
"rgba(64, 150, 255, 1)"
,
"rgb(33, 129, 57)"
,
"rgb(5, 95, 194)"
])
//// 来源机构列表
const
handleGetFundSourceOrg
=
async
()
=>
{
try
{
const
res
=
await
getFundSourceOrg
();
console
.
log
(
"来源机构列表"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
dataList
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取来源机构列表error"
,
error
);
}
};
onMounted
(
async
()
=>
{
handleGetFundSourceOrg
()
});
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
@@ -202,9 +232,11 @@ const dataList = ref([
margin
:
0
;
padding
:
0
;
}
.coop-page
{
width
:
100%
;
height
:
100%
;
.breadcrumb
{
width
:
100%
;
height
:
64px
;
...
...
@@ -214,6 +246,7 @@ const dataList = ref([
justify-content
:
space-between
;
padding
:
0
160px
;
}
.main-content
{
overflow
:
auto
;
width
:
100%
;
...
...
@@ -221,10 +254,12 @@ const dataList = ref([
background
:
url("./assets/images/background.png")
;
background-size
:
100%
100%
;
padding
:
44px
160px
30px
160px
;
.search
{
width
:
960px
;
height
:
168px
;
margin
:
0
auto
122px
auto
;
.search-main
{
display
:
flex
;
padding-right
:
3px
;
...
...
@@ -236,9 +271,11 @@ const dataList = ref([
background-color
:
rgba
(
255
,
255
,
255
,
0
.65
);
border-radius
:
10px
;
border
:
1px
solid
#fff
;
&
:hover
{
border
:
1px
solid
var
(
--
color-main-active
);
}
.search-input
{
border
:
none
;
outline
:
none
;
...
...
@@ -252,6 +289,7 @@ const dataList = ref([
line-height
:
24px
;
color
:
rgb
(
132
,
136
,
142
);
}
.search-btn
{
cursor
:
pointer
;
display
:
flex
;
...
...
@@ -267,6 +305,7 @@ const dataList = ref([
font-family
:
"Microsoft YaHei"
;
line-height
:
24px
;
color
:
#fff
;
img
{
width
:
22px
;
height
:
22px
;
...
...
@@ -274,6 +313,7 @@ const dataList = ref([
}
}
}
.search-center
{
width
:
680px
;
height
:
57px
;
...
...
@@ -281,10 +321,12 @@ const dataList = ref([
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
.search-item
{
box-sizing
:
border-box
;
width
:
120px
;
height
:
57px
;
.search-item-num
{
width
:
120px
;
height
:
22px
;
...
...
@@ -296,6 +338,7 @@ const dataList = ref([
text-align
:
center
;
cursor
:
pointer
;
}
.search-item-name
{
width
:
128px
;
height
:
24px
;
...
...
@@ -309,6 +352,7 @@ const dataList = ref([
}
}
}
.search-bottom
{
width
:
688px
;
height
:
48px
;
...
...
@@ -316,6 +360,7 @@ const dataList = ref([
margin-top
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
// gap: 16px;
.btn
{
display
:
flex
;
...
...
@@ -329,9 +374,11 @@ const dataList = ref([
background
:
#e7f3ff
;
cursor
:
pointer
;
position
:
relative
;
&
:hover
{
background
:
#cae3fc
;
}
.btn-text
{
width
:
80px
;
color
:
var
(
--
color-main-active
);
...
...
@@ -342,12 +389,14 @@ const dataList = ref([
margin-left
:
36px
;
text-align
:
center
;
}
.btn-icon
{
position
:
absolute
;
top
:
16px
;
right
:
19px
;
width
:
6px
;
height
:
12px
;
img
{
width
:
100%
;
height
:
100%
;
...
...
@@ -356,6 +405,7 @@ const dataList = ref([
}
}
}
.data
{
width
:
1600px
;
height
:
316px
;
...
...
@@ -364,6 +414,7 @@ const dataList = ref([
justify-content
:
space-between
;
align-content
:
space-between
;
flex-wrap
:
wrap
;
.data-item
{
width
:
520px
;
height
:
150px
;
...
...
@@ -374,10 +425,12 @@ const dataList = ref([
position
:
relative
;
cursor
:
pointer
;
transition
:
transform
0
.3s
ease
,
box-shadow
0
.3s
ease
;
&
:hover
{
transform
:
translateY
(
-3px
);
box-shadow
:
0
4px
16px
rgba
(
0
,
0
,
0
,
0
.15
);
}
img
{
width
:
88px
;
height
:
88px
;
...
...
@@ -385,7 +438,15 @@ const dataList = ref([
top
:
30px
;
left
:
23px
;
}
.data-item-title
{
width
:
260px
;
white-space
:
nowrap
;
/* 保持在一行内 */
overflow
:
hidden
;
/* 隐藏超出部分 */
text-overflow
:
ellipsis
;
/* 超出部分显示省略号 */
position
:
absolute
;
top
:
19px
;
left
:
132px
;
...
...
@@ -395,6 +456,7 @@ const dataList = ref([
line-height
:
42px
;
color
:
rgb
(
59
,
65
,
75
);
}
.data-item-name
{
position
:
absolute
;
top
:
71px
;
...
...
@@ -405,6 +467,7 @@ const dataList = ref([
line-height
:
24px
;
color
:
rgb
(
95
,
101
,
108
);
}
.data-item-abb
{
position
:
absolute
;
top
:
101px
;
...
...
@@ -415,6 +478,7 @@ const dataList = ref([
line-height
:
24px
;
color
:
rgb
(
95
,
101
,
108
);
}
.data-item-num
{
position
:
absolute
;
top
:
19px
;
...
...
@@ -427,40 +491,48 @@ const dataList = ref([
}
}
}
.newdata
{
width
:
1600px
;
height
:
538px
;
margin
:
36px
auto
64px
auto
;
.newdata-main
{
width
:
1600px
;
height
:
460px
;
margin-top
:
36px
;
}
}
.ask
{
width
:
1600px
;
height
:
528px
;
margin
:
0
auto
64px
auto
;
.ask-main
{
width
:
1600px
;
height
:
450px
;
margin-top
:
36px
;
}
}
.datasub
{
width
:
1600px
;
height
:
1014px
;
margin
:
0
auto
88px
auto
;
.datasub-main
{
width
:
1600px
;
height
:
936px
;
margin-top
:
36px
;
}
}
.reslib
{
width
:
1600px
;
height
:
1633px
;
margin
:
0
auto
0px
auto
;
.reslib-main
{
width
:
1600px
;
height
:
1565px
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论