工作组会议维护
This commit is contained in:
@@ -4,6 +4,8 @@ import { getAction, postAction } from '@api/manage'
|
||||
const getWorkingGroupById = (params) => getAction('/project/payWorkingGroup/queryById', params)
|
||||
// 判断工作组成员是否设置来款通知
|
||||
const getChargeNotice = (param) => getAction('/project/payWorkingGroupSubitem/getCharge', param)
|
||||
// 工作组会议的发布提醒
|
||||
const publishRemind = (param) => getAction('',param)
|
||||
// 通过id获取收入合同信息
|
||||
const getRevenueContractById = (param) => getAction('/contract/payIncomeContract/queryById', param)
|
||||
// 收入合同审核
|
||||
@@ -12,6 +14,7 @@ const aduitRevenueContract = (param) => postAction('/contract/payIncomeContract/
|
||||
export {
|
||||
getWorkingGroupById,
|
||||
getChargeNotice,
|
||||
publishRemind,
|
||||
getRevenueContractById,
|
||||
aduitRevenueContract
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/* 查询条件有时间范围的 混入方法 */
|
||||
import moment from 'moment'
|
||||
export const RangeDateMixin = {
|
||||
data() {
|
||||
return {
|
||||
dateKeyObj: {
|
||||
beginKey: 'beginRegisterTime',
|
||||
endKey: 'endRegisterTime'
|
||||
},
|
||||
rangeDateFormat: {
|
||||
begin: 'YYYY-MM-DD 00:00:00',
|
||||
end: 'YYYY-MM-DD 23:59:59'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
disabledStartDate(startValue) {
|
||||
const endValue = this.queryParam[this.dateKeyObj.endKey] && moment(this.queryParam[this.dateKeyObj.endKey], this.rangeDateFormat.end)
|
||||
if (!startValue || !endValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
|
||||
disabledEndDate(endValue) {
|
||||
const startValue = this.queryParam[this.dateKeyObj.beginKey] && moment(this.queryParam[this.dateKeyObj.beginKey], this.rangeDateFormat.begin)
|
||||
if (!endValue || !startValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
disabledDateBeforeToday(current) {
|
||||
return current < moment().subtract(1, 'day') // 当天之前的不可选,不包括当天
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,307 +1,319 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<section class="project-base-info-title">
|
||||
<span @click="handleReback" class="back"><a-icon type="left"/></span>
|
||||
<h2 class="title">{{ title }}</h2>
|
||||
</section>
|
||||
<div class="line"></div>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<!-- 会议信息begin-->
|
||||
<div class="item-title">会议信息</div>
|
||||
<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'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
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',validatorRules.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" v-if="meetingType === '1' ">
|
||||
<a-form-item label="工作组" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-select placeholder="请选择工作组"
|
||||
v-decorator="['workingGroupId',validatorRules.parentId]"
|
||||
:maxLength='50'>
|
||||
<a-select-option v-for="item in workGroupList" :key="item.id" :value="item.id">{{ item.workingGroupProject }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<div>
|
||||
<page-header-title :is-level-one="false" :level-two-title="title"></page-header-title>
|
||||
<a-card :bordered="false">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<!-- 会议信息begin-->
|
||||
<div class="item-title">会议信息</div>
|
||||
|
||||
<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',validatorRules.tbMeetingType]" :trigger-change="true"
|
||||
style="width: 100%" dict-code="standard_meeting_type"
|
||||
placeholder="请选择标协会议类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-row :gutter="24">
|
||||
|
||||
<a-col :xl="12" :md="12" :sm="24">
|
||||
<a-form-item label="召开时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-range-picker
|
||||
<!--如果是工作组项目的会议维护跳转的 需要隐藏会议类型-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="isWorkGroupMeetType">
|
||||
<a-form-item label="会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<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>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入会议名称"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="['meetingName',validatorRules.meetingName]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="召开时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-range-picker
|
||||
@change="changeConvokeTime"
|
||||
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>
|
||||
</a-col>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<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">
|
||||
<a-form-item label="预计参加人数" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入预计参加人数"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'estimatedNumber']"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="标协会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<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>
|
||||
|
||||
<a-col :xl="12" :md="8" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="注册签到" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-range-picker
|
||||
|
||||
|
||||
<!--工作组会议才有-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '1' ">
|
||||
<a-form-item label="工作组" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-select placeholder="请选择工作组"
|
||||
v-decorator="['workingGroupId',validatorRules.parentId]"
|
||||
:maxLength='50'>
|
||||
<a-select-option v-for="item in workGroupList" :key="item.id" :value="item.id">
|
||||
{{ item.workingGroupProject }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-year-date v-decorator="['particularYear',validatorRules.particularYear]" placeholder="请选择年份"
|
||||
style="width: 100%"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="预计参加人数" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入预计参加人数"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'estimatedNumber']"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :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="['signInTime',validatorRules.signInTime]"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :md="8" :sm="24">
|
||||
<a-form-item label="会议通知" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload :return-id="true" v-decorator="[ 'meetingFiles']"></j-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="报名截止时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<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>
|
||||
|
||||
<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',validatorRules.registerDeadline]" :trigger-change="true"
|
||||
date-format="YYYY-MM-DD HH:mm:ss" :show-time="true"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="12" :md="8" :sm="24">
|
||||
<a-form-item label="会议内容" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :xxl='8' :xl="12" :sm="24">
|
||||
<a-form-item label="召开地点" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-area-linkage
|
||||
type="cascader"
|
||||
placeholder="请选择省市"
|
||||
v-decorator="['convokeLocale',validatorRules.convokeLocale]"
|
||||
></j-area-linkage>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl='8' :xl="12" :sm="24">
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入详细地址"
|
||||
class="address"
|
||||
v-decorator="['address',validatorRules.address]"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="18" :xl="18" :sm="24">
|
||||
<a-form-item label="会议内容" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入会议内容"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
v-decorator="['meetingContent',validatorRules.meetingContent]"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</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">
|
||||
<j-area-linkage
|
||||
type="cascader"
|
||||
placeholder="请选择省市"
|
||||
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-decorator="['address',validatorRules.address]"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!--会议信息end-->
|
||||
|
||||
|
||||
<!--邀请码begin-->
|
||||
<!-- 国际研讨会出现-->
|
||||
<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="请输入邀请码"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength='50'
|
||||
v-decorator="['vipInvitationCode',validateInviteCode.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',validateInviteCode.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',validateInviteCode.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',validateInviteCode.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</section>
|
||||
<!--邀请码end-->
|
||||
|
||||
<!--会议费用begin-->
|
||||
<div class="item-title">会议费用</div>
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="会议通知" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload :return-id="true" v-decorator="[ 'meetingFiles']"></j-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24">
|
||||
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
@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>
|
||||
<!-- 标协会议才有 -->
|
||||
<a-col :xxl="6" :xl="10" :md="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="会议费用(标协会员)" :labelCol="{ xs: {span: 24},sm: {span: 8}}" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
@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>
|
||||
</a-row>
|
||||
<!--会议费用end-->
|
||||
<!--会议信息end-->
|
||||
|
||||
<!--联系方式begin-->
|
||||
<div class="item-title">联系方式</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24">
|
||||
<a-form-item label="会议负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-principal placeholder="请选择会议负责人"
|
||||
@change="selectPerson"
|
||||
v-decorator="['directorId',validatorRules.directorId]"></select-principal>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24">
|
||||
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入手机号"
|
||||
disabled
|
||||
:maxLength='11'
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
v-decorator="['directorPhone']"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--标协会议才有-->
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店名称"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="['hotelName',validatorRules.hotelName]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--标协会议才有-->
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店地址"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="[ 'hotelAddress',validatorRules.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.hotelContactsList" :key="index" class="hotelInfo">
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24">
|
||||
<a-form-item label="酒店联系人" :labelCol="{ xs: {span: 24},sm: {span: 8}}" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input
|
||||
|
||||
<!--邀请码begin-->
|
||||
<!-- 国际研讨会出现-->
|
||||
<section v-if="meetingType === '3' ">
|
||||
<div class="item-title">邀请码</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :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',validateInviteCode.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :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',validateInviteCode.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :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',validateInviteCode.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :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',validateInviteCode.invitationCode]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</section>
|
||||
<!--邀请码end-->
|
||||
|
||||
<!--会议费用begin-->
|
||||
<div class="item-title">会议费用</div>
|
||||
<a-row :gutter="24">
|
||||
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
@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>
|
||||
<!-- 标协会议才有 -->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="会议费用(标协会员)" :labelCol="{ xs: {span: 24},sm: {span: 8}}"
|
||||
:wrapperCol="{ xs: {span: 24},xl:{span:14},sm: {span: 16}}">
|
||||
<a-input placeholder="请输入会议费用"
|
||||
:maxLength='50'
|
||||
@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>
|
||||
</a-row>
|
||||
<!--会议费用end-->
|
||||
|
||||
<!--联系方式begin-->
|
||||
<div class="item-title">联系方式</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="会议负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-principal placeholder="请选择会议负责人"
|
||||
@change="selectPerson"
|
||||
v-decorator="['directorId',validatorRules.directorId]"></select-principal>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入手机号"
|
||||
disabled
|
||||
:maxLength='11'
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
v-decorator="['directorPhone']"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--标协会议才有-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="酒店名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店名称"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="['hotelName',validatorRules.hotelName]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--标协会议才有-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
|
||||
<a-form-item label="酒店地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入酒店地址"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
v-decorator="[ 'hotelAddress',validatorRules.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.hotelContactsList" :key="index">
|
||||
<a-col :xxl="8" :xl="10" :md="12" >
|
||||
<a-form-item label="酒店联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength="50"
|
||||
v-decorator="['hotelContactsList['+index+'].hotelContacts', validatorRules.contactPerson]"
|
||||
placeholder="请输入酒店联系人"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :md="12" :sm="24">
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="10" :md="12" >
|
||||
<a-form-item :wrapperCol="{xl:{span:17}}">
|
||||
<a-input
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||
:maxLength="15"
|
||||
v-decorator="['hotelContactsList['+index+'].hotelContactsPhone',validatorRules.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.hotelContactsList.length === 1 }"
|
||||
@click="() => remove(index)"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</section>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="2" :xl="4" :sm="6" style="transform: translateX(-130px);">
|
||||
<a-form-item>
|
||||
<a-button icon="plus" @click="addNew"></a-button>
|
||||
<a-button icon="minus" @click="remove(index)" style="margin-left: 8px;"> </a-button>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</section>
|
||||
|
||||
<a-row :gutter="24">
|
||||
<a-col :xl="12" :md="8" :sm="24">
|
||||
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="18" :xl="18" :sm="24">
|
||||
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入备注"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
v-decorator="['remark']"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<!--联系方式end-->
|
||||
<!--联系方式end-->
|
||||
|
||||
</a-form>
|
||||
<div class="footer">
|
||||
<a-button type="primary" @click="handleOk" class="submit" v-preventclick>发布</a-button>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
</div>
|
||||
</a-spin>
|
||||
</a-card>
|
||||
</a-form>
|
||||
<div class="footer">
|
||||
<a-button type="primary" @click="handleOk" class="submit" v-preventclick>发布</a-button>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
</div>
|
||||
</a-spin>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getUserInfo, getMeetInfoById,getAllWorkProjects} from '@api/incomeMeetingApi'
|
||||
import {getUserInfo, getMeetInfoById, getAllWorkProjects} from '@api/incomeMeetingApi'
|
||||
import {isRepeat} from '@/utils/util'
|
||||
import {httpAction} from '@api/manage'
|
||||
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||
@@ -315,6 +327,7 @@ import AreaPca from '@comp/_util/AreaPca'
|
||||
import moment from 'moment'
|
||||
import pick from 'lodash.pick'
|
||||
import meetingValidate from '@views/incomePayments/meetManage/meetingValidate'
|
||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||
|
||||
export default {
|
||||
name: 'AddOrDetailMeet',
|
||||
@@ -324,7 +337,8 @@ export default {
|
||||
JUpload,
|
||||
JDate,
|
||||
SelectPrincipal,
|
||||
JAreaLinkage
|
||||
JAreaLinkage,
|
||||
PageHeaderTitle
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -335,18 +349,24 @@ export default {
|
||||
form: this.$form.createForm(this),
|
||||
model: {},
|
||||
labelCol: {
|
||||
xxl:{span: 7},
|
||||
xs: {span: 24},
|
||||
sm: {span: 6}
|
||||
},
|
||||
wrapperCol: {
|
||||
xxl:{span: 17},
|
||||
xs: {span: 24},
|
||||
sm: {span: 18}
|
||||
},
|
||||
remarksLabelCol: {
|
||||
xxl: {span: 3},
|
||||
xl:{span:4},
|
||||
xs: {span: 24},
|
||||
sm: {span: 3}
|
||||
},
|
||||
remarksWrapperCol: {
|
||||
xxl: {span: 21},
|
||||
xl:{span:20},
|
||||
xs: {span: 24},
|
||||
sm: {span: 21}
|
||||
},
|
||||
@@ -372,7 +392,17 @@ export default {
|
||||
// 注册召开时间
|
||||
newSignInTime: '',
|
||||
// 工作组会议列表
|
||||
workGroupList:[]
|
||||
workGroupList: []
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
// 是否从工作组会议维护来的
|
||||
isWorkGroupMeetType (){
|
||||
if(this.$route.query.workingGroupProjectId){
|
||||
return false
|
||||
}else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -401,16 +431,21 @@ export default {
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({}, record)
|
||||
let dateFormat = 'YYYY-MM-DD HH:mm:ss'
|
||||
if(this.model.id){
|
||||
this.title = '编辑会议'
|
||||
}else {
|
||||
this.title = '新增会议'
|
||||
}
|
||||
// 修改会议类型 控制dom显示
|
||||
this.meetingType = record.meetingType + ''
|
||||
// 当为工作组会议的时候 需要获取工作组
|
||||
if(this.meetingType === '1'){
|
||||
if (this.meetingType === '1') {
|
||||
this.getWorkSelectList()
|
||||
}
|
||||
// 召开时间回显
|
||||
this.model.convokeTime = [moment(this.model.startTime, dateFormat), moment(this.model.endTime, dateFormat)]
|
||||
// 注册签到时间回显
|
||||
this.model.signInTime = [moment(this.model.startSignInTime, dateFormat), moment(this.model.endSignInTime, dateFormat)]
|
||||
this.model.signInTime = [moment(this.model.startSignInTime, dateFormat), moment(this.model.endSignInTime, dateFormat)]
|
||||
// 后端需要的召开时间
|
||||
this.newConvokeTime = [this.model.startTime, this.model.endTime]
|
||||
// 后端需要的注册签到时间
|
||||
@@ -423,6 +458,10 @@ export default {
|
||||
// if(this.meetingType === '2'){
|
||||
// this.form.setFieldsValue(pick(this.model,'signInTime', ))
|
||||
// }
|
||||
// 如果是工作组会议 赋值工作组
|
||||
if(this.meetingType === '1'){
|
||||
this.form.setFieldsValue(pick(this.model,'workingGroupId', ))
|
||||
}
|
||||
// 如果是国际研讨会则赋值邀请码
|
||||
if (this.meetingType === '3') {
|
||||
this.form.setFieldsValue(pick(this.model, 'vipInvitationCode', 'speakerInvitationCode', 'guestInvitationCode', 'cooperativeInvitationCode'))
|
||||
@@ -447,6 +486,10 @@ export default {
|
||||
}
|
||||
let placeName = values.convokeLocale
|
||||
const formData = Object.assign(this.model, values, {venue: this.getPcaText(placeName)})
|
||||
// 如果是工作会议维护跳转的需要加上会议类型为工作组会议
|
||||
if(!this.isWorkGroupMeetType) {
|
||||
formData.meetingType = '1'
|
||||
}
|
||||
// 转换召开时间
|
||||
formData.startTime = this.newConvokeTime[0]
|
||||
formData.endTime = this.newConvokeTime[1]
|
||||
@@ -488,7 +531,7 @@ export default {
|
||||
changeMeetingType(val) {
|
||||
this.meetingType = val
|
||||
// 如果是工作组会议就需要查询所有的工作组
|
||||
if(val === '1'){
|
||||
if (val === '1') {
|
||||
this.getWorkSelectList()
|
||||
}
|
||||
if (val === '2') {
|
||||
@@ -553,9 +596,11 @@ export default {
|
||||
this.model.hotelContactsList.splice(k, 1)
|
||||
// 把绑定在dom里面的值删除
|
||||
hotelContactsList.splice(k, 1)
|
||||
// 重新赋值
|
||||
form.setFieldsValue({
|
||||
hotelContactsList: hotelContactsList
|
||||
this.$nextTick(() => {
|
||||
// 重新赋值
|
||||
form.setFieldsValue({
|
||||
hotelContactsList: hotelContactsList
|
||||
})
|
||||
})
|
||||
},
|
||||
/*
|
||||
@@ -582,14 +627,14 @@ export default {
|
||||
validateCode(rule, value, callback) {
|
||||
if (value === null || value === '' || value === undefined) {
|
||||
callback(new Error('请输入邀请码'))
|
||||
}else {
|
||||
} else {
|
||||
let codeObj = this.form.getFieldsValue(['cooperativeInvitationCode', 'vipInvitationCode', 'speakerInvitationCode', 'guestInvitationCode'])
|
||||
const codeArr = Object.values(codeObj)
|
||||
console.log('codearr',codeArr)
|
||||
console.log('codearr', codeArr)
|
||||
// 校验是否重复
|
||||
if(isRepeat(codeArr)){
|
||||
if (isRepeat(codeArr)) {
|
||||
callback('请填写不同的邀请码!')
|
||||
}else {
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
@@ -597,9 +642,9 @@ export default {
|
||||
/*
|
||||
* 获取所有的工作组
|
||||
* */
|
||||
getWorkSelectList(){
|
||||
getWorkSelectList() {
|
||||
getAllWorkProjects().then(res => {
|
||||
if(res.success){
|
||||
if (res.success) {
|
||||
this.workGroupList = [...res.result]
|
||||
}
|
||||
})
|
||||
@@ -686,4 +731,8 @@ export default {
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.address {
|
||||
transform: translate(4px, -4px);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,54 @@
|
||||
<template>
|
||||
<div>
|
||||
<page-header-title :is-level-one="false" :level-two-title="$route.query.meetingName"></page-header-title>
|
||||
<a-card :bordered="false">
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">会议信息</div>
|
||||
</div>
|
||||
<a-row>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>会议名称:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>会议类型:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>负责人:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>召开时间:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>召开地点:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>会议费用:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>预计参加人数:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>会议通知:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>报名链接:</label><span></span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>报名二维码:</label><img alt="报名二维码" />
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>签到二维码:</label><img alt="签到二维码" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<label>会议内容:</label><span></span>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<label>备注:</label><span></span>
|
||||
</a-row>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">参会人员信息</div>
|
||||
</div>
|
||||
<!-- 查询区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
@@ -118,6 +166,7 @@ import BatchInvocieModal from '@views/incomePayments/meetManage/modules/BatchInv
|
||||
import BatchSetDockerModal from '@views/incomePayments/meetManage/modules/BatchSetDockerModal'
|
||||
import ProjectDetailModal from '@comp/ProjectDetailModal'
|
||||
import AuditModal from '@views/incomePayments/meetManage/modules/AuditModal'
|
||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||
|
||||
|
||||
export default {
|
||||
@@ -130,7 +179,8 @@ export default {
|
||||
BatchInvocieModal,
|
||||
BatchSetDockerModal,
|
||||
ProjectDetailModal,
|
||||
AuditModal
|
||||
AuditModal,
|
||||
PageHeaderTitle
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -8,36 +8,56 @@
|
||||
<a-row :gutter="24">
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="会议名称">
|
||||
<a-input placeholder="请输入会议名称" v-model="queryParam.projectName"></a-input>
|
||||
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="10" :lg="11" :md="12" :sm="24">
|
||||
<a-form-item label="会议时间">
|
||||
<a-range-picker
|
||||
format="YYYY-MM-DD HH:mm:00"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="创建时间">
|
||||
<a-range-picker
|
||||
format="YYYY-MM-DD HH:mm:00"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
date-format="YYYY-MM-DD 00:00:00"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.startTime"
|
||||
:disabled-date="disabledStartDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
date-format="YYYY-MM-DD 23:59:59"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.endTime"
|
||||
:disabled-date="disabledEndDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="年份">
|
||||
<j-year-date placeholder="请选择年份" v-model="queryParam.particularYear"></j-year-date>
|
||||
<j-year-date style="width: 100%" placeholder="请选择年份" v-model="queryParam.particularYear"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="11" :md="12" :sm="24">
|
||||
<a-form-item label="创建时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
date-format="YYYY-MM-DD 00:00:00"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.startCreateTime"
|
||||
:disabled-date="disabledStartCreateDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
date-format="YYYY-MM-DD 23:59:59"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.endCreateTime"
|
||||
:disabled-date="disabledEndCreateDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
|
||||
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
|
||||
<a-button @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -47,7 +67,7 @@
|
||||
|
||||
<!-- 操作按钮区域 -->
|
||||
<div class="table-operator">
|
||||
<a-button @click="handleAdd" type="primary" icon="plus">添加</a-button>
|
||||
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')">导出</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>
|
||||
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
|
||||
@@ -73,8 +93,8 @@
|
||||
class="j-table-force-nowrap"
|
||||
@change="handleTableChange">
|
||||
|
||||
<template slot="htmlSlot" slot-scope="text">
|
||||
<div class="primary-color" @click="toAttendance">{{ text }}</div>
|
||||
<template slot="htmlSlot" slot-scope="text,record">
|
||||
<div class="primary-color" @click="toAttendance(record)">{{ text }}</div>
|
||||
</template>
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
@@ -98,19 +118,23 @@
|
||||
<script>
|
||||
import {mixinDevice} from '@/utils/mixin'
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import {RangeDateMixin} from '@/mixins/RangeDateMixin'
|
||||
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'
|
||||
import JDate from '@comp/tools/JDate'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
name: 'MeetManageList',
|
||||
mixins: [JeroListMixin, mixinDevice],
|
||||
mixins: [JeroListMixin, mixinDevice,RangeDateMixin],
|
||||
components: {
|
||||
JYearDate,
|
||||
UploadMeetFileModal,
|
||||
PageHeaderTitle
|
||||
PageHeaderTitle,
|
||||
JDate
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -183,6 +207,10 @@ export default {
|
||||
scopedSlots: {customRender: 'action'}
|
||||
},
|
||||
],
|
||||
dateKeyObj: {
|
||||
beginKey: 'startTime',
|
||||
endKey: 'endTime'
|
||||
},
|
||||
url: {
|
||||
list: '/meeting/payMeeting/page',
|
||||
delete: '/meeting/payMeeting/delete',
|
||||
@@ -240,11 +268,31 @@ export default {
|
||||
this.$router.push({
|
||||
path:'/incomePayments/meetManage/Attendance',
|
||||
query:{
|
||||
id:record.id
|
||||
id:record.id,
|
||||
meetingName:record.meetingName
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
/*
|
||||
* 创建时间开始禁用
|
||||
* */
|
||||
disabledStartCreateDate(startValue){
|
||||
const endValue = this.queryParam.endCreateTime && moment(this.queryParam.endCreateTime, this.rangeDateFormat.end)
|
||||
if (!startValue || !endValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
/*
|
||||
* 创建时间结束禁用
|
||||
* */
|
||||
disabledEndCreateDate(endValue) {
|
||||
const startValue = this.queryParam.startCreateTime && moment(this.queryParam.startCreateTime, this.rangeDateFormat.begin)
|
||||
if (!endValue || !startValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -15,24 +15,23 @@
|
||||
<a-input placeholder="请输入会议名称" v-model="queryParam.workingGroupProject"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="8" :lg="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-model="queryParam.time"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="8" :lg="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-model="queryParam.createTime"
|
||||
:trigger-change="true"
|
||||
style="width: 100%"/>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="会议时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
date-format="YYYY-MM-DD 00:00:00"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.startTime"
|
||||
:disabled-date="disabledStartDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
date-format="YYYY-MM-DD 23:59:59"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.endTime"
|
||||
:disabled-date="disabledEndDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
@@ -41,13 +40,31 @@
|
||||
v-model="queryParam.year"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="创建时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
date-format="YYYY-MM-DD 00:00:00"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.startCreateTime"
|
||||
:disabled-date="disabledStartCreateDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
date-format="YYYY-MM-DD 23:59:59"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.endCreateTime"
|
||||
:disabled-date="disabledEndCreateDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="已提醒" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-select placeholder="请选择已提醒"
|
||||
v-model="queryParam.remind">
|
||||
<a-select-option v-for="item in list" :key="item.id" :value="item.id">{{ item.username }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
<j-dict-select-tag style="width: 100%"
|
||||
v-model="queryParam.remind"
|
||||
placeholder="请选择提醒类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
@@ -103,17 +120,23 @@
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<publish-remind-modal ref="publishRemindModal" @ok="loadData"></publish-remind-modal>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import {RangeDateMixin} from '@/mixins/RangeDateMixin'
|
||||
import JYearDate from '@comp/jero/JYearDate'
|
||||
import JDate from '@comp/tools/JDate'
|
||||
import moment from 'moment'
|
||||
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||
import PublishRemindModal from '@views/projectManagement/modules/PublishRemindModal'
|
||||
|
||||
export default {
|
||||
name: 'ConferenceMaintenance',
|
||||
components: { JYearDate },
|
||||
mixins: [JeroListMixin],
|
||||
components: { JYearDate,JDate,JDictSelectTag,PublishRemindModal },
|
||||
mixins: [JeroListMixin,RangeDateMixin],
|
||||
data() {
|
||||
return {
|
||||
workingGroupProject: '',
|
||||
@@ -127,6 +150,10 @@ export default {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 10 }
|
||||
},
|
||||
dateKeyObj: {
|
||||
beginKey: 'startTime',
|
||||
endKey: 'endTime'
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: '序号',
|
||||
@@ -201,13 +228,57 @@ export default {
|
||||
path: '/projectManagement/WorkingGroupProjectManagement'
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 新增
|
||||
* */
|
||||
handleAdd(){
|
||||
// 记录当前的工作组id
|
||||
let currentId = this.$route.query.workingGroupProjectId
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query:{
|
||||
workingGroupProjectId:currentId
|
||||
}
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 发布提醒
|
||||
* */
|
||||
publishRemind() {
|
||||
this.$refs.publishRemindModal.open()
|
||||
this.$refs.publishRemindModal.title = '发布-提醒'
|
||||
|
||||
},
|
||||
/*
|
||||
* 上传文件
|
||||
* */
|
||||
uploadFile() {
|
||||
|
||||
},
|
||||
applyMsg() {}
|
||||
/*
|
||||
* 报名信息
|
||||
* */
|
||||
applyMsg() {},
|
||||
/*
|
||||
* 创建时间开始禁用
|
||||
* */
|
||||
disabledStartCreateDate(startValue){
|
||||
const endValue = this.queryParam.endCreateTime && moment(this.queryParam.endCreateTime, this.rangeDateFormat.end)
|
||||
if (!startValue || !endValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
/*
|
||||
* 创建时间结束禁用
|
||||
* */
|
||||
disabledEndCreateDate(endValue) {
|
||||
const startValue = this.queryParam.startCreateTime && moment(this.queryParam.startCreateTime, this.rangeDateFormat.begin)
|
||||
if (!endValue || !startValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xl="10" :lg="10" :md="10" :sm="24">
|
||||
<a-form-item label="成员单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入成员单位" v-model="queryParam.chargeCompanyTemporaryName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button>
|
||||
<a-button icon="reload" @click="searchReset">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<a-table
|
||||
ref="table"
|
||||
size="middle"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange">
|
||||
|
||||
<!-- 项目名称-->
|
||||
<template slot="projectName" slot-scope="text, record">
|
||||
<j-ellipsis :value="text" :length="18" class="primary-color" @click="openDetailModal(record)"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
<j-ellipsis :value="text" :length="18"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record">
|
||||
<a @click="handleEdit(record)">编辑</a>
|
||||
<a @click="handleDelete(record.id)">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<template slot="footer">
|
||||
<a-button @click="handleCancel">关闭</a-button>
|
||||
<a-button type="primary" @click="handleOk" v-preventclick>确定</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import {publishRemind} from '@api/incomePaymentsApi'
|
||||
|
||||
export default {
|
||||
name: 'PublishRemindModal',
|
||||
mixins: [JeroListMixin],
|
||||
data() {
|
||||
return {
|
||||
title: '操作',
|
||||
width: 800,
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this),
|
||||
disableMixinCreated: true,
|
||||
columns: [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '成员单位',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'chargeCompanyTemporaryName',
|
||||
},
|
||||
{
|
||||
title: '企业联系人',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'contactsTemporaryNameOne',
|
||||
},
|
||||
],
|
||||
model: {},
|
||||
labelCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 6}
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 18}
|
||||
},
|
||||
url: {
|
||||
add: '/project/payCommonProject/add',
|
||||
edit: '/project/payCommonProject/edit',
|
||||
list: '/project/payWorkingGroupSubitem/list',
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open() {
|
||||
this.visible = true
|
||||
this.filters.workingGroupId = this.$route.query.workingGroupProjectId
|
||||
this.loadData(1)
|
||||
},
|
||||
close() {
|
||||
this.$emit('close')
|
||||
this.visible = false
|
||||
},
|
||||
handleOk() {
|
||||
if (this.selectionRows.length === 0) {
|
||||
this.$message.warn('请至少选择一个成员单位')
|
||||
return
|
||||
} else {
|
||||
const param = {
|
||||
arr:this.selectionRows
|
||||
}
|
||||
publishRemind(param).then(res => {
|
||||
if(res.success){
|
||||
this.$message.success(res.message)
|
||||
this.handleCancel()
|
||||
}else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
handleCancel() {
|
||||
this.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
</style>
|
||||
Reference in New Issue
Block a user