From 6a0932f331e02438aa082868097e8884e96cd9c6 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 07 一月 2026 16:14:11 +0800
Subject: [PATCH] 新增开票接口

---
 ui/admin-ui3/src/components/NestedDetailDialog/index.vue |  127 +++++++++++++++++++++++++++++++-----------
 1 files changed, 94 insertions(+), 33 deletions(-)

diff --git a/ui/admin-ui3/src/components/NestedDetailDialog/index.vue b/ui/admin-ui3/src/components/NestedDetailDialog/index.vue
index 20e79ad..b0de4e5 100644
--- a/ui/admin-ui3/src/components/NestedDetailDialog/index.vue
+++ b/ui/admin-ui3/src/components/NestedDetailDialog/index.vue
@@ -6,10 +6,10 @@
                 <el-descriptions title="璐﹀崟淇℃伅" :column="3" border class="mb-5">
                     <el-descriptions-item label="绯荤粺缂栧彿">{{ billInfo.systemNo }}</el-descriptions-item>
                     <el-descriptions-item label="璐﹀崟鍚嶇О">{{ billInfo.billName }}</el-descriptions-item>
-                    <el-descriptions-item :label="type == 'receivable' ? '瀹㈡埛鍚嶇О' : '渚涘簲鍟嗗悕绉�'">
-                        {{ billInfo.customerName }}
-                    </el-descriptions-item>
-
+                    <el-descriptions-item v-if="type == 'receivable'" label="瀹㈡埛鍚嶇О">{{ billInfo.customerName
+                        }}</el-descriptions-item>
+                    <el-descriptions-item v-if="type == 'payable'" label="渚涘簲鍟嗗悕绉�">{{ billInfo.supplierName
+                        }}</el-descriptions-item>
                     <el-descriptions-item label="鍗曟嵁鏁伴噺">{{ billInfo.documentCount }}</el-descriptions-item>
                     <el-descriptions-item label="搴旂粨绠楅噾棰�">
                         <span class="text-bold">{{ billInfo.totalAmount }}</span>
@@ -63,11 +63,23 @@
                         </template>
                     </el-table-column>
                     <el-table-column prop="documentNo" label="鍗曟嵁缂栧彿" width="160" align="center" />
-                    <el-table-column prop="customerName" :label="type === 'receivable' ? '瀹㈡埛鍚嶇О' : '渚涘簲鍟嗗悕绉�'"
-                        min-width="150" align="center" />
-                    <el-table-column prop="projectName" label="椤圭洰鍚嶇О" align="center" />
-                    <el-table-column prop="receivableAmount" :label="type === 'receivable' ? '搴旀敹閲戦' : '搴斾粯閲戦'"
+
+                    <el-table-column v-if="type == 'receivable'" prop="customerName" label="瀹㈡埛鍚嶇О" min-width="150"
                         align="center" />
+                    <el-table-column v-if="type == 'payable'" prop="supplierName" label="渚涘簲鍟嗗悕绉�" min-width="150"
+                        align="center" />
+                    <el-table-column prop="projectName" label="椤圭洰鍚嶇О" align="center" />
+                    <el-table-column v-if="type == 'receivable'" label="'搴旀敹閲戦" align="center">
+                        <template #default="scope">
+                            <div v-html="formatAmountStr(scope.row.receivableAmountStr)"></div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column v-if="type == 'payable'" label="搴斾粯閲戦" align="center">
+                        <template #default="scope">
+                            <div v-html="formatAmountStr(scope.row.payableAmountStr)"></div>
+                        </template>
+                    </el-table-column>
+
                     <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
                         <template #default="scope">
                             <el-button type="text" @click="handleExamine(scope.row)">鏌ョ湅
@@ -93,12 +105,15 @@
 <script setup lang="ts">
 import { ref, reactive } from 'vue';
 import { getReceivableBillManagement } from "@/api/cwgl/receivableBillManagement";
-import { listReceivableFeeManagement } from "@/api/cwgl/receivableFeeManagement";
+import { listReceivableFeeManagement, getReceivableFeeManagement } from "@/api/cwgl/receivableFeeManagement";
 import useCurrentInstance from "@/utils/useCurrentInstance";
 import DetailModal from '@/components/DetailModal/index.vue';
