import Utils from "~/utils";

export default {
  methods: {
		// 表单提交
    async handleSubmit() {
      let result = await this.save();
      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{
        this.$notify({
          title: "失败",
          message: "保存失败",
          type: "error",
        });
        if(result.fieldErrors && Object.keys(result.fieldErrors).length > 0 ){
          const tab = this.showBackendErrors(fieldErrors)
          if (tab) {
            // tab切换之后，需出发tab-click的事件
            this.tabClick(tab);
          }
        }
      }
    },
		// 表单暂存
    async handleStash() {
      let result = await this.pedding();
      if (result.respCode == SUCCESS) {
        this.$notify({
          title: "成功",
          message: "暂存成功",
          type: "success",
        });
        this.$store.dispatch("TagsView/delView", this.$route)
        this.$router.history.push("/taskList", () => {
          this.$store.commit("setTaskListTabVal", 'sptbrk')
        });
      } else {
        this.$notify({
          title: "失败",
          message: "暂存失败",
          type: "error",
        });
      }
    },
    showBackendErrors(fieldErrors){
      // 清除之前的校验状态
      this.$refs.modelForm.clearValidate();
      const fields = this.$refs.modelForm.fields;
      Utils.positioningErrorMsg(fieldErrors, fields);
      const tab = Utils.positioningErrorMsg(fieldErrors, fields);
      return tab;
    },
		// 表单校验
    async handleCheck() {
      let result = await this.checkAll();
      if (result.respCode == SUCCESS) {
        const fieldErrors = result.fieldErrors;
        this.updateModel(result.data);
        const tab = this.showBackendErrors(fieldErrors)
        if (tab) {
          // tab切换之后，需出发tab-click的事件
          this.tabClick(tab);
          this.$notify({
            title: "错误",
            message: "校核失败",
            type: "error",
          });
          return
        }
      } else {
        this.$notify.error({ title: "错误", message: result.respMsg });
      }
    },
  },
};
