From 14363b1ae7cb0d730158ec8dfbee55a85b2fc09f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 12 五月 2026 15:23:17 +0800
Subject: [PATCH] feat(financial): 实现财务模块数据接口联调
---
src/views/financialManagement/voucher/generalLedger.vue | 107 ++++++++++++++++++++++++++---------------------------
1 files changed, 53 insertions(+), 54 deletions(-)
diff --git a/src/views/financialManagement/voucher/generalLedger.vue b/src/views/financialManagement/voucher/generalLedger.vue
index 5da2d70..b21feac 100644
--- a/src/views/financialManagement/voucher/generalLedger.vue
+++ b/src/views/financialManagement/voucher/generalLedger.vue
@@ -28,13 +28,13 @@
<el-table-column prop="date" label="鏃ユ湡" width="120" />
<el-table-column prop="voucherNo" label="鍑瘉瀛楀彿" width="120" />
<el-table-column prop="summary" label="鎽樿" min-width="200" show-overflow-tooltip />
- <el-table-column label="鍊熸柟" width="150">
+ <el-table-column prop="debit" label="鍊熸柟" width="150">
<template #default="{ row }">
<span v-if="row.debit > 0" class="text-danger">楼{{ formatMoney(row.debit) }}</span>
<span v-else>-</span>
</template>
</el-table-column>
- <el-table-column label="璐锋柟" width="150">
+ <el-table-column prop="credit" label="璐锋柟" width="150">
<template #default="{ row }">
<span v-if="row.credit > 0" class="text-success">楼{{ formatMoney(row.credit) }}</span>
<span v-else>-</span>
@@ -60,6 +60,8 @@
<script setup>
import { ref, reactive, onMounted, computed } from "vue";
import { ElMessage } from "element-plus";
+import { listAccountSubject } from "@/api/financialManagement/accountSubject";
+import { getGeneralLedger } from "@/api/financialManagement/ledger";
defineOptions({
name: "绉戠洰鎬昏处",
@@ -72,42 +74,47 @@
});
const dataList = ref([]);
+const subjectOptions = ref([]);
-const subjectOptions = [
- {
- code: "1001",
- name: "搴撳瓨鐜伴噾",
- children: [],
- },
- {
- code: "1002",
- name: "閾惰瀛樻",
- children: [
- { code: "100201", name: "宸ュ晢閾惰" },
- { code: "100202", name: "寤鸿閾惰" },
- ],
- },
- {
- code: "1122",
- name: "搴旀敹璐︽",
- children: [],
- },
- {
- code: "2202",
- name: "搴斾粯璐︽",
- children: [],
- },
- {
- code: "6001",
- name: "涓昏惀涓氬姟鏀跺叆",
- children: [],
- },
+const fallbackSubjects = [
+ { code: "1001", name: "搴撳瓨鐜伴噾" },
+ { code: "1002", name: "閾惰瀛樻" },
+ { code: "1122", name: "搴旀敹璐︽" },
+ { code: "2202", name: "搴斾粯璐︽" },
+ { code: "6001", name: "涓昏惀涓氬姟鏀跺叆" },
];
+
+const toCascaderTree = (nodes = []) =>
+ nodes
+ .filter(item => item.subjectCode && item.subjectName)
+ .map(item => ({
+ code: item.subjectCode,
+ name: item.subjectName,
+ children: toCascaderTree(item.children || []),
+ }));
+
+const loadSubjectOptions = async () => {
+ try {
+ const { data } = await listAccountSubject({
+ current: 1,
+ size: 1000,
+ status: 0,
+ });
+ const options = toCascaderTree(data?.records || []);
+ if (options.length > 0) {
+ subjectOptions.value = options;
+ return;
+ }
+ } catch (error) {
+ // 鍏ㄥ眬鎷︽埅鍣ㄥ凡鎻愮ず锛屼笅闈㈣蛋鍏滃簳绉戠洰
+ }
+ subjectOptions.value = fallbackSubjects.map(item => ({ ...item, children: [] }));
+};
const currentSubject = computed(() => {
if (!filters.subject || filters.subject.length === 0) return null;
const code = filters.subject[filters.subject.length - 1];
- return findSubject(subjectOptions, code);
+ return findSubject(subjectOptions.value, code);
});
const findSubject = (options, code) => {
@@ -126,30 +133,22 @@
return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};
-const mockData = [
- { date: "2024-01-01", voucherNo: "-", summary: "鏈熷垵浣欓", debit: 0, credit: 0, direction: "鍊�", balance: 100000 },
- { date: "2024-01-05", voucherNo: "璁�-0001", summary: "閿�鍞敹鍏�", debit: 5650, credit: 0, direction: "鍊�", balance: 105650 },
- { date: "2024-01-10", voucherNo: "璁�-0002", summary: "閲囪喘鏀嚭", debit: 0, credit: 8000, direction: "鍊�", balance: 97650 },
- { date: "2024-01-15", voucherNo: "璁�-0003", summary: "鏀跺埌璐ф", debit: 10000, credit: 0, direction: "鍊�", balance: 107650 },
- { date: "2024-01-20", voucherNo: "璁�-0004", summary: "鏀粯璐圭敤", debit: 0, credit: 5000, direction: "鍊�", balance: 102650 },
- { date: "2024-01-31", voucherNo: "-", summary: "鏈湀鍚堣", debit: 15650, credit: 13000, direction: "鍊�", balance: 102650 },
- { date: "2024-02-01", voucherNo: "-", summary: "鏈熷垵浣欓", debit: 0, credit: 0, direction: "鍊�", balance: 102650 },
- { date: "2024-02-10", voucherNo: "璁�-0005", summary: "閿�鍞敹鍏�", debit: 8000, credit: 0, direction: "鍊�", balance: 110650 },
- { date: "2024-02-15", voucherNo: "璁�-0006", summary: "閲囪喘鏀嚭", debit: 0, credit: 12000, direction: "鍊�", balance: 98650 },
- { date: "2024-02-28", voucherNo: "-", summary: "鏈湀鍚堣", debit: 8000, credit: 12000, direction: "鍊�", balance: 98650 },
- { date: "2024-03-01", voucherNo: "-", summary: "鏈熷垵浣欓", debit: 0, credit: 0, direction: "鍊�", balance: 98650 },
- { date: "2024-03-05", voucherNo: "璁�-0007", summary: "閿�鍞敹鍏�", debit: 12000, credit: 0, direction: "鍊�", balance: 110650 },
- { date: "2024-03-10", voucherNo: "璁�-0008", summary: "鏀粯宸ヨ祫", debit: 0, credit: 15000, direction: "鍊�", balance: 95650 },
- { date: "2024-03-31", voucherNo: "-", summary: "鏈湀鍚堣", debit: 12000, credit: 15000, direction: "鍊�", balance: 95650 },
- { date: "2024-03-31", voucherNo: "-", summary: "鏈勾绱", debit: 35650, credit: 40000, direction: "鍊�", balance: 95650 },
-];
-
-const getTableData = () => {
+// 鑱旇皟绾﹀畾锛氭�昏处鎺ュ彛杩斿洖琛屾暟缁勶紙rowType/date/voucherNo/summary/debit/credit/direction/balance锛�
+const getTableData = async () => {
if (!currentSubject.value) {
dataList.value = [];
return;
}
- dataList.value = [...mockData];
+ try {
+ const { data } = await getGeneralLedger({
+ subjectCode: currentSubject.value.code,
+ startMonth: filters.startMonth,
+ endMonth: filters.endMonth,
+ });
+ dataList.value = Array.isArray(data) ? data : data?.records || [];
+ } catch (error) {
+ // 鎻愮ず鐢卞叏灞�璇锋眰鎷︽埅鍣ㄥ鐞嗭紝杩欓噷浠呴槻姝㈡湭鎹曡幏寮傚父
+ }
};
const resetFilters = () => {
@@ -190,8 +189,8 @@
ElMessage.success("瀵煎嚭鎴愬姛");
};
-onMounted(() => {
- // 榛樿涓嶅姞杞芥暟鎹紝闇�瑕侀�夋嫨绉戠洰
+onMounted(async () => {
+ await loadSubjectOptions();
});
</script>
--
Gitblit v1.9.3