【开发】新增会议 增加会议联系人
This commit is contained in:
@@ -23,6 +23,10 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
default: undefined
|
default: undefined
|
||||||
|
},
|
||||||
|
index:{
|
||||||
|
type:[String,Number],
|
||||||
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -239,6 +239,43 @@
|
|||||||
v-decorator="['directorPhone']"></a-input>
|
v-decorator="['directorPhone']"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<section>
|
||||||
|
<a-row :gutter="24" v-for="(item, index) in model.meetingContactsList" :key="index">
|
||||||
|
<a-col :xxl="8" :xl="10" :md="12">
|
||||||
|
<a-form-item label="会议联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
|
||||||
|
<!-- @change="selectPerson"-->
|
||||||
|
<!-- 绑定 index 是因为 没法通过 selectMeetingContact 方法 去传递这个索引 只能绑定在组件上 通过change 方法的第二个参数 去获取这个 index 然后去做对应的表单复赋值 -->
|
||||||
|
<select-principal placeholder="请选择会议联系人"
|
||||||
|
:index="index"
|
||||||
|
@change="selectMeetingContact"
|
||||||
|
v-decorator="['meetingContactsList['+index+'].meetingContactsId',validateInviteCode.meetingContactsId]">
|
||||||
|
</select-principal>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xxl="8" :xl="10" :md="12">
|
||||||
|
<a-form-item label="联系人手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input
|
||||||
|
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
|
||||||
|
:maxLength="11"
|
||||||
|
disabled
|
||||||
|
v-decorator="['meetingContactsList['+index+'].meetingContactsPhone']"
|
||||||
|
placeholder="请输入联系人手机号"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<!-- style="transform: translateX(-130px);"-->
|
||||||
|
<a-col :xxl="2" :xl="4" :sm="6">
|
||||||
|
<a-form-item>
|
||||||
|
<a-button icon="plus" @click="addMeetingContacts"></a-button>
|
||||||
|
<a-button icon="minus" @click="removeMeetingContacts(index)" style="margin-left: 8px;"></a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24">
|
<a-col :xxl="8" :xl="12" :sm="24">
|
||||||
@@ -354,6 +391,7 @@ import {checkMeetingName} from '@/utils/validateOnly'
|
|||||||
import {addZero} from '@/utils/util'
|
import {addZero} from '@/utils/util'
|
||||||
import {money, phoneReg} from '@/utils/validate'
|
import {money, phoneReg} from '@/utils/validate'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddOrDetailMeet',
|
name: 'AddOrDetailMeet',
|
||||||
components: {
|
components: {
|
||||||
@@ -406,6 +444,12 @@ export default {
|
|||||||
],
|
],
|
||||||
validateTrigger: ['blur']
|
validateTrigger: ['blur']
|
||||||
},
|
},
|
||||||
|
meetingContactsId: {
|
||||||
|
rules: [
|
||||||
|
{required: true, validator: this.validateMeetingContact}
|
||||||
|
],
|
||||||
|
validateTrigger: ['change']
|
||||||
|
},
|
||||||
meetingName: {
|
meetingName: {
|
||||||
rules: [
|
rules: [
|
||||||
{required: true, validator: this.validaeMeetingName}
|
{required: true, validator: this.validaeMeetingName}
|
||||||
@@ -431,13 +475,14 @@ export default {
|
|||||||
],
|
],
|
||||||
validateTrigger: ['blur']
|
validateTrigger: ['blur']
|
||||||
},
|
},
|
||||||
directorPhone:{
|
directorPhone: {
|
||||||
rules: [
|
rules: [
|
||||||
{required: true, validator: this.validateDirectorPhone}
|
{required: true, validator: this.validateDirectorPhone}
|
||||||
],
|
],
|
||||||
validateTrigger: ['blur']
|
validateTrigger: ['blur']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
userList: [],// 会议联系人下拉框集合
|
||||||
url: {
|
url: {
|
||||||
add: '/meeting/payMeeting/add',
|
add: '/meeting/payMeeting/add',
|
||||||
edit: '/meeting/payMeeting/edit'
|
edit: '/meeting/payMeeting/edit'
|
||||||
@@ -531,6 +576,11 @@ export default {
|
|||||||
hotelContacts: '',
|
hotelContacts: '',
|
||||||
hotelContactsPhone: ''
|
hotelContactsPhone: ''
|
||||||
}]
|
}]
|
||||||
|
// 会议联系人
|
||||||
|
this.model.meetingContactsList = [{
|
||||||
|
meetingContactsId: '',
|
||||||
|
meetingContactsPhone: ''
|
||||||
|
}]
|
||||||
// 新增取路由参数
|
// 新增取路由参数
|
||||||
this.meetingType = this.$route.query.meetingType
|
this.meetingType = this.$route.query.meetingType
|
||||||
// 新增根据路由参数 会议类型更换不同的接口
|
// 新增根据路由参数 会议类型更换不同的接口
|
||||||
@@ -553,12 +603,12 @@ export default {
|
|||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// 加定时器是因为有可能赋值不成功
|
// 加定时器是因为有可能赋值不成功
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'notice','hotelContactsList','hotelName', 'hotelAddress' ,'paymentQrCode', 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')), 200
|
this.form.setFieldsValue(pick(this.model, 'notice', 'hotelContactsList', 'hotelName', 'hotelAddress', 'paymentQrCode', 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')), 200
|
||||||
})
|
})
|
||||||
// 如果是标协会议则回显 标协会议的字段
|
// 如果是标协会议则回显 标协会议的字段
|
||||||
if (this.meetingType === '2') {
|
if (this.meetingType === '2') {
|
||||||
console.log('this.model', this.model)
|
console.log('this.model', this.model)
|
||||||
this.form.setFieldsValue(pick(this.model, 'signInTime', 'tbMeetingType', 'meetingCostsVip' ))
|
this.form.setFieldsValue(pick(this.model, 'signInTime', 'tbMeetingType', 'meetingCostsVip'))
|
||||||
}
|
}
|
||||||
// 如果是工作组会议 赋值工作组
|
// 如果是工作组会议 赋值工作组
|
||||||
if (this.meetingType === '1') {
|
if (this.meetingType === '1') {
|
||||||
@@ -733,6 +783,82 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
|
* 添加会议联系人
|
||||||
|
* */
|
||||||
|
addMeetingContacts(index) {
|
||||||
|
if (this.model.meetingContactsList.length >= 5) {
|
||||||
|
this.$message.warning('最多添加5个酒店联系人')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const {form} = this
|
||||||
|
const obj = {
|
||||||
|
meetingContactsId: '',
|
||||||
|
meetingContactsPhone: ''
|
||||||
|
}
|
||||||
|
const keys = form.getFieldValue('meetingContactsList')
|
||||||
|
// 增加数据后重新赋值
|
||||||
|
this.model.meetingContactsList.splice(index + 1, 0, obj)
|
||||||
|
// keys.splice(index , 0, obj)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
form.setFieldsValue({
|
||||||
|
meetingContactsList: keys
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 删除会议联系人
|
||||||
|
* */
|
||||||
|
removeMeetingContacts(k) {
|
||||||
|
// 如果长度是1的话则不进行删除操作
|
||||||
|
if (this.model.meetingContactsList.length === 1) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const {form} = this
|
||||||
|
// // can use data-binding to get
|
||||||
|
const meetingContactsList = form.getFieldValue('meetingContactsList')
|
||||||
|
// 把循环的dom元素删除
|
||||||
|
this.model.meetingContactsList.splice(k, 1)
|
||||||
|
// 把绑定在dom里面的值删除
|
||||||
|
meetingContactsList.splice(k, 1)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
// 重新赋值
|
||||||
|
form.setFieldsValue({
|
||||||
|
meetingContactsList: meetingContactsList
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 选择会议联系人
|
||||||
|
* */
|
||||||
|
selectMeetingContact(val, VNode) {
|
||||||
|
console.log(val)
|
||||||
|
console.log(VNode)
|
||||||
|
if (val) {
|
||||||
|
// 索引 我不知道怎么去拿这个对应的索引 我只能把这个绑到这个组件上 通过这种方法 去拿索引
|
||||||
|
let idx = VNode.context.index
|
||||||
|
|
||||||
|
// 要设置表单值的数组
|
||||||
|
const keys = this.form.getFieldValue('meetingContactsList')
|
||||||
|
|
||||||
|
getUserInfo({id: val}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
keys.forEach((item, index) => {
|
||||||
|
// 为数组索引为index 的赋值
|
||||||
|
if (index === idx) {
|
||||||
|
keys.splice(index, 1, {
|
||||||
|
meetingContactsId: val,
|
||||||
|
meetingContactsPhone: res.result.phone
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.form.setFieldsValue({meetingContactsList: keys})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*
|
||||||
* 召开地点吗转换
|
* 召开地点吗转换
|
||||||
* */
|
* */
|
||||||
getPcaText(code) {
|
getPcaText(code) {
|
||||||
@@ -811,6 +937,34 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
|
* 校验会议联系人
|
||||||
|
* */
|
||||||
|
validateMeetingContact(rule, value, callback) {
|
||||||
|
// let meetingContactList = this.form.getFieldValue('meetingContactsList')
|
||||||
|
// meetingContactList.forEach((item,index) => {
|
||||||
|
// if ( item.meetingContactsId === value && !item.meetingContactsPhone){
|
||||||
|
// meetingContactList.splice(index,1)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// let flag = meetingContactList.some(item => {
|
||||||
|
// return item.meetingContactsId === value
|
||||||
|
// })
|
||||||
|
// if (meetingContactList.length === 1) {
|
||||||
|
// flag = false
|
||||||
|
// }
|
||||||
|
if (value === '' || value === undefined || value === null) {
|
||||||
|
callback('请选择会议联系人')
|
||||||
|
}else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
// if (value && flag) {
|
||||||
|
// callback('请选择不同的会议联系人')
|
||||||
|
// } else {
|
||||||
|
// callback()
|
||||||
|
// }
|
||||||
|
|
||||||
|
},
|
||||||
|
/*
|
||||||
* 会议名称唯一校验
|
* 会议名称唯一校验
|
||||||
* */
|
* */
|
||||||
validaeMeetingName(rule, value, callback) {
|
validaeMeetingName(rule, value, callback) {
|
||||||
@@ -872,17 +1026,17 @@ export default {
|
|||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validateDirectorPhone(rule, value, callback){
|
validateDirectorPhone(rule, value, callback) {
|
||||||
if (value && value !== '') {
|
if (value && value !== '') {
|
||||||
if (phoneReg(value)) {
|
if (phoneReg(value)) {
|
||||||
// 是否编辑
|
// 是否编辑
|
||||||
callback()
|
callback()
|
||||||
}else {
|
} else {
|
||||||
callback('请输入正确的手机号')
|
callback('请输入正确的手机号')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ export default {
|
|||||||
],
|
],
|
||||||
validateTrigger:['blur']
|
validateTrigger:['blur']
|
||||||
},
|
},
|
||||||
|
meetingContactsList:{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: '请选择会议联系人' },
|
||||||
|
],
|
||||||
|
validateTrigger:['change']
|
||||||
|
},
|
||||||
registerDeadline:{
|
registerDeadline:{
|
||||||
rules: [
|
rules: [
|
||||||
{ required: true, message: '请选择报名截止时间' },
|
{ required: true, message: '请选择报名截止时间' },
|
||||||
|
|||||||
Reference in New Issue
Block a user