<template>
  <el-dialog
    class="adddeviceDialog"
    :title="title"
    :visible.sync="isShow"
    :close-on-click-modal="false"
    width="670px"
    @close="handleclose"
  >
    <el-form
      label-position="left"
      ref="formInfo"
      label-width="auto"
      :rules="rules"
      :model="ruleForm"
    >
      <el-form-item label="名称" prop="name">
        <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
      </el-form-item>
      <div class="addtimeBox" ref="timescrollref">
        <div
          class="timeBoxArr"
          v-for="(item, index) in ruleForm.list"
          :key="index"
        >
          <el-form-item
            label="时间"
            :prop="'list.' + index + '.time'"
            :rules="{ required: true, message: '请选择时间', trigger: 'blur' }"
          >
            <el-time-picker
              is-range
              v-model="item.time"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              format="HH:mm"
              value-format="HH:mm"
            >
            </el-time-picker>
          </el-form-item>
          <el-form-item label="间隔（分）" :prop="'list.' + index + '.span'">
            <!-- <el-input v-model="ruleForm.span" autocomplete="off" type="number"></el-input> -->
            <el-input-number v-model="item.span" :min="1"></el-input-number>
          </el-form-item>
          <div class="btngrop">
            <el-button
              v-if="index !== 0"
              type="danger"
              icon="el-icon-minus"
              @click="deleteModule(item, index)"
            ></el-button>
            <el-button
              icon="el-icon-plus"
              type="primary"
              @click="addModule()"
              v-if="index + 1 == ruleForm.list.length"
            ></el-button>
          </div>
        </div>
      </div>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="ruleForm.remark" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="isShow = false">取 消</el-button>
      <el-button type="primary" @click="submitForm()">确 定</el-button>
    </div>
  </el-dialog>
</template>
<script>
import { addScheduleRulel, updateScheduleRulel } from "@/utils/api/index";
export default {
  props: {
    title: String,
  },
  data() {
    return {
      isShow: false,
      rules: {
        name: [{ required: true, message: "请输入名称", trigger: "blur" }],
      },
      ruleForm: {},
    };
  },
  methods: {
    //判断
    getdataform(val) {
      console.log(val);
      if (val == null) {
        return (this.ruleForm = {
          name: "",
          list: [
            {
              hour: "",
              minute: "",
              preset: "",
            },
          ],
          remark: "",
        });
      }
      //this.ruleForm = val;
      this.ruleForm = JSON.parse(JSON.stringify(val));
      this.ruleForm.list.forEach((val) => {
        this.$set(val, "time", [val.startTime, val.endTime]);
      });
    },
    addModule() {
      //新增一行
      this.ruleForm.list.push({
        time: "",
        span: "",
      });
      console.log(this.$refs.timescrollref);
      this.$nextTick(() => {
        console.log(this.$refs.timescrollref);
        if (this.$refs.timescrollref) {
          console.log(this.$refs.timescrollref.scrollHeight);
          this.$refs.timescrollref.scrollTop =
            this.$refs.timescrollref.scrollHeight;
        }
      });
    },
    //删除一行
    deleteModule(item, index) {
      console.log(item, index);
      const itemList = this.ruleForm.list.indexOf(item);
      if (itemList !== -1) {
        this.ruleForm.list.splice(index, 1);
      }
    },
    // 保存确定操作
    submitForm() {
      this.$refs.formInfo.validate((valid) => {
        if (valid) {
          // delete this.ruleForm.time;
          this.ruleForm.list.forEach((val) => {
            console.log(val);
            this.$set(val, "startTime", val.time[0]);
            this.$set(val, "endTime", val.time[1]);
          });
          if (this.title == "新增") {
            addScheduleRulel(this.ruleForm)
              .then((res) => {
                this.isShow = false;
                this.$message({
                  duration: 1500,
                  showClose: true,
                  message: "添加成功",
                  type: "success",
                });
                this.$parent.deviceList();
              })
              .catch((err) => {
                this.$message({
                  duration: 1500,
                  showClose: true,
                  message: "添加失败",
                  type: "error",
                });
              });
          } else {
            updateScheduleRulel(this.ruleForm)
              .then((res) => {
                this.isShow = false;
                this.$message.success("修改成功");
                this.$parent.deviceList();
              })
              .catch((err) => {
                this.$message.error("修改失败");
              });
          }
        } else {
          return false;
        }
      });
    },
    display() {
      this.isShow = true;
    },
    hide() {
      this.isShow = false;
    },
    handleclose() {
      this.$parent.deviceList();
    },
  },
  mounted() {},
};
</script>
<style lang="less">
.adddeviceDialog {
  .el-form {
    .addtimeBox {
      max-height: 205px;
      overflow: auto;
    }
    .timeBoxArr {
      display: flex;
      .el-date-editor.el-input,
      .el-date-editor.el-input__inner {
        width: 226px;
        margin-right: 16px;
      }

      .btngrop {
        margin-bottom: 16px;
        margin-left: 16px;
        height: 32px;
        .el-button--small {
          padding: 9px 8px;
          width: 30px;
        }
      }
    }
  }
}
</style>
