优化代码

This commit is contained in:
java110 2021-09-07 20:38:24 +08:00
parent 7bb363203d
commit 7e62b15767
2 changed files with 94 additions and 71 deletions

View File

@ -6,7 +6,7 @@
<h5>订单收费({{payFeeOrderInfo.payerObjName}})</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
v-on:click="_goBack()">返回
v-on:click="_goBack()">返回
</button>
</div>
</div>
@ -40,9 +40,8 @@
<div class="form-group row">
<label class="col-sm-2 col-form-label">缴费时间</label>
<div class="col-sm-6">
<input v-model="payFeeOrderInfo.createTime" type="text"
placeholder="必填,请填写缴费时间" readonly class=" payFeeOrderCreateTime"
style="border: none; outline: none;">
<input v-model="payFeeOrderInfo.createTime" type="text" placeholder="必填,请填写缴费时间"
readonly class=" payFeeOrderCreateTime" style="border: none; outline: none;">
</div>
</div>
@ -50,7 +49,7 @@
<label class="col-sm-2 col-form-label">缴费周期</label>
<div class="col-sm-6">
<select class="custom-select" v-model="payFeeOrderInfo.tempCycles"
@change="_changeMonth(payFeeOrderInfo.tempCycles)">
@change="_changeMonth(payFeeOrderInfo.tempCycles)">
<option selected disabled value="">请选择缴费周期</option>
<option v-for="item in payFeeOrderInfo.paymentCycles" :value="item">{{item}}个月
</option>
@ -63,15 +62,15 @@
<label class="col-sm-2 col-form-label">实际周期</label>
<div class="col-sm-6">
<input type="text" placeholder="请输入实际周期" v-model="payFeeOrderInfo.cycles"
oninput="value=value.replace(/[^\d]/g,'')"
v-on:change="changeCycle(payFeeOrderInfo.cycles)" class="form-control">
oninput="value=value.replace(/[^\d]/g,'')"
v-on:change="changeCycle(payFeeOrderInfo.cycles)" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label" style="padding-right:0px;">备注</label>
<div class="col-sm-6" style="padding-left:5px;">
<textarea placeholder="可填,请填写备注" class="form-control"
v-model="payFeeOrderInfo.remark">
v-model="payFeeOrderInfo.remark">
</textarea>
</div>
</div>
@ -95,9 +94,9 @@
</div>
<div class="row">
<label class="col-sm-3 col-form-label"
style="line-height: 50px;padding-right:0px;">应收款:</label>
style="line-height: 50px;padding-right:0px;">应收款:</label>
<label class="col-sm-8 col-form-label"
style="font-size: 30px;color: red;padding-left:0px;">¥{{payFeeOrderInfo.totalFeePrice}}</label>
style="font-size: 30px;color: red;padding-left:0px;">¥{{payFeeOrderInfo.totalFeePrice}}</label>
</div>
<div class="row form-group">
<label class="col-sm-3 col-form-label" style="padding-right:0px;">支付方式:</label>
@ -105,8 +104,7 @@
<select class="custom-select" v-model="payFeeOrderInfo.primeRate">
<option selected disabled value="">必填,请选择支付方式</option>
<option v-for="(item,index) in payFeeOrderInfo.primeRates" :key="index"
v-if="item.statusCd != '5' && item.statusCd != '6'"
:value="item.statusCd">
v-if="item.statusCd != '5' && item.statusCd != '6'" :value="item.statusCd">
{{item.name}}
</option>
</select>
@ -116,39 +114,34 @@
<label class="col-sm-3 col-form-label" style="padding-right:0px;">实收款</label>
<div class="col-sm-8" style="padding-left:5px;">
<input type="text" placeholder="请输入实际收款金额" v-model="payFeeOrderInfo.receivedAmount"
class="form-control" v-if="payFeeOrderInfo.receivedAmountSwitch=='1'">
class="form-control" v-if="payFeeOrderInfo.receivedAmountSwitch=='1'">
<label class="col-sm-8 col-form-label"
v-if="payFeeOrderInfo.receivedAmountSwitch=='2'" style="font-size: 15px;">
v-if="payFeeOrderInfo.receivedAmountSwitch=='2'" style="font-size: 15px;">
¥{{payFeeOrderInfo.receivedAmount}}
</label>
</div>
</div>
<div class="row">
<label class="col-sm-3 col-form-label">应缴:</label>
<label class="col-sm-8 col-form-label">{{payFeeOrderInfo.feeAfterDiscount}}</label>
</div>
<div class="row" v-if="payFeeOrderInfo.acctType != null && payFeeOrderInfo.acctType != ''">
<label class="col-sm-3 col-form-label">账户类型:</label>
<label class="col-sm-8 col-form-label"
v-if="payFeeOrderInfo.acctType == 2003">现金账户</label>
<label class="col-sm-8 col-form-label"
v-if="payFeeOrderInfo.acctType == 2004">积分账户</label>
<label class="col-sm-8 col-form-label"
v-if="payFeeOrderInfo.acctType == 2005">优惠券账户</label>
</div>
<div class="row"
v-if="payFeeOrderInfo.userAmount != null && payFeeOrderInfo.userAmount != ''">
<label class="col-sm-3 col-form-label">账户金额:</label>
<label class="col-sm-8 col-form-label">
<input type="checkbox" class="i-checks" @click="checkUserAmount($event)" >{{payFeeOrderInfo.userAmount}}
{{payFeeOrderInfo.viewAccountAmount}}元
</label>
</div>
<div class="row" v-if="payFeeOrderInfo.deductionAmount> 0">
<label class="col-sm-3 col-form-label">抵扣金额:</label>
<label class="col-sm-8 col-form-label">{{payFeeOrderInfo.deductionAmount}}元</label>
</div>
<div class="row" v-if="payFeeOrderInfo.redepositAmount> 0">
<label class="col-sm-3 col-form-label">转存金额:</label>
<label class="col-sm-8 col-form-label">{{payFeeOrderInfo.redepositAmount}}元</label>
</div>
<div class="form-group row">
</div>
<div class="form-group row">
<div class="col-sm-8">
<button type="button" class="btn btn-warning btn-lg btn-block"
@click="_openPayFee()">提交收费
@click="_openPayFee()">提交收费
</button>
</div>
</div>
@ -174,10 +167,10 @@
<div class="modal-footer">
<button type="button" class="btn btn-secondary" @click="_back()">返回</button>
<button type="button" class="btn btn-primary" v-if="payFeeOrderInfo.receiptId"
@click="_printSmallAndBack()">打印小票
@click="_printSmallAndBack()">打印小票
</button>
<button type="button" class="btn btn-primary" v-if="payFeeOrderInfo.receiptId"
@click="_printAndBack()">打印收据
@click="_printAndBack()">打印收据
</button>
</div>
</div>
@ -217,7 +210,9 @@
<div class="row" v-show="payFeeOrderInfo.useUserAmount">
<label class="col-sm-3 col-form-label">支付方式:</label>
<label class="col-sm-8 col-form-label">
{{payFeeOrderInfo.acctType == '2003' ? '现金账户' : (payFeeOrderInfo.acctType == '2004' ? '积分账户' : (payFeeOrderInfo.acctType == '2005' ? '优惠券账户' : '-'))}}({{payFeeOrderInfo.receivedAmount - payFeeOrderInfo.feeAfterDiscount}})
{{payFeeOrderInfo.acctType == '2003' ? '现金账户' : (payFeeOrderInfo.acctType == '2004' ? '积分账户'
: (payFeeOrderInfo.acctType == '2005' ? '优惠券账户' : '-'))}}({{payFeeOrderInfo.receivedAmount -
payFeeOrderInfo.feeAfterDiscount}})
</label>
</div>
<div class="row">

