diff --git a/src/views/financialManagement/arriveAndInvoicing/ArriveAndInvoivingList.vue b/src/views/financialManagement/arriveAndInvoicing/ArriveAndInvoivingList.vue
index a082d26..4018c21 100644
--- a/src/views/financialManagement/arriveAndInvoicing/ArriveAndInvoivingList.vue
+++ b/src/views/financialManagement/arriveAndInvoicing/ArriveAndInvoivingList.vue
@@ -365,9 +365,9 @@ export default {
}
// 是否存在已完成开票的项目
- if (arr.some(item => item.makeInvoice === 1)) {
- reject('存在已完成开票的项目!')
- }
+ // if (arr.some(item => item.makeInvoice === 1)) {
+ // reject('存在已完成开票的项目!')
+ // }
// 是否选中了标协会员项目,标协会员项目只能到账一次、开票一次,前端进行是否完全到账的限制
if (arr.some(item => item.projectType === 5)) {
diff --git a/src/views/financialManagement/arriveAndInvoicing/modules/ArriveModule.vue b/src/views/financialManagement/arriveAndInvoicing/modules/ArriveModule.vue
index 7cd5b41..9281ee9 100644
--- a/src/views/financialManagement/arriveAndInvoicing/modules/ArriveModule.vue
+++ b/src/views/financialManagement/arriveAndInvoicing/modules/ArriveModule.vue
@@ -16,7 +16,7 @@
v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50'
@blur="addZero"
- @change="e => e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()">
+ @change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()">
0) {
- callback()
- } else {
- callback('到账金额不能小于或等于0')
- }
- return
+ callback()
}
- callback('请输入合法的金额数字,最多2位小数,10位正数')
+ callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入到账金额')
}
diff --git a/src/views/financialManagement/arriveAndInvoicing/modules/InvoicingModule.vue b/src/views/financialManagement/arriveAndInvoicing/modules/InvoicingModule.vue
index f6034f8..58f8cea 100644
--- a/src/views/financialManagement/arriveAndInvoicing/modules/InvoicingModule.vue
+++ b/src/views/financialManagement/arriveAndInvoicing/modules/InvoicingModule.vue
@@ -16,7 +16,7 @@
v-decorator="['invoiceAmount',validatorRules.invoiceAmount]"
:maxLength='50'
@blur="addZero"
- @change="e => e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()">
+ @change="e => e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()">
{
+ getContactsById({ id: this.mailContactsId }).then(res => {
this.postalCode = res.result.postalCode
this.contactAddress = res.result.contactAddress
})
@@ -208,9 +208,8 @@ export default {
if (value) {
if (money(value)) {
callback()
- return
}
- callback('请输入合法的金额数字,最多2位小数,10位正数')
+ callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入到账金额')
}
diff --git a/src/views/packManagement/PackProjectMaintenance.vue b/src/views/packManagement/PackProjectMaintenance.vue
index c622097..b3d6206 100644
--- a/src/views/packManagement/PackProjectMaintenance.vue
+++ b/src/views/packManagement/PackProjectMaintenance.vue
@@ -368,6 +368,9 @@ export default {
* 获取企业信息
*/
loadCompanyDetail() {
+ if (!this.$route.query.packCompanyId) {
+ return
+ }
let param = {
id: this.$route.query.packCompanyId
}
@@ -530,9 +533,9 @@ export default {
if (arr.some(item => item.needInvoice === 0 || Number(item.receivableAmount) === 0)) {
reject('存在不需要发票的项目!')
}
- if (arr.some(item => item.makeInvoice === 1)) {
- reject('存在已完成开票的项目!')
- }
+ // if (arr.some(item => item.makeInvoice === 1)) {
+ // reject('存在已完成开票的项目!')
+ // }
// 是否选中了标协会员项目,标协会员项目只能到账一次、开票一次,前端进行是否完全到账的限制
if (arr.some(item => item.projectType === 5)) {
// 标协会员项目是否完全到账
@@ -547,9 +550,9 @@ export default {
if (arr.some(item => Number(item.receivableAmount) === 0)) {
reject('存在应收金额为0的项目!')
}
- if (arr.some(item => item.inAccount === 1)) {
- reject('不可选择已付全款的项目!')
- }
+ // if (arr.some(item => item.inAccount === 1)) {
+ // reject('不可选择已付全款的项目!')
+ // }
}
resolve(arr)
})
diff --git a/src/views/packManagement/modules/BatchIncomePaymentModule.vue b/src/views/packManagement/modules/BatchIncomePaymentModule.vue
index 17efcc9..787eeaa 100644
--- a/src/views/packManagement/modules/BatchIncomePaymentModule.vue
+++ b/src/views/packManagement/modules/BatchIncomePaymentModule.vue
@@ -16,7 +16,7 @@
{e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"
+ @change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.-]/g,'')).trim()}"
@blur="incomingAmountBlur">
@@ -168,7 +168,10 @@ export default {
remarkList: [], // 备注列表
inputIncomingAmount: null, // 输入的来款金额
disableMixinCreated: true,
- sumAmountOwed: 0 // 总欠款金额
+ sumAmountOwed: 0, // 总欠款金额
+ sumIncomingAmount: 0, // 总来款金额
+ // 用于提交的表格数据
+ submitDataSource: []
}
},
methods: {
@@ -188,6 +191,7 @@ export default {
let amountOwed = Number(item.receivableAmount) - Number(item.paidAmount)
item.amountOwed = this.getAddZero(amountOwed)
this.sumAmountOwed += Number(item.amountOwed)
+ this.sumIncomingAmount += Number(item.paidAmount)
})
this.$forceUpdate()
},
@@ -196,6 +200,10 @@ export default {
this.$message.warn('来款金额大于当前欠款金额,输入有误!')
return
}
+ if (this.inputIncomingAmount < 0 && this.sumIncomingAmount === 0) {
+ this.$message.warn('当前总来款金额为0,不可输入小于0的来款金额')
+ return
+ }
if (this.confirmLoading) {
return
}
@@ -203,19 +211,16 @@ export default {
this.form.validateFields((err, values) => {
if (!err) {
let formData = []
- this.dataSource.forEach((item, index) => {
- if (Number(item.thisIncomingAmount) > 0) {
- let obj = {
- amountReceived: item.thisIncomingAmount,
- paymentDate: values.paymentDate,
- projectId: item.id,
- projectType: item.projectType,
- remark: this.remarkList[index]
- }
- formData.push(obj)
+ this.submitDataSource.forEach((item, index) => {
+ let obj = {
+ amountReceived: item.thisIncomingAmount,
+ paymentDate: values.paymentDate,
+ projectId: item.id,
+ projectType: item.projectType,
+ remark: this.remarkList[index]
}
+ formData.push(obj)
})
- console.log(formData)
addPaymentPhase(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
@@ -256,7 +261,7 @@ export default {
*/
incomingAmountBlur(e) {
this.addZero(e)
- e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
+ e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()
this.inputIncomingAmount = Number(e.target.value)
this.clearThisTimeAmount()
this.calculateThisTimeAmount()
@@ -274,31 +279,70 @@ export default {
* 计算此次来款信息
*/
calculateThisTimeAmount() {
- if (this.inputIncomingAmount <= 0) {
- this.$message.warn('请输入大于0的来款金额')
- return
- }
+ // if (this.inputIncomingAmount === 0) {
+ // this.$message.warn('来款金额不得为0')
+ // return
+ // }
if (this.inputIncomingAmount > this.sumAmountOwed) {
this.$message.warn('来款金额大于当前欠款金额,输入有误!')
return
}
- this.dataSource.forEach((item, index) => {
- // 当前项目欠款是否 >0
- if (Number(item.amountOwed) > 0) {
- // 输入的来款金额是否 >= 当前项目欠款
- if (this.inputIncomingAmount >= Number(item.amountOwed)) {
- item.thisIncomingAmount = this.getAddZero(Number(item.amountOwed))
- this.inputIncomingAmount -= Number(item.amountOwed)
- } else {
- // 输入的来款金额小于当前项目欠款且剩余的输入来款金额大于0,则将剩余全部来款算入当前项目的此次来款
- if (this.inputIncomingAmount > 0) {
- item.thisIncomingAmount = this.getAddZero(this.inputIncomingAmount)
- this.inputIncomingAmount = 0
- }
- }
+ if (this.inputIncomingAmount < 0 && this.sumIncomingAmount === 0) {
+ this.$message.warn('当前总来款金额为0,不可输入小于0的来款金额')
+ return
+ }
+ // 用于计算的数据
+ let changeInputAmount = this.inputIncomingAmount
+ // 清除要提交的数据
+ this.submitDataSource = []
+ for (let i = 0; i < this.dataSource.length; i++) {
+ let item = this.dataSource[i]
+ //输入来款金额为0,给选中的项目添加来款阶段,来款金额为0
+ if (this.inputIncomingAmount === 0) {
+ item.thisIncomingAmount = this.getAddZero(this.inputIncomingAmount)
+ this.$set(this.dataSource, i, item)
+ this.$set(this.submitDataSource, i, item)
+ continue
}
- this.$set(this.dataSource, index, item)
- })
+ // 输入的来款金额>0
+ if (this.inputIncomingAmount > 0) {
+ // 分配剩下的>0才能继续走分配
+ if (changeInputAmount > 0) {
+ // 输入的来款金额是否 >= 当前项目欠款
+ if (changeInputAmount >= Number(item.amountOwed)) {
+ item.thisIncomingAmount = this.getAddZero(Number(item.amountOwed))
+ changeInputAmount -= Number(item.amountOwed)
+ } else {
+ // 输入的来款金额小于当前项目欠款且剩余的输入来款金额大于0,则将剩余全部来款算入当前项目的此次来款
+ item.thisIncomingAmount = this.getAddZero(changeInputAmount)
+ changeInputAmount = 0
+ }
+ this.$set(this.submitDataSource, i, item)
+ } else {
+ item.thisIncomingAmount = this.getAddZero(0)
+ }
+ this.$set(this.dataSource, i, item)
+ continue
+ }
+ // 输入的来款金额<0
+ if (this.inputIncomingAmount < 0) {
+ // 分配剩下的<0 && 已收金额 > 0才能继续走分配
+ if (changeInputAmount < 0 && Number(item.paidAmount) > 0) {
+ // 若当前项目的实收 + 分配剩余 > 0,将当前全部分配给这个项目且将剩余清0
+ if (Number(item.paidAmount) + changeInputAmount >= 0) {
+ item.thisIncomingAmount = this.getAddZero(changeInputAmount)
+ changeInputAmount = 0
+ } else {
+ item.thisIncomingAmount = this.getAddZero(-Number(item.paidAmount))
+ changeInputAmount += Number(item.paidAmount)
+ }
+ this.$set(this.submitDataSource, i, item)
+ } else {
+ item.thisIncomingAmount = this.getAddZero(0)
+ }
+ this.$set(this.dataSource, i, item)
+ }
+ }
}
,
/**
@@ -309,14 +353,11 @@ export default {
*/
checkMoney(rules, value, callback) {
if (value) {
- if (Number(value) <= 0) {
- callback('来款金额不能小于或等于0')
- }
if (money(value)) {
callback()
return
}
- callback('请输入合法的金额数字,最多2位小数,10位正数')
+ callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入来款金额')
}
diff --git a/src/views/packManagement/modules/BatchInvoicingModule.vue b/src/views/packManagement/modules/BatchInvoicingModule.vue
index e2905b1..8df21c2 100644
--- a/src/views/packManagement/modules/BatchInvoicingModule.vue
+++ b/src/views/packManagement/modules/BatchInvoicingModule.vue
@@ -17,7 +17,7 @@
v-decorator="['invoiceAmount',validatorRules.invoiceAmount]"
:maxLength='50'
@blur="invoicingAmountBlur"
- @change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}">
+ @change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.-]/g,'')).trim()}">
@@ -238,7 +238,10 @@ export default {
},
inputInvoicingAmount: null, // 输入的开票金额
sumAmountOwed: 0, // 总未开票金额,
+ sumInvoiceAmount: 0, // 总已开票金额
packContact: {}, // 邮寄联系人信息
+ // 用于提交的表格数据
+ submitDataSource: []
}
},
methods: {
@@ -264,6 +267,7 @@ export default {
item.amountOwed = this.getAddZero(amountOwed)
item.thisInvoicingAmount = 0
this.sumAmountOwed += Number(item.amountOwed)
+ this.sumInvoiceAmount += Number(item.invoiceAmount)
})
this.$forceUpdate()
},
@@ -272,7 +276,7 @@ export default {
*/
invoicingAmountBlur(e) {
this.addZero(e)
- e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
+ e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()
this.inputInvoicingAmount = Number(e.target.value)
this.clearThisTimeAmount()
this.calculateThisTimeAmount()
@@ -319,37 +323,102 @@ export default {
* 计算此次开票信息
*/
calculateThisTimeAmount() {
- if (this.inputInvoicingAmount <= 0) {
- this.$message.warn('请输入大于0的开票金额')
- return
- }
+ // if (this.inputInvoicingAmount === null) {
+ // this.$message.warn('开票金额不得为0')
+ // return
+ // }
if (this.inputInvoicingAmount > this.sumAmountOwed) {
this.$message.warn('开票金额大于当前未开票金额,输入有误!')
return
}
- this.dataSource.forEach((item, index) => {
- // 当前项目欠款是否 >0
- if (Number(item.amountOwed) > 0) {
- // 输入的开票金额是否 >= 当前项目欠款
- if (this.inputInvoicingAmount >= Number(item.amountOwed)) {
- item.thisInvoicingAmount = this.getAddZero(Number(item.amountOwed))
- this.inputInvoicingAmount -= Number(item.amountOwed)
- } else {
- // 输入的开票金额小于当前项目欠款且剩余的输入开票金额大于0,则将剩余全部开票算入当前项目的此次开票
- if (this.inputInvoicingAmount > 0) {
- item.thisInvoicingAmount = this.getAddZero(this.inputInvoicingAmount)
- this.inputInvoicingAmount = 0
- }
- }
+ if (this.inputInvoicingAmount < 0 && this.sumInvoiceAmount === 0) {
+ this.$message.warn('当前总开票金额为0,不可输入小于0的开票金额')
+ return
+ }
+ // 用于计算的数据
+ let changeInputAmount = this.inputInvoicingAmount
+ // 清除要提交的数据
+ this.submitDataSource = []
+ for (let i = 0; i < this.dataSource.length; i++) {
+ let item = this.dataSource[i]
+ //输入来款金额为0,给选中的项目添加来款阶段,来款金额为0
+ if (this.inputInvoicingAmount === 0) {
+ item.thisInvoicingAmount = this.getAddZero(this.inputInvoicingAmount)
+ this.$set(this.dataSource, i, item)
+ this.$set(this.submitDataSource, i, item)
+ continue
}
- this.$set(this.dataSource, index, item)
- })
+ // 输入的来款金额>0
+ if (this.inputInvoicingAmount > 0) {
+ // 分配剩下的>0才能继续走分配
+ if (changeInputAmount > 0) {
+ // 输入的来款金额是否 >= 当前项目欠款
+ if (changeInputAmount >= Number(item.amountOwed)) {
+ item.thisInvoicingAmount = this.getAddZero(Number(item.amountOwed))
+ changeInputAmount -= Number(item.amountOwed)
+ } else {
+ // 输入的来款金额小于当前项目欠款且剩余的输入来款金额大于0,则将剩余全部来款算入当前项目的此次来款
+ item.thisInvoicingAmount = this.getAddZero(changeInputAmount)
+ changeInputAmount = 0
+ }
+ this.$set(this.submitDataSource, i, item)
+ } else {
+ item.thisInvoicingAmount = this.getAddZero(0)
+ }
+ this.$set(this.dataSource, i, item)
+ continue
+ }
+ // 输入的来款金额<0
+ if (this.inputInvoicingAmount < 0) {
+ // 分配剩下的<0 && 已收金额 > 0才能继续走分配
+ if (changeInputAmount < 0 && Number(item.invoiceAmount) > 0) {
+ // 若当前项目的实收 + 分配剩余 > 0,将当前全部分配给这个项目且将剩余清0
+ if (Number(item.invoiceAmount) + changeInputAmount >= 0) {
+ item.thisInvoicingAmount = this.getAddZero(changeInputAmount)
+ changeInputAmount = 0
+ } else {
+ item.thisInvoicingAmount = this.getAddZero(-Number(item.invoiceAmount))
+ changeInputAmount += Number(item.invoiceAmount)
+ }
+ this.$set(this.submitDataSource, i, item)
+ } else {
+ item.thisInvoicingAmount = this.getAddZero(0)
+ }
+ this.$set(this.dataSource, i, item)
+ }
+ }
+ // this.dataSource.forEach((item, index) => {
+ // // 当前项目欠款是否 >0
+ // if (Number(item.amountOwed) > 0 && Number(item.amountOwed) !== Number(item.invoiceAmount)) {
+ // if (this.inputInvoicingAmount > 0) {
+ // // 输入的开票金额是否 >= 当前项目欠款
+ // if (this.inputInvoicingAmount >= Number(item.amountOwed)) {
+ // item.thisInvoicingAmount = this.getAddZero(Number(item.amountOwed))
+ // this.inputInvoicingAmount -= Number(item.amountOwed)
+ // } else {
+ // // 输入的开票金额小于当前项目欠款且剩余的输入开票金额大于0,则将剩余全部开票算入当前项目的此次开票
+ // if (this.inputInvoicingAmount > 0) {
+ // item.thisInvoicingAmount = this.getAddZero(this.inputInvoicingAmount)
+ // this.inputInvoicingAmount = 0
+ // }
+ // }
+ // } else {
+ // item.thisInvoicingAmount = this.getAddZero(this.inputInvoicingAmount)
+ // this.inputInvoicingAmount = 0
+ // }
+ // }
+ // this.$set(this.dataSource, index, item)
+ // })
},
handleOk() {
if (this.inputInvoicingAmount > this.sumAmountOwed) {
this.$message.warn('开票金额大于当前未开票金额,输入有误!')
return
}
+ if (this.inputInvoicingAmount < 0 && this.sumInvoiceAmount === 0) {
+ this.$message.warn('当前总开票金额为0,不可输入小于0的开票金额')
+ return
+ }
if (this.confirmLoading) {
return
}
@@ -357,8 +426,8 @@ export default {
this.form.validateFields((err, values) => {
if (!err) {
let bmpList = []
- let data = this.dataSource.filter(tt => tt.thisInvoicingAmount !== 0 && tt.thisInvoicingAmount)
- data.forEach((item, index) => {
+ // let data = this.dataSource.filter(tt => tt.thisInvoicingAmount !== 0 && tt.thisInvoicingAmount)
+ this.submitDataSource.forEach((item, index) => {
let obj = {
invoiceAmount: item.thisInvoicingAmount,
projectId: item.id,
@@ -417,9 +486,8 @@ export default {
if (value) {
if (money(value)) {
callback()
- return
}
- callback('请输入合法的金额数字,最多2位小数,10位正数')
+ callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入开票金额')
}
diff --git a/src/views/packManagement/modules/PackCompanyModule.vue b/src/views/packManagement/modules/PackCompanyModule.vue
index 659bcc3..db0fa3e 100644
--- a/src/views/packManagement/modules/PackCompanyModule.vue
+++ b/src/views/packManagement/modules/PackCompanyModule.vue
@@ -274,7 +274,7 @@ export default {
callback()
return
}
- callback('请输入合法的金额数字,最多2位小数,10位正数')
+ callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入打包费用总计')
},