<template>
  <el-dialog
    class="setTimeDialog"
    title="拍照时间表设置"
    :visible.sync="isShow"
    :close-on-click-modal="false"
    width="1000px"
    @close="handleclose"
  >
    <div class="zzinfo">装置编号：{{ areaData.cmdid }}</div>
    <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
      <el-tab-pane label="拍照时间表查询" name="1">
        <div class="searchTime">
          <div class="channelBox">
            <span>选择通道：</span>
            <el-select
              v-model="selectChannel"
              placeholder="请选择"
              @change="changeChannel"
            >
              <el-option
                v-for="item in channelList"
                :key="item.channelid"
                :label="
                  item.alias !== null && item.alias !== ''
                    ? item.alias
                    : item.channelname
                "
                :value="item.channelid"
              >
                {{
                  item.alias !== null && item.alias !== ""
                    ? item.alias
                    : item.channelname
                }}
              </el-option>
            </el-select>
          </div>
          <div class="timeContain">
            <div class="timeLeft" v-loading="baseTimeLoading">
              <h3>
                时间表({{ baseTimeList.length }})
                <span v-if="baseTimeList.length !== 0 && offsetNumTime !== null"
                  >偏移量（{{ offsetNumTime }}分钟）</span
                >
              </h3>
              <div class="tagsBox" v-if="baseTimeList.length !== 0">
                <el-tag v-for="(item, index) in baseTimeList" :key="index"
                  >{{ $moment(item).format("HH:mm") }}
                </el-tag>
              </div>
              <div class="nodata" v-else>
                <el-empty description="暂无数据"></el-empty>
              </div>
            </div>
            <div class="timeRight" v-loading="deviceTimeLoading">
              <h3>
                装置时间表({{ deviceTimeList.length }})
                <span v-if="deviceTimeList.length !== 0"
                  ><el-button type="text" size="mini" @click="deviceTimeClick"
                    ><i class="el-icon-refresh"></i>刷新装置时间表</el-button
                  ></span
                >
                <el-button v-else type="primary" @click="deviceTimeClick"
                  >装置时间表</el-button
                >
              </h3>
              <div class="tagsBox" v-if="deviceTimeList.length !== 0">
                <el-tag v-for="(item, index) in deviceTimeList" :key="index">{{
                  $moment(item).format("HH:mm")
                }}</el-tag>
              </div>
              <div class="nodata" v-else>
                <el-empty description="暂无数据"> </el-empty>
              </div>
            </div>
          </div>
        </div>
      </el-tab-pane>
      <el-tab-pane label="拍照时间表下发" name="2">
        <div class="setTimerule">
          <el-table
            ref="multipleTable"
            :data="rulesListNew"
            stripe
            tooltip-effect="dark"
            style="width: 100%"
            height="calc(100% - 40px)"
            v-loading="ruleLoading"
          >
            <!-- <el-table-column type="index" width="55"> </el-table-column>
          <el-table-column type="selection" width="55"> </el-table-column> -->
            <template slot="empty">
              <el-empty :image-size="160" description="暂无数据"></el-empty>
            </template>
            <el-table-column label="名称" show-overflow-tooltip>
              <template slot-scope="scope">{{ scope.row.name }}</template>
            </el-table-column>
            <el-table-column label="时间表规则">
              <template slot-scope="scope">
                <p
                  class="timeGz"
                  v-for="(val, index) in scope.row.listTime"
                  :key="index"
                >
                  <span>{{ val.startTime }} </span>

                  ~
                  <span>{{ val.endTime }}</span>
                  间隔：<b>{{ val.timeSpan }}分钟</b>
                </p>
              </template>
            </el-table-column>

            <el-table-column
              prop="remark"
              label="备注"
              show-overflow-tooltip
            ></el-table-column>
            <el-table-column fixed="right" label="操作" width="140">
              <template slot-scope="scope">
                <el-button
                  type="primary"
                  @click.native.stop="handleSet(scope.row)"
                  >设置</el-button
                >
              </template>
            </el-table-column>
          </el-table>
          <div class="pageNation">
            <el-pagination
              @current-change="handleCurrentChange"
              @size-change="handleSizeChange"
              :current-page="page"
              :page-size="pageSize"
              layout="sizes, prev, pager, next, jumper,total"
              :total="total"
              background
            >
            </el-pagination>
          </div>
        </div>
        <el-dialog
          class="setRoadDialog"
          title="设置"
          :visible.sync="isShowset"
          :close-on-click-modal="false"
          width="660px"
          append-to-body
          @close="closebtn"
        >
          <div class="setTimeTd">
            <div class="ruleinfo">
              <h3>装置信息</h3>
              <!-- <el-descriptions title="" :column="3" border>
                <el-descriptions-item label="装置名称">{{
                  areaData.name
                }}</el-descriptions-item>
                <el-descriptions-item label="装置编号">
                  {{ areaData.cmdid }}</el-descriptions-item
                >
              </el-descriptions> -->
              <p>
                <span>{{ infoData.dyname }}</span> /
                <span>{{ infoData.bsManufacturer }}</span> /
                <span>{{ infoData.xlname }}</span> /
                <span>{{ infoData.zzcmid }}</span>
              </p>
            </div>
            <div class="ruleinfo">
              <h3>时间表规则</h3>
              <div class="ruleBox">
                <span class="nameinfo"
                  >时间表名称：{{ currentTimeRule.name }}</span
                >
                <div class="listGz">
                  <p
                    class="timeGz"
                    v-for="(val, index) in currentTimeRule.listTime"
                    :key="index"
                  >
                    <span>{{ val.startTime }} </span>

                    ~
                    <span>{{ val.endTime }}</span>
                    间隔：<b>{{ val.timeSpan }}分钟</b>
                  </p>
                </div>
              </div>
            </div>
            <div class="ruleinfo">
              <div class="math">
                偏移时间(分)：
                <el-input-number
                  v-model="setNum"
                  :min="0"
                  :max="minTimeSpan"
                ></el-input-number>
                {{ minTimeSpan }}
              </div>
            </div>
            <div class="ruleinfo">
              <h3>选择通道</h3>
              <div class="checkBox">
                <el-radio-group v-model="timeChannel">
                  <el-radio
                    :label="item.channelid"
                    border
                    v-for="item in timeChannelList"
                    :key="item.channelid"
                    >{{
                      item.alias !== null && item.alias !== ""
                        ? item.alias
                        : item.channelname
                    }}</el-radio
                  >
                </el-radio-group>
              </div>
            </div>
            <p class="fail" v-show="failedFlag">时间表下发失败,请重新下发！</p>
          </div>
          <div slot="footer" class="dialog-footer">
            <el-button @click="closebtn">取 消</el-button>
            <el-button type="primary" @click="submitForm" :loading="sureloading"
              >确 定</el-button
            >
          </div>
        </el-dialog>
      </el-tab-pane>
    </el-tabs>
  </el-dialog>