+
 import {
-    getReceivableFeeManagement,
-} from "@/api/cwgl/receivableFeeManagement";
+    listPayableFeeManagement, getPayableFeeManagement
+} from "@/api/cwgl/payableFeeManagement";
+import { getPayableBillManagement, } from "@/api/cwgl/payableBillManagement";
+
 const { proxy } = useCurrentInstance()
 const { sys_system, sys_business, sys_receipts, sys_supplier, sys_whether_type, sys_currency } = proxy.useDict(
     'sys_system',
@@ -113,6 +128,7 @@
 const props = defineProps<{
     type: 'receivable' | 'payable'
 }>();
+console.log(props.type);
 
 const visible = ref(false);
 const loading = ref(false);
@@ -135,14 +151,27 @@
 const getDataList = () => {
     if (!queryParams.relatedBillNo) return;
     loading.value = true;
-    listReceivableFeeManagement(queryParams).then(res => {
-        if (res.code === 200) {
-            mainTableData.value = res.rows || [];
-            pageF.total = res.total || 0;
-        }
-    }).finally(() => {
-        loading.value = false;
-    });
+    if (props.type === 'receivable') {
+        listReceivableFeeManagement(queryParams).then(res => {
+            if (res.code === 200) {
+                mainTableData.value = res.rows || [];
+                pageF.total = res.total || 0;
+            }
+        }).finally(() => {
+            loading.value = false;
+        });
+    } else {
+        listPayableFeeManagement(queryParams).then(res => {
+            if (res.code === 200) {
+                mainTableData.value = res.rows || [];
+                console.log(mainTableData.value);
+
+                pageF.total = res.total || 0;
+            }
+        }).finally(() => {
+            loading.value = false;
+        });
+    }
 };
 
 /** 鎵撳紑寮圭獥涓诲叆鍙� */
@@ -158,24 +187,56 @@
 
 /** 鑾峰彇璐﹀崟椤堕儴璇︽儏淇℃伅 */
 const fetchBillDetail = (id: string | number) => {
-    getReceivableBillManagement(id).then((response) => {
-        if (response.code == 200) {
-            billInfo.value = response.data;
-            queryParams.relatedBillNo = response.data.systemNo;
-            visible.value = true;
-            // 璇︽儏鎷垮埌鍚庯紝鍔犺浇琛ㄦ牸
-            getDataList();
-        }
-    });
+    if (props.type === 'receivable') {
+
+        getReceivableBillManagement(id).then((response) => {
+            if (response.code == 200 && response.data) {
+                billInfo.value = response.data;
+                queryParams.relatedBillNo = response.data.systemNo;
+                visible.value = true;
+                // 璇︽儏鎷垮埌鍚庯紝鍔犺浇琛ㄦ牸
+                getDataList();
+            }
+        });
+    } else {
+        getPayableBillManagement(id).then((response) => {
+            if (response.code == 200 && response.data) {
+                billInfo.value = response.data;
+                queryParams.relatedBillNo = response.data.systemNo;
+                visible.value = true;
+                // 璇︽儏鎷垮埌鍚庯紝鍔犺浇琛ㄦ牸
+                getDataList();
+            }
+        });
+    }
 };
 const detailModalRef = ref(null);
 const handleExamine = (row) => {
-    getReceivableFeeManagement(row.id).then((res) => {
-        if (res.code === 200) {
-            detailModalRef.value.open(res.data);
-        }
-    });
+    if (props.type === 'receivable') {
+        getReceivableFeeManagement(row.id).then((res) => {
+            if (res.code === 200) {
+                detailModalRef.value.open(res.data);
+            }
+        });
+    } else {
+        getPayableFeeManagement(row.id).then((res) => {
+            if (res.code === 200) {
+                detailModalRef.value.open(res.data);
+            }
+        });
+    }
 
+
+};
+/**
+ * 灏嗛噾棰濆瓧绗︿覆涓殑鈥滃竵鈥濆悗闈㈠姞涓婃崲琛�
+ * 
+ */
+const formatAmountStr = (str: string) => {
+    if (!str) return '';
+    // 姝e垯瑙i噴锛氭壘鍒扳�滄腐甯佲�濇垨鈥滀汉姘戝竵鈥濓紝骞跺湪鍏跺悗鍔犱笂鎹㈣绗�
+    // 濡傛灉甯佺杈冨锛屽彲浠ョ粺涓�鍖归厤 "甯� "锛堝甫绌烘牸鐨勫竵锛�
+    return str.replace(/(娓竵|浜烘皯甯�)\s+/g, '$1<br/>');
 };
 defineExpose({ open });
 </script>

--
Gitblit v1.8.0