<template>
  <div>
    <MapDetail ref="map" :markersData="originData" @choose="getDetailData">
      <el-card body-style="padding:0px;" slot="leftTop1">
        <el-button type="text" size="mini" style="margin-left: 10px" icon="el-icon-back"
          @click="switchStat">返回至站点分布</el-button>
      </el-card>

      <el-card slot="leftTop">
        <el-row type="flex" justify="space-between">
          <span style="font-size: 18px"><b>{{ info.siteName }}</b></span>
        </el-row>

        <el-divider></el-divider>
        <el-descriptions :column="1" size="small">
          <el-descriptions-item label="站点编码">{{
            info.siteCode
          }}</el-descriptions-item>
          <el-descriptions-item label="站点地址">{{
            info.address
          }}</el-descriptions-item>
          <el-descriptions-item label="联系人" :labelStyle="{ 'text-align': 'right', width: '50px' }">{{ info.leadingOfficial
          }}</el-descriptions-item>
          <el-descriptions-item label="联系电话">
            {{ info.leadingOfficialTelephone }}
          </el-descriptions-item>
          <el-descriptions-item label="创建时间">{{
            formatterDate(info.createTime)
          }}</el-descriptions-item>
        </el-descriptions>

        <el-divider></el-divider>
        <el-row type="flex" justify="space-around">
          <el-col :span="4">
            <span style="font-size: 13px"><b>{{ info.deviceTotal }}</b></span><br />
            <span style="font-size: 12px">设备总数</span>
          </el-col>
          <el-col :span="4">
            <span style="font-size: 13px"><b style="color: green">{{ info.onlineCount }}</b></span><br />
            <span style="font-size: 12px">在线</span>
          </el-col>
          <el-col :span="4">
            <span style="font-size: 13px"><b style="color: red">{{ info.offlineCount }}</b></span><br />
            <span style="font-size: 12px">离线</span>
          </el-col>
          <el-col :span="4">
            <span style="font-size: 13px"><b style="color: orange">{{ info.stopCount }}</b></span><br />
            <span style="font-size: 12px">停用</span>
          </el-col>
          <el-col :span="4">
            <span style="font-size: 13px"><b style="color: grey">{{ info.unActiveCount }}</b></span><br />
            <span style="font-size: 12px">待激活</span>
          </el-col>
        </el-row>

        <el-divider></el-divider>

        <el-row type="flex" justify="space-around" style="margin-top: 10px">
          <el-button type="primary" class="addclass" @click="switchList" size="mini">列表模式</el-button>

          <el-button type="primary" class="addclass" size="mini" icon="el-icon-edit-outline">编辑站点</el-button>

          <el-button type="primary" class="addclass" size="mini" @click="addDevice" icon="el-icon-plus">添加设备</el-button>
        </el-row>
      </el-card>

      <el-col slot="rightTop" style="box-shadow: 12px 2px 12px 12px rgba(0, 0, 0, 0.1)">
        <el-row type="flex" justify="space-around">
          <el-select style="padding: 5px" size="mini" @change="deviceStatuschange" v-model="deviceStatus"
            placeholder="请选择设备状态">
            <el-option v-for="($label, $value) in tableData.dict.deviceStatus" :key="$value" :label="$label"
              :value="$value"></el-option>
          </el-select>
          <span> </span>
        </el-row>

        <el-row>
          <el-input size="mini" v-model="deviceName" @change="deviceNameChange" style="padding: 5px"
            placeholder="请输入设备编码"></el-input>
        </el-row>

        <el-divider></el-divider>

        <el-row v-for="(label, value, index) in tableData.dict.productId" :key="index" type="flex"
          style="border-bottom: 1px solid #e8eaec; padding: 10px" justify="space-between">
          <!-- <img src="../../assets/images/排队机.png" alt="" /> -->
          <img :src="require(`../../assets/images/${label}.png`)" />
          <!-- <i style="font-size: 20px" class="el-icon-location-information"></i> -->
          <span style="font-size: 12px">{{ label }}</span>
          <el-switch v-model="items[index]" :active-value="value" :inactive-value="0" @change="switchChange"
            active-color="#2882ED" inactive-color="#8C8B8E">
          </el-switch>
        </el-row>
      </el-col>
    </MapDetail>

    <drawer-show ref="drawerform" @ok="getData" />
    <drawer-view ref="drawerViewform" @ok="getData" />
  </div>
</template>

<script>
/** 表单弹出框模式需引入 */
import drawerView from "../device/drawerview";
import drawerShow from "../device/drawershow";
import table from "@/assets/mixins/table";
import { formatterDate } from "@/assets/utils/index";

