| | |
| | | <template> |
| | | <div class="current"> |
| | | <div class="rightContainer" v-show="ChartDisplay"> |
| | | <div class="rightContainer" v-if="currentDisplay == '大屏' && ChartDisplay"> |
| | | <div class="current1"> |
| | | <div class="aside-title">目录分布</div> |
| | | <echart11></echart11> |
| | | <div class="aside-title">项目统计</div> |
| | | <project-category></project-category> |
| | | </div> |
| | | <div class="current1"> |
| | | <div class="aside-title">数据及服务提交</div> |
| | | <echart12></echart12> |
| | | <div class="aside-title">数据统计</div> |
| | | <visit-count></visit-count> |
| | | </div> |
| | | <div class="current1"> |
| | | <div class="aside-title">各类数据存储分布</div> |
| | | <!-- <echart13></echart13> --> |
| | | <chart></chart> |
| | | <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> |
| | |
| | | import echart11 from "@/components/echart11.vue" |
| | | import echart12 from "@/components/echart12.vue" |
| | | import echart13 from "@/components/echart13.vue" |
| | | import chart from "@/components/chart/index.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, |
| | | } from "@/api/screen.js" |
| | | |
| | | export default { |
| | | components: { |
| | | echart11, |
| | | echart12, |
| | | echart13, |
| | | chart |
| | | 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() |
| | | }, |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | ChangeRight() { |
| | | if (this.ChartDisplay) { |
| | | this.RightImg = require("../../assets/img/Screen/rightArrow.png") |
| | | } else { |
| | | this.RightImg = require("../../assets/img/Screen/leftArrow.png") |
| | | 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 |
| | | } |
| | | 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, |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | <style lang="less"> |
| | | .current { |
| | | height: 100%; |
| | | width: 100%; |
| | |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .rightarrow { |
| | | width: 36px; |
| | | height: 100%; |
| | |
| | | } |
| | | .rightContainer { |
| | | height: 100%; |
| | | width: calc(100% - 36px); |
| | | |
| | | 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-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; |
| | | } |
| | | } |
| | | } |
| | | </style> |