From fda152b544ed0b3ceb8309df5b7eca2de888f3f1 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 10 六月 2025 11:39:55 +0800
Subject: [PATCH] 开票登记编辑功能开发
---
src/views/salesManagement/salesLedger/index.vue | 82 +++++++++++++++++-----------------------
1 files changed, 35 insertions(+), 47 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 0cc0b9b..d9e5747 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -25,6 +25,7 @@
:expand-row-keys="expandedRowKeys"
:row-key="row => row.id"
show-summary
+ style="width: 100%"
:summary-method="summarizeMainTable"
@expand-change="expandChange"
height="calc(100vh - 18.5em)">
@@ -35,27 +36,27 @@
show-summary
:summary-method="summarizeChildrenTable">
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column label="浜у搧澶х被" prop="productCategory" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
+ <el-table-column label="浜у搧澶х被" prop="productCategory" />
+ <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" />
- <el-table-column label="鏁伴噺" prop="quantity" />
- <el-table-column label="绋庣巼(%)" prop="taxRate" />
- <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" />
- <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" />
- <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" />
+ <el-table-column label="鏁伴噺" prop="quantity" />
+ <el-table-column label="绋庣巼(%)" prop="taxRate" />
+ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber"/>
+ <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber"/>
+ <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber"/>
</el-table>
</template>
</el-table-column>
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip/>
- <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" show-overflow-tooltip/>
- <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip/>
- <el-table-column label="涓氬姟鍛�" prop="salesman" show-overflow-tooltip/>
- <el-table-column label="椤圭洰鍚嶇О" prop="projectName" show-overflow-tooltip/>
- <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" show-overflow-tooltip/>
- <el-table-column label="褰曞叆浜�" prop="entryPersonName" show-overflow-tooltip/>
- <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" show-overflow-tooltip/>
- <el-table-column label="褰曞叆鏃ユ湡" prop="executionDate" show-overflow-tooltip/>
+ <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip/>
+ <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" width="180" show-overflow-tooltip/>
+ <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip/>
+ <el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip/>
+ <el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip/>
+ <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="180" show-overflow-tooltip :formatter="formattedNumber"/>
+ <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip/>
+ <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip/>
+ <el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip/>
<el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
<template #default="scope">
<el-button link type="primary" size="small" @click="openForm('edit', scope.row);">缂栬緫</el-button>
@@ -154,9 +155,9 @@
<el-table-column label="鍗曚綅" prop="unit" />
<el-table-column label="鏁伴噺" prop="quantity" />
<el-table-column label="绋庣巼(%)" prop="taxRate" />
- <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" />
- <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" />
- <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" />
+ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber"/>
+ <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber"/>
+ <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber"/>
<el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
<template #default="scope">
<el-button link type="primary" size="small" @click="openProductForm('edit', scope.row);">缂栬緫</el-button>
@@ -245,7 +246,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="鏁伴噺锛�" prop="quantity">
- <el-input v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable @change="mathNum" />
+ <el-input type="number" :step="0.1" :min="0" v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable @change="mathNum" />
</el-form-item>
</el-col>
</el-row>
@@ -306,7 +307,7 @@
import useUserStore from '@/store/modules/user'
import {userListNoPage} from "@/api/system/user.js";
import {
- ledgerList,
+ ledgerListPage,
productList,
customerList,
addOrUpdateSalesLedger,
@@ -326,7 +327,7 @@
const tableLoading = ref(false)
const page = reactive({
current: 1,
- size: 10,
+ size: 100,
})
const total = ref(0)
const fileList = ref([])
@@ -403,16 +404,16 @@
page.current = 1
getList()
}
-const paginationChange = ({ current, limit }) => {
- page.current = current;
- page.size = limit;
+const paginationChange = (obj) => {
+ page.current = obj.page;
+ page.size = obj.limit;
getList()
}
const getList = () => {
tableLoading.value = true
- ledgerList({...searchForm.value, ...page}).then(res => {
+ ledgerListPage({...searchForm.value, ...page}).then(res => {
tableLoading.value = false
- tableData.value = res.rows
+ tableData.value = res.records
tableData.value.map(item => {
item.children = []
})
@@ -427,6 +428,9 @@
productOptions.value = convertIdToValue(res)
})
}
+const formattedNumber = (row, column, cellValue) => {
+ return parseFloat(cellValue).toFixed(2);
+};
// 鑾峰彇tree瀛愭暟鎹�
const getModels =(value) => {
productForm.value.productCategory = findNodeById(productOptions.value, value)
@@ -435,11 +439,14 @@
})
}
const getProductModel =(value) => {
+ console.log('value', value)
const index = modelOptions.value.findIndex(item => item.id === value);
if (index !== -1) {
productForm.value.specificationModel = modelOptions.value[index].model;
+ productForm.value.unit = modelOptions.value[index].unit;
} else {
productForm.value.specificationModel = null;
+ productForm.value.unit = null;
}
}
const findNodeById = (nodes, productId) => {
@@ -506,26 +513,7 @@
};
// 瀛愯〃鍚堣鏂规硶
const summarizeChildrenTable = (param) => {
- const { columns, data } = param;
- const sums = [];
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = '鍚堣';
- return;
- }
- const prop = column.property;
- if (['taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice'].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;
+ return proxy.summarizeTable(param, ['taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice']);
}
// 鎵撳紑寮规
const openForm = async (type, row) => {
--
Gitblit v1.9.3