[update] 工作组成员--企业联系人验重
This commit is contained in:
@@ -8,186 +8,191 @@
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-form :form="form">
|
||||
<a-row v-if="defaultChargeWay">
|
||||
<a-col>
|
||||
<a-form-item label="工作组项目" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-select placeholder="请选择工作组项目"
|
||||
v-decorator="['workingGroupId',validatorRules.workingGroupId]"
|
||||
:maxLength='50'>
|
||||
<a-select-option v-for="item in workingGroupList" :key="item.id" :value="item.id">{{ item.workingGroupProject }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<company-select placeholder="请选择成员单位"
|
||||
v-decorator="['chargeCompany',validatorRules.chargeCompany]"
|
||||
:disabled="disabledChargeCompany"
|
||||
@change="companyChange"
|
||||
:maxLength='50'>
|
||||
</company-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人1" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact1"
|
||||
placeholder="请选择企业联系人1"
|
||||
v-decorator="['contactsIdOne',validatorRules.contactsIdOne]"
|
||||
:maxLength='50'
|
||||
ref="selectContacts1"
|
||||
@ok="addContactsOneOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人2" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact2"
|
||||
placeholder="请选择企业联系人2"
|
||||
v-decorator="['contactsIdTwo']"
|
||||
:maxLength='50'
|
||||
ref="selectContacts2"
|
||||
@ok="addContactsTwoOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人3" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact3"
|
||||
placeholder="请选择企业联系人3"
|
||||
v-decorator="['contactsIdThree']"
|
||||
:maxLength='50'
|
||||
ref="selectContacts3"
|
||||
@ok="addContactsThreeOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<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"
|
||||
@ok="addMailContactsOk"></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>
|
||||
<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="chargeWayType === 3">
|
||||
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['chargeNoticeNo',validatorRules.chargeNoticeNo]"
|
||||
@change="handleChargeNoticeChange" :options="chargeNoticeList">
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row v-if="chargeWayType === 2">
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="应收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-col :span="20">
|
||||
<a-input placeholder="请输入应收金额"
|
||||
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
|
||||
:maxLength='50'
|
||||
@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-input placeholder="请输入合同号"
|
||||
v-decorator="['contractNum',validatorRules.contractNum]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</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'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="收费通知A" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="pdf"
|
||||
file-type-error-message="请上传收费通知A"
|
||||
:multiple="false"
|
||||
:return-id="true"
|
||||
bizPath="payment"
|
||||
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="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="收费通知B" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="pdf"
|
||||
file-type-error-message="请上传收费通知B"
|
||||
:multiple="false"
|
||||
:return-id="true"
|
||||
bizPath="payment"
|
||||
v-decorator="['chargeNoticeId']"
|
||||
:trigger-change="true"></j-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<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-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<a-row v-if="defaultChargeWay">
|
||||
<a-col>
|
||||
<a-form-item label="工作组项目" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-select placeholder="请选择工作组项目"
|
||||
v-decorator="['workingGroupId',validatorRules.workingGroupId]"
|
||||
:maxLength='50'>
|
||||
<a-select-option v-for="item in workingGroupList" :key="item.id" :value="item.id">
|
||||
{{ item.workingGroupProject }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<company-select placeholder="请选择成员单位"
|
||||
v-decorator="['chargeCompany',validatorRules.chargeCompany]"
|
||||
:disabled="disabledChargeCompany"
|
||||
@change="companyChange"
|
||||
:maxLength='50'>
|
||||
</company-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人1" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact1"
|
||||
placeholder="请选择企业联系人1"
|
||||
v-decorator="['contactsIdOne',validatorRules.contactsIdOne]"
|
||||
:maxLength='50'
|
||||
:triggerChange="true"
|
||||
placeholder="请选择发票类型"
|
||||
dictCode="invoice_type"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入备注"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
v-decorator="['remarks']"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
ref="selectContacts1"
|
||||
@ok="addContactsOneOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人2" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact2"
|
||||
placeholder="请选择企业联系人2"
|
||||
v-decorator="['contactsIdTwo',validatorRules.contactsRepeat]"
|
||||
:maxLength='50'
|
||||
ref="selectContacts2"
|
||||
@ok="addContactsTwoOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="企业联系人3" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact3"
|
||||
placeholder="请选择企业联系人3"
|
||||
v-decorator="['contactsIdThree',validatorRules.contactsRepeat]"
|
||||
:maxLength='50'
|
||||
ref="selectContacts3"
|
||||
@ok="addContactsThreeOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<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"
|
||||
@ok="addMailContactsOk"></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>
|
||||
<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="chargeWayType === 3">
|
||||
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['chargeNoticeNo',validatorRules.chargeNoticeNo]"
|
||||
@change="handleChargeNoticeChange" :options="chargeNoticeList">
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row v-if="chargeWayType === 2">
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="应收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-col :span="20">
|
||||
<a-input placeholder="请输入应收金额"
|
||||
v-decorator="['receivableAmount',validatorRules.receivableAmount]"
|
||||
:maxLength='50'
|
||||
@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-input placeholder="请输入合同号"
|
||||
v-decorator="['contractNum',validatorRules.contractNum]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</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'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="收费通知A" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="pdf"
|
||||
file-type-error-message="请上传收费通知A"
|
||||
:multiple="false"
|
||||
:return-id="true"
|
||||
bizPath="payment"
|
||||
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="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="收费通知B" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="pdf"
|
||||
file-type-error-message="请上传收费通知B"
|
||||
:multiple="false"
|
||||
:return-id="true"
|
||||
bizPath="payment"
|
||||
v-decorator="['chargeNoticeId']"
|
||||
:trigger-change="true"></j-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<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>
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入备注"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
v-decorator="['remarks']"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
@@ -198,6 +203,7 @@ import JUpload from '@comp/jero/JUpload'
|
||||
import CompanySelect from '@comp/company/CompanySelect'
|
||||
import SelectContacts from '@comp/company/SelectContacts'
|
||||
import { getWorkingGroupListByNotCompany } from '../../../api/incomePaymentsApi'
|
||||
import { isRepeat } from '../../../utils/util'
|
||||
|
||||
export default {
|
||||
name: 'WorkingGroupMemberUnitModule',
|
||||
@@ -254,13 +260,17 @@ export default {
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
chargeCompany: {
|
||||
rules: [{ required: true, message: '请选择成员单位' }],
|
||||
rules: [{ required: true, validator: this.checkCompany }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
contactsIdOne: {
|
||||
rules: [{ required: true, message: '请选择企业联系人1' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
contactsRepeat: {
|
||||
rules: [{ required: false, validator: this.validateContact }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
mailContactsId: {
|
||||
rules: [{ required: true, message: '请选择邮寄联系人' }],
|
||||
validateTrigger: 'blur'
|
||||
@@ -379,6 +389,7 @@ export default {
|
||||
// 触发表单验证
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
that.confirmLoading = true
|
||||
// 收入合同新建项目手动赋值
|
||||
if (this.defaultChargeWay === 2) {
|
||||
values.chargeWay = 2
|
||||
@@ -486,30 +497,48 @@ export default {
|
||||
callback()
|
||||
return
|
||||
}
|
||||
callback('请选择企业')
|
||||
callback('请选择成员单位')
|
||||
},
|
||||
/**
|
||||
* 在新增成功后重新获取联系人列表
|
||||
*/
|
||||
addContactsOneOk(){
|
||||
addContactsOneOk() {
|
||||
this.$refs.selectContacts2.getContactsList()
|
||||
this.$refs.selectContacts3.getContactsList()
|
||||
this.$refs.selectMailContacts.getContactsList()
|
||||
},
|
||||
addContactsTwoOk(){
|
||||
addContactsTwoOk() {
|
||||
this.$refs.selectContacts1.getContactsList()
|
||||
this.$refs.selectContacts3.getContactsList()
|
||||
this.$refs.selectMailContacts.getContactsList()
|
||||
},
|
||||
addContactsThreeOk(){
|
||||
addContactsThreeOk() {
|
||||
this.$refs.selectContacts1.getContactsList()
|
||||
this.$refs.selectContacts2.getContactsList()
|
||||
this.$refs.selectMailContacts.getContactsList()
|
||||
},
|
||||
addMailContactsOk(){
|
||||
addMailContactsOk() {
|
||||
this.$refs.selectContacts1.getContactsList()
|
||||
this.$refs.selectContacts2.getContactsList()
|
||||
this.$refs.selectContacts3.getContactsList()
|
||||
},
|
||||
/**
|
||||
* 校验企业联系人是否重复
|
||||
* @param rule
|
||||
* @param value
|
||||
* @param callback
|
||||
*/
|
||||
validateContact(rule, value, callback) {
|
||||
const contactObj = this.form.getFieldsValue(['contactsIdOne', 'contactsIdTwo', 'contactsIdThree'])
|
||||
const contactArr = Object.values(contactObj)
|
||||
contactArr.filter(tt => tt !== undefined)
|
||||
console.log(contactArr)
|
||||
if (isRepeat(contactArr)) {
|
||||
callback('请选择不同的企业联系人')
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user