新增会议年份的默认 会议名称重复校验

This commit is contained in:
fengachen
2021-09-06 19:13:00 +08:00
parent 0d65eded92
commit 1acf07b140
5 changed files with 60 additions and 29 deletions
+2 -1
View File
@@ -16,7 +16,8 @@ const getters = {
enhanceJs:(state) => (code) => { enhanceJs:(state) => (code) => {
state.enhance.enhanceJs[code] = Vue.ls.get(ENHANCE_PRE+code) state.enhance.enhanceJs[code] = Vue.ls.get(ENHANCE_PRE+code)
return state.enhance.enhanceJs[code] return state.enhance.enhanceJs[code]
} },
currentYear: () => new Date().getFullYear()+''
} }
+22
View File
@@ -169,3 +169,25 @@ export async function checkMemberCompanyName(value, id, {err1 = memberCompanyNam
return err1 return err1
} }
} }
/**
* 会议名称唯一校验
*
* */
const meetingNameErrmsg = {
err1: '请输入会议名称'
}
export async function checkMeetingName(value, id, {err1 = meetingNameErrmsg.err1} = {}) {
if (value) {
const param = {
confusionCode: 'meeting_name',
fieldVal: value,
dataId: id
}
return duplicateCheck(param)
} else {
return err1
}
}
@@ -24,7 +24,7 @@
<a-input placeholder="请输入会议名称" <a-input placeholder="请输入会议名称"
:maxLength='50' :maxLength='50'
@change="event => event.target.value = event.target.value.trim()" @change="event => event.target.value = event.target.value.trim()"
v-decorator="['meetingName',validatorRules.meetingName]"></a-input> v-decorator="['meetingName',validateInviteCode.meetingName]"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -66,14 +66,14 @@
<a-col :xxl="8" :xl="12" :sm="24"> <a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date v-decorator="['particularYear',validatorRules.particularYear]" placeholder="请选择年份" <j-year-date v-decorator="['particularYear',validateInviteCode.particularYear]" placeholder="请选择年份"
style="width: 100%"></j-year-date> style="width: 100%"></j-year-date>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xxl="8" :xl="12" :sm="24"> <a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="预计参加人数" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="预计参加人数" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入预计参加人数" <a-input placeholder="请输入预计参加人数"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}" @change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
:maxLength='50' :maxLength='50'
v-decorator="[ 'estimatedNumber']"></a-input> v-decorator="[ 'estimatedNumber']"></a-input>
</a-form-item> </a-form-item>
@@ -328,6 +328,7 @@ import moment from 'moment'
import pick from 'lodash.pick' import pick from 'lodash.pick'
import meetingValidate from '@views/incomePayments/meetManage/meetingValidate' import meetingValidate from '@views/incomePayments/meetManage/meetingValidate'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle' import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import {checkMeetingName} from '@/utils/validateOnly'
export default { export default {
name: 'AddOrDetailMeet', name: 'AddOrDetailMeet',
@@ -381,7 +382,20 @@ export default {
{required: true, validator: this.validateCode}, {required: true, validator: this.validateCode},
], ],
validateTrigger: ['blur'] validateTrigger: ['blur']
} },
meetingName: {
rules: [
{required: true, validator: this.validaeMeetingName},
],
validateTrigger: ['blur']
},
particularYear: {
rules: [
{ required: true, message: '请选择年份!' },
],
validateTrigger:['blur','change'],
initialValue:this.$store.getters.currentYear
},
}, },
url: { url: {
add: '/meeting/payMeeting/add', add: '/meeting/payMeeting/add',
@@ -403,7 +417,7 @@ export default {
}else { }else {
return true return true
} }
} },
}, },
created() { created() {
this.pcaData = new AreaPca() this.pcaData = new AreaPca()
@@ -455,9 +469,9 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')) this.form.setFieldsValue(pick(this.model, 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone'))
// 如果是标协会议则回显 标协会议的字段 // 如果是标协会议则回显 标协会议的字段
// if(this.meetingType === '2'){ if(this.meetingType === '2'){
// this.form.setFieldsValue(pick(this.model,'signInTime', )) this.form.setFieldsValue(pick(this.model,'signInTime','tbMeetingType','meetingCostsVip','hotelName','hotelAddress' ))
// } }
// 如果是工作组会议 赋值工作组 // 如果是工作组会议 赋值工作组
if(this.meetingType === '1'){ if(this.meetingType === '1'){
this.form.setFieldsValue(pick(this.model,'workingGroupId', )) this.form.setFieldsValue(pick(this.model,'workingGroupId', ))
@@ -520,12 +534,6 @@ export default {
this.$router.go(-1) this.$router.go(-1)
}, },
/* /*
* 返回上级
* */
handleReback() {
this.$router.go(-1)
},
/*
* 监听会议类型变化 * 监听会议类型变化
* */ * */
changeMeetingType(val) { changeMeetingType(val) {
@@ -640,6 +648,18 @@ export default {
} }
}, },
/* /*
* 会议名称唯一校验
* */
validaeMeetingName(rule,value,callback){
checkMeetingName(value,this.model.id).then(res => {
if(res.success){
callback()
}else {
callback(res.code === 500 ? '会议名称已存在': res)
}
})
},
/*
* 获取所有的工作组 * 获取所有的工作组
* */ * */
getWorkSelectList() { getWorkSelectList() {
@@ -648,7 +668,7 @@ export default {
this.workGroupList = [...res.result] this.workGroupList = [...res.result]
} }
}) })
} },
} }
} }
</script> </script>
@@ -68,7 +68,7 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会议管理')">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"--> <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
<!-- @change="handleImportExcel">--> <!-- @change="handleImportExcel">-->
@@ -1,10 +1,4 @@
export default { export default {
meetingName: {
rules: [
{ required: true, message: '请输入会议名称!' },
],
validateTrigger: 'blur'
},
meetingType: { meetingType: {
rules: [ rules: [
{ required: true, message: '请选择会议类型!' }, { required: true, message: '请选择会议类型!' },
@@ -17,12 +11,6 @@ export default {
], ],
validateTrigger:['change'] validateTrigger:['change']
}, },
particularYear: {
rules: [
{ required: true, message: '请选择年份!' },
],
validateTrigger:['blur','change']
},
meetingContent:{ meetingContent:{
rules: [ rules: [
{ required: true, message: '请输入会议内容!' }, { required: true, message: '请输入会议内容!' },