<!--
 * @FilePath: \screenFront\src\views\Offsite\child\childContent\center.vue
 * @Author: 王路平
 * @文件版本: V1.0.0
 * @Date: 2023-04-12 08:46:57
 * @Description: 
 * 
 * 版权信息         : 2023 by ${再登软件}, All Rights Reserved.
-->
<template>
  <div class="content-center">
    <el-row>
      <el-col>
        <!-- <offsitegateway
            ref="offsitegatewayref"
            :title="'东莞-物联网关状态'"
          ></offsitegateway> -->
        <div style="display: flex">
          <topTitle ref="topTitleRef" :title="t('messages.DevPreviewChart')"></topTitle>
          <topTitle ref="topTitleRef2" :title="t('messages.DevPreviewChart')"></topTitle>
          <topTitle ref="topTitleRef3" :title="t('messages.DevPreviewChart')"></topTitle>
        </div>
      </el-col>
      <el-col>
        <div class="tableBoxDiv">
          <table1
          :title="tabledata.title"
          :data="tabledata"
          ref="tableref"
        ></table1>
        </div>

      </el-col>
    </el-row>
  </div>
</template>

<script setup lang="ts">
import { onMounted, reactive, ref, watch } from "vue";
import { calcWH } from "@/components/ts/selfAdaption";
import offsitegateway from "./chart/offsitegateway.vue";
import topTitle from "./chart/topTitle.vue";
import table1 from "@/components/assembly/RotationTable.vue";
import { useI18n } from 'vue-i18n'
let {t} = useI18n();
let props = defineProps<{
  width: number;
  height: number;
}>();

let topTitleRef = ref();
let topTitleRef2 = ref();
let topTitleRef3 = ref();
let tableref = ref();
let offsitegatewayref = ref();
let data1 = [
  {
    title: t('messages.offline'),
    num: 0,
  },
  {
    title: t('messages.onLine'),
    num: 0,
  },
];
let tabledata = reactive({
  title: t('messages.DevList'),
  data: {
    header: [
    t('messages.SerialNum'),
    t('messages.DevName'),
    t('messages.model'),
      t('messages.RackNum'),
      t('messages.type'),
      t('messages.Ex_factoryDate'),
      t('messages.DevStatus'),
      // t('messages.Devsignal'),
    ],
    data: [],
    headerBGC: "#3469F3",
    oddRowBGC: "#100C2A",
    evenRowBGC: "#100C2A",
    rowNum: 10,
    waitTime: 3000,
    carousel: "page",
    hoverPause: true,
    columnWidth:null,
    align: [
      "center",
      "center",
      "center",
      "center",
      "center",
      "center",
      "center",
      "center",
      // "center",
    ],
  },
});
const listWH = reactive({
  height: 0,
  width: 0,
});
watch(
  () => props,
  (newVal, oldVal) => {
    //监听父组件宽高变化，随时重置本组件尺寸
    reset(newVal);
  },
  { immediate: true, deep: true, flush: "post" }
);

//---------------------------

function reset(val: any) {
  //宽高为0时跳出该方法
  if (!val.width && !val.height) return;
  box(val.width, val.height);
}

const box = (width: any, height: any) => {
  let a = calcWH(height, width, 4, 3, 0);

  //   a.oHeight=a.oHeight
  //修改高度

  topTitleRef.value.setchartWH(a.oWidth, a.oHeight);
  topTitleRef2.value.setchartWH(a.oWidth, a.oHeight);
  topTitleRef3.value.setchartWH(a.oWidth, a.oHeight);
  tableref.value.setchartWH(a.oWidth * 3, a.oHeight * 3);
  listWH.width=a.oWidth * 3
  // offsitegatewayref.value.setchartWH(a.oWidth, a.oHeight);
};
function changedevlist(val: any) {
  let list = [];
  console.log(listWH.width);
  
  val.forEach((res, index) => {
    list.push([
      index + 1,
      res.name,
      res.model,
      res.label,
      res.deviceType,
      res.realityDate,
      JSON.parse(res.deviceStatus)
        ? `<span style="color:#20aec5;">${t('messages.onLine')}</span>`
        : `<span style="color:rgb(228, 57, 97);">${t('messages.offline')}</span>`,
      // "",
    ]);
    
  });
  if(list.length<10){
    let listlengthData=10-list.length
    for(let i=0;i<listlengthData;i++){
      list.push([
      '',
      '',
      '',
      '',
      '',
      "",
      // JSON.parse(res.deviceStatus)
      //   ? '<span style="color:#9fe6b8;">在线</span>'
      //   : "<span style='color:#fb7293;'>离线</span>",
      "",
      "",
    ])
    }
  }
  tabledata.data.data = list;
  tabledata.data.rowNum = 10;
  tabledata.data.waitTime = 3000;
  // listWH.width?tabledata.data.columnWidth=[60,240,110,110,60,100,100,100]:''
  listWH.width?tabledata.data.columnWidth=[listWH.width*0.1,listWH.width*0.2,listWH.width*0.15,listWH.width*0.15,listWH.width*0.1,listWH.width*0.15,listWH.width*0.15,]:''
  tableref.value.changeData(tabledata.data);
}
function setDataList(val: any) {
  console.log(val);
  let tipdata = { ison: 0, isall: 0, isoff: 0 };
  //计算设备总量
  val.devnum.forEach((res) => {
    tipdata.isall += res.counts;
  });
  //获取在线离线数量
  val.statusnum.forEach((res) => {
    if (JSON.parse(res.name)) {
      tipdata.ison = res.counts;
    } else {
      tipdata.isoff = res.counts;
    }
  });
  //设置页面数据
  topTitleRef.value.setData({ title: t('messages.OnlineNum'), num: tipdata.ison });
  topTitleRef2.value.setData({ title: t('messages.TOTAL'), num: tipdata.isall });
  topTitleRef3.value.setData({ title: t('messages.OffNum'), num: tipdata.isoff ,color:'rgb(228, 57, 97)' });
  changedevlist(val.citylist);
}
onMounted(() => {
  // offsitegatewayref.value.setData(data1);
  // devImageRef.value.setData(data2);
});
defineExpose({
  setDataList,
});
</script>

<style scoped>
.content-center {
  width: 100%;
}
.tableBoxDiv :deep(.ceil) {
  font-size: 1.2rem;
}
.tableBoxDiv :deep(.header-item) {
  font-size: 1.2rem;
}
</style>
