工作组会议维护

This commit is contained in:
fengachen
2021-09-06 18:15:08 +08:00
parent b11a6eb824
commit 9cdf7e4407
7 changed files with 733 additions and 321 deletions
+3
View File
@@ -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
}
+37
View File
@@ -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>