MasterLabelForm.vue 13.7 KB
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="条码编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="labelNo">
              <a-input v-model="model.labelNo" placeholder="请输入条码编号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="仓库编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="whNumber">
              <a-input v-model="model.whNumber" placeholder="请输入仓库编号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="BYD 批次" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batch">
              <a-input v-model="model.batch" placeholder="请输入BYD 批次"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="供应商批次" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fbatch">
              <a-input v-model="model.fbatch" placeholder="请输入供应商批次"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="物料号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="matnr">
              <a-input v-model="model.matnr" placeholder="请输入物料号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="物料描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maktx">
              <a-input v-model="model.maktx" placeholder="请输入物料描述"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="供应商" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lifnr">
              <a-input v-model="model.lifnr" placeholder="请输入供应商"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="供应商描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="liktx">
              <a-input v-model="model.liktx" placeholder="请输入供应商描述"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="采购订单类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bsart">
              <a-input v-model="model.bsart" placeholder="请输入采购订单类型"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="采购订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="poNo">
              <a-input v-model="model.poNo" placeholder="请输入采购订单号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="订单行项目号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="poItemNo">
              <a-input v-model="model.poItemNo" placeholder="请输入订单行项目号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="收货单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptNo">
              <a-input v-model="model.receiptNo" placeholder="请输入收货单号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="收货单行项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptItemNo">
              <a-input v-model="model.receiptItemNo" placeholder="请输入收货单行项目"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="进仓单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inboundNo">
              <a-input v-model="model.inboundNo" placeholder="请输入进仓单号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="进仓单行项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inboundItemNo">
              <a-input v-model="model.inboundItemNo" placeholder="请输入进仓单行项目"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="项目类别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pstyp">
              <a-input v-model="model.pstyp" placeholder="请输入项目类别"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="boxQty">
              <a-input-number v-model="model.boxQty" placeholder="请输入数量" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
              <a-input v-model="model.unit" placeholder="请输入单位"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="收货日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptDate">
              <j-date placeholder="请选择收货日期" v-model="model.receiptDate" :show-time="true"
                      date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="需求跟踪号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bednr">
              <a-input v-model="model.bednr" placeholder="请输入需求跟踪号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="生产日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productDate">
              <j-date placeholder="请选择生产日期" v-model="model.productDate" :show-time="true"
                      date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="有效期至" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="effectDate">
              <a-input-number v-model="model.effectDate" placeholder="请输入有效期至" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="质检结果(Y)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qcResultCode">
              <a-input v-model="model.qcResultCode" placeholder="请输入质检结果(Y)"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="原条码编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="flabelNo">
              <a-input v-model="model.flabelNo" placeholder="请输入原条码编号"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="在库状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="labelStatus">
              <a-input v-model="model.labelStatus" placeholder="请输入在库状态"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
              <a-input v-model="model.remark" placeholder="请输入备注"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="检验员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qcPeople">
              <a-input v-model="model.qcPeople" placeholder="请输入检验员"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="检验日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qcDate">
              <j-date placeholder="请选择检验日期" v-model="model.qcDate" :show-time="true"
                      date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="不合格原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="returnReasonType">
              <a-input v-model="model.returnReasonType" placeholder="请输入不合格原因"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="包条码ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="packLabelNo">
              <a-input v-model="model.packLabelNo" placeholder="请输入包条码ID"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="栈板条码ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="palletLabelNo">
              <a-input v-model="model.palletLabelNo" placeholder="请输入栈板条码ID"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="特殊库存类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sobkz">
              <a-input v-model="model.sobkz" placeholder="请输入特殊库存类型"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="YLZD1" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ylzd1">
              <a-input v-model="model.ylzd1" placeholder="请输入YLZD1"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="YLZD2" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ylzd2">
              <a-input v-model="model.ylzd2" placeholder="请输入YLZD2"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="YLZD3" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ylzd3">
              <a-input v-model="model.ylzd3" placeholder="请输入YLZD3"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="YLZD4" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ylzd4">
              <a-input v-model="model.ylzd4" placeholder="请输入YLZD4"></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="YLZD5" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ylzd5">
              <a-input v-model="model.ylzd5" placeholder="请输入YLZD5"></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>

<script>

import {httpAction, getAction} from '@/api/manage'
import {validateDuplicateValue} from '@/utils/util'

export default {
  name: 'MasterLabelForm',
  components: {},
  props: {
    //表单禁用
    disabled: {
      type: Boolean,
      default: false,
      required: false
    }
  },
  data() {
    return {
      model: {},
      labelCol: {
        xs: {span: 24},
        sm: {span: 5},
      },
      wrapperCol: {
        xs: {span: 24},
        sm: {span: 16},
      },
      confirmLoading: false,
      validatorRules: {
        labelNo: [
          {required: true, message: '请输入条码编号!'},
        ],
        whNumber: [
          {required: true, message: '请输入仓库编号!'},
        ],
        batch: [
          {required: true, message: '请输入BYD 批次!'},
        ],
        matnr: [
          {required: true, message: '请输入物料号!'},
        ],
        maktx: [
          {required: true, message: '请输入物料描述!'},
        ],
        boxQty: [
          {required: true, message: '请输入数量!'},
        ],
        unit: [
          {required: true, message: '请输入单位!'},
        ],
        receiptDate: [
          {required: true, message: '请输入收货日期!'},
        ],
        productDate: [
          {required: true, message: '请输入生产日期!'},
        ],
      },
      url: {
        add: "/config/masterLabel/add",
        edit: "/config/masterLabel/edit",
        queryById: "/config/masterLabel/queryById"
      }
    }
  },
  computed: {
    formDisabled() {
      return this.disabled
    },
  },
  created() {
    //备份model原始值
    this.modelDefault = JSON.parse(JSON.stringify(this.model));
  },
  methods: {
    add() {
      this.edit(this.modelDefault);
    },
    edit(record) {
      this.model = Object.assign({}, record);
      this.visible = true;
    },
    submitForm() {
      const that = this;
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          that.confirmLoading = true;
          let httpurl = '';
          let method = '';
          if (!this.model.id) {
            httpurl += this.url.add;
            method = 'post';
          } else {
            httpurl += this.url.edit;
            method = 'put';
          }
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
              that.$message.success(res.message);
              that.$emit('ok');
            } else {
              that.$message.warning(res.message);
            }
          }).finally(() => {
            that.confirmLoading = false;
          })
        }

      })
    },
  }
}
</script>