fix(finance): 修复财务模块表单验证和显示问题
- 为申请开票表单添加disabled属性控制 - 注释掉开票详情表格中的操作列 - 调整condensed-item样式间距和错误提示层级 - 为申请付款对话框添加表单验证规则 - 修复银行账号字段名称错误 - 为申请退款对话框添加表单验证规则 - 实现退款信息变更确认提示功能 - 动态显示开票单和红冲开票详情标题 - 为财务详情页面金额字段添加负数红色显示 - 在表格中显示绝对值金额 - 为审批页面添加标签状态颜色 - 修复审批历史加载的单据编号 - 调整审批页面付款编号显示 - 为开票列表页面金额字段添加负数红色显示 - 修正生成收票单按钮文本为生成开票单 - 修复上传发票对话框票据类型显示问题dev_1.0.0
parent
0dfdeee19d
commit
5485a827be
|
|
@ -75,7 +75,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
@ -152,7 +152,7 @@ export default {
|
|||
|
||||
getInvoiceReceipt(this.currentInvoiceReceiptId).then(response => {
|
||||
this.form = response.data;
|
||||
this.loadApproveHistory(this.form.receiptBillCode);
|
||||
this.loadApproveHistory(this.form.ticketBillCode);
|
||||
this.detailLoading = false;
|
||||
}).catch(() => {
|
||||
this.detailLoading = false;
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b><el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
@ -195,7 +195,7 @@ export default {
|
|||
|
||||
getInvoiceReceipt(this.currentInvoiceReceiptId).then(response => {
|
||||
this.form = response.data;
|
||||
this.loadApproveHistory(this.form.receiptBillCode);
|
||||
this.loadApproveHistory(this.form.ticketBillCode);
|
||||
this.detailLoading = false;
|
||||
}).catch(() => {
|
||||
this.detailLoading = false;
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
@ -153,7 +153,7 @@ export default {
|
|||
|
||||
getInvoiceReceipt(this.currentInvoiceReceiptId).then(response => {
|
||||
this.form = response.data;
|
||||
this.loadApproveHistory(this.form.receiptBillCode);
|
||||
this.loadApproveHistory(this.form.ticketBillCode);
|
||||
this.detailLoading = false;
|
||||
}).catch(() => {
|
||||
this.detailLoading = false;
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
@ -199,7 +199,7 @@ export default {
|
|||
|
||||
getInvoiceReceipt(this.currentInvoiceReceiptId).then(response => {
|
||||
this.form = response.data;
|
||||
this.loadApproveHistory(this.form.receiptBillCode);
|
||||
this.loadApproveHistory(this.form.ticketBillCode);
|
||||
this.detailLoading = false;
|
||||
}).catch(() => {
|
||||
this.detailLoading = false;
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
<ApproveLayout ref="approveLayout" title="付款单详情">
|
||||
<payment-detail :data="form"></payment-detail>
|
||||
<template #footer>
|
||||
<span>付款编号: {{ form.paymentBillCode }}</span>
|
||||
<span> {{ form.paymentBillCode }}</span>
|
||||
</template>
|
||||
</ApproveLayout>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
<ApproveLayout ref="approveLayout" title="付款单详情">
|
||||
<payment-detail :data="form"></payment-detail>
|
||||
<template #footer>
|
||||
<span>付款编号: {{ form.paymentBillCode }}</span>
|
||||
<span> {{ form.paymentBillCode }}</span>
|
||||
</template>
|
||||
</ApproveLayout>
|
||||
</div>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b><el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@
|
|||
<el-card>
|
||||
<h4>{{ log.approveOpinion }}</h4>
|
||||
<p><b>操作人:</b> {{ log.approveUserName }} </p>
|
||||
<p><b>审批状态:</b> <el-tag size="small">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
<p><b>审批状态:</b> <el-tag :type="log.approveStatus == '3' ? 'success' : log.approveStatus == '2' ? 'danger' : 'info'">{{ getStatusText(log.approveStatus) }}</el-tag></p>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<el-dialog title="申请开票" :visible.sync="visible" width="1000px" append-to-body @close="handleClose"
|
||||
custom-class="invoice-dialog">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="110px" class="invoice-form">
|
||||
<el-form ref="form" :model="form" :rules="rules" :disabled="isRedRush" size="small" label-width="110px" class="invoice-form">
|
||||
|
||||
<!-- 1. 顶部:发票类型与票号日期 -->
|
||||
<div class="invoice-header">
|
||||
|
|
@ -142,14 +142,14 @@
|
|||
<span v-else>{{ scope.row.taxAmount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="60" align="center">
|
||||
<template slot-scope="scope">
|
||||
<i class="el-icon-plus table-icon" @click="addDetailRow"
|
||||
v-if="scope.$index === form.detailItemList.length - 1"></i>
|
||||
<i class="el-icon-minus table-icon" @click="removeDetailRow(scope.$index)"
|
||||
v-if="form.detailItemList.length > 1" style="margin-left:5px"></i>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" width="60" align="center">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <i class="el-icon-plus table-icon" @click="addDetailRow"-->
|
||||
<!-- v-if="scope.$index === form.detailItemList.length - 1"></i>-->
|
||||
<!-- <i class="el-icon-minus table-icon" @click="removeDetailRow(scope.$index)"-->
|
||||
<!-- v-if="form.detailItemList.length > 1" style="margin-left:5px"></i>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
|
|
@ -677,7 +677,11 @@ export default {
|
|||
}
|
||||
|
||||
.condensed-item {
|
||||
margin-bottom: 5px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.condensed-item ::v-deep .el-form-item__error {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.condensed-item ::v-deep .el-form-item__label {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
title="收票单详情"
|
||||
:title="detail.invoiceBillType==='RED_RUSH'?'红冲开票详情':'开票单详情'"
|
||||
:visible.sync="visible"
|
||||
direction="rtl"
|
||||
size="70%"
|
||||
|
|
@ -23,25 +23,25 @@
|
|||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">含税总价(元): {{ detail.totalPriceWithTax }}</div>
|
||||
<div class="detail-item">含税总价(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}">{{ detail.totalPriceWithTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">未税总价(元): {{ detail.totalPriceWithoutTax }}</div>
|
||||
<div class="detail-item">未税总价(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}">{{ detail.totalPriceWithoutTax }} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">税额(元): {{ $calc.sub(detail.totalPriceWithTax,detail.totalPriceWithoutTax) }}</div>
|
||||
<div class="detail-item">税额(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}">{{ $calc.sub(detail.totalPriceWithTax,detail.totalPriceWithoutTax) }} </span></div>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票含税总价(元): {{ detail.invoicePriceWithTax }}</div>
|
||||
<div class="detail-item">发票含税总价(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}"> {{ detail.invoicePriceWithTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票未税总价(元): {{ detail.invoicePriceWithoutTax }}</div>
|
||||
<div class="detail-item">发票未税总价(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}"{{ detail.invoicePriceWithoutTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票税额(元): {{ $calc.sub(detail.invoicePriceWithTax,detail.invoicePriceWithoutTax) }}</div>
|
||||
<div class="detail-item">发票税额(元): <span :class="{'red-text':detail.invoiceBillType==='RED_RUSH'}"{{ $calc.sub(detail.invoicePriceWithTax,detail.invoicePriceWithoutTax) }}</span></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
|
|
@ -118,8 +118,16 @@
|
|||
<el-table-column property="projectName" label="项目名称"></el-table-column>
|
||||
<el-table-column property="receivableBillCode" label="销售-应收单编号"></el-table-column>
|
||||
<el-table-column property="totalPriceWithTax" label="含税总价(元)"></el-table-column>
|
||||
<el-table-column property="receiptAmount" label="本次开票金额"></el-table-column>
|
||||
<el-table-column property="receiptRate" label="本次开票比例(%)"></el-table-column>
|
||||
<el-table-column property="receiptAmount" label="本次开票金额">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ Math.abs(scope.row.receiptAmount) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="receiptRate" label="本次开票比例(%)">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ Math.abs(scope.row.receiptRate) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -171,6 +179,9 @@ export default {
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
.red-text{
|
||||
color: red;
|
||||
}
|
||||
.section {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,14 +119,16 @@
|
|||
<el-col :span="12">
|
||||
<el-form :model="uploadForm" ref="uploadForm" :rules="rules" label-width="120px" size="medium" >
|
||||
<el-form-item label="票据类型" prop="invoiceType" required>
|
||||
<el-select v-model="uploadForm.invoiceType" placeholder="请选择票据类型" @change="handleTypeChange">
|
||||
<el-option
|
||||
v-for="item in dict.type.finance_invoice_type"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<dict-tag :options="dict.type.finance_invoice_type" :value="uploadForm.invoiceType"/>
|
||||
<!-- <el-select v-model="uploadForm.invoiceType" placeholder="请选择票据类型" @change="handleTypeChange">-->
|
||||
<!-- -->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in dict.type.finance_invoice_type"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="开票附件" prop="file" >
|
||||
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
||||
|
|
|
|||
|
|
@ -134,18 +134,30 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进货商名称" align="center" prop="partnerName" width="300" />
|
||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="180" />
|
||||
<el-table-column label="未税总价(元)" align="center" prop="totalPriceWithoutTax" width="180"/>
|
||||
<el-table-column label="发票未税总价(元)" align="center" prop="invoicePriceWithoutTax" width="180"/>
|
||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="180" >
|
||||
<template slot-scope="scope">
|
||||
<span :style="scope.row.totalPriceWithTax<0?{color:'red'}:{}">{{ scope.row.totalPriceWithTax }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="未税总价(元)" align="center" prop="totalPriceWithoutTax" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span :style="scope.row.totalPriceWithoutTax<0?{color:'red'}:{}">{{ scope.row.totalPriceWithoutTax }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发票未税总价(元)" align="center" prop="invoicePriceWithoutTax" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span :style="scope.row.invoicePriceWithoutTax<0?{color:'red'}:{}">{{ scope.row.invoicePriceWithoutTax }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="税额(元)" align="center" prop="taxAmount" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ $calc.sub(scope.row.totalPriceWithTax, scope.row.totalPriceWithoutTax) }}</span>
|
||||
<span :style="scope.row.invoicePriceWithoutTax<0?{color:'red'}:{}">{{ $calc.sub(scope.row.totalPriceWithTax, scope.row.totalPriceWithoutTax) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="发票税额(元)" align="center" prop="invoicePriceTax" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ $calc.sub(scope.row.totalPriceWithTax, scope.row.invoicePriceWithoutTax) }}</span>
|
||||
<span :style="scope.row.invoicePriceWithoutTax<0?{color:'red'}:{}">{{ $calc.sub(scope.row.totalPriceWithTax, scope.row.invoicePriceWithoutTax) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开票状态" align="center" prop="invoiceStatus" width="150" >
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
title="采购-付款单详情"
|
||||
:title="detail.paymentBillType==='REFUND'?'退款单详情':'付款单详情'"
|
||||
:visible.sync="visible"
|
||||
direction="rtl"
|
||||
size="70%"
|
||||
|
|
@ -24,13 +24,13 @@
|
|||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">含税总价(元): {{ detail.totalPriceWithTax }}</div>
|
||||
<div class="detail-item">含税总价(元):<span :class="{'red-text':detail.paymentBillType==='REFUND'}"> {{ detail.totalPriceWithTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">未税总价(元): {{ detail.totalPriceWithoutTax }}</div>
|
||||
<div class="detail-item">未税总价(元): <span :class="{'red-text':detail.paymentBillType==='REFUND'}">{{ detail.totalPriceWithoutTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">税额(元): {{ detail.taxAmount }}</div>
|
||||
<div class="detail-item">税额(元): <span :class="{'red-text':detail.paymentBillType==='REFUND'}">{{ detail.taxAmount }} </span></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
|
|
@ -96,8 +96,16 @@
|
|||
<el-table-column property="projectName" label="项目名称"></el-table-column>
|
||||
<el-table-column property="payableBillCode" label="采购-应付单编号"></el-table-column>
|
||||
<el-table-column property="totalPriceWithTax" label="含税总价"></el-table-column>
|
||||
<el-table-column property="paymentAmount" label="本次付款金额"></el-table-column>
|
||||
<el-table-column property="paymentRate" label="本次付款比例"></el-table-column>
|
||||
<el-table-column property="paymentAmount" label="本次付款金额">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ Math.abs(scope.row.paymentAmount) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="paymentRate" label="本次付款比例">
|
||||
<template slot-scope="scope">
|
||||
<span >{{ Math.abs(scope.row.paymentRate) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -164,6 +172,9 @@ export default {
|
|||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.red-text{
|
||||
color: red;
|
||||
}
|
||||
.grid-content {
|
||||
border-radius: 4px;
|
||||
min-height: 36px;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
title="收票单详情"
|
||||
:title="detail.ticketBillType==='RED_RUSH'?'红冲收票详情':'收票单详情'"
|
||||
:visible.sync="visible"
|
||||
direction="rtl"
|
||||
size="70%"
|
||||
|
|
@ -26,28 +26,28 @@
|
|||
<div class="detail-item">制造商名称: {{ detail.vendorName }}</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">含税总价: {{ detail.totalPriceWithTax }}</div>
|
||||
<div class="detail-item">含税总价: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.totalPriceWithTax }}</span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">未税总价: {{ detail.totalPriceWithoutTax }}</div>
|
||||
<div class="detail-item">未税总价: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.totalPriceWithoutTax }}</span></div>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">税额: {{ detail.taxAmount }}</div>
|
||||
<div class="detail-item">税额: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.taxAmount }} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票含税总价: {{ detail.ticketPriceWithTax || '-'}}</div>
|
||||
<div class="detail-item">发票含税总价: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.ticketPriceWithTax || '-'}} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票未税总价: {{ detail.ticketPriceWithoutTax || '-'}}</div>
|
||||
<div class="detail-item">发票未税总价: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.ticketPriceWithoutTax || '-'}} </span></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">发票税额: {{ detail.ticketAmount }}</div>
|
||||
<div class="detail-item">发票税额: <span :class="{'red-text':detail.ticketBillType==='RED_RUSH'}">{{ detail.ticketAmount }} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">收票状态:
|
||||
|
|
@ -134,6 +134,9 @@ export default {
|
|||
font-size: 14px;
|
||||
align-items: center;
|
||||
}
|
||||
.red-text{
|
||||
color: red;
|
||||
}
|
||||
|
||||
.section {
|
||||
margin-bottom: 20px;
|
||||
|
|
|
|||
|
|
@ -114,14 +114,15 @@
|
|||
<el-col :span="12">
|
||||
<el-form :model="uploadForm" ref="uploadForm" :rules="rules" label-width="120px" size="medium" >
|
||||
<el-form-item label="票据类型" prop="ticketType" required>
|
||||
<el-select v-model="uploadForm.ticketType" placeholder="请选择票据类型">
|
||||
<el-option
|
||||
v-for="item in dict.type.finance_invoice_type"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<dict-tag :options="dict.type.finance_invoice_type" :value="uploadForm.ticketType"/>
|
||||
<!-- <el-select v-model="uploadForm.ticketType" placeholder="请选择票据类型">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in dict.type.finance_invoice_type"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="收票附件" prop="file" required>
|
||||
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@
|
|||
v-show="scope.row.uninvoicedAmount!==0"
|
||||
@click="handleGeneratedInvoice(scope.row)"
|
||||
v-hasPermi="['finance:invoice:generate']"
|
||||
>生成收票单</el-button>
|
||||
>生成开票单</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<!-- Left Side: Form Data -->
|
||||
<el-col :span="12">
|
||||
<div class="form-tip">请选择客户的支付方式并确认客户打款的账户信息,提交至财务审批</div>
|
||||
<el-form ref="form" :model="form" label-width="120px" size="small">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small">
|
||||
<el-form-item label="支付方式" prop="receiptMethod">
|
||||
<el-select v-model="form.receiptMethod" placeholder="请选择支付方式" style="width: 100%">
|
||||
<el-option
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
<el-form-item label="账户名称" prop="receiptAccountName">
|
||||
<el-input v-model="form.receiptAccountName" placeholder="请输入账户名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="银行账号" prop="payBankNumber">
|
||||
<el-form-item label="银行账号" prop="receiptBankNumber">
|
||||
<el-input v-model="form.receiptBankNumber" placeholder="请输入银行账号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="银行开户行" prop="receiptBankOpenAddress">
|
||||
|
|
@ -117,6 +117,29 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
rules: {
|
||||
receiptMethod: [
|
||||
{ required: true, message: "请选择支付方式", trigger: "change" }
|
||||
],
|
||||
receiptAccountName: [
|
||||
{ required: true, message: "请输入账户名称", trigger: "blur" }
|
||||
],
|
||||
receiptBankNumber: [
|
||||
{ required: true, message: "请输入银行账号", trigger: "blur" }
|
||||
],
|
||||
receiptBankOpenAddress: [
|
||||
{ required: true, message: "请输入银行开户行", trigger: "blur" }
|
||||
],
|
||||
bankNumber: [
|
||||
{ required: true, message: "请输入银行行号", trigger: "blur" }
|
||||
],
|
||||
file: [
|
||||
{ required: true, message: "请上传客户付款图", trigger: "change" }
|
||||
],
|
||||
confirmAmount: [
|
||||
{ required: true, message: "请输入确认收款金额", trigger: "blur" }
|
||||
]
|
||||
},
|
||||
form: {
|
||||
receiptMethod: null,
|
||||
receiptAccountName: null,
|
||||
|
|
@ -196,11 +219,13 @@ export default {
|
|||
this.form.fileName = file.name;
|
||||
this.isPreviewPdf = file.raw.type === 'application/pdf';
|
||||
this.previewUrl = URL.createObjectURL(file.raw);
|
||||
this.$refs.form.validateField('file');
|
||||
},
|
||||
handleFileRemove() {
|
||||
this.form.file = null;
|
||||
this.form.fileName = '';
|
||||
this.previewUrl = '';
|
||||
this.$refs.form.validateField('file');
|
||||
},
|
||||
handleSubmit() {
|
||||
if (this.$calc.sub(this.form.totalPriceWithTax,this.form.confirmAmount)!=0){
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<el-dialog title="申请退款" :visible.sync="visible" width="600px" append-to-body :before-close="handleClose"
|
||||
custom-class="apply-refund-dialog">
|
||||
<div class="form-tip">请选择客户的退款方式并确认客户收款的账户信息,提交至财务审批</div>
|
||||
<el-form ref="form" :model="form" label-width="120px" size="small">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small">
|
||||
<el-form-item label="退款方式" prop="receiptMethod">
|
||||
<el-select v-model="form.receiptMethod" placeholder="请选择退款方式" style="width: 100%">
|
||||
<el-option
|
||||
|
|
@ -80,6 +80,26 @@ export default {
|
|||
confirmAmount: null,
|
||||
remark: null,
|
||||
id: this.receiptData.id
|
||||
},
|
||||
rules: {
|
||||
receiptMethod: [
|
||||
{ required: true, message: "请选择退款方式", trigger: "change" }
|
||||
],
|
||||
receiptAccountName: [
|
||||
{ required: true, message: "请输入账户名称", trigger: "blur" }
|
||||
],
|
||||
receiptBankNumber: [
|
||||
{ required: true, message: "请输入银行账号", trigger: "blur" }
|
||||
],
|
||||
receiptBankOpenAddress: [
|
||||
{ required: true, message: "请输入银行开户行", trigger: "blur" }
|
||||
],
|
||||
bankNumber: [
|
||||
{ required: true, message: "请输入银行行号", trigger: "blur" }
|
||||
],
|
||||
confirmAmount: [
|
||||
{ required: true, message: "请输入确认退款金额", trigger: "blur" }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
|
|
@ -124,14 +144,51 @@ export default {
|
|||
handleSubmit() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
// Send as JSON since no file upload
|
||||
submitRefund(this.form).then(response => {
|
||||
this.$modal.msgSuccess("申请退款提交成功");
|
||||
this.$emit("submit");
|
||||
this.handleClose();
|
||||
}).catch(error => {
|
||||
console.error("申请退款提交失败", error);
|
||||
const checkFields = ['receiptMethod', 'receiptAccountName', 'receiptBankNumber', 'receiptBankOpenAddress', 'bankNumber'];
|
||||
let isDiff = false;
|
||||
let diffMsg = [];
|
||||
|
||||
checkFields.forEach(field => {
|
||||
// Use loose equality to handle null vs undefined or number vs string issues if necessary,
|
||||
// but stricter is better if types are consistent.
|
||||
// Given Vue forms often use strings, and receiptData might be from API,
|
||||
// we'll try to match somewhat loosely or ensure strings.
|
||||
const formVal = this.form[field];
|
||||
const originVal = this.receiptData[field];
|
||||
|
||||
// Simple comparison
|
||||
if (formVal != originVal) {
|
||||
isDiff = true;
|
||||
// Get label for friendly message
|
||||
let label = "";
|
||||
switch(field) {
|
||||
case 'receiptMethod': label = "退款方式"; break;
|
||||
case 'receiptAccountName': label = "账户名称"; break;
|
||||
case 'receiptBankNumber': label = "银行账号"; break;
|
||||
case 'receiptBankOpenAddress': label = "银行开户行"; break;
|
||||
case 'bankNumber': label = "银行行号"; break;
|
||||
}
|
||||
diffMsg.push(label);
|
||||
}
|
||||
});
|
||||
|
||||
const doSubmit = () => {
|
||||
submitRefund(this.form).then(response => {
|
||||
this.$modal.msgSuccess("申请退款提交成功");
|
||||
this.$emit("submit");
|
||||
this.handleClose();
|
||||
}).catch(error => {
|
||||
console.error("申请退款提交失败", error);
|
||||
});
|
||||
};
|
||||
|
||||
if (isDiff) {
|
||||
this.$modal.confirm(`检测到以下信息与原收款信息不一致:${diffMsg.join('、')}。确认要提交吗?`).then(() => {
|
||||
doSubmit();
|
||||
}).catch(() => {});
|
||||
} else {
|
||||
doSubmit();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
title="收款单详情"
|
||||
:title="detail.receiptBillType==='REFUND'?'退款单详情':'收款单详情'"
|
||||
:visible.sync="visible"
|
||||
direction="rtl"
|
||||
size="70%"
|
||||
|
|
@ -24,13 +24,13 @@
|
|||
<el-row :gutter="20">
|
||||
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">含税总价(元): {{ detail.totalPriceWithTax }}</div>
|
||||
<div class="detail-item">含税总价(元):<span :class="{'red-text':detail.receiptBillType==='REFUND'}"> {{ detail.totalPriceWithTax }} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">未税总价(元): {{ detail.totalPriceWithoutTax }}</div>
|
||||
<div class="detail-item">未税总价(元): <span :class="{'red-text':detail.receiptBillType==='REFUND'}">{{ detail.totalPriceWithoutTax }} </span></div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="detail-item">税额(元): {{ detail.taxAmount }}</div>
|
||||
<div class="detail-item">税额(元): <span :class="{'red-text':detail.receiptBillType==='REFUND'}">{{ detail.taxAmount }} </span></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
|
|
@ -107,8 +107,20 @@
|
|||
<el-table-column property="projectName" label="项目名称"></el-table-column>
|
||||
<el-table-column property="receivableBillCode" label="应收单编号"></el-table-column>
|
||||
<el-table-column property="totalPriceWithTax" label="含税总价(元)"></el-table-column>
|
||||
<el-table-column property="receiptAmount" label="本次收款金额"></el-table-column>
|
||||
<el-table-column property="receiptRate" label="本次收款比例(%)"></el-table-column>
|
||||
<el-table-column property="receiptAmount" label="本次收款金额">
|
||||
<template slot-scope="scope">
|
||||
<span >
|
||||
{{ Math.abs(scope.row.receiptAmount) }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="receiptRate" label="本次收款比例(%)">
|
||||
<template slot-scope="scope">
|
||||
<span >
|
||||
{{ Math.abs(scope.row.receiptRate) }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
|
|
@ -177,6 +189,9 @@ export default {
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
.red-text{
|
||||
color: red;
|
||||
}
|
||||
.section {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,7 +130,11 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进货商名称" align="center" prop="partnerName" width="230" />
|
||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="180" />
|
||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="180" >
|
||||
<template slot-scope="scope">
|
||||
<span><span :style="scope.row.totalPriceWithTax<0?{color:'red'}:{}">{{ scope.row.totalPriceWithTax }} </span></span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="receiptBillType" width="180">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.receipt_bill_type" :value="scope.row.receiptBillType"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue