fix 工作组成员单位维护编辑联系人清空及邮寄联系人下拉数据错误的问题

This commit is contained in:
zhaoxiao
2023-03-01 10:02:11 +08:00
parent d3312ad960
commit 0f64066925
@@ -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">
@@ -36,12 +36,12 @@
</a-col> </a-col>
</a-row> </a-row>
<template <template
v-if="model.payWorkingGroupSubItemContactsList && model.payWorkingGroupSubItemContactsList.length > 0"> 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">
<select-contacts :selected-company="selectedCompany" <select-contacts :selected-company="selectedCompany"
:init-contacts="selectedContact1" :init-contacts="model.payWorkingGroupSubItemContactsList[index]"
:placeholder="`请选择企业联系人${index + 1}`" :placeholder="`请选择企业联系人${index + 1}`"
v-decorator="[`payWorkingGroupSubItemContactsList[${index}].contactsId`, {rules: [{ required: index === 0, validator: index === 0 ? validateContactRequired : validateContact }],validateTrigger: 'change'}]" v-decorator="[`payWorkingGroupSubItemContactsList[${index}].contactsId`, {rules: [{ required: index === 0, validator: index === 0 ? validateContactRequired : validateContact }],validateTrigger: 'change'}]"
:maxLength='50' :maxLength='50'
@@ -54,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>
@@ -165,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 }}
@@ -247,10 +247,10 @@
<!-- :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>
@@ -264,7 +264,7 @@
:maxLength='50' :maxLength='50'
@blur="addZero" @blur="addZero"
@change="changeReceivableAmount" @change="changeReceivableAmount"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
@@ -286,7 +286,7 @@
:maxLength='50' :maxLength='50'
@change="changeReceivableAmount" @change="changeReceivableAmount"
@blur="addZero" @blur="addZero"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
@@ -364,11 +364,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>
@@ -379,23 +379,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 JDictSelectTag from '@comp/dict/JDictSelectTag'
import {CalcAmountMixin} from '@/mixins/CalcAmountMixin' import { CalcAmountMixin } from '@/mixins/CalcAmountMixin'
export default { export default {
name: 'WorkingGroupMemberUnitModule', name: 'WorkingGroupMemberUnitModule',
components: {JUpload, CompanySelect, SelectContacts, SelectRevenueContract, JDictSelectTag}, components: { JUpload, CompanySelect, SelectContacts, SelectRevenueContract, JDictSelectTag },
mixins:[CalcAmountMixin], mixins: [CalcAmountMixin],
props: { props: {
// 默认来款方式(收入合同新增工作组项目,来款方式默认为2--合同) // 默认来款方式(收入合同新增工作组项目,来款方式默认为2--合同)
defaultChargeWay: { defaultChargeWay: {
@@ -451,64 +451,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: { taxRate: {
rules: [{ required: true,message: '请选择税率' }], rules: [{ required: true, message: '请选择税率' }],
validateTrigger: 'change',initialValue:'0.06' 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'
} }
}, },
@@ -534,7 +534,8 @@ export default {
// 默认的联系人数据 // 默认的联系人数据
defaultPayWorkingGroupSubItemContact: { defaultPayWorkingGroupSubItemContact: {
contactsId: undefined, contactsId: undefined,
remarks: null remarks: null,
name: null
} }
} }
}, },
@@ -605,18 +606,22 @@ export default {
// 是否存在从收入合同传入的签订联系人id // 是否存在从收入合同传入的签订联系人id
this.model.mailContactsId = this.signedContactId || this.model.mailContactsTemporaryId || undefined this.model.mailContactsId = this.signedContactId || this.model.mailContactsTemporaryId || undefined
if (this.model.id) { if (this.model.id) {
this.selectedContact1 = { // 传给组件的init-contact值,需要id和name两个属性
id: this.model.contactsTemporaryIdOne, this.model.payWorkingGroupSubItemContactsList && this.model.payWorkingGroupSubItemContactsList.forEach(item => {
name: this.model.contactsTemporaryNameOne item.name = item.contactsTemporaryName
} })
this.selectedContact2 = { // this.selectedContact1 = {
id: this.model.contactsTemporaryIdTwo, // id: this.model.contactsTemporaryIdOne,
name: this.model.contactsTemporaryNameTwo // name: this.model.contactsTemporaryNameOne
} // }
this.selectedContact3 = { // this.selectedContact2 = {
id: this.model.contactsTemporaryIdThree, // id: this.model.contactsTemporaryIdTwo,
name: this.model.contactsTemporaryNameThree // name: this.model.contactsTemporaryNameTwo
} // }
// this.selectedContact3 = {
// id: this.model.contactsTemporaryIdThree,
// name: this.model.contactsTemporaryNameThree
// }
this.selectedMailContact = { this.selectedMailContact = {
id: this.model.mailContactsTemporaryId, id: this.model.mailContactsTemporaryId,
name: this.model.mailContactsTemporaryName name: this.model.mailContactsTemporaryName
@@ -642,7 +647,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','taxRate','tax','noTaxAmount', '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() {
@@ -737,11 +742,11 @@ export default {
}) })
return return
} }
}else{ } else {
// 清空之前选中的收费通知号 // 清空之前选中的收费通知号
this.selectedChargeNotice = null this.selectedChargeNotice = null
// 清空未税金额 应收金额 税额 // 清空未税金额 应收金额 税额
this.form.resetFields(['tax','noTaxAmount','receivableAmount']) this.form.resetFields(['tax', 'noTaxAmount', 'receivableAmount'])
} }
this.chargeWayType = e.target.value this.chargeWayType = e.target.value
}, },
@@ -784,14 +789,24 @@ export default {
* @param value * @param value
*/ */
companyChange(value) { companyChange(value) {
// 当前选中的企业和之前选中的企业一致,就不修改了
if (this.selectedCompany && value && this.selectedCompany.id === value.id) {
return
}
this.selectedCompany = value this.selectedCompany = value
this.model.contactsIdOne = undefined // this.model.contactsIdOne = undefined
this.model.contactsIdTwo = undefined // this.model.contactsIdTwo = undefined
this.model.contactsIdThree = undefined // this.model.contactsIdThree = undefined
// 处理默认显示的三个企业联系人
this.model.payWorkingGroupSubItemContactsList = []
this.model.payWorkingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
this.model.payWorkingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
this.model.payWorkingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
this.model.mailContactsId = undefined this.model.mailContactsId = undefined
this.selectedMailContact = null
this.model.contractNum = undefined this.model.contractNum = undefined
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'contactsIdOne', 'contactsIdTwo', 'contactsIdThree', 'mailContactsId', 'contractNum')) this.form.setFieldsValue(pick(this.model, 'mailContactsId', 'contractNum', 'payWorkingGroupSubItemContactsList'))
}) })
}, },
/** /**
@@ -884,7 +899,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'])
}) })
}, },
@@ -938,7 +953,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 })
}) })
}, },
/** /**
@@ -954,7 +969,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 })
}) })
} }
} }