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

229 lines
12 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.cus_icon {
font-size: 34px;
cursor: pointer;
}
.el-icon-circle-plus {
color: #236eb4;
}
.el-icon-remove {
color: #f56c6c;
}
</style>
<div id="app" v-cloak>
<guava>
<el-card shadow="never">
<template #header>
<h3 style="color: #1867b0">发起会议</h3>
</template>
<el-tabs type="card" v-model="activeName">
<el-tab-pane label="会议基础信息" name="first">
<template>
<vi-title title="会议基础信息"></vi-title>
<el-form :model="formData" :rules="formRules" label-width="120px" ref="addForm">
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item label="会议名称" prop="meetingName">
<el-input placeholder="请填写会议名称" type="text"
v-model.trim="formData.meetingName"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议地点" prop="meetingAddress">
<el-input placeholder="请填写会议地点" type="text"
v-model.trim="formData.meetingAddress"></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 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"
range-separator="至" start-placeholder="开始日期" style="width: 100%"
type="daterange"
v-model="formData.meetingTime"
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="formData.isMsgNotify === '1' ? '6' : '12'">
<el-form-item label="是否消息通知" prop="isMsgNotify">
<el-radio border label="1" size="medium" v-model="formData.isMsgNotify">
</el-radio>
<el-radio border label="2" size="medium" v-model="formData.isMsgNotify">
</el-radio>
</el-form-item>
</el-col>
<el-col :span="6" v-if="formData.isMsgNotify === '1'">
<el-form-item label="发送方式" prop="sendType">
<el-checkbox-group size="medium" v-model="formData.sendType">
<el-checkbox border label="msg">短信发送</el-checkbox>
<el-checkbox border label="WeChat">微信发送</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否可以请假" prop="isCanLeave">
<el-radio border label="yes" size="medium" v-model="formData.isCanLeave">允许
</el-radio>
<el-radio border label="no" size="medium" v-model="formData.isCanLeave">不允许
</el-radio>
</el-form-item>
</el-col>
<el-col :span="6" v-if="formData.isCanLeave === 'yes'">
<el-form-item label="请假截止时间" prop="leaveDeadline">
<el-date-picker format="yyyy-MM-dd" placeholder="请选择日期" style="width: 100%"
type="date"
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" v-if="formData.isMsgNotify === '1'">
<el-col :span="24">
<el-form-item label="消息内容" prop="msgContent">
<el-input :rows="4" placeholder="请输入消息内容" type="textarea"
v-model="formData.msgContent"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="24">
<el-form-item label="会议描述" prop="meetingDescribe">
<el-input :rows="4" placeholder="请输入会议描述" type="textarea"
v-model="formData.meetingDescribe"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
</el-tab-pane>
<el-tab-pane label="参与人员信息" name="second">
<template>
<vi-title title="参与人员信息"></vi-title>
<el-table :data="userTableData" style="width: 100%; margin-bottom: 20px">
<el-table-column label="用户名" prop="stateName"></el-table-column>
<el-table-column label="姓名" prop="reviewer"></el-table-column>
<el-table-column label="性别" prop="reviewer"></el-table-column>
<el-table-column label="所属单位" prop="reviewer"></el-table-column>
<el-table-column label="院级工会" prop="reviewer"></el-table-column>
</el-table>
</template>
</el-tab-pane>
</el-tabs>
<el-row justify="end" style="margin-top: 20px" type="flex">
<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],
data() {
return {
meetingTypeList: [],
activeName: 'first',
formData: {isMsgNotify: '2', sendType: [], isCanLeave: 'no'},
userTableData: [],
tableData: [{stateName: '', auditStateUserList: []}],
formRules: {
meetingName: [{required: true, message: '请填写会议名称', trigger: ['blur', 'change']}],
meetingAddress: [{required: true, message: '请填写会议地点', trigger: ['blur', 'change']}],
typeId: [{required: true, message: '请选择会议类型', trigger: ['blur', 'change']}],
meetingTime: [{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']}],
},
userList: [],
}
},
methods: {
async doSubmit() {
const valid = await this.$refs["addForm"].validate()
if (valid) {
if (this.formData.isCanLeave === 'yes') {
for (const [index, item] of this.tableData.entries()) {
if (item.stateName === '' || item.stateName === undefined) {
this.$notify({title: '警告', message: '第' + (index + 1) + '条审核节点名称不能为空', type: 'warning'})
return
}
if (item.auditStateUserList.length === 0) {
console.log(item.auditStateUserList)
this.$notify({title: '警告', message: '第' + (index + 1) + '条审核人不能为空', type: 'warning'})
return
}
}
}
//开始提交
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] : ''
delete submitFormData.meetingTime
submitFormData.meetingUserList = this.userTableData
const {code} = await $.post(loc() + "/doAdd", {
meetingInfo: JSON.stringify(submitFormData)
})
if (code === 0) {
this.$notify({title: '成功', message: '提交成功', type: 'success'})
}
}
},
},
async created() {
this.meetingTypeList = await meetUtil.getAllMeetingType()
},
watch: {
'tableData': {
handler: function (newValue, oldValue) {
},
deep: true,
}
},
})
</script>
<!--#
}
#-->