|
|
@@ -360,8 +360,9 @@
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
+ <!-- 结算方式=按月结算(2) 时必填;=分期付款 时展示但非必填,仅用于给下方收款计划回填计划收款日期 -->
|
|
|
<el-form-item
|
|
|
- v-if="form.settlementMode == 2"
|
|
|
+ v-if="form.settlementMode == 2 || isInstallment"
|
|
|
label="结算月份范围"
|
|
|
prop="settlementDate"
|
|
|
>
|
|
|
@@ -374,7 +375,7 @@
|
|
|
</el-date-picker> -->
|
|
|
<el-date-picker
|
|
|
v-model="form.settlementDate"
|
|
|
- :clearable="false"
|
|
|
+ :clearable="isInstallment"
|
|
|
type="monthrange"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始月份"
|
|
|
@@ -386,7 +387,7 @@
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- v-if="form.settlementMode == 2"
|
|
|
+ v-if="form.settlementMode == 2 || isInstallment"
|
|
|
label="收款日期"
|
|
|
prop="receiptDate"
|
|
|
>
|
|
|
@@ -1022,6 +1023,12 @@
|
|
|
clientEnvironmentId() {
|
|
|
return this.$store.state.user.info.clientEnvironmentId;
|
|
|
},
|
|
|
+ // 结算方式是否为「分期付款」
|
|
|
+ isInstallment() {
|
|
|
+ const mode = this.form.settlementMode;
|
|
|
+ if (mode === '' || mode === null || mode === undefined) return false;
|
|
|
+ return mode == 4 || this.form.settlementModeName === '分期付款';
|
|
|
+ },
|
|
|
rules() {
|
|
|
let isRequired = this.isRequired;
|
|
|
return {
|
|
|
@@ -1107,10 +1114,18 @@
|
|
|
}
|
|
|
],
|
|
|
settlementDate: [
|
|
|
- { required: true, message: '请选择结算日期', trigger: 'change' }
|
|
|
+ {
|
|
|
+ required: !this.isInstallment,
|
|
|
+ message: '请选择结算日期',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
],
|
|
|
receiptDate: [
|
|
|
- { required: true, message: '请选择收款日期', trigger: 'change' }
|
|
|
+ {
|
|
|
+ required: !this.isInstallment,
|
|
|
+ message: '请选择收款日期',
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
]
|
|
|
};
|
|
|
}
|
|
|
@@ -1191,6 +1206,12 @@
|
|
|
},
|
|
|
setIssueNumber(len) {
|
|
|
this.form.issueNumber = len;
|
|
|
+ // 分期付款下手工增删行后,同步回填新行的计划收款日期
|
|
|
+ if (this.isInstallment) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
setCountAmount(allPrice, discountTotalPrice) {
|
|
|
this.form.totalAmount = allPrice;
|
|
|
@@ -2309,6 +2330,11 @@
|
|
|
// 日期范围变化
|
|
|
settlementDateChange(val) {
|
|
|
// console.log(val);
|
|
|
+ // 分期付款:期数由用户自行填写,这里只把计划收款日期回填到已有的收款计划行
|
|
|
+ if (this.isInstallment) {
|
|
|
+ this.setInstallmentDeadLine();
|
|
|
+ return;
|
|
|
+ }
|
|
|
let dateRange = [];
|
|
|
if (this.form.settlementMode == 1) {
|
|
|
// // this.transformDays(val)
|
|
|
@@ -2330,6 +2356,10 @@
|
|
|
// 收款日变化
|
|
|
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(
|
|
|
@@ -2339,6 +2369,16 @@
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
+ // 分期付款:按「结算月份范围 + 收款日期」给收款计划回填计划收款日期
|
|
|
+ // 结算月份范围/收款日期均非必填,未填时不做任何赋值;只覆盖 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 = [];
|
|
|
@@ -2356,6 +2396,15 @@
|
|
|
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,
|