【修改】工作组新增成员增加税额 未税金额
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
/**
|
||||||
|
* @description 通过税率 计算未税金额 税额的混入
|
||||||
|
* @author fac
|
||||||
|
* */
|
||||||
|
|
||||||
|
export const CalcAmountMixin = {
|
||||||
|
methods:{
|
||||||
|
/**
|
||||||
|
* 改变应收金额 计算税额 未税金额
|
||||||
|
* */
|
||||||
|
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
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<j-modal
|
<j-modal
|
||||||
:title="title"
|
:title="title"
|
||||||
:width="width"
|
:width="width"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
:confirmLoading="confirmLoading"
|
:confirmLoading="confirmLoading"
|
||||||
switchFullscreen
|
switchFullscreen
|
||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
cancelText="关闭">
|
cancelText="关闭">
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form :form="form">
|
<a-form :form="form">
|
||||||
<a-row v-if="defaultChargeWay">
|
<a-row v-if="defaultChargeWay">
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<template v-if="model.payWorkingGroupSubItemContactsList && model.payWorkingGroupSubItemContactsList.length > 0">
|
<template
|
||||||
|
v-if="model.payWorkingGroupSubItemContactsList && model.payWorkingGroupSubItemContactsList.length > 0">
|
||||||
<a-row v-for="(item, index) in model.payWorkingGroupSubItemContactsList" :key="index + ''">
|
<a-row v-for="(item, index) in model.payWorkingGroupSubItemContactsList" :key="index + ''">
|
||||||
<a-col :xl="12" :sm="24">
|
<a-col :xl="12" :sm="24">
|
||||||
<a-form-item :label="`企业联系人${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="`企业联系人${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
@@ -53,10 +54,10 @@
|
|||||||
<!-- v-show="hasContactOne"-->
|
<!-- v-show="hasContactOne"-->
|
||||||
<a-form-item :label="`备注${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="`备注${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input
|
<a-input
|
||||||
:placeholder="`请输入备注${index + 1}`"
|
:placeholder="`请输入备注${index + 1}`"
|
||||||
v-decorator="[`payWorkingGroupSubItemContactsList[${index}].remarks`]"
|
v-decorator="[`payWorkingGroupSubItemContactsList[${index}].remarks`]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@change="e => {e.target.value = (e.target.value + '').trim()}">
|
@change="e => {e.target.value = (e.target.value + '').trim()}">
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -164,9 +165,9 @@
|
|||||||
<a-col :xl="12" :sm="24" v-if="chargeWayType === 3">
|
<a-col :xl="12" :sm="24" v-if="chargeWayType === 3">
|
||||||
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
class="charge-notice-no"
|
class="charge-notice-no"
|
||||||
v-decorator="['charge',validatorRules.charge]"
|
v-decorator="['charge',validatorRules.charge]"
|
||||||
@change="handleChargeNoticeChange">
|
@change="handleChargeNoticeChange">
|
||||||
<a-radio v-for="item in chargeNoticeList" :key="item.key" :value="item.key">
|
<a-radio v-for="item in chargeNoticeList" :key="item.key" :value="item.key">
|
||||||
<a-tooltip :title="item.label">
|
<a-tooltip :title="item.label">
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
@@ -176,21 +177,68 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
<template v-if="chargeWayType === 1 || chargeWayType === 2">
|
||||||
|
<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="['receivableAmount',validatorRules.receivableAmount]"
|
||||||
|
:maxLength='50'
|
||||||
|
@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>
|
||||||
|
</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">
|
||||||
|
<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>
|
||||||
|
|
||||||
|
</template>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :xl="12" :sm="24" v-if="chargeWayType === 1 || chargeWayType === 2">
|
|
||||||
<a-form-item label="应收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
||||||
<a-row :gutter="10">
|
|
||||||
<a-col :span="20">
|
|
||||||
<a-input placeholder="请输入应收金额"
|
|
||||||
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
|
|
||||||
:maxLength='50'
|
|
||||||
@blur="addZero"
|
|
||||||
@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-col :xl="12" :sm="24" v-if="chargeWayType === 2">
|
<a-col :xl="12" :sm="24" v-if="chargeWayType === 2">
|
||||||
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<!-- <a-input placeholder="请输入合同号"-->
|
<!-- <a-input placeholder="请输入合同号"-->
|
||||||
@@ -199,14 +247,15 @@
|
|||||||
<!-- :disabled="isContractNumDisabled || isAssociatedContract"-->
|
<!-- :disabled="isContractNumDisabled || isAssociatedContract"-->
|
||||||
<!-- @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>-->
|
<!-- @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>-->
|
||||||
<select-revenue-contract
|
<select-revenue-contract
|
||||||
placeholder="请选择合同号"
|
placeholder="请选择合同号"
|
||||||
:company="selectedCompany"
|
:company="selectedCompany"
|
||||||
:disabled="isContractNumDisabled || isAssociatedContract"
|
:disabled="isContractNumDisabled || isAssociatedContract"
|
||||||
v-decorator="['contractNum',validatorRules.contractNum]">
|
v-decorator="['contractNum',validatorRules.contractNum]">
|
||||||
</select-revenue-contract>
|
</select-revenue-contract>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
||||||
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'A'">
|
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'A'">
|
||||||
<a-col :xl="12" :sm="24">
|
<a-col :xl="12" :sm="24">
|
||||||
<a-form-item label="本年应收款A" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="本年应收款A" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
@@ -264,11 +313,11 @@
|
|||||||
<a-col>
|
<a-col>
|
||||||
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
placeholder="请输入备注"
|
placeholder="请输入备注"
|
||||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||||
v-decorator="['remarks']"
|
v-decorator="['remarks']"
|
||||||
:maxLength='200'
|
:maxLength='200'
|
||||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -279,20 +328,23 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import { httpAction } from '@api/manage'
|
import {httpAction} from '@api/manage'
|
||||||
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 SelectContacts from '@comp/company/SelectContacts'
|
import SelectContacts from '@comp/company/SelectContacts'
|
||||||
import { getWorkingGroupListByNotCompany } from '../../../api/incomePaymentsApi'
|
import {getWorkingGroupListByNotCompany} from '../../../api/incomePaymentsApi'
|
||||||
import { isRepeat } from '../../../utils/util'
|
// import { isRepeat } from '../../../utils/util'
|
||||||
import { addZero } from '../../../utils/util'
|
import {addZero} from '../../../utils/util'
|
||||||
import { money } from '../../../utils/validate'
|
import {money} from '../../../utils/validate'
|
||||||
import { checkAssociatedProject } from '../../../utils/projectCheck'
|
import {checkAssociatedProject} from '../../../utils/projectCheck'
|
||||||
import SelectRevenueContract from '../../../components/tools/SelectRevenueContract'
|
import SelectRevenueContract from '../../../components/tools/SelectRevenueContract'
|
||||||
|
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||||
|
import {CalcAmountMixin} from '@/mixins/CalcAmountMixin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'WorkingGroupMemberUnitModule',
|
name: 'WorkingGroupMemberUnitModule',
|
||||||
components: { JUpload, CompanySelect, SelectContacts, SelectRevenueContract },
|
components: {JUpload, CompanySelect, SelectContacts, SelectRevenueContract, JDictSelectTag},
|
||||||
|
mixins:[CalcAmountMixin],
|
||||||
props: {
|
props: {
|
||||||
// 默认来款方式(收入合同新增工作组项目,来款方式默认为2--合同)
|
// 默认来款方式(收入合同新增工作组项目,来款方式默认为2--合同)
|
||||||
defaultChargeWay: {
|
defaultChargeWay: {
|
||||||
@@ -348,60 +400,64 @@ export default {
|
|||||||
form: this.$form.createForm(this),
|
form: this.$form.createForm(this),
|
||||||
model: {},
|
model: {},
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 8 }
|
sm: {span: 8}
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 16 }
|
sm: {span: 16}
|
||||||
},
|
},
|
||||||
remarksLabelCol: {
|
remarksLabelCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 4 }
|
sm: {span: 4}
|
||||||
},
|
},
|
||||||
remarksWrapperCol: {
|
remarksWrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 20 }
|
sm: {span: 20}
|
||||||
},
|
},
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
workingGroupId: {
|
workingGroupId: {
|
||||||
rules: [{ required: true, message: '请选择工作组项目' }],
|
rules: [{required: true, message: '请选择工作组项目'}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
chargeCompany: {
|
chargeCompany: {
|
||||||
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'
|
||||||
|
},
|
||||||
contactsIdOne: {
|
contactsIdOne: {
|
||||||
rules: [{ required: true, message: '请选择企业联系人1' }],
|
rules: [{required: true, message: '请选择企业联系人1'}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
contactsRepeat: {
|
contactsRepeat: {
|
||||||
rules: [{ required: false, validator: this.validateContact }],
|
rules: [{required: false, validator: this.validateContact}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
mailContactsId: {
|
mailContactsId: {
|
||||||
rules: [{ required: true, message: '请选择邮寄联系人' }],
|
rules: [{required: true, message: '请选择邮寄联系人'}],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
chargeWay: {
|
chargeWay: {
|
||||||
rules: [{ required: true, message: '请选择来款方式' }],
|
rules: [{required: true, message: '请选择来款方式'}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
receivableAmount: {
|
receivableAmount: {
|
||||||
rules: [{ required: true, validator: this.checkMoney }],
|
rules: [{required: true, validator: this.checkMoney}],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
contractNum: {
|
contractNum: {
|
||||||
rules: [{ required: true, message: '请选择合同号' }],
|
rules: [{required: true, message: '请选择合同号'}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
charge: {
|
charge: {
|
||||||
rules: [{ required: true, message: '请输入收费通知号' }],
|
rules: [{required: true, message: '请输入收费通知号'}],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
needInvoice: {
|
needInvoice: {
|
||||||
rules: [{ required: true, message: '请选择发票类型' }],
|
rules: [{required: true, message: '请选择发票类型'}],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -535,7 +591,7 @@ export default {
|
|||||||
this.pickChargeNoticeType(record.charge, true)
|
this.pickChargeNoticeType(record.charge, true)
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'contactsIdOne', 'contactsIdTwo', 'contactsIdThree', 'mailContactsId', 'chargeWay', 'charge', 'receivableAmount', 'contractNum', 'receivableAmount', 'chargeNoticeId', 'needInvoice', 'remarks', 'remarksOne', 'remarksTwo', 'remarksThree', 'payWorkingGroupSubItemContactsList'))
|
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'contactsIdOne', 'contactsIdTwo', 'contactsIdThree', 'mailContactsId', 'chargeWay', 'charge', 'receivableAmount','taxRate','tax','noTaxAmount', 'contractNum', 'receivableAmount', 'chargeNoticeId', 'needInvoice', 'remarks', 'remarksOne', 'remarksTwo', 'remarksThree', 'payWorkingGroupSubItemContactsList'))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
@@ -771,7 +827,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue({ payWorkingGroupSubItemContactsList: formData })
|
this.form.setFieldsValue({payWorkingGroupSubItemContactsList: formData})
|
||||||
this.form.validateFields(['payWorkingGroupSubItemContactsList'])
|
this.form.validateFields(['payWorkingGroupSubItemContactsList'])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -825,7 +881,7 @@ export default {
|
|||||||
let formData = this.form.getFieldValue('payWorkingGroupSubItemContactsList')
|
let formData = this.form.getFieldValue('payWorkingGroupSubItemContactsList')
|
||||||
formData.splice(index + 1, 0, obj)
|
formData.splice(index + 1, 0, obj)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue({ payWorkingGroupSubItemContactsList: formData })
|
this.form.setFieldsValue({payWorkingGroupSubItemContactsList: formData})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -841,7 +897,7 @@ export default {
|
|||||||
let formData = this.form.getFieldValue('payWorkingGroupSubItemContactsList')
|
let formData = this.form.getFieldValue('payWorkingGroupSubItemContactsList')
|
||||||
formData.splice(index, 1)
|
formData.splice(index, 1)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue({ payWorkingGroupSubItemContactsList: formData })
|
this.form.setFieldsValue({payWorkingGroupSubItemContactsList: formData})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user