| src/api/procurementManagement/procurementInvoiceLedger.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/invoiceEntry/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/paymentEntry/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/salesManagement/invoiceLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/procurementManagement/procurementInvoiceLedger.js
@@ -83,11 +83,11 @@ }); } export function getProductRecordById(params) { export function getProductRecordById(data) { return request({ url: "/purchase/registration/getProductRecordById", method: "get", params: params, method: "post", data: data, }); } src/views/procurementManagement/invoiceEntry/index.vue
@@ -1,35 +1,30 @@ <template> <div class="app-container"> <div class="search_form"> <el-form :model="filters" :inline="true"> <el-form :model="filters" :inline="true"> <el-form-item label="供应商名称"> <el-input v-model="filters.supplierName" <el-input v-model="filters.supplierName" placeholder="请输入名称搜索" clearable prefix-icon="Search" @change="getTableData" /> @change="getTableData" /> </el-form-item> <el-form-item label="采购订单号:"> <el-input v-model="filters.purchaseContractNumber" <el-input v-model="filters.purchaseContractNumber" placeholder="请输入" clearable prefix-icon="Search" @change="getTableData" /> @change="getTableData" /> </el-form-item> <el-form-item label="销售合同号"> <el-input v-model="filters.salesContractNo" <el-input v-model="filters.salesContractNo" placeholder="请输入销售合同号" clearable /> clearable /> </el-form-item> <el-form-item> <el-button type="primary" @click="getTableData"> 搜索 </el-button> <el-button type="primary" @click="getTableData"> 搜索 </el-button> <el-button @click="resetFilters"> 重置 </el-button> </el-form-item> </el-form> @@ -38,17 +33,18 @@ <div class="actions"> <div></div> <div> <el-button @click="handleExport" style="margin-right: 10px">导出</el-button> <el-button type="primary" @click="handleAdd('add')"> <el-button @click="handleExport" style="margin-right: 10px">导出</el-button> <el-button type="primary" @click="handleAdd('add')"> 新增登记 </el-button> <!-- <el-button type="danger" plain @click="handleDelete">删除</el-button>--> </div> </div> <PIMTable rowKey="id" <PIMTable rowKey="id" :column="columns" :tableData="filteredDataList" :tableData="dataList" :tableLoading="loading" :isSelection="true" :page="{ @@ -61,30 +57,31 @@ :isShowSummary="true" @expand-change="expandChange" @selection-change="handleSelectionChange" @pagination="changePage" > @pagination="changePage"> <template #expand="{ row }"> <ExpandTable ref="expandTableRef" /> </template> <template #operation="{ row }"> <el-button text <el-button text type="primary" size="small" @click="handleEdit('edit', row.id)" > @click="handleEdit('edit', row.id)"> 编辑 </el-button> </template> </PIMTable> </div> <Modal ref="modalRef" @refreshList="getTableData"></Modal> <Modal ref="modalRef" @refreshList="getTableData"></Modal> </div> </template> <script setup> import { usePaginationApi } from "@/hooks/usePaginationApi"; import {delRegistration, gePurchaseListPage} from "@/api/procurementManagement/invoiceEntry.js"; import { delRegistration, gePurchaseListPage, } from "@/api/procurementManagement/invoiceEntry.js"; import { nextTick, onMounted, getCurrentInstance, ref } from "vue"; import ExpandTable from "./components/ExpandTable.vue"; import Modal from "./components/Modal.vue"; @@ -123,17 +120,17 @@ { label: "采购订单号", prop: "purchaseContractNumber", width:150 width: 150, }, { label: "销售合同号", prop: "salesContractNo", width:150 width: 150, }, { label: "供应商名称", prop: "supplierName", width:300 width: 300, }, { label: "录入人", @@ -142,13 +139,13 @@ { label: "录入日期", prop: "entryDate", width:110 width: 110, }, { label: "合同金额(元)", prop: "contractAmount", width:200, formatData: (val) => { formatData: val => { return val ? parseFloat(val).toFixed(2) : 0; }, }, @@ -156,7 +153,7 @@ label: "已来票金额(元)", prop: "receiptPaymentAmount", width:200, formatData: (val) => { formatData: val => { return val ? parseFloat(val).toFixed(2) : 0; }, }, @@ -164,7 +161,7 @@ label: "待来票金额(元)", prop: "unReceiptPaymentAmount", width:200, formatData: (val) => { formatData: val => { return val ? parseFloat(val).toFixed(2) : 0; }, }, @@ -179,16 +176,17 @@ ] ); // 计算属性过滤 审批通过approvalStatus=1 的数据 const filteredDataList = computed(() => { return dataList.value.filter(item => item.approvalStatus == 1); }); const handleSelectionChange = (selection) => { // const filteredDataList = computed(() => { // // return dataList.value.filter(item => item.approvalStatus == 1); // return dataList; // }); const handleSelectionChange = selection => { selectedRows.value = selection.filter( (item) => item.purchaseContractNumber !== undefined item => item.purchaseContractNumber !== undefined ); }; const handleAdd = (type) => { const handleAdd = type => { if (selectedRows.value.length < 1) { proxy.$modal.msgWarning("请至少选中一条数据"); return; @@ -235,12 +233,14 @@ let ids = []; if (selectedRows.value.length > 0) { // 新增判断:如果有选中的数据没有ticketRegistrationId,提示并终止 const noTicket = selectedRows.value.some(item => !item.ticketRegistrationId); const noTicket = selectedRows.value.some( item => !item.ticketRegistrationId ); if (noTicket) { proxy.$modal.msgWarning("采购台账还未进行来票登记,无法进行删除操作"); return; } ids = selectedRows.value.map((item) => item.ticketRegistrationId); ids = selectedRows.value.map(item => item.ticketRegistrationId); } else { proxy.$modal.msgWarning("请选择数据"); return; @@ -251,7 +251,7 @@ type: "warning", }) .then(() => { delRegistration(ids).then((res) => { delRegistration(ids).then(res => { proxy.$modal.msgSuccess("删除成功"); getList(); }); @@ -274,7 +274,7 @@ onCurrentChange(page); }; // 主表合计方法 const summarizeMainTable = (param) => { const summarizeMainTable = param => { return proxy.summarizeTable( param, ["contractAmount", "receiptPaymentAmount", "unReceiptPaymentAmount"], src/views/procurementManagement/paymentEntry/index.vue
@@ -75,6 +75,7 @@ v-model="scope.row.currentPaymentAmount" :disabled="!scope.row.editType" :precision="2" :max="scope.row.maxAmountTTotal + maxAmount" placeholder="请输入" clearable /> </template> @@ -447,6 +448,8 @@ } }); }; const maxAmount = ref(0); const maxAmountTTotal = ref(0); // 展开行 const expandChange = (row, expandedRows) => { if (expandedRows.length > 0) { @@ -454,12 +457,17 @@ expandedRowKeys.value = []; try { childrenLoading.value = true; maxAmount.value = row.unPaymentAmountTotal; registrationListPageGetById({ id: row.id }).then(res => { childrenLoading.value = false; const index = tableData.value.findIndex(item => item.id === row.id); if (index > -1) { expandData.value = res; } expandData.value = res.map(item => ({ ...item, maxAmountTTotal: item.currentPaymentAmount, })); expandedRowKeys.value.push(row.id); }); } catch (error) { src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
@@ -75,10 +75,16 @@ taxInclusiveUnitPrice: undefined, // 含税单价 ticketRegistrationId: undefined, // 含税单价 }); const load = async id => { const { code, data } = await getProductRecordById({ id }); const cuticketsAmount = ref(0); const cufutureTickets = ref(0); const load = async (id, purchaseLedgerId, productModelId) => { const { code, data } = await getProductRecordById({ id: id, purchaseLedgerId: purchaseLedgerId, productModelId: productModelId, }); if (code === 200) { console.log(data, "来票台账详情"); form.id = data.id; form.purchaseContractNumber = data.purchaseContractNumber; form.salesContractNo = data.salesContractNo; @@ -88,8 +94,11 @@ form.ticketsAmount = data.ticketsAmount.toFixed(2); form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice; form.futureTickets = data.futureTickets; form.futureTicketsAmount = data.futureTicketsAmount.toFixed(2); // temFutureTickets.value = data.futureTickets; temFutureTickets.value = data.quantity; cuticketsAmount.value = data.futureTicketsAmount + data.ticketsAmount; cufutureTickets.value = data.futureTickets + data.ticketsNum; form.ticketRegistrationId = data.ticketRegistrationId; } @@ -101,16 +110,15 @@ proxy.$modal.msgWarning("含税单价不能为零或未定义"); return; } if (Number(form.ticketsNum) > Number(temFutureTickets.value)) { if (Number(form.ticketsNum) > Number(cufutureTickets.value)) { proxy.$modal.msgWarning("开票数不得大于未开票数"); form.ticketsNum = temFutureTickets.value; form.ticketsNum = cufutureTickets.value; } // 确保所有数值都转换为数字类型进行计算 const ticketsAmount = Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice); const futureTickets = Number(temFutureTickets.value) - Number(form.ticketsNum); const futureTickets = Number(cufutureTickets.value) - Number(form.ticketsNum); form.futureTickets = Number(futureTickets.toFixed(2)); form.ticketsAmount = Number(ticketsAmount.toFixed(2)); }; @@ -121,14 +129,18 @@ return; } if (Number(val) > Number(form.futureTickets * form.taxInclusiveUnitPrice)) { if ( Number(val) > Number((form.futureTickets + form.ticketsNum) * form.taxInclusiveUnitPrice) ) { proxy.$modal.msgWarning("本次来票金额不得大于总金额"); form.ticketsAmount = ( form.futureTickets * form.taxInclusiveUnitPrice ).toFixed(2); form.ticketsAmount = cuticketsAmount.value.toFixed(2); const ticketsNum = Number(form.ticketsAmount) / Number(form.taxInclusiveUnitPrice); form.ticketsNum = Number(ticketsNum.toFixed(2)); form.futureTickets = Number( (cufutureTickets.value - form.ticketsNum).toFixed(2) ); return; } src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue
@@ -1,8 +1,12 @@ <template> <el-dialog :title="modalOptions.title" v-model="visible" @close="close"> <el-dialog :title="modalOptions.title" v-model="visible" @close="close"> <EditForm ref="editFormRef" /> <template #footer> <el-button type="primary" :loading="loading" @click="sendForm"> <el-button type="primary" :loading="loading" @click="sendForm"> {{ modalOptions.confirmText }} </el-button> <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button> @@ -21,7 +25,7 @@ }); const emits = defineEmits(["success"]); const saleLedgerProjectId = ref('') const saleLedgerProjectId = ref(""); const editFormRef = ref(); const { id, @@ -33,11 +37,11 @@ closeModal, } = useModal({ title: "来票台账" }); const open = async (row) => { const open = async row => { openModal(row.id); saleLedgerProjectId.value = row.saleLedgerProjectId; await nextTick(); editFormRef.value.load(row.id); editFormRef.value.load(row.id, row.purchaseLedgerId, row.productModelId); }; const close = () => { src/views/salesManagement/invoiceLedger/index.vue
@@ -181,7 +181,7 @@ prop="invoiceTotal"> <el-input-number :step="0.01" :min="0" :max="form.noInvoiceAmount" :max="form.noInvoiceAmount + form.invoiceAmount" style="width: 100%" v-model="form.invoiceTotal" placeholder="请输入"