会议新增、标协会议项目查询字段修改

This commit is contained in:
fengachen
2021-09-03 09:18:52 +08:00
parent 2532e76532
commit 7c7434ccea
3 changed files with 224 additions and 100 deletions
@@ -15,25 +15,30 @@
<a-input placeholder="请输入会议名称"
:maxLength='50'
@change="event => event.target.value = event.target.value.trim()"
v-decorator="[ '']"></a-input>
v-decorator="['meetingName']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag style="width: 100%" dict-code="meeting_type" placeholder="请选择会议类型"></j-dict-select-tag>
<j-dict-select-tag style="width: 100%" v-decorator="['meetingType']" @change="changeMeetingType"
:trigger-change="true" dict-code="meeting_type"
placeholder="请选择会议类型"></j-dict-select-tag>
</a-form-item>
</a-col>
<!-- <a-col :xl="6" :md="8" :sm="24">-->
<!-- <a-form-item label="标协会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <j-dict-select-tag style="width: 100%" placeholder="请选择标协会议类型"></j-dict-select-tag>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :xl="6" :md="8" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="标协会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['tbMeetingType']" :trigger-change="true" style="width: 100%"
placeholder="请选择标协会议类型"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="12" :md="12" :sm="24">
<a-form-item label="召开时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
format="YYYY-MM-DD HH:mm:00"
:show-time="{ format: 'HH:mm' }"
v-decorator="['convokeTime',validatorRules.convokeTime]"
v-decorator="['convokeTime']"
:trigger-change="true"
style="width: 100%"/>
</a-form-item>
@@ -41,7 +46,7 @@
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date placeholder="请选择年份" style="width: 100%"></j-year-date>
<j-year-date v-decorator="['particularYear']" placeholder="请选择年份" style="width: 100%"></j-year-date>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
@@ -49,13 +54,24 @@
<a-input placeholder="请输入预计参加人数"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
:maxLength='50'
v-decorator="[ '']"></a-input>
v-decorator="[ 'estimatedNumber']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :md="8" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="注册签到" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
format="YYYY-MM-DD HH:mm:00"
:show-time="{ format: 'HH:mm' }"
v-decorator="['startSignInTime',validatorRules.convokeTime]"
:trigger-change="true"
style="width: 100%"/>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="会议通知" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload></j-upload>
<j-upload v-decorator="[ 'estimatedNumber']"></j-upload>
</a-form-item>
</a-col>
@@ -71,7 +87,7 @@
<a-textarea
placeholder="请输入会议内容"
:auto-size="{ minRows: 3, maxRows: 6 }"
v-decorator="['']"
v-decorator="['meetingContent']"
:maxLength='200'
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
</a-form-item>
@@ -84,12 +100,15 @@
<a-form-item label="召开地点" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-area-linkage
type="cascader"
placeholder="请选择省市"></j-area-linkage>
placeholder="请选择省市"
v-decorator="['meetingContent']"
></j-area-linkage>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入详细地址"
v-model="address"
@change="event => event.target.value = event.target.value.trim()"
:maxLength='50'
></a-input>
@@ -99,51 +118,45 @@
<!--会议信息end-->
<!-- <a-form-item label="注册签到" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <a-range-picker-->
<!-- format="YYYY-MM-DD HH:mm:00"-->
<!-- :show-time="{ format: 'HH:mm' }"-->
<!-- v-decorator="['convokeTime',validatorRules.convokeTime]"-->
<!-- :trigger-change="true"-->
<!-- style="width: 100%"/>-->
<!-- </a-form-item>-->
<!--邀请码begin-->
<div class="item-title">邀请码</div>
<a-row :gutter="24">
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="VIP" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
<!-- 国际研讨会出现-->
<section v-if="meetingType === '3' ">
<div class="item-title">邀请码</div>
<a-row :gutter="24">
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="VIP" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ 'vipInvitationCode']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="演讲嘉宾" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="演讲嘉宾" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ 'speakerInvitationCode']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="特邀嘉宾" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="特邀嘉宾" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ 'guestInvitationCode']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="合作伙伴" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
</a-row>
<!--邀请码end-->
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="合作伙伴" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邀请码"
:maxLength='50'
v-decorator="[ 'cooperativeInvitationCode']"></a-input>
</a-form-item>
</a-col>
</a-row>
</section>
<!--邀请码end-->
<!--会议费用begin-->
<div class="item-title">会议费用</div>
@@ -153,15 +166,16 @@
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
<a-input placeholder="请输入会议费用"
:maxLength='50'
v-decorator="[ '']"></a-input>
v-decorator="[ 'meetingCosts']"></a-input>
<span class="yuan">/</span>
</a-form-item>
</a-col>
<a-col :xl="8" :md="8" :sm="24">
<!-- 标协会议才有 -->
<a-col :xl="8" :md="8" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="会议费用(标协会员)" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
<a-input placeholder="请输入会议费用"
:maxLength='50'
v-decorator="[ '']"></a-input>
v-decorator="[ 'meetingCostsVip']"></a-input>
<span class="yuan">/</span>
</a-form-item>
</a-col>
@@ -182,44 +196,59 @@
<a-input placeholder="请输入手机号"
disabled
:maxLength='50'
v-decorator="[ '']"></a-input>
v-decorator="['directorPhone']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<!--标协会议才有-->
<a-col :xl="6" :md="8" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入酒店名称"
:maxLength='50'
v-decorator="[ '']"></a-input>
v-decorator="['hotelName']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<!--标协会议才有-->
<a-col :xl="6" :md="8" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入酒店地址"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="酒店联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入酒店联系人"
:maxLength='50'
v-decorator="[ '']"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入联系人手机号"
:maxLength='11'
v-decorator="[ '']"></a-input>
v-decorator="[ 'hotelAddress']"></a-input>
</a-form-item>
</a-col>
</a-row>
<!--标协会议-->
<section v-if="meetingType === '2'">
<a-row :gutter="24" v-for="(hotel, index) in model.hotelList" :key="index" class="hotelInfo">
<a-col :xl="6" :md="8" :sm="24">
<a-form-item label="酒店联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['hotelList['+index+'].contactPerson', validatorRules.contactPerson]"
placeholder="请输入酒店联系人"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :md="8" :sm="24">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
@change="event => event.target.value = event.target.value.trim()"
:maxLength="15"
v-decorator="['hotelList['+index+'].telephoneNumber']"
placeholder="请输入酒店电话"></a-input>
</a-form-item>
</a-col>
<a-col :xl="2" :md="2" >
<a-form-item>
<a-icon class="add-icon" type="plus" @click="addNew(index)"/>
<a-icon
class="remove-icon"
type="minus-circle-o"
:class="{'disabled': model.hotelList.length === 1 }"
@click="() => remove(index)"/>
</a-form-item>
</a-col>
</a-row>
</section>
<a-row :gutter="24">
<a-col :xl="12" :md="8" :sm="24">
@@ -227,7 +256,7 @@
<a-textarea
placeholder="请输入备注"
:auto-size="{ minRows: 3, maxRows: 6 }"
v-decorator="['']"
v-decorator="['remark']"
:maxLength='200'
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
</a-form-item>
@@ -270,7 +299,12 @@ export default {
confirmLoading: false,
visible: false,
form: this.$form.createForm(this),
model: {},
model: {
hotelList: [{
contactPerson: '',
telephoneNumber: ''
}]
},
labelCol: {
xs: {span: 24},
sm: {span: 6}
@@ -287,7 +321,15 @@ export default {
xs: {span: 24},
sm: {span: 21}
},
validatorRules: {}
// 详细地址
address: '',
// 会议类型 新增时默认为其他会议
meetingType:"4",
validatorRules: {},
url: {
add: "/meeting/payMeeting/add",
edit: "/meeting/payMeeting/edit",
}
}
},
methods: {
@@ -295,7 +337,27 @@ export default {
* 发布会议
* */
handleOk() {
console.log('发布')
const that = this
this.form.validateFields((err, values) => {
if (!err) {
let httpurl = ''
let method = 'post'
httpurl = this.url.add
const formData = Object.assign(this.model, values)
console.log('表单提交数据', formData)
httpAction(httpurl, formData, method).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
},
/*
* 取消
@@ -310,6 +372,55 @@ export default {
handleReback() {
this.$router.go(-1)
},
/*
* 监听会议类型变化
* */
changeMeetingType(val) {
this.meetingType = val
},
/*
* 添加酒店联系人
* */
addNew(index) {
if (this.model.hotelList.length >= 5) {
this.$message.warning('最多添加5个酒店联系人')
return
}
const { form } = this
const obj = {
contactPerson: '',
telephoneNumber: ''
}
const keys = form.getFieldValue('hotelList')
// 增加数据后重新赋值
this.model.hotelList.splice(index + 1, 0, obj)
keys.splice(index + 1, 0, obj)
this.$nextTick(() => {
form.setFieldsValue({
hotelList: keys
})
})
},
/*
* 删减酒店联系人
* */
remove(k) {
// 如果长度是1的话则不进行删除操作
if (this.model.hotelList.length === 1) {
return
}
const { form } = this
// // can use data-binding to get
const hotelList = form.getFieldValue('hotelList')
// 把循环的dom元素删除
this.model.hotelList.splice(k, 1)
// 把绑定在dom里面的值删除
hotelList.splice(k, 1)
// 重新赋值
form.setFieldsValue({
hotelList: hotelList
})
},
}
}
</script>
@@ -376,8 +487,19 @@ export default {
.submit {
margin-right: 8px;
}
.yuan {
position: absolute;
right: -40px;
}
.add-icon {
height: 100%;
margin-right: 10px;
cursor: pointer;
}
.remove-icon {
height: 100%;
cursor: pointer;
}
</style>
@@ -128,39 +128,41 @@ export default {
{
title: '会议名称',
align: "center",
dataIndex: '',
dataIndex: 'meetingName',
scopedSlots: {customRender: 'htmlSlot'}
},
{
title: '会议类型',
align: "center",
dataIndex: '',
dataIndex: 'tbMeetingType',
},
{
title: '负责人',
align: "center",
dataIndex: ''
dataIndex: 'directorName'
},
{
title: '召开时间',
align: "center",
dataIndex: ''
dataIndex: 'startTime',
customRender:function (text) {
return !text?"":(text.length> 10?text.substr(0,10):text)
}
},
{
title: '召开地点',
align: "center",
dataIndex: ''
dataIndex: 'venue'
},
{
title: '年份',
align: "center",
dataIndex: ''
dataIndex: 'particularYear'
},
{
title: '创建时间',
align: "center",
dataIndex: ''
dataIndex: 'createTime'
},
{
title: '操作',
@@ -169,11 +171,11 @@ export default {
},
],
url: {
list: "/jero/memberProject/page",
delete: "/jero/memberProject/delete",
deleteBatch: "/jero/memberProject/deleteBatch",
exportXlsUrl: "/jero/memberProject/exportXls",
importExcelUrl: "jero/memberProject/importExcel",
list: "/meeting/payMeeting/page",
delete: "/meeting/payMeeting/delete",
deleteBatch: "/meeting/payMeeting/deleteBatch",
exportXlsUrl: "/meeting/payMeeting/exportXls",
importExcelUrl: "meeting/payMeeting/importExcel",
},
}
},
@@ -8,7 +8,7 @@
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="标协会员项目名称">
<a-input placeholder="请输入会员项目名称" v-model="queryParam.tableName"></a-input>
<a-input placeholder="请输入会员项目名称" v-model="queryParam.projectName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">