From 203cf783a18b2a5e85ba4e80505c4a49d4ccc4a5 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 27 三月 2026 17:16:20 +0800
Subject: [PATCH] feat(销售台账): 新增打印销售标签功能

---
 src/views/basicData/customerFile/index.vue |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/src/views/basicData/customerFile/index.vue b/src/views/basicData/customerFile/index.vue
index cdb802b..326f3f9 100644
--- a/src/views/basicData/customerFile/index.vue
+++ b/src/views/basicData/customerFile/index.vue
@@ -592,7 +592,7 @@
     },
     {
       label: "瀹㈡埛鍦板尯",
-      prop: "regions",
+      prop: "regionsName",
       width: 120,
     },
     {
@@ -721,6 +721,8 @@
       taxpayerIdentificationNumber: "",
       companyAddress: "",
       regions: "",
+      regionsId: "",
+      regionsld: "",
       companyPhone: "",
       contactPerson: "",
       contactPhone: "",
@@ -958,10 +960,14 @@
     const ids = value || [];
     if (!ids.length) {
       form.value.regions = "";
+      form.value.regionsId = "";
+      form.value.regionsld = "";
       return;
     }
     const lastId = ids[ids.length - 1];
     form.value.regions = regionNodeMap.value.get(lastId)?.regionsName || "";
+    form.value.regionsId = lastId;
+    form.value.regionsld = lastId;
   };
   const findRegionPathByName = (tree, targetName, parentPath = []) => {
     for (const item of tree || []) {
@@ -970,6 +976,18 @@
         return currentPath;
       }
       const childResult = findRegionPathByName(item.children || [], targetName, currentPath);
+      if (childResult.length) return childResult;
+    }
+    return [];
+  };
+  const findRegionPathById = (tree, targetId, parentPath = []) => {
+    if (targetId === undefined || targetId === null || targetId === "") return [];
+    for (const item of tree || []) {
+      const currentPath = [...parentPath, item.id];
+      if (String(item.id) === String(targetId)) {
+        return currentPath;
+      }
+      const childResult = findRegionPathById(item.children || [], targetId, currentPath);
       if (childResult.length) return childResult;
     }
     return [];
@@ -1028,6 +1046,8 @@
     operationType.value = type;
     form.value = {};
     formRegionPath.value = [];
+    form.value.regionsId = "";
+    form.value.regionsld = "";
     form.value.maintainer = userStore.nickName;
     formYYs.value.contactList = [
       {
@@ -1042,10 +1062,23 @@
     if (type === "edit") {
       getCustomer(row.id).then(res => {
         form.value = { ...res.data };
-        formRegionPath.value = findRegionPathByName(
-          regionTreeData.value,
-          form.value.regions || ""
-        );
+        const regionIdForEdit = form.value.regionsId || form.value.regionsld;
+        formRegionPath.value = findRegionPathById(regionTreeData.value, regionIdForEdit);
+        if (!formRegionPath.value.length) {
+          formRegionPath.value = findRegionPathByName(
+            regionTreeData.value,
+            form.value.regionsName || form.value.regions || ""
+          );
+        }
+        const selectedRegionId =
+          formRegionPath.value.length > 0
+            ? formRegionPath.value[formRegionPath.value.length - 1]
+            : "";
+        if (selectedRegionId && !form.value.regions) {
+          form.value.regions = regionNodeMap.value.get(selectedRegionId)?.regionsName || "";
+        }
+        form.value.regionsId = form.value.regionsId || selectedRegionId;
+        form.value.regionsld = form.value.regionsld || form.value.regionsId || selectedRegionId;
         formYYs.value.contactList = res.data.contactPerson
           .split(",")
           .map((item, index) => {
@@ -1081,6 +1114,10 @@
     form.value.contactPhone = formYYs.value.contactList
       .map(item => item.contactPhone)
       .join(",");
+    if (!form.value.regionsId && formRegionPath.value.length) {
+      form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1];
+    }
+    form.value.regionsld = form.value.regionsId || "";
     addCustomer(form.value).then(res => {
       proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
       closeDia();
@@ -1095,6 +1132,10 @@
     form.value.contactPhone = formYYs.value.contactList
       .map(item => item.contactPhone)
       .join(",");
+    if (!form.value.regionsId && formRegionPath.value.length) {
+      form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1];
+    }
+    form.value.regionsld = form.value.regionsId || "";
     updateCustomer(form.value).then(res => {
       proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
       closeDia();

--
Gitblit v1.9.3