</template>
<script>
import {
  getChannelListJoggle,
  getSchedulenr,
  getScheduleRulelListJoggle,
  getScheduleRulelAccessList,
  setTermCamera,
  getTermCameraRequest,
  getTermStatus,
  setScheduleRulel,
} from "@/utils/api/index";
export default {
  props: {
    title: String,
  },
  data() {
    return {
      isShow: false,
      activeName: "1", //选项卡
      infoData: {},
      selectChannel: "", //选中的通道
      channelList: [], //通道选项
      baseTimeList: [], //数据库时间表
      deviceTimeList: [], //装置时间表
      baseTimeLoading: false,
      deviceTimeLoading: false,
      deviceTimer: null, //装置循环获取
      deviceNum: 1, //循环次数
      offsetTime: 0, //偏移量
      minTimeSpan: "",
      page: 1, // 当前页数
      pageSize: 20, // 每页数量
      total: 0, //总条数
      rulesList: [], //规则列表
      rulesListNew: [], //改成自己想要的数据结构
      ruleLoading: false, //时间表规则列表loading
      isShowset: false, //下发时间表弹窗
      currentTimeRule: [],
      setNum: 0, //偏移时间
      timeChannel: "",
      timeChannelList: [], //下发时间表通道
      sureloading: false, //点击确定loading

      offsetNumTime: null,
      failedFlag: false,
    };
  },
  computed: {
    areaData() {
      return this.$store.state.currentData;
    },
  },
  mounted() {},
  methods: {
    handleClick(tab, event) {
      console.log(tab, event);
      if (tab.name == 1) {
      
        this.selectChannel = 1;
        this.getDataBaseTime(this.areaData.id, this.selectChannel);
      }
      //下发的时候执行获取列表
      if (tab.name == 2) {
        this.deviceTimeList = [];
        this.getruleList();
      }
      this.deviceTimeLoading = false;
      window.clearInterval(this.deviceTimer);
      this.deviceTimer = null;
      this.deviceNum = 1;
    },
    //获取通道
    getChannelSelect() {
      getChannelListJoggle({ termid: this.areaData.id })
        .then((res) => {
          console.log("wwww",Number(localStorage.getItem("channelId")))
          this.channelList = res.data.list;
          this.timeChannelList = res.data.list;
          if(Number(localStorage.getItem("channelId"))==1||Number(localStorage.getItem("channelId"))==-1||Number(localStorage.getItem("channelId"))==0){
            this.timeChannel = this.channelList[0].channelid;
          this.selectChannel = this.channelList[0].channelid;
          }else{
            this.timeChannel = Number(localStorage.getItem("channelId")); 
            this.selectChannel = Number(localStorage.getItem("channelId"))
          }
          // this.timeChannel = this.channelList[0].channelid;
          // this.selectChannel = this.channelList[0].channelid;
          console.log(this.channelList);
          this.changeChannel();
        })
        .catch((err) => {});
    },
    //修改通道
    changeChannel() {
      console.log(this.selectChannel);
      this.getDataBaseTime(this.areaData.id, this.selectChannel);
      this.baseTimeLoading = true;
      this.deviceTimeList = [];
    },
    //获取数据库时间表数据
    getDataBaseTime(id, channelId) {
      getSchedulenr({
        channelid: channelId,
        terminalid: id,
      })
        .then((res) => {
          console.log(res);
          let val = res.data.list;
          this.offsetNumTime = res.data.offset;
          if (
            this.areaData.protocol == "65283" ||
            this.areaData.protocol == "65285" ||
            this.areaData.protocol == "65290"
          ) {
            //湖南规约
            console.log("湖南");
            console.log(val);
            var hnarr = [];
            for (var i = 0; i < val.length; i++) {
              if (i % 3 == 0) {
                var hnobj = {};
                hnobj.span = val[i].hour * 60 + val[i].minute;
                console.log("时间间隔");
              } else if (i % 3 == 1) {
                console.log("开始时间");
                console.log("a");
                hnobj.startTime = this.$moment(val[i]).format("HH:mm");
              } else if (i % 3 == 2) {
                console.log("结束时间");
                hnobj.endTime = this.$moment(val[i]).format("HH:mm");
                hnarr.push(hnobj);
              }
            }
            console.log("222222222222222222");
            console.log(hnarr);
            console.log("22222222222222222222222");
            let dayArr = [];
            //根据开始时间结束时间生产数组
            for (let k = 0; k < hnarr.length; k++) {
              console.log(hnarr[k].startTime);
              console.log(hnarr[k].endTime);
              console.log(hnarr[k].span);
              let Stime = this.$moment(hnarr[k].startTime, "HH:mm").format(
                "YYYY-MM-DD HH:mm:ss"
              );

              let Etime = this.$moment(hnarr[k].endTime, "HH:mm").format(
                "YYYY-MM-DD HH:mm:ss"
              );
              let spanTime = hnarr[k].span;

              while (
                this.$moment(Stime).isBefore(this.$moment(Etime)) ||
                this.$moment(Stime).isSame(this.$moment(Etime))
              ) {
                dayArr.push(Stime);
                Stime = this.$moment(Stime)
                  .add(spanTime, "minute")
                  .format("YYYY-MM-DD HH:mm:ss");
              }
              // // 将结束日期的天放进数组
              console.log(dayArr);
            }
            this.baseTimeList = [...new Set(dayArr)];
          } else {
            //其他规约
            this.baseTimeList = res.data.list;
          }
          this.baseTimeLoading = false;
        })
        .catch((err) => {});
    },
    //获取装置的时间表
    deviceTimeClick() {
      console.log("点击了获取装置时间表");
      if (this.areaData.onlinestatus === 1) {
        this.deviceTimeLoading = true;
        let params = [
          {
            name: "act",
            value: "schedule",
          },
          {
            name: "flag",
            value: 0,
          },
          {
            name: "channel",
            value: this.selectChannel,
          },
        ];
        this.setTermFn(params);
      } else {
        this.$message({
          duration: 1500,
          showClose: true,
          message: "装置下线，发送指令失败",
          type: "error",
        });
      }
    },
    //装置获取拍照时间表和下发公用接口
    setTermFn(dataParams) {
      console.log("点击了统一的接口", dataParams);
      setTermCamera({
        termId: this.areaData.id,
        list: dataParams,
      })
        .then((res) => {
          console.log(res);
          this.requestid = res.data.requestId;
          clearInterval(this.timer);
          this.deviceTimer = window.setInterval(() => {
            this.getinfo();
            this.deviceNum++;
            console.log(this.deviceNum, this.deviceNum * 1000);
          }, 1000 * this.deviceNum);
        })
        .catch((err) => {});
    },
    getinfo() {
      getTermCameraRequest({ requestid: this.requestid })
        .then((res) => {
          if (res.data.success == 1) {
            this.deviceTimeLoading = false;
            window.clearInterval(this.deviceTimer);
            this.deviceTimer = null;
            this.deviceNum = 1;
            console.log(JSON.parse(res.data.data));
            //this.deviceTimeList = JSON.parse(res.data.data).groupData;
            //this.processingData(JSON.parse(res.data.data).groupData); //执行数据转化
            this.processingData(JSON.parse(res.data.data).groupData); //执行数据转化
            console.log(this.deviceTimeList);
            this.$message({
              duration: 1500,
              showClose: true,
              message: "装置时间表已更新",
              type: "success",
            });
          } else if (this.deviceNum > 9) {
            this.deviceTimeLoading = false;

            window.clearInterval(this.deviceTimer);
            this.deviceTimer = null;
            this.deviceNum = 1;
            this.$message({
              duration: 1500,
              showClose: true,
              message: "查询失败",
              type: "error",
            });
          }
        })
        .catch((err) => {});
    },
    //获取时间表规则列表
    getruleList() {
      this.ruleLoading = true;
      getScheduleRulelListJoggle({
        pageindex: this.page,
        pagesize: this.pageSize,
      })
        .then((res) => {
          console.log(res);
          this.rulesList = res.data.list;
          this.total = res.data.total;
          this.rulesListNew = [];
          this.changeListData(this.rulesList);
          this.ruleLoading = false;
        })
        .catch((err) => {});
    },
    //时间表规则数据转化
    changeListData(data) {
      //循环数据
      for (let i = 0; i < data.length; i++) {
        console.log(data[i]);
        var ruleArr = [];
        //循环规则
        for (let k = 0; k < data[i].list.length; k++) {
          if (k % 3 == 0) {
            //定义一个空对象
            var ruleObj = {};

            ruleObj.timeSpan =
              data[i].list[k].hour * 60 + data[i].list[k].minute;
            console.log("时间间隔", ruleObj.timeSpan);
          } else if (k % 3 == 1) {
            //开始时间
            ruleObj.startTime = this.$moment(data[i].list[k]).format("HH:mm");
            console.log(this.$moment(data[i].list[k]).format("HH:mm"));
          } else if (k % 3 == 2) {
            ruleObj.endTime = this.$moment(data[i].list[k]).format("HH:mm");
            console.log(this.$moment(data[i].list[k]).format("HH:mm"));
            ruleArr.push(ruleObj);
          }
        }
        this.rulesListNew.push({
          id: data[i].id,
          list: data[i].list,
          name: data[i].name,
          remark: data[i].remark,
          listTime: ruleArr,
        });
      }
      console.log(this.rulesListNew);
    },
    //根据规约处理时间表数据
    processingData(val) {
      console.log(this.areaData.protocol);
      if (
        this.areaData.protocol == "65283" ||
        this.areaData.protocol == "65285" ||
        this.areaData.protocol == "65290"
      ) {
        //湖南规约
        console.log("湖南");
        console.log(val);
        var hnarr = [];
        for (var i = 0; i < val.length; i++) {
          if (i % 3 == 0) {
            var hnobj = {};
            hnobj.span = val[i].hour * 60 + val[i].minute;
            console.log("时间间隔");
          } else if (i % 3 == 1) {
            console.log("开始时间");
            console.log("a");
            hnobj.startTime = this.$moment(val[i]).format("HH:mm");
          } else if (i % 3 == 2) {
            console.log("结束时间");
            hnobj.endTime = this.$moment(val[i]).format("HH:mm");
            hnarr.push(hnobj);
          }
        }
        console.log("222222222222222222");
        console.log(hnarr);
        console.log("22222222222222222222222");
        let dayArr = [];
        //根据开始时间结束时间生产数组
        for (let k = 0; k < hnarr.length; k++) {
          console.log(hnarr[k].startTime);
          console.log(hnarr[k].endTime);
          console.log(hnarr[k].span);
          let Stime = this.$moment(hnarr[k].startTime, "HH:mm").format(
            "YYYY-MM-DD HH:mm:ss"
          );

          let Etime = this.$moment(hnarr[k].endTime, "HH:mm").format(
            "YYYY-MM-DD HH:mm:ss"
          );
          let spanTime = hnarr[k].span;
          if (this.$moment(Etime).isBefore(this.$moment(Stime))) {
            let zeroEnd = this.$moment("23:59", "HH:mm").format(
              "YYYY-MM-DD HH:mm:ss"
            );
            let zeroStart = this.$moment("00:00", "HH:mm").format(
              "YYYY-MM-DD HH:mm:ss"
            );
            while (
              this.$moment(Stime).isBefore(this.$moment(zeroEnd)) ||
              this.$moment(Stime).isSame(this.$moment(zeroEnd))
            ) {
              dayArr.push(Stime);
              Stime = this.$moment(Stime)
                .add(spanTime, "minute")
                .format("YYYY-MM-DD HH:mm:ss");
            }
            while (
              this.$moment(zeroStart).isBefore(this.$moment(Etime)) ||
              this.$moment(zeroStart).isSame(this.$moment(Etime))
            ) {
              dayArr.push(zeroStart);
              zeroStart = this.$moment(zeroStart)
                .add(spanTime, "minute")
                .format("YYYY-MM-DD HH:mm:ss");
            }
          } else {
            while (
              this.$moment(Stime).isBefore(this.$moment(Etime)) ||
              this.$moment(Stime).isSame(this.$moment(Etime))
            ) {
              dayArr.push(Stime);
              Stime = this.$moment(Stime)
                .add(spanTime, "minute")
                .format("YYYY-MM-DD HH:mm:ss");
            }
          }

          // // 将结束日期的天放进数组
          console.log(dayArr);
        }
        this.deviceTimeList = [...new Set(dayArr)];
      } else {
        //其他规约
        this.deviceTimeList = val;
      }
    },
    //设置下发时间表规则
    handleSet(val) {
      console.log(val);
      this.minTimeSpan = Math.min(...val.listTime.map((item) => item.timeSpan));
      console.log(this.minTimeSpan);
      this.minTimeSpan = this.minTimeSpan > 10 ? 10 : this.minTimeSpan - 1;
      this.isShowset = true;
      this.currentTimeRule = val;
      getScheduleRulelAccessList({ termid: this.areaData.id })
        .then((res) => {
          console.log(res);
          this.infoData = {
            dyname: res.data.list[0].name,

            xlname: res.data.list[0].list[0].name,
            bsManufacturer: res.data.list[0].list[0].bsManufacturer,
            zzname:
              res.data.list[0].list[0].list[0].name == null
                ? res.data.list[0].list[0].list[0].cmdid
                : res.data.list[0].list[0].list[0].name,
            zzcmid: res.data.list[0].list[0].list[0].cmdid,
          };
        })
        .catch((err) => {});
    },
    //确定下发
    //xympadmn --act=schedule [0xCA] --flag=[Request Set Flag, default is set=1, 0: request] --channel=[Channel No] --group=[Group] --hour1=[Hour 1] --min1=[Minute 1] --preset1=[Preset 1]
    submitForm() {
      console.log(this.currentTimeRule);
      this.failedFlag = false;
      let timeArrList = [];
      if (
        this.areaData.protocol == "65285" &&
        this.currentTimeRule.listTime.length > 1
      ) {
        this.$message({
          duration: 1500,
          showClose: true,
          message: "不支持多段时间表，请选择单段时间表",
          type: "warning",
        });
        return;
      }
      this.sureloading = true;
      getTermStatus({ termId: this.areaData.id }).then((res) => {
        console.log(res);
        if (res.data.isonline) {
          console.log(this.timeChannel, this.setNum, this.areaData.protocol);
          let params = [
            {
              name: "act",
              value: "schedule",
            },
            {
              name: "flag",
              value: 1,
            },
            {
              name: "channel",
              value: this.timeChannel,
            },
          ];
          let scheduleTimeList = this.currentTimeRule.listTime;
          console.log(this.currentTimeRule.listTime);
          let timeArr = []; //获取时间列表
          //获取当前时间规则，转化成时间点
          for (let i = 0; i < scheduleTimeList.length; i++) {
            console.log(scheduleTimeList[i]);
            var Stime = this.$moment(scheduleTimeList[i].startTime, "HH:mm")
              .add(this.setNum, "minute")
              .format("YYYY-MM-DD HH:mm:ss");

            // var Etime = this.$moment(scheduleTimeList[i].endTime, "HH:mm")
            //   .add(this.setNum, "minute")
            //   .format("YYYY-MM-DD HH:mm:ss");
            //结束时间不添加偏移量
            var Etime = this.$moment(
              scheduleTimeList[i].endTime,
              "HH:mm"
            ).format("YYYY-MM-DD HH:mm:ss");
            var spanTime = scheduleTimeList[i].timeSpan;
            console.log(Stime, Etime, spanTime);
            if (
              this.areaData.protocol == "65283" ||
              this.areaData.protocol == "65285" ||
              this.areaData.protocol == "65290"
            ) {
              //湖南
              console.log("湖南", scheduleTimeList.length);

              // 设置时间间隔
              let fistSpan = this.$moment(new Date())
                .startOf("day")
                .minutes(spanTime)
                .format("YYYY-MM-DD HH:mm:ss");
              timeArr.push(fistSpan, Stime, Etime);
              console.log(timeArr);
            } else {
              while (
                this.$moment(Stime).isBefore(this.$moment(Etime)) ||
                this.$moment(Stime).isSame(this.$moment(Etime))
              ) {
                timeArr.push(Stime);
                Stime = this.$moment(Stime)
                  .add(spanTime, "minute")
                  .format("YYYY-MM-DD HH:mm:ss");
              }
            }
          }
          console.log(timeArr);
          let group = timeArr.length;
          params.push({
            name: "group",
            value: group,
          });
          for (let m = 0; m < timeArr.length; m++) {
            params.push(
              {
                name: "hour" + (m + 1),
                value: this.$moment(timeArr[m]).hour(),
              },
              {
                name: "min" + (m + 1),
                value: this.$moment(timeArr[m]).minute(),
              },
              {
                name: "preset" + (m + 1),
                value: 255,
              }
            );
          }
          console.log(params);
          for (var k = 0; k < timeArr.length; k++) {
            //console.log(moment(dayArr[k]).hour());
            timeArrList.push({
              hour: this.$moment(timeArr[k]).hour(),
              minute: this.$moment(timeArr[k]).minute(),
              preset: 255,
            });
          }
          console.log(timeArrList);
          var parmsobj = {
            termid: this.areaData.id,
            channelid: this.timeChannel,
            offset: this.setNum,
            list: timeArrList,
          };
          console.log(parmsobj);
          this.setTimeRuleJava(parmsobj); //使用java接口调用下发时间表
          //this.setTermFnRule(params);
        } else {
          this.sureloading = false;
          this.$message({
            duration: 1500,
            showClose: true,
            message: "装置下线，发送指令失败",
            type: "error",
          });
        }
      });
    },
    //使用接口下发时间表会写进数据库
    setTimeRuleJava(parmsobj) {
      console.log(parmsobj);
      setScheduleRulel({
        scheduleid: this.currentTimeRule.id,
        list: [parmsobj],
      })
        .then((res) => {
          console.log(res);
          if (res.data.list.length !== 0) {
            this.requestid = res.data.list[0].requestid;
            console.log(this.requestid);
            clearInterval(this.timer);
            this.deviceTimer = window.setInterval(() => {
              this.getinfoRules();
              this.deviceNum++;
              console.log(this.deviceNum, this.deviceNum * 1000);
            }, 1000 * this.deviceNum);
          } else {
            console.log("未获取到requestid");
          }
        })
        .catch((err) => {
          // this.$message({
          //   duration: 1500,
          //   showClose: true,
          //   message: "添加失败",
          //   type: "error",
          // });
        });
    },
    //下发时间表
    setTermFnRule(dataParams) {
      setTermCamera({
        termId: this.areaData.id,
        list: dataParams,
      })
        .then((res) => {
          console.log(res);
          this.requestid = res.data.requestId;
          clearInterval(this.timer);
          this.deviceTimer = window.setInterval(() => {
            this.getinfoRules();
            this.deviceNum++;
            console.log(this.deviceNum, this.deviceNum * 1000);
          }, 1000 * this.deviceNum);
        })
        .catch((err) => {});
    },
    getinfoRules() {
      getTermCameraRequest({ requestid: this.requestid })
        .then((res) => {
          if (res.data.success == 1) {
            this.sureloading = false;
            window.clearInterval(this.deviceTimer);
            this.deviceTimer = null;
            this.deviceNum = 1;
            console.log(JSON.parse(res.data.data));
            this.isShowset = false;
            this.$message({
              duration: 1500,
              showClose: true,
              message: "时间表下发成功",
              type: "success",
            });
          } else if (this.deviceNum > 9) {
            this.sureloading = false;
            window.clearInterval(this.deviceTimer);
            this.deviceTimer = null;
            this.deviceNum = 1;
            this.failedFlag = true;
            this.$message({
              duration: 1500,
              showClose: true,
              message: "时间表下发失败",
              type: "error",
            });
          }
        })
        .catch((err) => {});
    },
    //关闭下发弹窗
    closebtn() {
      this.isShowset = false;
      this.sureloading = false;
      this.setNum = 0;
    },
    display() {
      this.isShow = true;
      this.getChannelSelect();
      console.log(this.areaData);
    },
    handleclose() {
      this.isShow = false;
      this.sureloading = false;
      this.deviceTimeLoading = false;
      this.activeName = "1"; //选项卡
      this.selectChannel = ""; //选中的通道
      this.channelList = []; //通道选项
      this.baseTimeList = []; //数据库时间表
      this.deviceTimeList = []; //装置时间表
      window.clearInterval(this.deviceTimer);
      this.deviceTimer = null;
      this.deviceNum = 1;
      this.failedFlag = false;
    },
    //点击分页
    handleCurrentChange(val) {
      this.page = val;
      this.getruleList();
    },
    //每页条数
    handleSizeChange(val) {
      this.pageSize = val;
      this.getruleList();
    },
  },
};
</script>
<style lang="less">
.setTimeDialog {
  .zzinfo {
    position: absolute;
    top: 22px;
    left: 170px;
  }
  .el-dialog__body {
    margin-bottom: 12px;
    .el-tabs__content {
      height: 425px;
      .searchTime {
        .channelBox {
          margin-bottom: 12px;
        }
        .timeContain {
          display: flex;
          justify-content: space-between;
          .timeLeft {
            width: 428px;
            height: 336px;
            border-radius: 4px;
            border: 1px solid #eee;
            padding: 12px;
          }
          .timeRight {
            width: 428px;
            height: 336px;
            border-radius: 4px;
            border: 1px solid #eee;
            padding: 12px;
            h3 {
              .el-button {
                margin-left: 14px;
              }
            }
          }
          .timeLeft,
          .timeRight {
            h3 {
              line-height: 24px;
              height: 24px;
            }
          }
          .tagsBox {
            height: 308px;
            overflow: auto;
            .el-tag--small {
              margin: 4px;
            }
          }
        }
      }
      .el-tab-pane {
        height: 100%;
        .setTimerule {
          height: 100%;
          .timeGz {
            line-height: 24px;
            b {
              font-weight: 400;
              color: #169e8c;
            }
          }
          .el-button {
            width: 80px;
          }
          .pageNation {
            justify-content: flex-start;
          }
        }
      }
    }
  }
}
.setRoadDialog {
  .setTimeTd {
    .ruleinfo {
      margin-bottom: 16px;
      h3 {
        font-size: 14px;
        margin-bottom: 8px;
      }
      .ruleBox {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        .nameinfo {
          //margin-bottom: 8px;
          margin-right: 16px;
          height: 24px;
          line-height: 24px;
        }
        .timeGz {
          height: 24px;
          line-height: 24px;
          b {
            font-weight: 400;
            color: #169e8c;
          }
        }
      }
    }
    .fail {
      color: red;
      line-height: 28px;
      font-size: 12px;
    }
  }
}
</style>
