新增会议增加验证
This commit is contained in:
@@ -2,7 +2,10 @@ import {getAction} from "@api/manage";
|
||||
|
||||
// 通过用户id获取用户信息
|
||||
const getUserInfo = (params) => getAction('/sys/user/queryById',params)
|
||||
// 通过会议id获取会议的详细信息
|
||||
const getMeetInfoById = (params) => getAction('/meeting/payMeeting/queryById',params)
|
||||
|
||||
export {
|
||||
getUserInfo
|
||||
getUserInfo,
|
||||
getMeetInfoById
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
<a-input placeholder="请输入会议名称"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="['meetingName']"></a-input>
|
||||
v-decorator="['meetingName',validatorRules.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%" v-decorator="['meetingType']" @change="changeMeetingType"
|
||||
<j-dict-select-tag style="width: 100%" v-decorator="['meetingType',validatorRules.meetingType]" @change="changeMeetingType"
|
||||
:trigger-change="true" dict-code="meeting_type"
|
||||
placeholder="请选择会议类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
<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%"
|
||||
<j-dict-select-tag v-decorator="['tbMeetingType',validatorRules.tbMeetingType]" :trigger-change="true" style="width: 100%" dict-code="standard_meeting_type"
|
||||
placeholder="请选择标协会议类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -39,7 +39,7 @@
|
||||
@change="changeConvokeTime"
|
||||
format="YYYY-MM-DD HH:mm:00"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
v-decorator="['convokeTime']"
|
||||
v-decorator="['convokeTime',validatorRules.convokeTime]"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
</a-form-item>
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-year-date v-decorator="['particularYear']" placeholder="请选择年份" style="width: 100%"></j-year-date>
|
||||
<j-year-date v-decorator="['particularYear',validatorRules.particularYear]" placeholder="请选择年份" style="width: 100%"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
@@ -62,9 +62,10 @@
|
||||
<a-col :xl="12" :md="8" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="注册签到" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-range-picker
|
||||
@change="changeSignTime"
|
||||
format="YYYY-MM-DD HH:mm:00"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
v-decorator="['startSignInTime']"
|
||||
v-decorator="['signInTime',validatorRules.signInTime]"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
</a-form-item>
|
||||
@@ -78,7 +79,7 @@
|
||||
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
<a-form-item label="报名截止时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择报名截止时间" style="width: 100%;" v-decorator="['registerDeadline']" :trigger-change="true"
|
||||
<j-date placeholder="请选择报名截止时间" style="width: 100%;" v-decorator="['registerDeadline',validatorRules.registerDeadline]" :trigger-change="true"
|
||||
date-format="YYYY-MM-DD HH:mm:ss" :show-time="true" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -88,7 +89,7 @@
|
||||
<a-textarea
|
||||
placeholder="请输入会议内容"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
v-decorator="['meetingContent']"
|
||||
v-decorator="['meetingContent',validatorRules.meetingContent]"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
@@ -102,14 +103,14 @@
|
||||
<j-area-linkage
|
||||
type="cascader"
|
||||
placeholder="请选择省市"
|
||||
v-decorator="['convokeLocale']"
|
||||
v-decorator="['convokeLocale',validatorRules.convokeLocale]"
|
||||
></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"
|
||||
v-decorator="['address',validatorRules.address]"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
></a-input>
|
||||
@@ -127,32 +128,36 @@
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
<a-form-item label="VIP" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入邀请码"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'vipInvitationCode']"></a-input>
|
||||
v-decorator="['vipInvitationCode',validatorRules.invitationCode]"></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="请输入邀请码"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'speakerInvitationCode']"></a-input>
|
||||
v-decorator="[ 'speakerInvitationCode',validatorRules.invitationCode]"></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="请输入邀请码"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'guestInvitationCode']"></a-input>
|
||||
v-decorator="[ 'guestInvitationCode',validatorRules.invitationCode]"></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="请输入邀请码"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'cooperativeInvitationCode']"></a-input>
|
||||
v-decorator="[ 'cooperativeInvitationCode',validatorRules.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -167,7 +172,8 @@
|
||||
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'meetingCosts']"></a-input>
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
v-decorator="[ 'meetingCosts',validatorRules.meetingCosts]"></a-input>
|
||||
<span class="yuan">元/人</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -176,7 +182,8 @@
|
||||
<a-form-item label="会议费用(标协会员)" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'meetingCostsVip']"></a-input>
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
v-decorator="[ 'meetingCostsVip',validatorRules.meetingCostsVip]"></a-input>
|
||||
<span class="yuan">元/人</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -197,7 +204,8 @@
|
||||
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入手机号"
|
||||
disabled
|
||||
:maxLength='50'
|
||||
:maxLength='11'
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
v-decorator="['directorPhone']"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -206,7 +214,8 @@
|
||||
<a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店名称"
|
||||
:maxLength='50'
|
||||
v-decorator="['hotelName']"></a-input>
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="['hotelName',validatorRules.hotelName]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--标协会议才有-->
|
||||
@@ -214,7 +223,8 @@
|
||||
<a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店地址"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'hotelAddress']"></a-input>
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="[ 'hotelAddress',validatorRules.hotelAddress]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -233,10 +243,10 @@
|
||||
<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()"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
:maxLength="15"
|
||||
v-decorator="['hotelList['+index+'].telephoneNumber']"
|
||||
placeholder="请输入酒店电话"></a-input>
|
||||
v-decorator="['hotelList['+index+'].telephoneNumber',validatorRules.telephoneNumber]"
|
||||
placeholder="请输入联系人手机号"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="2" :md="2" >
|
||||
@@ -269,7 +279,7 @@
|
||||
|
||||
</a-form>
|
||||
<div class="footer">
|
||||
<a-button type="primary" @click="handleOk" class="submit">发布</a-button>
|
||||
<a-button type="primary" @click="handleOk" class="submit" v-preventclick>发布</a-button>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
</div>
|
||||
</a-spin>
|
||||
@@ -277,7 +287,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getUserInfo} from "@api/inconmeMeetingApi";
|
||||
import {getUserInfo,getMeetInfoById} from "@api/inconmeMeetingApi";
|
||||
import {httpAction} from "@api/manage";
|
||||
import JDictSelectTag from "@comp/dict/JDictSelectTag";
|
||||
import JYearDate from "@comp/jero/JYearDate";
|
||||
@@ -288,6 +298,8 @@ import SelectPrincipal from "@comp/company/SelectPrincipal";
|
||||
import JAreaLinkage from "@comp/jero/JAreaLinkagePca";
|
||||
import AreaPca from "@comp/_util/AreaPca";
|
||||
import moment from 'moment'
|
||||
import pick from "lodash.pick";
|
||||
import meetingValidate from "@views/incomePayments/meetManage/meetingValidate";
|
||||
|
||||
export default {
|
||||
name: "AddOrDetailMeet",
|
||||
@@ -327,21 +339,48 @@ export default {
|
||||
address: '',
|
||||
// 会议类型 新增时默认为其他会议
|
||||
meetingType:"4",
|
||||
validatorRules: {},
|
||||
validatorRules: meetingValidate,
|
||||
url: {
|
||||
add: "/meeting/payMeeting/add",
|
||||
edit: "/meeting/payMeeting/edit",
|
||||
},
|
||||
// 召开时间
|
||||
newConvokeTime:'',
|
||||
// 注册召开时间
|
||||
newSignInTime:'',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.pcaData = new AreaPca()
|
||||
this.pcaData = new AreaPca();
|
||||
// 编辑获取会议信息
|
||||
if(this.$route.query.id){
|
||||
getMeetInfoById({id:this.$route.query.id}).then(res => {
|
||||
if(res.success){
|
||||
this.edit(res.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
moment,
|
||||
/*
|
||||
* 新增
|
||||
* */
|
||||
add(){
|
||||
this.edit({})
|
||||
},
|
||||
/*
|
||||
* 编辑
|
||||
* */
|
||||
edit(record){
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({},record)
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue(pick(this.model,'meetingName','meetingType'))
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 发布会议
|
||||
* */
|
||||
handleOk() {
|
||||
@@ -352,15 +391,20 @@ export default {
|
||||
let method = 'post'
|
||||
httpurl = this.url.add
|
||||
let placeName = values.convokeLocale
|
||||
const formData = Object.assign(this.model, values,{ placeName: this.getPcaText(placeName) })
|
||||
formData.beginTime = this.newConvokeTime[0]
|
||||
const formData = Object.assign(this.model, values,{ venue: this.getPcaText(placeName) })
|
||||
// 转换召开时间
|
||||
formData.startTime = this.newConvokeTime[0]
|
||||
formData.endTime = this.newConvokeTime[1]
|
||||
// 转换注册签到时间
|
||||
if(values.signInTime){
|
||||
formData.startSignInTime = this.newSignInTime[0]
|
||||
formData.endSignInTime = this.newSignInTime[1]
|
||||
}
|
||||
console.log('表单提交数据', formData)
|
||||
httpAction(httpurl, formData, method).then((res) => {
|
||||
if (res.success) {
|
||||
that.$message.success(res.message)
|
||||
that.$emit('ok')
|
||||
that.close()
|
||||
that.handleCancel()
|
||||
} else {
|
||||
that.$message.warning(res.message)
|
||||
}
|
||||
@@ -465,6 +509,12 @@ export default {
|
||||
* */
|
||||
changeConvokeTime(date,dateString){
|
||||
this.newConvokeTime = dateString
|
||||
},
|
||||
/*
|
||||
* 注册签到时间转化
|
||||
* */
|
||||
changeSignTime(date,dateString){
|
||||
this.newSignInTime = dateString
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
@change="handleTableChange">
|
||||
|
||||
<template slot="htmlSlot" slot-scope="text,record">
|
||||
<div class="primary-color" @click="toAttendance">会议名称</div>
|
||||
<div class="primary-color" @click="toAttendance">{{ text }}</div>
|
||||
</template>
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
@@ -101,6 +101,7 @@ import JYearDate from "@comp/jero/JYearDate";
|
||||
import UploadMeetFileModal from "@views/incomePayments/meetManage/modules/UploadMeetFileModal";
|
||||
import PageHeaderTitle from "@comp/layouts/PageHeaderTitle";
|
||||
import IconImg from '@/assets/imgs/icon/icon_company_management.png'
|
||||
import "@/assets/less/TableExpand.less";
|
||||
|
||||
export default {
|
||||
name: "MeetManageList",
|
||||
@@ -129,44 +130,52 @@ export default {
|
||||
title: '会议名称',
|
||||
align: "center",
|
||||
dataIndex: 'meetingName',
|
||||
scopedSlots: {customRender: 'htmlSlot'}
|
||||
scopedSlots: {customRender: 'htmlSlot'},
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '会议类型',
|
||||
align: "center",
|
||||
dataIndex: 'tbMeetingType',
|
||||
dataIndex: 'meetingType_dictText',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '负责人',
|
||||
align: "center",
|
||||
dataIndex: 'directorName'
|
||||
dataIndex: 'directorName',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '召开时间',
|
||||
align: "center",
|
||||
dataIndex: 'startTime',
|
||||
customRender:function (text) {
|
||||
return !text?"":(text.length> 10?text.substr(0,10):text)
|
||||
width: 160,
|
||||
customRender:function (text,record) {
|
||||
return `${record.startTime}~${record.endTime}`
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '召开地点',
|
||||
align: "center",
|
||||
dataIndex: 'venue'
|
||||
dataIndex: 'venue',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '年份',
|
||||
align: "center",
|
||||
dataIndex: 'particularYear'
|
||||
dataIndex: 'particularYear',
|
||||
width: 60,
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
align: "center",
|
||||
dataIndex: 'createTime'
|
||||
dataIndex: 'createTime',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: "center",
|
||||
fixed:'right',
|
||||
scopedSlots: {customRender: 'action'}
|
||||
},
|
||||
],
|
||||
@@ -206,6 +215,9 @@ export default {
|
||||
handleEdit(record) {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query:{
|
||||
id:record.id
|
||||
}
|
||||
})
|
||||
},
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
export default {
|
||||
meetingName: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议名称!' },
|
||||
],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
meetingType: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择会议类型!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
convokeTime: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择召开时间!' },
|
||||
],
|
||||
validateTrigger:['change']
|
||||
},
|
||||
particularYear: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择年份!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
meetingContent:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议内容!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
registerDeadline:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择报名截止时间!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
convokeLocale: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择省市!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
address:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入详细地址!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
meetingCosts:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议费用' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
directorId:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择会议负责人' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
tbMeetingType:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择标协会议类型!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
signInTime:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择注册签到时间!' },
|
||||
],
|
||||
validateTrigger:['change']
|
||||
},
|
||||
meetingCostsVip:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议费用!' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
hotelName:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店名称!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
hotelAddress:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店地址!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
contactPerson:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店联系人!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
telephoneNumber:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入联系人手机号!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
invitationCode:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入邀请码!' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user