【开发】五种会议的上传会议纪要

This commit is contained in:
fengachen
2021-12-14 16:41:01 +08:00
parent f1a10730cf
commit ea8fd99479
9 changed files with 169 additions and 113 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<keep-alive :include="includedComponents"> <keep-alive :include="includedComponents">
<router-view v-if="keepAlive" /> <router-view v-if="keepAlive" />
</keep-alive> </keep-alive>
<router-view v-if="!keepAlive" /> <router-view :key="$route.fullPath" v-if="!keepAlive" />
</div> </div>
</template> </template>
+2 -2
View File
@@ -22,10 +22,10 @@
<div style="margin: 12px 12px 0; overflow-x: auto"> <div style="margin: 12px 12px 0; overflow-x: auto">
<!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 --> <!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 -->
<keep-alive v-if="multipage"> <keep-alive v-if="multipage">
<router-view v-if="reloadFlag"/> <router-view :key="$route.fullPath" v-if="reloadFlag"/>
</keep-alive> </keep-alive>
<template v-else> <template v-else>
<router-view v-if="reloadFlag"/> <router-view :key="$route.fullPath" v-if="reloadFlag"/>
</template> </template>
<!-- update-end-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 --> <!-- update-end-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 -->
</div> </div>
@@ -239,8 +239,7 @@
v-decorator="['directorPhone']"></a-input> v-decorator="['directorPhone']"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!--标协会议才有--> <a-col :xxl="8" :xl="12" :sm="24">
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入酒店名称" <a-input placeholder="请输入酒店名称"
:maxLength='50' :maxLength='50'
@@ -249,7 +248,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<!--标协会议才有--> <!--标协会议才有-->
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' "> <a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入酒店地址" <a-input placeholder="请输入酒店地址"
:maxLength='50' :maxLength='50'
@@ -259,7 +258,8 @@
</a-col> </a-col>
</a-row> </a-row>
<!--标协会议--> <!--标协会议-->
<section v-if="meetingType === '2'"> <!--变更后所有的会议都有酒店信息管理了-->
<section>
<a-row :gutter="24" v-for="(hotel, index) in model.hotelContactsList" :key="index"> <a-row :gutter="24" v-for="(hotel, index) in model.hotelContactsList" :key="index">
<a-col :xxl="8" :xl="10" :md="12"> <a-col :xxl="8" :xl="10" :md="12">
<a-form-item label="酒店联系人" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="酒店联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -510,13 +510,11 @@ export default {
} }
} else { } else {
this.title = '新增会议' this.title = '新增会议'
// 如果是标协会会议需要显示酒店联系人 // 所有的会议都显示酒店联系人
if (this.$route.query.meetingType && this.$route.query.meetingType === '2') {
this.model.hotelContactsList = [{ this.model.hotelContactsList = [{
hotelContacts: '', hotelContacts: '',
hotelContactsPhone: '' hotelContactsPhone: ''
}] }]
}
// 新增取路由参数 // 新增取路由参数
this.meetingType = this.$route.query.meetingType this.meetingType = this.$route.query.meetingType
// 新增根据路由参数 会议类型更换不同的接口 // 新增根据路由参数 会议类型更换不同的接口
@@ -539,12 +537,12 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
// 加定时器是因为有可能赋值不成功 // 加定时器是因为有可能赋值不成功
setTimeout(() => { setTimeout(() => {
this.form.setFieldsValue(pick(this.model, 'notice', 'paymentQrCode', 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')), 200 this.form.setFieldsValue(pick(this.model, 'notice','hotelContactsList', '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', 'hotelContactsList', 'tbMeetingType', 'meetingCostsVip', 'hotelName', 'hotelAddress')) this.form.setFieldsValue(pick(this.model, 'signInTime', 'tbMeetingType', 'meetingCostsVip', 'hotelName', 'hotelAddress'))
} }
// 如果是工作组会议 赋值工作组 // 如果是工作组会议 赋值工作组
if (this.meetingType === '1') { if (this.meetingType === '1') {
@@ -635,6 +633,7 @@ export default {
}, },
/* /*
* 监听会议类型变化 * 监听会议类型变化
* 这个没用了
* */ * */
changeMeetingType(val) { changeMeetingType(val) {
this.meetingType = val this.meetingType = val
@@ -47,12 +47,19 @@
<a-col :xxl="8" :xl="12" :sm="24"> <a-col :xxl="8" :xl="12" :sm="24">
<label>预计参加人数:</label><span>{{ currentMeetingInfo.estimatedNumber }}</span> <label>预计参加人数:</label><span>{{ currentMeetingInfo.estimatedNumber }}</span>
</a-col> </a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' "> <a-col :xxl="8" :xl="12" :sm="24">
<label>酒店名称:</label><span>{{ currentMeetingInfo.hotelName }}</span> <label>酒店名称:</label><span>{{ currentMeetingInfo.hotelName }}</span>
</a-col> </a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' "> <a-col :xxl="8" :xl="12" :sm="24">
<label>酒店地址:</label><span>{{ currentMeetingInfo.hotelAddress }}</span> <label>酒店地址:</label><span>{{ currentMeetingInfo.hotelAddress }}</span>
</a-col> </a-col>
<a-row class="flex-col">
<label class="label">酒店联系人及手机号:</label>
<span class="content"
v-for="(item,index) of currentMeetingInfo.hotelContactsList"
:key="index">
{{ item.hotelContacts + ':' + item.hotelContactsPhone + ' ' }}</span>
</a-row>
<!-- 国际研讨会的邀请码--> <!-- 国际研讨会的邀请码-->
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' "> <a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' ">
<label>VIP邀请码:</label><span>{{ currentMeetingInfo.vipInvitationCode }}</span> <label>VIP邀请码:</label><span>{{ currentMeetingInfo.vipInvitationCode }}</span>
@@ -102,13 +109,6 @@
v-model="currentMeetingInfo.paymentQrCode" disabled></j-image-upload> v-model="currentMeetingInfo.paymentQrCode" disabled></j-image-upload>
</a-col> </a-col>
</a-row> </a-row>
<a-row v-show="currentMeetingInfo.meetingType === '2' " class="flex-col">
<label class="label">酒店联系人及手机号:</label>
<span class="content"
v-for="(item,index) of currentMeetingInfo.hotelContactsList"
:key="index">
{{ item.hotelContacts + ':' + item.hotelContactsPhone + ' ' }}</span>
</a-row>
<div class="part-title"> <div class="part-title">
<div class="part-title-text">参会人员信息</div> <div class="part-title-text">参会人员信息</div>
</div> </div>
@@ -580,7 +580,10 @@ export default {
} }
}) })
this.filters.meetingId = this.$route.query.id this.filters.meetingId = this.$route.query.id
if(this.disableMixinCreated){
this.loadData(1) this.loadData(1)
}
}, },
async mounted() { async mounted() {
// 生成会议报名二维码 // 生成会议报名二维码
@@ -613,6 +616,8 @@ export default {
return this.otherMeetingUrl return this.otherMeetingUrl
case '5': case '5':
return this.committeeMeetingUrl return this.committeeMeetingUrl
// 为了解决控制台报错写的
default:return this.workGroupMeetingUrl
} }
}, },
// 报名链接 // 报名链接
@@ -11,12 +11,20 @@
<a-form :form="form"> <a-form :form="form">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="会议文件" :labelCol="labelCol" :wrapperCol="wrapperCol"> <!--上传会议资料显示 -->
<a-form-item label="会议文件" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="type === '2' ">
<j-upload file-type-error-message="请上传会议文件" :multiple="true" <j-upload file-type-error-message="请上传会议文件" :multiple="true"
:return-id="true" :return-id="true"
v-decorator="['fileIds']" v-decorator="['fileIds']"
:trigger-change="true"></j-upload> :trigger-change="true"></j-upload>
</a-form-item> </a-form-item>
<!--上传会议纪要显示 -->
<a-form-item label="会议纪要" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="type === '1' ">
<j-upload file-type-error-message="请上传会议纪要" :multiple="true"
:return-id="true"
v-decorator="['fileIds']"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
@@ -40,6 +48,7 @@ export default {
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
form: this.$form.createForm(this), form: this.$form.createForm(this),
type: '', // 上传会议纪要还是上传会议资料
model: {}, model: {},
labelCol: { labelCol: {
xs: {span: 24}, xs: {span: 24},
@@ -53,8 +62,7 @@ export default {
meetingId: '', meetingId: '',
// 已经上传的会议文件 // 已经上传的会议文件
meetingFileIds: '', meetingFileIds: '',
validatorRules: { validatorRules: {},
},
url: {} url: {}
} }
}, },
@@ -62,51 +70,77 @@ export default {
add() { add() {
this.edit({}) this.edit({})
}, },
edit(record) { // type 1上传会议纪要 2上传会议资料
edit(record, type) {
this.visible = true
this.type = type
this.form.resetFields() this.form.resetFields()
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
// 根据会议类型返回不同的url // 根据会议类型返回不同的url
this.url = Object.assign({}, this.createUrlByMeetingType(record.meetingType + '')) this.url = Object.assign({}, this.createUrlByMeetingType(record.meetingType + ''))
this.meetingId = record.id this.meetingId = record.id
this.visible = true // 会议资料与会议纪要的回显
// 拿到已经上传的会议文件进行回显 if (type === '1') {
this.meetingFileIds = this.model.meetingMinute ? this.model.meetingMinute : ''
if (this.meetingFileIds && this.meetingFileIds !== '') {
this.$nextTick(() => {
this.form.setFieldsValue({'fileIds': this.meetingFileIds})
})
}
} else if (type === '2') {
this.meetingFileIds = this.model.meetingData ? this.model.meetingData : '' this.meetingFileIds = this.model.meetingData ? this.model.meetingData : ''
if (this.meetingFileIds && this.meetingFileIds !== '') { if (this.meetingFileIds && this.meetingFileIds !== '') {
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue({'fileIds': this.meetingFileIds}) this.form.setFieldsValue({'fileIds': this.meetingFileIds})
}) })
} }
}
}, },
close() { close() {
this.$emit('close') this.$emit('close')
this.meetingFileIds = ''
this.type = ''
this.visible = false this.visible = false
}, },
// uplodFile 上传会议资料的接口 uploadCouncilFile 上传会议纪要的接口
createUrlByMeetingType(meetingType) { createUrlByMeetingType(meetingType) {
switch (String(meetingType)) { switch (String(meetingType)) {
// 工作组会议 // 工作组会议
case '1': case '1':
return { return {
uploadFile: '/meeting/workGroupMeeting/uploadFile', uploadFile: '/meeting/workGroupMeeting/uploadFile',
uploadCouncilFile: '/meeting/workGroupMeeting/uploadCouncilFile',
} }
// 标协会议 // 标协会议
case '2': case '2':
return { return {
uploadFile: '/meeting/standardsMeeting/uploadFile', uploadFile: '/meeting/standardsMeeting/uploadFile',
uploadCouncilFile: '/meeting/standardsMeeting/uploadCouncilFile',
} }
// 国际研讨会 // 国际研讨会
case '3': case '3':
return { return {
uploadFile: '/meeting/internalMeeting/uploadFile', uploadFile: '/meeting/internalMeeting/uploadFile',
uploadCouncilFile: '/meeting/internalMeeting/uploadCouncilFile',
} }
// 其他会议 // 其他会议
case '4': case '4':
return { return {
uploadFile: '/meeting/otherMeeting/uploadFile', uploadFile: '/meeting/otherMeeting/uploadFile',
uploadCouncilFile: '/meeting/otherMeeting/uploadCouncilFile'
} }
// 分标委会议 // 分标委会议
case '5': case '5':
return { return {
uploadFile: '/meeting/committeeMeeting/uploadFile', uploadFile: '/meeting/committeeMeeting/uploadFile',
uploadCouncilFile: '/meeting/committeeMeeting/uploadCouncilFile',
}
// 理事会会议
case '6':
return {
uploadFile: '/meeting/committeeMeeting/uploadFile',
uploadCouncilFile: '/councilMeeting/uploadCouncilFile',
} }
} }
}, },
@@ -123,7 +157,14 @@ export default {
fileIds: values.fileIds, fileIds: values.fileIds,
id: that.meetingId id: that.meetingId
} }
httpAction(this.url.uploadFile,params,'post').then(res => { let url
if (this.type === '1') {
// 上传会议纪要用会议纪要的接口
url = this.url.uploadCouncilFile
} else if (this.type === '2') {
url = this.url.uploadFile
}
httpAction(url, params, 'post').then(res => {
if (res.success) { if (res.success) {
that.$message.success(res.message) that.$message.success(res.message)
that.$emit('ok') that.$emit('ok')
@@ -117,7 +117,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="uploadFile(record)" v-has:[authorCode.upload]="'committeeMeeting:upload'">上传文件</a> <a @click="uploadFile(record,'1')" v-has:[authorCode.uploadCouncil]="'committeeMeeting:upload'">会议纪要</a>
<a @click="uploadFile(record,'2')" v-has:[authorCode.upload]="'committeeMeeting:upload'">上传文件</a>
<!-- <a @click="applyMsg">报名信息</a>--> <!-- <a @click="applyMsg">报名信息</a>-->
<a @click="handleEdit(record)" v-has:[authorCode.edit]="'committeeMeeting:edit'">编辑</a> <a @click="handleEdit(record)" v-has:[authorCode.edit]="'committeeMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has:[authorCode.delete]="'committeeMeeting:delete'">删除</a> <a @click="handleDelete(record.id)" v-has:[authorCode.delete]="'committeeMeeting:delete'">删除</a>
@@ -245,6 +246,7 @@ export default {
}, },
], ],
newColumns: [], newColumns: [],
// 权限编码 // 权限编码
authorCode: {}, authorCode: {},
// 分标委的权限编码 // 分标委的权限编码
@@ -255,7 +257,8 @@ export default {
batchDel: 'committeeMeeting:batchDel', batchDel: 'committeeMeeting:batchDel',
upload: 'committeeMeeting:upload', upload: 'committeeMeeting:upload',
edit: 'committeeMeeting:edit', edit: 'committeeMeeting:edit',
delete: 'committeeMeeting:delete' delete: 'committeeMeeting:delete',
uploadCouncil:'committeeMeeting:uploadCouncil'
}, },
// 标协会议的权限编码 // 标协会议的权限编码
standardsMeetingAuthorCode: { standardsMeetingAuthorCode: {
@@ -265,7 +268,8 @@ export default {
batchDel: 'standardsMeeting:batchDel', batchDel: 'standardsMeeting:batchDel',
upload: 'standardsMeeting:upload', upload: 'standardsMeeting:upload',
edit: 'standardsMeeting:edit', edit: 'standardsMeeting:edit',
delete: 'standardsMeeting:delete' delete: 'standardsMeeting:delete',
uploadCouncil:'standardsMeeting:uploadCouncil'
} }
} }
}, },
@@ -281,7 +285,9 @@ export default {
if (this.meetingType === '2') { if (this.meetingType === '2') {
this.authorCode = Object.assign({}, this.standardsMeetingAuthorCode) this.authorCode = Object.assign({}, this.standardsMeetingAuthorCode)
} }
if(this.disableMixinCreated){
this.loadData(1) this.loadData(1)
}
// 不是分标委会议去掉提醒字段 // 不是分标委会议去掉提醒字段
if (this.meetingType !== '5') { if (this.meetingType !== '5') {
this.newColumns = [...this.columns] this.newColumns = [...this.columns]
@@ -402,8 +408,8 @@ export default {
/* /*
* 上传文件 * 上传文件
* */ * */
uploadFile(record) { uploadFile(record,type) {
this.$refs.modalForm.edit(record) this.$refs.modalForm.edit(record,type)
}, },
/* /*
* 报名信息 * 报名信息
@@ -114,7 +114,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate"> <span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
<a @click="uploadFile(record)" v-has="'workGroupMeeting:upload'">上传文件</a> <a @click="uploadFile(record,'1')" v-has="'workGroupMeeting:uploadCouncil'">会议纪要</a>
<a @click="uploadFile(record,'2')" v-has="'workGroupMeeting:upload'">上传文件</a>
<!-- <a @click="applyMsg">报名信息</a>--> <!-- <a @click="applyMsg">报名信息</a>-->
<a @click="handleEdit(record)" v-has="'workGroupMeeting:edit'">编辑</a> <a @click="handleEdit(record)" v-has="'workGroupMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has="'workGroupMeeting:delete'">删除</a> <a @click="handleDelete(record.id)" v-has="'workGroupMeeting:delete'">删除</a>
@@ -315,8 +316,8 @@ export default {
/* /*
* 上传文件 * 上传文件
* */ * */
uploadFile(record) { uploadFile(record,type) {
this.$refs.modalForm.edit(record) this.$refs.modalForm.edit(record,type)
}, },
/* /*
* 报名信息 * 报名信息
@@ -96,7 +96,8 @@
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleUploadFile(record)" v-has="'internalMeeting:upload'">上传文件</a> <a @click="handleUploadFile(record,'1')" v-has=" 'internalMeeting:uploadCouncil' ">会议纪要</a>
<a @click="handleUploadFile(record,'2')" v-has="'internalMeeting:upload'">上传文件</a>
<!-- <a @click="handleSignup(record)">报名信息</a>--> <!-- <a @click="handleSignup(record)">报名信息</a>-->
<a @click="handleEdit(record)" v-has="'internalMeeting:edit'">编辑</a> <a @click="handleEdit(record)" v-has="'internalMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has="'internalMeeting:delete'">删除</a> <a @click="handleDelete(record.id)" v-has="'internalMeeting:delete'">删除</a>
@@ -225,11 +226,13 @@ export default {
}, },
}, },
methods: { methods: {
/* /**
* 上传会议文件 * @description: 会议纪要的上传 或者会议资料的上传
* @param:record 表格行数据
* @param:type 1上传会议纪要 2上传会议资料
* */ * */
handleUploadFile(record) { handleUploadFile(record,type) {
this.$refs.modalForm.edit(record) this.$refs.modalForm.edit(record,type)
}, },
/* /*
* 修改查询条件 * 修改查询条件
+4 -3
View File
@@ -95,7 +95,8 @@
<span v-else></span> <span v-else></span>
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleUploadFile(record)" v-has="'otherMeeting:upload'">上传文件</a> <a @click="handleUploadFile(record,'1')" v-has="'otherMeeting:uploadCouncil'">会议纪要</a>
<a @click="handleUploadFile(record,'2')" v-has="'otherMeeting:upload'">上传文件</a>
<!-- <a @click="handleSignup(record)">报名信息</a>--> <!-- <a @click="handleSignup(record)">报名信息</a>-->
<a @click="handleEdit(record)" v-has="'otherMeeting:edit'">编辑</a> <a @click="handleEdit(record)" v-has="'otherMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has="'otherMeeting:delete'">删除</a> <a @click="handleDelete(record.id)" v-has="'otherMeeting:delete'">删除</a>
@@ -226,8 +227,8 @@ name: 'OtherMeeting',
/* /*
* 上传会议文件 * 上传会议文件
* */ * */
handleUploadFile(record) { handleUploadFile(record,type) {
this.$refs.modalForm.edit(record) this.$refs.modalForm.edit(record,type)
}, },
/* /*
* 报名信息 * 报名信息