<template>
|
<div>
|
<el-form
|
ref="inputForm"
|
:model="form"
|
:rules="rules"
|
:inline="true"
|
label-width="120px"
|
>
|
<el-row>
|
<el-form-item label="和解日期" prop="reconcileDate">
|
<el-date-picker
|
disabled
|
:value="form.reconcileDate"
|
@input="reconcileDateHandle($event)"
|
:placeholder="'请选择'"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
style="width: 218px"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item label="结清日期" prop="finishDate">
|
<el-date-picker
|
:value="form.finishDate"
|
@input="finishDateHandle($event)"
|
:placeholder="'请选择'"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
:picker-options="finishDatePickerOptions"
|
style="width: 218px"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item label="执行利率" prop="businessRate">
|
<el-input
|
disabled
|
v-model="form.businessRate"
|
placeholder="请填写"
|
style="width: 218px"
|
></el-input>
|
<span style="margin-left: 8px; color: #606266">%</span>
|
</el-form-item>
|
</el-row>
|
<el-row>
|
<el-form-item label="结清需还款本金" prop="totalFirstPrincipalAmt">
|
<el-input
|
disabled
|
v-model="form.totalFirstPrincipalAmt"
|
style="width: 218px"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="结清需还款利息" prop="totalFirstInterestAmt">
|
<el-input
|
disabled
|
v-model="form.totalFirstInterestAmt"
|
style="width: 218px"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="结清需还款总额" prop="totalFirstAmt">
|
<el-input
|
disabled
|
v-model="form.totalFirstAmt"
|
style="width: 218px"
|
></el-input>
|
</el-form-item>
|
</el-row>
|
</el-form>
|
<TableList
|
:pageInfo="pageInfo"
|
@handleCurrentChange="handleCurrentChange"
|
@handleSizeChange="handleSizeChange"
|
:isAutoIndex="true"
|
:isPaddingRight="false"
|
ref="tableRef"
|
:list="records"
|
:header="tableHeader"
|
:height="tableHeight"
|
></TableList>
|
</div>
|
</template>
|
<script>
|
import {
|
trialFinishRate,
|
trialFinishPayment,
|
queryReconcileInfo,
|
} from "@comprehensive/serve/public";
|
import { trialFinishPaymentHeader } from "@comprehensive/utils/tableHeaders";
|
import TableList from "../TableList.vue";
|
export default {
|
components: {
|
TableList,
|
},
|
props: {
|
// 申请编号
|
serialNo: {
|
type: String,
|
required: true,
|
},
|
objectType: {
|
type: String,
|
default: "",
|
},
|
customerID: {
|
type: String,
|
default: "",
|
},
|
flowno: {
|
type: String,
|
// 默认为主授信人
|
default: "MainCreditFlow",
|
},
|
},
|
data() {
|
return {
|
//页码
|
pageInfo: {
|
currentPage: 1,
|
pageSize: 10,
|
total: 0,
|
},
|
records: [],
|
tableHeader: [...trialFinishPaymentHeader],
|
tableHeaderFilter: [],
|
tableHeight: "560px",
|
form: {
|
batchNo: "",
|
orgName: "",
|
reconcileDate: "",
|
finishDate: "",
|
},
|
finishDatePickerOptions: {
|
disabledDate: (date) => {
|
// 如果和解日期未选择,则结清日期不可选
|
if (!this.form.reconcileDate) return true;
|
// 结清日期必须早于或等于和解日期
|
return date < new Date(this.form.reconcileDate);
|
},
|
},
|
rules: {
|
reconcileDate: [
|
{ required: false, message: "请选择和解日期", trigger: "change" },
|
],
|
finishDate: [
|
{ required: false, message: "请选择结清日期", trigger: "change" },
|
],
|
},
|
submitLoading: false,
|
};
|
},
|
mounted() {},
|
created() {
|
this.init();
|
},
|
methods: {
|
init() {
|
const { tableHeaderFilter } = this;
|
this.tableHeader = trialFinishPaymentHeader.filter(
|
({ prop }) => !tableHeaderFilter.includes(prop)
|
);
|
this.requestQueryReconcileInfo();
|
},
|
|
// 修改翻页数
|
handleCurrentChange(val) {
|
this.pageInfo.currentPage = val;
|
},
|
// 修改翻页条数
|
handleSizeChange(val) {
|
this.pageInfo.pageSize = val;
|
},
|
//重置数据
|
resetForm(formName) {
|
this.$refs[formName].resetFields();
|
},
|
//关闭窗口
|
handleClose(done) {
|
console.log("关闭窗口");
|
this.resetForm("inputForm");
|
this.$emit("close");
|
this.records = [];
|
this.pageInfo.total = 0;
|
},
|
//查询和解信息,获取和解日期
|
async requestQueryReconcileInfo() {
|
const resp = await queryReconcileInfo({
|
applySerialNo: this.serialNo,
|
});
|
if (resp.code == "00") {
|
this.$set(this.form, "reconcileDate", resp.result.reconcileSignDate);
|
}
|
},
|
//请求执行利率
|
async requestTrialFinishRate() {
|
if (this.form.reconcileDate && this.form.finishDate) {
|
const res = await trialFinishRate({
|
applySerialNo: this.serialNo,
|
reconcileDate: this.form.reconcileDate,
|
finishDate: this.form.finishDate,
|
});
|
if (res.code == "00") {
|
this.$set(this.form, "businessRate", res.result);
|
this.$emit("updateBusinessRate:businessRate", res.result);
|
this.requestTrialFinishPayment();
|
}
|
}
|
},
|
//请求还款试算
|
async requestTrialFinishPayment() {
|
const resp = await trialFinishPayment({
|
// businessRate: this.form.businessRate,
|
// creditCustomerId: this.customerID,
|
// firstPayDate: this.form.finishDate,
|
applySerialNo: this.serialNo,
|
finishRate: this.form.businessRate,
|
finishDate: this.form.finishDate,
|
});
|
if (resp.code == "00") {
|
this.records = resp.result.resultList;
|
this.pageInfo.total = resp.result.resultList.length;
|
this.$set(
|
this.form,
|
"totalFirstPrincipalAmt",
|
resp.result.totalFirstPrincipalAmt
|
);
|
this.$set(
|
this.form,
|
"totalFirstInterestAmt",
|
resp.result.totalFirstInterestAmt
|
);
|
this.$set(this.form, "totalFirstAmt", resp.result.totalFirstAmt);
|
}
|
},
|
//和解日期
|
async reconcileDateHandle(val) {
|
this.form.reconcileDate = val;
|
// 如果结清日期早于新的和解日期,则清空结清日期
|
if (
|
this.form.finishDate &&
|
new Date(this.form.finishDate) < new Date(val)
|
) {
|
this.form.finishDate = "";
|
}
|
this.requestTrialFinishRate();
|
},
|
//结清日期
|
async finishDateHandle(val) {
|
this.form.finishDate = val;
|
this.requestTrialFinishRate();
|
},
|
},
|
};
|
</script>
|
<style scoped>
|
</style>
|