From 4cc27f93a1901e12eb12a198029911c483dd991f Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期三, 27 八月 2025 14:30:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev_JLMY' into dev_JLMY --- src/views/accountReceivableLedger/index.vue | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 224 insertions(+), 0 deletions(-) diff --git a/src/views/accountReceivableLedger/index.vue b/src/views/accountReceivableLedger/index.vue new file mode 100644 index 0000000..0dc1a0a --- /dev/null +++ b/src/views/accountReceivableLedger/index.vue @@ -0,0 +1,224 @@ +<template> + <div class="app-container"> + <el-form :model="searchForm" :inline="true"> + <el-form-item label="瀹㈡埛鍚嶇О"> + <el-input + v-model="searchForm.customer" + placeholder="杈撳叆瀹㈡埛鍚嶇О鎼滅储" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + </el-form-item> + <el-form-item label="鐓ょ"> + <el-input + v-model="searchForm.coal" + placeholder="杈撳叆鐓ょ" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + </el-form-item> + <!-- <el-form-item label="椤圭洰鍚嶇О"> + <el-input + v-model="searchForm.projectName" + placeholder="杈撳叆椤圭洰鍚嶇О" + @change="handleQuery" + clearable + :prefix-icon="Search" + /> + </el-form-item> --> + <el-form-item label="搴旀敹鏃ユ湡"> + <el-date-picker + v-model="searchForm.receiptPaymentDate" + value-format="YYYY-MM-DD" + format="YYYY-MM-DD" + type="daterange" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + clearable + style="width: 300px" + @change="changeDateRange" + @clear="clearRange" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button> + </el-form-item> + </el-form> + <div class="table_list"> + <PIMTable + rowKey="id" + :column="tableColumn" + :tableData="tableData" + :page="page" + :isSelection="true" + :isShowSummary="isShowSummarySon" + :summaryMethod="summarizeMainTable1" + :tableLoading="tableLoading" + :total="page.total" + @pagination="pagination" + @selection-change="handleSelectionChange" + ></PIMTable> + </div> + </div> +</template> + +<script setup> +import { ref } from "vue"; +import { Search } from "@element-plus/icons-vue"; +import { receiptPaymentHistoryListPage } from "@/api/salesManagement/receiptPayment.js"; +import PIMTable from "@/components/PIMTable/PIMTable.vue"; +import useFormData from "@/hooks/useFormData"; +import dayjs from "dayjs"; + +const { proxy } = getCurrentInstance(); +const tableColumn = ref([ + { + label: "瀹㈡埛鍚嶇О", + prop: "customer", + width:300 + }, + { + label: "鐓ょ", + prop: "coal", + width:240 + }, + { + label: "搴旀敹鏃ユ湡", + prop: "receiptPaymentDate", + width:300 + }, + // { + // label: "瀹㈡埛鍚嶇О", + // prop: "customerName", + // width:240 + // }, + // { + // label: "椤圭洰鍚嶇О", + // prop: "projectName", + // width:200 + // }, + { + label: "搴旀敹閲戦锛堝厓锛�", + prop: "receiptPaymentAmount", + width:200, + formatData: (params) => { + return params ? parseFloat(params).toFixed(2) : 0; + }, + }, + { + label: "搴旀敹鏂瑰紡", + prop: "receiptPaymentType", + width:200, + dataType: "tag", + formatData: (params) => { + if (params == 0) { + return "鐢垫眹"; + } else if (params == 1) { + return "鎵垮厬"; + } else { + return null; + } + }, + formatType: (params) => { + return "info"; + }, + }, + { + label: "鐧昏浜�", + prop: "registrant", + width:200 + }, + { + label: "鐧昏鏃ユ湡", + prop: "createTime", + width:300 + }, +]); +const tableData = ref([]); +const selectedRows = ref([]); +const tableLoading = ref(false); +const page = reactive({ + current: 1, + size: 100, + total: 0, +}); +const total = ref(0); + +const { form: searchForm } = useFormData({ + searchText: undefined, + receiptPaymentDate: [ + dayjs().startOf("month").format("YYYY-MM-DD"), + dayjs().endOf("month").format("YYYY-MM-DD"), + ], + receiptPaymentDateStart: dayjs() + .startOf("month") + .format("YYYY-MM-DD 00:00:00"), + receiptPaymentDateEnd: dayjs().endOf("month").format("YYYY-MM-DD 23:59:59"), + customerContractNo: undefined, + projectName: undefined, +}); +const { receipt_payment_type } = proxy.useDict("receipt_payment_type"); +const isShowSummarySon = ref(true); +// 鏌ヨ鍒楄〃 +/** 鎼滅储鎸夐挳鎿嶄綔 */ +const handleQuery = () => { + page.current = 1; + getList(); +}; +const pagination = (obj) => { + page.current = obj.page; + page.size = obj.limit; + getList(); +}; +const getList = () => { + tableLoading.value = true; + const { receiptPaymentDate, ...rest } = searchForm; + receiptPaymentHistoryListPage({ ...rest, ...page }).then((res) => { + tableLoading.value = false; + tableData.value = res.records; + page.total = res.total; + }); +}; +// 瀛愯〃鍚堣鏂规硶 +const summarizeMainTable1 = (param) => { + return proxy.summarizeTable(param, ["receiptPaymentAmount"], { + ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁� + }); +}; +// 琛ㄦ牸閫夋嫨鏁版嵁 +const handleSelectionChange = (selection) => { + selectedRows.value = selection; +}; + +const changeDateRange = (date) => { + if (date) { + searchForm.receiptPaymentDateStart = dayjs(date[0]).format( + "YYYY-MM-DD 00:00:00" + ); + searchForm.receiptPaymentDateEnd = dayjs(date[1]).format( + "YYYY-MM-DD 23:59:59" + ); + getList(); + } +}; + +const clearRange = () => { + searchForm.receiptPaymentDate = []; + searchForm.receiptPaymentDateStart = undefined; + searchForm.receiptPaymentDateEnd = undefined; + getList(); +}; + +onMounted(() => { + getList(); +}); +</script> + +<style scoped lang="scss"> +.table_list { + margin-top: unset; +} +</style> -- Gitblit v1.9.3