<template>
  <div class="shipping-update-error">
    <div class="message-title">{{$t(`您确定撤销${cancelClearInfo.orderNo}已清关状态吗?`)}}</div>
    <el-form ref="arrivalForm" :rules="rules" :model="cusClearanceObj" label-width="120px">
      <el-form-item :label="$t('撤销理由')" prop="clEstTime">
        <el-input v-if="[0,3,4].includes(apply.approvalStatus)" v-model="cusClearanceObj.applyReason" type="textarea" :rows="4"></el-input>
        <template v-else>
          {{apply.applyReason}}
        </template>
      </el-form-item>
    </el-form>

    <el-row class="operate-button">
      <el-button v-if="[0,3,4].includes(apply.approvalStatus)" type="primary" @click="onSubmit">{{$t('确定')}}</el-button>
      <el-button v-if="apply.approvalStatus == 1" type="primary" @click="$router.push({path: '/bpm/process-instance/detail', query: {id: apply.bpmProcessId}})">{{$t('审核中')}}</el-button>
      <el-button v-if="apply.approvalStatus == 1" plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button>
      <el-button @click="cancel">{{$t('取消')}}</el-button>
    </el-row>
  </div>
</template>

<script>
import { approvalCreate } from "@/api/ecw/boxSea";
import {cancelProcessInstance} from "@/api/bpm/processInstance";

export default {
  name: "updateError",
  inheritAttrs: false,
  components: {},
  props: {
    shipmentObj: Object,
    cancelClearInfo: Object,
  },
  data() {
    return {
      // 到港对象
      cusClearanceObj: {},
      // 校验
      rules: {
        applyReason: [
          { required: true, message: this.$t("必填"), trigger: "change" },
        ]
      },
      apply: {}
    };
  },
  created() {
    let orders = this.shipmentObj.clearanceInfo?.clearanceOrderBackList
    let order = orders.find(item=>item.orderId == this.cancelClearInfo.orderId)
    if(order){
      this.apply = order
    }
  },
  methods: {
    onSubmit() {
      this.$refs["arrivalForm"].validate((valid) => {
        if (valid) {
          approvalCreate({
            shipmentId: this.shipmentObj.id,
            approvalStatus: 0,
            approvalType: 21,
            orderId: this.cancelClearInfo.orderId,
            applyReason: this.cusClearanceObj.applyReason
          }).then(()=>{
              this.$message.success("成功");
              this.cancel()
            })
        }
      });
    },
    /* 取消审核 */
    canclAudit() {
      cancelProcessInstance(this.apply.bpmProcessId, this.$t("取消审核")).then(() => {
        this.$emit("closeDialog","edit");
      });
    },
    cancel() {
      this.$emit("closeDialog","edit");
    },
  },
};
</script>

<style lang="scss" scoped>
.shipping-update-error {
  .message-title {
    text-align: center;
    font-size: 20px;
    margin: 0 20px 10px;
  }
}
</style>
