<template>
  <div class="light-matrix">
    <div class="panel">
      <div class="dot left top"></div>
      <div class="dot left bottom"></div>
      <div class="dot right top"></div>
      <div class="dot right bottom"></div>
      <div class="page-header">
        <div class="panel-item-gf">
          <div class="panel-item-gf-left">
            <div class="loop"></div>
            <span class="svg-icon svg-icon-gray svg-icon-md">
              <SvgIcon svgid="svg-wind-site"></SvgIcon>
            </span>
          </div>
          <div
            class="panel-item-gf-right curStyle"
            @click="changeShow( panelData.first.category)"
          >
            <div class="panel-item-gf-up">{{ panelData.first.text }}</div>
            <div class="panel-item-gf-down">
              {{ sourceMap[panelData.first.key] || "---" }}
            </div>
          </div>
        </div>
        <div class="header-info">
          <div
            class="panel-item"
            v-for="(data, index) of panelData.datas"
            :key="index"
            :class="data.color"
          >
            <div
              class="panel-item-left curStyle"
              @click="changeShow(data.category,data.fjZT)"
            >
              <div class="panel-item-li">
                <span>{{ data.name }}</span>
              </div>
              <div class="panel-item-li">
                <span v-if="data.calcStr && sourceMap">{{
                  calcGfStr(data.calcStr) || "---"
                }}</span>
                <span v-else>{{ sourceMap[data.key] || "---" }}</span>
              </div>
            </div>
            <div class="panel-item-right curStyle">
              <div class="panel-item-ri" @click="changeShow(data.category1,data.fjZT)">
                <span>
                  <i
                    class="svg-icon svg-icon-sm"
                    :class="'svg-icon-' + data.color"
                  >
                    <SvgIcon :svgid="data.nameIcon"></SvgIcon>
                  </i>
                  {{ data.text1 }}</span
                >
                <span>{{ sourceMap[data.key1] || "---" }}</span>
              </div>
              <div class="panel-item-ri" @click="changeShow(data.category2,data.fjZT)">
                <span>
                  <i
                    class="svg-icon svg-icon-sm"
                    :class="'svg-icon-' + data.color"
                  >
                    <SvgIcon :svgid="data.numIcon"></SvgIcon>
                  </i>
                  {{ data.text2 }}
                </span>
                <span>{{ sourceMap[data.key2] || "---" }}</span>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <el-scrollbar>
      <div class="panel-box">
        <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex">
          <div class="panel-title">
            <div class="panel-title-name">
              <i class="svg-icon svg-icon-sm svg-icon-green">
                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
              </i>
              <span>{{ sourceMap.fczbmap[pItem[pIndex].wpId].name }}</span>
              <div
                class="sub-title-item"
                v-for="(data, index) of tables[0].subTitleDatas"
                :key="index"
              >
                <span class="sub-title">{{ data.text }}</span>
                <span class="sub-count" :class="data.color">{{
                  sourceMap.fczbmap[pItem[pIndex].wpId][data.key]
                }}</span>
              </div>
            </div>
          </div>
          <div class="panel-body">
            <!-- 接入风机 -->
            <div
              class="card"
              v-for="(cItem, cIndex) in pItem"
              :key="cIndex"
              v-show="cItem.isShow"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }}</div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div>
            <!-- 待机 -->
            <!-- <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
              <div v-if="(fjStatus = 'dj')">
                <div class="card-panel">
                  <div class="card-left">
                    <div class="tag">{{ cItem.wtnum }}</div>
                    <div class="icon">
                      <span
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color == 'black'
                            ? 'svg-icon-black'
                            : cItem.color == 'gray'
                            ? 'svg-icon-gray'
                            : 'svg-icon-write'
                        "
                      >
                        <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                      </span>
                    </div>
                  </div>
                  <div class="card-right">
            
                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-W"></SvgIcon>
                      </i>
                      <span>{{ cItem.fs }}</span>
                    </div>

                
                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-P"></SvgIcon>
                      </i>
                      <span>{{ cItem.gl }}</span>
                    </div>

              
                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-R"></SvgIcon>
                      </i>
                      <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                    </div>
                  </div>
                </div>
              </div>
            </div> -->
            <!-- 运行 -->
            <!-- <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
              <div v-if="fjStatus == 'yx'">
                <div class="card-panel">
                  <div class="card-left">
                    <div class="tag">{{ cItem.wtnum }}</div>
                    <div class="icon">
                      <span
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color == 'black'
                            ? 'svg-icon-black'
                            : cItem.color == 'gray'
                            ? 'svg-icon-gray'
                            : 'svg-icon-write'
                        "
                      >
                        <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                      </span>
                    </div>
                  </div>
                  <div class="card-right">
                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-W"></SvgIcon>
                      </i>
                      <span>{{ cItem.fs }}</span>
                    </div>

                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-P"></SvgIcon>
                      </i>
                      <span>{{ cItem.gl }}</span>
                    </div>

                    <div class="num">
                      <i
                        class="svg-icon svg-icon-sm"
                        :class="
                          cItem.color != 'red'
                            ? 'svg-icon-' + cItem.color
                            : 'svg-icon-white'
                        "
                      >
                        <SvgIcon svgid="svg-R"></SvgIcon>
                      </i>
                      <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                    </div>
                  </div>
                </div>
              </div>
            </div> -->

            <!-- <div
              class="card"
              v-for="(cItem, cIndex) in pItem"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }} </div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
             
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

            
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div> -->

            <i class="blank" v-for="i in pItem.length" :key="i"></i>
          </div>
        </div>
      </div>
      <!-- 待机 -->
      <!-- <div class="panel-box">
        <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex">
          <div class="panel-title">
            <div class="panel-title-name">
              <i class="svg-icon svg-icon-sm svg-icon-green">
                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
              </i>
              <span>{{ sourceMap.fczbmap[pItem[pIndex].wpId].name }}</span>
              <div
                class="sub-title-item"
                v-for="(data, index) of tables[0].subTitleDatas"
                :key="index"
              >
                <span class="sub-title">{{ data.text }}</span>
                <span class="sub-count" :class="data.color">{{
                  sourceMap.fczbmap[pItem[pIndex].wpId][data.key]
                }}</span>
              </div>
            </div>
          </div>
          <div class="panel-body">
            <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
           <div v-if="fjStatus='dj'">
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }} </div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
              
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

                
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div>
            </div>
             <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
            <div v-if="fjStatus='dj'">
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }} </div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
            
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

            
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

       
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div>
            </div>
         
            <i class="blank" v-for="i in pItem.length" :key="i"></i>
          </div>
        </div>
      </div> -->
      <!-- 运行 -->
      <!-- <div class="panel-box">
        <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex">
          <div class="panel-title">
            <div class="panel-title-name">
              <i class="svg-icon svg-icon-sm svg-icon-green">
                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
              </i>
              <span>{{ sourceMap.fczbmap[pItem[pIndex].wpId].name }}</span>
              <div
                class="sub-title-item"
                v-for="(data, index) of tables[0].subTitleDatas"
                :key="index"
              >
                <span class="sub-title">{{ data.text }}</span>
                <span class="sub-count" :class="data.color">{{
                  sourceMap.fczbmap[pItem[pIndex].wpId][data.key]
                }}</span>
              </div>
            </div>
          </div>
          <div class="panel-body">
            <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
            <div v-if="fjStatus=='yx'">
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }} </div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
              
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

                
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div>
            </div>
             <div
              class="card"
              v-for="(cItem, cIndex) in fjArr"
              :key="cIndex"
              :class="cItem.color"
              @click="goDetails(cItem)"
            >
            <div  v-if="fjStatus=='yx'">
              <div class="card-panel">
                <div class="card-left">
                  <div class="tag">{{ cItem.wtnum }} </div>
                  <div class="icon">
                    <span
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color == 'black'
                          ? 'svg-icon-black'
                          : cItem.color == 'gray'
                          ? 'svg-icon-gray'
                          : 'svg-icon-write'
                      "
                    >
                      <SvgIcon :svgid="mapping[cItem.color]"></SvgIcon>
                    </span>
                  </div>
                </div>
                <div class="card-right">
               
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-W"></SvgIcon>
                    </i>
                    <span>{{ cItem.fs }}</span>
                  </div>

         
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-P"></SvgIcon>
                    </i>
                    <span>{{ cItem.gl }}</span>
                  </div>

          
                  <div class="num">
                    <i
                      class="svg-icon svg-icon-sm"
                      :class="
                        cItem.color != 'red'
                          ? 'svg-icon-' + cItem.color
                          : 'svg-icon-white'
                      "
                    >
                      <SvgIcon svgid="svg-R"></SvgIcon>
                    </i>
                    <span>{{ cItem.fdjzs.toFixed(2) }}</span>
                  </div>
                </div>
              </div>
            </div>
            </div>
          
            <i class="blank" v-for="i in pItem.length" :key="i"></i>
          </div>
        </div>
      </div> -->
    </el-scrollbar>
  </div>
