123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616 |
- <template>
- <div id="elec-index" ref="appRef">
- <dv-loading v-if="loading">Loading...</dv-loading>
- <div v-else class="host-body bg">
- <div class="d-flex jc-center">
- <dv-decoration-10 style="width:33.3%;height:.0625rem;" />
- <div class="d-flex jc-center">
- <dv-decoration-8 :color="['#568aea', '#000000']" style="width:2.5rem;height:.625rem;" />
- <div class="title">
- <span class="title-text">电厂监控大屏</span>
- <dv-decoration-6
- class="title-bototm"
- :reverse="true"
- :color="['#50e3c2', '#67a1e5']"
- style="width:3.125rem;height:.1rem;"
- />
- </div>
- <dv-decoration-8
- :reverse="true"
- :color="['#568aea', '#000000']"
- style="width:2.5rem;height:.625rem;"
- />
- </div>
- <dv-decoration-10 style="width:33.3%;height:.0625rem; transform: rotateY(180deg);" />
- </div>
- <!-- 第二行 -->
- <div class="d-flex jc-between px-2">
- <div class="d-flex" style="width: 40%">
- <div
- class="react-right ml-4" v-bind:style="{backgroundColor:bgCol1,width:wh,textAlign:tAlign}"
- @click="changeDashboard(1)">
- <span class="react-before"></span>
- <span class="text" id="aa">数据监控</span>
- </div>
- <div class="react-right ml-3" v-bind:style="{backgroundColor:bgCol2,width:wh,textAlign:tAlign}"
- @click="changeDashboard(2)">
- <span class="text colorBlue"></span>
- <span class="text" id="bb">蒸汽平衡</span>
- </div>
- <div class="react-right ml-2" v-bind:style="{backgroundColor:bgCol3,width:wh,textAlign:tAlign}"
- @click="changeDashboard(3)">
- <span class="text colorBlue"></span>
- <span class="text" id="cc">环保监控</span>
- </div>
- </div>
- <div style="width: 40%" class="d-flex">
- <div class="react-left bg-color-blue mr-3">
- <span class="text fw-b">北京时间</span>
- </div>
- <div
- class="react-left mr-3"
- style="width: 6.25rem; background-color: #0f1325;"
- >
- <span style="text-align: center" class="text">{{dateYear}} {{dateWeek}} {{dateDay}}</span>
- </div>
- <div class="react-left mr-3" style="width: 2.25rem; background-color: #0f1325;" @click="openNewWindow">
- <span class="text fw-b"> <svg-icon icon-class="fullscreen" /></span>
- </div>
- </div>
- </div>
- <div class="body-box" v-if="dashboard === 1">
- <!-- 第三行数据 -->
- <div class="content-box">
- <div>
- <dv-border-box-12>
- <centerLeft1 :monthData="monthData"/>
- </dv-border-box-12>
- </div>
- <!-- 中间 -->
- <div>
- <center :dashboardelecdata="dashboardelecdata"/>
- </div>
- <!-- 中间 -->
- <div>
- <centerRight2 :dashboardelecdata="[dashboardelecdata,monthData]"/>
- </div>
- <div>
- <dv-border-box-13>
- <centerRight1 :fiftydayData="fiftydayData"/>
- </dv-border-box-13>
- </div>
- </div>
- <!-- 第四行数据 -->
- <div class="bototm-box">
- <dv-border-box-13>
- <bottomLeft :monthData="monthData"/>
- </dv-border-box-13>
- <div class="bototm-box1">
- <dv-border-box-12>
- <bottom-right :weekData="weekData"/>
- </dv-border-box-12>
- <div class="bototm-box2">
- <dv-border-box-12>
- <div class="bg-color-black">
- <div class="d-flex pt-2 pl-2">
- <span style="color:#5cd9e8">
- <icon name="chart-bar"></icon>
- </span>
- <div class="d-flex">
- <span class="fs-xl text mx-2">天然气日消耗情况</span>
- </div>
- </div>
- <div>
- <bottom-right1 />
- </div>
- </div>
- </dv-border-box-12>
- <dv-border-box-12>
- <div class="bg-color-black">
- <div class="d-flex pt-2 pl-2">
- <span style="color:#5cd9e8">
- <icon name="chart-bar"></icon>
- </span>
- <div class="d-flex">
- <span class="fs-xl text mx-2">瞬时值</span>
- </div>
- </div>
- <div>
- <bottom-right2 />
- </div>
- </div>
- </dv-border-box-12>
- </div>
- </div>
- </div>
- </div>
- <div class="body-box" v-if="dashboard === 2">
- <div>
- <front-elec-two></front-elec-two>
- </div>
- </div>
- <div class="body-box" v-if="dashboard === 3">
- <div>
- <front-elec-three></front-elec-three>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- import centerLeft1 from "./centerLeft1";
- import centerLeft2 from "./centerLeft2";
- import centerRight1 from "./centerRight1";
- import centerRight2 from "./centerRight2";
- import center from "./center";
- import bottomLeft from "./bottomLeft";
- import bottomRight from "./bottomRight";
- import bottomRight1 from "./echart/bottom/bottomRightChart1"
- import bottomRight2 from "./echart/bottom/bottomRightChart2"
- import frontElecTwo from "@/views/monitor/elec/frontElecTwo";
- import frontElecThree from "@/views/monitor/elec/frontElecThree";
- import '@/assets/styles/index.scss' // global css
- import '@/common/flexible.js';
- import dayjs from "dayjs";
- import {selectLast,selectMonth,selecctfiftyday} from "@/api/aspen/dashboarddayelec";
- import {selectWeek} from "@/api/aspen/dashboarddayeleceight";
- export default {
- data() {
- return {
- loading: true,
- dashboard: 1,
- dateDay: null,
- dateYear: null,
- dateWeek: null,
- weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
- timer:null,
- bgCol1:"#0f1325",
- bgCol2:"#0f1325",
- bgCol3:"#0f1325",
- bgCol0:"#0a84ff",
- wh:"3.25rem",
- tAlign:"left",
- dashboardelecdata: {
- pageNum: 1,
- pageSize: 20,
- createrCode: null,
- createdate: null,
- updaterCode: null,
- updatedate: null,
- gtg1Lv: null,
- gtg1Wr: null,
- gtg2Lv: null,
- gtg2Wr: null,
- gtg3Lv: null,
- gtg3Wr: null,
- stg1Lv: null,
- stg1Wr: null,
- mwhLv: null,
- mwhWr: null,
- hhp: null,
- hp: null,
- lp: null,
- mp: null,
- totalConsumption: null,
- hhpNum: null,
- hhpTemp: null,
- hpNum: null,
- hpTemp: null,
- lpNum: null,
- lpTemp: null,
- mpNum: null,
- mpTemp: null,
- shihua: null,
- shiyou: null,
- shunshiliang: null,
- ypg: null,
- daodianliang: null,
- eveLec: null,
- fenggucha: null,
- bycElec: null,
- bocElec: null,
- dataDate: null,
- dateDay: null
- },
- monthData:{
- pageNum: 1,
- pageSize: 20,
- createrCode: null,
- createdate: null,
- updaterCode: null,
- updatedate: null,
- gtg1Lv: null,
- gtg1Wr: null,
- gtg2Lv: null,
- gtg2Wr: null,
- gtg3Lv: null,
- gtg3Wr: null,
- stg1Lv: null,
- stg1Wr: null,
- mwhLv: null,
- mwhWr: null,
- hhp: null,
- hp: null,
- lp: null,
- mp: null,
- totalConsumption: null,
- hhpNum: null,
- hhpTemp: null,
- hpNum: null,
- hpTemp: null,
- lpNum: null,
- lpTemp: null,
- mpNum: null,
- mpTemp: null,
- shihua: null,
- shiyou: null,
- shunshiliang: null,
- ypg: null,
- daodianliang: null,
- eveLec: null,
- fenggucha: null,
- bycElec: null,
- bocElec: null,
- dataDate: null,
- dateDay: null
- },
- weekData:{
- pageNum: 1,
- pageSize: 20,
- createrCode: null,
- createdate: null,
- updaterCode: null,
- updatedate: null,
- evconsume: null,
- elecp: null,
- hechengqi: null,
- u2: null,
- dataDate: null,
- dateDay: null
- },
- fiftydayData:{
- pageNum: 1,
- pageSize: 20,
- createrCode: null,
- createdate: null,
- updaterCode: null,
- updatedate: null,
- gtg1Lv: null,
- gtg1Wr: null,
- gtg2Lv: null,
- gtg2Wr: null,
- gtg3Lv: null,
- gtg3Wr: null,
- stg1Lv: null,
- stg1Wr: null,
- mwhLv: null,
- mwhWr: null,
- hhp: null,
- hp: null,
- lp: null,
- mp: null,
- totalConsumption: null,
- hhpNum: null,
- hhpTemp: null,
- hpNum: null,
- hpTemp: null,
- lpNum: null,
- lpTemp: null,
- mpNum: null,
- mpTemp: null,
- shihua: null,
- shiyou: null,
- shunshiliang: null,
- ypg: null,
- daodianliang: null,
- eveLec: null,
- fenggucha: null,
- bycElec: null,
- bocElec: null,
- dataDate: null,
- dateDay: null
- }
- };
- },
- components: {
- centerLeft1,
- centerLeft2,
- centerRight1,
- centerRight2,
- center,
- bottomLeft,
- bottomRight,
- bottomRight1,
- bottomRight2,
- frontElecTwo,
- frontElecThree
- },
- mounted() {
- if(this.dashboard===1){
- this.bgCol1="#1a5cd7"
- };
- this.timer = setInterval(()=>{
- const date= dayjs(new Date());
- this.dateDay = date.format('HH:mm:ss');
- this.dateYear = date.format('YYYY年MM月DD日');
- this.dateWeek = date.format(this.weekday[date.day()]);
- },1000),
- this.setScale();
- window.addEventListener("resize", this.debounce(this.setScale, 100));
- // * 适配处理
- this.cancelLoading();
- },
- created() {
- this.getList1();
- this.getMonthList1();
- this.getWeekList();
- this.getFiftydayList();
- // 每隔30秒请求一次数据
- window.setInterval(() => {
- setTimeout(() => {
- ///调取接口获取数据
- this.getList1();
- }, 0)
- }, 30000)
- // 一天请求一次数据
- window.setInterval(() => {
- setTimeout(() => {
- ///调取接口获取数据
- this.getMonthList1();
- }, 0)
- }, 1000 * 10 * 6 * 60 * 6)
- // 一天请求一次数据
- window.setInterval(() => {
- setTimeout(() => {
- ///调取接口获取数据
- this.getWeekList();
- }, 0)
- }, 1000 * 10 * 6 * 60 * 6)
- // 一天请求一次数据
- window.setInterval(() => {
- setTimeout(() => {
- ///调取接口获取数据
- this.getFiftydayList();
- }, 0)
- }, 1000 * 10 * 6 * 60 * 6)
- },
- methods: {
- /** 查询dashboarddayelec抓取数据列表 */
- getList1()
- {
- selectLast(this.queryParams).then(response => {
- this.dashboardelecdata = response.data;
- });
- },
- /** 查询dashboarddayelec近三十天抓取数据列表 */
- getMonthList1()
- {
- selectMonth(this.queryParams).then(response => {
- this.monthData = response.data;
- });
- },
- /** 查询dashboarddayelec近一周抓取数据列表 */
- getWeekList()
- {
- selectWeek(this.queryParams).then(response => {
- this.weekData = response.data;
- });
- },
- /** 查询dashboarddayelec近49天抓取数据列表 */
- getFiftydayList()
- {
- selecctfiftyday(this.queryParams).then(response => {
- this.fiftydayData = response.data;
- });
- },
- cancelLoading() {
- setTimeout(() => {
- this.loading = false;
- }, 500);
- },
- getScale() {
- let { width, height } = this;
- let wh = window.innerHeight / height;
- let ww = window.innerWidth / width;
- console.log(ww < wh ? ww : wh);
- return ww < wh ? ww : wh;
- },
- setScale() {
- if(window.innerHeight ==1080){
- this.height = 1080
- }else{
- this.height = 937
- }
- this.scale = this.getScale();
- if (this.$refs.ScaleBox) {
- this.$refs.ScaleBox.style.setProperty("--scale", this.scale);
- }
- },
- debounce(fn, delay) {
- let delays = delay || 500;
- let timer;
- return function () {
- let th = this;
- let args = arguments;
- if (timer) {
- clearTimeout(timer);
- }
- timer = setTimeout(function () {
- timer = null;
- fn.apply(th, args);
- }, delays);
- };
- },
- changeDashboard(val) {
- if (val === 1) {
- this.dashboard = 1
- this.bgCol1="#1a5cd7";
- this.bgCol2="#0f1325";
- this.bgCol3="#0f1325";
- }else if (val === 2) {
- this.dashboard = 2,
- this.bgCol2="#1a5cd7";
- this.bgCol1="#0f1325";
- this.bgCol3="#0f1325";
- }else if (val === 3) {
- this.dashboard = 3,
- this.bgCol3="#1a5cd7";
- this.bgCol1="#0f1325";
- this.bgCol2="#0f1325";
- }
- },
- openNewWindow() {
- let routeData = this.$router.resolve({
- path: "/elecDashboard",
- });
- window.open('/cpms/index.html#/elecDashboard', '_blank');
- },
- }
- };
- </script>
- <style lang="scss">
- #elec-index {
- color: #ffffff;
- background-color: #000000;
- width: 100%;
- height: 100vh;
- .bg {
- padding: 0.2rem 0.2rem 0 0.2rem;
- background-size: cover;
- background-position: center center;
- background-image: url("../../../assets/image/pageBg.png");
- }
- .host-body {
- .title {
- position: relative;
- width: 6.25rem;
- text-align: center;
- background-size: cover;
- background-repeat: no-repeat;
- .title-text {
- font-size: 0.4rem;
- position: absolute;
- bottom: 0;
- left: 50%;
- top: 30%;
- transform: translate(-50%);
- font-weight: 600;
- }
- .title-bototm {
- position: absolute;
- bottom: -0.375rem;
- left: 50%;
- transform: translate(-50%);
- }
- }
- // 平行四边形
- .react-left {
- cursor: pointer;
- font-size: 0.225rem;
- width: 3.75rem;
- height: 0.625rem;
- line-height: 0.625rem;
- text-align: center;
- transform: skewX(-45deg);
- .react-after {
- position: absolute;
- right: -0.3125rem;
- top: 0;
- height: 0.625rem;
- width: 0.625rem;
- background-color: #0f1325;
- transform: skewX(45deg);
- }
- .text {
- display: inline-block;
- transform: skewX(45deg);
- }
- }
- .react-right {
- cursor: pointer;
- font-size: 0.225rem;
- width: 3.75rem;
- height: 0.625rem;
- line-height: 0.625rem;
- text-align: center;
- transform: skewX(45deg);
- .react-before {
- position: relative;
- left: -1.3125rem;
- top: 0;
- height: 0.625rem;
- width: 0.625rem;
- background-color: #0f1325;
- transform: skewX(-45deg);
- }
- .text {
- display: inline-block;
- transform: skewX(-45deg);
- }
- }
- .body-box {
- margin-top: 0.2rem;
- display: flex;
- flex-direction: column;
- //下方区域的布局
- .content-box {
- display: grid;
- grid-template-columns: 6fr 7fr 2fr 2fr;
- }
- // 底部数据
- .bototm-box {
- display: grid;
- grid-template-columns: repeat(2, 50%);
- grid-template-rows: repeat(2,100%);
- }
- .bototm-box1 {
- display: grid;
- grid-template-rows: repeat(2,50%);
- }
- .bototm-box2 {
- display: grid;
- grid-template-columns: repeat(2,50%);
- }
- }
- }
- }
- #aa{
- position: absolute;
- right: 100px;
- }
- #bb{
- position: absolute;
- right: 100px;
- }
- #cc{
- position: absolute;
- right: 80px;
- }
- .fs-xl {
- font-size: 0.18rem;
- }
- </style>
|