From b5b12cb8d780bff964b0c7f34e2ccbe5b768bde0 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 13 五月 2026 09:54:38 +0800
Subject: [PATCH] refactor(financial): 优化财务模块组件结构和交互逻辑
---
src/views/financialManagement/voucher/detailLedger.vue | 38 ++++++++++++++++++++++++--------------
1 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/src/views/financialManagement/voucher/detailLedger.vue b/src/views/financialManagement/voucher/detailLedger.vue
index 202ece1..8ed7dcb 100644
--- a/src/views/financialManagement/voucher/detailLedger.vue
+++ b/src/views/financialManagement/voucher/detailLedger.vue
@@ -2,7 +2,7 @@
<div class="app-container">
<el-form :model="filters" :inline="true">
<el-form-item label="浼氳绉戠洰:">
- <el-cascader v-model="filters.subject" :options="subjectOptions" :props="{ label: 'name', value: 'code' }" placeholder="璇烽�夋嫨浼氳绉戠洰" clearable style="width: 250px;" filterable />
+ <el-cascader v-model="filters.subject" :options="subjectOptions" :props="{ label: 'name', value: 'code', checkStrictly: true }" placeholder="璇烽�夋嫨浼氳绉戠洰" clearable style="width: 250px;" filterable />
</el-form-item>
<el-form-item label="杈呭姪鏍哥畻:">
<el-select v-model="filters.auxiliary" placeholder="璇烽�夋嫨杈呭姪鏍哥畻" clearable style="width: 180px;">
@@ -86,8 +86,8 @@
subject: [],
auxiliary: "",
auxiliaryItem: "",
- startMonth: "2024-01",
- endMonth: "2024-03",
+ startMonth: "",
+ endMonth: "",
});
const dataList = ref([]);
@@ -99,21 +99,24 @@
{ code: "6602", 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,
});
- const records = data?.records || [];
- if (records.length > 0) {
- subjectOptions.value = records
- .filter(item => item.subjectCode && item.subjectName)
- .map(item => ({
- code: item.subjectCode,
- name: item.subjectName,
- children: [],
- }));
+ const options = toCascaderTree(data?.records || []);
+ if (options.length > 0) {
+ subjectOptions.value = options;
return;
}
} catch (error) {
@@ -158,11 +161,18 @@
});
const currentSubject = computed(() => {
- if (!filters.subject || filters.subject.length === 0) return null;
- const code = filters.subject[filters.subject.length - 1];
+ const code = getSelectedSubjectCode(filters.subject);
+ if (!code) return null;
return findSubject(subjectOptions.value, code);
});
+const getSelectedSubjectCode = (subjectValue) => {
+ if (Array.isArray(subjectValue)) {
+ return subjectValue.length ? subjectValue[subjectValue.length - 1] : "";
+ }
+ return subjectValue || "";
+};
+
const findSubject = (options, code) => {
for (const item of options) {
if (item.code === code) return item;
--
Gitblit v1.9.3