Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cxsfjx_project_echarts
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
邓文彬
cxsfjx_project_echarts
Commits
3a59518d
提交
3a59518d
authored
11月 09, 2021
作者:
Your Name
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(协同创新): 静态页面完成0.0.1
上级
f06f06fe
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
1713 行增加
和
4 行删除
+1713
-4
common.scss
src/assets/scss/common.scss
+0
-2
dataCenter.ts
src/route/dataCenter.ts
+14
-0
index.vue
src/views/dataCenter/innovation/index.vue
+104
-0
index.vue
...s/dataCenter/innovation/model/EconomicConstruct/index.vue
+310
-0
index.vue
src/views/dataCenter/innovation/model/Industrial/index.vue
+293
-0
index.vue
src/views/dataCenter/innovation/model/Munitions/index.vue
+258
-0
index.vue
src/views/dataCenter/innovation/model/Person/index.vue
+176
-0
index.vue
src/views/dataCenter/innovation/model/Science/index.vue
+334
-0
index.vue
src/views/dataCenter/innovation/model/StrongArmy/index.vue
+212
-0
index.vue
src/views/dataCenter/map/index.vue
+6
-1
index.vue
src/views/dataCenter/map/model/CardList/index.vue
+6
-1
没有找到文件。
src/assets/scss/common.scss
deleted
100644 → 0
浏览文件 @
f06f06fe
$color
:
"#333"
\ No newline at end of file
src/route/dataCenter.ts
浏览文件 @
3a59518d
...
@@ -6,6 +6,7 @@ export enum DataCenterRouter {
...
@@ -6,6 +6,7 @@ export enum DataCenterRouter {
DATA_MAP
=
"/dataCenter/map"
,
DATA_MAP
=
"/dataCenter/map"
,
DATA_INDUSTRIAL
=
"/dataCenter/industrial"
,
DATA_INDUSTRIAL
=
"/dataCenter/industrial"
,
DATA_ARMY
=
"/dataCenter/army"
,
DATA_ARMY
=
"/dataCenter/army"
,
INNOVATION
=
"/dataCenter/innovation"
}
}
...
@@ -49,6 +50,19 @@ export default [
...
@@ -49,6 +50,19 @@ export default [
label
:
"服务强军兴军"
,
label
:
"服务强军兴军"
,
},
},
component
:
()
=>
import
(
"@/views/dataCenter/army/index.vue"
)
component
:
()
=>
import
(
"@/views/dataCenter/army/index.vue"
)
},
{
path
:
DataCenterRouter
.
INNOVATION
,
name
:
"Innovation"
,
meta
:
{
person
:
{
path
:
DataCenterRouter
.
DATA_CENTER
,
name
:
"DataCenter"
,
label
:
"数据中心"
,
},
label
:
"军民协同创新"
,
},
component
:
()
=>
import
(
"@/views/dataCenter/innovation/index.vue"
)
}
}
],
],
...
...
src/views/dataCenter/innovation/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<el-row
class=
"footer-warpper"
:gutter=
"16"
>
<el-col
class=
"map-left"
:span=
"8"
>
<div
class=
"business-extend footer-item card-item"
>
<Person
/>
</div>
</el-col>
<el-col
class=
"map-right"
:span=
"16"
>
<div
class=
"footer-item card-item"
>
<Munitions
/>
</div>
</el-col>
</el-row>
<!-- foot -->
<el-row
class=
"map-warpper"
:gutter=
"16"
>
<el-col
class=
"map-left"
:span=
"8"
>
<div
class=
"footer-item card-item"
><StrongArmy
/></div>
</el-col>
<el-col
class=
"map-right"
:span=
"16"
>
<el-row
:gutter=
"16"
>
<el-col
:span=
"12"
>
<div
class=
"economic-construct card-item"
>
<EconomicConstruct
/>
</div>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"card-item"
>
<Industrial
echartsId=
"technologyInfo"
echartsTitle=
"领跑技术(产品)参军情况"
:cardItems=
"industryCardItems"
/>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
StrongArmy
from
"./model/StrongArmy/index.vue"
;
import
Person
from
"./model/Person/index.vue"
;
import
Science
from
"./model/Science/index.vue"
;
import
Munitions
from
"./model/Munitions/index.vue"
;
import
EconomicConstruct
from
"./model/EconomicConstruct/index.vue"
;
import
Industrial
from
"./model/Industrial/index.vue"
;
/**
* 军民协同创新
*/
export
default
defineComponent
({
components
:
{
StrongArmy
,
Person
,
Science
,
Munitions
,
EconomicConstruct
,
Industrial
},
setup
()
{},
data
()
{
return
{
industryCardItems
:
[
{
label
:
"国家军委、军委机关批复立项项目"
,
value
:
"1113.4"
},
{
label
:
"省直部门新认定的领跑技术(产品)"
,
value
:
"19"
,
},
],
};
},
});
</
script
>
<
style
lang=
"scss"
scoped
>
.card-item
{
background
:
#fff
;
border-radius
:
5px
;
padding
:
15px
20px
;
overflow
:
hidden
;
cursor
:
pointer
;
transition
:
all
0
.2s
;
box-shadow
:
2px
2px
10px
#eee
;
flex
:
1
;
height
:
100%
;
box-sizing
:
border-box
;
}
.map-warpper
{
box-sizing
:
border-box
;
.economic-construct
{
flex
:
1
;
}
.map-right
{
.card-item
{
flex
:
1
;
}
}
}
.footer-warpper
{
margin-bottom
:
20px
;
}
</
style
>
src/views/dataCenter/innovation/model/EconomicConstruct/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<div
class=
"scientific-research-input"
>
<MapTitle
text=
"新兴领域科研投入情况"
/>
<div
class=
"describes"
>
<div
class=
"card-items"
>
<div
class=
"item"
v-for=
"(item, index) in cardItems"
:key=
"item.text"
>
<span>
{{
item
.
label
}}
</span>
<div
class=
"value-des"
>
<span>
{{
item
.
value
||
"--"
}}
</span
>
{{
index
===
0
?
"亿元"
:
"%"
}}
</div>
</div>
</div>
</div>
<el-row
:gutter=
"10"
type=
"flex"
>
<el-col
:span=
"13"
>
<div
id=
"pie"
class=
"economic-construct"
></div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"list-item"
v-for=
"(item, index) in pieList"
:key=
"item.label"
>
<el-row
align=
"middle"
>
<div
class=
"square"
:style=
"
{ background: pieColor[`level_${index + 1}`] }"
>
</div>
{{
item
.
label
}}
</el-row>
<div
class=
"pie-value"
>
{{
item
.
value
}}
%
</div>
</div>
</el-col>
</el-row>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
const
SeriesData
=
{
name
:
"国防要求建设项目"
,
type
:
"level_1"
,
value
:
[
37.28
,
61.75
,
34.54
,
8.2
,
34.63
,
74.4
,
32.74
,
75.35
,
28.13
,
27.25
,
12.76
,
],
rate
:
[
{
city
:
"杭州"
,
value
:
49.28
,
},
{
city
:
"宁波"
,
value
:
45.7
,
},
{
city
:
"温州"
,
value
:
25.68
,
},
{
city
:
"湖州"
,
value
:
36.89
,
},
{
city
:
"嘉兴"
,
value
:
84.07
,
},
{
city
:
"绍兴"
,
value
:
53.85
,
},
{
city
:
"金华"
,
value
:
36.05
,
},
{
city
:
"衢州"
,
value
:
57.74
,
},
{
city
:
"舟山"
,
value
:
56.43
,
},
{
city
:
"台州"
,
value
:
55.68
,
},
{
city
:
"丽水"
,
value
:
32.85
,
},
],
};
const
PIE_LIST
=
[
{
label
:
"海洋领域"
,
value
:
25.17
},
{
label
:
"太空领域"
,
value
:
30.96
},
{
label
:
"网络领域"
,
value
:
20.18
},
{
label
:
"生物领域"
,
value
:
10.22
},
{
label
:
"新能源领域"
,
value
:
5.9
},
{
label
:
"人工智能领域"
,
value
:
12.24
},
];
const
PieColor
=
{
level_1
:
"#fac858"
,
level_2
:
"#6fdef7"
,
level_3
:
"#4198ff"
,
level_4
:
"#f4a746"
,
level_5
:
"#9daff9"
,
level_6
:
"#47d6ad"
,
};
/**
* 经济建设与国防密切相关的建设项目贯彻国防要求落实情况——柱状图
*/
export
default
defineComponent
({
components
:
{
MapTitle
,
},
setup
()
{},
data
()
{
return
{
seriesData
:
SeriesData
,
mapEcharts
:
null
,
cirLeftCharts
:
null
,
cirRightEchart
:
null
,
cardItems
:
[
{
label
:
"联合科研攻关投入金额"
,
value
:
"1113.4"
},
{
label
:
"联合科研攻关投入金额增长率"
,
value
:
"19"
,
},
],
pieList
:
PIE_LIST
,
pieColor
:
PieColor
,
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionBar
()
{
const
pieData
=
PIE_LIST
.
map
((
item
,
index
)
=>
{
return
{
value
:
item
.
value
,
itemStyle
:
{
color
:
PieColor
[
`level_
${
index
+
1
}
`
],
},
tooltip
:
{
borderColor
:
"none"
,
className
:
"business-pie-tooltip"
,
formatter
:
`<div class="business-pie-tooltip">
<span class='title'>
${
item
.
label
}
</span>:
<br />
<div class='pie-text'>
<span>
${
item
.
value
}
</span>亿元
</div>
</div>`
,
},
};
});
return
{
tooltip
:
{
trigger
:
"item"
,
},
series
:
[
{
name
:
"Access From"
,
type
:
"pie"
,
radius
:
[
"48%"
,
"80%"
],
avoidLabelOverlap
:
false
,
label
:
{
show
:
false
,
position
:
"center"
,
},
emphasis
:
{
label
:
{
show
:
false
,
fontSize
:
"20"
,
formatter
:
"营业额(万元)
\
n
\
n{c}"
,
},
},
labelLine
:
{
show
:
false
,
},
data
:
pieData
,
},
],
};
},
},
methods
:
{
initEcharts
()
{
const
dom
=
document
.
getElementById
(
"pie"
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionBar
);
this
.
mapEcharts
=
mapEcharts
;
},
},
unmounted
()
{
if
(
this
.
mapEcharts
)
{
this
.
mapEcharts
.
dispose
();
this
.
mapEcharts
=
null
;
}
},
});
</
script
>
<
style
>
.scientific-research-input
.business-pie-tooltip
.title
{
color
:
#333
;
font-weight
:
bold
;
}
.scientific-research-input
.business-pie-tooltip
.pie-text
{
padding-left
:
10px
;
margin-top
:
5px
;
font-size
:
12px
;
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
}
.scientific-research-input
.business-pie-tooltip
.pie-text
span
{
color
:
#4198ff
;
/* font-size: 20px; */
}
</
style
>
<
style
lang=
"scss"
scoped
>
.scientific-research-input
{
height
:
100%
;
.describes
{
margin
:
0
10px
;
height
:
120px
;
box-sizing
:
border-box
;
.card-items
{
margin
:
15px
0
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
14px
;
.item
{
flex
:
1
;
padding
:
10px
15px
;
margin-right
:
15px
;
background
:
#f8f9fb
;
border-radius
:
5px
;
font-size
:
14px
;
color
:
#333
;
&
:last-of-type
{
margin-right
:
0
;
}
.value-des
{
margin-top
:
10px
;
font-size
:
12px
;
color
:
#999
;
span
{
font-size
:
20px
;
margin-right
:
5px
;
color
:
#4198ff
;
}
}
}
}
.text
{
color
:
#4198ff
;
margin-top
:
10px
;
font-size
:
14px
;
}
}
.list-item
{
display
:
flex
;
justify-content
:
space-between
;
margin
:
0
15px
10px
0
;
padding
:
0px
15px
;
border-radius
:
5px
;
.el-row
{
font-size
:
14px
;
color
:
#333
;
}
.pie-value
{
margin-top
:
5px
;
padding-left
:
20px
;
font-size
:
12px
;
color
:
#999
;
display
:
flex
;
align-items
:
center
;
color
:
#4198ff
;
font-size
:
20px
;
}
.square
{
width
:
8px
;
height
:
8px
;
margin-right
:
5px
;
}
}
.economic-construct
{
flex
:
1
;
height
:
calc
(
100%
-
0px
);
box-sizing
:
border-box
;
margin-top
:
10px
;
transform
:
scale
(
1
.2
);
}
}
</
style
>
src/views/dataCenter/innovation/model/Industrial/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<div
class=
"industrial"
>
<MapTitle
:text=
"echartsTitle"
/>
<div
class=
"describes"
>
<div
class=
"card-items"
>
<div
class=
"item"
v-for=
"(item, index) in cardItems"
:key=
"item.text"
>
<span>
{{
item
.
label
}}
</span>
<div
class=
"value-des"
>
<span>
{{
item
.
value
||
"--"
}}
</span
>
{{
index
===
0
?
"亿元"
:
"%"
}}
</div>
</div>
</div>
<div
class=
"text"
>
{{
echartsDesText
}}
</div>
</div>
<div
:id=
"echartsId"
class=
"incom-echarts-line"
></div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
const
seriesData
=
[
{
name
:
"国家军委、军委机关批复立项项目"
,
type
:
"level_2"
,
echartType
:
"bar"
,
color
:
"#4198ff"
,
barValue
:
[
87
,
137
,
15
,
71
,
120
,
65
,
72
,
14
,
80
,
20
,
80
],
},
{
name
:
"省直部门新认定的领跑技术(产品)"
,
type
:
"level_2"
,
echartType
:
"bar"
,
color
:
"#fac858"
,
barValue
:
[
187
,
37
,
115
,
91
,
180
,
65
,
32
,
80
,
89
,
50
,
80
],
},
];
const
xAxisValue
=
[
"杭州"
,
"宁波"
,
"温州"
,
"湖州"
,
"嘉兴"
,
"绍兴"
,
"金华"
,
"衢州"
,
"舟山"
,
"台州"
,
"丽水"
,
];
/**
* 全省军民协同创新平台情况/国防科技工业产值规模分布 -- 柱状图
*/
export
default
defineComponent
({
props
:
{
echartsTitle
:
{
type
:
String
,
required
:
true
,
},
echartsDesText
:
{
type
:
String
,
required
:
true
,
},
cardItems
:
{
type
:
Array
,
required
:
true
,
dafault
:
()
=>
[],
},
echartsData
:
{
type
:
Array
,
// required: true,
dafault
:
()
=>
[],
},
echartsAxisValue
:
{
type
:
Array
,
// required: true,
dafault
:
()
=>
[],
},
echartsId
:
{
type
:
String
,
required
:
true
,
},
},
components
:
{
MapTitle
,
},
setup
()
{},
data
()
{
return
{
mapEcharts
:
null
,
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionBar
()
{
const
seriesBarList
=
seriesData
.
map
((
item
,
index
)
=>
{
return
{
name
:
item
.
name
,
type
:
"bar"
,
itemStyle
:
{
color
:
item
.
color
,
},
barWidth
:
12
,
data
:
item
.
barValue
.
map
((
barItem
,
barIndex
)
=>
{
return
{
value
:
barItem
,
label
:
item
.
name
,
};
}),
};
});
return
{
tooltip
:
{
trigger
:
"axis"
,
axisPointer
:
{
type
:
"shadow"
,
},
className
:
"industry-tooltip-des"
,
formatter
:
(
params
)
=>
{
let
html
=
`<span class="name">
${
params
[
0
].
axisValue
}
市</span>`
;
html
+=
`<div class="industry-tooltip-des ">
<span class=" title color_1">
${
params
[
0
].
data
.
label
}
</span>
<br />
<span class="text text-color_1">
${
params
[
0
].
data
.
value
}
</span>个
</div>
<div class="industry-tooltip-des">
<span class=" title color_2">
${
params
[
1
].
data
.
label
}
</span>
<br />
<span class="text text-color_2">
${
params
[
1
].
data
.
value
}
</span>个
</div>`
;
return
html
;
},
},
grid
:
{
left
:
"2%"
,
right
:
"2%"
,
bottom
:
"3%"
,
containLabel
:
true
,
},
legend
:
{
right
:
"2%"
,
},
yAxis
:
{
type
:
"value"
,
name
:
"数量(个)"
,
},
xAxis
:
{
type
:
"category"
,
data
:
xAxisValue
,
},
series
:
[...
seriesBarList
],
};
},
},
methods
:
{
initEcharts
()
{
const
dom
=
document
.
getElementById
(
this
.
echartsId
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionBar
);
this
.
mapEcharts
=
mapEcharts
;
},
},
unmounted
()
{
if
(
!
this
.
mapEcharts
)
{
return
;
}
this
.
mapEcharts
.
dispose
();
this
.
mapEcharts
=
null
;
},
});
</
script
>
<
style
>
.industry-tooltip-des
:first-of-type
{
margin-bottom
:
5px
;
}
.industry-tooltip-des
.name
{
margin-bottom
:
15px
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.industry-tooltip-des
{
width
:
200px
;
}
.industry-tooltip-des
.name
{
margin-bottom
:
15px
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.industry-tooltip-des
.title
{
padding-left
:
10px
;
font-weight
:
600
;
font-size
:
12px
;
color
:
#666
;
position
:
relative
;
}
.industry-tooltip-des
.title
::before
{
position
:
absolute
;
top
:
5px
;
left
:
0
;
content
:
" "
;
width
:
6px
;
height
:
6px
;
display
:
inline-block
;
border-radius
:
50%
;
}
.industry-tooltip-des
.text
{
padding-left
:
20px
;
margin-bottom
:
20px
;
font-size
:
20px
;
}
.industry-tooltip-des
.text
:last-of-type
{
margin
:
0
;
}
.industry-tooltip-des
.text-color_1
{
color
:
#4198ff
;
}
.industry-tooltip-des
.text-color_2
{
color
:
#fac858
;
}
.industry-tooltip-des
.color_1
::before
{
background
:
#4198ff
;
}
.industry-tooltip-des
.color_2
::before
{
background
:
#fac858
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
.industrial
{
height
:
100%
;
.incom-echarts-line
{
flex
:
1
;
height
:
calc
(
100%
-
160px
);
box-sizing
:
border-box
;
}
.describes
{
margin
:
0
10px
;
height
:
120px
;
box-sizing
:
border-box
;
.card-items
{
margin
:
15px
0
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
14px
;
.item
{
flex
:
1
;
padding
:
10px
15px
;
margin-right
:
15px
;
background
:
#f8f9fb
;
border-radius
:
5px
;
font-size
:
14px
;
color
:
#333
;
&
:last-of-type
{
margin-right
:
0
;
}
.value-des
{
margin-top
:
10px
;
font-size
:
12px
;
color
:
#999
;
span
{
font-size
:
20px
;
margin-right
:
5px
;
color
:
#4198ff
;
}
}
}
}
.text
{
color
:
#4198ff
;
margin-top
:
10px
;
font-size
:
14px
;
}
}
}
</
style
>
src/views/dataCenter/innovation/model/Munitions/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<div
class=
"enterprises-institutions"
>
<MapTitle
text=
"民参军企事业单位研发投入情况"
/>
<el-row
class=
"investment"
>
<el-col
class=
"card-list"
:span=
"6"
>
<div
class=
"card-item"
v-for=
"item in cards"
:key=
"item.label"
>
<p>
{{
item
.
label
}}
</p>
<div>
{{
item
.
value
}}
<span
class=
"unit"
>
{{
item
.
unit
}}
</span>
</div>
</div>
</el-col>
<el-col
class=
"city-echarts"
:span=
"18"
>
<div
class=
"title2X"
>
“民参军”企事业单位军品科研经费分布情况
</div>
<div
id=
"enterprises"
class=
"echart-item"
></div>
</el-col>
</el-row>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
import
{
Aim
}
from
"@element-plus/icons"
;
// 城市增长率
const
xAxisCity
=
[
"杭州"
,
"宁波"
,
"温州"
,
"湖州"
,
"嘉兴"
,
"绍兴"
,
"金华"
,
"衢州"
,
"舟山"
,
"台州"
,
"丽水"
,
];
const
cityData
=
{
value
:
[
32.68
,
7.42
,
1.36
,
3.47
,
19.56
,
12.5
,
1.7
,
0.86
,
2.61
,
2.58
,
0.17
],
};
/**
* 承担军需品情况
*/
export
default
defineComponent
({
components
:
{
MapTitle
,
Aim
,
},
setup
()
{},
data
()
{
return
{
countryEcharts
:
null
,
enterprises
:
null
,
cards
:
[
{
label
:
"全省“民参军”企事业单位军品科研经费支出总额"
,
value
:
"284"
,
unit
:
"亿元"
,
},
{
label
:
"全省“民参军”企事业单位R & D"
,
value
:
"5%"
,
unit
:
""
,
},
],
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionCity
()
{
const
seriesBar
=
{
type
:
"bar"
,
itemStyle
:
{
color
:
"#4198ff"
,
},
barWidth
:
20
,
data
:
cityData
.
value
.
map
((
item
)
=>
{
return
{
value
:
item
,
label
:
"收入规模"
,
};
}),
};
return
{
tooltip
:
{
trigger
:
"axis"
,
axisPointer
:
{
type
:
"shadow"
,
},
formatter
:
(
params
)
=>
{
let
html
=
``
;
html
+=
`<div class="munition-echart ">
<span class=" title color_1">
${
params
[
0
].
axisValue
}
市</span>
<br />
<span class="text text-color_1">
${
params
[
0
].
data
.
value
}
</span>亿元
</div>
`
;
return
html
;
},
},
legend
:
{},
grid
:
{
top
:
"10%"
,
left
:
"5%"
,
right
:
"2%"
,
bottom
:
"3%"
,
containLabel
:
true
,
},
yAxis
:
{
type
:
"value"
,
name
:
"金额(亿元)"
,
min
:
0
,
max
:
50
,
},
xAxis
:
{
type
:
"category"
,
data
:
xAxisCity
,
},
series
:
[
seriesBar
],
};
},
},
methods
:
{
initEcharts
()
{
this
.
initCityEcharts
();
},
initCityEcharts
()
{
const
dom
=
document
.
getElementById
(
"enterprises"
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionCity
);
this
.
enterprises
=
mapEcharts
;
},
},
unmounted
()
{
if
(
this
.
enterprises
)
{
this
.
enterprises
.
dispose
();
this
.
enterprises
=
null
;
}
},
});
</
script
>
<
style
>
.munition-echart
{
width
:
110px
;
}
.munition-echart
.name
{
margin-bottom
:
15px
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.munition-echart
.title
{
padding-left
:
10px
;
font-weight
:
600
;
font-size
:
12px
;
color
:
#666
;
position
:
relative
;
}
.munition-echart
.title
::before
{
position
:
absolute
;
top
:
5px
;
left
:
0
;
content
:
" "
;
width
:
6px
;
height
:
6px
;
display
:
inline-block
;
border-radius
:
50%
;
}
.munition-echart
.text
{
padding-left
:
20px
;
margin-bottom
:
20px
;
}
.munition-echart
.text
:last-of-type
{
margin
:
0
;
}
.munition-echart
.text-color_1
{
color
:
#4198ff
;
}
.munition-echart
.text-color_2
{
color
:
#eca933
;
}
.munition-echart
.color_1
::before
{
background
:
#4198ff
;
}
.munition-echart
.color_2
::before
{
background
:
#eca933
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
.enterprises-institutions
{
height
:
100%
;
.investment
{
.echart-item
{
flex
:
1
;
height
:
300px
;
box-sizing
:
border-box
;
margin-top
:
10px
;
}
.card-list
{
display
:
flex
;
flex-direction
:
column
;
padding
:
20px
20px
20px
0
;
.card-item
{
flex
:
1
;
box-sizing
:
border-box
;
margin-bottom
:
15px
;
padding
:
20px
;
background
:
#f8f9fb
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
border-radius
:
5%
;
&
:last-of-type
{
margin-bottom
:
0
;
}
p
{
font-size
:
14px
;
color
:
#333
;
margin-bottom
:
10px
;
}
div
{
color
:
#4198ff
;
font-size
:
20px
;
}
.unit
{
color
:
#999
;
font-size
:
12px
;
}
}
}
.title2X
{
margin-top
:
15px
;
font-size
:
16px
;
color
:
#4198ff
;
}
}
}
</
style
>
src/views/dataCenter/innovation/model/Person/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<div
class=
"synergy-innovation"
>
<MapTitle
text=
"军民协同创新总览"
/>
<div
class=
"describes"
>
<div
class=
"text"
>
各市军民协同创新指标情况
</div>
<el-row
class=
""
justify=
"space-between"
>
<div
class=
"years"
align=
"middle"
>
<span
v-for=
"(item, index) in years"
:key=
"item"
:class=
"
{
active: index === curYearIndex,
}"
@click="yearHandle(index)"
>
{{
item
}}
年
</span
>
</div>
</el-row>
</div>
<div
id=
"synergyInnovation"
class=
"line"
></div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
const
SeriesData
=
[
25
,
27
,
18
,
22
,
28
,
24
,
19
,
20
,
21
,
22
,
19
];
const
xAxisValue
=
[
"杭州"
,
"宁波"
,
"温州"
,
"湖州"
,
"嘉兴"
,
"绍兴"
,
"金华"
,
"衢州"
,
"舟山"
,
"台州"
,
"丽水"
,
];
/**
* 军民协同创新总览
*/
export
default
defineComponent
({
props
:
{},
components
:
{
MapTitle
,
},
setup
()
{},
data
()
{
return
{
years
:
[
2019
,
2020
,
"2021上半"
],
curYearIndex
:
2
,
mapEcharts
:
null
,
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionBar
()
{
return
{
tooltip
:
{
trigger
:
"axis"
,
axisPointer
:
{
type
:
"shadow"
,
},
textStyle
:
{},
className
:
"target-bar-tooltip"
,
formatter
:
"<span class='title'>{b0}市</span>: <br /> <span class='bar-text'>{c0}</span> 分"
,
},
legend
:
{},
grid
:
{
left
:
"-5%"
,
right
:
"5%"
,
bottom
:
"5%"
,
containLabel
:
true
,
},
yAxis
:
{
type
:
"value"
,
show
:
false
,
},
xAxis
:
{
type
:
"category"
,
data
:
xAxisValue
,
},
series
:
[
{
type
:
"bar"
,
itemStyle
:
{
color
:
"#4198ff"
,
},
label
:
{
show
:
true
,
position
:
"top"
,
},
barWidth
:
20
,
data
:
SeriesData
,
},
],
};
},
},
methods
:
{
yearHandle
(
index
:
number
)
{
this
.
curYearIndex
=
index
;
},
initEcharts
()
{
const
dom
=
document
.
getElementById
(
"synergyInnovation"
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionBar
);
this
.
mapEcharts
=
mapEcharts
;
},
},
unmounted
()
{
if
(
!
this
.
mapEcharts
)
{
return
;
}
this
.
mapEcharts
.
dispose
();
this
.
mapEcharts
=
null
;
},
});
</
script
>
<
style
>
.target-bar-tooltip
.title
{
color
:
#333
;
font-weight
:
bold
;
}
.target-bar-tooltip
.bar-text
{
padding-left
:
10px
;
color
:
#4198ff
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
.synergy-innovation
{
.line
{
flex
:
1
;
height
:
250px
;
box-sizing
:
border-box
;
}
.describes
{
margin
:
0
10px
5px
0
;
box-sizing
:
border-box
;
.years
{
margin-bottom
:
15px
;
display
:
flex
;
align-items
:
center
;
overflow
:
hidden
;
span
{
margin-right
:
10px
;
padding
:
0
12px
;
height
:
32px
;
line-height
:
32px
;
font-size
:
12px
;
color
:
#333
;
background
:
#f4f6f9
;
border-radius
:
5px
;
}
.active
{
background-color
:
#4198ff
;
color
:
#fff
;
}
}
.text
{
color
:
#4198ff
;
margin
:
10px
0
;
font-size
:
16px
;
}
}
}
</
style
>
src/views/dataCenter/innovation/model/Science/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<MapTitle
text=
"民口单位服务武器装备科研生产情况"
/>
<el-row
class=
"science-info"
justify=
"space-between"
>
<el-col
:span=
"11"
>
<div
class=
"card-item"
>
<span>
民口单位军品收入
</span>
<div>
53.35
<span>
亿元
</span></div>
</div>
<div
class=
"card-item"
>
<span>
人均民口单位军品收入
</span>
<div>
90.56
<span>
元
</span></div>
</div>
</el-col>
<el-col
class=
"increase-rate"
:span=
"12"
>
<div
class=
"title"
>
各市民口单位军品收入增长率
</div>
<div
class=
"rate-list"
>
<div
class=
"rate-list-head rate-list-item"
>
<span>
地区
</span>
<span>
增长率
</span>
</div>
<el-scrollbar
height=
"92px"
>
<div
class=
"rate-list-item"
v-for=
"(item, index) in seriesData.rate"
:key=
"index"
>
<span>
{{
item
.
city
}}
</span>
<span
class=
"rate-value"
>
{{
item
.
increace
}}
%
</span>
</div>
</el-scrollbar>
</div>
</el-col>
</el-row>
<div
class=
"science-title"
>
各市民口单位军品收入(亿元)
</div>
<div
id=
"incomDistribution"
class=
"incom-distribution"
></div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
const
SeriesData
=
{
type
:
"level_1"
,
rate
:
[
{
city
:
"杭州"
,
value
:
15.63
,
increace
:
69.53
,
},
{
city
:
"宁波"
,
value
:
7.42
,
increace
:
66
,
},
{
city
:
"温州"
,
value
:
1.23
,
increace
:
18.6
,
},
{
city
:
"湖州"
,
value
:
2.65
,
increace
:
79.1
,
},
{
city
:
"嘉兴"
,
value
:
6
,
increace
:
28.06
,
},
{
city
:
"绍兴"
,
value
:
12.5
,
increace
:
117
,
},
{
city
:
"金华"
,
increace
:
83
,
value
:
1.7
,
},
{
city
:
"衢州"
,
increace
:
13.2
,
value
:
0.86
,
},
{
city
:
"舟山"
,
increace
:
-
32
,
value
:
2.61
,
},
{
city
:
"台州"
,
increace
:
46.4
,
value
:
2.58
,
},
{
city
:
"丽水"
,
increace
:
150.7
,
value
:
0.17
,
},
],
};
const
xAxisValue
=
[
"杭州"
,
"宁波"
,
"温州"
,
"湖州"
,
"嘉兴"
,
"绍兴"
,
"金华"
,
"衢州"
,
"舟山"
,
"台州"
,
"丽水"
,
];
/**
* 民口单位服务武器装备科研生产情况——柱状图
*/
export
default
defineComponent
({
components
:
{
MapTitle
,
},
setup
()
{},
data
()
{
return
{
seriesData
:
SeriesData
,
mapEcharts
:
null
,
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionBar
()
{
const
seriesLine
=
{
type
:
"line"
,
itemStyle
:
{
color
:
"#4198ff"
,
},
emphasis
:
{
focus
:
"series"
,
},
label
:
{
show
:
true
,
position
:
"top"
,
},
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
"#4198ff"
,
},
{
offset
:
1
,
color
:
"#fff"
,
},
]),
},
data
:
SeriesData
.
rate
,
};
return
{
tooltip
:
{
trigger
:
"axis"
,
className
:
"science-echart"
,
formatter
:
(
params
)
=>
{
let
html
=
`<span class="name">
${
params
[
0
].
axisValue
}
市</span>`
;
html
+=
`<div class="science-echart ">
<span class=" title color_1">民口单位军品收入</span>
<br />
<span class="text text-color_1">
${
params
[
0
].
data
.
value
}
</span>亿元
</div>`
;
return
html
;
},
},
legend
:
{},
grid
:
{
top
:
"5%"
,
left
:
"0%"
,
right
:
"5%"
,
bottom
:
"3%"
,
containLabel
:
true
,
},
yAxis
:
{
type
:
"value"
,
show
:
false
,
},
xAxis
:
{
type
:
"category"
,
data
:
xAxisValue
,
},
series
:
[
seriesLine
],
};
},
},
methods
:
{
initEcharts
()
{
const
dom
=
document
.
getElementById
(
"incomDistribution"
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionBar
);
this
.
mapEcharts
=
mapEcharts
;
},
},
unmounted
()
{
if
(
!
this
.
mapEcharts
)
{
return
;
}
this
.
mapEcharts
.
dispose
();
this
.
mapEcharts
=
null
;
},
});
</
script
>
<
style
>
.science-echart
{
width
:
110px
;
}
.science-echart
.name
{
margin-bottom
:
15px
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.science-echart
.title
{
padding-left
:
10px
;
font-weight
:
600
;
font-size
:
12px
;
color
:
#666
;
position
:
relative
;
}
.science-echart
.title
::before
{
position
:
absolute
;
top
:
5px
;
left
:
0
;
content
:
" "
;
width
:
6px
;
height
:
6px
;
display
:
inline-block
;
border-radius
:
50%
;
}
.science-echart
.text
{
padding-left
:
20px
;
margin-bottom
:
20px
;
font-size
:
20px
;
}
.science-echart
.text-color_1
{
color
:
#4198ff
;
}
.science-echart
.color_1
::before
{
background
:
#4198ff
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
.science-info
{
margin-top
:
15px
;
height
:
150px
;
box-sizing
:
border-box
;
.card-item
{
color
:
#333
;
padding
:
8px
15px
;
box-sizing
:
border-box
;
background
:
#f8f9fb
;
border-radius
:
5px
;
margin-bottom
:
8px
;
&
:last-of-type
{
margin-bottom
:
0
;
}
div
{
color
:
#4198ff
;
font-size
:
20px
;
display
:
flex
;
align-items
:
center
;
span
{
margin-left
:
10px
;
font-size
:
14px
;
color
:
#999
;
}
}
}
.increase-rate
{
.title
{
color
:
#4198ff
;
margin-bottom
:
5px
;
}
.rate-list
{
.rate-list-item
{
padding
:
5px
40px
5px
20px
;
display
:
flex
;
align-items
:
center
;
font-size
:
12px
;
color
:
#666
;
justify-content
:
space-between
;
}
.rate-list-head
{
background
:
#ddeaf8
;
}
.el-scrollbar
{
background
:
#f8f9fb
;
}
.rate-value
{
color
:
#4198ff
;
}
}
}
}
.science-title
{
color
:
#4198ff
;
}
.incom-distribution
{
flex
:
1
;
min-height
:
150px
;
height
:
calc
(
100%
-
200px
);
box-sizing
:
border-box
;
margin-top
:
10px
;
}
</
style
>
src/views/dataCenter/innovation/model/StrongArmy/index.vue
0 → 100644
浏览文件 @
3a59518d
<
template
>
<div
class=
"synergy-innovation-platform"
>
<MapTitle
text=
"全省军民协同创新平台情况"
/>
<div
class=
"echarts-search"
>
<div
class=
"card-items"
>
<div
class=
"item"
>
<span>
协同创新平台
</span>
<div
class=
"value-des"
><span>
80
</span>
个
</div>
</div>
<div
class=
"item"
>
<span>
协同创新示范平台
</span>
<div
class=
"value-des"
><span>
66
</span>
个
</div>
</div>
</div>
<div
class=
"title"
>
协同创新平台投入研发经费
</div>
</div>
<div
id=
"TargetBar"
class=
"target-bar"
></div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
"vue"
;
import
MapTitle
from
"@/components/mapTitle/index.vue"
;
import
*
as
echarts
from
"echarts"
;
const
SeriesData
=
{
type
:
"level_1"
,
rate
:
[
{
value
:
15.63
,
},
{
value
:
7.42
,
},
{
value
:
1.23
,
},
{
value
:
2.65
,
},
],
};
const
xAxisValue
=
[
"2018年"
,
"2019年"
,
"2020年"
,
"2021年"
,
];
/**
* 全省军民协同创新平台情况——折线图
*/
export
default
defineComponent
({
components
:
{
MapTitle
,
},
setup
()
{},
data
()
{
return
{
value
:
1
,
options
:
[
{
label
:
"得分情况"
,
value
:
1
},
{
label
:
"军转民收入及增长率"
,
value
:
2
},
{
label
:
"规模以上企业收入及增长率"
,
value
:
3
},
{
label
:
"国防科工产值"
,
value
:
4
},
],
mapEcharts
:
null
,
};
},
mounted
()
{
this
.
initEcharts
();
},
computed
:
{
optionBar
()
{
const
seriesLine
=
{
type
:
"line"
,
itemStyle
:
{
color
:
"#4198ff"
,
},
emphasis
:
{
focus
:
"series"
,
},
label
:
{
show
:
true
,
position
:
"top"
,
},
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
"#4198ff"
,
},
{
offset
:
1
,
color
:
"#fff"
,
},
]),
},
data
:
SeriesData
.
rate
,
};
return
{
tooltip
:
{
trigger
:
"axis"
,
className
:
"science-echart"
,
formatter
:
(
params
)
=>
{
let
html
=
`<span class="name">
${
params
[
0
].
axisValue
}
</span>`
;
html
+=
`<div class="science-echart ">
<span class=" title color_1">项目投资额</span>
<br />
<span class="text text-color_1">
${
params
[
0
].
data
.
value
}
</span>万元
</div>`
;
return
html
;
},
},
legend
:
{},
grid
:
{
top
:
"5%"
,
left
:
"0%"
,
right
:
"5%"
,
bottom
:
"3%"
,
containLabel
:
true
,
},
yAxis
:
{
type
:
"value"
,
name
:
"万元"
,
},
xAxis
:
{
type
:
"category"
,
data
:
xAxisValue
,
},
series
:
[
seriesLine
],
};
},
},
methods
:
{
initEcharts
()
{
const
dom
=
document
.
getElementById
(
"TargetBar"
);
const
mapEcharts
=
echarts
.
init
(
dom
);
mapEcharts
.
setOption
(
this
.
optionBar
);
this
.
mapEcharts
=
mapEcharts
;
},
},
unmounted
()
{
if
(
!
this
.
mapEcharts
)
{
return
;
}
this
.
mapEcharts
.
dispose
();
this
.
mapEcharts
=
null
;
},
});
</
script
>
<
style
lang=
"scss"
scoped
>
.synergy-innovation-platform
{
height
:
100%
;
.echarts-search
{
padding-left
:
10px
;
.title
{
color
:
#4198ff
;
margin
:
12px
0
;
font-size
:
16px
;
}
.card-items
{
margin
:
15px
0
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
14px
;
.item
{
flex
:
1
;
padding
:
8px
15px
;
margin-right
:
15px
;
background
:
#f8f9fb
;
border-radius
:
5px
;
font-size
:
14px
;
color
:
#333
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
&
:last-of-type
{
margin-right
:
0
;
}
.value-des
{
font-size
:
12px
;
color
:
#999
;
display
:
flex
;
align-items
:
center
;
span
{
font-size
:
20px
;
margin-right
:
5px
;
color
:
#4198ff
;
}
}
}
}
}
.target-bar
{
flex
:
1
;
height
:
calc
(
100%
-
130px
);
box-sizing
:
border-box
;
margin-top
:
10px
;
}
}
</
style
>
src/views/dataCenter/map/index.vue
浏览文件 @
3a59518d
...
@@ -21,7 +21,10 @@
...
@@ -21,7 +21,10 @@
<div
class=
"card-list"
:gutter=
"16"
>
<div
class=
"card-list"
:gutter=
"16"
>
<el-col
class=
"card-item"
><StrongArmyCard
/></el-col>
<el-col
class=
"card-item"
><StrongArmyCard
/></el-col>
<el-col
class=
"card-item"
<el-col
class=
"card-item"
><CardItem
:infoList=
"list"
title=
"军民协同创新"
><CardItem
title=
"军民协同创新"
:infoList=
"list"
:toPage=
"dataCenterRouter.INNOVATION"
/></el-col>
/></el-col>
<el-col
class=
"card-item"
><Industrial
/></el-col>
<el-col
class=
"card-item"
><Industrial
/></el-col>
<el-col
class=
"card-item"
<el-col
class=
"card-item"
...
@@ -41,6 +44,7 @@ import StrongArmyCard from "./model/CardList/strongArmy.vue";
...
@@ -41,6 +44,7 @@ import StrongArmyCard from "./model/CardList/strongArmy.vue";
import
CardItem
from
"./model/CardList/index.vue"
;
import
CardItem
from
"./model/CardList/index.vue"
;
import
Industrial
from
"./model/CardList/industrial.vue"
;
import
Industrial
from
"./model/CardList/industrial.vue"
;
import
SystemConstruct
from
"./model/CardList/systemConstruct.vue"
;
import
SystemConstruct
from
"./model/CardList/systemConstruct.vue"
;
import
{
DataCenterRouter
}
from
"@/route/dataCenter"
;
export
default
defineComponent
({
export
default
defineComponent
({
components
:
{
components
:
{
...
@@ -57,6 +61,7 @@ export default defineComponent({
...
@@ -57,6 +61,7 @@ export default defineComponent({
setup
()
{},
setup
()
{},
data
()
{
data
()
{
return
{
return
{
dataCenterRouter
:
DataCenterRouter
,
list
:
[
list
:
[
{
label
:
"领跑产品(技术)"
,
value
:
"130"
,
unit
:
"个"
},
{
label
:
"领跑产品(技术)"
,
value
:
"130"
,
unit
:
"个"
},
{
label
:
"军地协同创新平台"
,
value
:
"139"
,
unit
:
"个"
},
{
label
:
"军地协同创新平台"
,
value
:
"139"
,
unit
:
"个"
},
...
...
src/views/dataCenter/map/model/CardList/index.vue
浏览文件 @
3a59518d
...
@@ -36,13 +36,18 @@ export default defineComponent({
...
@@ -36,13 +36,18 @@ export default defineComponent({
type
:
Array
,
type
:
Array
,
required
:
true
,
required
:
true
,
},
},
toPage
:
{
type
:
String
,
},
},
},
components
:
{
components
:
{
MapTitle
,
MapTitle
,
},
},
setup
()
{},
setup
()
{},
methods
:
{
methods
:
{
detailsHandle
()
{},
detailsHandle
()
{
this
.
toPage
&&
this
.
$router
.
push
(
this
.
toPage
);
},
},
},
});
});
</
script
>
</
script
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论