yyb
3 天以前 c2417d66aa2db613c2c4db1c4a053225e72e238b
销售台账发货新增部分发货字段
已修改1个文件
39 ■■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue
@@ -64,12 +64,14 @@
                       :value="1" />
            <el-option label="审批中"
                       :value="2" />
            <el-option label="审批失败"
            <el-option label="审批不通过"
                       :value="3" />
            <el-option label="审批通过"
                       :value="4" />
            <el-option label="已发货"
                       :value="5" />
            <el-option label="部分发货"
                       :value="6" />
          </el-select>
        </el-form-item>
        <el-form-item label="入库状态:">
@@ -373,6 +375,8 @@
                    type="primary">审批通过</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 5"
                    type="success">已发货</el-tag>
            <el-tag v-else-if="Number(scope.row.deliveryStatus) === 6"
                    type="warning">部分发货</el-tag>
            <el-tag v-else
                    type="info">-</el-tag>
          </template>
@@ -2005,7 +2009,7 @@
      entryDate: null, // 录入日期
      entryDateStart: undefined,
      entryDateEnd: undefined,
      deliveryStatus: undefined, // 发货状态:1未发货 2审批中 3审批失败 4已发货
      deliveryStatus: undefined, // 发货状态:1未发货 2审批中 3审批不通过 4审批通过 5已发货 6部分发货
      stockStatus: undefined, // 入库状态:0未入库 1部分入库 2已入库
    },
    form: {
@@ -4513,15 +4517,15 @@
      return false;
    }
    // 如果后端返回了台账级发货状态(deliveryStatus)
    // 1=已发货,则禁止再次发货
    // 台账级发货状态(deliveryStatus):2审批中、5已发货 时不可再发起本行发货;6部分发货仍可按明细继续发
    const deliveryStatus = row.deliveryStatus;
    if (
      deliveryStatus !== null &&
      deliveryStatus !== undefined &&
      String(deliveryStatus).trim() !== ""
    ) {
      if (Number(deliveryStatus) === 1) return false;
      const ds = Number(deliveryStatus);
      if (ds === 2 || ds === 5) return false;
    }
    // 获取发货状态
@@ -4577,12 +4581,16 @@
      return;
    }
    // 只允许【未发货/审批失败】进入发货流程
    // 允许: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 (row.deliveryStatus != 1 && row.deliveryStatus != 3) {
        proxy.$modal.msgWarning("仅未发货或审批失败的台账可以发货");
      if (!ledgerAllowsDelivery(row.deliveryStatus)) {
        proxy.$modal.msgWarning(
          "仅未发货、审批不通过、审批通过或部分发货的台账可以发货"
        );
        isTrue = false;
        return;
      }
@@ -4619,9 +4627,9 @@
      return;
    }
    // 已发货台账:弹窗提醒,不能再次发货(4 视为已发货)
    // 已全部发货(5)的台账:弹窗提醒,不能再次发货
    const shippedLedgers = selectedRows.value.filter(
      r => Number(r.deliveryStatus) === 4
      r => Number(r.deliveryStatus) === 5
    );
    if (shippedLedgers.length === selectedRows.value.length) {
      try {
@@ -4678,9 +4686,9 @@
    try {
      const targets = [];
      for (const ledger of selectedRows.value) {
        //如果已经是“审批中(2)”或“已发货(4)”,则跳过,不允许重复操作
        // 审批中(2)、已全部发货(5) 跳过;部分发货(6) 等仍收集可发明细
        const status = Number(ledger.deliveryStatus);
        if (status === 2 || status === 4) {
        if (status === 2 || status === 5) {
          console.warn(
            `台账编号 ${ledger.salesContractNo} 状态为 ${status},跳过发货`
          );
@@ -4736,10 +4744,11 @@
  // 打开发货弹框(单条)
  const openDeliveryForm = async row => {
    // 只允许【未发货/审批失败】发货;已发货/审批中不允许
    const status = Number(row.deliveryStatus);
    if (status !== 1 && status !== 3) {
      proxy.$modal.msgWarning("只有发货状态为未发货或审批失败的记录才可以发货");
    if (![1, 3, 4, 6].includes(status)) {
      proxy.$modal.msgWarning(
        "只有发货状态为未发货、审批不通过、审批通过或部分发货的记录才可以发货"
      );
      return;
    }