完成预开票管理,完善开票管理前端页面

This commit is contained in:
ryoeiken 2021-01-22 17:02:02 +08:00
parent 9f11a12223
commit 0434262959
4 changed files with 366 additions and 106 deletions

View File

@ -162,6 +162,12 @@ public class FtSettleDaoController extends BaseController {
case 3: case 3:
ftSettleDao.setType("在线支付"); ftSettleDao.setType("在线支付");
break; break;
case 4 :
ftSettleDao.setType("银行汇款");
break;
case 5:
ftSettleDao.setType("挂账");
break;
default: default:
} }

View File

@ -3,11 +3,11 @@
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="住院号" prop="hospitalId"> <el-form-item label="住院号" prop="hospitalId">
<el-input <el-input
v-model="queryParams.hospitalId" v-model="queryParams.hospitalId"
placeholder="请输入住院号" placeholder="请输入住院号"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
@ -17,36 +17,36 @@
size="small" size="small"
@keyup.enter.native="handleQuery"> @keyup.enter.native="handleQuery">
<el-option <el-option
v-for="item in departOptions" v-for="item in departOptions"
:key="item.departName" :key="item.departName"
:label="item.departName" :label="item.departName"
:value="item.departId"> :value="item.departId">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
placeholder="请输入姓名" placeholder="请输入姓名"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="结算标志" prop="settlementFlag"> <!-- <el-form-item label="结算标志" prop="settlementFlag">-->
<el-select v-model="queryParams.settlementFlag" placeholder="请选择" <!-- <el-select v-model="queryParams.settlementFlag" placeholder="请选择"-->
clearable <!-- clearable-->
size="small" <!-- size="small"-->
@keyup.enter.native="handleQuery"> <!-- @keyup.enter.native="handleQuery">-->
<el-option <!-- <el-option-->
v-for="item in settlementFlagOptions" <!-- v-for="item in settlementFlagOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value"> <!-- :value="item.value">-->
</el-option> <!-- </el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -56,11 +56,11 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
icon="el-icon-download" icon="el-icon-download"
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['fantang:settle:export']" v-hasPermi="['fantang:settle:export']"
>导出 >导出
</el-button> </el-button>
</el-col> </el-col>
@ -74,34 +74,35 @@
<el-table-column label="科室" align="center" prop="departName"/> <el-table-column label="科室" align="center" prop="departName"/>
<el-table-column label="姓名" align="center" prop="name"/> <el-table-column label="姓名" align="center" prop="name"/>
<el-table-column label="床号" align="center" prop="bedId"/> <el-table-column label="床号" align="center" prop="bedId"/>
<el-table-column label="结算总价" align="center" prop="price"/> <el-table-column label="累计总额" align="center" prop="price"/>
<el-table-column label="结算类型" align="center" prop="type"/>
<el-table-column label="结算日期" align="center" prop="settleAt" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.settleAt, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="退款总额" align="center" prop="refund"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="clickAddNewSettlement(scope.row)" @click="clickAddNewSettlement(scope.row)"
v-hasPermi="['fantang:settle:AddNewSettlement']" v-hasPermi="['fantang:settle:AddNewSettlement']"
>预开票 >收费
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="clickAddLeaveSettlement(scope.row)"
v-hasPermi="['fantang:settle:AddLeaveSettlement']"
>查看详情
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 日常收费弹出层对话框--> <!-- 日常收费弹出层对话框-->
@ -130,14 +131,14 @@
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
<!-- <el-form-item label="上次结算日期" prop="lastBillingDate" v-if="lastBillFlag">--> <!-- <el-form-item label="上次结算日期" prop="lastBillingDate" v-if="lastBillFlag">-->
<el-form-item label="上次结算 / 用餐日期" prop="lastBillingDate"> <el-form-item label="上次结算 / 首次用餐" prop="lastBillingDate">
<!-- <el-input v-model="formAddNewSettlement.lastBillingDate" :disabled="true"/>--> <!-- <el-input v-model="formAddNewSettlement.lastBillingDate" :disabled="true"/>-->
<el-date-picker <el-date-picker
v-model="formAddNewSettlement.lastBillingDate" v-model="formAddNewSettlement.lastBillingDate"
align="right" align="right"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
:disabled="true"> :disabled="true">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -160,13 +161,13 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="结算日期" prop="selectBillingDate"> <el-form-item label="结算日期" prop="selectBillingDate">
<el-date-picker <el-date-picker
v-model="formAddNewSettlement.selectBillingDate" v-model="formAddNewSettlement.selectBillingDate"
align="right" align="right"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@change="changeBillingDate" @change="changeBillingDate"
:picker-options="pickerOptions"> :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -174,10 +175,10 @@
<el-form-item label="支付方式" prop="payType"> <el-form-item label="支付方式" prop="payType">
<el-select v-model="formAddNewSettlement.payType" placeholder="请选择支付方式"> <el-select v-model="formAddNewSettlement.payType" placeholder="请选择支付方式">
<el-option <el-option
v-for="item in payTypeOptions" v-for="item in payTypeOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -185,14 +186,13 @@
</el-row> </el-row>
<el-form-item label="实收" prop="netPeceipt"> <el-form-item label="实收" prop="netPeceipt">
<el-input v-model="formAddNewSettlement.netPeceipt" placeholder="请输入实收"/> <el-input v-model="formAddNewSettlement.netPeceipt" placeholder="请输入实收" :disabled="true"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="clickFormAddNewSettlementCancel"> </el-button> <el-button @click="clickFormAddNewSettlementCancel"> </el-button>
</div> </div>
<el-row> <el-row>
报餐明细 报餐明细
</el-row> </el-row>
@ -217,17 +217,98 @@
<el-table-column label="营养餐价格" align="center" prop="nutritionFoodPrice"/> <el-table-column label="营养餐价格" align="center" prop="nutritionFoodPrice"/>
<el-table-column label="报餐总价" align="center" prop="totalPrice"/> <el-table-column label="报餐总价" align="center" prop="totalPrice"/>
</el-table> </el-table>
</el-dialog>
<!-- 出院结算弹出层对话框-->
<el-dialog title="用餐详情" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="leaveForm" :model="leaveForm" :rules="rules" label-width="160px">
<el-form-item label="住院号" prop="hospitalId">
<el-input v-model="leaveForm.hospitalId" :disabled="true"/>
</el-form-item>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="姓名" prop="name">
<el-input v-model="leaveForm.name" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室" prop="departName">
<el-input v-model="leaveForm.departName" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="床号" prop="bedId">
<el-input v-model="leaveForm.bedId" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="上次结算 / 首次用餐" prop="lastBillingDate">
<el-date-picker
v-model="leaveForm.lastBillingDate"
align="right"
type="date"
value-format="yyyy-MM-dd"
:disabled="true">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="未结算天数" prop="settlementDays">
<el-input v-model="leaveForm.settlementDays" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结算总价" prop="price">
<el-input v-model="this.sumTotalPrice" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="已收预付伙食费" prop="prepayment">
<el-input v-model="leaveForm.prepayment" :disabled="true"/>
</el-form-item>
</el-form>
<el-row>
报餐明细
</el-row>
<el-row :gutter="10">
<el-col :span="4">
正餐总价{{ dinnerTotalPrice }}
</el-col>
<el-col :span="4">
营养餐总价{{ nutritionTotalPrice }}
</el-col>
</el-row>
<el-row>
报餐总价{{ sumTotalPrice }}
</el-row>
<el-table v-loading="loading" :data="mealsList">
<el-table-column label="报餐日期" align="center" prop="createAt" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createAt, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="正餐价格" align="center" prop="price"/>
<el-table-column label="营养餐价格" align="center" prop="nutritionFoodPrice"/>
<el-table-column label="报餐总价" align="center" prop="totalPrice"/>
</el-table>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {addSettle, delSettle, exportSettle, getSettle, showMealsWithSelect} from "@/api/fantang/settle"; import {
import {getLastSettlementDate, listAll, listMealsWithInSettle, listNoPay, listPayoff} from "@/api/fantang/meals"; addSettle,
import {getUserProfile} from "@/api/system/user"; delSettle,
import {getPrepaymentByPatientId} from "@/api/fantang/prepayment"; exportSettle,
import {listDepart} from "@/api/fantang/depart"; getSettle,
showAllMealsWithNoPay,
showMealsWithSelect
} from "../../../api/fantang/settle";
import {getLastSettlementDate, listAll, listMealsWithInSettle, listNoPay, listPayoff} from "../../../api/fantang/meals";
import {getUserProfile} from "../../../api/system/user";
import {listDepart} from "../../../api/fantang/depart";
export default { export default {
name: "Settle", name: "Settle",
@ -399,12 +480,17 @@ export default {
changeBillingDate(value) { changeBillingDate(value) {
var dateSpan, iDays; var dateSpan, iDays;
let sDate1 = Date.parse(this.formAddNewSettlement.lastBillingDate); let sDate1 = Date.parse(this.formAddNewSettlement.lastBillingDate);
let sDate2 = Date.parse(value); let sDate2 = Date.parse(value + ' 23:59:59');
// console.log("selectBillingDate", this.formAddNewSettlement.selectBillingDate) console.log("lastBillingDate", this.formAddNewSettlement.lastBillingDate)
console.log("selectBillingDate", value);
dateSpan = sDate2 - sDate1; dateSpan = sDate2 - sDate1;
console.log("当前选择时间-------", sDate2);
console.log("最后结算时间-------", sDate1);
if (dateSpan < 0) { if (dateSpan < 0) {
this.msgError("你现在的结算日期小于上一次上次结算 / 用餐日期"); this.msgError("你现在的结算日期小于上一次上次结算 / 首次用餐日期");
} else { } else {
dateSpan = Math.abs(dateSpan); dateSpan = Math.abs(dateSpan);
@ -415,9 +501,19 @@ export default {
if (this.formAddNewSettlement.selectBillingDate != null) { if (this.formAddNewSettlement.selectBillingDate != null) {
showMealsWithSelect(this.formAddNewSettlement).then(response => { showMealsWithSelect(this.formAddNewSettlement).then(response => {
this.mealsList = response.data.reportMealsList; this.mealsList = response.data.reportMealsList;
this.dinnerTotalPrice = response.data.reportMealsPrice.dinnerTotalPrice;
this.nutritionTotalPrice = response.data.reportMealsPrice.nutritionTotalPrice; if (response.data.reportMealsPrice == null) {
this.sumTotalPrice = response.data.reportMealsPrice.sumTotalPrice; this.dinnerTotalPrice = 0;
this.nutritionTotalPrice = 0;
this.sumTotalPrice = 0;
}
if (response.data.reportMealsPrice != null) {
this.dinnerTotalPrice = response.data.reportMealsPrice.dinnerTotalPrice;
this.nutritionTotalPrice = response.data.reportMealsPrice.nutritionTotalPrice;
this.sumTotalPrice = response.data.reportMealsPrice.sumTotalPrice;
this.formAddNewSettlement.netPeceipt = 0;
}
}) })
} else { } else {
this.mealsList = null; this.mealsList = null;
@ -432,27 +528,36 @@ export default {
this.userName = response.data.userName; this.userName = response.data.userName;
this.roleGroup = response.roleGroup; this.roleGroup = response.roleGroup;
this.postGroup = response.postGroup; this.postGroup = response.postGroup;
// console.log(this.userName);
}); });
}, },
// //
clickAddNewSettlement(row) { clickAddNewSettlement(row) {
//
this.mealsList = null;
this.sumTotalPrice = 0;
this.dinnerTotalPrice = 0;
this.nutritionTotalPrice = 0;
getLastSettlementDate(row.patientId).then(response => { getLastSettlementDate(row.patientId).then(response => {
// console.log("getLastBillingDateByPatientId-->", response); console.log("getLastBillingDateByPatientId-->", response);
if (response.data.settlementAt === null) { if (response.reportMeals.settlementAt === null) {
this.lastBillFlag = false; this.lastBillFlag = false;
this.formAddNewSettlement.lastBillingDate = response.data.lastCreateDate; this.formAddNewSettlement.lastBillingDate = response.reportMeals.lastCreateDate;
this.msgInfo("该病人首次收费") this.msgInfo("该病人首次收费")
} else { } else {
this.lastBillFlag = true; this.lastBillFlag = true;
this.formAddNewSettlement.lastBillingDate = response.data.settlementAt; this.formAddNewSettlement.lastBillingDate = response.reportMeals.settlementAt;
} }
this.formAddNewSettlement.settlementDays = response.data.days;
});
getPrepaymentByPatientId(row.patientId).then(response => { if (response.prepayment === null) {
// console.log("row-->", response); this.formAddNewSettlement.prepayment = 0;
} else {
this.formAddNewSettlement.prepayment = response.prepayment.prepaid;
}
this.formAddNewSettlement.settlementDays = response.reportMeals.days;
this.flagAddNewSettlementOpen = true; this.flagAddNewSettlementOpen = true;
this.flagAddPrepaymentShow = false; this.flagAddPrepaymentShow = false;
this.formAddNewSettlement.hospitalId = row.hospitalId; this.formAddNewSettlement.hospitalId = row.hospitalId;
@ -461,17 +566,66 @@ export default {
this.formAddNewSettlement.bedId = row.bedId; this.formAddNewSettlement.bedId = row.bedId;
this.formAddNewSettlement.patientId = row.patientId; this.formAddNewSettlement.patientId = row.patientId;
this.formAddNewSettlement.price = row.price; this.formAddNewSettlement.price = row.price;
this.formAddNewSettlement.prepayment = response.data.prepaid;
this.formAddNewSettlement.netPeceipt = null; this.formAddNewSettlement.netPeceipt = null;
this.formAddNewSettlement.userName = this.userName; this.formAddNewSettlement.userName = this.userName;
}); });
}, },
// //
clickAddLeaveSettlement() { clickAddLeaveSettlement(row) {
this.flagAddNewSettlementOpen = true;
this.flagAddPrepaymentShow = true;
//
this.mealsList = null;
this.sumTotalPrice = 0;
this.dinnerTotalPrice = 0;
this.nutritionTotalPrice = 0;
// /
getLastSettlementDate(row.patientId).then(response => {
if (response.reportMeals.settlementAt === null) {
this.lastBillFlag = false;
this.leaveForm.lastBillingDate = response.reportMeals.lastCreateDate;
} else {
this.lastBillFlag = true;
this.leaveForm.lastBillingDate = response.reportMeals.settlementAt;
}
//
if (response.prepayment === null) {
this.leaveForm.prepayment = 0;
} else {
this.leaveForm.prepayment = response.prepayment.prepaid;
}
showAllMealsWithNoPay(row.patientId).then(response => {
console.log(response);
this.mealsList = response.data.reportMealsList;
if (response.data.reportMealsPrice == null) {
this.dinnerTotalPrice = 0;
this.nutritionTotalPrice = 0;
this.sumTotalPrice = 0;
}
if (response.data.reportMealsPrice != null) {
this.dinnerTotalPrice = response.data.reportMealsPrice.dinnerTotalPrice;
this.nutritionTotalPrice = response.data.reportMealsPrice.nutritionTotalPrice;
this.sumTotalPrice = response.data.reportMealsPrice.sumTotalPrice;
this.formAddNewSettlement.netPeceipt = this.sumTotalPrice;
}
})
this.leaveForm.settlementDays = response.reportMeals.days;
this.leaveForm.hospitalId = row.hospitalId;
this.leaveForm.name = row.name;
this.leaveForm.departName = row.departName;
this.leaveForm.bedId = row.bedId;
this.leaveForm.patientId = row.patientId;
this.leaveForm.price = row.price;
this.leaveForm.netPeceipt = null;
this.leaveForm.userName = this.userName;
this.open = true;
});
}, },
// //
@ -532,6 +686,7 @@ export default {
flag: null, flag: null,
refund: null refund: null
}; };
this.formAddNewSettlement = { this.formAddNewSettlement = {
selectBillingDate: null, selectBillingDate: null,
payType: null, payType: null,

View File

@ -622,7 +622,6 @@ export default {
}) })
this.leaveForm.settlementDays = response.reportMeals.days; this.leaveForm.settlementDays = response.reportMeals.days;
this.open = true;
this.leaveForm.hospitalId = row.hospitalId; this.leaveForm.hospitalId = row.hospitalId;
this.leaveForm.name = row.name; this.leaveForm.name = row.name;
this.leaveForm.departName = row.departName; this.leaveForm.departName = row.departName;
@ -631,6 +630,7 @@ export default {
this.leaveForm.price = row.price; this.leaveForm.price = row.price;
this.leaveForm.netPeceipt = null; this.leaveForm.netPeceipt = null;
this.leaveForm.userName = this.userName; this.leaveForm.userName = this.userName;
this.open = true;
}); });
}, },

