From ba34a26515911534ca3a195c379f479e115bf931 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 04 六月 2025 11:16:20 +0800 Subject: [PATCH] 销售台账/开票登记功能开发 --- src/views/salesManagement/invoiceRegistration/index.vue | 85 ++++++++++++++++-------------------------- 1 files changed, 32 insertions(+), 53 deletions(-) diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue index df97bfc..d2838e1 100644 --- a/src/views/salesManagement/invoiceRegistration/index.vue +++ b/src/views/salesManagement/invoiceRegistration/index.vue @@ -35,9 +35,9 @@ <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="unit" /> - <el-table-column label="鏁伴噺" prop="quantity" /> - <el-table-column label="绋庣巼" prop="taxRate" /> + <el-table-column label="鍗曚綅" prop="unit" width="70"/> + <el-table-column label="鏁伴噺" prop="quantity" width="70"/> + <el-table-column label="绋庣巼" prop="taxRate" width="70" /> <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" /> <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" /> <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" /> @@ -95,19 +95,19 @@ <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="quantity" width="70" /> + <el-table-column label="绋庣巼" prop="taxRate" width="70" /> <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" /> <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" /> - <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" width="150" /> <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum"> <template #default="scope"> - <el-input type="number" :step="1" min="0" v-model="scope.row.currentInvoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input> + <el-input type="number" :step="0.1" min="0" v-model="scope.row.currentInvoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input> </template> </el-table-column> - <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="currentInvoiceAmount" > + <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="currentInvoiceAmount" width="150"> <template #default="scope"> - <el-input type="number" :step="0.01" min="0" v-model="scope.row.currentInvoiceAmount" disabled></el-input> + <el-input type="number" :step="0.01" min="0" v-model="scope.row.currentInvoiceAmount" @blur="invoiceAmountBlur(scope.row)" ></el-input> </template> </el-table-column> <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" > @@ -115,7 +115,7 @@ <el-input type="number" min="0" disabled v-model="scope.row.noInvoiceNum"></el-input> </template> </el-table-column> - <el-table-column label="鏈紑绁ㄩ噾棰�(鍏�)" prop="noInvoiceAmount" > + <el-table-column label="鏈紑绁ㄩ噾棰�(鍏�)" prop="noInvoiceAmount" width="150" > <template #default="scope"> <el-input type="number" min="0" disabled v-model="scope.row.noInvoiceAmount"></el-input> </template> @@ -224,49 +224,11 @@ } // 涓昏〃鍚堣鏂规硶 const summarizeMainTable = (param) => { - const { columns, data } = param; - const sums = []; - columns.forEach((column, index) => { - if (index === 0) { - sums[index] = '鍚堣'; - return; - } - const prop = column.property; - if (['contractAmount'].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, ['contractAmount']); }; // 瀛愯〃鍚堣鏂规硶 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','invoiceNum','invoiceAmount','noInvoiceNum','noInvoiceAmount'].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','invoiceNum','invoiceAmount','noInvoiceNum','noInvoiceAmount']); } // 鎵撳紑寮规 const openForm = () => { @@ -326,16 +288,33 @@ if(!row.currentInvoiceNum){ row.currentInvoiceNum = 0 } - if(row.currentInvoiceNum > row.noInvoiceNum){ + if(row.currentInvoiceNum > row.tempNoInvoiceNum){ proxy.$modal.msgWarning('鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟') row.currentInvoiceNum = 0 } // 璁$畻鏈寮�绁ㄩ噾棰� - row.currentInvoiceAmount = row.currentInvoiceNum * row.taxInclusiveUnitPrice + row.currentInvoiceAmount = (row.currentInvoiceNum * row.taxInclusiveUnitPrice).toFixed(2) // 璁$畻鏈紑绁ㄦ暟 row.noInvoiceNum = row.originalNoInvoiceNum - row.currentInvoiceNum // 璁$畻鏈紑绁ㄩ噾棰� - row.noInvoiceAmount = row.noInvoiceNum * row.taxInclusiveUnitPrice + row.noInvoiceAmount = row.tempnoInvoiceAmount - row.currentInvoiceAmount +} +// 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣� +const invoiceAmountBlur = (row) => { + if(!row.currentInvoiceAmount){ + row.currentInvoiceAmount = 0 + } + // 璁$畻鏄惁瓒呰繃寮�绁ㄦ�婚噾棰� + if(row.currentInvoiceAmount > row.tempnoInvoiceAmount){ + proxy.$modal.msgWarning('鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�') + row.currentInvoiceAmount = 0 + } + // 璁$畻鏈寮�绁ㄦ暟 + row.currentInvoiceNum = (row.currentInvoiceAmount / row.taxInclusiveUnitPrice).toFixed(2) + // 璁$畻鏈紑绁ㄦ暟 + row.noInvoiceNum = row.originalNoInvoiceNum - row.currentInvoiceNum + // 璁$畻鏈紑绁ㄩ噾棰� + row.noInvoiceAmount = row.tempnoInvoiceAmount - row.currentInvoiceAmount } getList() -- Gitblit v1.9.3