[update] -税额+未税金额= 总额 增加判断
This commit is contained in:
@@ -22,14 +22,14 @@
|
|||||||
<a-input placeholder="请输入税额"
|
<a-input placeholder="请输入税额"
|
||||||
v-decorator="['tax',validatorRules.tax]"
|
v-decorator="['tax',validatorRules.tax]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'noTaxAmount', 'amountReceived')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="到账金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="到账金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input placeholder="请输入未税金额"
|
<a-input placeholder="请输入未税金额"
|
||||||
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'tax', 'amountReceived')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="来款日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="来款日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
@@ -54,14 +54,15 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import { money } from '../../../../utils/validate'
|
|
||||||
import JDate from '../../../../components/tools/JDate'
|
import JDate from '../../../../components/tools/JDate'
|
||||||
import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
|
import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
|
||||||
import { addZero } from '../../../../utils/util'
|
import { addZero } from '../../../../utils/util'
|
||||||
|
import { TaxOperateMixin } from './TaxOperateMixin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ArriveModule',
|
name: 'ArriveModule',
|
||||||
components: { JDate },
|
components: { JDate },
|
||||||
|
mixins: [TaxOperateMixin],
|
||||||
props: {
|
props: {
|
||||||
// 项目id
|
// 项目id
|
||||||
projectId: {
|
projectId: {
|
||||||
@@ -167,23 +168,6 @@ export default {
|
|||||||
close() {
|
close() {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 校验金额格式
|
|
||||||
* @param rules
|
|
||||||
* @param value
|
|
||||||
* @param callback
|
|
||||||
* @param name --校验字段的名字
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
checkMoneyTemplate(rules, value, callback, name) {
|
|
||||||
if (value) {
|
|
||||||
if (money(value)) {
|
|
||||||
callback()
|
|
||||||
}
|
|
||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
|
||||||
}
|
|
||||||
callback(`请输入${name}`)
|
|
||||||
},
|
|
||||||
// 校验金额格式
|
// 校验金额格式
|
||||||
checkMoney(rules, value, callback) {
|
checkMoney(rules, value, callback) {
|
||||||
this.checkMoneyTemplate(rules, value, callback, '到账金额')
|
this.checkMoneyTemplate(rules, value, callback, '到账金额')
|
||||||
@@ -194,22 +178,6 @@ export default {
|
|||||||
checkTaxMoney(rules, value, callback) {
|
checkTaxMoney(rules, value, callback) {
|
||||||
this.checkMoneyTemplate(rules, value, callback, '税额')
|
this.checkMoneyTemplate(rules, value, callback, '税额')
|
||||||
},
|
},
|
||||||
// 总金额做相关的处理
|
|
||||||
addZeroAmount(event) {
|
|
||||||
this.addZero(event)
|
|
||||||
let finalValue = event.target.value
|
|
||||||
// 计算未税金额和税额的值
|
|
||||||
let obj = this.calcOtherNumber(finalValue)
|
|
||||||
// console.log(event.target.value )
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(obj)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
calcOtherNumber(amount) {
|
|
||||||
let noTaxAmount = (amount / 1.06).toFixed(2) // 未税金额
|
|
||||||
let tax = (amount - noTaxAmount).toFixed(2) // 税额
|
|
||||||
return {noTaxAmount, tax}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -23,14 +23,14 @@
|
|||||||
<a-input placeholder="请输入税额"
|
<a-input placeholder="请输入税额"
|
||||||
v-decorator="['tax',validatorRules.tax]"
|
v-decorator="['tax',validatorRules.tax]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'noTaxAmount', 'amountReceived')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input placeholder="请输入未税金额"
|
<a-input placeholder="请输入未税金额"
|
||||||
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'tax', 'amountReceived')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="确认日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="确认日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
@@ -55,15 +55,16 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import {money} from '../../../../utils/validate'
|
|
||||||
import JDate from '../../../../components/tools/JDate'
|
import JDate from '../../../../components/tools/JDate'
|
||||||
// import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
|
// import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
|
||||||
import {addZero} from '../../../../utils/util'
|
import {addZero} from '../../../../utils/util'
|
||||||
import { getPayConfirmList, addPayConfirm, editPayConfirm } from '../../../../api/incomePaymentsApi'
|
import { getPayConfirmList, addPayConfirm, editPayConfirm } from '../../../../api/incomePaymentsApi'
|
||||||
|
import { TaxOperateMixin } from './TaxOperateMixin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ConfirmModule',
|
name: 'ConfirmModule',
|
||||||
components: {JDate},
|
components: {JDate},
|
||||||
|
mixins: [TaxOperateMixin],
|
||||||
props:{
|
props:{
|
||||||
// 项目id
|
// 项目id
|
||||||
projectId: {
|
projectId: {
|
||||||
@@ -151,6 +152,8 @@ export default {
|
|||||||
this.form.resetFields()
|
this.form.resetFields()
|
||||||
this.model = Object.assign({}, record)
|
this.model = Object.assign({}, record)
|
||||||
this.projectInfo = Object.assign({}, projectInfo)
|
this.projectInfo = Object.assign({}, projectInfo)
|
||||||
|
// 通过判断是否需要发票 来改变税率
|
||||||
|
this.taxRate = this.projectInfo.needInvoice ? 0.06 : 0
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'amountReceived', 'tax', 'noTaxAmount','paymentDate', 'remark'))
|
this.form.setFieldsValue(pick(this.model, 'amountReceived', 'tax', 'noTaxAmount','paymentDate', 'remark'))
|
||||||
@@ -214,23 +217,6 @@ export default {
|
|||||||
close() {
|
close() {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 校验金额格式
|
|
||||||
* @param rules
|
|
||||||
* @param value
|
|
||||||
* @param callback
|
|
||||||
* @param name --校验字段的名字
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
checkMoneyTemplate(rules, value, callback, name) {
|
|
||||||
if (value) {
|
|
||||||
if (money(value)) {
|
|
||||||
callback()
|
|
||||||
}
|
|
||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
|
||||||
}
|
|
||||||
callback(`请输入${name}`)
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 校验金额格式
|
* 校验金额格式
|
||||||
*/
|
*/
|
||||||
@@ -243,22 +229,7 @@ export default {
|
|||||||
checkTaxMoney(rules, value, callback) {
|
checkTaxMoney(rules, value, callback) {
|
||||||
this.checkMoneyTemplate(rules, value, callback, '税额')
|
this.checkMoneyTemplate(rules, value, callback, '税额')
|
||||||
},
|
},
|
||||||
// 总金额做相关的处理
|
|
||||||
addZeroAmount(event) {
|
|
||||||
this.addZero(event)
|
|
||||||
let finalValue = event.target.value
|
|
||||||
// 计算未税金额和税额的值
|
|
||||||
let obj = this.calcOtherNumber(finalValue)
|
|
||||||
// console.log(event.target.value )
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(obj)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
calcOtherNumber(amount) {
|
|
||||||
let noTaxAmount = (amount / 1.06).toFixed(2) // 未税金额
|
|
||||||
let tax = (amount - noTaxAmount).toFixed(2) // 税额
|
|
||||||
return {noTaxAmount, tax}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -22,14 +22,14 @@
|
|||||||
<a-input placeholder="请输入税额"
|
<a-input placeholder="请输入税额"
|
||||||
v-decorator="['tax',validatorRules.tax]"
|
v-decorator="['tax',validatorRules.tax]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'noTaxAmount', 'invoiceAmount')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input placeholder="请输入未税金额"
|
<a-input placeholder="请输入未税金额"
|
||||||
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="(e) => addZeroTaxOrNo(e, 'tax', 'invoiceAmount')"
|
||||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()"></a-input>
|
@change="e => e.target.value = (e.target.value.replace(/[^0-9.-]/g, '')).trim()"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="开票号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="开票号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
@@ -61,14 +61,15 @@
|
|||||||
<script>
|
<script>
|
||||||
import JDate from '../../../../components/tools/JDate'
|
import JDate from '../../../../components/tools/JDate'
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import { money } from '../../../../utils/validate'
|
|
||||||
import { addPayBill, editPayBill } from '../../../../api/incomePaymentsApi'
|
import { addPayBill, editPayBill } from '../../../../api/incomePaymentsApi'
|
||||||
import { addZero } from '../../../../utils/util'
|
import { addZero } from '../../../../utils/util'
|
||||||
import { getContactsById } from '../../../../api/api'
|
import { getContactsById } from '../../../../api/api'
|
||||||
|
import {TaxOperateMixin} from './TaxOperateMixin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'InvoicingModule',
|
name: 'InvoicingModule',
|
||||||
components: { JDate },
|
components: { JDate },
|
||||||
|
mixins: [TaxOperateMixin],
|
||||||
props: {
|
props: {
|
||||||
// 项目id
|
// 项目id
|
||||||
projectId: {
|
projectId: {
|
||||||
@@ -220,23 +221,6 @@ export default {
|
|||||||
close() {
|
close() {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 校验金额格式
|
|
||||||
* @param rules
|
|
||||||
* @param value
|
|
||||||
* @param callback
|
|
||||||
* @param name --校验字段的名字
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
checkMoneyTemplate(rules, value, callback, name) {
|
|
||||||
if (value) {
|
|
||||||
if (money(value)) {
|
|
||||||
callback()
|
|
||||||
}
|
|
||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
|
||||||
}
|
|
||||||
callback(`请输入${name}`)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 校验金额格式
|
// 校验金额格式
|
||||||
checkMoney(rules, value, callback) {
|
checkMoney(rules, value, callback) {
|
||||||
@@ -247,23 +231,7 @@ export default {
|
|||||||
},
|
},
|
||||||
checkTaxMoney(rules, value, callback) {
|
checkTaxMoney(rules, value, callback) {
|
||||||
this.checkMoneyTemplate(rules, value, callback, '税额')
|
this.checkMoneyTemplate(rules, value, callback, '税额')
|
||||||
},
|
}
|
||||||
// 总金额做相关的处理
|
|
||||||
addZeroAmount(event) {
|
|
||||||
this.addZero(event)
|
|
||||||
let finalValue = event.target.value
|
|
||||||
// 计算未税金额和税额的值
|
|
||||||
let obj = this.calcOtherNumber(finalValue)
|
|
||||||
// console.log(event.target.value )
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(obj)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
calcOtherNumber(amount) {
|
|
||||||
let noTaxAmount = (amount / 1.06).toFixed(2) // 未税金额
|
|
||||||
let tax = (amount - noTaxAmount).toFixed(2) // 税额
|
|
||||||
return {noTaxAmount, tax}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
/*换入税率操作的相关方法*/
|
||||||
|
|
||||||
|
import {money} from '../../../../utils/validate'
|
||||||
|
|
||||||
|
export const TaxOperateMixin = {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
taxRate: 0.06, // 税率
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* 校验金额格式
|
||||||
|
* @param rules
|
||||||
|
* @param value
|
||||||
|
* @param callback
|
||||||
|
* @param name --校验字段的名字
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
checkMoneyTemplate(rules, value, callback, name) {
|
||||||
|
if (value) {
|
||||||
|
if (money(value)) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
||||||
|
}
|
||||||
|
callback(`请输入${name}`)
|
||||||
|
},
|
||||||
|
// 总金额做相关的处理
|
||||||
|
addZeroAmount(event) {
|
||||||
|
this.addZero(event)
|
||||||
|
let finalValue = event.target.value
|
||||||
|
// 计算未税金额和税额的值
|
||||||
|
let obj = this.calcOtherNumber(finalValue)
|
||||||
|
// console.log(event.target.value )
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue(obj)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 税额\未税金额 失去焦点的事件
|
||||||
|
* @param event --失去焦点的event ,存储当前input 的值
|
||||||
|
* @param keyName -- 想互斥 数字 对应的key值
|
||||||
|
* @param amountKeyName--当前dom 中 存储金额的字段的key值
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
addZeroTaxOrNo(event, keyName, amountKeyName) {
|
||||||
|
console.log('-----addZeroTaxOrNo---', event.target.value)
|
||||||
|
this.addZero(event)
|
||||||
|
let amount = this.form.getFieldValue(amountKeyName)
|
||||||
|
if(!amount) return
|
||||||
|
let finalValue = event.target.value
|
||||||
|
let otherVlaue = (amount - finalValue).toFixed(2)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue({[keyName]: otherVlaue})
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
// 通过金额 计算 税额、未税金额
|
||||||
|
calcOtherNumber(amount) {
|
||||||
|
let noTaxAmount = (amount / (1 + this.taxRate)).toFixed(2) // 未税金额
|
||||||
|
let tax = (amount - noTaxAmount).toFixed(2) // 税额
|
||||||
|
return {noTaxAmount, tax}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user