View File

@ -19,8 +19,8 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="已开票" prop="invoiceFlag"> <el-form-item label="是否已开票" prop="invoiceFlag" label-width="83px">
<el-select v-model="queryParams.invoiceFlag" placeholder="请选择已开票" clearable size="small"> <el-select v-model="queryParams.invoiceFlag" placeholder="请选择是否已开票" clearable size="small">
<el-option <el-option
v-for="item in invoiceFlagOptions" v-for="item in invoiceFlagOptions"
:key="item.value" :key="item.value"
@ -42,7 +42,7 @@
icon="el-icon-edit" icon="el-icon-edit"
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="" @click="handleCombination"
v-hasPermi="['fantang:settlement:edit']" v-hasPermi="['fantang:settlement:edit']"
>组合开票 >组合开票
</el-button> </el-button>
@ -72,7 +72,7 @@
<span>{{ parseTime(scope.row.settleAt, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.settleAt, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="已开票" align="center" prop="invoiceFlag" :formatter="formatInvoiceFlag"/> <el-table-column label="是否已开票" align="center" prop="invoiceFlag" :formatter="formatInvoiceFlag"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -108,6 +108,9 @@
<el-form-item label="结算类型" prop="type"> <el-form-item label="结算类型" prop="type">
<el-input v-model="form.type" placeholder="请输入结算类型" :disabled="true"/> <el-input v-model="form.type" placeholder="请输入结算类型" :disabled="true"/>
</el-form-item> </el-form-item>
<el-form-item label="开票金额" prop="invoiceAmount">
<el-input v-model="form.invoiceAmount" placeholder="请输入开票金额"/>
</el-form-item>
<el-form-item label="发票名" prop="invoiceName"> <el-form-item label="发票名" prop="invoiceName">
<el-input v-model="form.invoiceName" placeholder="请输入发票名"/> <el-input v-model="form.invoiceName" placeholder="请输入发票名"/>
</el-form-item> </el-form-item>
@ -117,8 +120,46 @@
<el-form-item label="发票号" prop="invoiceNum"> <el-form-item label="发票号" prop="invoiceNum">
<el-input v-model="form.invoiceNum" placeholder="请输入发票号"/> <el-input v-model="form.invoiceNum" placeholder="请输入发票号"/>
</el-form-item> </el-form-item>
<el-form-item label="开票类型" prop="invoiceType"> <el-form-item label="跟踪回款" prop="invoiceType" label-width="80px">
<el-select v-model="form.invoiceType" placeholder="请选择开票类型"> <el-select v-model="form.invoiceType" placeholder="请选择跟踪回款">
<el-option
v-for="item in invoiceTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 组合开票对话框 -->
<el-dialog title="组合开票" :visible.sync="combinationOpen" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="应收" prop="payable">
<el-input v-model="form.payable" placeholder="请输入应收" :disabled="true"/>
</el-form-item>
<el-form-item label="实收" prop="receipts">
<el-input v-model="form.receipts" placeholder="请输入实收" :disabled="true"/>
</el-form-item>
<el-form-item label="开票金额" prop="invoiceAmount">
<el-input v-model="form.invoiceAmount" placeholder="请输入开票金额"/>
</el-form-item>
<el-form-item label="发票名" prop="invoiceName">
<el-input v-model="form.invoiceName" placeholder="请输入发票名"/>
</el-form-item>
<el-form-item label="税号" prop="taxId">
<el-input v-model="form.taxId" placeholder="请输入税号"/>
</el-form-item>
<el-form-item label="发票号" prop="invoiceNum">
<el-input v-model="form.invoiceNum" placeholder="请输入发票号"/>
</el-form-item>
<el-form-item label="跟踪回款" prop="invoiceType">
<el-select v-model="form.invoiceType" placeholder="请选择跟踪回款">
<el-option <el-option
v-for="item in invoiceTypeOptions" v-for="item in invoiceTypeOptions"
:key="item.value" :key="item.value"
@ -153,10 +194,10 @@ export default {
return { return {
invoiceTypeOptions: [{ invoiceTypeOptions: [{
value: 1, value: 1,
label: '开票' label: '开票'
}, { }, {
value: 2, value: 2,
label: '挂账' label: '开票并跟踪回款'
}], }],
invoiceFlagOptions: [{ invoiceFlagOptions: [{
value: true, value: true,
@ -185,6 +226,12 @@ export default {
loading: true, loading: true,
// //
ids: [], ids: [],
invoiceFlags: [],
isErrFlag: [],
//
settleTotalPrice: 0,
//
settleTotalReceipts: 0,
// //
single: true, single: true,
// //
@ -199,6 +246,8 @@ export default {
title: "", title: "",
// //
open: false, open: false,
//
combinationOpen: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -245,6 +294,15 @@ export default {
invoiceType: [ invoiceType: [
{required: true, message: "开票类型不能为空", trigger: "blur"} {required: true, message: "开票类型不能为空", trigger: "blur"}
], ],
invoiceAmount: [
{required: true, message: "开票金额不能为空", trigger: "blur"},
{
required: true,
pattern: "/(^0\\.[1-9]\\d?$)|(^0\\.\\d[1-9]?$)|(^[1-9]\\d{0,7}(\\.\\d{0,2})?$)/",
message: "请输入正确的开票金额",
trigger: "blur"
}
],
} }
}; };
}, },
@ -252,6 +310,25 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
//
handleCombination(row) {
this.reset();
const id = row.id || this.ids;
console.log("id----------", id);
this.isErrFlag = false;
for (let i = 0; i < this.invoiceFlags.length; i++) {
if (this.invoiceFlags[i] === true) {
this.msgError("已开票的结算记录不能再次开票")
this.isErrFlag = true;
break;
}
}
if (!this.isErrFlag) {
this.combinationOpen = true;
this.form.receipts = this.settleTotalReceipts;
this.form.payable = this.settleTotalPrice;
}
},
formatInvoiceFlag(row) { formatInvoiceFlag(row) {
if (row.invoiceFlag === true) { if (row.invoiceFlag === true) {
return '是'; return '是';
@ -263,16 +340,15 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listSettlement(this.queryParams).then(response => { listSettlement(this.queryParams).then(response => {
console.log(response)
this.settlementList = response.rows; this.settlementList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
console.log(response.rows)
}); });
}, },
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.combinationOpen = false;
this.reset(); this.reset();
}, },
// //
@ -293,6 +369,7 @@ export default {
taxId: undefined, taxId: undefined,
invoiceNum: undefined, invoiceNum: undefined,
invoiceType: undefined, invoiceType: undefined,
invoiceAmount: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -311,6 +388,22 @@ export default {
this.ids = selection.map(item => item.settleId) this.ids = selection.map(item => item.settleId)
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
//
this.invoiceFlags = selection.map(item => item.invoiceFlag)
console.log(this.invoiceFlags)
//
this.settleTotalPrice = 0;
selection.map(item => item.payable).forEach(item => {
this.settleTotalPrice += item;
})
//
this.settleTotalReceipts = 0;
selection.map(item => item.receipts).forEach(item => {
this.settleTotalReceipts += item;
})
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
@ -322,11 +415,17 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const settleId = row.settleId || this.ids const settleId = row.settleId || this.ids
console.log(row)
getSettlement(settleId).then(response => { getSettlement(settleId).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "开票"; this.title = "开票";
//
// if (this.form.payable === this.form.receipts && this.form.receipts > 0) {
// this.form.invoiceType = 1
// } else if (this.form.receipts === 0) {
// this.form.invoiceType = 2
// }
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */