From 9ea5ff67655241271bdf04bb50ca3a8d60c4e22a Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 15:07:02 +0800
Subject: [PATCH] fix: 用河南鹤壁代码覆盖山西长治
---
src/views/financialManagement/receivable/salesOut.vue | 279 ++++++++++++++++++++++++-------------------------------
1 files changed, 123 insertions(+), 156 deletions(-)
diff --git a/src/views/financialManagement/receivable/salesOut.vue b/src/views/financialManagement/receivable/salesOut.vue
index f6205d8..297a82c 100644
--- a/src/views/financialManagement/receivable/salesOut.vue
+++ b/src/views/financialManagement/receivable/salesOut.vue
@@ -1,33 +1,27 @@
<template>
- <!-- 閿�鍞嚭搴� -->
+<!-- 閿�鍞嚭搴� -->
<div class="app-container">
- <el-form :model="filters"
- :inline="true">
+ <el-form :model="filters" :inline="true">
<el-form-item label="鍑哄簱鍗曞彿:">
- <el-input v-model="filters.outboundBatches"
- placeholder="璇疯緭鍏ュ嚭搴撳崟鍙�"
- clearable
- style="width: 200px;" />
+ <el-input v-model="filters.outboundBatches" placeholder="璇疯緭鍏ュ嚭搴撳崟鍙�" clearable style="width: 200px;" />
</el-form-item>
<el-form-item label="瀹㈡埛鍚嶇О:">
- <el-input v-model="filters.customerName"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- style="width: 200px;" />
+ <el-input v-model="filters.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" clearable style="width: 200px;" />
</el-form-item>
<el-form-item label="鍑哄簱鏃ユ湡:">
- <el-date-picker v-model="filters.dateRange"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="daterange"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- clearable />
+ <el-date-picker
+ v-model="filters.dateRange"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ clearable
+ />
</el-form-item>
<el-form-item>
- <el-button type="primary"
- @click="onSearch">鎼滅储</el-button>
+ <el-button type="primary" @click="onSearch">鎼滅储</el-button>
<el-button @click="resetFilters">閲嶇疆</el-button>
</el-form-item>
</el-form>
@@ -35,168 +29,141 @@
<div class="actions">
<div></div>
<div>
- <el-button @click="handleOut"
- icon="Download">瀵煎嚭</el-button>
+ <el-button @click="handleOut" icon="Download">瀵煎嚭</el-button>
</div>
</div>
- <PIMTable rowKey="id"
- :column="columns"
- :tableData="dataList"
- :tableLoading="tableLoading"
- isShowSummary
- :summaryMethod="getSummaries"
- :page="{
+ <PIMTable
+ rowKey="id"
+ :column="columns"
+ :tableData="dataList"
+ :tableLoading="tableLoading"
+ :page="{
current: pagination.currentPage,
size: pagination.pageSize,
total: pagination.total,
}"
- @pagination="changePage" />
+ @pagination="changePage"
+ />
</div>
</div>
</template>
<script setup>
- import { ref, reactive, onMounted, getCurrentInstance } from "vue";
- import { ElMessage } from "element-plus";
- import { listPageAccountSales } from "@/api/financialManagement/accountSales";
+import { ref, reactive, onMounted, getCurrentInstance } from "vue";
+import { ElMessage } from "element-plus";
+import { listPageAccountSales } from "@/api/financialManagement/accountSales";
- defineOptions({
- name: "閿�鍞嚭搴�",
- });
+defineOptions({
+ name: "閿�鍞嚭搴�",
+});
- const { proxy } = getCurrentInstance();
+const { proxy } = getCurrentInstance();
- const filters = reactive({
- outboundBatches: "",
- customerName: "",
- dateRange: [],
- });
+const filters = reactive({
+ outboundBatches: "",
+ customerName: "",
+ dateRange: [],
+});
- const pagination = reactive({
- currentPage: 1,
- pageSize: 10,
- total: 0,
- });
+const pagination = reactive({
+ currentPage: 1,
+ pageSize: 10,
+ total: 0,
+});
- const columns = [
- { label: "鍑哄簱鍗曞彿", prop: "outboundBatches", minWidth: "150" },
- { label: "瀹㈡埛鍚嶇О", prop: "customerName", minWidth: "180" },
- { label: "鍑哄簱鏃ユ湡", prop: "shippingDate", width: "170" },
- { label: "浜у搧鍚嶇О", prop: "productName", minWidth: "140" },
- { label: "瑙勬牸鍨嬪彿", prop: "specificationModel", minWidth: "140" },
- {
- label: "閲戦",
- prop: "outboundAmount",
- minWidth: "120",
- formatData: val =>
- val === null || val === undefined || val === ""
- ? ""
- : Number(val).toLocaleString("zh-CN", {
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- }),
- },
- { label: "鍙戣揣缂栧彿", prop: "shippingNo", minWidth: "140" },
- { label: "閿�鍞鍗曞彿", prop: "salesContractNo", minWidth: "150" },
- ];
+const columns = [
+ { label: "鍑哄簱鍗曞彿", prop: "outboundBatches", minWidth: "150" },
+ { label: "瀹㈡埛鍚嶇О", prop: "customerName", minWidth: "180" },
+ { label: "鍑哄簱鏃ユ湡", prop: "shippingDate", width: "170" },
+ { label: "浜у搧鍚嶇О", prop: "productName", minWidth: "140" },
+ { label: "浜у搧瑙勬牸", prop: "specificationModel", minWidth: "140" },
+ {
+ label: "閲戦",
+ prop: "outboundAmount",
+ minWidth: "120",
+ align: "right",
+ formatData: (val) => (val === null || val === undefined || val === "" ? "" : Number(val).toLocaleString("zh-CN", { minimumFractionDigits: 2, maximumFractionDigits: 2 })),
+ },
+ { label: "鍙戣揣缂栧彿", prop: "shippingNo", minWidth: "140" },
+ { label: "閿�鍞鍗曞彿", prop: "salesContractNo", minWidth: "150" },
+];
- const dataList = ref([]);
- const tableLoading = ref(false);
+const dataList = ref([]);
+const tableLoading = ref(false);
- function buildFilterParams() {
- const params = {
- outboundBatches: filters.outboundBatches || undefined,
- customerName: filters.customerName || undefined,
- };
- if (filters.dateRange && filters.dateRange.length === 2) {
- params.startDate = filters.dateRange[0];
- params.endDate = filters.dateRange[1];
- }
- return params;
+function buildFilterParams() {
+ const params = {
+ outboundBatches: filters.outboundBatches || undefined,
+ customerName: filters.customerName || undefined,
+ };
+ if (filters.dateRange && filters.dateRange.length === 2) {
+ params.startDate = filters.dateRange[0];
+ params.endDate = filters.dateRange[1];
}
+ return params;
+}
- const onSearch = () => {
- pagination.currentPage = 1;
- getTableData();
- };
+const onSearch = () => {
+ pagination.currentPage = 1;
+ getTableData();
+};
- const getTableData = () => {
- tableLoading.value = true;
- listPageAccountSales({
- ...buildFilterParams(),
- current: pagination.currentPage,
- size: pagination.pageSize,
- })
- .then(res => {
- const ok = res.code === 200 || res.code === 0;
- if (ok && res.data) {
- pagination.total = res.data.total ?? 0;
- dataList.value = res.data.records ?? [];
- } else {
- ElMessage.error(res.msg || "鏌ヨ澶辫触");
- dataList.value = [];
- }
- })
- .catch(() => {
- dataList.value = [];
- })
- .finally(() => {
- tableLoading.value = false;
- });
- };
-
- const resetFilters = () => {
- filters.outboundBatches = "";
- filters.customerName = "";
- filters.dateRange = [];
- pagination.currentPage = 1;
- getTableData();
- };
-
- const changePage = ({ page, limit }) => {
- pagination.currentPage = page;
- pagination.pageSize = limit;
- getTableData();
- };
-
- const getSummaries = ({ columns, data }) => {
- const sums = [];
- columns.forEach((col, index) => {
- if (index === 0) {
- sums[index] = "鍚堣";
- } else if (col.property === "outboundAmount") {
- const total = data.reduce((prev, cur) => {
- const v = Number(cur.outboundAmount);
- return prev + (isNaN(v) ? 0 : v);
- }, 0);
- sums[index] = total.toLocaleString("zh-CN", {
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- });
+const getTableData = () => {
+ tableLoading.value = true;
+ listPageAccountSales({
+ ...buildFilterParams(),
+ current: pagination.currentPage,
+ size: pagination.pageSize,
+ })
+ .then((res) => {
+ const ok = res.code === 200 || res.code === 0;
+ if (ok && res.data) {
+ pagination.total = res.data.total ?? 0;
+ dataList.value = res.data.records ?? [];
} else {
- sums[index] = "";
+ ElMessage.error(res.msg || "鏌ヨ澶辫触");
+ dataList.value = [];
}
+ })
+ .catch(() => {
+ dataList.value = [];
+ })
+ .finally(() => {
+ tableLoading.value = false;
});
- return sums;
- };
+};
- const handleOut = () => {
- proxy.download(
- "/accountSales/exportAccountSalesOutbound",
- buildFilterParams(),
- `閿�鍞嚭搴揰${new Date().getTime()}.xlsx`
- );
- };
+const resetFilters = () => {
+ filters.outboundBatches = "";
+ filters.customerName = "";
+ filters.dateRange = [];
+ pagination.currentPage = 1;
+ getTableData();
+};
- onMounted(() => {
- getTableData();
- });
+const changePage = ({ page, limit }) => {
+ pagination.currentPage = page;
+ pagination.pageSize = limit;
+ getTableData();
+};
+
+const handleOut = () => {
+ proxy.download(
+ "/accountSales/exportAccountSalesOutbound",
+ buildFilterParams(),
+ `閿�鍞嚭搴揰${new Date().getTime()}.xlsx`
+ );
+};
+
+onMounted(() => {
+ getTableData();
+});
</script>
<style lang="scss" scoped>
- .actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 15px;
- }
+.actions {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 15px;
+}
</style>
--
Gitblit v1.9.3