From 761f38e975bc4f4d6973eb92996504928e1b30b0 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 16 五月 2025 16:31:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/api/salesManagement/invoiceLedger.js | 9 +++
src/views/salesManagement/receiptPaymentLedger/index.vue | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 168 insertions(+), 0 deletions(-)
diff --git a/src/api/salesManagement/invoiceLedger.js b/src/api/salesManagement/invoiceLedger.js
index a55730e..78d978f 100644
--- a/src/api/salesManagement/invoiceLedger.js
+++ b/src/api/salesManagement/invoiceLedger.js
@@ -55,3 +55,12 @@
})
}
+// 鍒嗛〉鏌ヨ
+export function invoiceLedgerSalesAccount(query) {
+ return request({
+ url: '/invoiceLedger/salesAccount',
+ method: 'get',
+ params: query
+ })
+}
+
diff --git a/src/views/salesManagement/receiptPaymentLedger/index.vue b/src/views/salesManagement/receiptPaymentLedger/index.vue
new file mode 100644
index 0000000..0fbd7ff
--- /dev/null
+++ b/src/views/salesManagement/receiptPaymentLedger/index.vue
@@ -0,0 +1,159 @@
+<template>
+ <div class="app-container">
+ <div class="search_form">
+ <div>
+ <span class="search_title">鍥炴鍙拌处</span>
+ <el-input
+ v-model="searchForm.searchText"
+ style="width: 240px"
+ placeholder="杈撳叆瀹㈡埛鍚嶇О鎼滅储"
+ @change="handleQuery"
+ clearable
+ :prefix-icon="Search"
+ />
+ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
+ </div>
+ </div>
+ <div style="display: flex">
+ <div class="table_list">
+ <el-table :data="tableData" border v-loading="tableLoading"
+ @selection-change="handleSelectionChange"
+ :row-key="row => row.id"
+ show-summary
+ :summary-method="summarizeMainTable"
+ height="calc(100vh - 18.5em)">
+ <el-table-column align="center" type="selection" width="55" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip/>
+ <el-table-column label="寮�绁ㄩ噾棰�" prop="invoiceAmount" show-overflow-tooltip/>
+ <el-table-column label="鍥炴閲戦" prop="receiptPaymentAmount" show-overflow-tooltip/>
+ <el-table-column label="鏈洖娆鹃噾棰�" prop="unReceiptPaymentAmount" show-overflow-tooltip/>
+ </el-table>
+ <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" :page="page.current"
+ :limit="page.size" @pagination="paginationChange" />
+ </div>
+ <div class="table_list">
+ <el-table :data="receiptRecord" border
+ :row-key="row => row.id"
+ show-summary
+ :summary-method="summarizeMainTable"
+ height="calc(100vh - 18.5em)">
+ <el-table-column align="center" type="selection" width="55" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column label="鍙戠敓鏃ユ湡" prop="receiptPaymentDate" show-overflow-tooltip/>
+ <el-table-column label="鍥炴閲戦" prop="receiptPaymentAmount" show-overflow-tooltip/>
+ <el-table-column label="搴旀敹閲戦" prop="invoiceAmount" show-overflow-tooltip/>
+ </el-table>
+ <pagination v-show="recordTotal > 0" :total="recordTotal" layout="total, sizes, prev, pager, next, jumper" :page="recordPage.current"
+ :limit="recordPage.size" @pagination="paginationChange" />
+ </div>
+ </div>
+
+ </div>
+</template>
+
+<script setup>
+import pagination from '@/components/PIMTable/Pagination.vue'
+import { ref } from 'vue'
+import {Search} from "@element-plus/icons-vue";
+import {
+ invoiceLedgerSalesAccount,
+} from "../../../api/salesManagement/invoiceLedger.js";
+import {
+ receiptPaymentListPage
+} from "../../../api/salesManagement/receiptPayment.js";
+
+const tableData = ref([])
+const receiptRecord = ref([])
+const selectedRows = ref([])
+const tableLoading = ref(false)
+const page = reactive({
+ current: 1,
+ size: 10,
+})
+const recordPage = reactive({
+ current: 1,
+ size: 10,
+})
+const total = ref(0)
+const recordTotal = ref(0)
+const data = reactive({
+ searchForm: {
+ searchText: '',
+ invoiceDate:''
+ }
+})
+const { searchForm } = toRefs(data)
+// 鏌ヨ鍒楄〃
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+const handleQuery = () => {
+ page.current = 1
+ getList()
+}
+const paginationChange = ({ current, limit }) => {
+ page.current = current;
+ page.size = limit;
+ getList()
+}
+const getList = () => {
+ tableLoading.value = true
+ invoiceLedgerSalesAccount({...searchForm.value, ...page}).then(res => {
+ tableLoading.value = false
+ tableData.value = res.data.records;
+ total.value = res.data.total;
+ if(tableData.value.length > 0) {
+ receiptPaymentList(recordPage,tableData.value[0].customerId);
+ }
+ })
+}
+// 琛ㄦ牸閫夋嫨鏁版嵁
+const handleSelectionChange = (selection) => {
+ selectedRows.value = selection
+}
+// 涓昏〃鍚堣鏂规硶
+const summarizeMainTable = (param) => {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣';
+ return;
+ }
+ const prop = column.property;
+ if (['invoiceAmount','receiptPaymentAmount','unReceiptPaymentAmount'].includes(prop)) {
+ const values = data.map(item => Number(item[prop]));
+ if (!values.every(value => isNaN(value))) {
+ sums[index] = values.reduce((acc, val) => (!isNaN(val) ? acc + val : acc), 0);
+ } else {
+ sums[index] = '';
+ }
+ } else {
+ sums[index] = '';
+ }
+ })
+ return sums;
+};
+
+const receiptPaymentList = (page,id) => {
+ const param = {
+ customerId:id,
+ current: page.current,
+ size: page.size,
+ }
+ receiptPaymentListPage(param).then(res => {
+ receiptRecord.value = res.data.records;
+ receiptRecord.total = res.data.total;
+ })
+}
+
+
+getList()
+</script>
+
+<style scoped lang="scss">
+
+.table_list {
+ width: 50%;
+}
+
+</style>
--
Gitblit v1.9.3