【add】 国际研讨会 报名的时候增加 邀请码的校验规则

This commit is contained in:
fengchenchen
2022-06-21 16:50:07 +08:00
parent a43decdc2c
commit 3744ef7e5a
3 changed files with 129 additions and 14 deletions
+5 -1
View File
@@ -49,6 +49,9 @@ const vipMemberCost = '10000'
// 判断当前企业是否是内部企业
const judgeInternalEnterprise = (param) => getAction('/company/payCompanyManagement/getInternalEnterprise', param)
// 国际研讨会-判断当前的邀请码是否可用
const judgeMeetingCode = (param) => getAction('/meeting/payMeetingSituation/validInvitationCode', param)
export {
queryCommonProjectById,
getMeetInfoById,
@@ -72,5 +75,6 @@ export {
queryContactByName,
commonMemberCost,
vipMemberCost,
judgeInternalEnterprise
judgeInternalEnterprise,
judgeMeetingCode
}
+73
View File
@@ -0,0 +1,73 @@
<!--邀请码的组件将两个输入框 合并成一个-->
<template>
<div class="invite-code-item">
<a-input
placeholder="请输入上半部分"
:maxLength="50"
@change="inputChange"
@blur="inputBlurFunc"
v-model="code"
></a-input>
<span class="split-span"> - </span>
<a-input
placeholder="请输入下半部分"
:maxLength="50"
@change="inputChange"
@blur="inputBlurFunc"
v-model="randomCode"
></a-input>
</div>
</template>
<script>
export default {
name: 'InviteCode',
props: {
value: {
type: [String, Object],
required: false,
default: undefined
},
},
data() {
return {
code: '',
randomCode: ''
}
},
model: {
prop: 'value',
event: 'change'
},
methods: {
inputChange(event) {
event.target.value = event.target.value.trim()
},
inputBlurFunc() {
if(this.code && this.randomCode) {
this.$emit('change', `${this.code}-${this.randomCode}`)
this.$emit('change-value', `${this.code}-${this.randomCode}`)
} else {
this.$emit('change', undefined)
this.$emit('change-value', undefined)
}
}
}
}
</script>
<style scoped lang="less">
.invite-code-item{
display: flex;
align-items: center;
.ant-input{
flex: 1;
}
.split-span{
display: inline-block;
width: 20px;
text-align: center;
}
}
</style>
+51 -13
View File
@@ -163,12 +163,16 @@
<a-col :xxl="8" :xl="12" :sm="24" v-if="inviteCodeBool">
<a-form-item label="邀请码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
@change="event => event.target.value = event.target.value.trim()"
@blur="validateCode"
v-decorator="[ 'code',
validatorRules.code]"></a-input>
<!-- <div class="code-form-item">-->
<!-- <a-input-->
<!-- placeholder="请输入邀请码"-->
<!-- :maxLength="50"-->
<!-- @change="event => event.target.value = event.target.value.trim()"-->
<!-- @blur="validateCode"-->
<!-- v-decorator="[ 'code',validatorRules.code]"-->
<!-- ></a-input>-->
<!-- </div>-->
<invite-code v-decorator="[ 'code', validatorRules.code]" @change-value="validateCode"></invite-code>
</a-form-item>
</a-col>
</a-row>
@@ -227,7 +231,7 @@
</template>
<script>
import {getMeetInfoById,validateStandard, judgeInternalEnterprise} from '@api/incomePaymentsApi'
import {getMeetInfoById,validateStandard, judgeInternalEnterprise, judgeMeetingCode} from '@api/incomePaymentsApi'
import SelectContacts from '@comp/company/SelectContacts'
import CompanySelect from '@comp/company/CompanySelect'
import {httpAction} from '@api/manage'
@@ -238,6 +242,7 @@ import {getContactsById} from '@api/incomePaymentsApi'
import OtherMeetingForm from '@comp/signUpForm/OtherMeetingForm'
import SeminarVipForm from '@comp/signUpForm/SeminarVipForm'
import SeminarPartnerForm from '@comp/signUpForm/SeminarPartnerForm'
import InviteCode from './InviteCode'
export default {
@@ -250,7 +255,8 @@ export default {
SeminarVipForm,
PreviewFile,
JImageUpload,
CompanySelect
CompanySelect,
InviteCode
},
data() {
return {
@@ -295,8 +301,8 @@ export default {
validateTrigger: 'change'
},
code: {
rules: [{required: true, message: '请输入邀请码'}],
validateTrigger: 'blur'
rules: [{required: true, validator: this.checkCode}],
validateTrigger: 'change'
},
companyContactId: {
rules: [{required: true, message: '请选择参会人'}],
@@ -670,7 +676,8 @@ export default {
this.form.validateFields(['code'],(err) => {
if(!err){
// 获取邀请码
let code = this.form.getFieldValue('code')
let currentCode = this.form.getFieldValue('code')
let code = currentCode.substring(0, currentCode.indexOf('-'))
switch (code) {
// 合作伙伴
case this.currentMeetingInfo.cooperativeInvitationCode:
@@ -705,10 +712,11 @@ export default {
* 校验邀请码是否正确 给出提示
* */
validateCode() {
let code = this.form.getFieldValue('code')
if(code === undefined || code === ''){
let currentCode = this.form.getFieldValue('code')
if(currentCode === undefined || currentCode === ''){
return
}
let code = currentCode.substring(0, currentCode.indexOf('-'))
let flag = false
switch (code) {
// 合作伙伴
@@ -745,6 +753,22 @@ export default {
},
addContactsOk() {
this.$refs.selectContacts.getContactsList()
},
// 验证邀请码输入是否正确的方法
checkCode(rules, value, callback) {
if (value) {
let params = {
meetingId: this.currentMeetingInfo.id,
randomCode: value
}
judgeMeetingCode(params).then(res => {
res['success'] ? callback() : callback(res['message'])
}).catch(err => {
callback(err.message || err)
})
} else {
callback('请输入邀请码')
}
}
}
}
@@ -885,4 +909,18 @@ export default {
flex-shrink: 0;
}
}
// 邀请码内部的样式问题
.code-form-item{
display: flex;
align-items: center;
.ant-input{
flex: 1;
}
.split-span{
display: inline-block;
width: 20px;
text-align: center;
}
}
</style>