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