Files
UNION_NSI/target/classes/views/platform/meeting/manage/add.html
T
2026-09-08 19:49:21 +08:00

263 lines
12 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<guava>
<el-card shadow="never">
<template #header>
<el-row type="flex">
<el-col :span="12" v-if="id">
<el-button @click="location.replace('/platform/meeting/manage')"
icon="el-icon-back"
style="font-size: 16px" type="text">返回
</el-button>
</el-col>
<el-col :span="12" class="text-right">
<h3 style="color: rgb(24, 103, 176);">{{h3Title}}</h3>
</el-col>
</el-row>
</template>
<!--<template #header>
<h3 style="color: #1867b0">发起会议</h3>
</template>-->
<el-form :model="formData" :rules="formRules" label-width="120px" ref="addForm">
<vi-title title="会议基础信息"></vi-title>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item label="会议名称" prop="meetingName">
<el-input :disabled="hold" @input="meetingNameInput"
placeholder="请填写会议名称" type="text"
v-model.trim="formData.meetingName"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议地点" prop="location">
<el-input :disabled="hold" placeholder="请填写会议地点"
type="text" v-model.trim="formData.location"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item label="会议类型" prop="typeId">
<el-select :disabled="hold" filterable placeholder="请选择会议类型"
style="width: 100%" v-model="formData.typeId">
<el-option :label="item.meetingTypeName" :value="item.id"
v-for="item in meetingTypeList"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<!--<el-form-item label="会议时间" prop="meetingTime">
<el-date-picker end-placeholder="结束日期"
format="yyyy-MM-dd HH:mm:ss"
range-separator="至" start-placeholder="开始日期"
style="width: 100%"
:disabled="hold"
type="datetimerange"
v-model="formData.meetingTime"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>-->
<el-form-item label="会议时间" prop="meetTime">
<el-date-picker :disabled="hold"
format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择会议时间"
style="width: 100%"
type="datetime"
v-model="formData.meetTime"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="8">
<el-form-item label="是否可以请假" prop="isCanLeave">
<el-radio :disabled="hold" :label="true" border size="medium" v-model="formData.isCanLeave">
允许
</el-radio>
<el-radio :disabled="hold" :label="false" border size="medium"
v-model="formData.isCanLeave">不允许
</el-radio>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="是否多次签到">
<el-checkbox v-model="formData.manySign"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-if="formData.isCanLeave">
<el-form-item label="请假截止时间" prop="leaveDeadline">
<el-date-picker :disabled="hold" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择日期" style="width: 100%"
type="datetime"
v-model="formData.leaveDeadline"
value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="会议描述" prop="meetingDescription">
<el-input :disabled="hold" :rows="4" maxlength="400" placeholder="请输入会议描述"
type="textarea" v-model="formData.meetingDescription"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex" v-show="formData.manySign">
<el-col :span="24">
<el-form-item label="场次">
<!--# include("/platform/meeting/manage/add_time_period.html"){} #-->
</el-form-item>
</el-col>
</el-row>
<!--# include("/platform/meeting/manage/add_users.html"){} #-->
</el-form>
<el-row justify="end" style="margin-top: 20px" type="flex" v-if="!hold">
<el-button @click="doSubmit" type="primary">提交</el-button>
</el-row>
</el-card>
</guava>
</div>
<script>
<!--# include("/platform/meeting/includeJs/meetingUtil.js"){} #-->
const meetUtil = new meetingUtil()
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'msg-notify': httpVueLoader('/components/msgNotify/msgNotify.vue'),
},
data() {
const that = this
return {
h3Title: "发起会议",
id: "",
notify_id: "",
hold: false,
meetingTypeList: [],
formData: {
isCanLeave: false,
meetingTimePeriods: [{timePeriodName: '', startTime: '', endTime: ''}],
sendTypes: [],
meetingTime: [],
meetTime: '',
},
pickerOptions: {
disabledDate(time) {
return (
moment(time.getTime()).format("YYYY-MM-DD HH:mm:ss") > that.formData.meetingTime[1] || moment(time.getTime()).format("YYYY-MM-DD HH:mm:ss") < that.formData.meetingTime[0]
);
}
},
formRules: {
meetingName: [{required: true, message: '请填写会议名称', trigger: ['blur', 'change']}],
location: [{required: true, message: '请填写会议地点', trigger: ['blur', 'change']}],
typeId: [{required: true, message: '请选择会议类型', trigger: ['blur', 'change']}],
meetingTime: [{required: true, message: '请选择会议时间', trigger: ['blur', 'change']}],
meetTime: [{required: true, message: '请选择会议时间', trigger: ['blur', 'change']}],
sendType: [{required: true, message: '请选择发送方式', trigger: ['blur', 'change']}],
msgContent: [{required: true, message: '请填写消息内容', trigger: ['blur', 'change']}],
leaveDeadline: [{required: true, message: '请选择请假截止时间', trigger: ['blur', 'change']}],
isCanLeave: [{required: true, message: '请选择', trigger: ['blur', 'change']}],
},
msgData: {
type: "",
sendTypes: []
}
}
},
methods: {
meetingNameInput(val) {
this.$set(this.msgData, "title", val)
this.formData.meetingTimePeriods[0].timePeriodName = val
},
async doSubmit() {
const valid = await this.$refs["addForm"].validate()
if (valid) {
const submitFormData = clone(this.formData)
submitFormData.startTime = this.formData.meetingTime && this.formData.meetingTime.length > 0 ? this.formData.meetingTime[0] : ''
submitFormData.endTime = this.formData.meetingTime && this.formData.meetingTime.length > 1 ? this.formData.meetingTime[1] : ''
if (this.msgData.sendTypes.length > 0) {
const confirm = await this.$confirm('下一步需要到消息管理系统中择机发送短信通知', '提示', {
confirmButtonText: '确定',
showCancelButton: false,
type: 'warning'
})
}
const resp = await $.post("/platform/meeting/manage" + (this.formData.id ? "/doEdit" : "/doAdd"), {
meetingInfo: JSON.stringify(submitFormData),
msgNotify: JSON.stringify(this.msgData),
users: JSON.stringify(this.msgData.users.length > 0 ? this.msgData.users.map(v => v.id) : this.msgData.users),
})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
sublime.jumpPagePjax('/platform/meeting/manage')
}
}
},
async findOne(id) {
const {data} = await $.post("/platform/meeting/manage/findOne", {id})
data.meetingTime = [data.startTime, data.endTime]
data.meetTime = data.startTime
this.formData = data
}
},
async created() {
this.meetingTypeList = await meetUtil.getAllMeetingType()
this.id = GetQueryString("id")
this.notify_id = GetQueryString("notifyId")
if (this.id) {
this.hold = GetQueryString("hold")
this.findOne(this.id)
this.h3Title = this.hold === "true" ? "查看会议" : "编辑会议"
this.hold = this.hold !== 'false'
}
},
watch: {
'formData.meetingTime'(val) {
if (val) {
this.formData.meetingTimePeriods[0].startTime = val[0]
this.formData.meetingTimePeriods[0].endTime = val[1]
}
},
'formData.meetTime'(val) {
if (val) {
//结束时间往后加30分钟
const endTime = moment(val).add(30, 'm').format('YYYY-MM-DD HH:mm:ss')
this.formData.meetingTime = [val, endTime]
}
}
},
})
</script>
<!--#
}
#-->