Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
e0cf9513
提交
e0cf9513
authored
1月 08, 2026
作者:
huhuiqing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
科研实力接口对接
上级
dceaf44c
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
114 行增加
和
49 行删除
+114
-49
overview.js
src/api/innovationSubject/overview.js
+16
-0
index.vue
src/views/innovationSubject/index.vue
+19
-3
index.vue
...Subject/innovativeInstitutions/researchStrength/index.vue
+22
-4
charts.js
src/views/innovationSubject/utils/charts.js
+57
-42
没有找到文件。
src/api/innovationSubject/overview.js
浏览文件 @
e0cf9513
...
@@ -94,6 +94,14 @@ export function getResearchFieldSubjectType(params) {
...
@@ -94,6 +94,14 @@ export function getResearchFieldSubjectType(params) {
params
params
})
})
}
}
// 获取行业领域列表
export
function
getAreaType
()
{
return
request
({
method
:
'GET'
,
url
:
`/api/commonDict/areaType`
,
})
}
/***********详情页 */
/***********详情页 */
//创新主体详情:基本信息
//创新主体详情:基本信息
export
function
getInfo
(
params
)
{
export
function
getInfo
(
params
)
{
...
@@ -150,6 +158,14 @@ export function getPaperList(params) {
...
@@ -150,6 +158,14 @@ export function getPaperList(params) {
})
})
}
}
//创新主体科研实力:领域实力分布
export
function
getStudyFieldList
(
params
)
{
return
request
({
method
:
'GET'
,
url
:
`/api/innovateSubject/studyFieldList/
${
params
.
id
}
`
,
})
}
//创新主体科研实力:经费增长情况
//创新主体科研实力:经费增长情况
export
function
getFundGrowth
(
params
)
{
export
function
getFundGrowth
(
params
)
{
return
request
({
return
request
({
...
...
src/views/innovationSubject/index.vue
浏览文件 @
e0cf9513
...
@@ -360,8 +360,9 @@
...
@@ -360,8 +360,9 @@
</div>
</div>
</div>
</div>
<div
class=
"select-box"
>
<div
class=
"select-box"
>
<el-select
v-model=
"value"
placeholder=
"全部领域"
style=
"width: 120px"
>
<el-select
v-model=
"areaSelect"
placeholder=
"全部领域"
style=
"width: 120px"
<el-option
v-for=
"item in areaList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
@
change=
"handleFindListBySubjectTypeId"
>
<el-option
v-for=
"item in areaList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</div>
</div>
</div>
</div>
...
@@ -412,6 +413,7 @@ import getCalendarHeatChart from "./utils/cleandarHeat";
...
@@ -412,6 +413,7 @@ import getCalendarHeatChart from "./utils/cleandarHeat";
import
EChart
from
"@/components/Chart/index.vue"
;
import
EChart
from
"@/components/Chart/index.vue"
;
import
{
pieOption
,
raderOption
}
from
"./utils/charts"
;
import
{
pieOption
,
raderOption
}
from
"./utils/charts"
;
import
{
import
{
getAreaType
,
getNews
,
getNews
,
getSocialMediaInfo
,
getSocialMediaInfo
,
getBillRiskSignal
,
getBillRiskSignal
,
...
@@ -970,6 +972,19 @@ const areaList = ref([
...
@@ -970,6 +972,19 @@ const areaList = ref([
value
:
"全部领域"
value
:
"全部领域"
}
}
]);
]);
const
areaSelect
=
ref
([])
//获取行业领域列表
const
handleGetAreaType
=
async
()
=>
{
try
{
const
res
=
await
getAreaType
();
console
.
log
(
"行业领域列表 "
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
areaList
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取行业领域列表 error"
,
error
);
}
};
const
categoryList1
=
ref
([
"研究型大学"
,
"国家实验室"
,
"科技企业"
,
"国防承包商"
]);
const
categoryList1
=
ref
([
"研究型大学"
,
"国家实验室"
,
"科技企业"
,
"国防承包商"
]);
const
activeCate1
=
ref
(
''
);
const
activeCate1
=
ref
(
''
);
...
@@ -1002,7 +1017,7 @@ const handleFindListBySubjectTypeId = async () => {
...
@@ -1002,7 +1017,7 @@ const handleFindListBySubjectTypeId = async () => {
try
{
try
{
let
params
=
{
let
params
=
{
subjectTypeId
:
activeCate1
.
value
,
subjectTypeId
:
activeCate1
.
value
,
// arealist:
arealist
:
areaSelect
.
value
,
currentPage
:
currentPage
.
value
,
currentPage
:
currentPage
.
value
,
pageSize
:
16
,
pageSize
:
16
,
...
@@ -1037,6 +1052,7 @@ const handleToPosi = id => {
...
@@ -1037,6 +1052,7 @@ const handleToPosi = id => {
};
};
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
handleGetAreaType
()
handleGetNews
()
handleGetNews
()
handleGetSocialMediaInfo
()
handleGetSocialMediaInfo
()
handleGetBillRiskSignal
()
handleGetBillRiskSignal
()
...
...
src/views/innovationSubject/innovativeInstitutions/researchStrength/index.vue
浏览文件 @
e0cf9513
...
@@ -65,8 +65,8 @@
...
@@ -65,8 +65,8 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"statisticsChart"
>
<div
class=
"statisticsChart"
v-if=
"studyFieldList.length > 0"
>
<Echarts
:option=
"raderOption1"
height=
"100%"
></Echarts>
<Echarts
:option=
"raderOption1
(studyFieldList)
"
height=
"100%"
></Echarts>
</div>
</div>
<div
class=
"statisticsAI"
>
<div
class=
"statisticsAI"
>
<div
class=
"AIbox"
>
<div
class=
"AIbox"
>
...
@@ -167,7 +167,7 @@ import Echarts from "@/components/Chart/index.vue";
...
@@ -167,7 +167,7 @@ import Echarts from "@/components/Chart/index.vue";
import
{
barOption
,
lineChart
,
raderOption1
,
lineChart1
,
pieOption1
,
horizontalBaroption
}
from
"../../utils/charts.js"
;
import
{
barOption
,
lineChart
,
raderOption1
,
lineChart1
,
pieOption1
,
horizontalBaroption
}
from
"../../utils/charts.js"
;
import
{
import
{
getPatentList
,
getPatentList
,
getPaperList
,
getFundGrowth
,
getFundFromList
,
getFundToList
getPaperList
,
getFundGrowth
,
getFundFromList
,
getFundToList
,
getStudyFieldList
}
from
"@/api/innovationSubject/overview.js"
;
}
from
"@/api/innovationSubject/overview.js"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
...
@@ -221,6 +221,22 @@ const handleGetFundGrowth = async () => {
...
@@ -221,6 +221,22 @@ const handleGetFundGrowth = async () => {
}
}
};
};
//创新主体科研实力:领域实力分布
const
studyFieldList
=
ref
([])
const
handleGetStudyFieldList
=
async
()
=>
{
try
{
let
params
=
{
id
:
router
.
currentRoute
.
_value
.
params
.
id
}
const
res
=
await
getStudyFieldList
(
params
);
console
.
log
(
"领域实力分布"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
studyFieldList
.
value
=
res
.
data
}
}
catch
(
error
)
{
console
.
error
(
"获取领域实力分布error"
,
error
);
}
};
//经费来源
//经费来源
const
fundFromList
=
ref
([])
const
fundFromList
=
ref
([])
const
handleGetFundFromList
=
async
()
=>
{
const
handleGetFundFromList
=
async
()
=>
{
...
@@ -256,9 +272,11 @@ const handlegGetFundToList = async () => {
...
@@ -256,9 +272,11 @@ const handlegGetFundToList = async () => {
};
};
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
handleGetFundGrowth
()
handleGetPatentList
()
handleGetPatentList
()
handleGetPaperList
()
handleGetPaperList
()
handleGetFundGrowth
()
handleGetStudyFieldList
()
handleGetFundFromList
()
handleGetFundFromList
()
handlegGetFundToList
()
handlegGetFundToList
()
});
});
...
...
src/views/innovationSubject/utils/charts.js
浏览文件 @
e0cf9513
...
@@ -223,45 +223,8 @@ export const raderOption = (data) => {
...
@@ -223,45 +223,8 @@ export const raderOption = (data) => {
return
option
;
return
option
;
}
}
export
const
raderOption1
=
{
grid
:
{
top
:
'3%'
,
right
:
'3%'
,
bottom
:
'1%'
,
left
:
'1%'
,
containLabel
:
true
},
radar
:
{
radius
:
'60%'
,
// 关键:缩小整个雷达
indicator
:
[
{
name
:
'能源领域'
,
max
:
6500
},
{
name
:
'集成电路'
,
max
:
16000
},
{
name
:
'人工智能'
,
max
:
30000
},
{
name
:
'通信网络'
,
max
:
38000
},
{
name
:
'量子科技'
,
max
:
52000
},
{
name
:
'生物科技'
,
max
:
25000
}
],
axisName
:
{
formatter
:
'{value}'
,
color
:
'rgba(59, 65, 75, 1)'
,
fontSize
:
16
,
fontWeight
:
700
}
},
series
:
[
{
name
:
'Budget vs spending'
,
type
:
'radar'
,
data
:
[
{
value
:
[
4200
,
3000
,
20000
,
35000
,
50000
,
18000
],
name
:
'哈佛大学'
,
areaStyle
:
{
color
:
'rgba(179, 127, 235, 0.1)'
}
}
]
}
]
};
export
const
barOption
=
(
data
)
=>
{
export
const
barOption
=
(
data
)
=>
{
// 提取年份和对应的专利数量
// 提取年份和对应的专利数量
const
years
=
data
.
map
(
item
=>
item
.
year
.
toString
());
const
years
=
data
.
map
(
item
=>
item
.
year
.
toString
());
...
@@ -344,7 +307,6 @@ export const barOption = (data) => {
...
@@ -344,7 +307,6 @@ export const barOption = (data) => {
]
]
};
};
return
option
;
return
option
;
}
}
export
const
lineChart
=
(
data
)
=>
{
export
const
lineChart
=
(
data
)
=>
{
// 提取年份和对应的专利数量
// 提取年份和对应的专利数量
...
@@ -548,4 +510,58 @@ export const horizontalBaroption = (data) => {
...
@@ -548,4 +510,58 @@ export const horizontalBaroption = (data) => {
}]
}]
};
};
return
option
;
return
option
;
}
}
\ No newline at end of file
export
const
raderOption1
=
(
data
)
=>
{
// 提取指标名称和对应的值
const
indicatorNames
=
data
.
map
(
item
=>
item
.
areaName
);
const
indicatorValues
=
data
.
map
(
item
=>
item
.
areaValue
);
// 动态生成雷达图的 indicator 配置
const
indicators
=
indicatorNames
.
map
((
name
,
index
)
=>
({
name
,
max
:
Math
.
max
(...
indicatorValues
)
*
1.2
// 设置最大值为所有值的最大值的1.2倍
}));
let
radarData
=
{
color
:
"rgba(215, 27, 56, 0.2)"
,
name
:
''
,
value
:
indicatorValues
}
console
.
log
(
indicators
,
'indicators'
,
radarData
,
'radarDataradarData'
)
// 雷达图配置
const
option
=
{
title
:
{
text
:
''
},
legend
:
{
icon
:
'circle'
,
orient
:
'vertical'
,
right
:
50
,
top
:
'center'
,
align
:
'left'
,
textStyle
:
{
color
:
"rgba(59, 65, 75, 1)"
,
fontSize
:
"16px"
}
},
radar
:
{
radius
:
'60%'
,
indicator
:
indicators
,
axisName
:
{
formatter
:
'{value}'
,
color
:
'rgba(59, 65, 75, 1)'
,
fontSize
:
16
,
fontWeight
:
700
}
},
series
:
[
{
name
:
'Budget vs spending'
,
type
:
'radar'
,
data
:
[
radarData
]
}
]
};
return
option
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论