gaoluyang
5 天以前 a0a35be4065d75b80ba4a9a51da7031e03166766
src/views/salesManagement/salesLedger/index.vue
@@ -426,6 +426,21 @@
         <el-form :model="deliveryForm" label-width="120px" label-position="top" :rules="deliveryRules" ref="deliveryFormRef">
            <el-row :gutter="30">
               <el-col :span="24">
                  <el-form-item label="发货类型:" prop="shippingType">
                     <el-select
                        v-model="deliveryForm.shippingType"
                        placeholder="请选择发货类型"
                        style="width: 100%"
                        @change="handleShippingTypeChange"
                     >
                        <el-option label="货车" value="truck" />
                        <el-option label="快递" value="express" />
                     </el-select>
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="24">
                  <el-form-item label="发货日期:" prop="shippingDate">
                     <el-date-picker
                        style="width: 100%"
@@ -440,11 +455,20 @@
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="24">
               <el-col :span="24" v-if="deliveryForm.shippingType === 'truck'">
                  <el-form-item label="发货车牌号:" prop="shippingCarNumber">
                     <el-input
                        v-model="deliveryForm.shippingCarNumber"
                        placeholder="请输入发货车牌号"
                        clearable
                     />
                  </el-form-item>
               </el-col>
               <el-col :span="24" v-else>
                  <el-form-item label="快递公司:" prop="expressCompany">
                     <el-input
                        v-model="deliveryForm.expressCompany"
                        placeholder="请输入快递公司"
                        clearable
                     />
                  </el-form-item>
@@ -597,15 +621,23 @@
const currentDeliveryRow = ref(null);
const deliveryFormData = reactive({
  deliveryForm: {
    shippingType: "truck", // truck: 货车, express: 快递
    shippingDate: "",
    shippingCarNumber: "",
    expressCompany: "",
  },
  deliveryRules: {
    shippingType: [
      { required: true, message: "请选择发货类型", trigger: "change" }
    ],
    shippingDate: [
      { required: true, message: "请选择发货日期", trigger: "change" }
    ],
    shippingCarNumber: [
      { required: true, message: "请输入发货车牌号", trigger: "blur" }
      { validator: (_, value, callback) => validateShippingCarNumber(value, callback), trigger: "blur" }
    ],
    expressCompany: [
      { validator: (_, value, callback) => validateExpressCompany(value, callback), trigger: "blur" }
    ],
  },
});
@@ -1413,6 +1445,20 @@
  return total.toFixed(2);
};
// 发货类型校验:货车时要求车牌,快递时要求快递公司
const validateShippingCarNumber = (value, callback) => {
  if (deliveryForm.value.shippingType === "truck") {
    if (!value) return callback(new Error("请输入发货车牌号"));
  }
  callback();
};
const validateExpressCompany = (value, callback) => {
  if (deliveryForm.value.shippingType === "express") {
    if (!value) return callback(new Error("请输入快递公司"));
  }
  callback();
};
const mathNum = () => {
  console.log("productForm.value", productForm.value);
  if (!productForm.value.taxInclusiveUnitPrice) {
@@ -1612,6 +1658,12 @@
  //   ElMessage.error(err.msg);
  // });
   currentDeliveryRow.value = row;
  deliveryForm.value = {
    shippingType: "truck",
    shippingDate: getCurrentDate(),
    shippingCarNumber: "",
    expressCompany: "",
  };
   deliveryFormVisible.value = true;
};
@@ -1621,8 +1673,10 @@
    if (valid) {
      addShippingInfo({
        salesLedgerId: currentDeliveryRow.value.id,
        shippingType: deliveryForm.value.shippingType,
        shippingDate: deliveryForm.value.shippingDate,
        shippingCarNumber: deliveryForm.value.shippingCarNumber,
        shippingCarNumber: deliveryForm.value.shippingType === "truck" ? deliveryForm.value.shippingCarNumber : "",
        expressCompany: deliveryForm.value.shippingType === "express" ? deliveryForm.value.expressCompany : "",
      })
        .then(() => {
          proxy.$modal.msgSuccess("发货成功");
@@ -1643,6 +1697,15 @@
  currentDeliveryRow.value = null;
};
// 发货类型切换时清空对应字段
const handleShippingTypeChange = (val) => {
  if (val === "truck") {
    deliveryForm.value.expressCompany = "";
  } else {
    deliveryForm.value.shippingCarNumber = "";
  }
};
onMounted(() => {
   getList();
});