From 50dcd8345bc5d7baa6c1c8d914793175a86d0b50 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 11 六月 2026 13:53:40 +0800
Subject: [PATCH] 修改销售台账工艺路线配置页面,增加导出工艺路线

---
 src/views/salesManagement/salesLedger/index.vue |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index cd38615..2dcf0a2 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -832,6 +832,7 @@
         </div>
         <ProcessFlowConfigSelectDialog v-model:visible="processFlowSelectDialogVisible"
                                        :default-route-id="processFlowSelectDefaultRouteId"
+                                       :default-record-list="processFlowSelectDefaultRecordList"
                                        :bound-route-name="processFlowSelectBoundRouteName"
                                        @confirm="handleProcessFlowSelectConfirm" />
         <div class="sales-ledger-toolbar-actions">
@@ -866,6 +867,17 @@
             <el-button type="primary"
                        @click="handleBulkDelivery"
                        :disabled="isBatchButtonDisabled('delivery')">鍙戣揣</el-button>
+            <el-date-picker v-model="processRouteExportDateRange"
+                            type="datetimerange"
+                            range-separator="鑷�"
+                            start-placeholder="寮�濮嬫椂闂�"
+                            end-placeholder="缁撴潫鏃堕棿"
+                            value-format="YYYY-MM-DD HH:mm:ss"
+                            format="YYYY-MM-DD HH:mm:ss"
+                            clearable
+                            style="width: 340px;" />
+            <el-button @click="handleExportProcessRoute"
+                       :disabled="isBatchButtonDisabled('export')">瀵煎嚭宸ヨ壓璺嚎</el-button>
           </el-space>
           <el-space v-else-if="activeStatusTab === 'stocked'"
                     wrap
@@ -2609,11 +2621,13 @@
   });
   const total = ref(0);
   const fileList = ref([]);
+  const processRouteExportDateRange = ref([]);
 
   // 宸ヨ壓璺嚎閰嶇疆閫夋嫨寮圭獥锛堢粦瀹氬埌鍙拌处浜у搧锛�
   const processFlowSelectDialogVisible = ref(false);
   const processFlowSelectLedgerRow = ref(null);
   const processFlowSelectDefaultRouteId = ref(null);
+  const processFlowSelectDefaultRecordList = ref([]);
   const processFlowSelectBoundRouteId = ref(null);
   const processFlowSelectBoundRouteName = ref("");
 
@@ -4282,6 +4296,7 @@
 
     processFlowSelectLedgerRow.value = ledgerRow;
     processFlowSelectDefaultRouteId.value = null;
+    processFlowSelectDefaultRecordList.value = [];
     processFlowSelectBoundRouteId.value = null;
     processFlowSelectBoundRouteName.value = "";
 
@@ -4291,25 +4306,29 @@
       const boundId = info?.processRouteId ?? info?.routeId ?? info?.id ?? null;
       const boundName =
         info?.processRouteName ?? info?.routeName ?? info?.name ?? "";
+      const recordList = Array.isArray(info?.recordList) ? info.recordList : [];
       processFlowSelectBoundRouteId.value = boundId;
       processFlowSelectBoundRouteName.value = boundName;
       processFlowSelectDefaultRouteId.value = boundId;
+      processFlowSelectDefaultRecordList.value = recordList;
     } catch (e) {
       // 鏌ヨ澶辫触鏃舵寜鏈粦瀹氬鐞嗭紝涓嶉樆濉炲脊绐�
       processFlowSelectBoundRouteId.value = null;
       processFlowSelectBoundRouteName.value = "";
       processFlowSelectDefaultRouteId.value = null;
+      processFlowSelectDefaultRecordList.value = [];
     }
 
     processFlowSelectDialogVisible.value = true;
   };
 
   // 缁戝畾宸ヨ壓璺嚎鍒板綋鍓嶅彴璐︽暟鎹�
-  const handleProcessFlowSelectConfirm = async routeId => {
+  const handleProcessFlowSelectConfirm = async payload => {
     const ledgerRow = processFlowSelectLedgerRow.value;
     if (!ledgerRow?.id) return;
 
-    const finalRouteId = routeId ?? null;
+    const finalRouteId = payload?.routeId ?? payload ?? null;
+    const recordList = Array.isArray(payload?.recordList) ? payload.recordList : [];
     if (!finalRouteId) return;
 
     const oldRouteId = processFlowSelectBoundRouteId.value;
@@ -4339,6 +4358,7 @@
       await saleProcessBind({
         salesLedgerId: ledgerRow.id,
         processRouteId: finalRouteId,
+        recordList,
       });
 
       proxy?.$modal?.msgSuccess?.("宸ヨ壓璺嚎缁戝畾鎴愬姛");
@@ -5292,6 +5312,37 @@
 
     proxy.download("/sales/ledger/exportWithProducts", params, "閿�鍞彴璐�.xlsx");
   };
+
+  const handleExportProcessRoute = () => {
+    if (selectedRows.value.length === 0) {
+      proxy?.$modal?.msgWarning?.("璇烽�夋嫨瑕佸鍑虹殑閿�鍞彴璐�");
+      return;
+    }
+    const salesLedgerIds = selectedRows.value
+      .map(item => item.id)
+      .filter(id => id !== null && id !== undefined && id !== "");
+    if (salesLedgerIds.length === 0) {
+      proxy?.$modal?.msgWarning?.("璇烽�夋嫨瑕佸鍑虹殑閿�鍞彴璐�");
+      return;
+    }
+
+    const params = {
+      salesLedgerIds: salesLedgerIds.join(","),
+    };
+    if (
+      Array.isArray(processRouteExportDateRange.value) &&
+      processRouteExportDateRange.value.length === 2
+    ) {
+      params.completedTimeStart = processRouteExportDateRange.value[0];
+      params.completedTimeEnd = processRouteExportDateRange.value[1];
+    }
+
+    proxy.download(
+      "/sales/ledger/exportProcessRoute",
+      params,
+      "閿�鍞彴璐﹀伐鑹鸿矾绾垮鍑�.xlsx"
+    );
+  };
   /** 鍒ゆ柇鍗曚釜浜у搧鏄惁宸插彂璐э紙鏍规嵁shippingStatus鍒ゆ柇锛屽凡鍙戣揣鎴栧鏍搁�氳繃涓嶅彲缂栬緫鍜屽垹闄わ級 */
   const isProductShipped = product => {
     if (!product) return false;

--
Gitblit v1.9.3