|
|
@@ -97,14 +97,14 @@
|
|
|
<el-input v-model="form.createDeptName" :disabled="true"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item prop="productionRequirements" label="备注">
|
|
|
+ <!-- <el-form-item prop="productionRequirements" label="备注">
|
|
|
<el-input
|
|
|
clearable
|
|
|
v-model="form.productionRequirements"
|
|
|
placeholder="请输入"
|
|
|
type="textarea"
|
|
|
/>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
|
|
|
<!-- <el-form-item label="预销售订单编码" prop="preOrderNo">
|
|
|
<el-input
|
|
|
@@ -272,18 +272,11 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="交易方式" prop="transactionMethods">
|
|
|
- <!-- <DictSelection
|
|
|
- dictName="结算方式"
|
|
|
- clearable
|
|
|
- @itemChange="settlementModeChange"
|
|
|
- v-model="form.settlementMode"
|
|
|
- >
|
|
|
- </DictSelection> -->
|
|
|
+ <el-form-item label="交易方式" prop="transactionMode">
|
|
|
<el-select
|
|
|
- v-model="form.transactionMethods"
|
|
|
+ v-model="form.transactionMode"
|
|
|
placeholder="请选择"
|
|
|
- @change="onchangeLink"
|
|
|
+ @change="transactionModeChange"
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -295,18 +288,11 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="发货模式" prop="shippingMode">
|
|
|
- <!-- <DictSelection
|
|
|
- dictName="结算方式"
|
|
|
- clearable
|
|
|
- @itemChange="settlementModeChange"
|
|
|
- v-model="form.settlementMode"
|
|
|
- >
|
|
|
- </DictSelection> -->
|
|
|
+ <el-form-item label="发货模式" prop="deliveryMode">
|
|
|
<el-select
|
|
|
- v-model="form.shippingMode"
|
|
|
+ v-model="form.deliveryMode"
|
|
|
placeholder="请选择"
|
|
|
- @change="onchangeLink"
|
|
|
+ @change="deliveryModeChange"
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -327,7 +313,7 @@
|
|
|
>
|
|
|
</DictSelection>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="form.settlementMode == 1" label="结算日期范围" prop="trafficDate">
|
|
|
+ <el-form-item v-if="form.settlementMode == 1" label="结算日期范围" prop="settlementDate">
|
|
|
<!-- <el-date-picker
|
|
|
v-model="form.contractStartDate"
|
|
|
@change="setDeliveryDays"
|
|
|
@@ -338,17 +324,17 @@
|
|
|
</el-date-picker> -->
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
|
- v-model="trafficDate"
|
|
|
+ v-model="settlementDate"
|
|
|
type="daterange"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
end-placeholder="结束日期"
|
|
|
- @change="trafficDateChange">
|
|
|
+ @change="settlementDateChange">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="form.settlementMode == 2" label="结算月份范围" prop="trafficDate">
|
|
|
+ <el-form-item v-if="form.settlementMode == 2" label="结算月份范围" prop="settlementDate">
|
|
|
<!-- <el-date-picker
|
|
|
v-model="form.contractEndDate"
|
|
|
type="date"
|
|
|
@@ -357,14 +343,14 @@
|
|
|
>
|
|
|
</el-date-picker> -->
|
|
|
<el-date-picker
|
|
|
- v-model="trafficDate"
|
|
|
+ v-model="settlementDate"
|
|
|
type="monthrange"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始月份"
|
|
|
end-placeholder="结束月份"
|
|
|
value-format="yyyy-MM"
|
|
|
style="width: 100%"
|
|
|
- @change="trafficDateChange"
|
|
|
+ @change="settlementDateChange"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
@@ -376,9 +362,9 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
label="期数"
|
|
|
- prop="period"
|
|
|
+ prop="issueNumber"
|
|
|
>
|
|
|
- <el-input type="number" :min="1" v-model="form.period">
|
|
|
+ <el-input type="number" :min="1" v-model="form.issueNumber" @input="issueNumberChange">
|
|
|
<template slot="append">
|
|
|
<span>期</span>
|
|
|
</template>
|
|
|
@@ -654,6 +640,15 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
+
|
|
|
+ <headerTitle
|
|
|
+ title="收款计划"
|
|
|
+ style="margin-top: 30px"
|
|
|
+ ></headerTitle>
|
|
|
+ <PaymentCollectionPlan
|
|
|
+ ref="paymentCollectionPlanRef"
|
|
|
+ ></PaymentCollectionPlan>
|
|
|
+
|
|
|
</el-form>
|
|
|
|
|
|
<div slot="footer" class="footer">
|
|
|
@@ -725,7 +720,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { emailReg, numberReg, telReg } from 'ele-admin';
|
|
|
- import inventoryTable from '@/BIZComponents/inventoryTable.vue';
|
|
|
+ import inventoryTable from '@/BIZComponents/inventoryTableNew.vue';
|
|
|
import fileUpload from '@/components/upload/fileUpload';
|
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
|
import parentList from '@/views/saleManage/contact/components/parentList.vue';
|
|
|
@@ -768,6 +763,7 @@
|
|
|
import opportunityDialog from '@/views/financialManage/components/opportunityDialog.vue';
|
|
|
import { mapGetters } from 'vuex';
|
|
|
import personSelect from '@/components/CommomSelect/person-select.vue';
|
|
|
+ import PaymentCollectionPlan from '@/BIZComponents/paymentCollectionPlan/Index.vue'
|
|
|
import { shippingModeOp, transactionMethodsOp } from '@/enum/dict.js';
|
|
|
export default {
|
|
|
mixins: [dictMixins],
|
|
|
@@ -788,6 +784,7 @@
|
|
|
saleOrderListDialog,
|
|
|
opportunityDialog,
|
|
|
personSelect,
|
|
|
+ PaymentCollectionPlan
|
|
|
},
|
|
|
props: {
|
|
|
contactData: {
|
|
|
@@ -851,10 +848,19 @@
|
|
|
relationCode: '',
|
|
|
relationId: '',
|
|
|
createDeptName: '',
|
|
|
- salesmanId: ''
|
|
|
+ salesmanId: '',
|
|
|
+ issueNumber: 1,
|
|
|
+ transactionMode: 1,
|
|
|
+ deliveryMode: 1,
|
|
|
+ settlementDate: [],
|
|
|
+ endSettlementDate: '',
|
|
|
+ startSettlementDate: ''
|
|
|
};
|
|
|
|
|
|
return {
|
|
|
+ shippingModeOp,
|
|
|
+ transactionMethodsOp,
|
|
|
+ settlementDate: [],
|
|
|
returnOrderDialogFlag: false,
|
|
|
customerMark: '',
|
|
|
opportunityDialogFlag: false,
|
|
|
@@ -1043,12 +1049,14 @@
|
|
|
setCountAmount(allPrice) {
|
|
|
this.form.totalAmount = allPrice;
|
|
|
this.form.payAmount = allPrice;
|
|
|
+ this.$refs.paymentCollectionPlanRef.setDiscountAmount(this.form.payAmount);
|
|
|
},
|
|
|
setTotalPlanNum(totalPlanNum) {
|
|
|
this.$set(this.form, 'totalPlanNum', totalPlanNum);
|
|
|
},
|
|
|
discountInput() {
|
|
|
this.$refs.inventoryTable.discountInputByOrder(this.form.payAmount);
|
|
|
+ this.$refs.paymentCollectionPlanRef.setDiscountAmount(this.form.payAmount);
|
|
|
},
|
|
|
// 选择负责人部门
|
|
|
change_principalDep(id) {
|
|
|
@@ -1684,6 +1692,9 @@
|
|
|
}
|
|
|
this.form.createDeptName = this.user.info.groupName;
|
|
|
this.form.saleType = 1;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.issueNumberChange(this.form.issueNumber);
|
|
|
+ })
|
|
|
// this.form.progress = 700;
|
|
|
//嘉实默认值
|
|
|
if (this.clientEnvironmentId == 5) {
|
|
|
@@ -1751,9 +1762,29 @@
|
|
|
this.form.partbAddress = data.address;
|
|
|
},
|
|
|
|
|
|
- settlementModeChange(info) {
|
|
|
- this.form.settlementModeName = info.dictValue;
|
|
|
- },
|
|
|
+ // 交易方式改变
|
|
|
+ transactionModeChange(v) {
|
|
|
+
|
|
|
+ },
|
|
|
+ // 配送方式改变
|
|
|
+ deliveryModeChange(v) {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ // 结算方式改变
|
|
|
+ settlementModeChange(v) {
|
|
|
+ console.log('v~~~', v.dictCode);
|
|
|
+ // this.$set(this.form, 'issueNumber', 1);
|
|
|
+ this.$set(this.form, 'settlementDate', []);
|
|
|
+ this.$set(this.form, 'receiptDate', '');
|
|
|
+
|
|
|
+ if(v.dictCode == 3) {
|
|
|
+ this.$set(this.form, 'issueNumber', 2);
|
|
|
+ } else {
|
|
|
+ this.$set(this.form, 'issueNumber', 1);
|
|
|
+ }
|
|
|
+ this.$refs.paymentCollectionPlanRef.defaultList(v.dictCode, this.form.issueNumber);
|
|
|
+ },
|
|
|
ifChiefChange(value, idx) {
|
|
|
if (value === 1) {
|
|
|
this.tableLinkData.forEach((e) => (e.ifChief = 0));
|
|
|
@@ -1952,7 +1983,76 @@
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
- }
|
|
|
+ },
|
|
|
+ // 日期范围变化
|
|
|
+ settlementDateChange(val) {
|
|
|
+ // console.log(val);
|
|
|
+ let dateRange = [];
|
|
|
+ if(this.form.settlementMode == 1) {
|
|
|
+ // // this.transformDays(val)
|
|
|
+ dateRange = this.transformDaysFun(val);
|
|
|
+ }
|
|
|
+ if(this.form.settlementMode == 2) {
|
|
|
+ // // this.transformMonth(val)
|
|
|
+ dateRange = this.transformMonthFun(val);
|
|
|
+ }
|
|
|
+ // console.log('dateRange~~~', dateRange);
|
|
|
+ this.$set(this.form, 'issueNumber', dateRange.length);
|
|
|
+ // this.setDefaultList(dateRange)
|
|
|
+ this.$refs.paymentCollectionPlanRef.defaultList(this.form.settlementMode, this.form.issueNumber, dateRange);
|
|
|
+ },
|
|
|
+ // 收款日变化
|
|
|
+ receiptDateChange(v) {
|
|
|
+ // this.transformMonth(this.form.settlementDate)
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 期数变化
|
|
|
+ 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);
|
|
|
+ } else if(this.form.settlementMode == 2) {
|
|
|
+ dateRange = this.transformMonthFun(this.form.settlementDate, v);
|
|
|
+ this.$refs.paymentCollectionPlanRef.defaultList(this.form.settlementMode, v, dateRange);
|
|
|
+ } else {
|
|
|
+ this.$refs.paymentCollectionPlanRef.defaultList(this.form.settlementMode, v);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ transformMonthFun(date, day) {
|
|
|
+ // 处理月份数据(转换为Date对象)
|
|
|
+ const parseMonthDate = (dateStr) => {
|
|
|
+ return dateStr instanceof Date ? dateStr : new Date(dateStr + '-01');
|
|
|
+ };
|
|
|
+
|
|
|
+ const start = parseMonthDate(date[0]);
|
|
|
+ const end = parseMonthDate(date[1]);
|
|
|
+
|
|
|
+ // 先生成所有月份的日期数组
|
|
|
+ const allMonthDates = [];
|
|
|
+ const currentDate = new Date(start);
|
|
|
+
|
|
|
+ // 遍历从开始月份到结束月份的所有月份
|
|
|
+ while (currentDate <= end) {
|
|
|
+ const year = currentDate.getFullYear();
|
|
|
+ const month = currentDate.getMonth() + 1; // 月份从0开始,需要+1
|
|
|
+ const receiptDate = day;
|
|
|
+
|
|
|
+ // 格式化日期为YYYY-MM-dd
|
|
|
+ const formattedMonth = String(month).padStart(2, '0');
|
|
|
+ const formattedDate = String(receiptDate).padStart(2, '0');
|
|
|
+ const deadLine = receiptDate ? `${year}-${formattedMonth}-${formattedDate}` : '';
|
|
|
+
|
|
|
+ allMonthDates.push(deadLine);
|
|
|
+
|
|
|
+ // 使用Date对象的setMonth方法正确移动到下一个月(自动处理年份变化)
|
|
|
+ currentDate.setMonth(currentDate.getMonth() + 1);
|
|
|
+ }
|
|
|
+ return allMonthDates;
|
|
|
+ },
|
|
|
}
|
|
|
};
|
|
|
</script>
|