diff --git a/src/components/company/SelectPrincipal.vue b/src/components/company/SelectPrincipal.vue
index accd74b..4948b8d 100644
--- a/src/components/company/SelectPrincipal.vue
+++ b/src/components/company/SelectPrincipal.vue
@@ -23,6 +23,10 @@ export default {
type: String,
required: false,
default: undefined
+ },
+ index:{
+ type:[String,Number],
+ required: false
}
},
data() {
diff --git a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
index 8a4ce0d..d5b9167 100644
--- a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
+++ b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
@@ -239,6 +239,43 @@
v-decorator="['directorPhone']">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
+ :maxLength="11"
+ disabled
+ v-decorator="['meetingContactsList['+index+'].meetingContactsPhone']"
+ placeholder="请输入联系人手机号">
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -354,6 +391,7 @@ import {checkMeetingName} from '@/utils/validateOnly'
import {addZero} from '@/utils/util'
import {money, phoneReg} from '@/utils/validate'
+
export default {
name: 'AddOrDetailMeet',
components: {
@@ -406,6 +444,12 @@ export default {
],
validateTrigger: ['blur']
},
+ meetingContactsId: {
+ rules: [
+ {required: true, validator: this.validateMeetingContact}
+ ],
+ validateTrigger: ['change']
+ },
meetingName: {
rules: [
{required: true, validator: this.validaeMeetingName}
@@ -431,13 +475,14 @@ export default {
],
validateTrigger: ['blur']
},
- directorPhone:{
+ directorPhone: {
rules: [
{required: true, validator: this.validateDirectorPhone}
],
validateTrigger: ['blur']
}
},
+ userList: [],// 会议联系人下拉框集合
url: {
add: '/meeting/payMeeting/add',
edit: '/meeting/payMeeting/edit'
@@ -531,6 +576,11 @@ export default {
hotelContacts: '',
hotelContactsPhone: ''
}]
+ // 会议联系人
+ this.model.meetingContactsList = [{
+ meetingContactsId: '',
+ meetingContactsPhone: ''
+ }]
// 新增取路由参数
this.meetingType = this.$route.query.meetingType
// 新增根据路由参数 会议类型更换不同的接口
@@ -553,12 +603,12 @@ export default {
this.$nextTick(() => {
// 加定时器是因为有可能赋值不成功
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') {
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') {
@@ -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) {
@@ -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) {
@@ -872,17 +1026,17 @@ export default {
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
},
- validateDirectorPhone(rule, value, callback){
+ validateDirectorPhone(rule, value, callback) {
if (value && value !== '') {
if (phoneReg(value)) {
// 是否编辑
callback()
- }else {
+ } else {
callback('请输入正确的手机号')
}
- }else {
+ } else {
callback()
}
}
diff --git a/src/views/incomePayments/meetManage/meetingValidate.js b/src/views/incomePayments/meetManage/meetingValidate.js
index 9654822..6cc2aa0 100644
--- a/src/views/incomePayments/meetManage/meetingValidate.js
+++ b/src/views/incomePayments/meetManage/meetingValidate.js
@@ -23,6 +23,12 @@ export default {
],
validateTrigger:['blur']
},
+ meetingContactsList:{
+ rules: [
+ { required: true, message: '请选择会议联系人' },
+ ],
+ validateTrigger:['change']
+ },
registerDeadline:{
rules: [
{ required: true, message: '请选择报名截止时间' },