</template>

<script>
import SvgIcon from "@com/coms/icon/svg-icon.vue";
import util from "@/helper/util.js";
import { isNumber } from "util";
import store from "@store/index.js";

export default {
  // 名称
  name: "LightMatrix3",
  // 使用组件
  components: {
    SvgIcon,
  },

  // 数据
  data() {
    return {
      timmer: null, // 遮罩开关
      sourceMap: {}, // 核心数据
      fillCategory: null, // 过滤条件
      fillFjzt: null, // 过滤条件
      fjStatus: "all",
      fjArr: [],
      fjNum: 0,
      mapping: {
        green: "svg-standby",
        blue: "svg-normal-power",
        pink: "svg-limit-power",
        red: "svg-gz-downtime",
        orange: "svg-jx-downtime",
        gray: "svg-offline",
        black: "svg-intranet-involvement",
        //         green: "svg-manual",
        // blue: "svg-drop-output",
        // pink: "svg-downtime",
        // red: "svg-field-involved",
        // orange: "svg-field-involved",
        // gray: "svg-unknown",
        // black: "svg-environment",
      },
      // mapping:[
      //     {green1: "svg-standby",green2: "svg-manual"},
      //     {blue1: "svg-normal-power",blue2: "svg-drop-output"},
      //     {pink1: "svg-limit-power",pink2: "svg-downtime"},
      //     {red1: "svg-gz-downtime",red2: "svg-field-involved"},
      //     {orange1: "svg-jx-downtime",orange2: "svg-field-involved"},
      //     {gray1: "svg-offline",gray2: "svg-unknown"},
      //     {black1: "svg-intranet-involvement",black2: "svg-environment"},
      // ],
      panelData: {
        first: {
          icon: "svg-photovoltaic",
          text: "接入风场",
          key: "fcjrnum",
          category:'jrfj_FDC'
        },
        datas: [
          {
            color: "green",
            name: "待机",
            category:'dj_FDC',
            fjZT: 0,
            nameIcon: "svg-standby",
            calcStr: ["fcdjnum", "fcsdtjnum"],
            numIcon: "svg-manual",
            text1: "待风",
            category1:'df_FDC',
            key1: "fcdjnum",
            text2: "手动停机",
            category2:'sd_FDC',
            key2: "fcsdtjnum",
          },
          {
            color: "blue",
            name: "运行",
            category:'yx_FDC',
            fjZT: 2,
            nameIcon: "svg-normal-power",
            calcStr: ["fczcfdnum", "fcqxjclnum"],
            numIcon: "svg-drop-output",
            text1: "正常发电",
            category1:'zcfd_FDC',
            key1: "fczcfdnum",
            text2: "降出力运行",
            category2:'jcl_FDC',
            key2: "fcqxjclnum",
          },
          {
            color: "pink",
            name: "限电",
            category:'xd_FDC',
            fjZT: 5,
            nameIcon: "svg-limit-power",
            calcStr: ["fcxdjclnum", "fcxdtjnum"],
            numIcon: "svg-downtime",
            text1: "限电降出力",
            category1:'fcxdjcl_FDC',
            key1: "fcxdjclnum",
            text2: "停机",
            category2:'fcxdtj_FDC',
            key2: "fcxdtjnum",
          },
          {
            color: "red",
            name: "故障",
            category:'gz_FDC',
            fjZT: 6,
            nameIcon: "svg-gz-downtime",
            calcStr: ["fcgztjnum", "fccnsltjnum"],
            numIcon: "svg-field-involved",
            text1: "故障停机",
            category1:'fcgztj_FDC',
            key1: "fcgztjnum",
            text2: "场内受累",
            category2:'fccnsltj_FDC',
            key2: "fccnsltjnum",
          },
          {
            color: "orange",
            name: "检修",
            category:'jx_FDC',
            fjZT: 8,
            nameIcon: "svg-jx-downtime",
            calcStr: ["fcjxtjnum", "fccnsljxnum"],
            numIcon: "svg-field-involved",
            text1: "检修停机",
            category1:'fcjxtj_FDC',
            key1: "fcjxtjnum",
            text2: "产内受累",
            category2:'fccnsljx_FDC',
            key2: "fccnsljxnum",
          },
          {
            color: "write",
            name: "受累",
            category:'sl_FDC',
            fjZT: 12,
            calcStr: ["fcdwslnum", "fchjslnum"],
            nameIcon: "svg-intranet-involvement",
            numIcon: "svg-environment",
            text1: "电网",
            category1:'fcdwsl_FDC',
            key1: "fcdwslnum",
            text2: "环境",
            category2:'fchjsl_FDC',
            key2: "fchjslnum",
          },
          {
            color: "gray",
            name: "离线",
            category:'lx_FDC',
            fjZT:3,
            nameIcon: "svg-offline",
            key: "fclxnum",
            numIcon: "svg-unknown",
            text1: "离线",
            category1:'fclx_FDC',
            key1: "fclxnum",
            text2: "未知",
            category1:'fcwz_FDC',
            key2: "fcwznum",
          },
        ],
      },
      tables: [
        {
          col: 15,
          subTitleDatas: [
            {
              text: "接入台数",
              color: "write",
              key: "jrts",
            },
            {
              text: "待机台数",
              color: "green",
              key: "djts",
            },
            {
              text: "并网台数",
              color: "blue",
              key: "yxts",
            },
            {
              text: "限电台数",
              color: "pink",
              key: "xdts",
            },
            {
              text: "故障台数",
              color: "red",
              key: "gzts",
            },
            {
              text: "检修台数",
              color: "orange",
              key: "whts",
            },
            {
              text: "受累台数",
              color: "write",
              key: "slts",
            },
            {
              text: "离线台数",
              color: "gray",
              key: "lxts",
            },
            {
              text: "风速",
              color: "gray",
              key: "ssfs",
            },
            {
              text: "预测功率",
              color: "gray",
              key: "ycgl",
            },
            {
              text: "保证功率",
              color: "gray",
              key: "bzgl",
            },
            {
              text: "应发功率",
              color: "gray",
              key: "yfgl",
            },
            {
              text: "实际功率",
              color: "gray",
              key: "sjgl",
            },
            {
              text: "AGC指令",
              color: "gray",
              key: "agcygsd",
            },
            {
              text: "出线功率",
              color: "gray",
              key: "agccxyg",
            },
          ],
          datas: [
            {
              tag: "A-11",
              num1: 1234.56,
              num2: 1234.56,
              num3: 1234.56,
              color: "blue",
            },
          ],
        },
      ],
    };
  },

  // 函数
  methods: {
    // 根据风机状态码返回对应 class
    getColor(fjzt) {
      switch (fjzt) {
        case 0: // 待机
          return "green";
        case 1: // 手动停机
          return "green";
        case 2: // 正常发电
          return "blue";
        case 3: // 缺陷降出力
          return "blue";
        case 4: // 限电降出力
          return "purple";
        case 5: // 限电停机
          // return "purple";
          return "pink";
        case 6: // 故障停机
          return "red";
        case 7: // 场内受累停机
          return "red";
        case 8: // 检修停机
          return "orange";
        case 9: // 离线
          return "orange";
        case 10: // 电网受累
          return "black";
        case 11: // 环境受累
          return "black";
        case 12: // 离线
          return "gray";
      }
    },

    // // 切换显示种类
    // changeShow(index){
    //   console.log('index:',index)
    //   let fjmap = this.BASE.deepCopy(this.sourceMap.fjmap);
    //   if(index==-1){
    //    this.sourceMap.fjmap=fjmap;
    //   }else if(index==0){
    //     console.log('fjmap:',fjmap)
    //       fjmap.forEach((pVal) => {
    //        console.log('pval:',pVal)
    //       let djArr = pVal.filter((v, i, a) => {
    //         return v.fjzt == 0;
            
    //       });
    //       console.log("djArr:", djArr);
    //     //  this.sourceMap.fjmap=djArr;
    //     });
    //   }
    // },

    // changeShow1(category, fjzt) {
    //   let that = this;
    //   console.log("that:", that);
    //   console.log("category:", category);
    //   console.log("fjzt:", fjzt);
    //   if (category == "svg-standby" || fjzt == 0) {
    //     that.fjStatus = "dj";
    //     that.fjNum = 0;
    //     that.sourceMap.fjmap.forEach((pVal) => {
    //       //  console.log('pval:',pVal)
    //       let djArr = pVal.filter((v, i, a) => {
    //         return v.fjzt == 0;
    //         console.log("v1:", v);
    //       });
    //       console.log("djArr:", djArr);
    //       that.fjArr = djArr;
    //     });
    //     console.log("that1:", that);
    //     console.log("fjarr:", that.fjArr);
    //   } else if (category == "svg-normal-power" || fjzt == 2) {
    //     that.fjStatus == "yx";
    //     that.fjNum = 2;
    //     that.sourceMap.fjmap.forEach((pVal) => {
    //       //  console.log('pval:',pVal)
    //       let yxArr = pVal.filter((v, i, a) => {
    //         return v.fjzt == 2;
    //         console.log("v2:", v);
    //       });
    //       console.log("yxArr:", yxArr);
    //       that.fjArr = yxArr;
    //     });
    //     console.log("that2:", that);
    //     console.log("fjarr:", that.fjArr);
    //   }
    // },
    
    //切换显示种类
     changeShow(category, fjzt, skipFill) {
      if (!skipFill) {
        console.log('!skipFill:',!skipFill)
        if (this.fillCategory === category) {
          console.log('fillCategory:',this.fillCategory)
          console.log('fillFjzt:',this.fillFjzt)
          this.fillCategory = null;
          this.fillFjzt = null;
        } else {
          this.fillCategory = category;
          this.fillFjzt = fjzt;
             console.log('fillCategory:',this.fillCategory)
          console.log('fillFjz:',this.fillFjzt)
        }
      }

      let fjmap = this.BASE.deepCopy(this.sourceMap.fjmap);

      fjmap.forEach((pEle) => {
        // console.log('pele:',pEle)
        pEle.forEach((cEle) => {
          // console.log('cele:',cEle)
          cEle.isShow = true;
          if (!this.fillCategory) {
            cEle.isShow = true;
            // cEle.isShow=false;
          } else if (cEle.wpId.indexOf(category.split("_")[1]) !== -1) {
            if (isNumber(fjzt)) {
              cEle.fjzt === fjzt ? (cEle.isShow = true) : (cEle.isShow = false);
            } else {
              cEle.isShow = true;
              // cEle.isShow = false;
            }
          } else {
            cEle.isShow = true;
          }
        });
      });
      this.sourceMap.fjmap = fjmap;
    },

    calcGfStr(calcStr) {
      return (
        parseInt(this.sourceMap[calcStr[0]]) +
        parseInt(this.sourceMap[calcStr[1]]) +
        ""
      );
    },

    // 请求服务
    requestData(showLoading) {
      let that = this;
      that.API.requestData({
        showLoading,
        method: "POST",
        subUrl: "matrix/matrixDetialPush",
        success(res) {
          if (res.data) {
            //  console.log("resMap:", res);
            let sourceMap = res.data;
            for (let key in sourceMap) {
              if (key !== "fczbmap" && key !== "fjmap") {
                sourceMap[key] += "";
              } else if (key === "fjmap") {
                sourceMap[key].forEach((pItem) => {
                  pItem.forEach((cItem) => {
                    // console.log('citemfjzt:',cItem.fjzt)
                    cItem.color = that.getColor(cItem.fjzt);
                    cItem.isShow = true;
                  });
                });
              }
            }

            that.sourceMap = sourceMap;
            // console.log('sourceMap:',that.sourceMap)
            if (that.fillCategory) {
              console.log("thatfillcategory:", that.fillCategory);
               console.log('fillFjzt:',this.fillFjzt)
              that.changeShow(that.fillCategory, that.fillFjzt, true);
            }
          } else {
            that.sourceMap = {};
          }
        },
      });
    },
    goDetails(item) {
      this.$router.push({
        path: `/monitor/windsite/info/${item.wpId}/${item.wtId}`,
      });
    },
  },

  created() {
    let that = this;
    that.$nextTick(() => {
      that.requestData(false);
      that.timmer = setInterval(() => {
        that.requestData(false);
      }, that.$store.state.websocketTimeSec);
    });
  },

  mounted() {},

  unmounted() {
    clearInterval(this.timmer);
    this.timmer = null;
  },
};
</script>

