From 063bf9086e6d0358e3125e4ac97eeef5260a099f Mon Sep 17 00:00:00 2001 From: fengchenchen Date: Wed, 13 Jul 2022 18:06:40 +0800 Subject: [PATCH] =?UTF-8?q?[update]=20-=E5=A2=9E=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E5=8D=8F=E4=BC=9A=E8=AE=AE=20=E6=98=AF=E5=90=A6=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E9=97=AE=E9=A2=98=E5=BE=81=E9=9B=86=E7=AD=89=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../committee/modules/CommitteeModule.vue | 2 +- .../meetManage/AddOrDetailMeet.vue | 132 +++++++++++++++++- .../meetManage/meetingValidate.js | 114 +++++++++------ 3 files changed, 199 insertions(+), 49 deletions(-) diff --git a/src/views/dataNetworkDiskManagement/committee/modules/CommitteeModule.vue b/src/views/dataNetworkDiskManagement/committee/modules/CommitteeModule.vue index 9a86279..307c54d 100644 --- a/src/views/dataNetworkDiskManagement/committee/modules/CommitteeModule.vue +++ b/src/views/dataNetworkDiskManagement/committee/modules/CommitteeModule.vue @@ -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() { diff --git a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue index 0f1f16f..6ac199c 100644 --- a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue +++ b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue @@ -139,7 +139,64 @@ - + +
+ + + + + + 需要 + 不需要 + + + + + + + + + +
问题征集列表
+ +
+ + + + + + + + + + + + + + + + + + + +
+
@@ -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 + }, /* * 根据会议类型返回不同的会议新增与编辑接口 * */ diff --git a/src/views/incomePayments/meetManage/meetingValidate.js b/src/views/incomePayments/meetManage/meetingValidate.js index 6cc2aa0..00aad28 100644 --- a/src/views/incomePayments/meetManage/meetingValidate.js +++ b/src/views/incomePayments/meetManage/meetingValidate.js @@ -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'] } }