[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.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'name', 'abbreviation', 'remarks'))
this.form.setFieldsValue(pick(this.model, 'name', 'abbreviation', 'remarks', 'principalIdA', 'principalIdB'))
})
},
close() {
@@ -139,7 +139,64 @@
</a-row>
<!--会议信息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-->
<!-- 国际研讨会出现-->
@@ -508,7 +565,9 @@ export default {
// 召开地点border颜色控制
hasError: false,
// 会议类型
meetingType: ''
meetingType: '',
// 是否需要 问题征集
isAddQuestion: 0,
}
},
computed: {
@@ -593,6 +652,14 @@ export default {
meetingContactsPhone: undefined
}]
}
if((this.model.questionList || []).length === 0) {
// 问题征集列表
this.model.questionList = [{
standardNumber: undefined,
standardName: ''
}]
}
this.model.isAddQuestion = this.model.isAddQuestion || 0 // 处理历史数据的问题
} else {
this.title = '新增会议'
// 所有的会议都显示酒店联系人
@@ -605,10 +672,16 @@ export default {
meetingContactsId: undefined,
meetingContactsPhone: ''
}]
// 问题征集列表
this.model.questionList = [{
standardNumber: undefined,
standardName: ''
}]
// 新增取路由参数
this.meetingType = this.$route.query.meetingType
// 新增根据路由参数 会议类型更换不同的接口
this.url = this.createUrlByMeetingType(this.meetingType)
this.model.isAddQuestion = 0 // 默认不需要问题征集
}
console.log(this.model)
// 召开时间回显
@@ -632,7 +705,11 @@ export default {
// 如果是标协会议则回显 标协会议的字段
if (this.meetingType === '2') {
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) {
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) {
@@ -932,6 +1054,10 @@ export default {
changeSignTime(date, dateString) {
this.newSignInTime = dateString
},
// 是否需要问题征集 单选框改变事件
changeIsAddQuestion(e) {
this.isAddQuestion = e.target.value
},
/*
* 根据会议类型返回不同的会议新增与编辑接口
* */
@@ -1,98 +1,122 @@
export default {
meetingType: {
rules: [
{ required: true, message: '请选择会议类型' },
{required: true, message: '请选择会议类型'},
],
validateTrigger:['blur','change']
validateTrigger: ['blur', 'change']
},
convokeTime: {
rules: [
{ required: true, message: '请选择召开时间' },
{required: true, message: '请选择召开时间'},
],
validateTrigger:['change']
validateTrigger: ['change']
},
meetingFiles:{
meetingFiles: {
rules: [
{ required: false, message: '请上传会议通知' },
{required: false, message: '请上传会议通知'},
],
validateTrigger:['change']
validateTrigger: ['change']
},
meetingContent:{
meetingContent: {
rules: [
{ required: true, message: '请输入会议内容' },
{required: true, message: '请输入会议内容'},
],
validateTrigger:['blur']
validateTrigger: ['blur']
},
meetingContactsList:{
meetingContactsList: {
rules: [
{ required: true, message: '请选择会议联系人' },
{required: true, message: '请选择会议联系人'},
],
validateTrigger:['change']
validateTrigger: ['change']
},
registerDeadline:{
registerDeadline: {
rules: [
{ required: true, message: '请选择报名截止时间' },
{required: true, message: '请选择报名截止时间'},
],
validateTrigger:['blur','change']
validateTrigger: ['blur', 'change']
},
convokeLocale: {
rules: [
{ required: true, message: '请选择省市' },
{required: true, message: '请选择省市'},
],
validateTrigger:['change']
validateTrigger: ['change']
},
address:{
address: {
rules: [
{ required: true, message: '请输入详细地址' },
{required: true, message: '请输入详细地址'},
],
validateTrigger:['blur']
validateTrigger: ['blur']
},
meetingCosts:{
meetingCosts: {
rules: [
{ required: true, message: '请输入会议费用' },
{required: true, message: '请输入会议费用'},
],
validateTrigger:['blur']
validateTrigger: ['blur']
},
directorId:{
directorId: {
rules: [
{ required: true, message: '请选择会议负责人' },
{required: true, message: '请选择会议负责人'},
],
validateTrigger:['blur','change']
validateTrigger: ['blur', 'change']
},
tbMeetingType:{
tbMeetingType: {
rules: [
{ required: true, message: '请选择标协会议类型' },
{required: true, message: '请选择标协会议类型'},
],
validateTrigger:['blur','change']
validateTrigger: ['blur', 'change']
},
signInTime:{
signInTime: {
rules: [
{ required: true, message: '请选择注册签到时间' },
{required: true, message: '请选择注册签到时间'},
],
validateTrigger:['change']
validateTrigger: ['change']
},
meetingCostsVip:{
meetingCostsVip: {
rules: [
{ required: true, message: '请输入会议费用' },
{required: true, message: '请输入会议费用'},
],
validateTrigger:['blur','change']
validateTrigger: ['blur', 'change']
},
hotelName:{
hotelName: {
rules: [
{ required: false, message: '请输入酒店名称' },
{required: false, message: '请输入酒店名称'},
],
validateTrigger:['blur']
validateTrigger: ['blur']
},
hotelAddress:{
hotelAddress: {
rules: [
{ required: false, message: '请输入酒店地址' },
{required: false, message: '请输入酒店地址'},
],
validateTrigger:['blur']
validateTrigger: ['blur']
},
contactPerson:{
contactPerson: {
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']
}
}