<style lang="less" scoped>
@panelHeight: 60px;
@titleHeight: 26px;

.light-matrix {
  // width: calc(100% - 1.111vh);
  height: calc(100vh - 7.222vh);
  display: flex;
  flex-direction: column;

  .panel {
    width: 100%;
    height: 80px;
    border: 1px solid @darkgray;
    position: relative;
    padding: 10px 20px;
    background-color: fade(@darkgray, 20%);

    .dot {
      width: 0.185vh;
      height: 0.185vh;
      border-radius: 50%;
      background-color: @write;
      position: absolute;

      &.left {
        left: 0.37vh;
      }

      &.right {
        right: 0.37vh;
      }

      &.top {
        top: 0.37vh;
      }

      &.bottom {
        bottom: 0.37vh;
      }
    }

    .page-header {
      display: flex;

      .header-info {
        display: flex;
        flex: 1 0 auto;
      }
    }

    .panel-item-gf {
      flex: 0 0 auto;
      margin-right: 16px;
      display: flex;
      height: @panelHeight;

      .panel-item-gf-left {
        width: @panelHeight;
        height: @panelHeight;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;

        .loop {
          position: absolute;
          width: 4.444vh;
          height: 4.444vh;
          border-radius: 50%;
          border: 0.093vh solid @darkgray;
          background-color: fade(@darkgray, 20);
          left: calc(50% - 2.222vh);
          top: calc(50% - 2.222vh);
        }
      }

      .panel-item-gf-right {
        color: @write;
        text-align: right;
        margin-left: 24px;

        .panel-item-gf-up {
          color: @gray;
          height: @panelHeight / 2;
          line-height: @panelHeight / 2;
          font-size: 14px;
        }

        .panel-item-gf-down {
          height: @panelHeight / 2;
          line-height: @panelHeight / 2;
          font-weight: 600;
          font-size: 16px;
        }
      }
    }

    .panel-item {
      width: 100%;
      height: @panelHeight;
      font-size: 12px;
      margin-left: 8px;

      .panel-item-left {
        display: flex;

        .panel-item-li {
          height: @panelHeight / 2;
          line-height: @panelHeight / 2;
          flex: 1 0 auto;
          padding: 0 1.111vh;
          align-items: center;
          font-size: 14px;

          .svg-icon {
            margin-left: auto;
          }

          &.value {
            text-align: right;
            flex: 0;
            font-size: 16px;
            color: #fff;
          }
        }
      }

      .panel-item-right {
        display: flex;
        flex-grow: 1;
        height: @panelHeight;

        .panel-item-ri {
          height: @panelHeight / 2;
          line-height: @panelHeight / 2;
          padding: 0 8px;
          flex: 1;

          &:first-child {
            border-right: 1px solid;
          }

          & > span {
            &:first-child {
              float: left;
              display: flex;
              align-items: center;

              i {
                margin-right: 4px;
              }
            }

            &:last-child {
              float: right;
              color: @write;
            }
          }
        }
      }

      &.green {
        background-color: fade(@green, 15%);
        color: @green;

        .panel-item-left {
          background-color: fade(@green, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @green;
            }
          }
        }
      }

      &.blue {
        background-color: fade(@darkBlue, 15%);
        color: @darkBlue;

        .panel-item-left {
          background-color: fade(@darkBlue, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @darkBlue;
            }
          }
        }
      }

      &.pink {
        background-color: fade(@pink, 15%);
        color: @pink;

        .panel-item-left {
          background-color: fade(@pink, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @pink;
            }
          }
        }
      }

      &.red {
        background-color: fade(@red, 15%);
        color: @red;

        .panel-item-left {
          background-color: fade(@red, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @red;
            }
          }
        }
      }

      &.orange {
        background-color: fade(@orange, 15%);
        color: @orange;

        .panel-item-left {
          background-color: fade(@orange, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @orange;
            }
          }
        }
      }

      &.gray {
        background-color: fade(@darkgray, 15%);
        color: @gray;

        .panel-item-left {
          background-color: fade(@darkgray, 15%);
        }

        .panel-item-right {
          .panel-item-ri {
            &:first-child {
              border-color: @darkgray;
            }
          }
        }
      }

      &.write {
        background-color: fade(@write, 15%);
        color: @write;

        .panel-item-left {
          cursor: pointer;
          background-color: fade(@write, 15%);
        }

        .panel-item-right {
          cursor: pointer;
          .panel-item-ri {
            &:first-child {
              border-color: @write;
            }
          }
        }
      }
    }
  }

  .panel-box {
    margin-top: 1.481vh;
    flex-grow: 1;

    .panel-title {
      width: 100%;
      line-height: @titleHeight;
      background-color: fade(@darkgray, 40%);

      .panel-title-name {
        font-size: 12px;
        color: @green;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        padding-left: 16px;

        i {
          margin-right: 0.7407vh;
        }

        .sub-title-item {
          display: flex;
          flex: 1;

          .sub-title {
            flex: 0 0 auto;
            color: @gray;
            font-size: 12px;
            margin: 0 0.556vh 0 1.481vh;
          }

          .sub-count {
            flex: 1 0 auto;
            font-size: 14px;
            font-family: "Bicubik";
            font-weight: 500;

            &.write {
              color: @write;
            }

            &.green {
              color: @green;
            }

            &.blue {
              color: @darkBlue;
            }

            &.pink {
              color: @pink;
            }

            &.red {
              color: @red;
            }

            &.orange {
              color: @orange;
            }

            &.gray {
              color: @gray;
            }
          }
        }
      }
    }

    .panel-body {
      background-color: fade(@darkgray, 20%);
      padding: 0.741vh;
      margin-bottom: 1.481vh;
      width: 100%;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: space-between;

      .blank {
        margin-right: 4px;
        flex: 1 0 118px;
      }

      .card {
        cursor: pointer;
        margin-right: 4px;
        margin-top: 4px;
        flex: 1 0 118px;
      }

      .card {
        border: 1px solid;

        .card-panel {
          display: flex;
          flex-grow: row;

          .card-left {
            width: 40px;
            border-right: 0.093vh dotted;
            display: flex;
            flex-direction: column;

            .tag {
              color: @write;
              font-size: 12px;
              width: 100%;
              text-align: center;
              line-height: 1.5;
            }

            .icon {
              flex-grow: 1;
              display: flex;
              align-items: center;
              justify-content: center;

              i {
                font-size: 14px;
              }
            }
          }

          .card-right {
            margin-top: 2px;

            .num {
              width: 72px;
              font-size: 12px;
              text-align: left;
              padding-right: 0.278vh;
              display: flex;
              align-items: center;
              justify-content: space-around;

              i {
                margin: 0 2px 0 4px;
              }
              span {
                flex: 1;
              }
            }
          }
        }

        .card-percent {
          height: 0.926vh;
          padding: 0.093vh 0.185vh;
          position: relative;
          border-top: 1px solid;
          background-color: transparent;

          .percent {
            height: 0.648vh;
            background-color: @green;
            position: absolute;
            left: 0.185vh;
            top: 0.093vh;
          }
        }

        &.blue {
          border-color: @darkBlue;
          background-color: fade(@darkBlue, 15%);

          .card-panel {
            .card-left {
              border-color: @darkBlue;

              .tag {
                background-color: fade(@darkBlue, 30);
              }

              .icon {
                svg {
                  use {
                    fill: @write;
                  }
                }
              }
            }

            .card-right {
              .num {
                color: @darkBlue;
              }
            }
          }

          .card-percent {
            border-color: @darkBlue;
          }
        }

        &.pink {
          border-color: @pink;
          background-color: fade(@pink, 15%);

          .card-panel {
            .card-left {
              border-color: @pink;

              .tag {
                background-color: fade(@pink, 30);
              }

              .icon {
                svg {
                  use {
                    fill: @write;
                  }
                }
              }
            }

            .card-right {
              .num {
                color: @pink;
              }
            }
          }

          .card-percent {
            border-color: @pink;
          }
        }

        &.orange {
          border-color: @orange;
          background-color: fade(@orange, 15%);

          .card-panel {
            .card-left {
              border-color: @orange;

              .tag {
                background-color: fade(@orange, 30);
              }

              .icon {
                use {
                  fill: @write;
                }
              }
            }

            .card-right {
              .num {
                color: @orange;
              }
            }
          }

          .card-percent {
            border-color: @orange;
          }
        }

        &.green {
          border-color: @green;
          background-color: fade(@green, 15%);

          .card-panel {
            .card-left {
              border-color: @green;

              .tag {
                background-color: fade(@green, 30);
              }

              .icon {
                use {
                  fill: @write;
                }
              }
            }

            .card-right {
              .num {
                color: @green;
              }
            }
          }

          .card-percent {
            border-color: @green;
          }
        }

        &.gray {
          border-color: @darkgray;
          background-color: fade(@darkgray, 15%);

          .card-panel {
            .card-left {
              border-color: @darkgray;

              .tag {
                background-color: fade(@darkgray, 30%);
              }

              .icon {
                use {
                  fill: @black;
                }
              }
            }

            .card-right {
              .num {
                color: @gray;
              }
            }
          }

          .card-percent {
            border-color: @darkgray;
          }
        }

        &.red {
          border-color: @red;

          .card-panel {
            background-color: @red;

            .card-left {
              border-color: @darkRed;

              .tag {
                background-color: fade(@darkRed, 50%);
              }

              .icon {
                use {
                  fill: @write;
                }
              }
            }

            .card-right {
              .num {
                color: @write;
              }
            }
          }

          .card-percent {
            border-color: @red;
          }
        }

        &.black {
          border-color: @write;

          .card-panel {
            background-color: @write;

            .card-left {
              border-color: @black;

              .tag {
                background-color: fade(@darkgray, 80%);
              }

              .icon {
                .svg-icon {
                  svg {
                    use {
                      fill: @black;
                    }
                  }
                }
              }
            }

            .card-right {
              .num {
                color: @black;
              }
            }
          }
        }
      }
    }
  }
  .curStyle {
    cursor: pointer;
  }
}
</style>
