From b15285006ef937f67156fee4563285b383481d0f Mon Sep 17 00:00:00 2001
From: fengachen <373943794@qq.com>
Date: Tue, 8 Nov 2022 10:57:23 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E6=99=AE?=
=?UTF-8?q?=E9=80=9A=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=20=E7=A8=8E?=
=?UTF-8?q?=E7=8E=87=20=E7=A8=8E=E9=A2=9D=20=E6=9C=AA=E7=A8=8E=E9=87=91?=
=?UTF-8?q?=E9=A2=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ProjectDetailModal.vue | 20 +++
.../modules/GeneralProjectModule.vue | 138 +++++++++++++++++-
2 files changed, 153 insertions(+), 5 deletions(-)
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">
+
+ 元
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}">
元
+
+
+
+
+
+ {e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()}">
+
+ 元
+
+
+
+
+
+
+
-
-
合同
@@ -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()
+ }
+ },
}
}