feat(finance): 添加应付和应收报表功能

- 创建应付报表页面,包含项目编号、名称、计收状态、付款状态、收票状态等查询条件
- 实现应付报表表格展示,包含计收统计、应付单、付款单、收票单等数据列
- 添加应付报表导出功能,支持权限控制和数据导出
- 创建应收报表页面,包含项目编号、名称、计收状态、收款状态、开票状态等查询条件
- 实现应收报表表格展示,包含应收单、计收统计、收款单、开票单等数据列
- 添加应收报表导出功能,支持权限控制和数据导出
dev_1.0.1
chenhao 2026-01-05 17:26:33 +08:00
parent a4ce1ba45a
commit 357410c3e7
2 changed files with 562 additions and 0 deletions

View File

@ -0,0 +1,280 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目编号" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计收状态" prop="chargeStatus">
<el-select
v-model="queryParams.chargeStatus"
placeholder="请输入计收状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.charge_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="付款状态" prop="paymentStatus">
<el-select
v-model="queryParams.paymentStatus"
placeholder="请输入付款状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.report_payment_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="收票状态" prop="ticketStatus">
<el-select
v-model="queryParams.ticketStatus"
placeholder="请输入收票状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.report_ticket_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['finance:report:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="reportList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目" align="center" prop="orderCode" width="180" v-if="columns.projectCode.visible || columns.projectName.visible" key="orderCode">
<el-table-column label="项目编号" align="center" prop="projectCode" width="120" v-if="columns.projectCode.visible" key="receivableWithTax"/>
<el-table-column label="项目名称" align="center" prop="projectName" width="120" v-if="columns.projectName.visible" key="receivableWithoutTax"/>
</el-table-column>
<!-- 毛利 -->
<el-table-column label="计收统计" align="center" v-if="columns.chargeStatus.visible || columns.chargedWithoutTax.visible || columns.grossProfit.visible ||columns.grossProfitRate.visible">
<el-table-column label="计收状态" align="center" prop="chargeStatus" width="100" v-if="columns.chargeStatus.visible" key="chargeStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.charge_status" :value="scope.row.chargeStatus"/>
</template>
</el-table-column>
<el-table-column label="已计收未税金额" align="center" prop="chargedWithoutTax" width="120" v-if="columns.chargedWithoutTax.visible" key="chargedWithoutTax"/>
<el-table-column label="金额" align="center" prop="grossProfit" width="120" v-if="columns.grossProfit.visible" key="grossProfit"/>
<el-table-column label="毛利率" align="center" prop="grossProfitRate" width="100" v-if="columns.grossProfitRate.visible" key="grossProfitRate"/>
</el-table-column>
<el-table-column label="业务计收时间" align="center" prop="bizChargeDate" width="180" v-if="columns.bizChargeDate.visible" key="bizChargeDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.bizChargeDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="财务计收时间" align="center" prop="financeChargeDate" width="180" v-if="columns.financeChargeDate.visible" key="financeChargeDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.financeChargeDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- 应付 -->
<el-table-column label="应付单" align="center">
<el-table-column label="应付含税金额" align="center" prop="payableWithTax" width="120" v-if="columns.payableWithTax.visible" key="payableWithTax"/>
<el-table-column label="应付未税金额" align="center" prop="payableWithoutTax" width="120" v-if="columns.payableWithoutTax.visible" key="payableWithoutTax"/>
<el-table-column label="应付税额" align="center" prop="payableTax" width="120" v-if="columns.payableTax.visible" key="payableTax"/>
</el-table-column>
<!-- 付款 -->
<el-table-column label="付款单" align="center">
<el-table-column label="付款状态" align="center" prop="paymentStatus" width="100" v-if="columns.paymentStatus.visible" key="paymentStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.report_payment_status" :value="scope.row.paymentStatus"/>
</template>
</el-table-column>
<el-table-column label="已付款含税金额" align="center" prop="paidWithTax" width="120" v-if="columns.paidWithTax.visible" key="paidWithTax"/>
<el-table-column label="已付款未税金额" align="center" prop="paidWithoutTax" width="120" v-if="columns.paidWithoutTax.visible" key="paidWithoutTax"/>
<el-table-column label="已付款税额" align="center" prop="paidTax" width="120" v-if="columns.paidTax.visible" key="paidTax"/>
<el-table-column label="付款中含税金额" align="center" prop="payingWithTax" width="120" v-if="columns.payingWithTax.visible" key="payingWithTax"/>
<el-table-column label="付款中未税金额" align="center" prop="payingWithoutTax" width="120" v-if="columns.payingWithoutTax.visible" key="payingWithoutTax"/>
<el-table-column label="付款中税额" align="center" prop="payingTax" width="120" v-if="columns.payingTax.visible" key="payingTax"/>
<el-table-column label="未付款含税金额" align="center" prop="unpaidWithTax" width="120" v-if="columns.unpaidWithTax.visible" key="unpaidWithTax"/>
<el-table-column label="未付款未税金额" align="center" prop="unpaidWithoutTax" width="120" v-if="columns.unpaidWithoutTax.visible" key="unpaidWithoutTax"/>
<el-table-column label="未付款税额" align="center" prop="unpaidTax" width="120" v-if="columns.unpaidTax.visible" key="unpaidTax"/>
</el-table-column>
<!-- 收票 -->
<el-table-column label="收票单" align="center">
<el-table-column label="收票状态" align="center" prop="ticketStatus" width="100" v-if="columns.ticketStatus.visible" key="ticketStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.report_ticket_status" :value="scope.row.ticketStatus"/>
</template>
</el-table-column>
<el-table-column label="已收票含税金额" align="center" prop="ticketedWithTax" width="120" v-if="columns.ticketedWithTax.visible" key="ticketedWithTax"/>
<el-table-column label="已收票未税金额" align="center" prop="ticketedWithoutTax" width="120" v-if="columns.ticketedWithoutTax.visible" key="ticketedWithoutTax"/>
<el-table-column label="已收票税额" align="center" prop="ticketedTax" width="120" v-if="columns.ticketedTax.visible" key="ticketedTax"/>
<el-table-column label="收票中含税金额" align="center" prop="ticketingWithTax" width="120" v-if="columns.ticketingWithTax.visible" key="ticketingWithTax"/>
<el-table-column label="收票中未税金额" align="center" prop="ticketingWithoutTax" width="120" v-if="columns.ticketingWithoutTax.visible" key="ticketingWithoutTax"/>
<el-table-column label="收票中税额" align="center" prop="ticketingTax" width="120" v-if="columns.ticketingTax.visible" key="ticketingTax"/>
<el-table-column label="未收票含税金额" align="center" prop="unticketedWithTax" width="120" v-if="columns.unticketedWithTax.visible" key="unticketedWithTax"/>
<el-table-column label="未收票未税金额" align="center" prop="unticketedWithoutTax" width="120" v-if="columns.unticketedWithoutTax.visible" key="unticketedWithoutTax"/>
<el-table-column label="未收票税额" align="center" prop="unticketedTax" width="120" v-if="columns.unticketedTax.visible" key="unticketedTax"/>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listReport } from "@/api/finance/report";
export default {
name: "PayableReport",
dicts: ['charge_status', 'report_payment_status', 'report_ticket_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
reportList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
orderCode: null,
projectCode: null,
projectName: null,
chargeStatus: null,
paymentStatus: null,
ticketStatus: null,
},
//
columns: {
projectCode: { label: "项目编号", visible: true },
projectName: { label: "项目名称", visible: true },
chargeStatus: { label: "计收状态", visible: true },
chargedWithoutTax: { label: "已计收未税金额", visible: true },
grossProfit: { label: "毛利", visible: true },
grossProfitRate: { label: "毛利率", visible: true },
bizChargeDate: { label: "业务计收时间", visible: true },
financeChargeDate: { label: "财务计收时间", visible: true },
payableWithTax: { label: "应付含税总价", visible: true },
payableWithoutTax: { label: "应付未税总价", visible: true },
payableTax: { label: "应付税额", visible: true },
paymentStatus: { label: "付款状态", visible: true },
paidWithTax: { label: "已付款含税金额", visible: true },
paidWithoutTax: { label: "已付款未税金额", visible: true },
paidTax: { label: "已付款税额", visible: true },
payingWithTax: { label: "付款中含税金额", visible: true },
payingWithoutTax: { label: "付款中未税金额", visible: true },
payingTax: { label: "付款中税额", visible: true },
unpaidWithTax: { label: "未付款含税金额", visible: true },
unpaidWithoutTax: { label: "未付款未税金额", visible: true },
unpaidTax: { label: "未付款税额", visible: true },
ticketStatus: { label: "收票状态", visible: true },
ticketedWithTax: { label: "已收票含税金额", visible: true },
ticketedWithoutTax: { label: "已收票未税金额", visible: true },
ticketedTax: { label: "已收票税额", visible: true },
ticketingWithTax: { label: "收票中含税金额", visible: true },
ticketingWithoutTax: { label: "收票中未税金额", visible: true },
ticketingTax: { label: "收票中税额", visible: true },
unticketedWithTax: { label: "未收票含税金额", visible: true },
unticketedWithoutTax: { label: "未收票未税金额", visible: true },
unticketedTax: { label: "未收票税额", visible: true },
}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目报表列表 */
getList() {
this.loading = true;
listReport(this.queryParams).then(response => {
this.reportList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 导出按钮操作 */
handleExport() {
this.download('finance/report/export', {
...this.queryParams
}, `report_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,282 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目编号" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计收状态" prop="chargeStatus">
<el-select
v-model="queryParams.chargeStatus"
placeholder="请输入计收状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.charge_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="收款状态" prop="receiptStatus">
<el-select
v-model="queryParams.receiptStatus"
placeholder="请输入收款状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.report_receipt_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="开票状态" prop="invoiceStatus">
<el-select
v-model="queryParams.invoiceStatus"
placeholder="请输入开票状态"
clearable
@keyup.enter.native="handleQuery"
>
<el-option
v-for="dict in dict.type.report_invoice_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['finance:report:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="reportList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目" align="center" prop="orderCode" width="180" v-if="columns.projectCode.visible || columns.projectName.visible" key="orderCode">
<el-table-column label="项目编号" align="center" prop="projectCode" width="120" v-if="columns.projectCode.visible" key="receivableWithTax"/>
<el-table-column label="项目名称" align="center" prop="projectName" width="120" v-if="columns.projectName.visible" key="receivableWithoutTax"/>
</el-table-column>
<!-- 应收 -->
<el-table-column label="应收单" align="center" v-if="columns.receivableWithTax.visible || columns.receivableWithoutTax.visible||columns.receivableTax.visible">
<el-table-column label="应收含税总价" align="center" prop="receivableWithTax" width="120" v-if="columns.receivableWithTax.visible" key="receivableWithTax"/>
<el-table-column label="应收未税总价" align="center" prop="receivableWithoutTax" width="120" v-if="columns.receivableWithoutTax.visible" key="receivableWithoutTax"/>
<el-table-column label="应收税额" align="center" prop="receivableTax" width="120" v-if="columns.receivableTax.visible" key="receivableTax"/>
</el-table-column>
<!-- 毛利 -->
<el-table-column label="计收统计" align="center" v-if="columns.chargeStatus.visible || columns.chargedWithoutTax.visible || columns.grossProfit.visible ||columns.grossProfitRate.visible">
<el-table-column label="计收状态" align="center" prop="chargeStatus" width="100" v-if="columns.chargeStatus.visible" key="chargeStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.charge_status" :value="scope.row.chargeStatus"/>
</template>
</el-table-column>
<el-table-column label="已计收未税金额" align="center" prop="chargedWithoutTax" width="120" v-if="columns.chargedWithoutTax.visible" key="chargedWithoutTax"/>
<el-table-column label="金额" align="center" prop="grossProfit" width="120" v-if="columns.grossProfit.visible" key="grossProfit"/>
<el-table-column label="毛利率" align="center" prop="grossProfitRate" width="100" v-if="columns.grossProfitRate.visible" key="grossProfitRate"/>
</el-table-column>
<el-table-column label="业务计收时间" align="center" prop="bizChargeDate" width="180" v-if="columns.bizChargeDate.visible" key="bizChargeDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.bizChargeDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="财务计收时间" align="center" prop="financeChargeDate" width="180" v-if="columns.financeChargeDate.visible" key="financeChargeDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.financeChargeDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- 收款 -->
<el-table-column label="收款单" align="center" >
<el-table-column label="收款状态" align="center" prop="receiptStatus" width="100" v-if="columns.receiptStatus.visible" key="receiptStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.report_receipt_status" :value="scope.row.receiptStatus"/>
</template>
</el-table-column>
<el-table-column label="已收款含税金额" align="center" prop="receivedWithTax" width="120" v-if="columns.receivedWithTax.visible" key="receivedWithTax"/>
<el-table-column label="已收款未税金额" align="center" prop="receivedWithoutTax" width="120" v-if="columns.receivedWithoutTax.visible" key="receivedWithoutTax"/>
<el-table-column label="已收款税额" align="center" prop="receivedTax" width="120" v-if="columns.receivedTax.visible" key="receivedTax"/>
<el-table-column label="收款中含税金额" align="center" prop="receivingWithTax" width="120" v-if="columns.receivingWithTax.visible" key="receivingWithTax"/>
<el-table-column label="收款中未税金额" align="center" prop="receivingWithoutTax" width="120" v-if="columns.receivingWithoutTax.visible" key="receivingWithoutTax"/>
<el-table-column label="收款中税额" align="center" prop="receivingTax" width="120" v-if="columns.receivingTax.visible" key="receivingTax"/>
<el-table-column label="未收款含税金额" align="center" prop="unreceivedWithTax" width="120" v-if="columns.unreceivedWithTax.visible" key="unreceivedWithTax"/>
<el-table-column label="未收款未税金额" align="center" prop="unreceivedWithoutTax" width="120" v-if="columns.unreceivedWithoutTax.visible" key="unreceivedWithoutTax"/>
<el-table-column label="未收款税额" align="center" prop="unreceivedTax" width="120" v-if="columns.unreceivedTax.visible" key="unreceivedTax"/>
</el-table-column>
<!-- 开票 -->
<el-table-column label="开票单" align="center">
<el-table-column label="开票状态" align="center" prop="invoiceStatus" width="100" v-if="columns.invoiceStatus.visible" key="invoiceStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.report_invoice_status" :value="scope.row.invoiceStatus"/>
</template>
</el-table-column>
<el-table-column label="已开票含税金额" align="center" prop="invoicedWithTax" width="120" v-if="columns.invoicedWithTax.visible" key="invoicedWithTax"/>
<el-table-column label="已开票未税金额" align="center" prop="invoicedWithoutTax" width="120" v-if="columns.invoicedWithoutTax.visible" key="invoicedWithoutTax"/>
<el-table-column label="已开票税额" align="center" prop="invoicedTax" width="120" v-if="columns.invoicedTax.visible" key="invoicedTax"/>
<el-table-column label="开票中含税金额" align="center" prop="invoicingWithTax" width="120" v-if="columns.invoicingWithTax.visible" key="invoicingWithTax"/>
<el-table-column label="开票中未税金额" align="center" prop="invoicingWithoutTax" width="120" v-if="columns.invoicingWithoutTax.visible" key="invoicingWithoutTax"/>
<el-table-column label="开票中税额" align="center" prop="invoicingTax" width="120" v-if="columns.invoicingTax.visible" key="invoicingTax"/>
<el-table-column label="未开票含税金额" align="center" prop="uninvoicedWithTax" width="120" v-if="columns.uninvoicedWithTax.visible" key="uninvoicedWithTax"/>
<el-table-column label="未开票未税金额" align="center" prop="uninvoicedWithoutTax" width="120" v-if="columns.uninvoicedWithoutTax.visible" key="uninvoicedWithoutTax"/>
<el-table-column label="未开票税额" align="center" prop="uninvoicedTax" width="120" v-if="columns.uninvoicedTax.visible" key="uninvoicedTax"/>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listReport } from "@/api/finance/report";
export default {
name: "ReceiveReport",
dicts: ['charge_status', 'report_receipt_status', 'report_invoice_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
reportList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
orderCode: null,
projectCode: null,
projectName: null,
chargeStatus: null,
receiptStatus: null,
invoiceStatus: null,
},
//
columns: {
projectCode: { label: "项目编号", visible: true },
projectName: { label: "项目名称", visible: true },
receivableWithTax: { label: "应收含税总价", visible: true },
receivableWithoutTax: { label: "应收未税总价", visible: true },
receivableTax: { label: "应收税额", visible: true },
chargeStatus: { label: "计收状态", visible: true },
chargedWithoutTax: { label: "已计收未税金额", visible: true },
grossProfit: { label: "毛利", visible: true },
grossProfitRate: { label: "毛利率", visible: true },
bizChargeDate: { label: "业务计收时间", visible: true },
financeChargeDate: { label: "财务计收时间", visible: true },
receiptStatus: { label: "收款状态", visible: true },
receivedWithTax: { label: "已收款含税金额", visible: true },
receivedWithoutTax: { label: "已收款未税金额", visible: true },
receivedTax: { label: "已收款税额", visible: true },
receivingWithTax: { label: "收款中含税金额", visible: true },
receivingWithoutTax: { label: "收款中未税金额", visible: true },
receivingTax: { label: "收款中税额", visible: true },
unreceivedWithTax: { label: "未收款含税金额", visible: true },
unreceivedWithoutTax: { label: "未收款未税金额", visible: true },
unreceivedTax: { label: "未收款税额", visible: true },
invoiceStatus: { label: "开票状态", visible: true },
invoicedWithTax: { label: "已开票含税金额", visible: true },
invoicedWithoutTax: { label: "已开票未税金额", visible: true },
invoicedTax: { label: "已开票税额", visible: true },
invoicingWithTax: { label: "开票中含税金额", visible: true },
invoicingWithoutTax: { label: "开票中未税金额", visible: true },
invoicingTax: { label: "开票中税额", visible: true },
uninvoicedWithTax: { label: "未开票含税金额", visible: true },
uninvoicedWithoutTax: { label: "未开票未税金额", visible: true },
uninvoicedTax: { label: "未开票税额", visible: true },
}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目报表列表 */
getList() {
this.loading = true;
listReport(this.queryParams).then(response => {
this.reportList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 导出按钮操作 */
handleExport() {
this.download('finance/report/export', {
...this.queryParams
}, `report_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style lang="scss" scoped>
</style>