【修改】普通项目增加 税率 税额 未税金额
This commit is contained in:
@@ -21,10 +21,30 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="12" class="detail-item">
|
||||||
|
<label>税率:</label>
|
||||||
|
<span><j-ellipsis :value="basicInfo.taxRate" :length="20"></j-ellipsis></span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12" class="detail-item">
|
||||||
|
<label>税额:</label>
|
||||||
|
<span><j-ellipsis :value="`${basicInfo.tax ? basicInfo.tax : '0.00'}元`"
|
||||||
|
:length="20"></j-ellipsis></span>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="12" class="detail-item">
|
||||||
|
<label>未税金额:</label>
|
||||||
|
<span><j-ellipsis :value="`${basicInfo.noTaxAmount ? basicInfo.noTaxAmount : '0.00'}元`"
|
||||||
|
:length="20"></j-ellipsis></span>
|
||||||
|
</a-col>
|
||||||
<a-col :span="12" class="detail-item">
|
<a-col :span="12" class="detail-item">
|
||||||
<label>是否需要发票:</label>
|
<label>是否需要发票:</label>
|
||||||
<span>{{ basicInfo.needInvoice_dictText }}</span>
|
<span>{{ basicInfo.needInvoice_dictText }}</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-row :gutter="24">
|
||||||
<a-col :span="12" class="detail-item">
|
<a-col :span="12" class="detail-item">
|
||||||
<label>是否打包:</label>
|
<label>是否打包:</label>
|
||||||
<span>{{ basicInfo.pack_dictText }}</span>
|
<span>{{ basicInfo.pack_dictText }}</span>
|
||||||
|
|||||||
@@ -90,12 +90,58 @@
|
|||||||
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
|
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@blur="addZero"
|
@blur="addZero"
|
||||||
|
@change="changeReceivableAmount"></a-input>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="1">元</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
<a-col :xl="12" :sm="24">
|
||||||
|
<a-form-item label="税率" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<j-dict-select-tag @change="changeRate" placeholder="请选择税率" dict-code="rate" :trigger-change="true" v-decorator="['taxRate',validatorRules.taxRate]"></j-dict-select-tag>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
</a-row>
|
||||||
|
<a-row>
|
||||||
|
<a-col :xl="12" :sm="24">
|
||||||
|
<a-form-item label="税额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-row :gutter="10">
|
||||||
|
<a-col :span="20">
|
||||||
|
<a-input placeholder="请输入税额"
|
||||||
|
v-decorator="['tax',validatorRules.tax]"
|
||||||
|
:maxLength='50'
|
||||||
|
@blur="addZero"
|
||||||
|
read-only
|
||||||
|
disabled
|
||||||
@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-col>
|
</a-col>
|
||||||
<a-col :span="1">元</a-col>
|
<a-col :span="1">元</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
|
<a-col :xl="12" :sm="24">
|
||||||
|
<a-form-item label="未税金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-row :gutter="10">
|
||||||
|
<a-col :span="20">
|
||||||
|
<a-input placeholder="请输入未税金额"
|
||||||
|
v-decorator="['noTaxAmount',validatorRules.noTaxAmount]"
|
||||||
|
:maxLength='50'
|
||||||
|
disabled
|
||||||
|
@blur="addZero"
|
||||||
|
read-only
|
||||||
|
@change="(e) => {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}"></a-input>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="1">元</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-row>
|
||||||
<a-col :xl="12" :sm="24">
|
<a-col :xl="12" :sm="24">
|
||||||
<a-form-item label="需要发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="需要发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<j-dict-select-tag v-decorator="['needInvoice',validatorRules.needInvoice]"
|
<j-dict-select-tag v-decorator="['needInvoice',validatorRules.needInvoice]"
|
||||||
@@ -105,8 +151,6 @@
|
|||||||
dictCode="invoice_type"/>
|
dictCode="invoice_type"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
|
||||||
<a-row>
|
|
||||||
<a-col :xl="12" :sm="24">
|
<a-col :xl="12" :sm="24">
|
||||||
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<span v-if="defaultChargeWay === 2 && chargeWayType === 2">合同</span>
|
<span v-if="defaultChargeWay === 2 && chargeWayType === 2">合同</span>
|
||||||
@@ -188,6 +232,7 @@
|
|||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import { httpAction } from '@api/manage'
|
import { httpAction } from '@api/manage'
|
||||||
import JYearDate from '@comp/jero/JYearDate'
|
import JYearDate from '@comp/jero/JYearDate'
|
||||||
|
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||||
import JUpload from '@comp/jero/JUpload'
|
import JUpload from '@comp/jero/JUpload'
|
||||||
import CompanySelect from '@comp/company/CompanySelect'
|
import CompanySelect from '@comp/company/CompanySelect'
|
||||||
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
||||||
@@ -201,7 +246,7 @@ import SelectRevenueContract from '../../../components/tools/SelectRevenueContra
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'GeneralProjectModule',
|
name: 'GeneralProjectModule',
|
||||||
components: { JYearDate, JUpload, CompanySelect, SelectPrincipal, SelectContacts, SelectRevenueContract },
|
components: { JYearDate, JUpload, CompanySelect, SelectPrincipal, SelectContacts, SelectRevenueContract ,JDictSelectTag},
|
||||||
props: {
|
props: {
|
||||||
// 收入合同关联时传入的企业信息,不可修改
|
// 收入合同关联时传入的企业信息,不可修改
|
||||||
defaultChargeCompany: {
|
defaultChargeCompany: {
|
||||||
@@ -294,6 +339,10 @@ export default {
|
|||||||
rules: [{ required: true, validator: this.checkCompany }],
|
rules: [{ required: true, validator: this.checkCompany }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
|
taxRate: {
|
||||||
|
rules: [{ required: true,message: '请选择税率' }],
|
||||||
|
validateTrigger: 'change',initialValue:'0.06'
|
||||||
|
},
|
||||||
chargeUse: {
|
chargeUse: {
|
||||||
rules: [{ required: true, message: '请选择来款用途' }],
|
rules: [{ required: true, message: '请选择来款用途' }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
@@ -310,6 +359,15 @@ export default {
|
|||||||
rules: [{ required: true, validator: this.checkMoney }],
|
rules: [{ required: true, validator: this.checkMoney }],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
|
tax: {
|
||||||
|
rules: [{ required: false, validator: this.checkTaxMoney }],
|
||||||
|
validateTrigger: 'blur'
|
||||||
|
},
|
||||||
|
noTaxAmount: {
|
||||||
|
rules: [{ required: false, validator: this.checkNoTaxMoney}],
|
||||||
|
validateTrigger: 'blur'
|
||||||
|
},
|
||||||
|
|
||||||
needInvoice: {
|
needInvoice: {
|
||||||
rules: [{ required: true, message: '请选择发票类型' }],
|
rules: [{ required: true, message: '请选择发票类型' }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
@@ -403,7 +461,7 @@ export default {
|
|||||||
this.chargeWayType = record.chargeWay
|
this.chargeWayType = record.chargeWay
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'chargeProject', 'year', 'principalId', 'chargeCompany', 'chargeUse', 'contactsId', 'mailContactsId', 'receivableAmount', 'needInvoice', 'chargeWay', 'contractNum', 'chargeNoticeNo', 'chargeNoticeId', 'files', 'remarks'))
|
this.form.setFieldsValue(pick(this.model, 'chargeProject', 'year', 'principalId', 'chargeCompany', 'chargeUse', 'contactsId', 'mailContactsId', 'receivableAmount','taxRate','tax','noTaxAmount', 'needInvoice', 'chargeWay', 'contractNum', 'chargeNoticeNo', 'chargeNoticeId', 'files', 'remarks'))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
@@ -467,6 +525,43 @@ export default {
|
|||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.close()
|
this.close()
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 改变应收金额 计算税额 未税金额
|
||||||
|
* */
|
||||||
|
changeReceivableAmount(e){
|
||||||
|
e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.calcAmount()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 改变税率计算税额 应收金额
|
||||||
|
* */
|
||||||
|
changeRate(){
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.calcAmount()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 根据应收金额、税率计算税额 、未税金额
|
||||||
|
* */
|
||||||
|
calcAmount(){
|
||||||
|
// 获取应收金额
|
||||||
|
let ysje = Number(this.form.getFieldValue('receivableAmount'))
|
||||||
|
// 没有输入应收金额 不进行计算
|
||||||
|
if(!ysje) return
|
||||||
|
// 获取税率
|
||||||
|
let rate = this.form.getFieldValue('taxRate') * 1
|
||||||
|
// 计算未税金额 未税金额 = 应收金额 * (税率 + 1)
|
||||||
|
let wsje = (ysje / (rate + 1)).toFixed(2)
|
||||||
|
// 计算税额 税额 = 应收金额 - 未税金额 保留两位小数
|
||||||
|
let se = (ysje - Number(wsje)).toFixed(2)
|
||||||
|
// 表单赋值
|
||||||
|
this.form.setFieldsValue({
|
||||||
|
'tax':se,
|
||||||
|
'noTaxAmount':wsje
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 来款方式变化
|
* 来款方式变化
|
||||||
* @param e
|
* @param e
|
||||||
@@ -538,7 +633,40 @@ export default {
|
|||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
||||||
}
|
}
|
||||||
callback('请输入应收金额')
|
callback('请输入应收金额')
|
||||||
}
|
},
|
||||||
|
/**
|
||||||
|
* 校验税额金额格式
|
||||||
|
* @param rules
|
||||||
|
* @param value
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
checkTaxMoney(rules, value, callback) {
|
||||||
|
console.log(value, rules.field)
|
||||||
|
if (value) {
|
||||||
|
if (money(value)) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
||||||
|
}else{
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 校验未税金额金额格式
|
||||||
|
* @param rules
|
||||||
|
* @param value
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
checkNoTaxMoney(rules, value, callback) {
|
||||||
|
if (value) {
|
||||||
|
if (money(value)) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
||||||
|
}else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user