提交 90d1c4d9 authored 作者: Your Name's avatar Your Name

fix(产业融合): 样式待调整

上级 6b2d0c48
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<AppHead /> <AppHead />
<div class="main-warpper"> <div class="main-warpper">
<router-view > </router-view> <router-view> </router-view>
</div> </div>
</div> </div>
</template> </template>
...@@ -27,8 +27,11 @@ export default defineComponent({ ...@@ -27,8 +27,11 @@ export default defineComponent({
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
@font-face {
font-family: "tabTypeFace";
src: url("../public/assets/tabTypeFace.TTF");
}
#app { #app {
height: 100vh;
box-sizing: border-box; box-sizing: border-box;
} }
...@@ -36,11 +39,14 @@ export default defineComponent({ ...@@ -36,11 +39,14 @@ export default defineComponent({
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
min-width: 1920px;
padding: 20px 30px;
background: #f5f9fb;
box-sizing: border-box;
} }
.main-warpper { .main-warpper {
padding: 0 20px 20px;
flex: 1; flex: 1;
background: #f5f9fb;
box-sizing: border-box; box-sizing: border-box;
} }
</style> </style>
...@@ -31,6 +31,7 @@ export default defineComponent({ ...@@ -31,6 +31,7 @@ export default defineComponent({
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
font-size: 20px;
&::before { &::before {
content: " "; content: " ";
display: inline-block; display: inline-block;
...@@ -46,9 +47,10 @@ export default defineComponent({ ...@@ -46,9 +47,10 @@ export default defineComponent({
color: #666; color: #666;
cursor: pointer; cursor: pointer;
font-size: 14px; font-size: 14px;
&:hover {
color: #4197ff; color: #4197ff;
} // &:hover {
// color: #4197ff;
// }
} }
} }
</style> </style>
\ No newline at end of file
...@@ -164,7 +164,7 @@ export default defineComponent({ ...@@ -164,7 +164,7 @@ export default defineComponent({
box-sizing: border-box; box-sizing: border-box;
.container { .container {
padding: 0 20px; // padding: 0 20px;
box-sizing: border-box; box-sizing: border-box;
} }
// 一级导航栏 // 一级导航栏
...@@ -220,7 +220,6 @@ export default defineComponent({ ...@@ -220,7 +220,6 @@ export default defineComponent({
// 行动轨迹记录 // 行动轨迹记录
.proceed-record { .proceed-record {
margin-top: 20px;
margin-bottom: 20px; margin-bottom: 20px;
padding: 0 20px; padding: 0 20px;
background: #fff; background: #fff;
......
import { createRouter, createWebHistory } from "vue-router" import { createRouter, createWebHistory, createWebHashHistory } from "vue-router"
import evaluatIndicator from "./evaluatIndicator" import evaluatIndicator from "./evaluatIndicator"
...@@ -9,13 +9,11 @@ const routes: any[] = [ ...@@ -9,13 +9,11 @@ const routes: any[] = [
] ]
const router = createRouter({ const router = createRouter({
history: createWebHistory(), history: createWebHashHistory(),
routes, routes,
scrollBehavior(to, from, savedPosition) { scrollBehavior(to, from, savedPosition) {
return { top: 0 } return { top: 0 }
}, },
}) })
export default navigation(router); export default navigation(router);
\ No newline at end of file
<template> <template>
<el-row class="map-warpper" :gutter="16"> <el-row class="map-warpper">
<el-col class="map-left" :span="8"> <el-col class="map-left">
<div class="performance-com card-item"><Performance /></div> <div class="performance-com card-item"><Performance /></div>
<div class="card-item rank-list"><RankList /></div> <div class="card-item rank-list"><RankList /></div>
</el-col> </el-col>
<el-col class="map-middle" :span="8"> <div class="map-middle" >
<div class="card-item"><Map /></div> <div class="card-item map-item"><Map /></div>
</el-col> </div>
<el-col class="map-right" :span="8"> <div class="map-right">
<div class="performance-com card-item"><InvestmentProgress /></div> <div class="performance-com card-item"><InvestmentProgress /></div>
<div class="card-item incom-graphic"><Income /></div> <div class="card-item incom-graphic"><Income /></div>
</el-col> </div>
</el-row> </el-row>
<!-- 卡片信息展示 --> <!-- 卡片信息展示 -->
...@@ -71,11 +71,11 @@ export default defineComponent({ ...@@ -71,11 +71,11 @@ export default defineComponent({
.card-item { .card-item {
background: #fff; background: #fff;
border-radius: 5px; border-radius: 5px;
padding: 15px 8px; padding: 16px;
overflow: hidden; overflow: hidden;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
box-shadow: 2px 2px 10px #eee; box-shadow: 2px 2px 10px #04223d10;
// &:hover { // &:hover {
// // transform: translateY(-5px); // // transform: translateY(-5px);
...@@ -89,6 +89,10 @@ export default defineComponent({ ...@@ -89,6 +89,10 @@ export default defineComponent({
box-sizing: border-box; box-sizing: border-box;
flex: 1; flex: 1;
.map-left { .map-left {
min-width: 586px;
max-width: 586px;
box-sizing: border-box;
margin-right: 16px;
.rank-list { .rank-list {
margin-top: 16px; margin-top: 16px;
height: 312px; height: 312px;
...@@ -99,14 +103,25 @@ export default defineComponent({ ...@@ -99,14 +103,25 @@ export default defineComponent({
height: 640px; height: 640px;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
padding-left: -8px !important; margin-right: 16px;
width: 100%;
height: 100%; // width: 100%;
min-width: 662px;
max-width: 662px;
.card-item { .card-item {
flex: 1; // flex: 1;
padding: 0;
}
.map-item {
min-width: 662px;
} }
} }
.map-right { .map-right {
min-width: 580px;
width: 580px;
box-sizing: border-box;
.incom-graphic { .incom-graphic {
margin-top: 16px; margin-top: 16px;
height: 312px; height: 312px;
......
...@@ -22,3 +22,10 @@ ...@@ -22,3 +22,10 @@
background: #f8f9fb; background: #f8f9fb;
border-radius: 5px; border-radius: 5px;
} }
.flex-row {
display: flex;
align-items: center;
}
.margin-left5{
margin-left: 5px;
}
\ No newline at end of file
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
<el-row <el-row
v-for="item in infoList" v-for="item in infoList"
:key="item.label" :key="item.label"
class="font-size14 color-666 item-bg margin-bottom8" class="row-item font-size14 color-666 item-bg margin-bottom8"
justify="space-between" justify="space-between"
align="middle" align="middle"
> >
<el-col :span="18"> {{ item.label }}</el-col> <el-col :span="18"> {{ item.label }}</el-col>
<el-col :span="6"> <el-col :span="6">
<el-row align="middle"> <el-row align="middle" justify="end">
<span class="font-size20 color-pramiry">{{ item.value }}</span> <span class="font-size20 color-pramiry">{{ item.value }}</span>
<span class="font-size12 color-999">{{ item.unit }}</span> <span class="font-size12 color-999">{{ item.unit }}</span>
</el-row> </el-row>
...@@ -49,7 +49,7 @@ export default defineComponent({ ...@@ -49,7 +49,7 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
@import url("./common.css"); @import url("./common.css");
.info { .info {
padding: 10px 5px; padding: 10px 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
...@@ -62,5 +62,11 @@ export default defineComponent({ ...@@ -62,5 +62,11 @@ export default defineComponent({
.el-row { .el-row {
height: 28%; height: 28%;
} }
.row-item {
padding: 0 16px;
}
.row-text {
text-align: right;
}
} }
</style> </style>
...@@ -85,7 +85,6 @@ export default defineComponent({ ...@@ -85,7 +85,6 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
@import url("./common.css"); @import url("./common.css");
.info { .info {
padding: 10px 5px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
...@@ -113,11 +112,22 @@ export default defineComponent({ ...@@ -113,11 +112,22 @@ export default defineComponent({
margin-bottom: 0; margin-bottom: 0;
} }
.title { .title {
margin-left: 15px;
margin-bottom: 5px; margin-bottom: 5px;
color: #333; color: #333;
font-weight: bold; font-weight: bold;
position: relative;
&::before{
content: " ";
display: inline-block;
position: absolute;
top: 6px;
left: -12px;
width: 8px;
height: 8px;
border-radius: 50%;
background: #87bded;
}
} }
} }
} }
......
...@@ -43,36 +43,43 @@ ...@@ -43,36 +43,43 @@
</div> </div>
<!-- foot --> <!-- foot -->
<el-row class="foot-wrapper" :gutter="10"> <el-row class="foot-wrapper " :gutter="16">
<el-col :span="16"> <el-col :span="15" class="foot-row-text">
<el-row class="item-bg margin-bottom8"> <el-row class="item-bg margin-bottom8">
<el-col class="font-size14 color-666">国防科技工业军品收入</el-col> <el-col class=" padding0-8 font-size14 color-666"
<el-col> >国防科技工业军品收入</el-col
>
<el-col class="padding0-8">
<span class="font-size20 color-pramiry">30</span> <span class="font-size20 color-pramiry">30</span>
<span class="font-size12 color-999">亿元</span> <span class="font-size12 color-999">亿元</span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="item-bg"> <el-row class="item-bg">
<el-col class="font-size14 color-666">民口单位军需品收入</el-col> <el-col class="padding0-8 font-size14 color-666"
<el-col> >民口单位军需品收入</el-col
>
<el-col class="padding0-8">
<span class="font-size20 color-pramiry">30</span> <span class="font-size20 color-pramiry">30</span>
<span class="font-size12 color-999">亿元</span> <span class="font-size12 color-999">亿元</span>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-col class="font-size14 color-666 item-bg" :span="8">
<el-col class="font-size14 color-666 item-bg" :span="9">
<el-row class="margin-bottom8"> <el-row class="margin-bottom8">
<el-col class="font-size14 color-666">应届大学生应征入伍</el-col> <el-col class="padding0-8 font-size14 color-666"
<el-col> >应届大学生应征入伍</el-col
>
<el-col class="padding0-8">
<span class="font-size20 color-pramiry">30</span> <span class="font-size20 color-pramiry">30</span>
<span class="font-size12 color-999"></span> <span class="font-size12 color-999"></span>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col class="font-size14 color-666">应征入伍率</el-col> <el-col class="padding0-8 font-size14 color-666">应征入伍率</el-col>
<el-col> <el-col class="padding0-8">
<span class="font-size20 color-pramiry">30</span> <span class="font-size20 color-pramiry">30</span>
<span class="font-size12 color-999">亿元</span> <span class="font-size12 color-999">亿元</span>
</el-col> </el-col>
...@@ -101,19 +108,28 @@ export default defineComponent({ ...@@ -101,19 +108,28 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
@import url("./common.css"); @import url("./common.css");
.info { .info {
padding: 10px 5px; padding: 10px 0;
.text-list { .text-list {
.el-row { .el-row {
margin-bottom: 6px; margin-bottom: 6px;
padding: 0 8px;
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;
} }
} }
} }
} }
.foot-row-text {
margin-left: 0 !important;
}
.foot-wrapper { .foot-wrapper {
margin-top: 10px; margin-top: 10px;
width: 100%;
.padding0-8 {
padding: 0 8px;
}
.margin-bottom8 { .margin-bottom8 {
margin-bottom: 8px; margin-bottom: 8px;
} }
......
...@@ -12,42 +12,48 @@ ...@@ -12,42 +12,48 @@
2021年 2021年
</el-row> </el-row>
<el-row class="item-bg margin-bottom12" align="middle" justify="space-between"> <el-row
<el-col class="font-size14 color-666" :span="18" class="item-bg margin-bottom12"
>各地召开融委全体会议次数</el-col align="middle"
justify="space-between"
> >
<el-col class="font-size20 color-pramiry" :span="5"> <el-col class="item-text font-size14 color-666" :span="16">
30 <span class="font-size12 color-999"></span> 各地召开融委全体会议次数
</el-col>
<el-col class="jf-end flex-row font-size20 color-pramiry" :span="5">
30 <span class="margin-left5 font-size12 color-999"></span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="item-bg margin-bottom12" align="middle" justify="space-between"> <el-row
<el-col class="font-size14 color-666" :span="18" class="item-bg margin-bottom12 flex-one"
>与当地军分区(警备区)建立并落实军地协作机制</el-col align="middle"
justify="space-between"
> >
<el-col class="font-size20 color-pramiry" :span="5"> <el-col class="item-text font-size14 color-666" :span="18">
30 <span class="font-size12 color-999"></span> 与当地军分区(警备区)建立并落实军地协作机制
</el-col>
<el-col class="jf-end flex-row font-size20 color-pramiry" :span="5">
30 <span class="margin-left5 font-size12 color-999"></span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="info-item font-size14 color-666 item-bg margin-bottom12"> <el-row class="info-item font-size14 color-666 item-bg margin-bottom12">
<el-row class="title"> <el-row class="item-text title"> 各地军民融合办工作人员 </el-row>
各地军民融合办工作人员
</el-row>
<el-col :span="24"> <el-col :span="24">
<el-row justify="space-between"> <el-row justify="space-between">
<div class="item-row"> <div class="item-row">
<span class="font-size14 color-666">专职</span> <span class="font-size14 color-666">专职</span>
<el-col class="font-size20 color-pramiry"> <el-col class="jf-end flex-row font-size20 color-pramiry">
30 <span class="font-size12 color-999"></span> 30 <span class="margin-left5 font-size12 color-999"></span>
</el-col> </el-col>
</div> </div>
<div class="item-row"> <div class="item-row">
<span class="font-size14 color-666">兼职</span> <span class="font-size14 color-666">兼职</span>
<el-col class="font-size20 color-pramiry"> <el-col class="flex-row font-size20 color-pramiry">
30 <span class="font-size12 color-999"></span> 30 <span class="margin-left5 font-size12 color-999"></span>
</el-col> </el-col>
</div> </div>
</el-row> </el-row>
...@@ -77,7 +83,6 @@ export default defineComponent({ ...@@ -77,7 +83,6 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
@import url("./common.css"); @import url("./common.css");
.info { .info {
padding: 0 5px 10px 5px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
...@@ -94,25 +99,50 @@ export default defineComponent({ ...@@ -94,25 +99,50 @@ export default defineComponent({
.info-item { .info-item {
margin-bottom: 10px; margin-bottom: 10px;
padding: 15px 10px; padding: 15px;
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;
} }
.title { .title {
margin-bottom: 5px; margin-bottom: 5px;
color: #333; color: #333;
font-weight: bold;
} }
.item-row { .item-row {
padding: 0 20px; padding: 0 20px;
flex-direction: column; flex-direction: column;
display: flex; display: flex;
text-align: center; div {
margin-top: -6px;
}
} }
} }
.color-pramiry { .color-pramiry {
text-align: center; text-align: center;
} }
.item-text {
margin-left: 15px;
color: #333;
position: relative;
&::before {
content: " ";
display: inline-block;
position: absolute;
top: 5px;
left: -10px;
width: 6px;
height: 6px;
border-radius: 50%;
background: #87bded;
}
}
.flex-one{
flex-wrap: nowrap;
padding-right: 15px;
}
.jf-end{
justify-content: flex-end;
}
} }
</style> </style>
...@@ -10,8 +10,8 @@ import { defineComponent } from "vue"; ...@@ -10,8 +10,8 @@ import { defineComponent } from "vue";
import MapTitle from "@/components/mapTitle/index.vue"; import MapTitle from "@/components/mapTitle/index.vue";
import * as echarts from "echarts"; import * as echarts from "echarts";
enum Echart_color_Enum { enum Echart_color_Enum {
level_1 = "#fac858", level_1 = "#4198ff",
level_2 = "#4198ff", level_2 = "#4f5d81",
} }
const seriesData = [ const seriesData = [
...@@ -20,13 +20,13 @@ const seriesData = [ ...@@ -20,13 +20,13 @@ const seriesData = [
type: "level_1", type: "level_1",
echartType: "bar", echartType: "bar",
growthRate: [80, 85, 95, 65, 85, 70, 85], growthRate: [80, 85, 95, 65, 85, 70, 85],
barValue: [1820, 1032, 2045, 1852], barValue: [1820, 1332, 2045, 1852],
}, },
{ {
name: "民口单位军品收入", name: "民口单位军品收入",
type: "level_2", type: "level_2",
echartType: "bar", echartType: "bar",
barValue: [1232, 1264, 156, 2661, 15616], barValue: [1232, 1264, 2661, 15616],
growthRate: [50, 60, 70, 80, 80, 60, 85], growthRate: [50, 60, 70, 80, 80, 60, 85],
}, },
]; ];
...@@ -55,7 +55,7 @@ export default defineComponent({ ...@@ -55,7 +55,7 @@ export default defineComponent({
itemStyle: { itemStyle: {
color: Echart_color_Enum[item.type], color: Echart_color_Enum[item.type],
}, },
barWidth: 20,
data: item.barValue.map((barItem, barIndex) => { data: item.barValue.map((barItem, barIndex) => {
return { return {
value: barItem, value: barItem,
...@@ -91,8 +91,7 @@ export default defineComponent({ ...@@ -91,8 +91,7 @@ export default defineComponent({
}, },
className: "tooltip-income", className: "tooltip-income",
formatter: (params) => { formatter: (params) => {
let html = ""; let html = `<span class="year">${params[0].axisValue}年</span>`;
console.log("---", params);
params.forEach((item) => { params.forEach((item) => {
const { data = {} } = item; const { data = {} } = item;
...@@ -108,10 +107,12 @@ export default defineComponent({ ...@@ -108,10 +107,12 @@ export default defineComponent({
return html; return html;
}, },
}, },
legend: {}, legend: {
right: "2%",
},
grid: { grid: {
left: "0%", left: "2%",
right: "5%", right: "2%",
bottom: "3%", bottom: "3%",
containLabel: true, containLabel: true,
}, },
...@@ -155,16 +156,24 @@ export default defineComponent({ ...@@ -155,16 +156,24 @@ export default defineComponent({
}); });
</script> </script>
<style> <style>
.tooltip-income .year {
margin-bottom: 15px;
font-size: 14px;
color: #333;
font-weight: bold;
}
.tooltip-income .title { .tooltip-income .title {
font-weight: 600; font-weight: 600;
color: #333; font-size: 12px;
color: #666;
} }
.tooltip-income .row-item { .tooltip-income .row-item {
padding: 0 15px 10px 15px; padding: 0 15px 10px 15px;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 14px; font-size: 12px;
color: #999;
justify-content: space-between; justify-content: space-between;
} }
.tooltip-income .row-item div { .tooltip-income .row-item div {
......
...@@ -11,7 +11,7 @@ import MapTitle from "@/components/mapTitle/index.vue"; ...@@ -11,7 +11,7 @@ import MapTitle from "@/components/mapTitle/index.vue";
import * as echarts from "echarts"; import * as echarts from "echarts";
enum Bar_Enum { enum Bar_Enum {
level_1 = "#fac858", level_1 = "#fac858",
level_2 = "#4198ff", level_2 = "#1ba6eb",
} }
const seriesData = [ const seriesData = [
...@@ -19,15 +19,15 @@ const seriesData = [ ...@@ -19,15 +19,15 @@ const seriesData = [
name: "国防要求建设项目", name: "国防要求建设项目",
type: "level_1", type: "level_1",
echartType: "bar", echartType: "bar",
growthRate: [80, 85, 95, 65, 85, 70, 85], growthRate: [80, 85, 95, 65, 85, 70, 85, 70, 80, 90, 40],
barValue: [820, 832, 901, 934, 1290, 1330, 1320], barValue: [820, 832, 901, 934, 1290, 1330, 1320, 1180, 1292, 1000, 1205],
}, },
{ {
name: "省军民融合重大示范项目", name: "省军民融合重大示范项目",
type: "level_2", type: "level_2",
echartType: "bar", echartType: "bar",
barValue: [820, 832, 901, 934, 1290, 1330, 1320], barValue: [820, 832, 901, 934, 1290, 1330, 1320, 1251, 1120, 1050, 888],
growthRate: [50, 60, 70, 80, 80, 60, 85], growthRate: [50, 60, 70, 80, 80, 60, 85, 62, 75, 85, 72],
}, },
]; ];
...@@ -67,6 +67,7 @@ export default defineComponent({ ...@@ -67,6 +67,7 @@ export default defineComponent({
itemStyle: { itemStyle: {
color: Bar_Enum[item.type], color: Bar_Enum[item.type],
}, },
barWidth: 12,
data: item.barValue.map((barItem, barIndex) => { data: item.barValue.map((barItem, barIndex) => {
return { return {
...@@ -103,10 +104,9 @@ export default defineComponent({ ...@@ -103,10 +104,9 @@ export default defineComponent({
}, },
className: "tooltip-progress", className: "tooltip-progress",
formatter: (params) => { formatter: (params) => {
let html = ""; let html = `<span class="name">${params[0].axisValue}</span>`;
params.forEach((item) => { params.forEach((item) => {
const { data = {} } = item; const { data = {} } = item;
console.log(data);
html += `<div class="tooltip-progress"> html += `<div class="tooltip-progress">
<span class="title">${item.seriesName}</span> <span class="title">${item.seriesName}</span>
...@@ -120,16 +120,19 @@ export default defineComponent({ ...@@ -120,16 +120,19 @@ export default defineComponent({
return html; return html;
}, },
}, },
legend: {},
grid: { grid: {
left: "0%", left: "2%",
right: "5%", right: "2%",
bottom: "3%", bottom: "3%",
containLabel: true, containLabel: true,
},
legend: {
right: "2%"
}, },
yAxis: [ yAxis: [
{ {
type: "value", type: "value",
name: "金额(亿元)",
}, },
{ {
type: "value", type: "value",
...@@ -164,17 +167,29 @@ export default defineComponent({ ...@@ -164,17 +167,29 @@ export default defineComponent({
}); });
</script> </script>
<style> <style>
.tooltip-progress .name {
margin-bottom: 15px;
font-size: 14px;
color: #333;
font-weight: bold;
}
.tooltip-progress .title { .tooltip-progress .title {
font-weight: 600; font-weight: 600;
color: #333; font-size: 12px;
color: #666;
} }
.tooltip-progress .row-item { .tooltip-progress .row-item {
padding: 0 15px 10px 15px; padding: 0 15px 10px 15px;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 14px; font-size: 12px;
color: #999;
justify-content: space-between; justify-content: space-between;
} }
.tooltip-progress .row-item div {
margin-right: 15px;
}
.tooltip-progress .row-item p { .tooltip-progress .row-item p {
font-size: 12px; font-size: 12px;
color: #999; color: #999;
...@@ -193,7 +208,7 @@ export default defineComponent({ ...@@ -193,7 +208,7 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
.investment-progress { .investment-progress {
flex: 1; flex: 1;
height: 250px; height: 245px;
box-sizing: border-box; box-sizing: border-box;
margin-top: 10px; margin-top: 10px;
} }
......
...@@ -6,8 +6,9 @@ import { defineComponent } from "vue"; ...@@ -6,8 +6,9 @@ import { defineComponent } from "vue";
import * as echarts from "echarts"; import * as echarts from "echarts";
// import { getMapGeoData, getMapPointList } from "../service"; // import { getMapGeoData, getMapPointList } from "../service";
// import mapGeoData from "../../../../../../mocks/evaluatIndicator/mapGeoData.json" // import mapGeoData from "../../../../../../mocks/evaluatIndicator/mapGeoData.json"
import MapGeoData from "./mapGeoData" import MapGeoData from "./mapGeoData";
import MapPointList from "./mapPointList" import MapPointList from "./mapPointList";
export default defineComponent({ export default defineComponent({
...@@ -18,18 +19,16 @@ export default defineComponent({ ...@@ -18,18 +19,16 @@ export default defineComponent({
data() { data() {
return { return {
pointList: [], pointList: [],
mapEcharts: null mapEcharts: null,
}; };
}, },
computed: { computed: {
options() { options() {
return { return {
tooltip: { tooltip: {
borderColor: '#333', borderColor: "#333",
formatter: function (params) { formatter: function (params) {
return ( return params.name;
params.name
);
}, },
}, },
geo: { geo: {
...@@ -52,16 +51,19 @@ export default defineComponent({ ...@@ -52,16 +51,19 @@ export default defineComponent({
}, },
}, },
}, },
grid: {
top: "0",
left: "0%",
right: "0%",
bottom: "3%",
containLabel: true,
},
series: [ series: [
{ {
type: "scatter", type: "scatter",
coordinateSystem: "geo", coordinateSystem: "geo",
zlevel: 2, zlevel: 2,
rippleEffect: {
period: 4,
brushType: "stroke",
scale: 2,
},
label: { label: {
normal: { normal: {
show: true, show: true,
...@@ -76,10 +78,11 @@ export default defineComponent({ ...@@ -76,10 +78,11 @@ export default defineComponent({
}, },
}, },
itemStyle: { itemStyle: {
color: '#f3696a', color: "#f3696a",
}, },
symbol: "pin", symbolKeepAspect: true,
symbolSize: 40, symbol: 'path://M6.09,0a5,5,0,0,0-5,5c0,2.77,5,9.28,5,9.28s5-6.51,5-9.28A5,5,0,0,0,6.09,0Zm0,7.41A2.29,2.29,0,1,1,8.38,5.12,2.31,2.31,0,0,1,6.09,7.41Z',
symbolSize: 16,
data: this.pointList, data: this.pointList,
}, },
], ],
...@@ -94,7 +97,6 @@ export default defineComponent({ ...@@ -94,7 +97,6 @@ export default defineComponent({
const { data: getMapData } = MapGeoData; const { data: getMapData } = MapGeoData;
const { data: pointList } = MapPointList; const { data: pointList } = MapPointList;
echarts.registerMap("ZJ", getMapData); echarts.registerMap("ZJ", getMapData);
const mapEcharts = echarts.init(document.getElementById("map")); const mapEcharts = echarts.init(document.getElementById("map"));
...@@ -120,10 +122,17 @@ export default defineComponent({ ...@@ -120,10 +122,17 @@ export default defineComponent({
}, },
}); });
</script> </script>
<style >
.map-item canvas:first-of-type{
transform: scaleY(1.1) scaleX(1.3);
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
.map-item { .map-item {
flex: 1; flex: 1;
box-sizing: border-box; box-sizing: border-box;
height: 100%; height: 100%;
} }
</style> </style>
This source diff could not be displayed because it is too large. You can view the blob instead.
<template> <template>
<MapTitle <MapTitle
text="全省军民融合创新示范绩效评价情况(2020年度)" text="全省军民融合创新示范绩效评价情况(2020上半年度)"
:detailsHandle="detailsHandle" :detailsHandle="detailsHandle"
/> />
<div id="performanceBar" class="performance-bar"></div> <div id="performanceBar" class="performance-bar"></div>
...@@ -13,42 +13,42 @@ import { defineComponent } from "vue"; ...@@ -13,42 +13,42 @@ import { defineComponent } from "vue";
import MapTitle from "@/components/mapTitle/index.vue"; import MapTitle from "@/components/mapTitle/index.vue";
import * as echarts from "echarts"; import * as echarts from "echarts";
enum Bar_Enum { enum Bar_Enum {
level_1 = "#4f5d81", level_1 = "#4f2d11",
level_2 = "#429a9d", level_2 = "#429a9d",
level_3 = "#007fb2", level_3 = "#007fb2",
level_4 = "#eca933", level_4 = "#eca933",
level_5 = "#4198ff", level_5 = "#4191ff",
} }
const seriesData = [ const seriesData = [
{ {
name: "服务强军兴军", name: "服务强军兴军",
type: "level_1", type: "level_1",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [12, 12, 11, 14, 12, 12, 12, 12, 22, 10, 20],
}, },
{ {
name: "产业融合发展", name: "产业融合发展",
type: "level_2", type: "level_2",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [12, 12, 22, 21, 12, 22, 11, 22, 22, 12, 20],
}, },
{ {
name: "军民协同创新", name: "军民协同创新",
type: "level_3", type: "level_3",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [12, 12, 21, 15, 12, 2, 12, 21, 22, 12, 20],
}, },
{ {
name: "资源开放共享", name: "资源开放共享",
type: "level_4", type: "level_4",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [8, 12, 5, 14, 22, 22, 12, 22, 22, 15, 20],
}, },
{ {
name: "五大体系建设", name: "五大体系建设",
type: "level_5", type: "level_2",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [22, 12, 21, 12, 12, 12, 12, 22, 21, 19, 20],
}, },
]; ];
...@@ -81,22 +81,29 @@ export default defineComponent({ ...@@ -81,22 +81,29 @@ export default defineComponent({
}, },
computed: { computed: {
optionBar() { optionBar() {
const seriesList = seriesData.map((item) => { const seriesList = seriesData.map((item, index) => {
return { return {
name: item.name, name: item.name,
type: "bar", type: "bar",
stack: "total", stack: "total",
label: { label: {
show: true, show: true,
color: "#fff",
}, },
barWidth: 26,
itemStyle: { itemStyle: {
color: Bar_Enum[item.type], color: Bar_Enum[item.type],
}, },
emphasis: { emphasis: {
focus: "series", show: false,
}, },
data: item.value, data: item.value.map((valItem) => {
return {
value: valItem,
class: `color_${index + 1}`,
};
}),
}; };
}); });
...@@ -106,19 +113,32 @@ export default defineComponent({ ...@@ -106,19 +113,32 @@ export default defineComponent({
axisPointer: { axisPointer: {
type: "shadow", type: "shadow",
}, },
textStyle: { className: "per-formance-echart",
color: "#4198ff", formatter: (params) => {
let html = `<span class="name">${params[0].axisValue}</span>`;
params.forEach((item) => {
const { data = {} } = item;
html += `<div class="per-formance-echart">
<span class="${data.class} title">${item.seriesName}</span>
<span class="text">${data.value}</span>
</div>`;
});
return html;
}, },
}, },
legend: {}, legend: {},
grid: { grid: {
left: "0%", left: "0%",
right: "5%", right: "0%",
bottom: "3%", bottom: "3%",
containLabel: true, containLabel: true,
}, },
yAxis: { yAxis: {
type: "value", type: "value",
min: 0,
max: 100,
}, },
xAxis: { xAxis: {
type: "category", type: "category",
...@@ -148,10 +168,82 @@ export default defineComponent({ ...@@ -148,10 +168,82 @@ export default defineComponent({
}, },
}); });
</script> </script>
<style>
.per-formance-echart {
width: 120px;
display: flex;
justify-content: space-between;
}
.per-formance-echart .name {
margin-bottom: 15px;
font-size: 14px;
color: #333;
font-weight: bold;
}
.per-formance-echart .title {
padding-left: 10px;
font-weight: 600;
font-size: 12px;
color: #666;
position: relative;
}
.per-formance-echart .title::before {
position: absolute;
top: 5px;
left: 0;
content: " ";
width: 6px;
height: 6px;
display: inline-block;
border-radius: 50%;
background: red;
}
.per-formance-echart .row-item {
padding: 0 15px 10px 15px;
display: flex;
align-items: center;
font-size: 12px;
color: #999;
justify-content: space-between;
}
.per-formance-echart .row-item div {
margin-right: 15px;
}
.per-formance-echart .row-item p {
font-size: 12px;
color: #999;
}
.per-formance-echart .row-item p span {
font-size: 18px;
margin-right: 5px;
}
.per-formance-echart .text{
color: #4191ff
}
.per-formance-echart .color_1::before {
background: #4f2d11;
}
.per-formance-echart .color_2::before {
background: #429a9d;
}
.per-formance-echart .color_3::before {
background: #007fb2;
}
.per-formance-echart .color_4::before {
background: #eca933;
}
.per-formance-echart .color_5::before {
background: #4191ff;
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
.performance-bar { .performance-bar {
flex: 1; flex: 1;
height: 250px; height: 245px;
box-sizing: border-box; box-sizing: border-box;
margin-top: 10px; margin-top: 10px;
} }
......
<template> <template>
<MapTitle text="创新示区、县排名" /> <MapTitle text="创新示区、县排名" />
<el-scrollbar height="260px"> <el-scrollbar height="260px">
<el-table <el-table
:data="tableData" :data="tableData"
size="small" size="small"
style="width: 100%" style="width: 100%"
:header-row-style="() => { empty-text="--"
return { header-row-class-name="tabs-header"
background: 'red' >
} <el-table-column label="序号" width="120" align="center" >
}" <template #default="scope">
<div >
<div v-if="scope.$index > 2"> {{ scope.$index + 1 }}</div>
<div
v-else
class="tab-index"
:style="{ background: `${colors[scope.$index + 1]}` }"
> >
<el-table-column type="index" label="序号" /> {{ scope.$index + 1 }}
<el-table-column prop="name" label="地区" /> </div>
<el-table-column prop="score" label="分数" /> </div>
</template>
</el-table-column>
<el-table-column prop="name" label="地区" align="center" />
<el-table-column prop="score" label="分数" width="120" align="center">
<template #default="scope">
<div>
{{ scope.row.score }}
<el-icon :color="scope.row.type === 1 ? '#67C23A' : '#F56C6C'">
<Bottom v-if="scope.row.type === 1" />
<Top v-else />
</el-icon>
</div>
</template>
</el-table-column>
</el-table> </el-table>
</el-scrollbar> </el-scrollbar>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from "vue"; import { defineComponent } from "vue";
import MapTitle from "@/components/mapTitle/index.vue"; import MapTitle from "@/components/mapTitle/index.vue";
import { Bottom, Top } from "@element-plus/icons";
const TabData = [ const TabData = [
{ {
name: "上城区", name: "上城区",
score: 50, score: 50,
type: 1,
}, },
{ {
name: "萧山区", name: "萧山区",
score: 50, score: 50,
type: 2,
}, },
{ {
name: "海曙区", name: "海曙区",
score: 50, score: 50,
type: 2,
}, },
{ {
name: "西湖区", name: "西湖区",
score: 50, score: 50,
type: 2,
}, },
{ {
name: "象山县", name: "象山县",
score: 50, score: 50,
type: 1,
}, },
]; ];
const Colors = {
1: "#e45c5c",
2: "#ea8234",
3: "#fac858",
};
export default defineComponent({ export default defineComponent({
components: { components: {
MapTitle, MapTitle,
Bottom,
Top,
}, },
setup() {}, setup() {},
data() { data() {
return { return {
tableData: TabData, tableData: TabData,
colors: Colors,
}; };
}, },
methods: { methods: {
...@@ -60,8 +95,35 @@ export default defineComponent({ ...@@ -60,8 +95,35 @@ export default defineComponent({
}, },
}); });
</script> </script>
<style>
.tabs-header {
}
.tabs-header .el-table__cell{
background-color: #e3f0ff !important;
color: #333;
font-weight: bold;
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-scrollbar { .el-scrollbar {
margin-top: 10px; margin-top: 10px;
} }
.tab-other-index{
text-align: center;
}
.tab-index {
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
border: 1px solid;
color: #fff;
font-size: 16px;
font-family: tabTypeFace;
margin: 0 auto;
}
</style> </style>
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<el-col class="map-left" :span="8"> <el-col class="map-left" :span="8">
<div class="footer-item card-item"><TargetBar /></div> <div class="footer-item card-item"><TargetBar /></div>
</el-col> </el-col>
<el-col class="map-right card-item" :span="16"> <el-col :span="16">
<el-row :gutter="10"> <el-row class="map-right card-item" >
<el-col :span="12"> <el-col :span="12">
<IncomExtendLine <IncomExtendLine
echartsId="incomExtend" echartsId="incomExtend"
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
:cardItems="extendCardItems" :cardItems="extendCardItems"
/> />
</el-col> </el-col>
<el-col :span="12"><IncomDistribution /></el-col> <el-col :span="10" :offset="1"><IncomDistribution /></el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
...@@ -77,7 +77,7 @@ export default defineComponent({ ...@@ -77,7 +77,7 @@ export default defineComponent({
.card-item { .card-item {
background: #fff; background: #fff;
border-radius: 5px; border-radius: 5px;
padding: 15px 8px; padding: 16px;
overflow: hidden; overflow: hidden;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
......
...@@ -73,7 +73,7 @@ export default defineComponent({ ...@@ -73,7 +73,7 @@ export default defineComponent({
return { return {
pieList: PIE_LIST, pieList: PIE_LIST,
pieColor: PieColor, pieColor: PieColor,
mapEcharts: null mapEcharts: null,
}; };
}, },
mounted() { mounted() {
...@@ -105,10 +105,6 @@ export default defineComponent({ ...@@ -105,10 +105,6 @@ export default defineComponent({
tooltip: { tooltip: {
trigger: "item", trigger: "item",
}, },
legend: {
top: "5%",
left: "center",
},
series: [ series: [
{ {
name: "Access From", name: "Access From",
...@@ -140,7 +136,7 @@ export default defineComponent({ ...@@ -140,7 +136,7 @@ export default defineComponent({
const dom = document.getElementById("businessIncome"); const dom = document.getElementById("businessIncome");
const mapEcharts = echarts.init(dom); const mapEcharts = echarts.init(dom);
mapEcharts.setOption(this.optionBar); mapEcharts.setOption(this.optionBar);
this.mapEcharts = mapEcharts this.mapEcharts = mapEcharts;
}, },
}, },
unmounted() { unmounted() {
...@@ -153,6 +149,9 @@ export default defineComponent({ ...@@ -153,6 +149,9 @@ export default defineComponent({
}); });
</script> </script>
<style> <style>
.business-income canvas:first-of-type {
transform: scale(1.2);
}
.business-pie-tooltip .title { .business-pie-tooltip .title {
color: #333; color: #333;
font-weight: bold; font-weight: bold;
......
...@@ -10,12 +10,14 @@ import * as echarts from "echarts"; ...@@ -10,12 +10,14 @@ import * as echarts from "echarts";
const seriesData = [ const seriesData = [
{ {
name: "国防要求建设项目", name: "主营业务收入",
type: "level_1", type: "level_1",
value: [820, 832, 901, 934, 1290, 1330, 1320], value: [820, 832, 901, 934, 1290, 1330, 1320, 846, 945, 462, 622],
rateData: [30, 40, 60, 80, 70, 75,85,52,33,12,12]
}, },
]; ];
const xAxisValue = [ const xAxisValue = [
"杭州", "杭州",
"宁波", "宁波",
...@@ -48,28 +50,40 @@ export default defineComponent({ ...@@ -48,28 +50,40 @@ export default defineComponent({
}, },
computed: { computed: {
optionBar() { optionBar() {
const seriesBarList = seriesData.map((item) => { const seriesBarList = seriesData.map((item,index) => {
return { return {
type: "bar", type: "bar",
itemStyle: { itemStyle: {
color: "#4198ff", color: "#4198ff",
}, },
data: item.value, barWidth: 20,
data: item.value.map((valItem) => {
return {
value: valItem,
label: "主营业务收入"
};
}),
}; };
}); });
const seriesLineList = seriesData.map((item) => { const seriesLineList = seriesData.map((item) => {
return { return {
type: "line", type: "line",
stack: "Total",
itemStyle: { itemStyle: {
color: "#fac858", color: "#fac858",
}, },
yAxisIndex: 1,
emphasis: { emphasis: {
focus: "series", focus: "series",
}, },
data: item.value, data: item.rateData.map(val => {
return {
value: val,
label: "增长率"
}
}),
}; };
}); });
...@@ -79,8 +93,25 @@ export default defineComponent({ ...@@ -79,8 +93,25 @@ export default defineComponent({
axisPointer: { axisPointer: {
type: "shadow", type: "shadow",
}, },
textStyle: { className: "income-echart",
color: "#4198ff", formatter: (params) => {
console.log("----",params)
let html = `<span class="name">${params[0].axisValue}</span>`;
html += `<div class="income-echart ">
<span class="${params[0].class} title color_1">${params[0].data.label}</span>
<br />
<span class="text text-color_1">${params[0].data.value}</span>亿元
</div>
<div class="income-echart">
<span class="${params[1].data.class} title color_2">${params[1].data.label}</span>
<br />
<span class="text text-color_2">${params[1].data.value}%</span>
</div>`
return html;
}, },
}, },
legend: {}, legend: {},
...@@ -90,10 +121,18 @@ export default defineComponent({ ...@@ -90,10 +121,18 @@ export default defineComponent({
bottom: "3%", bottom: "3%",
containLabel: true, containLabel: true,
}, },
yAxis: { yAxis:[
{
type: "value",
name: "金额(亿元)",
},
{
type: "value", type: "value",
show: false, name: "增长率%",
min: 0,
max: 100,
}, },
],
xAxis: { xAxis: {
type: "category", type: "category",
data: xAxisValue, data: xAxisValue,
...@@ -119,6 +158,59 @@ export default defineComponent({ ...@@ -119,6 +158,59 @@ export default defineComponent({
}, },
}); });
</script> </script>
<style>
.income-echart {
width: 180px;
}
.income-echart .name {
margin-bottom: 15px;
font-size: 14px;
color: #333;
font-weight: bold;
}
.income-echart .title {
padding-left: 10px;
font-weight: 600;
font-size: 12px;
color: #666;
position: relative;
}
.income-echart .title::before {
position: absolute;
top: 8px;
left: 0;
content: " ";
width: 6px;
height: 6px;
display: inline-block;
border-radius: 50%;
}
.income-echart .text{
padding-left: 20px;
margin-bottom: 20px;
font-size: 20px;
}
.income-echart .text:last-of-type {
margin: 0;
}
.income-echart .text-color_1{
color: #4198ff
}
.income-echart .text-color_2{
color: #eca933
}
.income-echart .color_1::before {
background: #4198ff;
}
.income-echart .color_2::before {
background: #eca933;
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
.title { .title {
color: #4198ff; color: #4198ff;
...@@ -127,7 +219,7 @@ export default defineComponent({ ...@@ -127,7 +219,7 @@ export default defineComponent({
} }
.incom-distribution { .incom-distribution {
flex: 1; flex: 1;
height: 300px; height: 315px;
box-sizing: border-box; box-sizing: border-box;
margin-top: 10px; margin-top: 10px;
} }
......
...@@ -161,7 +161,6 @@ export default defineComponent({ ...@@ -161,7 +161,6 @@ export default defineComponent({
box-sizing: border-box; box-sizing: border-box;
} }
.describes { .describes {
padding-left: 10px;
margin: 0 10px; margin: 0 10px;
height: 150px; height: 150px;
box-sizing: border-box; box-sizing: border-box;
...@@ -172,6 +171,8 @@ export default defineComponent({ ...@@ -172,6 +171,8 @@ export default defineComponent({
justify-content: space-between; justify-content: space-between;
font-size: 14px; font-size: 14px;
.item { .item {
flex: 1;
padding: 10px 15px; padding: 10px 15px;
margin-right: 15px; margin-right: 15px;
background: #f8f9fb; background: #f8f9fb;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
> >
</div> </div>
<el-select v-model="value" size="small" placeholder="Select"> <el-select v-model="value" size="small" placeholder="请选择">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
...@@ -59,7 +59,7 @@ export default defineComponent({ ...@@ -59,7 +59,7 @@ export default defineComponent({
setup() {}, setup() {},
data() { data() {
return { return {
value: "", value: 1,
options: [ options: [
{ label: "得分情况", value: 1 }, { label: "得分情况", value: 1 },
{ label: "军转民收入及增长率", value: 2 }, { label: "军转民收入及增长率", value: 2 },
...@@ -68,7 +68,7 @@ export default defineComponent({ ...@@ -68,7 +68,7 @@ export default defineComponent({
], ],
years: [2019, 2020, 2021], years: [2019, 2020, 2021],
curYearIndex: 0, curYearIndex: 0,
mapEcharts: null mapEcharts: null,
}; };
}, },
mounted() { mounted() {
...@@ -109,12 +109,13 @@ export default defineComponent({ ...@@ -109,12 +109,13 @@ export default defineComponent({
itemStyle: { itemStyle: {
color: "#4198ff", color: "#4198ff",
}, },
barWidth: 20,
label: { label: {
show: true, show: true,
position: "top", position: "top",
// formatter: "{c}亿元" // formatter: "{c}亿元"
}, },
data: [820, 832, 901, 934, 1290, 1330, 1320], data: [820, 832, 901, 934, 1290, 1330, 1320, 1518,825,561,899],
}, },
], ],
}; };
...@@ -125,7 +126,7 @@ export default defineComponent({ ...@@ -125,7 +126,7 @@ export default defineComponent({
const dom = document.getElementById("TargetBar"); const dom = document.getElementById("TargetBar");
const mapEcharts = echarts.init(dom); const mapEcharts = echarts.init(dom);
mapEcharts.setOption(this.optionBar); mapEcharts.setOption(this.optionBar);
this.mapEcharts = mapEcharts this.mapEcharts = mapEcharts;
}, },
yearHandle(index: number) { yearHandle(index: number) {
this.curYearIndex = index; this.curYearIndex = index;
...@@ -141,14 +142,13 @@ export default defineComponent({ ...@@ -141,14 +142,13 @@ export default defineComponent({
}); });
</script> </script>
<style> <style>
.target-bar-tooltip .title{ .target-bar-tooltip .title {
color: #333; color: #333;
font-weight: bold; font-weight: bold;
} }
.target-bar-tooltip .bar-text { .target-bar-tooltip .bar-text {
padding-left: 10px; padding-left: 10px;
color: #4198ff; color: #4198ff;
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论