From f3cfb481498d67e99166478c5675cc9cee7dd9a1 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 29 四月 2026 13:10:42 +0800
Subject: [PATCH] fix: 付款方式更改为查询字典
---
src/views/financialManagement/revenueManagement/index.vue | 53 ++++++++++++++++++++------
src/views/procurementManagement/paymentEntry/index.vue | 27 +++++++++++--
2 files changed, 62 insertions(+), 18 deletions(-)
diff --git a/src/views/financialManagement/revenueManagement/index.vue b/src/views/financialManagement/revenueManagement/index.vue
index 12abfe3..70b58df 100644
--- a/src/views/financialManagement/revenueManagement/index.vue
+++ b/src/views/financialManagement/revenueManagement/index.vue
@@ -7,13 +7,13 @@
</el-form-item>
<el-form-item label="鏀舵鏂瑰紡:">
<el-select
- v-model="filters.incomeMethod"
+ v-model="filters.incomeMethodLabel"
placeholder="璇烽�夋嫨"
clearable
style="width: 200px;"
>
<el-option
- v-for="item in payment_methods"
+ v-for="item in incomeMethodOptions"
:key="item.value"
:label="item.label"
:value="item.value"
@@ -56,6 +56,11 @@
@selection-change="handleSelectionChange"
@pagination="changePage"
>
+ <template #incomeMethodSlot="{ row }">
+ <el-tag>
+ {{ getIncomeMethodLabel(row) }}
+ </el-tag>
+ </template>
<template #operation="{ row }">
<el-button
type="primary"
@@ -107,11 +112,25 @@
const { proxy } = getCurrentInstance();
const modalRef = ref();
const { payment_methods } = proxy.useDict("payment_methods");
+const { receipt_payment_type } = proxy.useDict("receipt_payment_type");
const { income_types } = proxy.useDict("income_types");
const fileListRef = ref(null);
const fileListDialogVisible = ref(false);
const currentFileRow = ref(null);
const accountType = ref('鏀跺叆');
+
+const incomeMethodOptions = computed(() => {
+ const merged = [...(payment_methods.value || []), ...(receipt_payment_type.value || [])];
+ const uniqueMap = new Map();
+ merged.forEach((item) => {
+ const label = item?.label;
+ if (!label) return;
+ if (!uniqueMap.has(label)) {
+ uniqueMap.set(label, { label, value: label });
+ }
+ });
+ return Array.from(uniqueMap.values());
+});
const {
filters,
@@ -124,7 +143,7 @@
} = usePaginationApi(
listPage,
{
- incomeMethod: undefined,
+ incomeMethodLabel: undefined,
entryDate: undefined,
},
[
@@ -162,17 +181,11 @@
},
{
label: "鏀舵鏂瑰紡",
- prop: "incomeMethod",
+ prop: "incomeMethodLabel",
align: 'center',
width: '100',
- dataType: "tag",
- formatData: (params) => {
- if (payment_methods.value.find((m) => m.value == params)) {
- return payment_methods.value.find((m) => m.value == params).label;
- } else {
- return null
- }
- },
+ dataType: "slot",
+ slot: "incomeMethodSlot",
},
{
label: "鍙戠エ鍙风爜",
@@ -201,7 +214,13 @@
align: "center",
width: "160px",
},
- ]
+ ],
+ undefined,
+ {
+ incomeMethodLabel: (value) => ({
+ incomeMethodLabel: value || undefined,
+ }),
+ }
);
// 琛ㄦ牸鍚堣锛氭敹鍏ラ噾棰�
@@ -209,6 +228,14 @@
return proxy.summarizeTable(param, ["incomeMoney"]);
};
+const getIncomeMethodLabel = (row) => {
+ const methodValue = row?.incomeMethod;
+ const dictList = String(row?.businessType) === "1"
+ ? receipt_payment_type.value
+ : payment_methods.value;
+ return dictList.find((item) => item.value == methodValue)?.label || "--";
+};
+
// 澶氶�夊悗鍋氫粈涔�
const handleSelectionChange = (selectionList) => {
multipleList.value = selectionList;
diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue
index cb93562..8d781e5 100644
--- a/src/views/procurementManagement/paymentEntry/index.vue
+++ b/src/views/procurementManagement/paymentEntry/index.vue
@@ -89,8 +89,12 @@
placeholder="璇烽�夋嫨"
clearable
>
- <el-option label="鐢垫眹" value="鐢垫眹" />
- <el-option label="鎵垮厬" value="鎵垮厬" />
+ <el-option
+ v-for="item in checkout_payment"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
</el-select>
</template>
</el-table-column>
@@ -183,8 +187,12 @@
<el-table-column label="浠樻鏂瑰紡" width="160">
<template #default="{ row }">
<el-select v-model="row.paymentMethod" placeholder="璇烽�夋嫨" clearable>
- <el-option label="鐢垫眹" value="鐢垫眹" />
- <el-option label="鎵垮厬" value="鎵垮厬" />
+ <el-option
+ v-for="item in checkout_payment"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
</el-select>
</template>
</el-table-column>
@@ -239,6 +247,7 @@
import { getCurrentDate } from "@/utils/index.js";
const { proxy } = getCurrentInstance();
+const { checkout_payment } = proxy.useDict("checkout_payment");
const tableColumn = ref([
{
type: "expand",
@@ -512,7 +521,15 @@
return;
}
}
- paymentRegistrationAdd(forms.value).then(() => {
+ const normalizePaymentMethodValue = (method) => {
+ const hit = checkout_payment.value.find((item) => item.value == method || item.label == method);
+ return hit ? hit.value : method;
+ };
+ const submitRows = forms.value.map((item) => ({
+ ...item,
+ paymentMethod: normalizePaymentMethodValue(item.paymentMethod),
+ }));
+ paymentRegistrationAdd(submitRows).then(() => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeDia();
getList();
--
Gitblit v1.9.3