<template>
  <el-dialog
    class="adddeviceDialog"
    :title="deviceDialogTitle"
    :visible.sync="deviceDialog"
    width="420px"
  >
    <el-form
      label-position="left"
      label-width="92px"
      ref="formdeviceInfo"
      :rules="rules"
      :model="deviceForm"
    >
      <el-form-item label="单位：" prop="bsManufacturer">
        <el-input
          v-model="deviceForm.bsManufacturer"
          autocomplete="off"
        ></el-input>
      </el-form-item>
      <el-form-item label="DY等级：" prop="dyLevel">
        <el-input
          v-model.number="deviceForm.dyLevel"
          autocomplete="off"
        ></el-input>
      </el-form-item>
      <el-form-item label="线路名称：" prop="name">
        <el-input v-model="deviceForm.name" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="closeDialog(0)">取 消</el-button>
      <el-button type="primary" @click="submitForm()">确 定</el-button>
    </div>
  </el-dialog>
</template>
<script>
//import { adddeviceJoggle, updatedeviceJoggle } from "@/utils/api/index";
export default {
  props: {
    deviceDialog: {
      type: Boolean,
    },
    deviceDialogTitle: {
      type: String,
      default: "新增",
    },
    formItem: {
      type: Object,
      default: function () {
        return {};
      },
    },
  },

  data() {
    return {
      deviceForm: {},
      rules: {
        bsManufacturer: [
          { required: true, message: "请输入公司名称", trigger: "blur" },
        ],
        dyLevel: [
          { required: true, message: "请选择DY等级", trigger: "blur" },
          { type: "number", message: "DY等级数字值" },
        ],
        name: [
          {
            required: true,
            message: "请输入线路名称",
            trigger: "blur",
          },
        ],
      },
      //表单数组，对象
      formArr: [],
    };
  },
  methods: {
    // 保存确定操作
    submitForm() {
      this.$refs.formdeviceInfo.validate((valid) => {
        if (valid) {
          let formObj = {
            bsManufacturer: this.deviceForm.bsManufacturer,
            dyLevel: this.deviceForm.dyLevel,
            name: this.deviceForm.name,
          };
          this.formArr.push(formObj);
          console.log(this.formArr);

          // 走保存请求
          if (this.deviceDialogTitle == "新增") {
            adddeviceJoggle({ list: this.formArr })
              .then((res) => {
                console.log(res);
                this.$emit("deviceDialogClose", 1); //关闭弹窗
                this.$message.success("添加成功");
              })
              .catch((err) => {
                console.log(err); //代码错误、请求失败捕获
                this.$message.error("添加失败");
              });
          } else if (this.deviceDialogTitle == "修改") {
            let changeformObj = {
              bsManufacturer: this.deviceForm.bsManufacturer,
              dyLevel: this.deviceForm.dyLevel,
              name: this.deviceForm.name,
              id: this.deviceForm.id,
            };
            updatedeviceJoggle(changeformObj)
              .then((res) => {
                console.log(res);
                this.$emit("deviceDialogClose", 1); //关闭弹窗
                this.$message.success("修改成功");
              })
              .catch((err) => {
                console.log(err); //代码错误、请求失败捕获
                this.$message.error("修改失败");
              });
          }
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    //取消关闭弹窗
    closeDialog(flag) {
      this.$refs.formdeviceInfo.resetFields();
      this.$emit("deviceDialogClose", flag);
    },
  },
  mounted() {
    console.log("打印传过来的对象", this.formItem);
    console.log("打印传过来的对象", this.formItem.bsIdentifier);
    this.deviceForm = JSON.parse(JSON.stringify(this.formItem));
  },
  watch: {
    formItem: {
      handler(newVal, oldVal) {
        // 调用函数
        this.$nextTick(() => {
          this.deviceForm = JSON.parse(JSON.stringify(this.formItem));
        });
      },
      immediate: true,
      deep: true,
    },
  },
};
</script>
