From 273cfad3ab35db6b4895411017fbe098fc4245d0 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 20 五月 2025 15:36:07 +0800 Subject: [PATCH] 回款台账前后端联调 --- src/views/salesManagement/invoiceRegistration/index.vue | 153 +++++++++++++++------------------------------------ 1 files changed, 45 insertions(+), 108 deletions(-) diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue index fbae169..96cb793 100644 --- a/src/views/salesManagement/invoiceRegistration/index.vue +++ b/src/views/salesManagement/invoiceRegistration/index.vue @@ -14,9 +14,8 @@ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button> </div> <div> - <el-button type="primary" @click="openForm('add')">鏂板鐧昏</el-button> + <el-button type="primary" @click="openForm">鏂板鐧昏</el-button> <el-button @click="handleOut">瀵煎嚭</el-button> - <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> </div> </div> <div class="table_list"> @@ -62,14 +61,12 @@ <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" :page="page.current" :limit="page.size" @pagination="paginationChange" /> </div> - <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板寮�绁ㄧ櫥璁伴〉闈�' : '缂栬緫寮�绁ㄧ櫥璁伴〉闈�'" width="70%" @close="closeDia"> + <el-dialog v-model="dialogFormVisible" title="鏂板寮�绁ㄧ櫥璁伴〉闈�" width="85%" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <el-row :gutter="30"> <el-col :span="12"> - <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesLedgerId"> - <el-select v-model="form.salesLedgerId" placeholder="璇烽�夋嫨" clearable @change="ledgerChange" :disabled="operationType === 'edit'"> - <el-option v-for="item in ledgerList" :key="item.id" :label="item.salesContractNo" :value="item.id"/> - </el-select> + <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo"> + <el-input v-model="form.salesContractNo" disabled></el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -104,14 +101,14 @@ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" /> <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" /> <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" /> - <el-table-column label="鏈寮�绁ㄦ暟" prop="invoiceNum"> + <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum"> <template #default="scope"> - <el-input type="number" :step="1" min="0" v-model="scope.row.invoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input> + <el-input type="number" :step="1" min="0" v-model="scope.row.currentInvoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input> </template> </el-table-column> - <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="invoiceAmount" > + <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="currentInvoiceAmount" > <template #default="scope"> - <el-input type="number" :step="0.01" min="0" v-model="scope.row.invoiceAmount" @blur="invoiceAmountBlur(scope.row)"></el-input> + <el-input type="number" :step="0.01" min="0" v-model="scope.row.currentInvoiceAmount" disabled></el-input> </template> </el-table-column> <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" > @@ -143,15 +140,12 @@ import {ElMessageBox } from "element-plus"; // import {userListNoPage} from "@/api/system/user.js"; import { - ledgerListNoPage, getSalesLedgerWithProducts, + ledgerList, + productList, } from "@/api/salesManagement/salesLedger.js"; import { - invoiceRegistrationList, - invoiceRegistrationSaveOrUpdate, - invoiceRegistrationDel, - productList, - invoiceRegistrationDetail, + invoiceRegistrationSave, } from "@/api/salesManagement/invoiceRegistration.js"; const { proxy } = getCurrentInstance() const tableData = ref([]) @@ -163,7 +157,6 @@ size: 10, }) const total = ref(0) -const ledgerList = ref([]) // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 const operationType = ref('') const dialogFormVisible = ref(false) @@ -197,18 +190,16 @@ } const getList = () => { tableLoading.value = true - invoiceRegistrationList({...searchForm.value, ...page}).then(res => { + ledgerList({...searchForm.value, ...page}).then(res => { tableLoading.value = false - tableData.value = res.data.records; - tableData.value.map(item => { - item.children = [] - }) - total.value = res.data.total + tableData.value = res.rows; + total.value = res.total expandedRowKeys.value = [] }) } // 琛ㄦ牸閫夋嫨鏁版嵁 const handleSelectionChange = (selection) => { + console.log('selection', selection) selectedRows.value = selection } const expandedRowKeys = ref([]) @@ -217,10 +208,11 @@ if (expandedRows.length > 0) { expandedRowKeys.value = [] try { - productList({invoiceRegistrationId: row.id}).then(res => { + productList({salesLedgerId: row.id, + type: 1 }).then(res => { const index = tableData.value.findIndex(item => item.id === row.id); if (index > -1) { - tableData.value[index].children = res.data; + tableData.value[index].children = res; } expandedRowKeys.value.push(row.id) }) @@ -278,30 +270,30 @@ return sums; } // 鎵撳紑寮规 -const openForm = (type, row) => { - operationType.value = type +const openForm = () => { + // 鍒ゆ柇鏄惁澶氶�� + if(selectedRows.value.length != 1) { + proxy.$modal.msgError("璇烽�夋嫨涓�鏉″悎鍚�") + return; + } form.value = {} productData.value = [] - // 鏌ヨ閿�鍞悎鍚� - ledgerListNoPage({}).then(res => { - ledgerList.value = res.data; - }) - if (type === 'edit') { - invoiceRegistrationDetail({id: row.id}).then(res => { - form.value = {...res.data} - form.value.productDtoList = res.data.productDtoList - productData.value = form.value.productDtoList + getSalesLedgerWithProducts({id: selectedRows.value[0].id}).then(res => { + form.value = {...res} + productData.value = form.value.productData.map(item => { + return item }) - } - dialogFormVisible.value = true + dialogFormVisible.value = true + console.log('productData.value ',productData.value ) + }) + } // 鎻愪氦琛ㄥ崟 const submitForm = () => { proxy.$refs["formRef"].validate(valid => { if (valid) { - form.value.productDtoList = proxy.HaveJson(productData.value) - delete form.value.productData - invoiceRegistrationSaveOrUpdate(form.value).then(res => { + form.value.productData = proxy.HaveJson(productData.value) + invoiceRegistrationSave(form.value).then(res => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛") closeDia() getList() @@ -329,79 +321,24 @@ proxy.$modal.msg("宸插彇娑�") }) } -// 鍒犻櫎 -const handleDelete = () => { - let ids = [] - if (selectedRows.value.length > 0) { - ids = selectedRows.value.map(item => item.id); - } else { - proxy.$modal.msgWarning('璇烽�夋嫨鏁版嵁') - return - } - ElMessageBox.confirm( - '閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�', - '瀵煎嚭', { - confirmButtonText: '纭', - cancelButtonText: '鍙栨秷', - type: 'warning', - } - ).then(() => { - invoiceRegistrationDel(ids).then(res => { - proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛") - getList() - }) - }).catch(() => { - proxy.$modal.msg("宸插彇娑�") - }) -} -// 閿�鍞彴璐︾瓫閫� -const ledgerChange = (val) => { - if(val){ - getSalesLedgerWithProducts({id: val}).then(res => { - form.value = { - salesLedgerId: res.id, - customerName: res.customerName, - salesman: res.salesman, - projectName: res.projectName, - productData: res.productData, - salesContractNo: res.salesContractNo, - customerId: res.customerId, - } - productData.value = form.value.productData.map(item => { - item.noInvoiceNum = item.futureTickets - item.noInvoiceAmount = item.futureTicketsAmount - return item - }) - console.log('productData.value ',productData.value ) - }) - }else { - proxy.resetForm("formRef") - productData.value = [] - } -} //鏈寮�绁ㄥけ鐒︽搷浣� const invoiceNumBlur = (row) => { - if(!row.invoiceNum){ - row.invoiceNum = 0 + if(!row.currentInvoiceNum){ + row.currentInvoiceNum = 0 } - if(row.invoiceNum > row.noInvoiceNum){ + if(row.currentInvoiceNum > row.noInvoiceNum){ proxy.$modal.msgWarning('鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟') - row.invoiceNum = 0 + row.currentInvoiceNum = 0 } - row.noInvoiceNum = row.futureTickets - row.invoiceNum + // 璁$畻鏈寮�绁ㄩ噾棰� + row.currentInvoiceAmount = row.currentInvoiceNum * row.taxInclusiveUnitPrice + // 璁$畻鏈紑绁ㄦ暟 + row.noInvoiceNum = row.noInvoiceNum - row.currentInvoiceNum + // 璁$畻鏈紑绁ㄩ噾棰� + row.noInvoiceAmount = row.noInvoiceNum * row.taxInclusiveUnitPrice } -// 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣� -const invoiceAmountBlur = (row) => { - if(!row.invoiceAmount){ - row.invoiceAmount = 0 - } - if(row.invoiceAmount > row.noInvoiceAmount){ - proxy.$modal.msgWarning('鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�') - row.invoiceAmount = 0 - } - row.noInvoiceAmount = row.futureTicketsAmount - row.invoiceAmount -} + getList() </script> -- Gitblit v1.9.3