gongchunyi
8 天以前 b19b9a0af8f796120f7478a2b94ecc6690eb5b3c
feat: 销售发货新增自送选择
已修改2个文件
100 ■■■■■ 文件已修改
src/views/salesManagement/deliveryLedger/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/deliveryLedger/index.vue
@@ -92,6 +92,23 @@
          show-overflow-tooltip
        />
        <el-table-column
          label="发货类型"
          align="center"
          width="100"
        >
          <template #default="scope">
            <el-tag v-if="scope.row.type"
                    :type="getShippingTypeTag(scope.row.type)"
                    size="small">
              {{ scope.row.type }}
            </el-tag>
            <el-tag v-else
                    type="info"
                    size="small">-
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column
          label="发货车牌号"
          prop="shippingCarNumber"
          show-overflow-tooltip
@@ -182,6 +199,7 @@
              >
                <el-option label="货车" value="货车" />
                <el-option label="快递" value="快递" />
                <el-option label="自送" value="自送" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -201,8 +219,8 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="24" v-if="form.type === '货车'">
        <el-row :gutter="30" v-if="form.type === '货车'">
          <el-col :span="24">
            <el-form-item label="发货车牌号:" prop="shippingCarNumber">
              <el-input
                v-model="form.shippingCarNumber"
@@ -211,7 +229,9 @@
              />
            </el-form-item>
          </el-col>
          <el-col :span="24" v-else>
        </el-row>
        <el-row :gutter="30" v-else-if="form.type === '快递'">
          <el-col :span="24">
            <el-form-item label="快递公司:" prop="expressCompany">
              <el-input
                v-model="form.expressCompany"
@@ -385,7 +405,7 @@
    customerName: "",
    specificationModel: "",
    productName: "",
    type: "货车", // 货车, 快递
    type: "货车", // 货车, 快递, 自送
    shippingDate: "",
    shippingCarNumber: "",
    expressCompany: "",
@@ -772,11 +792,25 @@
  if (val === "货车") {
    form.value.expressCompany = "";
    form.value.expressNumber = "";
  } else if (val === "快递") {
    form.value.shippingCarNumber = "";
  } else {
    form.value.shippingCarNumber = "";
    form.value.expressCompany = "";
    form.value.expressNumber = "";
  }
};
// 发货类型标签颜色
const getShippingTypeTag = (type) => {
  const typeTagMap = {
    货车: "warning",
    快递: "primary",
    自送: "success",
  };
  return typeTagMap[type] || "info";
};
// 获取审核状态文本
const getApprovalStatusText = (status) => {
  if (status === null || status === undefined || status === "") {
src/views/salesManagement/salesLedger/index.vue
@@ -133,6 +133,21 @@
                  </el-tag>
                </template>
              </el-table-column>
              <el-table-column label="发货类型"
                               width="100"
                               align="center">
                <template #default="scope">
                  <el-tag v-if="getShippingTypeText(scope.row)"
                          :type="getShippingTypeTag(scope.row)"
                          size="small">
                    {{ getShippingTypeText(scope.row) }}
                  </el-tag>
                  <el-tag v-else
                          type="info"
                          size="small">-
                  </el-tag>
                </template>
              </el-table-column>
              <el-table-column label="快递公司"
                               prop="expressCompany"
                               show-overflow-tooltip />
@@ -941,6 +956,8 @@
                           value="货车" />
                <el-option label="快递"
                           value="快递" />
                <el-option label="自送"
                           value="自送" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -957,9 +974,9 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="24"
                  v-if="deliveryForm.type === '货车'">
        <el-row :gutter="30"
                v-if="deliveryForm.type === '货车'">
          <el-col :span="24">
            <el-form-item label="发货车牌号:"
                          prop="shippingCarNumber">
              <el-input v-model="deliveryForm.shippingCarNumber"
@@ -967,8 +984,10 @@
                        clearable />
            </el-form-item>
          </el-col>
          <el-col :span="24"
                  v-else>
        </el-row>
        <el-row :gutter="30"
                v-else-if="deliveryForm.type === '快递'">
          <el-col :span="24">
            <el-form-item label="快递公司:"
                          prop="expressCompany">
              <el-input v-model="deliveryForm.expressCompany"
@@ -1358,7 +1377,7 @@
      shippingCarNumber: "",
      expressCompany: "",
      expressNumber: "",
      type: "货车", // 货车, 快递
      type: "货车", // 货车, 快递, 自送
    },
    deliveryRules: {
      shippingCarNumber: [
@@ -2443,6 +2462,29 @@
  };
  /**
   * 获取发货类型文本(货车/快递/自送)
   * 子表行未返回发货类型字段,依据互斥的发货信息推断:
   * 有车牌为货车,有快递公司/单号为快递,已发货但两者皆无为自送
   */
  const getShippingTypeText = row => {
    if (!row) return "";
    if (row.shippingCarNumber) return "货车";
    if (row.expressCompany || row.expressNumber) return "快递";
    if (row.shippingDate) return "自送";
    return "";
  };
  const getShippingTypeTag = row => {
    const type = getShippingTypeText(row);
    const typeTagMap = {
      货车: "warning",
      快递: "primary",
      自送: "success",
    };
    return typeTagMap[type] || "info";
  };
  /**
   * 判断是否可以发货
   * 只有在产品状态是充足,发货状态是待发货和审核拒绝的时候才可以发货
   * @param row 行数据
@@ -2624,8 +2666,12 @@
    if (val === "货车") {
      deliveryForm.value.expressCompany = "";
      deliveryForm.value.expressNumber = "";
    } else if (val === "快递") {
      deliveryForm.value.shippingCarNumber = "";
    } else {
      deliveryForm.value.shippingCarNumber = "";
      deliveryForm.value.expressCompany = "";
      deliveryForm.value.expressNumber = "";
    }
  };