From d476be7eda60a04e0cbbc28c5aa048dfceffd789 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 03 七月 2026 15:39:23 +0800
Subject: [PATCH] 新增采购退货后,如果对应的采购退货审批也通过,采购退货记录不能删除,删除按钮置灰
---
src/views/salesManagement/returnOrder/index.vue | 115 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 68 insertions(+), 47 deletions(-)
diff --git a/src/views/salesManagement/returnOrder/index.vue b/src/views/salesManagement/returnOrder/index.vue
index 5a5aa05..1bcda4d 100644
--- a/src/views/salesManagement/returnOrder/index.vue
+++ b/src/views/salesManagement/returnOrder/index.vue
@@ -1,41 +1,29 @@
<template>
<div class="app-container">
- <div class="search-wrapper">
- <el-form :model="searchForm" class="demo-form-inline">
- <el-row :gutter="20">
- <el-col :span="4">
- <el-form-item label="閫�璐у崟鍙�">
- <el-input v-model="searchForm.returnNo" placeholder="璇疯緭鍏ラ��璐у崟鍙�" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="瀹㈡埛鍚嶇О">
- <el-input v-model="searchForm.customerName" placeholder="瀹㈡埛鍚嶇О" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="閿�鍞崟鍙�">
- <el-input v-model="searchForm.salesContractNo" placeholder="閿�鍞崟鍙�" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="鍏宠仈鍑哄簱鍗曞彿">
- <el-input v-model="searchForm.shippingNo" placeholder="鍏宠仈鍑哄簱鍗曞彿" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item>
- <el-button type="primary" @click="handleQuery">鎼滅储</el-button>
- <el-button @click="handleReset">閲嶇疆</el-button>
- </el-form-item>
- </el-col>
- </el-row>
+ <div class="search_form">
+ <el-form :model="searchForm" class="demo-form-inline" :inline="true">
+ <el-form-item label="閫�璐у崟鍙�">
+ <el-input v-model="searchForm.returnNo" placeholder="璇疯緭鍏ラ��璐у崟鍙�" clearable />
+ </el-form-item>
+ <el-form-item label="瀹㈡埛鍚嶇О">
+ <el-input v-model="searchForm.customerName" placeholder="瀹㈡埛鍚嶇О" clearable />
+ </el-form-item>
+ <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>
+ <el-form-item>
+ <el-button type="primary" @click="handleQuery">鎼滅储</el-button>
+ <el-button @click="handleReset">閲嶇疆</el-button>
+ </el-form-item>
</el-form>
</div>
<div class="table_list">
<div class="table_header" style="display: flex;justify-content: flex-end;margin-bottom: 10px;">
<el-button type="primary" @click="openForm('add')">鏂板缓閿�鍞��璐�</el-button>
- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
+ <el-button type="danger" :disabled="selectedRows.length === 0 || selectedRows.some(row => row.status !== 0)" @click="handleDelete">鍒犻櫎</el-button>
</div>
<PIMTable
rowKey="id"
@@ -49,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>
@@ -124,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) },
@@ -176,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);
};
@@ -219,16 +225,31 @@
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();
});
</script>
<style scoped lang="scss">
-.search-wrapper {
- background: white;
- padding: 1rem 1rem 0 1rem;
- border: 8px;
- border-radius: 16px;
+.table_list {
+ margin-top: unset;
}
</style>
--
Gitblit v1.9.3