提交 6738cddb authored 作者: huhuiqing's avatar huhuiqing

科研资助接口对接

上级 2399015e
// 科研资助体系
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
})
}
<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>
<!--科研资助体系-->
<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.title }}</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.orgName }}</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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论