[update] -增加标协会议 是否需要问题征集等字段

This commit is contained in:
fengchenchen
2022-07-13 18:06:40 +08:00
parent a2537216da
commit 063bf9086e
3 changed files with 199 additions and 49 deletions
@@ -137,7 +137,7 @@ export default {
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
this.visible = true this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'name', 'abbreviation', 'remarks')) this.form.setFieldsValue(pick(this.model, 'name', 'abbreviation', 'remarks', 'principalIdA', 'principalIdB'))
}) })
}, },
close() { close() {
@@ -139,7 +139,64 @@
</a-row> </a-row>
<!--会议信息end--> <!--会议信息end-->
<!-- 会议问题征集--只有标协会议存在 -->
<section v-if="meetingType === '2'" >
<!-- 选择是否需要问题征集-->
<a-row :gutter="24">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="问题征集" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['isAddQuestion',validatorRules.isAddQuestion]"
@change="changeIsAddQuestion">
<a-radio :value="1">需要</a-radio>
<a-radio :value="0">不需要</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-if="isAddQuestion">
<a-form-item label="征集截止时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
placeholder="请选择征集截止时间"
style="width: 100%;"
v-decorator="['endTimeAddQuestion',validatorRules.endTimeAddQuestion]"
:trigger-change="true"
date-format="YYYY-MM-DD HH:mm:00"
:show-time="true"
/>
</a-form-item>
</a-col>
</a-row>
<div class="item-title" v-if="isAddQuestion" >问题征集列表</div>
<!-- 问题征集的详细信息-->
<section v-if="isAddQuestion">
<a-row :gutter="24" v-for="(question, index) in model.questionList" :key="index">
<a-col> </a-col>
<a-col :xxl="8" :xl="10" :sm="24">
<a-form-item :label="'标准号 ' + (index + 1) " :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['questionList['+index+'].standardNumber', validatorRules.standardNumber]"
placeholder="请输入标准号"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="10" :sm="24">
<a-form-item label="标准名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
:maxLength="11"
v-decorator="['questionList['+index+'].standardName',validateInviteCode.standardName]"
placeholder="请输入标准名称"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="4" :sm="24">
<a-form-item>
<a-button icon="plus" @click="addQuestionNew"></a-button>
<a-button icon="minus" @click="removeQuestion(index)" style="margin-left: 8px;"></a-button>
</a-form-item>
</a-col>
</a-row>
</section>
</section>
<!--邀请码begin--> <!--邀请码begin-->
<!-- 国际研讨会出现--> <!-- 国际研讨会出现-->
@@ -508,7 +565,9 @@ export default {
// 召开地点border颜色控制 // 召开地点border颜色控制
hasError: false, hasError: false,
// 会议类型 // 会议类型
meetingType: '' meetingType: '',
// 是否需要 问题征集
isAddQuestion: 0,
} }
}, },
computed: { computed: {
@@ -593,6 +652,14 @@ export default {
meetingContactsPhone: undefined meetingContactsPhone: undefined
}] }]
} }
if((this.model.questionList || []).length === 0) {
// 问题征集列表
this.model.questionList = [{
standardNumber: undefined,
standardName: ''
}]
}
this.model.isAddQuestion = this.model.isAddQuestion || 0 // 处理历史数据的问题
} else { } else {
this.title = '新增会议' this.title = '新增会议'
// 所有的会议都显示酒店联系人 // 所有的会议都显示酒店联系人
@@ -605,10 +672,16 @@ export default {
meetingContactsId: undefined, meetingContactsId: undefined,
meetingContactsPhone: '' meetingContactsPhone: ''
}] }]
// 问题征集列表
this.model.questionList = [{
standardNumber: undefined,
standardName: ''
}]
// 新增取路由参数 // 新增取路由参数
this.meetingType = this.$route.query.meetingType this.meetingType = this.$route.query.meetingType
// 新增根据路由参数 会议类型更换不同的接口 // 新增根据路由参数 会议类型更换不同的接口
this.url = this.createUrlByMeetingType(this.meetingType) this.url = this.createUrlByMeetingType(this.meetingType)
this.model.isAddQuestion = 0 // 默认不需要问题征集
} }
console.log(this.model) console.log(this.model)
// 召开时间回显 // 召开时间回显
@@ -632,7 +705,11 @@ export default {
// 如果是标协会议则回显 标协会议的字段 // 如果是标协会议则回显 标协会议的字段
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')) let otherKeys = []
if(this.model.isAddQuestion) {
otherKeys = ['endTimeAddQuestion', 'questionList']
}
this.form.setFieldsValue(pick(this.model, 'signInTime', 'tbMeetingType', 'meetingCostsVip', 'isAddQuestion', ...otherKeys))
// 编辑情况下 判断类型改变“标协会议类型”选择框的下拉框数 // 编辑情况下 判断类型改变“标协会议类型”选择框的下拉框数
if (this.model.id) { if (this.model.id) {
let arr = this.$refs.standardMeetingType.getCurrentDictOptions() let arr = this.$refs.standardMeetingType.getCurrentDictOptions()
@@ -915,6 +992,51 @@ export default {
} }
}, },
/* /*
* 添加问题征集信息
* */
addQuestionNew(index) {
if (this.model.questionList.length >= 20) {
this.$message.warning('最多添加20个问题')
return
}
const {form} = this
const obj = {
standardNumber: '',
standardName: ''
}
const keys = form.getFieldValue('questionList')
// 增加数据后重新赋值
this.model.questionList.splice(index + 1, 0, obj)
// keys.splice(index , 0, obj)
this.$nextTick(() => {
form.setFieldsValue({
questionList: keys
})
})
},
/*
* 删减问题征集信息
* */
removeQuestion(k) {
// 如果长度是1的话则不进行删除操作
if (this.model.questionList.length === 1) {
return
}
const {form} = this
// // can use data-binding to get
const questionList = form.getFieldValue('questionList')
// 把循环的dom元素删除
this.model.questionList.splice(k, 1)
// 把绑定在dom里面的值删除
questionList.splice(k, 1)
this.$nextTick(() => {
// 重新赋值
form.setFieldsValue({
questionList
})
})
},
/*
* 召开地点吗转换 * 召开地点吗转换
* */ * */
getPcaText(code) { getPcaText(code) {
@@ -932,6 +1054,10 @@ export default {
changeSignTime(date, dateString) { changeSignTime(date, dateString) {
this.newSignInTime = dateString this.newSignInTime = dateString
}, },
// 是否需要问题征集 单选框改变事件
changeIsAddQuestion(e) {
this.isAddQuestion = e.target.value
},
/* /*
* 根据会议类型返回不同的会议新增与编辑接口 * 根据会议类型返回不同的会议新增与编辑接口
* */ * */
@@ -1,98 +1,122 @@
export default { export default {
meetingType: { meetingType: {
rules: [ rules: [
{ required: true, message: '请选择会议类型' }, {required: true, message: '请选择会议类型'},
], ],
validateTrigger:['blur','change'] validateTrigger: ['blur', 'change']
}, },
convokeTime: { convokeTime: {
rules: [ rules: [
{ required: true, message: '请选择召开时间' }, {required: true, message: '请选择召开时间'},
], ],
validateTrigger:['change'] validateTrigger: ['change']
}, },
meetingFiles:{ meetingFiles: {
rules: [ rules: [
{ required: false, message: '请上传会议通知' }, {required: false, message: '请上传会议通知'},
], ],
validateTrigger:['change'] validateTrigger: ['change']
}, },
meetingContent:{ meetingContent: {
rules: [ rules: [
{ required: true, message: '请输入会议内容' }, {required: true, message: '请输入会议内容'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
}, },
meetingContactsList:{ meetingContactsList: {
rules: [ rules: [
{ required: true, message: '请选择会议联系人' }, {required: true, message: '请选择会议联系人'},
], ],
validateTrigger:['change'] validateTrigger: ['change']
}, },
registerDeadline:{ registerDeadline: {
rules: [ rules: [
{ required: true, message: '请选择报名截止时间' }, {required: true, message: '请选择报名截止时间'},
], ],
validateTrigger:['blur','change'] validateTrigger: ['blur', 'change']
}, },
convokeLocale: { convokeLocale: {
rules: [ rules: [
{ required: true, message: '请选择省市' }, {required: true, message: '请选择省市'},
], ],
validateTrigger:['change'] validateTrigger: ['change']
}, },
address:{ address: {
rules: [ rules: [
{ required: true, message: '请输入详细地址' }, {required: true, message: '请输入详细地址'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
}, },
meetingCosts:{ meetingCosts: {
rules: [ rules: [
{ required: true, message: '请输入会议费用' }, {required: true, message: '请输入会议费用'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
}, },
directorId:{ directorId: {
rules: [ rules: [
{ required: true, message: '请选择会议负责人' }, {required: true, message: '请选择会议负责人'},
], ],
validateTrigger:['blur','change'] validateTrigger: ['blur', 'change']
}, },
tbMeetingType:{ tbMeetingType: {
rules: [ rules: [
{ required: true, message: '请选择标协会议类型' }, {required: true, message: '请选择标协会议类型'},
], ],
validateTrigger:['blur','change'] validateTrigger: ['blur', 'change']
}, },
signInTime:{ signInTime: {
rules: [ rules: [
{ required: true, message: '请选择注册签到时间' }, {required: true, message: '请选择注册签到时间'},
], ],
validateTrigger:['change'] validateTrigger: ['change']
}, },
meetingCostsVip:{ meetingCostsVip: {
rules: [ rules: [
{ required: true, message: '请输入会议费用' }, {required: true, message: '请输入会议费用'},
], ],
validateTrigger:['blur','change'] validateTrigger: ['blur', 'change']
}, },
hotelName:{ hotelName: {
rules: [ rules: [
{ required: false, message: '请输入酒店名称' }, {required: false, message: '请输入酒店名称'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
}, },
hotelAddress:{ hotelAddress: {
rules: [ rules: [
{ required: false, message: '请输入酒店地址' }, {required: false, message: '请输入酒店地址'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
}, },
contactPerson:{ contactPerson: {
rules: [ rules: [
{ required: false, message: '请输入酒店联系人' }, {required: false, message: '请输入酒店联系人'},
], ],
validateTrigger:['blur'] validateTrigger: ['blur']
},
isAddQuestion: {
rules: [
{required: true, message: '请选择'},
],
validateTrigger: ['change']
},
endTimeAddQuestion: {
rules: [
{required: true, message: '请选择征集截止时间'},
],
validateTrigger: ['change']
},
standardNumber: {
rules: [
{required: true, message: '请输入标准号'},
],
validateTrigger: ['blur']
},
standardName: {
rules: [
{required: true, message: '请输入标准名称'},
],
validateTrigger: ['blur']
} }
} }