gongchunyi
8 小时以前 a35ffb2a781f9082cde9813b7517c36bfcef33ad
fix: 发货改为出库
已修改1个文件
72 ■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue
@@ -796,11 +796,11 @@
                         placeholder="请选择"
                         clearable
                         style="width: 100%">
                <el-option label="未发货" :value="1" />
                <el-option label="未出库" :value="1" />
                <el-option label="审批中" :value="2" />
                <el-option label="审批不通过" :value="3" />
                <el-option label="审批通过" :value="4" />
                <el-option label="已发货" :value="5" />
                <el-option label="已出库" :value="5" />
                <el-option label="部分发货" :value="6" />
              </el-select>
            </el-form-item>
@@ -994,7 +994,7 @@
                         align="center">
          <template #default="scope">
            <el-tag v-if="Number(scope.row.deliveryStatus) === 1"
                    type="info">未发货</el-tag>
                    type="info">未出库</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 2"
                    type="warning">审批中</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 3"
@@ -1002,7 +1002,7 @@
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 4"
                    type="primary">审批通过</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 5"
                    type="success">已发货</el-tag>
                    type="success">已出库</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 6"
                    type="warning">部分发货</el-tag>
            <el-tag v-else
@@ -2803,7 +2803,7 @@
      entryDate: null, // 录入日期
      entryDateStart: undefined,
      entryDateEnd: undefined,
      deliveryStatus: undefined, // 发货状态:1未发货 2审批中 3审批不通过 4审批通过 5已发货 6部分发货
      deliveryStatus: undefined, // 发货状态:1未出库 2审批中 3审批不通过 4审批通过 5已出库 6部分发货
      stockStatus: undefined, // 入库状态:0未入库 1部分入库 2已入库
      reviewStatus: undefined, // 审核状态:0待审核 1已审核 2已反审
    },
@@ -3114,7 +3114,7 @@
    if (operationType.value === "view") return;
    if (!row) return;
    if (isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能复制");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能复制");
      return;
    }
    const hasBlockingEditingRow = (productData.value || []).some(
@@ -3196,7 +3196,7 @@
    if (operationType.value === "view") return;
    if (!row) return;
    if (isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能编辑");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能编辑");
      return;
    }
    if (!discardPlaceholderRowIfPristine()) return;
@@ -3298,7 +3298,7 @@
    if (operationType.value === "view") return;
    if (!row) return;
    if (isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能编辑");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能编辑");
      return;
    }
    // 确保 productForm 指向当前行,以复用计算逻辑
@@ -3395,7 +3395,7 @@
    if (!row) return;
    if (operationType.value === "view") return;
    if (isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能编辑");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能编辑");
      return;
    }
    ensureProductRowDefaults(row);
@@ -3445,7 +3445,7 @@
    if (!row) return;
    if (operationType.value === "view") return;
    if (isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能编辑");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能编辑");
      return;
    }
    ensureProductRowDefaults(row);
@@ -3864,8 +3864,8 @@
    shipped: "/sales/ledger/salesHistory/shippingImportTemplate",
  };
  const HISTORY_IMPORT_TEMPLATE_FILE_NAME_MAP = {
    notShipped: "销售发货历史数据导入模板-未发货.xlsx",
    shipped: "销售发货历史数据导入模板-已发货.xlsx",
    notShipped: "销售发货历史数据导入模板-未出库.xlsx",
    shipped: "销售发货历史数据导入模板-已出库.xlsx",
  };
  const currentImportCommand = ref("default");
  const activeStatusTab = ref("all");
@@ -3875,7 +3875,7 @@
    { key: "reviewed", label: "已审核" },
    { key: "reverseReviewed", label: "反审核" },
    { key: "stocked", label: "已入库" },
    { key: "delivered", label: "已发货" },
    { key: "delivered", label: "已出库" },
  ];
  const resetStatusFilters = () => {
@@ -4985,9 +4985,9 @@
  const productIndex = ref(0);
  // 打开产品弹框
  const openProductForm = async (type, row, index) => {
    // 编辑时检查产品是否已发货或审核通过
    // 编辑时检查产品是否已出库或审核通过
    if (type === "edit" && isProductShipped(row)) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能编辑");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能编辑");
      return;
    }
@@ -5139,12 +5139,12 @@
      return;
    }
    // 检查是否有已发货或审核通过的产品
    // 检查是否有已出库或审核通过的产品
    const shippedProducts = productSelectedRows.value.filter(row =>
      isProductShipped(row)
    );
    if (shippedProducts.length > 0) {
      proxy.$modal.msgWarning("已发货或审核通过的产品不能删除");
      proxy.$modal.msgWarning("已出库或审核通过的产品不能删除");
      return;
    }