View File

@ -38,7 +38,19 @@
acctType: '',
acctId: '',
createTime: vc.dateTimeFormat(new Date().getTime()),
useUserAmount: false
accountAmount: 0.0, // 账户金额
viewAccountAmount: 0.0, // 账户金额
deductionAmount: 0.0, //抵扣金额
redepositAmount: 0.0, //转存金额
}
},
watch: {
'payFeeOrderInfo.receivedAmount': {
deep: true,
handler: function () {
//计算折扣金额和转存金额
$that._doComputeAccountRedepositDeduction();
}
}
},
_initMethod: function () {
@ -88,8 +100,6 @@
// 该处js做减法后会出现小数点后取不尽的bug再次处理
let receivedAmount = _totalFeePrice - _totalDiscountMoney;
$that.payFeeOrderInfo.receivedAmount = vc.component.payFeeOrderInfo.feeAfterDiscount = $that._getFixedNum(receivedAmount);
// 检查是否使用用户钱包金额
$that.useUserAmountOrNot();
});
vc.on('payFeeOrder', 'initData', function (_param) {
// 重新赋值下拉列表
@ -230,7 +240,7 @@
if ('-102' == _cycles) {
vc.component.payFeeOrderInfo.totalFeePrice = 0.00;
vc.component.payFeeOrderInfo.receivedAmount = vc.component.payFeeOrderInfo.feeAfterDiscount = 0.00;
if(vc.component.payFeeOrderInfo.cycles){
if (vc.component.payFeeOrderInfo.cycles) {
$that.getComputedAmount(vc.component.payFeeOrderInfo.cycles);
}
return;
@ -410,10 +420,9 @@
if (listAccountData.data.length < 1) {
return;
}
console.log("look here")
console.log(listAccountData)
$that.payFeeOrderInfo.userAmount = listAccountData.data[0].amount;
$that.payFeeOrderInfo.acctType = listAccountData.data[0].acctType;
//账户余额
$that.payFeeOrderInfo.accountAmount = listAccountData.data[0].amount;
$that.payFeeOrderInfo.viewAccountAmount = listAccountData.data[0].amount;
$that.payFeeOrderInfo.acctId = listAccountData.data[0].acctId;
}, function (errInfo, error) {
console.log('请求失败处理');
@ -421,44 +430,63 @@
);
},
/**
*
* accountAmount: 0.0, // 账户金额
deductionAmount: 0.0, //抵扣金额
redepositAmount: 0.0, //转存金额
* 使用用户钱包余额
*/
checkUserAmount: function(e){
if(e.target.checked){
vc.component.payFeeOrderInfo.useUserAmount = true;
vc.component.useUserAmountOrNot();
}else {
vc.component.payFeeOrderInfo.useUserAmount = false;
let tempCycles = vc.component.payFeeOrderInfo.tempCycles;
let _cycle = tempCycles;
// 缴费周期为“自定义金额”
if (tempCycles == '-101') {
vc.component.payFeeOrderInfo.feeAfterDiscount = vc.component.payFeeOrderInfo.receivedAmount;
return;
}
// 没选择缴费周期默认为一个周期
if(tempCycles == ''){
_cycle = 1;
}
// 如果是自定义周期
if (tempCycles == '-102') {
_cycle = vc.component.payFeeOrderInfo.cycles;
}
vc.component.getComputedAmount(_cycle);
}
computeAccountRedepositDeduction: function () {
//计算折扣金额和转存金额
$that._doComputeAccountRedepositDeduction();
},
/**
* 如果选择使用用户余额则更新应缴金额
*
* accountAmount: 0.0, // 账户金额
viewAccountAmount: 0.0, // 账户金额
deductionAmount: 0.0, //抵扣金额
needDeductionAmount: false,
redepositAmount: 0.0, //转存金额
*/
useUserAmountOrNot: function(){
if(vc.component.payFeeOrderInfo.useUserAmount){
let userAmount = vc.component.payFeeOrderInfo.userAmount;
let receivedAmount = vc.component.payFeeOrderInfo.receivedAmount;
let feeAfterDiscount = receivedAmount - userAmount < 0 ? '0' : receivedAmount - userAmount;
vc.component.payFeeOrderInfo.feeAfterDiscount = $that._getFixedNum(feeAfterDiscount);
_doComputeAccountRedepositDeduction: function () {
let receivedAmount = $that.payFeeOrderInfo.receivedAmount; //实缴
//计算
let accountAmount = $that.payFeeOrderInfo.accountAmount;
let deductionAmount = 0.0; // 抵消金额
$that.payFeeOrderInfo.deductionAmount = deductionAmount;
let redepositAmount = 0.0; //转存金额
$that.payFeeOrderInfo.redepositAmount = redepositAmount;
let totalDiscountMoney = $that.payFeeOrderInfo.totalDiscountMoney; // 优惠金额
let totalFeePrice = $that.payFeeOrderInfo.totalFeePrice; //应缴
//将显示账户金额实际刷成 账户金额
$that.payFeeOrderInfo.viewAccountAmount = accountAmount;
//计算转存 ,转存 = 实缴 + 折扣优惠 - 应缴
redepositAmount = parseFloat(receivedAmount) + parseFloat(totalDiscountMoney) - parseFloat(totalFeePrice);
//转存
if (parseFloat(redepositAmount) > 0) {
$that.payFeeOrderInfo.redepositAmount = redepositAmount.toFixed(2);// 计算转存
$that.payFeeOrderInfo.viewAccountAmount = parseFloat($that.payFeeOrderInfo.viewAccountAmount) + parseFloat($that.payFeeOrderInfo.redepositAmount);
return;
}
// 计算抵消金额 应缴 - 折扣 - 实缴 = 抵消金额
deductionAmount = parseFloat(totalFeePrice) - parseFloat(totalDiscountMoney) - parseFloat(receivedAmount);
if (parseFloat(deductionAmount) > 0 && parseFloat(accountAmount)>= parseFloat(deductionAmount)) {
$that.payFeeOrderInfo.deductionAmount = deductionAmount.toFixed(2);
let viewAccountAmount = $that.payFeeOrderInfo.viewAccountAmount;
$that.payFeeOrderInfo.viewAccountAmount = parseFloat($that.payFeeOrderInfo.viewAccountAmount) - parseFloat($that.payFeeOrderInfo.redepositAmount);
if (parseFloat($that.payFeeOrderInfo.viewAccountAmount) < 0) { //账户小于0
$that.payFeeOrderInfo.viewAccountAmount = 0;
$that.payFeeOrderInfo.deductionAmount = viewAccountAmount;
}
}
}
}