update 工作组-增加是否收费相关功能

This commit is contained in:
danshihao
2024-03-05 17:47:14 +08:00
parent 9785b08a13
commit 3bc7a8b081
4 changed files with 283 additions and 251 deletions
+5
View File
@@ -50,3 +50,8 @@ export const IncomeMethod = {
noticeOfCharge: { name: '收费通知', value: '3'},
}
// 是否
export const YesOrNoEnums = {
yes: { name: '是', value: '1'},
no: { name: '否', value: '0'},
}
@@ -213,6 +213,7 @@ import PreviewFile from '../../components/jero/PreviewFile'
import EmailErrorMsgModal from './modules/EmailErrorMsgModal'
import WorkGroupSetLabel from './modules/WorkGroupSetLabel'
import { formatMoney } from '../../utils/formatMoney'
import {YesOrNoEnums} from '@/enums/commonEnums'
// eslint-disable-next-line no-undef,no-unused-vars
const Base64 = require('js-base64').Base64
@@ -451,6 +452,8 @@ export default {
this.getChargeNoticeList()
this.$refs.modalForm.workingGroupId = this.workingGroupProjectId
this.$refs.modalForm.chargeNoticeList = this.chargeNoticeList
// 是否显示金额字段
this.$refs.modalForm.showPayField = (this.workingGroupDetail.payFlag + '') !== YesOrNoEnums.no.value
this.$refs.modalForm.add()
this.$refs.modalForm.title = '添加成员'
this.$refs.modalForm.disableSubmit = false
@@ -459,6 +462,8 @@ export default {
this.getChargeNoticeList()
this.$refs.modalForm.workingGroupId = this.workingGroupProjectId
this.$refs.modalForm.chargeNoticeList = this.chargeNoticeList
// 是否显示金额字段
this.$refs.modalForm.showPayField = (this.workingGroupDetail.payFlag + '') !== YesOrNoEnums.no.value
this.$refs.modalForm.edit(record)
this.$refs.modalForm.title = '编辑'
this.$refs.modalForm.disableSubmit = false
@@ -128,251 +128,253 @@
<!-- <a-button type="link" class="contact-btn del-btn">删除</a-button>-->
<!-- </a-col>-->
<!-- </a-row>-->
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="邮寄联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-contacts :selected-company="selectedCompany"
:init-contacts="selectedMailContact"
placeholder="请选择邮寄联系人"
v-decorator="['mailContactsId',validatorRules.mailContactsId]"
:maxLength='50'
ref="selectMailContacts">
</select-contacts>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span v-if="defaultChargeWay === 2">合同</span>
<a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]"
@change="handlechargeWayChange"
v-else
:disabled="isAssociatedContract">
<a-radio :value="1"></a-radio>
<a-radio :value="2">合同</a-radio>
<a-radio :value="3">收费通知</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<!-- 收入合同处新增工作组项目需要显示默认的来款用途在工作组新增的时候为后端写死-->
<a-col :xl="12" :sm="24" v-if="defaultChargeWay === 2">
<a-form-item label="来款用途" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['chargeUse', {initialValue: 1}]"
:triggerChange="true"
:disabled="true"
placeholder="请选择来款用途"
dictCode="payment_charge_use"/>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24" v-if="chargeWayType === 3">
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group
class="charge-notice-no"
v-decorator="['charge',validatorRules.charge]"
@change="handleChargeNoticeChange">
<a-radio v-for="item in chargeNoticeList" :key="item.key" :value="item.key">
<a-tooltip :title="item.label">
{{ item.label }}
</a-tooltip>
</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
</a-row>
<template v-if="chargeWayType === 1 || chargeWayType === 2">
<template v-if="showPayField">
<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-col :xl="12" :sm="24">
<a-form-item label="预估到账日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择预估到账日期"
style="width: 100%;"
v-decorator="['estimatedArrivalDate', validatorRules.estimatedArrivalDate]"
:trigger-change="true"
date-format="YYYY-MM-DD"
/>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24" v-if="chargeWayType === 2">
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- <a-input placeholder="请输入合同号"-->
<!-- v-decorator="['contractNum',validatorRules.contractNum]"-->
<!-- :maxLength='50'-->
<!-- :disabled="isContractNumDisabled || isAssociatedContract"-->
<!-- @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>-->
<select-revenue-contract
placeholder="请选择合同号"
:company="selectedCompany"
:disabled="isContractNumDisabled || isAssociatedContract"
v-decorator="['contractNum',validatorRules.contractNum]">
</select-revenue-contract>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'A'">
<a-col :xl="12" :sm="24">
<a-form-item label="本年应收款A" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入本年应收款A"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="changeReceivableAmount"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="收费通知A" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload :multiple="false"
:return-id="true"
bizPath="payment"
:number="1"
v-decorator="['chargeNoticeId']"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'B'">
<a-col :xl="12" :sm="24">
<a-form-item label="本年应收款B" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入本年应收款B"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@change="changeReceivableAmount"
@blur="addZero"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="收费通知B" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload :multiple="false"
:return-id="true"
bizPath="payment"
:number="1"
v-decorator="['chargeNoticeId']"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col>
</a-row>
<template v-if="chargeWayType === 3 && selectedChargeNotice">
<a-row>
<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-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-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="['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-col :xl="12" :sm="24">
<a-form-item label="需要发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['needInvoice',validatorRules.needInvoice]"
<a-form-item label="邮寄联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-contacts :selected-company="selectedCompany"
:init-contacts="selectedMailContact"
placeholder="请选择邮寄联系人"
v-decorator="['mailContactsId',validatorRules.mailContactsId]"
:maxLength='50'
:triggerChange="true"
placeholder="请选择发票类型"
dictCode="invoice_type"/>
</a-form-item>
</a-col>
</a-row>
ref="selectMailContacts">
</select-contacts>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span v-if="defaultChargeWay === 2">合同</span>
<a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]"
@change="handlechargeWayChange"
v-else
:disabled="isAssociatedContract">
<a-radio :value="1"></a-radio>
<a-radio :value="2">合同</a-radio>
<a-radio :value="3">收费通知</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<!-- 收入合同处新增工作组项目需要显示默认的来款用途在工作组新增的时候为后端写死-->
<a-col :xl="12" :sm="24" v-if="defaultChargeWay === 2">
<a-form-item label="来款用途" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['chargeUse', {initialValue: 1}]"
:triggerChange="true"
:disabled="true"
placeholder="请选择来款用途"
dictCode="payment_charge_use"/>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24" v-if="chargeWayType === 3">
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group
class="charge-notice-no"
v-decorator="['charge',validatorRules.charge]"
@change="handleChargeNoticeChange">
<a-radio v-for="item in chargeNoticeList" :key="item.key" :value="item.key">
<a-tooltip :title="item.label">
{{ item.label }}
</a-tooltip>
</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
</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-col :xl="12" :sm="24">
<a-form-item label="预估到账日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择预估到账日期"
style="width: 100%;"
v-decorator="['estimatedArrivalDate', validatorRules.estimatedArrivalDate]"
:trigger-change="true"
date-format="YYYY-MM-DD"
/>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24" v-if="chargeWayType === 2">
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- <a-input placeholder="请输入合同号"-->
<!-- v-decorator="['contractNum',validatorRules.contractNum]"-->
<!-- :maxLength='50'-->
<!-- :disabled="isContractNumDisabled || isAssociatedContract"-->
<!-- @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>-->
<select-revenue-contract
placeholder="请选择合同号"
:company="selectedCompany"
:disabled="isContractNumDisabled || isAssociatedContract"
v-decorator="['contractNum',validatorRules.contractNum]">
</select-revenue-contract>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'A'">
<a-col :xl="12" :sm="24">
<a-form-item label="本年应收款A" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入本年应收款A"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@blur="addZero"
@change="changeReceivableAmount"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="收费通知A" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload :multiple="false"
:return-id="true"
bizPath="payment"
:number="1"
v-decorator="['chargeNoticeId']"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col>
</a-row>
<a-row v-if="chargeWayType === 3 && selectedChargeNotice === 'B'">
<a-col :xl="12" :sm="24">
<a-form-item label="本年应收款B" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入本年应收款B"
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50'
@change="changeReceivableAmount"
@blur="addZero"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="收费通知B" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload :multiple="false"
:return-id="true"
bizPath="payment"
:number="1"
v-decorator="['chargeNoticeId']"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col>
</a-row>
<template v-if="chargeWayType === 3 && selectedChargeNotice">
<a-row>
<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-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-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="['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-col :xl="12" :sm="24">
<a-form-item label="需要发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['needInvoice',validatorRules.needInvoice]"
:maxLength='50'
:triggerChange="true"
placeholder="请选择发票类型"
dictCode="invoice_type"/>
</a-form-item>
</a-col>
</a-row>
</template>
<a-row>
<a-col>
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
@@ -545,6 +547,7 @@ export default {
// hasContactOne: false, // 是否选择联系人1
// hasContactTwo: false, // 是否选择联系人2
// hasContactThree: false, // 是否选择联系人3
showPayField: '', // 是否收费,控制收费字段是否显示
url: {
add: '/project/payWorkingGroupSubitem/add',
edit: '/project/payWorkingGroupSubitem/edit'
@@ -907,13 +910,17 @@ export default {
if (this.model.payWorkingGroupSubItemContactsList[index].contactsId !== value) {
formData[index].remarks = null
}
let mailContact = Object.values(this.form.getFieldValue(['mailContactsId']))[0]
// 邮寄联系人非undefined时赋值
if (!mailContact && index === 0) {
this.model.mailContactsId = value
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'mailContactsId'))
})
// 是否收费为否不显示邮寄联系人
let mailContactsId = this.form.getFieldValue(['mailContactsId'])
if (mailContactsId) {
let mailContact = Object.values(mailContactsId)[0]
// 邮寄联系人非undefined时赋值
if (!mailContact && index === 0) {
this.model.mailContactsId = value
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'mailContactsId'))
})
}
}
}
this.$nextTick(() => {
@@ -31,6 +31,12 @@
v-decorator="['year',validatorRules.year]"></j-year-date>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="是否收费" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag placeholder="请选择是否收费" dict-code="yn" :trigger-change="true" type="radio"
v-decorator="['payFlag',validatorRules.payFlag]"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
@@ -176,6 +182,7 @@ import SelectPrincipal from '@comp/company/SelectPrincipal'
import { isRepeat } from '../../../utils/util'
import { money } from '../../../utils/validate'
import { addZero } from '../../../utils/util'
import {YesOrNoEnums} from '@/enums/commonEnums'
export default {
name: 'WorkingGroupProjectModule',
@@ -213,6 +220,10 @@ export default {
rules: [{ required: true, message: '请选择运行年份' }],
validateTrigger: 'change'
},
payFlag: {
rules: [{ required: true, message: '请选择是否收费' }],
validateTrigger: 'change'
},
principalIdA: {
rules: [{ required: true, validator: this.validatePrincipal }],
validateTrigger: 'change'
@@ -245,9 +256,13 @@ export default {
this.model = Object.assign({}, record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'workingGroupProject', 'year', 'principalIdA', 'principalIdB', 'convokeNum', 'operationCycle', 'yearChargeA', 'chargeNoticeNoA', 'chargeNoticeAId', 'yearChargeB', 'chargeNoticeNoB', 'chargeNoticeBId', 'missionAndObjectives', 'remarks'))
this.form.setFieldsValue(pick(this.model, 'workingGroupProject', 'year', 'payFlag', 'principalIdA', 'principalIdB', 'convokeNum', 'operationCycle', 'yearChargeA', 'chargeNoticeNoA', 'chargeNoticeAId', 'yearChargeB', 'chargeNoticeNoB', 'chargeNoticeBId', 'missionAndObjectives', 'remarks'))
if (!this.model.id) {
this.form.setFieldsValue({'year': (new Date().getFullYear()).toString()})
this.form.setFieldsValue({
'year': (new Date().getFullYear()).toString(),
// 是否收费默认是
payFlag: YesOrNoEnums.yes.value
})
}
})
},