feat(finance): 添加应付和应收报表功能
- 创建应付报表页面,包含项目编号、名称、计收状态、付款状态、收票状态等查询条件 - 实现应付报表表格展示,包含计收统计、应付单、付款单、收票单等数据列 - 添加应付报表导出功能,支持权限控制和数据导出 - 创建应收报表页面,包含项目编号、名称、计收状态、收款状态、开票状态等查询条件 - 实现应收报表表格展示,包含应收单、计收统计、收款单、开票单等数据列 - 添加应收报表导出功能,支持权限控制和数据导出dev_1.0.1
parent
a4ce1ba45a
commit
357410c3e7
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
Loading…
Reference in New Issue