2026-07-08 64b38f57628375dff92d147ddeefd771e6e85439
src/views/salesManagement/returnOrder/index.vue
@@ -11,8 +11,8 @@
            <el-form-item label="销售单号">
               <el-input v-model="searchForm.salesContractNo" placeholder="销售单号" clearable />
            </el-form-item>
            <el-form-item label="关联出库单号">
               <el-input v-model="searchForm.shippingNo" placeholder="关联出库单号" clearable />
            <el-form-item label="关联发货单号">
               <el-input v-model="searchForm.shippingNo" placeholder="关联发货单号" clearable />
            </el-form-item>
            <el-form-item>
               <el-button type="primary" @click="handleQuery">搜索</el-button>
@@ -37,6 +37,9 @@
      >
        <template #status="{ row }">
          <el-tag :type="getStatusType(row.status)">{{ getStatusText(row.status) }}</el-tag>
        </template>
        <template #stockInApprovalStatus="{ row }">
          <el-tag :type="getStockInApprovalStatusType(row.stockInApprovalStatus)">{{ getStockInApprovalStatusText(row.stockInApprovalStatus) }}</el-tag>
        </template>
      </PIMTable>
    </div>
@@ -112,22 +115,32 @@
]);
const defaultColumns = [
  { label: "退货单号", prop: "returnNo", width: 160 },
  { label: "单据状态", prop: "status", width: 90, dataType: "slot", slot: "status" },
  { label: "制单时间", prop: "makeTime", width: 170 },
  { label: "客户名称", prop: "customerName", width: 220 },
  { label: "销售单号", prop: "salesContractNo", width: 160 },
  { label: "业务员", prop: "salesman", width: 120 },
  { label: "关联出库单号", prop: "shippingNo", width: 170 },
  { label: "项目名称", prop: "projectName", width: 180 },
  { label: "制单人", prop: "maker", width: 120 },
  { label: "退货单号", prop: "returnNo", minWidth: 160 },
  { label: "单据状态", prop: "status", minWidth: 90, dataType: "slot", slot: "status" },
  { label: "入库审批状态", prop: "stockInApprovalStatus", minWidth: 120, dataType: "slot", slot: "stockInApprovalStatus" },
  { label: "制单时间", prop: "makeTime", minWidth: 170 },
  { label: "客户名称", prop: "customerName", minWidth: 220 },
  { label: "销售单号", prop: "salesContractNo", minWidth: 160 },
  { label: "业务员", prop: "salesman", minWidth: 120 },
  { label: "关联发货单号", prop: "shippingNo", minWidth: 170 },
  {
    label: "发货类型",
    prop: "shippingType",
    minWidth: 100,
    formatData: (val) => ({ 1: "货车", 2: "快递" }[String(val)] || "--"),
  },
  { label: "发货车牌号", prop: "truckPlateDisplay", minWidth: 140 },
  { label: "快递公司", prop: "expressCompanyDisplay", minWidth: 140 },
  { label: "快递单号", prop: "expressNoDisplay", minWidth: 150 },
  { label: "项目名称", prop: "projectName", minWidth: 180 },
  { label: "制单人", prop: "maker", minWidth: 120 },
  {
    label: "操作",
    prop: "operation",
    dataType: "action",
    align: "center",
    fixed: "right",
    width: 240,
    minWidth: 240,
    operation: [
      { name: "编辑", disabled: (row) => row.status !== 0, type: "text", clickFun: (row) => openForm("edit", row) },
      { name: "退款处理", disabled: (row) => row.status !== 0, type: "text", clickFun: (row) => handleRowHandle(row) },
@@ -164,7 +177,12 @@
  tableLoading.value = true;
  returnManagementList({ ...searchForm.value, ...page }).then(res => {
    tableLoading.value = false;
    tableData.value = res?.data?.records || [];
    tableData.value = (res?.data?.records || []).map((row) => ({
      ...row,
      truckPlateDisplay: String(row?.shippingType) === "1" ? (row?.truckPlateNo || "--") : "--",
      expressCompanyDisplay: String(row?.shippingType) === "2" ? (row?.expressCompany || "--") : "--",
      expressNoDisplay: String(row?.shippingType) === "2" ? (row?.expressNo || "--") : "--",
    }));
    page.total = res?.data?.total || 0;
  }).finally(() => tableLoading.value = false);
};
@@ -207,6 +225,24 @@
  return statusMap[status] || "未知";
};
const getStockInApprovalStatusType = (status) => {
  const statusMap = {
    0: "",
    1: "success",
    2: "warning"
  };
  return statusMap[status] || "info";
};
const getStockInApprovalStatusText = (status) => {
  const statusMap = {
    0: "未审批",
    1: "已审批",
    2: "审批中"
  };
  return statusMap[status] || "未知";
};
onMounted(() => {
  getList();
});