完成预开票管理,完善开票管理前端页面
This commit is contained in:
parent
9f11a12223
commit
0434262959
@ -162,6 +162,12 @@ public class FtSettleDaoController extends BaseController {
|
||||
case 3:
|
||||
ftSettleDao.setType("在线支付");
|
||||
break;
|
||||
case 4 :
|
||||
ftSettleDao.setType("银行汇款");
|
||||
break;
|
||||
case 5:
|
||||
ftSettleDao.setType("挂账");
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
|
@ -3,11 +3,11 @@
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="住院号" prop="hospitalId">
|
||||
<el-input
|
||||
v-model="queryParams.hospitalId"
|
||||
placeholder="请输入住院号"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
v-model="queryParams.hospitalId"
|
||||
placeholder="请输入住院号"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
@ -17,36 +17,36 @@
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery">
|
||||
<el-option
|
||||
v-for="item in departOptions"
|
||||
:key="item.departName"
|
||||
:label="item.departName"
|
||||
:value="item.departId">
|
||||
v-for="item in departOptions"
|
||||
:key="item.departName"
|
||||
:label="item.departName"
|
||||
:value="item.departId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="结算标志" prop="settlementFlag">
|
||||
<el-select v-model="queryParams.settlementFlag" placeholder="请选择"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery">
|
||||
<el-option
|
||||
v-for="item in settlementFlagOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="结算标志" prop="settlementFlag">-->
|
||||
<!-- <el-select v-model="queryParams.settlementFlag" placeholder="请选择"-->
|
||||
<!-- clearable-->
|
||||
<!-- size="small"-->
|
||||
<!-- @keyup.enter.native="handleQuery">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in settlementFlagOptions"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item>
|
||||
<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>
|
||||
@ -56,11 +56,11 @@
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['fantang:settle:export']"
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['fantang:settle:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
@ -74,34 +74,35 @@
|
||||
<el-table-column label="科室" align="center" prop="departName"/>
|
||||
<el-table-column label="姓名" align="center" prop="name"/>
|
||||
<el-table-column label="床号" align="center" prop="bedId"/>
|
||||
<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" prop="price"/>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="clickAddNewSettlement(scope.row)"
|
||||
v-hasPermi="['fantang:settle:AddNewSettlement']"
|
||||
>预开票
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="clickAddNewSettlement(scope.row)"
|
||||
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>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 日常收费弹出层对话框-->
|
||||
@ -130,14 +131,14 @@
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="8">
|
||||
<!-- <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-date-picker
|
||||
v-model="formAddNewSettlement.lastBillingDate"
|
||||
align="right"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
:disabled="true">
|
||||
v-model="formAddNewSettlement.lastBillingDate"
|
||||
align="right"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
:disabled="true">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -160,13 +161,13 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="结算日期" prop="selectBillingDate">
|
||||
<el-date-picker
|
||||
v-model="formAddNewSettlement.selectBillingDate"
|
||||
align="right"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
@change="changeBillingDate"
|
||||
:picker-options="pickerOptions">
|
||||
v-model="formAddNewSettlement.selectBillingDate"
|
||||
align="right"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
@change="changeBillingDate"
|
||||
:picker-options="pickerOptions">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -174,10 +175,10 @@
|
||||
<el-form-item label="支付方式" prop="payType">
|
||||
<el-select v-model="formAddNewSettlement.payType" placeholder="请选择支付方式">
|
||||
<el-option
|
||||
v-for="item in payTypeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
v-for="item in payTypeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -185,14 +186,13 @@
|
||||
</el-row>
|
||||
|
||||
<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>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="clickFormAddNewSettlementCancel">取 消</el-button>
|
||||
</div>
|
||||
|
||||
<el-row>
|
||||
报餐明细
|
||||
</el-row>
|
||||
@ -217,17 +217,98 @@
|
||||
<el-table-column label="营养餐价格" align="center" prop="nutritionFoodPrice"/>
|
||||
<el-table-column label="报餐总价" align="center" prop="totalPrice"/>
|
||||
</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>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {addSettle, delSettle, exportSettle, getSettle, showMealsWithSelect} from "@/api/fantang/settle";
|
||||
import {getLastSettlementDate, listAll, listMealsWithInSettle, listNoPay, listPayoff} from "@/api/fantang/meals";
|
||||
import {getUserProfile} from "@/api/system/user";
|
||||
import {getPrepaymentByPatientId} from "@/api/fantang/prepayment";
|
||||
import {listDepart} from "@/api/fantang/depart";
|
||||
import {
|
||||
addSettle,
|
||||
delSettle,
|
||||
exportSettle,
|
||||
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 {
|
||||
name: "Settle",
|
||||
@ -399,12 +480,17 @@ export default {
|
||||
changeBillingDate(value) {
|
||||
var dateSpan, iDays;
|
||||
let sDate1 = Date.parse(this.formAddNewSettlement.lastBillingDate);
|
||||
let sDate2 = Date.parse(value);
|
||||
// console.log("selectBillingDate", this.formAddNewSettlement.selectBillingDate)
|
||||
let sDate2 = Date.parse(value + ' 23:59:59');
|
||||
console.log("lastBillingDate", this.formAddNewSettlement.lastBillingDate)
|
||||
console.log("selectBillingDate", value);
|
||||
|
||||
dateSpan = sDate2 - sDate1;
|
||||
|
||||
console.log("当前选择时间-------", sDate2);
|
||||
console.log("最后结算时间-------", sDate1);
|
||||
|
||||
if (dateSpan < 0) {
|
||||
this.msgError("你现在的结算日期小于上一次上次结算 / 用餐日期");
|
||||
this.msgError("你现在的结算日期小于上一次上次结算 / 首次用餐日期");
|
||||
} else {
|
||||
|
||||
dateSpan = Math.abs(dateSpan);
|
||||
@ -415,9 +501,19 @@ export default {
|
||||
if (this.formAddNewSettlement.selectBillingDate != null) {
|
||||
showMealsWithSelect(this.formAddNewSettlement).then(response => {
|
||||
this.mealsList = response.data.reportMealsList;
|
||||
this.dinnerTotalPrice = response.data.reportMealsPrice.dinnerTotalPrice;
|
||||
this.nutritionTotalPrice = response.data.reportMealsPrice.nutritionTotalPrice;
|
||||
this.sumTotalPrice = response.data.reportMealsPrice.sumTotalPrice;
|
||||
|
||||
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 = 0;
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.mealsList = null;
|
||||
@ -432,27 +528,36 @@ export default {
|
||||
this.userName = response.data.userName;
|
||||
this.roleGroup = response.roleGroup;
|
||||
this.postGroup = response.postGroup;
|
||||
// console.log(this.userName);
|
||||
});
|
||||
},
|
||||
|
||||
// 日常伙食费结算操作按钮
|
||||
clickAddNewSettlement(row) {
|
||||
|
||||
// 清空数据
|
||||
this.mealsList = null;
|
||||
this.sumTotalPrice = 0;
|
||||
this.dinnerTotalPrice = 0;
|
||||
this.nutritionTotalPrice = 0;
|
||||
|
||||
getLastSettlementDate(row.patientId).then(response => {
|
||||
// console.log("getLastBillingDateByPatientId-->", response);
|
||||
if (response.data.settlementAt === null) {
|
||||
console.log("getLastBillingDateByPatientId-->", response);
|
||||
if (response.reportMeals.settlementAt === null) {
|
||||
this.lastBillFlag = false;
|
||||
this.formAddNewSettlement.lastBillingDate = response.data.lastCreateDate;
|
||||
this.formAddNewSettlement.lastBillingDate = response.reportMeals.lastCreateDate;
|
||||
this.msgInfo("该病人首次收费")
|
||||
} else {
|
||||
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 => {
|
||||
// console.log("row-->", response);
|
||||
if (response.prepayment === null) {
|
||||
this.formAddNewSettlement.prepayment = 0;
|
||||
} else {
|
||||
this.formAddNewSettlement.prepayment = response.prepayment.prepaid;
|
||||
}
|
||||
|
||||
this.formAddNewSettlement.settlementDays = response.reportMeals.days;
|
||||
this.flagAddNewSettlementOpen = true;
|
||||
this.flagAddPrepaymentShow = false;
|
||||
this.formAddNewSettlement.hospitalId = row.hospitalId;
|
||||
@ -461,17 +566,66 @@ export default {
|
||||
this.formAddNewSettlement.bedId = row.bedId;
|
||||
this.formAddNewSettlement.patientId = row.patientId;
|
||||
this.formAddNewSettlement.price = row.price;
|
||||
this.formAddNewSettlement.prepayment = response.data.prepaid;
|
||||
this.formAddNewSettlement.netPeceipt = null;
|
||||
this.formAddNewSettlement.userName = this.userName;
|
||||
});
|
||||
},
|
||||
|
||||
// 出院伙食费结算按钮
|
||||
clickAddLeaveSettlement() {
|
||||
this.flagAddNewSettlementOpen = true;
|
||||
this.flagAddPrepaymentShow = true;
|
||||
clickAddLeaveSettlement(row) {
|
||||
|
||||
// 清空数据
|
||||
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,
|
||||
refund: null
|
||||
};
|
||||
|
||||
this.formAddNewSettlement = {
|
||||
selectBillingDate: null,
|
||||
payType: null,
|
||||
|
@ -622,7 +622,6 @@ export default {
|
||||
})
|
||||
|
||||
this.leaveForm.settlementDays = response.reportMeals.days;
|
||||
this.open = true;
|
||||
this.leaveForm.hospitalId = row.hospitalId;
|
||||
this.leaveForm.name = row.name;
|
||||
this.leaveForm.departName = row.departName;
|
||||
@ -631,6 +630,7 @@ export default {
|
||||
this.leaveForm.price = row.price;
|
||||
this.leaveForm.netPeceipt = null;
|
||||
this.leaveForm.userName = this.userName;
|
||||
this.open = true;
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="已开票" prop="invoiceFlag">
|
||||
<el-select v-model="queryParams.invoiceFlag" placeholder="请选择已开票" clearable size="small">
|
||||
<el-form-item label="是否已开票" prop="invoiceFlag" label-width="83px">
|
||||
<el-select v-model="queryParams.invoiceFlag" placeholder="请选择是否已开票" clearable size="small">
|
||||
<el-option
|
||||
v-for="item in invoiceFlagOptions"
|
||||
:key="item.value"
|
||||
@ -42,7 +42,7 @@
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click=""
|
||||
@click="handleCombination"
|
||||
v-hasPermi="['fantang:settlement:edit']"
|
||||
>组合开票
|
||||
</el-button>
|
||||
@ -72,7 +72,7 @@
|
||||
<span>{{ parseTime(scope.row.settleAt, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</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">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -108,6 +108,9 @@
|
||||
<el-form-item label="结算类型" prop="type">
|
||||
<el-input v-model="form.type" 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>
|
||||
@ -117,8 +120,46 @@
|
||||
<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-form-item label="跟踪回款" prop="invoiceType" label-width="80px">
|
||||
<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
|
||||
v-for="item in invoiceTypeOptions"
|
||||
:key="item.value"
|
||||
@ -153,10 +194,10 @@ export default {
|
||||
return {
|
||||
invoiceTypeOptions: [{
|
||||
value: 1,
|
||||
label: '开票'
|
||||
label: '仅开票'
|
||||
}, {
|
||||
value: 2,
|
||||
label: '挂账'
|
||||
label: '开票并跟踪回款'
|
||||
}],
|
||||
invoiceFlagOptions: [{
|
||||
value: true,
|
||||
@ -185,6 +226,12 @@ export default {
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
invoiceFlags: [],
|
||||
isErrFlag: [],
|
||||
// 组合结算总价
|
||||
settleTotalPrice: 0,
|
||||
// 组合结算实收
|
||||
settleTotalReceipts: 0,
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
@ -199,6 +246,8 @@ export default {
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 是否显示组合开票弹出层
|
||||
combinationOpen: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -245,6 +294,15 @@ export default {
|
||||
invoiceType: [
|
||||
{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();
|
||||
},
|
||||
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) {
|
||||
if (row.invoiceFlag === true) {
|
||||
return '是';
|
||||
@ -263,16 +340,15 @@ export default {
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listSettlement(this.queryParams).then(response => {
|
||||
console.log(response)
|
||||
this.settlementList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
console.log(response.rows)
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.combinationOpen = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
@ -293,6 +369,7 @@ export default {
|
||||
taxId: undefined,
|
||||
invoiceNum: undefined,
|
||||
invoiceType: undefined,
|
||||
invoiceAmount: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
@ -311,6 +388,22 @@ export default {
|
||||
this.ids = selection.map(item => item.settleId)
|
||||
this.single = selection.length !== 1
|
||||
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() {
|
||||
@ -322,11 +415,17 @@ export default {
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const settleId = row.settleId || this.ids
|
||||
console.log(row)
|
||||
getSettlement(settleId).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
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
|
||||
// }
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user