<template>
|
<div class="current">
|
<div class="rightContainer" v-if="currentDisplay == '大屏' && ChartDisplay">
|
<div class="current1 current1-1">
|
<div class="aside-title">项目统计</div>
|
<project-category></project-category>
|
</div>
|
<div class="current1 current1-2">
|
<div class="aside-title">数据统计</div>
|
<visit-count></visit-count>
|
</div>
|
<div class="current1 current1-3">
|
<div class="aside-title">服务访问次数</div>
|
<Service-Get></Service-Get>
|
</div>
|
</div>
|
<!-- 全球、全国项目 -->
|
<div class="rightContainer" v-if="currentDisplay == '项目'">
|
<div class="current1">
|
<div class="aside-title"></div>
|
<!-- <country-dimension-bar ref="barRef"></country-dimension-bar> -->
|
<base-bar-chart
|
title="项目个数"
|
:project="currentProject"
|
></base-bar-chart>
|
</div>
|
<div class="current1">
|
<div class="aside-title">项目饼状图</div>
|
<!-- <base-pie-chart :project="currentProject"></base-pie-chart> -->
|
<country-dimension-pie
|
v-if="currentProject == '全球项目'"
|
ref="pieRef"
|
></country-dimension-pie>
|
<province-dimension-pie v-else ref="pieRef"></province-dimension-pie>
|
</div>
|
<div class="current1">
|
<div class="aside-title">数据使用情况</div>
|
<dv-capsule-chart
|
:config="barConfig"
|
style="width: 360px; height: 85%"
|
/>
|
</div>
|
</div>
|
<!-- 全国、全球管网 -->
|
<div class="rightContainer" v-if="currentDisplay == '管网'">
|
<div class="current1">
|
<div class="aside-title">站场座数</div>
|
<!-- <country-dimension-bar ref="barRef"></country-dimension-bar> -->
|
<base-bar-chart
|
title="站场座数"
|
:project="currentProject"
|
></base-bar-chart>
|
</div>
|
<div class="current1">
|
<div class="aside-title">阀室座数</div>
|
<dv-active-ring-chart
|
:config="pieconfig"
|
style="width: 377px; height: 85%"
|
/>
|
</div>
|
<div class="current1">
|
<div class="aside-title">管道条数</div>
|
<dv-conical-column-chart
|
:config="config"
|
style="width: 377px; height: 85%"
|
/>
|
</div>
|
</div>
|
<!-- 单个工程 -->
|
<div class="rightContainer" v-if="currentDisplay == '工程'">
|
<div class="current1">
|
<div class="aside-title">数据存储量</div>
|
<base-line-chart
|
title="数据存储量"
|
:project="currentProject"
|
:params="params"
|
></base-line-chart>
|
</div>
|
<div class="current1">
|
<div class="aside-title">数据下载次数</div>
|
<base-pie-chart
|
height="90%"
|
:project="currentProject"
|
:params="params"
|
></base-pie-chart>
|
</div>
|
<div class="current1">
|
<div class="aside-title">管道条数</div>
|
<div class="content" style="height: 30px">
|
<div class="header">
|
<div>格式</div>
|
<div>数量</div>
|
</div>
|
</div>
|
<file-format :params="params"></file-format>
|
</div>
|
</div>
|
|
<div class="rightarrow">
|
<img :src="RightImg" @click="ChangeRight" />
|
</div>
|
</div>
|
</template>
|
<script>
|
import echart11 from "@/components/echart11.vue";
|
import echart12 from "@/components/echart12.vue";
|
import echart13 from "@/components/echart13.vue";
|
import FileFormat from "@/components/chart/FileFormat.vue";
|
import ProjectCategory from "../chart/ProjectCategory.vue";
|
import CountryDimensionBar from "../chart/CountryDimensionBar.vue";
|
import CountryDimensionPie from "../chart/CountryDimensionPie.vue";
|
import ProvinceDimensionBar from "../chart/CountryProvinceBar.vue";
|
import ProvinceDimensionPie from "../chart/CountryProvincePie.vue";
|
import ServiceGet from "../chart/ServiceGet.vue";
|
import BaseBarChart from "../chart/BaseBarChart.vue";
|
import BaseLineChart from "../chart/BaseLineChart.vue";
|
import BasePieChart from "../chart/BasePieChart .vue";
|
import VisitCount from "../chart/VisitCount.vue";
|
|
import {
|
countCountryDimension,
|
countProvinceDimension,
|
countZhPipeStations,
|
countDownloads,
|
} from "@/api/screen.js";
|
|
export default {
|
components: {
|
echart11,
|
echart12,
|
echart13,
|
FileFormat,
|
ProjectCategory,
|
CountryDimensionBar,
|
CountryDimensionPie,
|
ProvinceDimensionBar,
|
ProvinceDimensionPie,
|
ServiceGet,
|
BaseBarChart,
|
BaseLineChart,
|
BasePieChart,
|
VisitCount,
|
},
|
data() {
|
return {
|
ChartDisplay: true,
|
CourtyDisplay: false,
|
PipeDisPlay: false,
|
RightImg: require("../../assets/img/Screen/leftArrow.png"),
|
leftMessage: "init",
|
currentProject: "全球项目",
|
currentDisplay: "大屏",
|
countryData: [],
|
provinceData: [],
|
config: {
|
data: [
|
{
|
name: "南阳",
|
value: 167,
|
},
|
{
|
name: "周口",
|
value: 123,
|
},
|
{
|
name: "漯河",
|
value: 98,
|
},
|
{
|
name: "郑州",
|
value: 75,
|
},
|
{
|
name: "西峡",
|
value: 66,
|
},
|
],
|
showValue: true,
|
},
|
pieconfig: {
|
data: [
|
{
|
name: "周口",
|
value: 55,
|
},
|
{
|
name: "南阳",
|
value: 120,
|
},
|
{
|
name: "西峡",
|
value: 78,
|
},
|
{
|
name: "驻马店",
|
value: 66,
|
},
|
{
|
name: "新乡",
|
value: 80,
|
},
|
],
|
lineWidth: 10,
|
},
|
barConfig: {
|
data: [
|
{
|
name: "南阳",
|
value: 167,
|
},
|
{
|
name: "周口",
|
value: 123,
|
},
|
{
|
name: "漯河",
|
value: 98,
|
},
|
{
|
name: "郑州",
|
value: 75,
|
},
|
{
|
name: "西峡",
|
value: 66,
|
},
|
],
|
showValue: true,
|
},
|
params: {},
|
};
|
},
|
created() {
|
this.getZhPipeStations();
|
this.getCountDownloads();
|
},
|
mounted() {
|
this.OpenLeftInit();
|
this.$bus.$on("changeProject", (name) => {
|
if (name.includes("全球管网") || name.includes("全国管网")) {
|
this.currentDisplay = "管网";
|
} else if (name.includes("全球项目") || name.includes("全国项目")) {
|
this.currentDisplay = "项目";
|
} else {
|
this.currentDisplay = "工程";
|
}
|
this.currentProject = name;
|
});
|
this.$bus.$on("changeProjectCode", (code) => {
|
this.params = {
|
projectCode: code,
|
};
|
});
|
this.$bus.$on("closeLeftAndRightMenu", (res) => {
|
this.ChartDisplay = res;
|
this.ChangeRight();
|
});
|
},
|
|
methods: {
|
ChangeRight() {
|
if (this.leftMessage == "init") {
|
if (this.ChartDisplay) {
|
this.RightImg = require("../../assets/img/Screen/rightArrow.png");
|
} else {
|
this.RightImg = require("../../assets/img/Screen/leftArrow.png");
|
}
|
this.ChartDisplay = !this.ChartDisplay;
|
}
|
|
// if (this.leftMessage == "projectree") {
|
// if (this.CourtyDisplay) {
|
// this.RightImg = require("../../assets/img/Screen/leftArrow.png")
|
// } else {
|
// this.RightImg = require("../../assets/img/Screen/rightArrow.png")
|
// }
|
// this.CourtyDisplay = !this.CourtyDisplay
|
// }
|
|
// this.ChartDisplay = !this.ChartDisplay
|
this.$parent.ChangeWidth("right");
|
},
|
//打开大屏左侧界面
|
OpenLeftInit() {
|
this.currentDisplay = "大屏";
|
this.ChartDisplay = true;
|
this.CourtyDisplay = false;
|
this.leftMessage = "init";
|
// this.OpenLeftInitChart();
|
// this.$parent.ChangeWidth("leftTree")
|
},
|
|
//打开工程树
|
// OpenLeftProjectTree() {
|
// this.ChartDisplay = false
|
// this.CourtyDisplay = true
|
// this.leftMessage = "projectree"
|
// this.$parent.ChangeWidth("leftTree")
|
// },
|
async getZhPipeStations() {
|
const res = await countZhPipeStations();
|
if (res.code == 200) {
|
const data = res.result;
|
this.pieconfig.data = res.result.map((item) => {
|
return {
|
name: item.输送介质,
|
value: item.管道数量,
|
};
|
});
|
|
this.pieconfig = {
|
...this.pieconfig,
|
};
|
this.config.data = res.result.map((item) => {
|
return {
|
name: item.输送介质,
|
value: item.管道数量,
|
};
|
});
|
this.config = {
|
...this.config,
|
};
|
}
|
},
|
async getCountDownloads() {
|
const res = await countDownloads();
|
if (res.code == 200) {
|
this.barConfig.data = res.result.map((item) => {
|
return {
|
name: item.typename,
|
value: item.count,
|
};
|
});
|
this.barConfig = {
|
...this.barConfig,
|
};
|
}
|
},
|
},
|
};
|
</script>
|
<style lang="less">
|
.current {
|
height: 100%;
|
width: 100%;
|
display: flex;
|
flex-direction: row;
|
align-items: center;
|
justify-content: center;
|
|
.rightarrow {
|
width: 36px;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
img {
|
width: 30px;
|
height: 120px;
|
cursor: pointer;
|
}
|
}
|
.rightContainer {
|
height: 100%;
|
width: calc(100% - 45px);
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
justify-content: space-around;
|
.current1 {
|
height: 32%;
|
width: 100%;
|
background: url(../../assets/img/Screen/chartbg.png);
|
background-size: 100% 100%;
|
background-repeat: no-repeat;
|
}
|
}
|
.rightContainer2 {
|
height: 100%;
|
width: calc(100% - 45px);
|
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
.current1 {
|
margin-top: 10px;
|
margin-bottom: 30px;
|
height: 30%;
|
width: 100%;
|
background: url(../../assets/img/Screen/chartbg.png);
|
background-size: 100% 100%;
|
background-repeat: no-repeat;
|
}
|
|
}
|
.content {
|
width: 100%;
|
background: url(../../assets/img/Screen/contentBg.png);
|
background-size: 100% 100%;
|
background-repeat: no-repeat;
|
.header {
|
margin: 0px auto;
|
padding: 10px 0;
|
width: 80%;
|
display: flex;
|
justify-content: space-between;
|
color: #fff;
|
font-size: 13px;
|
}
|
}
|
}
|
@media (max-width: 1400px) {
|
.current .rightContainer .current1-1 {
|
height: 42%;
|
}
|
.current .rightContainer .current1-2 {
|
height: 28%;
|
}
|
.current .rightContainer .current1-3 {
|
height: 28%;
|
}
|
}
|
</style>
|