<template>
  <div class="bus-button">
    <c-button type="primary" v-on:click="save">{{
      $t("buttons.submit")
    }}</c-button>
    <c-button type="primary" v-on:click="pedding">{{
      $t("buttons.stash")
    }}</c-button>
    <c-button type="primary" v-on:click="check">{{
      $t("buttons.check")
    }}</c-button>
    <c-button v-on:click="exit">{{ $t("buttons.quit") }}</c-button>
  </div>
</template>
<script>
import commonApi from "~/mixin/commonApi";
import Utils from "~/utils";

export default {
  props: ["$pntvm"],
  data() {
    return {};
  },
  methods: {
    async save() {
      console.log(123);
      let vm = this.getVM();
      let result = await vm.save();
      console.log(result);
      // if (result.respCode == SUCCESS) {
      //     this.$notify({
      //         title: '成功',
      //         message: '保存成功',
      //         type: 'success'
      //     });
      //     this.$router.history.push("/business/trnrel")
      // } else {

      // }

      if (
        result.respCode == SUCCESS &&
        Object.keys(result.fieldErrors).length == 0
      ) {
        this.$notify({
          title: "成功",
          message: "保存成功",
          type: "success",
        });
        this.$store.dispatch("TagsView/delView", this.$route);
        this.$router.history.push("/taskList", () => {
          this.$store.commit("setTaskListTabVal", "trnrel");
        });
      } else if (
        result.fieldErrors &&
        Object.keys(result.fieldErrors).length > 0
      ) {
        let errorMsg = "";

        let errorMsgkey = "";
        let errorMsgVal = "";
        for (const key in result.fieldErrors) {
          errorMsgkey = key;
          errorMsgVal = result.fieldErrors[key];
          errorMsg = errorMsg + errorMsgkey + ":" + errorMsgVal + ";";
        }
        this.$notify.error({
          title: "失败",
          message: "保存失败!错误信息[" + errorMsg + "]",
        });
      } else {
        this.$notify({
          title: "失败",
          message: "保存失败",
          type: "error",
        });
      }
    },
    async pedding() {
      let result = await this.getVM().pedding();
      console.log(result);
      if (result.respCode == SUCCESS) {
        this.$notify({
          title: "成功",
          message: "暂存成功",
          type: "success",
        });
        this.$router.history.push("/business/sptsel");
      } else {
        this.$notify({
          title: "失败",
          message: "暂存失败",
          type: "error",
        });
      }
    },
    async check() {
      let result = await this.getVM().checkAll();
      if (result.respCode != SUCCESS) {
        this.$notify.error({ title: "错误", message: result.respMsg });
      } else {
        // 清除之前的校验状态
        this.getVM().$refs.modelForm.clearValidate();
        const fields = this.getVM().$refs.modelForm.fields;
        const fieldErrors = result.fieldErrors;
        this.getVM().updateModel(result.data);
        Utils.positioningErrorMsg(fieldErrors, fields);
        const tab = Utils.positioningErrorMsg(fieldErrors, fields);
        if (tab) {
          if (tab.name !== this.getVM().tabVal) {
            // tab切换之后,需出发tab-click的事件
            this.getVM().tabClick(tab);
          }
        }
      }
    },
    exit() {
      this.$confirm("您有未保存的数据,确定退出吗, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        this.$router.history.push("/home");
      });
    },
    getVM() {
      return this.$pntvm;
    },
  },
};
</script>
<style>
.bus-button {
  margin-bottom: 10px;
}

.bus-button :first-child {
  margin-left: 0;
}
</style>