From 2e217b787931233134f5a656b3bc2503ed034eb7 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期二, 03 二月 2026 15:47:57 +0800
Subject: [PATCH] 增加开票,抬头关联发票抬头管理

---
 ui/admin-ui3/src/views/cwgl/voucherSubjectSetting/index.vue |   63 +++++++++++++++++++------------
 1 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/ui/admin-ui3/src/views/cwgl/voucherSubjectSetting/index.vue b/ui/admin-ui3/src/views/cwgl/voucherSubjectSetting/index.vue
index 66cfd60..b449e92 100644
--- a/ui/admin-ui3/src/views/cwgl/voucherSubjectSetting/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/voucherSubjectSetting/index.vue
@@ -34,7 +34,7 @@
 </template>
 
 <script setup name="voucherSubjectSetting" lang="ts">
-  import { listVoucherSubjectSettingLog,} from "@/api/cwgl/voucherSubjectSettingLog";
+import { listVoucherSubjectSettingLog, } from "@/api/cwgl/voucherSubjectSettingLog";
 
 import { VoucherSubjectSettingI, addVoucherSubjectSetting, delVoucherSubjectSetting, exportVoucherSubjectSetting, getVoucherSubjectSetting, listVoucherSubjectSetting, updateVoucherSubjectSetting } from "@/api/cwgl/voucherSubjectSetting";
 import useCurrentInstance from "@/utils/useCurrentInstance";
@@ -181,16 +181,21 @@
     //   //   }
     //   // ],
     // },
+    // 鍦� option.value.column 涓壘鍒� subjectName
+    // 鎵惧埌 option 閲岀殑 subjectName 鍒�
     subjectName: {
       label: '绉戠洰鍚嶇О',
-      minWidth: 150,
-
+      prop: 'subjectName', // 淇濇寔鍘熷 prop锛岃繖鏍峰脊绐楅噷鐨勮緭鍏ユ鎵嶆槸骞插噣鐨勫悕绉�
+      minWidth: 250,       // 鎷兼帴鍚庝細寰堥暱锛屽缓璁皟澶у搴�
       search: true,
+      overHidden: true,
+      // --- 浣跨敤 formatter 鏉ユ帶鍒惰〃鏍肩晫闈㈢殑鏄剧ず ---
+      formatter: (row: any) => {
+        // 浼樺厛鏄剧ず鎴戜滑閫掑綊鐢熸垚鐨勬嫾鎺ュ瓧娈碉紝濡傛灉娌℃湁锛堟瘮濡傚垰鏂板杩樻病鍒锋柊鐨勬暟鎹級锛屾樉绀哄師濮嬪悕绉�
+        return row.subjectNameWithParent || row.subjectName;
+      },
       rules: [
-        {
-          required: true,
-          message: "绉戠洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
-        }
+        { required: true, message: "绉戠洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
       ],
     },
     subjectCode: {
@@ -432,27 +437,40 @@
     updateApi: updateVoucherSubjectSetting,
     getListFunc: (res: any) => {
       // 1. 杞崲鏍戠粨鏋�
-      tableData.value = proxy.handleTree(res.rows, "id");
+      const tree = proxy.handleTree(res.rows, "id");
 
-      // 2. 浣跨敤閫掑綊鍑芥暟灞曞紑鎵�鏈夊眰绾�
+      // 2. 閫掑綊鎷兼帴鍚嶇О鍑芥暟 (鏍稿績淇敼)
+      const recursionFormatName = (list: any[], pName = '') => {
+        list.forEach(item => {
+          // 杩欓噷鐨勯�昏緫锛氬鏋滄湁鐖剁骇鍚嶇О锛屾嫾鍦ㄤ竴璧凤紱鍚﹀垯鍙樉绀鸿嚜宸�
+          item.subjectNameWithParent = pName ? `${pName} / ${item.subjectName}` : item.subjectName;
+
+          // 濡傛灉鏈夊瓙鑺傜偣锛岀户缁�掑綊锛屾妸褰撳墠鐨勬嫾鎺ョ粨鏋滀紶缁欏瓙鑺傜偣浣滀负 pName
+          if (item.children && item.children.length > 0) {
+            recursionFormatName(item.children, item.subjectNameWithParent);
+          }
+        });
+      };
+
+      // 鎵ц閫掑綊
+      recursionFormatName(tree);
+
+      // 3. 璧嬪�肩粰琛ㄦ牸鏁版嵁
+      tableData.value = tree;
+
+      // 4. 閫掑綊灞曞紑鎵�鏈夊眰绾� (浣犲師鏈夌殑閫昏緫)
       nextTick(() => {
         if (crudRef.value) {
           const tableMethods = crudRef.value.$refs.table;
           if (tableMethods && tableData.value) {
-
-            // --- 瀹氫箟閫掑綊灞曞紑鍑芥暟 ---
             const expandAllNodes = (list: any[]) => {
               list.forEach(row => {
-                // 鍙鏈夊瓙鑺傜偣锛屽氨鎵ц灞曞紑鍔ㄤ綔
                 if (row.children && row.children.length > 0) {
                   tableMethods.toggleRowExpansion(row, true);
-                  // 缁х画閫掑綊灞曞紑瀛愯妭鐐圭殑瀛愯妭鐐�
                   expandAllNodes(row.children);
                 }
               });
             };
-
-            // 鎵ц閫掑綊
             expandAllNodes(tableData.value);
           }
         }
@@ -650,17 +668,14 @@
 };
 const handleTabClick = (tab: any) => {
   const selectedTabName = tab.props.name;
-  console.log("Tab鐐瑰嚮鐨勫��:", selectedTabName);
   activeAccountSet.value = selectedTabName;
-  queryParams.value.type = selectedTabName;
-  const nextParams = {
-    ...queryParams.value,
-    type: selectedTabName
-  };
 
-  // 4. 閲嶇疆鍒嗛〉骞跺姞杞�
+  // 鍏堟竻绌哄綋鍓嶆暟鎹紝闃叉鏃ф暟鎹殑鏍戠粨鏋勫奖鍝嶆柊鏁版嵁鐨勬覆鏌�
+  tableData.value = [];
+
+  queryParams.value.type = selectedTabName;
   page.value.currentPage = 1;
-  onLoad(page.value, nextParams);
+  onLoad(page.value, { type: selectedTabName });
 }
 
 /**
@@ -706,7 +721,7 @@
   // 绀轰緥妯℃嫙鏁版嵁
   listVoucherSubjectSettingLog({ subjectId: row.id }).then((res) => {
     if (res.code == 200) {
-      logModalRef.value.open(res.rows,'payable');
+      logModalRef.value.open(res.rows, 'payable');
 
     }
   });

--
Gitblit v1.8.0