xiaoyi
2 天以前 3e60922de43102d506f3d23caea9b26239f452d9
完善售后退货及检验页面操作
已修改5个文件
40 ■■■■■ 文件已修改
src/views/aftersales/return/detail.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/aftersales/return/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/aftersales/return/modules/form.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/qc/rqc/modules/form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wls/returnsales/modules/form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/aftersales/return/detail.vue
@@ -121,9 +121,10 @@
  loading.value = true;
  try {
    ticketData.value = await getTicket(ticketIdFromQuery.value);
    saleOrderItems.value = [];
    if (ticketData.value?.saleOrderId) {
      const order = await getSaleOrder(ticketData.value.saleOrderId);
      saleOrderItems.value = (order as Record<string, unknown>).items as ErpSaleOrderApi.SaleOrderItem[] || [];
      saleOrderItems.value = order.items || [];
    }
  } finally {
    loading.value = false;
@@ -131,13 +132,14 @@
}
async function handleTicketChange(item: Record<string, unknown> | undefined) {
  saleOrderItems.value = [];
  if (!item?.id) { ticketData.value = undefined; return; }
  loading.value = true;
  try {
    ticketData.value = await getTicket(item.id as number);
    if (ticketData.value?.saleOrderId) {
      const order = await getSaleOrder(ticketData.value.saleOrderId);
      saleOrderItems.value = (order as Record<string, unknown>).items as ErpSaleOrderApi.SaleOrderItem[] || [];
      saleOrderItems.value = order.items || [];
    }
  } finally {
    loading.value = false;
@@ -155,6 +157,14 @@
  submitting.value = true;
  try {
    const formValues = await createFormApi.getValues();
    if (Number(formValues.returnType) === 3) {
      message.warning('仅退款流程尚未接入财务审核,暂不能创建退货申请');
      return;
    }
    if (!needReturnItems.value.length || needReturnItems.value.some((item) => !item.itemId || !item.returnQuantity || item.returnQuantity <= 0)) {
      message.warning('请先在售后工单中填写有效的退货物料及数量');
      return;
    }
    const newId = await createReturn({
      ticketId: ticketData.value!.id!,
      customerId: ticketData.value!.customerId!,
@@ -190,9 +200,13 @@
}
async function handleApprove() {
  await approveReturn(returnData.value!.id!);
  message.success('审核通过,已同步MES创建退货单');
  await loadReturn();
  try {
    await approveReturn(returnData.value!.id!);
    message.success('审核通过,已同步MES创建退货单');
    await loadReturn();
  } catch {
    // 请求层已显示失败原因;保留草稿供用户修正。
  }
}
function goBack() {
src/views/aftersales/return/index.vue
@@ -50,6 +50,8 @@
    await approveReturn(row.id!);
    message.success(`退货单 [${row.no}] 审核通过`);
    handleRefresh();
  } catch {
    // 请求层已显示失败原因;保留当前列表。
  } finally {
    hideLoading();
  }
src/views/aftersales/return/modules/form.vue
@@ -80,6 +80,8 @@
    message.success('审核通过成功');
    await modalApi.close();
    emit('success');
  } catch {
    // 请求层已显示失败原因;保留详情供用户核对。
  } finally {
    modalApi.unlock();
  }
src/views/mes/qc/rqc/modules/form.vue
@@ -104,6 +104,10 @@
  if (!valid) {
    return;
  }
  if ((await formApi.getValues()).checkResult == null) {
    message.warning('请先选择检测结果');
    return;
  }
  try {
    await confirm('是否完成退货检验单编制?【完成后将不能更改】');
  } catch {
@@ -129,6 +133,8 @@
    message.success('完成成功');
    await modalApi.close();
    emit('success');
  } catch {
    // 请求层已展示失败原因,保留检验单以便修改。
  } finally {
    modalApi.unlock();
  }
src/views/wls/returnsales/modules/form.vue
@@ -92,6 +92,8 @@
    message.success('提交成功');
    await modalApi.close();
    emit('success');
  } catch {
    // 请求层已展示失败原因,保留退货单供用户核对。
  } finally {
    modalApi.unlock();
  }
@@ -108,6 +110,8 @@
    message.success('上架成功');
    await modalApi.close();
    emit('success');
  } catch {
    // 请求层已展示失败原因,不关闭上架窗口。
  } finally {
    modalApi.unlock();
  }
@@ -124,6 +128,8 @@
    message.success('执行退货成功');
    await modalApi.close();
    emit('success');
  } catch {
    // 请求层已展示失败原因,不关闭退货窗口。
  } finally {
    modalApi.unlock();
  }