From 2ecaa46e592beb911aba73591a77355f42399b28 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期一, 23 三月 2026 18:04:58 +0800
Subject: [PATCH] feat(反馈登记): 增加审批状态显示和统计数据获取功能

---
 src/views/customerService/feedbackRegistration/components/formDia.vue |   32 +++++++++++++++++++++++++++++---
 src/views/customerService/feedbackRegistration/index.vue              |   14 +++++++++-----
 2 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/views/customerService/feedbackRegistration/components/formDia.vue b/src/views/customerService/feedbackRegistration/components/formDia.vue
index 8f9bb91..93e5c6b 100644
--- a/src/views/customerService/feedbackRegistration/components/formDia.vue
+++ b/src/views/customerService/feedbackRegistration/components/formDia.vue
@@ -106,6 +106,11 @@
                 :column="tableColumn"
                 :tableData="tableData"
             >
+              <template #approveStatus="{ row }">
+                <el-tag :type="getApproveStatusType(row)" size="small">
+                  {{ getApproveStatusText(row) }}
+                </el-tag>
+              </template>
               <template #shippingStatus="{ row }">
                 <el-tag :type="getShippingStatusType(row)" size="small">
                   {{ getShippingStatusText(row) }}
@@ -219,9 +224,8 @@
     prop: "approveStatus",
     width: 100,
     align: "center",
-    dataType: "tag",
-    formatData: (v) => (v === 1 ? "鍏呰冻" : "涓嶈冻"),
-    formatType: (v) => (v === 1 ? "success" : "danger"),
+    dataType: "slot",
+    slot: "approveStatus",
   },
   {
     label: "鍙戣揣鐘舵��",
@@ -304,9 +308,15 @@
 })
 
 const customerNameChange = (val) => {
+  form.value.salesContractNo = "";
+  form.value.salesLedgerId = null;
+  tableData.value = [];
+  associatedSalesOrderNumberOptions.value = [];
   const opt = customerNameOptions.value.find(item => item.value === val);
   if (opt) {
     form.value.customerId = opt.id;
+  } else {
+    form.value.customerId = null;
   }
   getSalesLedger({
     customerName: form.value.customerName
@@ -322,6 +332,22 @@
   })
 }
 
+const getApproveStatusText = (row) => {
+  if (!row) return '涓嶈冻'
+  if (row.approveStatus === 1 && (!row.shippingDate || !row.shippingCarNumber)) {
+    return '鍏呰冻'
+  }
+  if (row.approveStatus === 0 && (row.shippingDate || row.shippingCarNumber)) {
+    return '宸插嚭搴�'
+  }
+  return '涓嶈冻'
+}
+
+const getApproveStatusType = (row) => {
+  const statusText = getApproveStatusText(row)
+  return statusText === '涓嶈冻' ? 'danger' : 'success'
+}
+
 const getShippingStatusText = (row) => {
   if (!row) return '寰呭彂璐�'
   if (row.shippingDate || row.shippingCarNumber) {
diff --git a/src/views/customerService/feedbackRegistration/index.vue b/src/views/customerService/feedbackRegistration/index.vue
index 3a2d362..e307dda 100644
--- a/src/views/customerService/feedbackRegistration/index.vue
+++ b/src/views/customerService/feedbackRegistration/index.vue
@@ -404,15 +404,19 @@
       });
 };
 
+const getStatsCountByStatus = (list, status) => {
+  if (!Array.isArray(list)) return 0;
+  return list.find((item) => item?.status === status)?.count || 0;
+};
+
   // 鑾峰彇缁熻鏁版嵁骞跺埛鏂伴《閮ㄥ崱鐗�
   const getSalesLedgerDetails = () => {
     getSalesLedgerDetail({}).then((res) => {
       if (res.code === 200) {
-        statsList.value[0].count = res.data.filter((item) => item.status === 3)[0].count;
-        statsList.value[1].count = res.data.filter((item) => item.status === 2)[0].count;
-        statsList.value[2].count = res.data.filter((item) => item.status === 1)[0].count;
-
-        // });
+        const statsData = Array.isArray(res.data) ? res.data : [];
+        statsList.value[0].count = getStatsCountByStatus(statsData, 3);
+        statsList.value[1].count = getStatsCountByStatus(statsData, 2);
+        statsList.value[2].count = getStatsCountByStatus(statsData, 1);
       }
     });
   }

--
Gitblit v1.9.3