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