checkout.vue 5.38 KB
Newer Older
wanglianghe's avatar
wanglianghe committed
1 2
<template>
  <div>
wanglh1's avatar
wanglh1 committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
    <el-form ref="airCheckoutForm" :model="airCheckoutObj" :rules="rules" label-width="100px">

      <el-form-item :label="$t('')" prop="deliverType">
        <el-radio-group v-model="airShipmentObj.deliverType" :disabled="true">
          <el-radio v-for="item in deliverTypes" :key="item.value" :label="item.value">{{item.label}}</el-radio>
        </el-radio-group>
      </el-form-item>

      <div v-show="airShipmentObj.deliverType === '1'">

          <el-form-item :label="$t('送货时间')" >
                <el-date-picker type="datetime" :disabled="true" :placeholder="$t('请选择日期')" v-model="airShipmentObj.deliverTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
          </el-form-item>

          <el-form-item :label="$t('送货地址')">
              <el-input v-model="airShipmentObj.deliverAddress" :disabled="true" :placeholder="$t('请输入送货地址')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('车牌')">
              <el-input v-model="airShipmentObj.licensePlate" :disabled="true" :placeholder="$t('请输入车牌')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('司机')">
              <el-input v-model="airShipmentObj.driver" :disabled="true" :placeholder="$t('请输入司机')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('司机联系方式')">
              <el-input v-model="airShipmentObj.driverPhone" :disabled="true" :placeholder="$t('请输入司机联系方式')"></el-input>
          </el-form-item>

      </div>

      <div v-show="airShipmentObj.deliverType === '2'">

          <el-form-item :label="$t('自提时间')">
                <el-date-picker type="datetime" :disabled="true" :placeholder="$t('请选择日期')" v-model="airShipmentObj.deliverTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
          </el-form-item>

          <el-form-item :label="$t('自提地址')">
              <el-input v-model="airShipmentObj.deliverAddress" :disabled="true" :placeholder="$t('请输入自提地址')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('车牌')">
              <el-input v-model="airShipmentObj.licensePlate" :disabled="true" :placeholder="$t('请输入车牌')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('司机')">
              <el-input v-model="airShipmentObj.driver" :disabled="true" :placeholder="$t('请输入司机')"></el-input>
          </el-form-item>

          <el-form-item :label="$t('司机联系方式')">
              <el-input v-model="airShipmentObj.driverPhone" :disabled="true" :placeholder="$t('请输入司机联系方式')"></el-input>
          </el-form-item>

      </div>

wanglianghe's avatar
wanglianghe committed
59 60 61 62 63 64 65 66 67 68 69 70
      <el-form-item :label="$t('出仓日期')">
          <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airCheckoutObj.checkoutTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
      </el-form-item>

      <el-form-item :label="$t('出仓影像')">
        <ImageUpload :limit="1" :isShowTip=false v-model="airCheckoutObj.checkoutFiles" />
      </el-form-item>

      <el-form-item :label="$t('备注')">
        <el-input type="textarea" :rows ="6" v-model="airCheckoutObj.remark" :placeholder="$t('备注')"></el-input>
      </el-form-item>

71

wanglianghe's avatar
wanglianghe committed
72 73 74 75
    </el-form>

    <el-row class="operate-button">
      <el-button type="primary" @click="onSubmit(1)">{{$t('保存')}}</el-button>
76
      <el-button :disabled="$attrs.shipmentObj.approvaling" type="success" @click="onSubmit(2)">{{$t('提交')}}</el-button>
wanglianghe's avatar
wanglianghe committed
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
      <el-button @click="cancel">{{$t('关闭')}}</el-button>
    </el-row>
  </div>
</template>

<script>
import { airCheckoutCreate } from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import ImageUpload from "@/components/ImageUpload";
import { constantDict, formatDateStr, formatNumberString, serviceMsg } from "../utils";

/**
 * 驳船
 */
export default {
  name: "checkout",
  inheritAttrs: false,
  components: { userSelect, ImageUpload },
  data() {
    return {
wanglh1's avatar
wanglh1 committed
97
      // 空运出仓对象
wanglianghe's avatar
wanglianghe committed
98
      airCheckoutObj: {},
wanglh1's avatar
wanglh1 committed
99 100 101 102 103

      // 空运出货对象
      airShipmentObj: {},
      // 送货方式
      deliverTypes: constantDict.deliverType,
wanglianghe's avatar
wanglianghe committed
104 105 106 107 108 109 110 111 112 113 114
      // 校验
      rules: {
        //deliverType: [{ required: true, message: this.$t("必填"), trigger: "change" }],
      },
    };
  },
  created() {
    const voName = this.$attrs.currNode.voName;
    let oldData = { ...this.$attrs.shipmentObj[voName] };
    oldData = formatDateStr(oldData, ["checkoutTime"]);
    this.airCheckoutObj = oldData;
wanglh1's avatar
wanglh1 committed
115 116 117 118 119

    let shipmentdData = { ...this.$attrs.shipmentObj["boxAirShipmentBackVO"] };
    shipmentdData = formatDateStr(shipmentdData, ["deliverTime"]);
    shipmentdData = formatNumberString(shipmentdData, ["deliverType"]);
    this.airShipmentObj = shipmentdData;
wanglianghe's avatar
wanglianghe committed
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
  },
  methods: {
    /** 提交 */
    onSubmit(operateType) {
      this.$refs["airCheckoutForm"].validate((valid) => {
        if (valid) {
          airCheckoutCreate({
            ...this.airCheckoutObj,
            shipmentId: this.$attrs.shipmentObj.id,
            operateType,
          }).then((res) => {
            serviceMsg(res, this).then(() => {
              this.cancel("submit");
            });
          });
        }
      });
    },
    /** 取消 */
    cancel(type) {
      this.$emit("closeDialog", type);
    },
  },
};
</script>

<style lang="scss" scoped>
</style>