trailer.vue 3.28 KB
Newer Older
huhaiiqng's avatar
huhaiiqng committed
1
<template>
huhaiiqng's avatar
huhaiiqng committed
2
  <div>
huhaiqing's avatar
huhaiqing committed
3
    <el-form ref="trailerForm" :rules="rules" :model="trailerObj" label-width="120px">
huhaiiqng's avatar
huhaiiqng committed
4
      <el-form-item label="状态">
huhaiqing's avatar
huhaiqing committed
5
        <el-select v-model="trailerObj.tlContainerStatus" placeholder="请选择状态">
huhaiqing's avatar
huhaiqing committed
6
          <el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TRAILER_STATUS)" :key="type.value" :label="type.label" :value="type.value"></el-option>
huhaiiqng's avatar
huhaiiqng committed
7 8 9
        </el-select>
      </el-form-item>
      <el-form-item label="拖车公司">
huhaiqing's avatar
huhaiqing committed
10
        <supplierSelect v-model="trailerObj.tlCompanyId" :companyType="'4'" placeholder="请选择拖车公司" :allSupplier="this.$attrs.allSupplier" />
huhaiiqng's avatar
huhaiiqng committed
11
      </el-form-item>
huhaiqing's avatar
huhaiqing committed
12 13
      <el-form-item label="拖车时间" prop="tlTime">
        <el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="trailerObj.tlTime"></el-date-picker>
huhaiiqng's avatar
huhaiiqng committed
14 15
      </el-form-item>
      <el-form-item label="车牌">
huhaiqing's avatar
huhaiqing committed
16
        <el-input v-model="trailerObj.tlLicensePlate	" placeholder="请输入车牌"></el-input>
huhaiiqng's avatar
huhaiiqng committed
17 18
      </el-form-item>
      <el-form-item label="司机">
huhaiqing's avatar
huhaiqing committed
19
        <el-input v-model="trailerObj.tlDriver" placeholder="请输入司机"></el-input>
huhaiiqng's avatar
huhaiiqng committed
20 21
      </el-form-item>
      <el-form-item label="司机联系方式">
huhaiqing's avatar
huhaiqing committed
22
        <el-input v-model="trailerObj.tlDriverContact" placeholder="请输入司机联系方式"></el-input>
huhaiiqng's avatar
huhaiiqng committed
23 24
      </el-form-item>
      <el-form-item label="货柜号">
huhaiqing's avatar
huhaiqing committed
25
        <el-input v-model="trailerObj.tlContainerNo" placeholder="请输入货柜号"></el-input>
huhaiiqng's avatar
huhaiiqng committed
26 27
      </el-form-item>
      <el-form-item label="封条">
huhaiqing's avatar
huhaiqing committed
28
        <el-input v-model="trailerObj.tlStripSeal" placeholder="请输入封条"></el-input>
huhaiiqng's avatar
huhaiiqng committed
29 30 31
      </el-form-item>
    </el-form>
    <el-row class="operate-button">
huhaiqing's avatar
huhaiqing committed
32 33
      <el-button type="primary" @click="onSubmit(1)">保存</el-button>
      <el-button type="success" @click="onSubmit(2)">提交</el-button>
huhaiqing's avatar
huhaiqing committed
34
      <el-button @click="cancel">关闭</el-button>
huhaiiqng's avatar
huhaiiqng committed
35 36
    </el-row>
  </div>
huhaiiqng's avatar
huhaiiqng committed
37 38 39
</template>

<script>
huhaiqing's avatar
huhaiqing committed
40
import { trailer, serviceMsg } from "@/api/ecw/boxSea";
huhaiqing's avatar
huhaiqing committed
41
import supplierSelect from "./common/supplierSelect.vue";
42 43 44 45 46
import {
  formatStringNumber,
  formatDateStr,
  formatNumberString,
} from "../utils";
huhaiqing's avatar
huhaiqing committed
47 48 49
/**
 * 拖车
 */
huhaiiqng's avatar
huhaiiqng committed
50
export default {
huhaiqing's avatar
huhaiqing committed
51
  inheritAttrs: false,
huhaiiqng's avatar
huhaiiqng committed
52
  name: "trailer",
huhaiqing's avatar
huhaiqing committed
53
  components: { supplierSelect },
huhaiiqng's avatar
huhaiiqng committed
54 55
  data() {
    return {
huhaiqing's avatar
huhaiqing committed
56
      // 拖车对象
huhaiqing's avatar
huhaiqing committed
57
      trailerObj: {},
huhaiqing's avatar
huhaiqing committed
58
      // 校验
huhaiiqng's avatar
huhaiiqng committed
59
      rules: {
huhaiqing's avatar
huhaiqing committed
60
        tlTime: [{ required: true, message: "必填", trigger: "change" }],
huhaiiqng's avatar
huhaiiqng committed
61 62 63
      },
    };
  },
64 65 66 67 68 69 70 71 72
  created() {
    const { currNode, shipmentObj } = this.$attrs;
    const voName = currNode.voName;
    let oldData = { ...shipmentObj[voName] };
    oldData = formatNumberString(oldData, ["tlContainerStatus"]);
    oldData = formatStringNumber(oldData, ["tlCompanyId"]);
    oldData = formatDateStr(oldData, ["tlTime"]);
    this.trailerObj = oldData;
  },
huhaiiqng's avatar
huhaiiqng committed
73
  methods: {
huhaiqing's avatar
huhaiqing committed
74
    /** 提交 */
huhaiqing's avatar
huhaiqing committed
75
    onSubmit(operateType) {
huhaiiqng's avatar
huhaiiqng committed
76 77
      this.$refs["trailerForm"].validate((valid) => {
        if (valid) {
huhaiqing's avatar
huhaiqing committed
78 79
          trailer({
            ...this.trailerObj,
huhaiqing's avatar
huhaiqing committed
80
            shipmentId: this.$attrs.shipmentObj.id,
huhaiqing's avatar
huhaiqing committed
81 82 83
            operateType,
          }).then((res) => {
            serviceMsg(res, this).then(() => {
84
              this.cancel("submit");
huhaiqing's avatar
huhaiqing committed
85 86
            });
          });
huhaiiqng's avatar
huhaiiqng committed
87 88 89
        }
      });
    },
huhaiqing's avatar
huhaiqing committed
90
    /** 取消 */
91 92
    cancel(type) {
      this.$emit("closeDialog", type);
huhaiiqng's avatar
huhaiiqng committed
93 94 95 96
    },
  },
};
</script>