From 6e30fb16e72db22a119285cb5b757b7a5e1b2206 Mon Sep 17 00:00:00 2001 From: 曹睿 <360930172@qq.com> Date: 星期三, 18 六月 2025 16:35:14 +0800 Subject: [PATCH] fix: 修复之前剩下的要求 --- src/views/procurementManagement/paymentHistory/index.vue | 182 +++++-- src/views/procurementManagement/procurementInvoiceLedger/index.vue | 401 ++++++----------- src/views/salesManagement/receiptPayment/index.vue | 9 src/api/procurementManagement/procurementInvoiceLedger.js | 82 ++- src/api/procurementManagement/procurementLedger.js | 89 ++- src/views/procurementManagement/invoiceEntry/index.vue | 6 src/views/salesManagement/receiptPaymentLedger/index.vue | 20 src/views/procurementManagement/reportAnalysis/projectProfit/index.vue | 3 src/views/procurementManagement/paymentEntry/index.vue | 7 src/views/salesManagement/invoiceRegistration/index.vue | 90 +++ src/views/procurementManagement/procurementLedger/index.vue | 8 src/views/salesManagement/invoiceLedger/index.vue | 15 src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue | 311 ++++++++++++++ src/views/procurementManagement/reportAnalysis/taxComparison/index.vue | 91 ++++ src/views/salesManagement/receiptPaymentHistory/index.vue | 4 15 files changed, 897 insertions(+), 421 deletions(-) diff --git a/src/api/procurementManagement/procurementInvoiceLedger.js b/src/api/procurementManagement/procurementInvoiceLedger.js index 793c946..fb73655 100644 --- a/src/api/procurementManagement/procurementInvoiceLedger.js +++ b/src/api/procurementManagement/procurementInvoiceLedger.js @@ -1,60 +1,68 @@ // 閲囪喘-鏉ョエ鍙拌处鎺ュ彛 -import request from '@/utils/request' +import request from "@/utils/request"; // 鏌ヨ鍒楄〃 export function invoiceList(query) { - return request({ - url: '/purchase/registration/list', - method: 'get', - params: query - }) + return request({ + url: "/purchase/registration/list", + method: "get", + params: query, + }); } // 鏌ヨ璇︽儏 export function getInvoiceById(query) { - return request({ - url: '/purchase/registration/getRegistrationById', - method: 'get', - params: query - }) + return request({ + url: "/purchase/registration/getRegistrationById", + method: "get", + params: query, + }); } // 鏂板銆佺紪杈� export function addOrUpdateInvoice(query) { - return request({ - url: '/purchase/invoice/addOrUpdateInvoice', - method: 'post', - data: query - }) + return request({ + url: "/purchase/invoice/addOrUpdateInvoice", + method: "post", + data: query, + }); } // 鍒犻櫎 export function delInvoice(query) { - return request({ - url: '/purchase/invoice/delInvoice', - method: 'delete', - data: query - }) + return request({ + url: "/purchase/invoice/delInvoice", + method: "delete", + data: query, + }); } // 鍒犻櫎闄勪欢 export function delCommonFile(query) { - return request({ - url: '/commonFile/delCommonFile', - method: 'delete', - data: query - }) + return request({ + url: "/commonFile/delCommonFile", + method: "delete", + data: query, + }); } // 瀛愯〃鏍兼煡璇� -export function productRecordList(query){ - return request({ - url: '/purchase/registration/productRecordList', - method: 'get', - params: query - }) +export function productRecordList(query) { + return request({ + url: "/purchase/registration/productRecordList", + method: "get", + params: query, + }); } // 鏌ヨ鍒楄〃 export function invoiceListPage(query) { - return request({ - url: '/purchase/registration/listPage', - method: 'get', - params: query - }) + return request({ + url: "/purchase/registration/listPage", + method: "get", + params: query, + }); +} + +export function productRecordPage(query) { + return request({ + url: "/purchase/registration/productRecordPage", + method: "get", + params: query, + }); } diff --git a/src/api/procurementManagement/procurementLedger.js b/src/api/procurementManagement/procurementLedger.js index 5b2d9db..9fb284e 100644 --- a/src/api/procurementManagement/procurementLedger.js +++ b/src/api/procurementManagement/procurementLedger.js @@ -1,67 +1,74 @@ // 閲囪喘鍙拌处椤甸潰鎺ュ彛 -import request from '@/utils/request' +import request from "@/utils/request"; // 鍒嗛〉鏌ヨ export function purchaseList(query) { - return request({ - url: '/purchase/ledger/list', - method: 'get', - params: query - }) + return request({ + url: "/purchase/ledger/list", + method: "get", + params: query, + }); } // 鏌ヨ鍚堝悓鍙� export function getSalesNo(query) { - return request({ - url: '/purchase/ledger/getSalesNo', - method: 'get', - params: query - }) + return request({ + url: "/purchase/ledger/getSalesNo", + method: "get", + params: query, + }); } // 瀛愯〃鏍兼煡璇� export function productList(query) { - return request({ - url: '/sales/product/list', - method: 'get', - params: query - }) + return request({ + url: "/sales/product/list", + method: "get", + params: query, + }); } // 鏂板銆佺紪杈� export function addOrEditPurchase(query) { - return request({ - url: '/purchase/ledger/addOrEditPurchase', - method: 'post', - data: query - }) + return request({ + url: "/purchase/ledger/addOrEditPurchase", + method: "post", + data: query, + }); } // 鍒犻櫎 export function delPurchase(query) { - return request({ - url: '/purchase/ledger/delPurchase', - method: 'delete', - data: query - }) + return request({ + url: "/purchase/ledger/delPurchase", + method: "delete", + data: query, + }); } // 鏌ヨ璇︽儏 export function getPurchaseById(query) { - return request({ - url: '/purchase/ledger/getPurchaseById', - method: 'get', - params: query - }) + return request({ + url: "/purchase/ledger/getPurchaseById", + method: "get", + params: query, + }); } // 鏌ヨ璇︽儏 export function getOptions(query) { - return request({ - url: '/system/supplier/getOptions', - method: 'get', - params: query - }) + return request({ + url: "/system/supplier/getOptions", + method: "get", + params: query, + }); } export function purchaseListPage(query) { - return request({ - url: '/purchase/ledger/listPage', - method: 'get', - params: query - }) + return request({ + url: "/purchase/ledger/listPage", + method: "get", + params: query, + }); +} + +export function createPurchaseNo() { + return request({ + url: "/purchase/ledger/createPurchaseNo", + method: "get", + }); } diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue index 89628e6..d30d2d0 100644 --- a/src/views/procurementManagement/invoiceEntry/index.vue +++ b/src/views/procurementManagement/invoiceEntry/index.vue @@ -222,18 +222,19 @@ </el-form-item> </el-col> </el-row> - <el-row :gutter="30"> + <!-- <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="褰曞叆鏃ユ湡锛�" prop="createTime"> <el-date-picker style="width: 100%" v-model="form.createTime" type="date" + placeholder="璇烽�夋嫨" clearable /> </el-form-item> </el-col> - </el-row> + </el-row> --> <el-row> <el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> </el-form-item> </el-row> @@ -256,6 +257,7 @@ <el-table-column label="鍗曚綅" prop="unit" width="70" /> <el-table-column label="鏁伴噺" prop="quantity" width="70" /> <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" /> + <el-table-column label="褰曞叆鏃ユ湡" prop="createTime" width="120" /> <el-table-column label="鍚◣鍗曚环(鍏�)" width="150" diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue index 8c64037..38a305e 100644 --- a/src/views/procurementManagement/paymentEntry/index.vue +++ b/src/views/procurementManagement/paymentEntry/index.vue @@ -14,10 +14,10 @@ @change="handleQuery" /> </el-form-item> - <el-form-item label="涓嶆樉绀哄緟鍥炴"> + <el-form-item> <el-checkbox v-model="searchForm.status" - :label="0" + label="涓嶆樉绀哄緟浠樻涓�0" @change="handleQuery" /> </el-form-item> @@ -483,4 +483,7 @@ .table_list { margin-top: unset; } +::v-deep(.el-checkbox__label) { + font-weight: bold; +} </style> diff --git a/src/views/procurementManagement/paymentHistory/index.vue b/src/views/procurementManagement/paymentHistory/index.vue index 13b5100..aa64726 100644 --- a/src/views/procurementManagement/paymentHistory/index.vue +++ b/src/views/procurementManagement/paymentHistory/index.vue @@ -1,106 +1,166 @@ <template> <div class="app-container"> - <div class="search_form"> - <div> - <span class="search_title">渚涘簲鍟嗗悕绉帮細</span> - <el-input v-model="searchForm.searchText" style="width: 240px" placeholder="杈撳叆渚涘簲鍟嗗悕绉版悳绱�" - @change="handleQuery" clearable :prefix-icon="Search" /> - <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button> - </div> - </div> + <el-form :model="searchForm" :inline="true"> + <el-form-item label="渚涘簲鍟嗗悕绉�"> + <el-input + v-model="searchForm.searchText" + style="width: 240px" + placeholder="杈撳叆渚涘簲鍟嗗悕绉版悳绱�" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + </el-form-item> + <el-form-item label="浠樻鏃ユ湡"> + <el-date-picker + v-model="searchForm.paymentDate" + value-format="YYYY-MM-DD" + format="YYYY-MM-DD" + type="daterange" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + clearable + @change="changeDateRange" + @clear="clearRange" + /> + </el-form-item> + <el-form-item> + <el-button + type="primary" + @click="handleQuery" + style="margin-left: 10px" + > + 鎼滅储 + </el-button> + </el-form-item> + </el-form> <div class="table_list"> - <PIMTable :column="tableColumn" :tableData="tableData" :page="page" :isSelection="true" - :isShowSummary="isShowSummarySon" - :summaryMethod="summarizeMainTable1" - :handleSelectionChange="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" - :total="total"></PIMTable> + <PIMTable + :column="tableColumn" + :tableData="tableData" + :page="page" + :isSelection="true" + :isShowSummary="isShowSummarySon" + :summaryMethod="summarizeMainTable1" + :handleSelectionChange="handleSelectionChange" + :tableLoading="tableLoading" + @pagination="pagination" + :total="total" + ></PIMTable> </div> </div> </template> <script setup> -import { ref } from 'vue' +import { ref } from "vue"; import { Search } from "@element-plus/icons-vue"; -import { - paymentHistoryListPage -} from "@/api/procurementManagement/paymentEntry.js"; -const { proxy } = getCurrentInstance() +import { paymentHistoryListPage } from "@/api/procurementManagement/paymentEntry.js"; +import useFormData from "@/hooks/useFormData"; +import dayjs from "dayjs"; + +const { proxy } = getCurrentInstance(); const isShowSummarySon = ref(true); const tableColumn = ref([ { - label: '浠樻鏃ユ湡', - prop: 'paymentDate', + label: "浠樻鏃ユ湡", + prop: "paymentDate", }, { - label: '渚涘簲鍟嗗悕绉�', - prop: 'supplierName', + label: "渚涘簲鍟嗗悕绉�", + prop: "supplierName", }, { - label: '浠樻閲戦', - prop: 'currentPaymentAmount', + label: "浠樻閲戦", + prop: "currentPaymentAmount", formatData: (params) => { return parseFloat(params).toFixed(2); - } + }, }, { - label: '浠樻鏂瑰紡', - prop: 'paymentMethod' + label: "浠樻鏂瑰紡", + prop: "paymentMethod", }, { - label: '鐧昏浜�', - prop: 'registrant' + label: "鐧昏浜�", + prop: "registrant", }, { - label: '鐧昏鏃ユ湡', - prop: 'registrationtDate' - } -]) -const tableData = ref([]) -const selectedRows = ref([]) -const tableLoading = ref(false) + label: "鐧昏鏃ユ湡", + prop: "registrationtDate", + }, +]); +const tableData = ref([]); +const selectedRows = ref([]); +const tableLoading = ref(false); const page = reactive({ current: 1, size: 100, -}) -const total = ref(0) -const data = reactive({ - searchForm: { - searchText: '', - }, -}) -const { searchForm } = toRefs(data) +}); +const total = ref(0); +const { form: searchForm } = useFormData({ + searchText: undefined, + paymentDate: [ + dayjs().startOf("month").format("YYYY-MM-DD"), + dayjs().endOf("month").format("YYYY-MM-DD"), + ], + paymentDateStart: dayjs().startOf("month").format("YYYY-MM-DD"), + paymentDateEnd: dayjs().endOf("month").format("YYYY-MM-DD"), +}); // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { - page.current = 1 - getList() -} + page.current = 1; + getList(); +}; const pagination = (obj) => { page.current = obj.page; page.size = obj.limit; - getList() -} + getList(); +}; const getList = () => { - tableLoading.value = true - paymentHistoryListPage({ ...searchForm.value, ...page }).then(res => { - tableLoading.value = false - tableData.value = res.records - total.value = res.total - }) -} + tableLoading.value = true; + const { paymentDate, ...rest } = searchForm; + paymentHistoryListPage({ ...rest, ...page }).then((res) => { + tableLoading.value = false; + tableData.value = res.records; + total.value = res.total; + }); +}; // 瀛愯〃鍚堣鏂规硶 const summarizeMainTable1 = (param) => { - return proxy.summarizeTable(param, ['currentPaymentAmount'], { + return proxy.summarizeTable(param, ["currentPaymentAmount"], { ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� }); }; // 琛ㄦ牸閫夋嫨鏁版嵁 const handleSelectionChange = (selection) => { - selectedRows.value = selection -} -getList() + selectedRows.value = selection; +}; + +const changeDateRange = (date) => { + if (date) { + searchForm.paymentDateStart = date[0]; + searchForm.paymentDateEnd = date[1]; + getList(); + } +}; + +const clearRange = () => { + searchForm.paymentDate = []; + searchForm.paymentDateStart = undefined; + searchForm.paymentDateEnd = undefined; + getList(); +}; + +onMounted(() => { + getList(); +}); </script> -<style scoped lang="scss"></style> +<style scoped lang="scss"> +.table_list { + margin-top: unset; +} +</style> diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue index 6ae4766..4d5e139 100644 --- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue +++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue @@ -1,274 +1,184 @@ <template> <div class="app-container"> - <div class="search_form"> - <div> - <span class="search_title">閲囪喘鍚堝悓鍙凤細</span> + <el-form :model="filters" :inline="true"> + <el-form-item label="閲囪喘鍚堝悓鍙�"> <el-input - v-model="searchForm.purchaseContractNumber" + v-model="filters.purchaseContractNumber" style="width: 240px" placeholder="璇疯緭鍏�" - @change="handleQuery" clearable :prefix-icon="Search" + @change="getTableData" /> - <span class="search_title" style="margin-left: 10px">渚涘簲鍟嗭細</span> + </el-form-item> + <el-form-item label="渚涘簲鍟�"> <el-input - v-model="searchForm.supplierName" + v-model="filters.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" - @change="handleQuery" clearable :prefix-icon="Search" + @change="getTableData" /> - <span class="search_title" style="margin-left: 10px">鏉ョエ鏃ユ湡锛�</span> + </el-form-item> + <el-form-item label="鏉ョエ鏃ユ湡"> <el-date-picker style="width: 240px" - v-model="searchForm.issueDate" + v-model="filters.createdAt" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" clearable - @change="changeDateRange" - @clear="clearRange" + @change="getTableData" /> - <el-button type="primary" @click="handleQuery" style="margin-left: 10px" - >鎼滅储</el-button - > - </div> - <div> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="getTableData">鎼滅储</el-button> + <el-button @click="resetFilters"> 閲嶇疆 </el-button> <el-button @click="handleOut">瀵煎嚭</el-button> - </div> - </div> + </el-form-item> + </el-form> <div class="table_list"> - <el-table - :data="tableData" - border - v-loading="tableLoading" - :expand-row-keys="expandedRowKeys" - :row-key="(row) => row.id" - show-summary - :summary-method="summarizeMainTable" - @expand-change="expandChange" - height="calc(100vh - 18.5em)" + <PIMTable + :column="columns" + :tableLoading="loading" + :tableData="dataList" + :isSelection="true" + :page="{ + current: pagination.currentPage, + size: pagination.pageSize, + total: pagination.total, + }" + :handleSelectionChange="handleSelectionChange" + @pagination="onCurrentChange" > - <el-table-column align="center" label="搴忓彿" type="index" width="55" /> - <el-table-column type="expand"> - <template #default="props"> - <el-table - :data="props.row.children" - border - 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="unit" /> - <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-column label="鏈鏉ョエ鏁�" prop="ticketsNum" /> - <el-table-column - label="鏈鏉ョエ閲戦(鍏�)" - prop="ticketsAmount" - :formatter="formattedNumber" - /> - <el-table-column label="鏈潵绁ㄦ暟" prop="futureTickets" /> - <el-table-column - label="鏈潵绁ㄩ噾棰�(鍏�)" - prop="futureTicketsAmount" - :formatter="formattedNumber" - /> - </el-table> - </template> - </el-table-column> - <el-table-column - label="閲囪喘鍚堝悓鍙�" - prop="purchaseContractNumber" - show-overflow-tooltip - /> - <el-table-column - label="閿�鍞悎鍚屽彿" - prop="salesContractNo" - show-overflow-tooltip - /> - <el-table-column - label="渚涘簲鍟嗗悕绉�" - prop="supplierName" - show-overflow-tooltip - /> - <el-table-column - label="鍙戠エ鍙�" - prop="invoiceNumber" - show-overflow-tooltip - /> - <el-table-column - label="鍚堝悓閲戦(鍏�)" - prop="invoiceAmount" - show-overflow-tooltip - :formatter="formattedNumber" - /> - <el-table-column label="寮�绁ㄤ汉" prop="issUer" show-overflow-tooltip /> - <el-table-column - label="寮�绁ㄦ棩鏈�" - prop="issueDate" - show-overflow-tooltip - /> - </el-table> - <pagination - v-show="total > 0" - :total="total" - layout="total, sizes, prev, pager, next, jumper" - :page="page.current" - :limit="page.size" - @pagination="paginationChange" - /> + <!-- <template #operation> + <el-button type="primary" text @click="handleEdit" size="small"> + 缂栬緫 + </el-button> + </template> --> + </PIMTable> </div> </div> </template> <script setup> -import pagination from "@/components/PIMTable/Pagination.vue"; -import { ref } from "vue"; +import { ref, getCurrentInstance } from "vue"; +import { usePaginationApi } from "@/hooks/usePaginationApi"; import { Search } from "@element-plus/icons-vue"; +import { productRecordPage } from "@/api/procurementManagement/procurementInvoiceLedger.js"; +import { onMounted } from "vue"; import { ElMessageBox } from "element-plus"; -import { productRecordList } from "@/api/procurementManagement/procurementInvoiceLedger.js"; -import { invoiceListPage } from "@/api/procurementManagement/procurementInvoiceLedger.js"; -import dayjs from "dayjs"; + +defineOptions({ + name: "鏉ョエ鍙拌处", +}); const { proxy } = getCurrentInstance(); -const tableData = ref([]); -const tableLoading = ref(false); -const page = reactive({ - current: 1, - size: 100, -}); -const total = ref(0); -// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 -const data = reactive({ - searchForm: { - purchaseContractNumber: "", - supplierName: "", - issueDate: [ - dayjs().startOf("month").format("YYYY-MM-DD"), - dayjs().endOf("month").format("YYYY-MM-DD"), - ], - issueDateStart: dayjs().startOf("month").format("YYYY-MM-DD"), - issueDateEnd: dayjs().endOf("month").format("YYYY-MM-DD"), +const multipleVal = ref([]); +const { + loading, + filters, + columns, + dataList, + pagination, + getTableData, + resetFilters, + onCurrentChange, +} = usePaginationApi( + productRecordPage, + { + purchaseContractNumber: undefined, // 閲囪喘鍚堝悓鍙� + supplierName: undefined, // 渚涘簲鍟� + createdAt: [], // 鏉ョエ鏃ユ湡 }, - form: { - issueDate: "", // 寮�绁ㄦ棩鏈� - purchaseLedgerId: "", - purchaseLedgerNo: "", - issUerId: "", // 寮�绁ㄤ汉id - issUer: "", // 寮�绁ㄤ汉濮撳悕 - }, - rules: { - purchaseLedgerId: [ - { required: true, message: "璇烽�夋嫨", trigger: "change" }, - ], - }, -}); -const { searchForm } = toRefs(data); - -// 鏌ヨ鍒楄〃 -/** 鎼滅储鎸夐挳鎿嶄綔 */ -const handleQuery = () => { - page.current = 1; - getList(); -}; -const paginationChange = (obj) => { - page.current = obj.page; - page.size = obj.limit; - getList(); -}; -const getList = () => { - tableLoading.value = true; - const { issueDate, ...rest } = searchForm.value; - invoiceListPage({ ...rest, ...page }) - .then((res) => { - tableLoading.value = false; - tableData.value = res.records; - tableData.value.map((item) => { - item.children = []; - }); - total.value = res.total; - expandedRowKeys.value = []; - }) - .catch(() => { - tableLoading.value = false; - }); -}; -const formattedNumber = (row, column, cellValue) => { - return parseFloat(cellValue).toFixed(2); -}; -// 琛ㄦ牸閫夋嫨鏁版嵁 -const expandedRowKeys = ref([]); -// 灞曞紑琛� -const expandChange = (row, expandedRows) => { - if (expandedRows.length > 0) { - expandedRowKeys.value = []; - try { - productRecordList({ id: row.id }).then((res) => { - const index = tableData.value.findIndex((item) => item.id === row.id); - if (index > -1) { - tableData.value[index].children = res; - } - expandedRowKeys.value.push(row.id); - }); - } catch (error) { - console.log(error); - } - } else { - expandedRowKeys.value = []; - } -}; -// 涓昏〃鍚堣鏂规硶 -const summarizeMainTable = (param) => { - return proxy.summarizeTable(param, ["invoiceAmount"], { - ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� - futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� - }); -}; -// 瀛愯〃鍚堣鏂规硶 -const summarizeChildrenTable = (param) => { - return proxy.summarizeTable( - param, - [ - "taxInclusiveUnitPrice", - "taxInclusiveTotalPrice", - "taxExclusiveTotalPrice", - "ticketsNum", - "ticketsAmount", - "futureTickets", - "futureTicketsAmount", - ], + [ { - ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� - futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� - } - ); + label: "閲囪喘鍚堝悓鍙�", + prop: "purchaseContractNumber", + align: "center", + }, + { + label: "閿�鍞悎鍚屽彿", + prop: "salesContractNo", + align: "center", + }, + { + label: "瀹㈡埛鍚嶇О", + prop: "customerName", + align: "center", + }, + { + label: "渚涘簲鍟嗗悕绉�", + prop: "supplierName", + align: "center", + }, + { + label: "瑙勬牸鍨嬪彿", + prop: "specificationModel", + align: "center", + }, + { + label: "鍙戠エ鍙�", + prop: "invoiceNumber", + align: "center", + }, + { + label: "鍚堝悓閲戦(鍏�)", + prop: "taxInclusiveTotalPrice", + align: "center", + formatData: (cell) => { + return parseFloat(cell).toFixed(2); + }, + }, + { + label: "寮�绁ㄦ棩鏈�", + prop: "createdAt", + align: "center", + }, + { + label: "寮�绁ㄩ噾棰�", + prop: "ticketsAmount", + align: "center", + formatData: (cell) => { + return parseFloat(cell).toFixed(2); + }, + }, + { + label: "涓嶅惈绋庨噾棰�", + prop: "unTicketsPrice", + align: "center", + formatData: (cell) => { + return parseFloat(cell).toFixed(2); + }, + }, + { + label: "澧炲�肩◣", + prop: "invoiceAmount", + align: "center", + }, + // { + // fixed: "right", + // width: 120, + // label: "鎿嶄綔", + // dataType: "slot", + // slot: "operation", + // align: "center", + // }, + ], + {}, + { + createdAt: (aim) => ({ + createdAtStart: aim[0], + createdAtEnd: aim[1], + }), + } +); + +const handleSelectionChange = (val) => { + multipleVal.value = val; }; // 瀵煎嚭 @@ -286,24 +196,15 @@ }); }; -const changeDateRange = (date) => { - if (date) { - searchForm.receiptPaymentDateStart = date[0]; - searchForm.receiptPaymentDateEnd = date[1]; - getList(); - } -}; - -const clearRange = () => { - searchForm.value.issueDate = []; - searchForm.value.issueDateStart = undefined; - searchForm.value.issueDateEnd = undefined; - getList(); -}; +// const handleEdit = () => {}; onMounted(() => { - getList(); + getTableData(); }); </script> -<style scoped lang="scss"></style> +<style lang="scss" scoped> +.table_list { + margin-top: unset; +} +</style> diff --git a/src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue b/src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue new file mode 100644 index 0000000..987e6a4 --- /dev/null +++ b/src/views/procurementManagement/procurementInvoiceLedger/indexOld.vue @@ -0,0 +1,311 @@ +<template> + <div class="app-container"> + <div class="search_form"> + <div> + <span class="search_title">閲囪喘鍚堝悓鍙凤細</span> + <el-input + v-model="searchForm.purchaseContractNumber" + style="width: 240px" + placeholder="璇疯緭鍏�" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + <span class="search_title" style="margin-left: 10px">渚涘簲鍟嗭細</span> + <el-input + v-model="searchForm.supplierName" + style="width: 240px" + placeholder="璇疯緭鍏�" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + <span class="search_title" style="margin-left: 10px">鏉ョエ鏃ユ湡锛�</span> + <el-date-picker + style="width: 240px" + v-model="searchForm.issueDate" + value-format="YYYY-MM-DD" + format="YYYY-MM-DD" + type="daterange" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + clearable + @change="changeDateRange" + @clear="clearRange" + /> + <el-button type="primary" @click="handleQuery" style="margin-left: 10px" + >鎼滅储</el-button + > + </div> + <div> + <el-button @click="handleOut">瀵煎嚭</el-button> + </div> + </div> + <div class="table_list"> + <el-table + :data="tableData" + border + v-loading="tableLoading" + :expand-row-keys="expandedRowKeys" + :row-key="(row) => row.id" + show-summary + :summary-method="summarizeMainTable" + @expand-change="expandChange" + height="calc(100vh - 18.5em)" + > + <el-table-column align="center" label="搴忓彿" type="index" width="55" /> + <el-table-column type="expand"> + <template #default="props"> + <el-table + :data="props.row.children" + border + 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="unit" /> + <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-column label="鏈鏉ョエ鏁�" prop="ticketsNum" /> + <el-table-column + label="鏈鏉ョエ閲戦(鍏�)" + prop="ticketsAmount" + :formatter="formattedNumber" + /> + <el-table-column label="鏈潵绁ㄦ暟" prop="futureTickets" /> + <el-table-column + label="鏈潵绁ㄩ噾棰�(鍏�)" + prop="futureTicketsAmount" + :formatter="formattedNumber" + /> + </el-table> + </template> + </el-table-column> + <el-table-column + label="閲囪喘鍚堝悓鍙�" + prop="purchaseContractNumber" + show-overflow-tooltip + /> + <el-table-column + label="閿�鍞悎鍚屽彿" + prop="salesContractNo" + show-overflow-tooltip + /> + <el-table-column + label="渚涘簲鍟嗗悕绉�" + prop="supplierName" + show-overflow-tooltip + /> + <el-table-column + label="鍙戠エ鍙�" + prop="invoiceNumber" + show-overflow-tooltip + /> + <el-table-column + label="鍚堝悓閲戦(鍏�)" + prop="invoiceAmount" + show-overflow-tooltip + :formatter="formattedNumber" + /> + <el-table-column label="寮�绁ㄤ汉" prop="issUer" show-overflow-tooltip /> + <el-table-column + label="寮�绁ㄦ棩鏈�" + prop="issueDate" + show-overflow-tooltip + /> + </el-table> + <pagination + v-show="total > 0" + :total="total" + layout="total, sizes, prev, pager, next, jumper" + :page="page.current" + :limit="page.size" + @pagination="paginationChange" + /> + </div> + </div> +</template> + +<script setup> +import pagination from "@/components/PIMTable/Pagination.vue"; +import { ref } from "vue"; +import { Search } from "@element-plus/icons-vue"; +import { ElMessageBox } from "element-plus"; +import { + invoiceListPage, + productRecordList, +} from "@/api/procurementManagement/procurementInvoiceLedger.js"; +import dayjs from "dayjs"; + +const { proxy } = getCurrentInstance(); +const tableData = ref([]); +const tableLoading = ref(false); +const page = reactive({ + current: 1, + size: 100, +}); +const total = ref(0); +// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 +const data = reactive({ + searchForm: { + purchaseContractNumber: "", + supplierName: "", + issueDate: [ + dayjs().startOf("month").format("YYYY-MM-DD"), + dayjs().endOf("month").format("YYYY-MM-DD"), + ], + issueDateStart: dayjs().startOf("month").format("YYYY-MM-DD"), + issueDateEnd: dayjs().endOf("month").format("YYYY-MM-DD"), + }, + form: { + issueDate: "", // 寮�绁ㄦ棩鏈� + purchaseLedgerId: "", + purchaseLedgerNo: "", + issUerId: "", // 寮�绁ㄤ汉id + issUer: "", // 寮�绁ㄤ汉濮撳悕 + }, + rules: { + purchaseLedgerId: [ + { required: true, message: "璇烽�夋嫨", trigger: "change" }, + ], + }, +}); +const { searchForm } = toRefs(data); + +// 鏌ヨ鍒楄〃 +/** 鎼滅储鎸夐挳鎿嶄綔 */ +const handleQuery = () => { + page.current = 1; + getList(); +}; +const paginationChange = (obj) => { + page.current = obj.page; + page.size = obj.limit; + getList(); +}; +const getList = () => { + tableLoading.value = true; + const { issueDate, ...rest } = searchForm.value; + invoiceListPage({ ...rest, ...page }) + .then((res) => { + tableLoading.value = false; + tableData.value = res.records; + tableData.value.map((item) => { + item.children = []; + }); + total.value = res.total; + expandedRowKeys.value = []; + }) + .catch(() => { + tableLoading.value = false; + }); +}; +const formattedNumber = (row, column, cellValue) => { + return parseFloat(cellValue).toFixed(2); +}; +// 琛ㄦ牸閫夋嫨鏁版嵁 +const expandedRowKeys = ref([]); +// 灞曞紑琛� +const expandChange = (row, expandedRows) => { + if (expandedRows.length > 0) { + expandedRowKeys.value = []; + try { + productRecordList({ id: row.id }).then((res) => { + const index = tableData.value.findIndex((item) => item.id === row.id); + if (index > -1) { + tableData.value[index].children = res; + } + expandedRowKeys.value.push(row.id); + }); + } catch (error) { + console.log(error); + } + } else { + expandedRowKeys.value = []; + } +}; +// 涓昏〃鍚堣鏂规硶 +const summarizeMainTable = (param) => { + return proxy.summarizeTable(param, ["invoiceAmount"], { + ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + }); +}; +// 瀛愯〃鍚堣鏂规硶 +const summarizeChildrenTable = (param) => { + return proxy.summarizeTable( + param, + [ + "taxInclusiveUnitPrice", + "taxInclusiveTotalPrice", + "taxExclusiveTotalPrice", + "ticketsNum", + "ticketsAmount", + "futureTickets", + "futureTicketsAmount", + ], + { + ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + } + ); +}; + +// 瀵煎嚭 +const handleOut = () => { + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + proxy.download("/purchase/registration/export", {}, "鏉ョエ鐧昏.xlsx"); + }) + .catch(() => { + proxy.$modal.msg("宸插彇娑�"); + }); +}; + +const changeDateRange = (date) => { + if (date) { + searchForm.value.receiptPaymentDateStart = date[0]; + searchForm.value.receiptPaymentDateEnd = date[1]; + getList(); + } +}; + +const clearRange = () => { + searchForm.value.issueDate = []; + searchForm.value.issueDateStart = undefined; + searchForm.value.issueDateEnd = undefined; + getList(); +}; + +onMounted(() => { + getList(); +}); +</script> + +<style scoped lang="scss"></style> diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue index d360763..1086c81 100644 --- a/src/views/procurementManagement/procurementLedger/index.vue +++ b/src/views/procurementManagement/procurementLedger/index.vue @@ -9,7 +9,7 @@ placeholder="璇疯緭鍏�" @change="handleQuery" clearable - prefix-icon="Search" + :prefix-icon="Search" /> <el-button type="primary" @click="handleQuery" style="margin-left: 10px" >鎼滅储</el-button @@ -513,6 +513,7 @@ productList, getPurchaseById, getOptions, + createPurchaseNo, } from "@/api/procurementManagement/procurementLedger.js"; const { proxy } = getCurrentInstance(); const tableData = ref([]); @@ -701,6 +702,11 @@ form.value = {}; productData.value = []; fileList.value = []; + if (operationType.value == "add") { + createPurchaseNo().then((res) => { + form.value.purchaseContractNumber = res.data; + }); + } userListNoPage().then((res) => { userList.value = res.data; }); diff --git a/src/views/procurementManagement/reportAnalysis/projectProfit/index.vue b/src/views/procurementManagement/reportAnalysis/projectProfit/index.vue index 0f10543..82031bb 100644 --- a/src/views/procurementManagement/reportAnalysis/projectProfit/index.vue +++ b/src/views/procurementManagement/reportAnalysis/projectProfit/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form class="search_form" :inline="true" label-width="80px"> + <el-form :model="filters" :inline="true" label-width="80px"> <el-form-item label="瀹㈡埛鍚嶇О"> <el-input v-model="filters.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" /> </el-form-item> @@ -17,6 +17,7 @@ :page="{ current: pagination.currentPage, size: pagination.pageSize, + total: pagination.total, }" @pagination="onCurrentChange" ></PIMTable> diff --git a/src/views/procurementManagement/reportAnalysis/taxComparison/index.vue b/src/views/procurementManagement/reportAnalysis/taxComparison/index.vue new file mode 100644 index 0000000..eae0bca --- /dev/null +++ b/src/views/procurementManagement/reportAnalysis/taxComparison/index.vue @@ -0,0 +1,91 @@ +<template> + <div class="app-container"> + <el-form :model="filters" :inline="true"> + <el-form-item label="鏃ユ湡"> + <el-date-picker + style="width: 240px" + v-model="filters.dateRange" + value-format="YYYY-MM-DD" + format="YYYY-MM-DD" + type="daterange" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + clearable + @change="getTableData" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="getTableData"> 鎼滅储 </el-button> + <el-button @click="resetFilters"> 閲嶇疆 </el-button> + </el-form-item> + </el-form> + <div class="table_list"> + <PIMTable + :column="columns" + :tableData="dataList" + :page="{ + current: pagination.currentPage, + size: pagination.pageSize, + total: pagination.total, + }" + @pagination="onCurrentChange" + /> + </div> + </div> +</template> + +<script setup> +import { usePaginationApi } from "@/hooks/usePaginationApi"; +import { onMounted } from "vue"; + +defineOptions({ + name: "澧炲�肩◣姣斿", +}); + +const { + loading, + filters, + columns, + dataList, + pagination, + getTableData, + resetFilters, + onCurrentChange, +} = usePaginationApi( + () => {}, + { + dateRange: [], // 鏉ョエ鏃ユ湡 + }, + [ + { + label: "鏈堜唤", + }, + { + label: "閿�椤圭◣棰�", + }, + { + label: "杩涢」绋庨", + }, + { + label: "閿�-杩�", + }, + ], + {}, + { + dateRange: (aim) => ({ + dateRangeStart: aim[0], + dateRangeEnd: aim[1], + }), + } +); + +onMounted(() => { + getTableData(); +}); +</script> + +<style lang="scss" scoped> +.table_list { + margin-top: unset; +} +</style> diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue index fe2ca15..4ee4854 100644 --- a/src/views/salesManagement/invoiceLedger/index.vue +++ b/src/views/salesManagement/invoiceLedger/index.vue @@ -26,6 +26,9 @@ @clear="clearRange" /> </el-form-item> + <el-form-item label="涓嶆樉绀烘湁鍙戠エ琛�"> + <el-checkbox v-model="searchForm.status" @change="handleQuery" /> + </el-form-item> <el-form-item> <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button> <el-button @click="resetForm"> 閲嶇疆 </el-button> @@ -76,9 +79,15 @@ /> <el-table-column label="绋庣巼" prop="taxRate" show-overflow-tooltip /> <el-table-column - label="寮�绁ㄤ汉" + label="褰曞叆浜�" prop="invoicePerson" show-overflow-tooltip + /> + <el-table-column + label="褰曞叆鏃ユ湡" + prop="createTime" + show-overflow-tooltip + :formatter="formatDate" /> <el-table-column label="寮�绁ㄦ棩鏈�" @@ -312,6 +321,7 @@ const data = reactive({ searchForm: { searchText: "", + status: false, invoiceDate: [ dayjs().startOf("month").format("YYYY-MM-DD"), dayjs().endOf("month").format("YYYY-MM-DD"), @@ -356,6 +366,9 @@ const formattedNumber = (row, column, cellValue) => { return parseFloat(cellValue).toFixed(2); }; +const formatDate = (row, column, cellValue) => { + return dayjs(cellValue).format("YYYY-MM-DD HH:mm:ss"); +}; // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue index 8f1005c..917eb47 100644 --- a/src/views/salesManagement/invoiceRegistration/index.vue +++ b/src/views/salesManagement/invoiceRegistration/index.vue @@ -12,12 +12,6 @@ @change="handleQuery" /> </el-form-item> - <el-form-item label="鏈紑绁ㄩ噾棰濇槸鍚︿负0"> - <el-select v-model="searchForm.status" style="width: 90px" clearable> - <el-option label="鍚�" :value="0" /> - <el-option label="鏄�" :value="1" /> - </el-select> - </el-form-item> <el-form-item label="瀹㈡埛鍚堝悓鍙�"> <el-input v-model="searchForm.customerContractNo" @@ -33,15 +27,25 @@ /> </el-form-item> <el-form-item> + <el-checkbox + v-model="searchForm.status" + label="涓嶆樉绀烘湭寮�绁ㄩ噾棰濅负0" + @change="handleQuery" + /> + </el-form-item> + <el-form-item> <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button> <el-button @click="resetForm"> 閲嶇疆 </el-button> </el-form-item> </el-form> </div> <div class="table_list"> - <el-button type="primary" @click="openForm" style="margin-bottom: 8px"> - 鏂板鐧昏 - </el-button> + <div class="flex justify-between"> + <div></div> + <el-button type="primary" @click="openForm" style="margin-bottom: 8px"> + 鏂板鐧昏 + </el-button> + </div> <el-table :data="tableData" :border="true" @@ -212,6 +216,48 @@ </el-form-item> </el-col> </el-row> + <el-row :gutter="30"> + <el-col :span="12"> + <el-form-item label="褰曞叆浜�"> + <el-input v-model="form.createUer" placeholder="璇疯緭鍏ュ綍鍏ヤ汉" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="寮�绁ㄦ棩鏈�" prop="issueDate"> + <el-date-picker + style="width: 100%" + v-model="form.issueDate" + type="date" + placeholder="璇烽�夋嫨" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="30"> + <el-col :span="12"> + <el-form-item label="褰曞叆鏃ユ湡锛�" prop="createTime"> + <el-date-picker + style="width: 100%" + v-model="form.createTime" + type="date" + placeholder="璇烽�夋嫨" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="30"> + <el-col :span="12"> + <el-form-item label="鍙戠エ鍙风爜锛�" prop="invoiceNo"> + <el-input + v-model="form.invoiceNo" + placeholder="璇疯緭鍏�" + clearable + /> + </el-form-item> + </el-col> + </el-row> <el-row> <el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> </el-form-item> </el-row> @@ -295,6 +341,7 @@ min="0" disabled v-model="scope.row.noInvoiceAmount" + :formatter="formattedInputNumber" :precision="2" :step="0.01" ></el-input> @@ -314,7 +361,7 @@ <script setup> import pagination from "@/components/PIMTable/Pagination.vue"; -import { ref } from "vue"; +import { onMounted, ref } from "vue"; import { Search } from "@element-plus/icons-vue"; import { ElMessageBox } from "element-plus"; // import {userListNoPage} from "@/api/system/user.js"; @@ -342,9 +389,12 @@ const data = reactive({ searchForm: { customerName: "", - status: 0, + status: false, customerContractNo: undefined, // 瀹㈡埛鍚堝悓鍙� projectName: undefined, // 椤圭洰鍚嶇О + createUer: undefined, // 褰曞叆浜� + issueDate: undefined, // 寮�绁ㄦ棩鏈� + createTime: undefined, // 褰曞叆鏃ユ湡锛� }, form: { salesLedgerId: "", @@ -370,6 +420,11 @@ return cellValue; } }; + +const formattedInputNumber = (value) => { + return parseFloat(value).toFixed(2); +}; + // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { @@ -537,11 +592,22 @@ ).toFixed(2); }; -getList(); +onMounted(() => { + getList(); +}); </script> <style scoped lang="scss"> .table_list { margin-top: unset; } +.flex { + display: flex; +} +.justify-between { + justify-content: space-between; +} +::v-deep(.el-checkbox__label) { + font-weight: bold; +} </style> diff --git a/src/views/salesManagement/receiptPayment/index.vue b/src/views/salesManagement/receiptPayment/index.vue index 4c6fd8d..0525c8b 100644 --- a/src/views/salesManagement/receiptPayment/index.vue +++ b/src/views/salesManagement/receiptPayment/index.vue @@ -14,10 +14,10 @@ @change="handleQuery" /> </el-form-item> - <el-form-item label="涓嶆樉绀哄緟鍥炴"> + <el-form-item> <el-checkbox v-model="searchForm.status" - :label="0" + label="涓嶆樉绀哄緟鍥炴涓�0" @change="handleQuery" /> </el-form-item> @@ -139,7 +139,7 @@ /> <el-table-column label="椤圭洰鍚嶇О" - prop="customerName" + prop="projectName" show-overflow-tooltip /> <el-table-column @@ -550,4 +550,7 @@ .table_list { margin-top: unset; } +::v-deep(.el-checkbox__label) { + font-weight: bold; +} </style> diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue index 5dd4e7a..7f2e139 100644 --- a/src/views/salesManagement/receiptPaymentHistory/index.vue +++ b/src/views/salesManagement/receiptPaymentHistory/index.vue @@ -63,6 +63,10 @@ prop: "customerName", }, { + label: "椤圭洰鍚嶇О", + prop: "projectName", + }, + { label: "鍥炴閲戦锛堝厓锛�", prop: "receiptPaymentAmount", formatData: (params) => { diff --git a/src/views/salesManagement/receiptPaymentLedger/index.vue b/src/views/salesManagement/receiptPaymentLedger/index.vue index aa6ffb3..220594b 100644 --- a/src/views/salesManagement/receiptPaymentLedger/index.vue +++ b/src/views/salesManagement/receiptPaymentLedger/index.vue @@ -200,22 +200,22 @@ const summarizeMainTable1 = (param) => { var summarizeTable = proxy.summarizeTable( param, - ["invoiceAmount", "receiptAmount"], + ["invoiceAmount", "receiptAmount", "unReceiptAmount"], { ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� } ); // 鍙栨渶鍚庝竴琛屾暟鎹�; - if (receiptRecord.value?.length > 0) { - const index = tableData.value.findIndex( - (item) => item.id == customerId.value - ); - summarizeTable[summarizeTable.length - 1] = - tableData.value[index].unReceiptPaymentAmount.toFixed(2); - } else { - summarizeTable[summarizeTable.length - 1] = 0.0; - } + // if (receiptRecord.value?.length > 0) { + // const index = tableData.value.findIndex( + // (item) => item.id == customerId.value + // ); + // summarizeTable[summarizeTable.length - 1] = + // tableData.value[index].unReceiptPaymentAmount.toFixed(2); + // } else { + // summarizeTable[summarizeTable.length - 1] = 0.0; + // } // const sb = tableData.findIndex((item) => item.id == customerId.value); // console.log(sb); return summarizeTable; -- Gitblit v1.9.3