export default {
  name: "DeviceMap",
  components: { drawerShow, drawerView },
  mixins: [table],
  created() {
    let { siteId } = this.$route.query;
    let { sitestatId } = this.$route.query;

    this.$get("/sitestat/info", { id: sitestatId })
      .then(({ data }) => {
        this.info = data;
        this.$nextTick(() => {
          this.$refs.map.relocate(this.info);
        });
      })
      .catch((error) => {
        console.error(error);
        this.$message.error(error.message);
      });

    //this.info = this.$route.query;
    this.query = { sitestatId: sitestatId, siteId, siteId };
  },
  methods: {
    formatterDate,
    deviceStatuschange(val) {
      this.query = Object.assign({}, this.query, { deviceStatus: val });
      this.getData();
    },
    deviceNameChange(val) {
      val = val.trim();
      if (val.charAt(0) != "%") {
        val = "%" + val;
      }
      if (val.charAt(val.length - 1) != "%") {
        val = val + "%";
      }

      this.query = Object.assign({}, this.query, { deviceName: val });
      this.getData();
    },
    addDevice() {
      let row = {};
      row.siteId = this.info.siteId;
      row.siteName = this.info.siteName;
      row.siteCode = this.info.siteCode;
      this.$refs.drawerform.add(row);
    },
    switchList() {
      //进入设备列表页面
      this.$router.push({
        path: "/device/list",
        query: {
          siteId: this.info.siteId,
          sitestatId: this.info.id,
        },
      });
    },
    switchStat() {
      this.$router.push({
        path: "/sitestat/maplist",
      });
    },
    switchChange(val) {
      let arr = [];
      for (let item in this.items) {
        if (this.items[item] && this.items[item] != 0)
          arr.push(this.items[item]);
      }
      if (arr.length > 0) {
        this.query = Object.assign({}, this.query, { productIdList: arr });
      }

      this.getData();
    },
    afterRender(data) {
      if (!this.sync) {
        this.$nextTick(() => {
          var count = 0;
          for (var i in data.dict.productId) {
            this.items[count] = i + "";
            count++;
          }
          this.sync = true;
        });
      }
      //刷新地图markers
      this.$refs.map.refresh(data.data);
    },
    /** 重写新增方法 */
    toAdd(row) {
      //this.$refs.dialogform.add(row);
      row.siteId = this.siteId;
      row.siteName = this.siteName;
      row.siteCode = this.siteCode;

      this.$refs.drawerform.add(row);
    },
    /** 重写编辑方法 */
    toEdit(row) {
      row.siteName = this.siteName;
      row.siteCode = this.siteCode;
      this.$refs.drawerform.edit(row);
    },
    /** 重写查看方法 */
    toView(row) {
      this.$refs.drawerViewform.view(row);
    },
  },
  data() {
    return {
      originData: [],
      value1: 1,
      sync: false,
      // 用户导入参数
      upload: {
        // 是否显示弹出层(设备导入)
        open: false,
        // 弹出层标题(设备导入)
        title: "导入设备数据",
        // 是否禁用上传
        isUploading: false,
        // 是否更新已经存在的数据
        updateSupport: 0,
        // 上传的地址
        url: "/m/device/importData",
      },
      // 站点树
      pageInfo: {
        list: "/device/maplist",
      },

      deviceStatus: null,
      deviceName: null,

      items: {
        item0: "",
        item1: "",
        item2: "",
        item3: "",
        item4: "",
        item5: "",
        item6: "",
        item7: "",
        item8: "",
        item9: "",
        item10: "",
        item11: "",
        item12: "",
      },

      info: {},
      options: [
        {
          value: "选项1",
          label: "黄金糕",
        },
        {
          value: "选项2",
          label: "双皮奶",
        },
        {
          value: "选项3",
          label: "蚵仔煎",
        },
        {
          value: "选项4",
          label: "龙须面",
        },
        {
          value: "选项5",
          label: "北京烤鸭",
        },
      ],
      value: "",

      isExport: false,
      siteId: null,
      siteName: "",
      siteCode: "",

      updateSiteId: null,
      updateSiteName: "",
      updateSiteCode: "",
    };
  },
};
</script>
<style lang="less" scoped>
.el-divider--horizontal {
  margin: 5, 0, 5, 0;
  background: 0 0;
  border-top: 1px solid #e8eaec;
}

.back {
  width: 200px;
  top: 20px;
  left: 34px;
  position: absolute;
  float: left;
}

.el-row {
  margin-bottom: 5px;
  margin-top: 5px;

  &:last-child {
    margin: 0;
  }
}
</style>

<style>
.location0 {
  font-size: 18px;
  color: red;
}

.location1 {
  font-size: 18px;
  color: blueviolet;
}

.location2 {
  font-size: 18px;
  color: aqua;
}

.location3 {
  font-size: 18px;
  color: coral;
}

.location4 {
  font-size: 18px;
  color: slateblue;
}

.location5 {
  font-size: 18px;
  color: purple;
}

.location6 {
  font-size: 18px;
  color: darkgreen;
}

.location7 {
  font-size: 18px;
  color: magenta;
}

.location8 {
  font-size: 18px;
  color: goldenrod;
}

.location9 {
  font-size: 18px;
  color: orchid;
}

.location10 {
  font-size: 18px;
  color: navy;
}

.location11 {
  font-size: 18px;
  color: darkred;
}

.location12 {
  font-size: 18px;
  color: forestgreen;
}

.location13 {
  font-size: 18px;
  color: cyan;
}

.location14 {
  font-size: 18px;
  color: deepskyblue;
}
</style>