@@ -5347,24 +5347,24 @@
    );
    exportProcessRouteDialogVisible.value = false;
  };
  /** 判断单个产品是否已发货(根据shippingStatus判断,已发货或审核通过不可编辑和删除) */
  /** 判断单个产品是否已出库(根据shippingStatus判断,已出库或审核通过不可编辑和删除) */
  const isProductShipped = product => {
    if (!product) return false;
    const status = String(product.shippingStatus || "").trim();
    // 如果发货状态是"已发货"或"审核通过",则不可编辑和删除
    return status === "已发货" || status === "审核通过";
    // 如果发货状态是"已出库"或"审核通过",则不可编辑和删除
    return status === "已出库" || status === "审核通过";
  };
  /** 判断销售订单下是否存在已发货/发货完成的产品(不可删除) */
  /** 判断销售订单下是否存在已出库/发货完成的产品(不可删除) */
  const hasShippedProducts = products => {
    if (!products || !products.length) return false;
    return products.some(p => {
      const status = String(p.shippingStatus || "").trim();
      // 有发货日期或车牌号视为已发货
      // 有发货日期或车牌号视为已出库
      if (p.shippingDate || p.shippingCarNumber) return true;
      // 已进行发货、发货完成、已发货 均不可删除
      // 已进行发货、发货完成、已出库 均不可删除
      return (
        status === "已进行发货" || status === "发货完成" || status === "已发货"
        status === "已进行发货" || status === "发货完成" || status === "已出库"
      );
    });
  };
@@ -5880,9 +5880,9 @@
   * @param row 行数据
   */
  const getShippingStatusText = row => {
    // 如果已发货(有发货日期或车牌号),显示"已发货"
    // 如果已出库(有发货日期或车牌号),显示"已出库"
    if (row.shippingDate || row.shippingCarNumber) {
      return "已发货";
      return "已出库";
    }
    // 获取发货状态字段
@@ -5901,7 +5901,7 @@
      审核中: "审核中",
      审核拒绝: "审核拒绝",
      审核通过: "审核通过",
      已发货: "已发货",
      已出库: "已出库",
    };
    return statusTextMap[statusStr] || "待发货";
  };
@@ -5911,7 +5911,7 @@
   * @param row 行数据
   */
  const getShippingStatusType = row => {
    // 如果已发货(有发货日期或车牌号),显示绿色
    // 如果已出库(有发货日期或车牌号),显示绿色
    if (row.shippingDate || row.shippingCarNumber) {
      return "success";
    }
@@ -5932,7 +5932,7 @@
      审核中: "warning",
      审核拒绝: "danger",
      审核通过: "success",
      已发货: "success",
      已出库: "success",
    };
    return typeTextMap[statusStr] || "info";
  };
@@ -5948,7 +5948,7 @@
      return false;
    }
    // 台账级发货状态(deliveryStatus):2审批中、5已发货 时不可再发起本行发货;6部分发货仍可按明细继续发
    // 台账级发货状态(deliveryStatus):2审批中、5已出库 时不可再发起本行发货;6部分发货仍可按明细继续发
    const deliveryStatus = row.deliveryStatus;
    if (
      deliveryStatus !== null &&
@@ -5962,7 +5962,7 @@
    // 获取发货状态
    const shippingStatus = row.shippingStatus;
    // 如果已发货(有发货日期或车牌号),不能再次发货
    // 如果已出库(有发货日期或车牌号),不能再次发货
    if (row.shippingDate || row.shippingCarNumber) {
      return false;
    }
@@ -6012,14 +6012,14 @@
      return;
    }
    // 允许:1未发货、3审批不通过、4审批通过、6部分发货;不允许:2审批中、5已发货
    // 允许:1未出库、3审批不通过、4审批通过、6部分发货;不允许:2审批中、5已出库
    const statusItem = selectedRows.value[0].deliveryStatus;
    const ledgerAllowsDelivery = s => [1, 3, 4, 6].includes(Number(s));
    let isTrue = true;
    selectedRows.value.forEach(row => {
      if (!ledgerAllowsDelivery(row.deliveryStatus)) {
        proxy.$modal.msgWarning(
          "仅未发货、审批不通过、审批通过或部分发货的台账可以发货"
          "仅未出库、审批不通过、审批通过或部分发货的台账可以发货"
        );
        isTrue = false;
        return;
@@ -6063,7 +6063,7 @@
    );
    if (shippedLedgers.length === selectedRows.value.length) {
      try {
        await ElMessageBox.alert("所选销售台账均已发货,不能再次发货。", "提示", {
        await ElMessageBox.alert("所选销售台账均已出库,不能再次发货。", "提示", {
          type: "warning",
          confirmButtonText: "知道了",
        });
@@ -6075,7 +6075,7 @@
    if (shippedLedgers.length > 0) {
      try {
        await ElMessageBox.alert(
          "选中的销售台账中包含已发货记录,已发货的不能再次发货,系统将仅为未发货台账处理。",
          "选中的销售台账中包含已出库记录,已出库的不能再次发货,系统将仅为未出库台账处理。",
          "提示",
          {
            type: "warning",
@@ -6177,7 +6177,7 @@
    const status = Number(row.deliveryStatus);
    if (![1, 3, 4, 6].includes(status)) {
      proxy.$modal.msgWarning(
        "只有发货状态为未发货、审批不通过、审批通过或部分发货的记录才可以发货"
        "只有发货状态为未出库、审批不通过、审批通过或部分发货的记录才可以发货"
      );
      return;
    }