|
|
@@ -337,7 +337,7 @@
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="form.settlementMode == 2" label="结算月份范围" prop="settlementDate">
|
|
|
+ <el-form-item v-if="form.settlementMode == 2 || isInstallment" label="结算月份范围" prop="settlementDate">
|
|
|
<!-- <el-date-picker
|
|
|
v-model="form.contractEndDate"
|
|
|
type="date"
|
|
|
@@ -348,7 +348,7 @@
|
|
|
<el-date-picker
|
|
|
v-model="form.settlementDate"
|
|
|
type="monthrange"
|
|
|
- :clearable="false"
|
|
|
+ :clearable="isInstallment"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始月份"
|
|
|
end-placeholder="结束月份"
|
|
|
@@ -358,7 +358,7 @@
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="form.settlementMode == 2" label="收款日期" prop="receiptDate">
|
|
|
+ <el-form-item v-if="form.settlementMode == 2 || isInstallment" label="收款日期" prop="receiptDate">
|
|
|
<el-input type="number" :min="1" :max="31" placeholder="请输入" v-model="form.receiptDate" @input="receiptDateChange">
|
|
|
<template slot="prepend">每月</template>
|
|
|
<template slot="append">日</template>
|
|
|
@@ -1000,6 +1000,12 @@
|
|
|
filterList() {
|
|
|
return this.isUpdate ? this.requirementSourceType : this.requirementSourceType.filter(item => item.value !== '8');
|
|
|
},
|
|
|
+ // 结算方式是否为「分期付款」
|
|
|
+ isInstallment() {
|
|
|
+ const mode = this.form.settlementMode;
|
|
|
+ if (mode === '' || mode === null || mode === undefined) return false;
|
|
|
+ return mode == 4 || this.form.settlementModeName === '分期付款';
|
|
|
+ },
|
|
|
rules() {
|
|
|
let isRequired = true;
|
|
|
// console.log(this.isRequired);
|
|
|
@@ -1239,6 +1245,12 @@
|
|
|
},
|
|
|
setIssueNumber(len) {
|
|
|
this.form.issueNumber = len;
|
|
|
+ // 分期付款下手工增删行后,同步回填新行的计划付款日期
|
|
|
+ if (this.isInstallment) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
getSupplierData(data) {
|
|
|
console.log('data~~~', data);
|
|
|
@@ -2252,7 +2264,7 @@
|
|
|
})
|
|
|
}
|
|
|
this.form.contractStartDate = formatDate(new Date(), 'yyyy-MM-dd');
|
|
|
- // this.form.isGeneratePaymentPlan = +this.isGenReceiptPlan;
|
|
|
+ this.form.isGeneratePaymentPlan = +this.isGenReceiptPlan;
|
|
|
} else {
|
|
|
this.isUpdate = true;
|
|
|
await this.getpurchaseorderDetail(row.id);
|
|
|
@@ -2282,7 +2294,7 @@
|
|
|
this.visible = true;
|
|
|
this.isUpdate = false;
|
|
|
this.form.relationType = 4;
|
|
|
- // this.form.isGeneratePaymentPlan = +this.isGenReceiptPlan;
|
|
|
+ this.form.isGeneratePaymentPlan = +this.isGenReceiptPlan;
|
|
|
this.changeContract(row);
|
|
|
},
|
|
|
handleGoodsList() {
|
|
|
@@ -2609,6 +2621,11 @@
|
|
|
// 日期范围变化
|
|
|
settlementDateChange(val) {
|
|
|
// console.log(val);
|
|
|
+ // 分期付款:期数由用户自行填写,这里只把计划付款日期回填到已有的付款计划行
|
|
|
+ if (this.isInstallment) {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ return;
|
|
|
+ }
|
|
|
let dateRange = [];
|
|
|
if(this.form.settlementMode == 1) {
|
|
|
// // this.transformDays(val)
|
|
|
@@ -2626,20 +2643,40 @@
|
|
|
// 收款日变化
|
|
|
receiptDateChange(v) {
|
|
|
// this.transformMonth(this.form.settlementDate)
|
|
|
+ if (this.isInstallment) {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ return;
|
|
|
+ }
|
|
|
if(this.form.settlementDate.length > 0 && this.form.issueNumber) {
|
|
|
const dateRange = this.transformMonthFun(this.form.settlementDate, v);
|
|
|
this.$refs.paymentCollectionPlanRef.defaultList(this.form.settlementMode, this.form.issueNumber, dateRange);
|
|
|
}
|
|
|
},
|
|
|
+ // 分期付款:按「结算月份范围 + 收款日期」给付款计划回填计划付款日期
|
|
|
+ // 结算月份范围/收款日期均非必填,未填时不做任何赋值;只覆盖 deadLine,不影响用户已填的比例/款项名称/金额/说明
|
|
|
+ setInstallmentDeadLine() {
|
|
|
+ const { settlementDate, receiptDate } = this.form;
|
|
|
+ if (!settlementDate || settlementDate.length < 2) return;
|
|
|
+ const day = parseInt(receiptDate, 10);
|
|
|
+ if (!day || day < 1 || day > 31) return;
|
|
|
+ const dateRange = this.transformMonthFun(settlementDate, day);
|
|
|
+ this.$refs.paymentCollectionPlanRef?.setDeadLineList(dateRange);
|
|
|
+ },
|
|
|
// 期数变化
|
|
|
issueNumberChange(v) {
|
|
|
let dateRange = [];
|
|
|
if(this.form.settlementMode == 1) {
|
|
|
dateRange = this.transformDaysFun(this.form.settlementDate, v);
|
|
|
- this.$refs.paymentCollectionPlanRef?.defaultList(this.form.settlementMode, v, dateRange);
|
|
|
+ this.$refs.paymentCollectionPlanRef?.defaultList(this.form.settlementMode, v, dateRange);
|
|
|
} else if(this.form.settlementMode == 2) {
|
|
|
dateRange = this.transformMonthFun(this.form.settlementDate, v);
|
|
|
this.$refs.paymentCollectionPlanRef?.defaultList(this.form.settlementMode, v, dateRange);
|
|
|
+ } else if (this.isInstallment) {
|
|
|
+ // 先按期数重建行,再回填计划付款日期
|
|
|
+ this.$refs.paymentCollectionPlanRef?.defaultList(this.form.settlementMode, v);
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ });
|
|
|
} else {
|
|
|
this.$refs.paymentCollectionPlanRef?.defaultList(this.form.settlementMode, v);
|
|
|
}
|