diff --git a/src/components/ProjectDetailModal.vue b/src/components/ProjectDetailModal.vue index f60bb8a..8593fda 100644 --- a/src/components/ProjectDetailModal.vue +++ b/src/components/ProjectDetailModal.vue @@ -21,10 +21,30 @@ + + + + + + + + + + + + + + + {{ basicInfo.needInvoice_dictText }} + + + {{ basicInfo.pack_dictText }} diff --git a/src/views/projectManagement/modules/GeneralProjectModule.vue b/src/views/projectManagement/modules/GeneralProjectModule.vue index 331294b..d3d0f9f 100644 --- a/src/views/projectManagement/modules/GeneralProjectModule.vue +++ b/src/views/projectManagement/modules/GeneralProjectModule.vue @@ -90,12 +90,58 @@ v-decorator="['receivableAmount',validatorRules.receivableAmount]" :maxLength='50' @blur="addZero" + @change="changeReceivableAmount"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - 合同 @@ -188,6 +232,7 @@ import pick from 'lodash.pick' import { httpAction } from '@api/manage' import JYearDate from '@comp/jero/JYearDate' +import JDictSelectTag from '@comp/dict/JDictSelectTag' import JUpload from '@comp/jero/JUpload' import CompanySelect from '@comp/company/CompanySelect' import SelectPrincipal from '@comp/company/SelectPrincipal' @@ -201,7 +246,7 @@ import SelectRevenueContract from '../../../components/tools/SelectRevenueContra export default { name: 'GeneralProjectModule', - components: { JYearDate, JUpload, CompanySelect, SelectPrincipal, SelectContacts, SelectRevenueContract }, + components: { JYearDate, JUpload, CompanySelect, SelectPrincipal, SelectContacts, SelectRevenueContract ,JDictSelectTag}, props: { // 收入合同关联时传入的企业信息,不可修改 defaultChargeCompany: { @@ -294,6 +339,10 @@ export default { rules: [{ required: true, validator: this.checkCompany }], validateTrigger: 'change' }, + taxRate: { + rules: [{ required: true,message: '请选择税率' }], + validateTrigger: 'change',initialValue:'0.06' + }, chargeUse: { rules: [{ required: true, message: '请选择来款用途' }], validateTrigger: 'change' @@ -310,6 +359,15 @@ export default { rules: [{ required: true, validator: this.checkMoney }], validateTrigger: 'blur' }, + tax: { + rules: [{ required: false, validator: this.checkTaxMoney }], + validateTrigger: 'blur' + }, + noTaxAmount: { + rules: [{ required: false, validator: this.checkNoTaxMoney}], + validateTrigger: 'blur' + }, + needInvoice: { rules: [{ required: true, message: '请选择发票类型' }], validateTrigger: 'change' @@ -403,7 +461,7 @@ export default { this.chargeWayType = record.chargeWay this.visible = true 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() { @@ -467,6 +525,43 @@ export default { handleCancel() { 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 @@ -538,7 +633,40 @@ export default { callback('请输入合法的金额数字,最多2位小数,10位整数') } 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() + } + }, } }