<template>
  <div id="index" ref="appRef">
    <div class="bg">
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <div class="d-flex jc-center">
          <dv-decoration-10 class="dv-dec-10" />
          <div class="d-flex jc-center">
            <dv-decoration-8 class="dv-dec-8" :color="decorationColor" />
            <div class="title">
              <span class="title-text fw-b">{{title}}</span>
              <dv-decoration-6
                class="dv-dec-6"
                :reverse="true"
                :color="['#50e3c2', '#67a1e5']"
              />
            </div>
            <dv-decoration-8
              class="dv-dec-8"
              :reverse="true"
              :color="decorationColor"
            />
          </div>
          <dv-decoration-10 class="dv-dec-10-s" />
        </div>

        <!-- 第二行 -->
        <div class="d-flex jc-between px-2">
          <div class="d-flex aside-width">
            <div class="ml-4 react-l-s mr-4">
              <dv-border-box-8>
                <backBtn></backBtn>
              </dv-border-box-8>
            </div>
            <div class="ml-4 react-l-s react-left" style="width: 300px;">
              <span class="react-left"></span>
              <span class="text"></span>
            </div>
            <div class="react-left bg-color-blue ml-3" @click="fullscreen">
              <span class="text">
                全屏
              </span>
            </div>
          </div>
          <div class="d-flex aside-width">
            <div class="react-right bg-color-blue mr-3">
              <span class="text fw-b">
                <i class="el-icon-date"></i>
                &nbsp;日期
              </span>
            </div>
            <div class="react-right mr-4 react-l-s">
              <span class="react-after"></span>
              <span class="text"
              >{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span
              >
            </div>
          </div>
        </div>

        <div class="body-box">
          <!-- 第三行数据 -->
          <div class="content-box">
<!--            <div>-->
<!--              <dv-border-box-11 title="调令统计数据">-->
<!--                <centerLeft1 />-->
<!--              </dv-border-box-11>-->
<!--            </div>-->
            <div>
              <dv-border-box-11 title="调令实时看板">
                <centerRight1 />
              </dv-border-box-11>
            </div>
          </div>

          <!-- 第四行数据 -->
          <div class="bottom-box">
            <bottom></bottom>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
// 按需引入vue-awesome图标
import {title} from '@/settings';
import Icon from 'vue-awesome/components/Icon';
import 'vue-awesome/icons/chart-bar.js';
import 'vue-awesome/icons/chart-area.js';
import 'vue-awesome/icons/chart-pie.js';
import 'vue-awesome/icons/chart-line.js';
import 'vue-awesome/icons/align-left.js';
import '@/styles/scss/style.scss';

import centerLeft1 from './component/centerLeft1'
import centerLeft2 from './component/centerLeft2'
import centerRight1 from './component/centerRight1'
import centerRight2 from './component/centerRight2'
import center from './component/center'
import bottomLeft from './component/bottomLeft'
import bottomRight from './component/bottomRight'
import drawMixin from "@/mixin/drawMixin";
import backBtn from './component/backBtn.vue';
import bottom from "./component/bottom.vue"
export default {
  mixins: [ drawMixin ],
  provide() {
    return {
      load: this.load,
      cancelLoading: this.cancelLoading,
      showModal: this.showModal
    }
  },
  components: {
    Icon,

    centerLeft1,
    centerLeft2,
    centerRight1,
    centerRight2,
    center,
    bottomLeft,
    bottomRight,
    backBtn,
    bottom
  },
  data() {
    return {
      title,
      timing: null,
      loading: true,
      dateDay: null,
      dateYear: null,
      dateWeek: null,
      weekday: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
      decorationColor: ['#568aea', '#000000']
    }
  },
  mounted() {
    this.timeFn();
    this.cancelLoading();

  },
  beforeDestroy () {
    clearInterval(this.timing)
  },
  methods: {
    showModal (isEmergent = false, message) {
      let modal = this.$alert('', `收到一条${isEmergent ? '紧急': ''}信息`, {
        message,
        confirmButtonText: '确定',
        customClass: isEmergent ? "big-screen-modal big-screen-modal-warning" : "big-screen-modal",
        iconClass: "el-icon-message-solid"
      });

      if (!isEmergent) {
        setTimeout(() => {
          modal.close()
        },10 * 10000)
      }
    },
    fullscreen () {
      document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen()
    },
    timeFn() {
      this.timing = setInterval(() => {
        this.dateDay = this.$moment().format('HH:mm:ss')
        this.dateYear = this.$moment().format('YYYY 年 MM 月 DD 日')
        this.dateWeek = this.weekday[new Date().getDay()]
      }, 1000)
    },

    load () {
      this.loading = true;
    },
    cancelLoading() {
      setTimeout(() => {
        this.loading = false
      }, 500)
    }
  }
}
</script>

<style scoped lang="scss">
@import "../../styles/scss/index.scss";
</style>
<style>
#app:has(#index) {
  &:after {
    content: '';
    background: #000;

    position: fixed;
    z-index: 9999998;
    inset: 0 0 0 0;
  }
}
div:has(.big-screen-modal) {
  z-index: 9999999 !important;
}
.big-screen-modal-warning {
  filter: drop-shadow(0 0 1px rgb(200,0,0))
  drop-shadow(0 0 3px rgb(215, 9, 9))
  drop-shadow(0 0 4px rgb(224, 40, 40))
  drop-shadow(0 0 5px rgb(225, 91, 91));
  animation: warning 1.5s ease-in-out infinite alternate;
}
@keyframes warning {
  to {
    filter: drop-shadow(0 0 3px rgb(200,0,0))
    drop-shadow(0 0 9px rgb(215, 9, 9))
    drop-shadow(0 0 12px rgb(224, 40, 40))
    drop-shadow(0 0 20px rgb(225, 91, 91));
  }
}
.big-screen-modal-warning .el-message-box__status {
  color: rgb(200, 0 ,0);
  transform-origin: 50% 0;
  //animation: wobble 4s infinite;
}
@keyframes wobble {
  from {
    transform: rotate(-30deg);
  }
  to {
    transform: rotate(30deg);
  }
}
</style>
