This commit is contained in:
2025-10-29 16:24:34 +08:00
parent c247c9a4d1
commit 291f307f04
2 changed files with 93 additions and 47 deletions
@@ -38,6 +38,13 @@ public class Teacher_congress_meeting extends BaseModel {
@Size(max = 32)
private String type;
@Column
@Comment("会议活动所属类型(delegation:代表团/union:分工会)")
@ColDefine(type = ColType.VARCHAR)
@NotBlank(message = "会议活动所属类型不能为空")
@Size(max = 32)
private String meetingType;
@Column
@Comment("名称")
@ColDefine(type = ColType.VARCHAR, width = 100)
@@ -7,16 +7,17 @@ layout("/layouts/platform.html"){
<search @search="doSearch">
<search-item label="教代会">
<el-select v-model="pageForm.sessionId" style="width: 100%">
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id" :key="item.id"></el-option>
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id"
:key="item.id"></el-option>
</el-select>
</search-item>
<search-item label="类型">
<el-select v-model="pageForm.type" clearable filterable placeholder="请选择类型">
<el-option
v-for="item in dict.type.TEACHER_CONGRESS_MEETING_TYPE"
:label="item.name"
:value="item.code"
:key="item.id"
v-for="item in dict.type.TEACHER_CONGRESS_MEETING_TYPE"
:label="item.name"
:value="item.code"
:key="item.id"
></el-option>
</el-select>
</search-item>
@@ -35,7 +36,8 @@ layout("/layouts/platform.html"){
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="sessionName" label="教代会">
<template scope="scope">
<dict-tag :options="sessionOptions" :value="scope.row.sessionId" option_value="id" option_label="fullName"></dict-tag>
<dict-tag :options="sessionOptions" :value="scope.row.sessionId" option_value="id"
option_label="fullName"></dict-tag>
</template>
</el-table-column>
<el-table-column prop="name" label="名称"></el-table-column>
@@ -58,49 +60,86 @@ layout("/layouts/platform.html"){
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<el-dialog :title="formData.id ? '编辑':'新增'" :visible.sync="dialogFormVisible" width="60%" :close-on-click-modal="false">
<el-form :model="formData" ref="formRef" size="small" label-width="120px" :rules="formRules">
<el-form-item label="发布人">
<el-input :value="$store.state.user.username"></el-input>
</el-form-item>
<el-form-item prop="sessionId" label="教代会">
<el-select v-model="formData.sessionId">
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" maxlength="100" placeholder="请输入名称"></el-input>
</el-form-item>
<el-form-item label="类型" prop="type">
<dict-select v-model="formData.type" code="TEACHER_CONGRESS_MEETING_TYPE" placeholder="请选择类型"></dict-select>
</el-form-item>
<div class="flex">
<el-form-item label="时间" prop="times">
<el-date-picker
style="width: 100%"
v-model="formData.times"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['12:00:00', '08:00:00']"
></el-date-picker>
</el-form-item>
<el-form-item label="经费预算" prop="budget">
<el-input placeholder="请输入经费预算" v-model="formData.budget" maxlength="2000"></el-input>
</el-form-item>
</div>
<el-dialog :title="formData.id ? '编辑':'新增'" :visible.sync="dialogFormVisible" width="60%"
:close-on-click-modal="false">
<el-form :model="formData" ref="formRef" size="small" label-width="140px" :rules="formRules">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="发布人">
<el-input :value="$store.state.user.username" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工号">
<el-input :value="$store.state.user.loginname" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sessionId" label="教代会">
<el-select v-model="formData.sessionId" style="width: 100%;" placeholder="请选择教代会">
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id"
:key="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="meetingType" label="会议活动所属类型">
<el-select v-model="formData.meetingType" style="width: 100%;" placeholder="请选择会议活动所属类型">
<el-option label="代表团会议活动" value="delegation"
v-if="$auth.hasRole('SYSADMIN')
|| $auth.hasRole('SCHOOL_UNION_ADMIN')
|| $auth.hasRole('TEACHER_CONGRESS_DELEGATION_HEAD')"></el-option>
<el-option label="分工会会议活动" value="union"
v-if="$auth.hasRole('SYSADMIN')
|| $auth.hasRole('SCHOOL_UNION_ADMIN')
|| $auth.hasRole('BRANCH_UNION_CHAIRMAN')"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议活动名称" prop="name">
<el-input v-model="formData.name" maxlength="100" placeholder="请输入名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议活动类型" prop="type">
<dict-select v-model="formData.type" code="TEACHER_CONGRESS_MEETING_TYPE"
placeholder="请选择类型"></dict-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议活动时间" prop="times">
<el-date-picker
style="width: 100%"
v-model="formData.times"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['12:00:00', '08:00:00']"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经费预算" prop="budget">
<el-input placeholder="请输入经费预算" v-model="formData.budget" maxlength="2000"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="场地" prop="site">
<el-input placeholder="请输入场地地点" v-model="formData.site" maxlength="50"></el-input>
</el-form-item>
<el-form-item label="内容" prop="content">
<el-input v-model="formData.content" type="textarea" rows="5" maxlength="2000" show-word-limit></el-input>
<el-input v-model="formData.content" type="textarea" rows="5" maxlength="2000"
show-word-limit></el-input>
</el-form-item>
<el-form-item label="纪要" prop="summary">
<el-input v-model="formData.summary" type="textarea" rows="5" maxlength="1000" show-word-limit></el-input>
<el-input v-model="formData.summary" type="textarea" rows="5" maxlength="1000"
show-word-limit></el-input>
</el-form-item>
<el-form-item label="附件" prop="files">
<file-upload :value.sync="formData.files" :upload_number="5" upload_result_category="array" complete_result></file-upload>
<file-upload :value.sync="formData.files" :upload_number="5" upload_result_category="array"
complete_result></file-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -141,9 +180,9 @@ layout("/layouts/platform.html"){
dialogFormVisible: false,
formRules: {
sessionId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
name: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
code: [{ required: true, message: "必填", trigger: ["change", "blur"] }]
sessionId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
name: [{required: true, message: "必填", trigger: ["change", "blur"]}],
code: [{required: true, message: "必填", trigger: ["change", "blur"]}]
},
sessionOptions: [],
typeOptions: [],
@@ -169,7 +208,7 @@ layout("/layouts/platform.html"){
},
openEdit(id) {
this.dialogFormVisible = true
this.$axios.post(loc() + "/findOne", { id }).then((res) => {
this.$axios.post(loc() + "/findOne", {id}).then((res) => {
if (res.code === 0) {
res.data.times = [res.data.startDateTime, res.data.endDateTime]
if (res.data.files) {
@@ -189,7 +228,7 @@ layout("/layouts/platform.html"){
const formData = this.formData
formData.startDateTime = this.formData.times[0]
formData.endDateTime = this.formData.times[1]
this.$axios.post(loc() + (this.formData.id ? "/update" : "/insert"), { data: JSON.stringify(formData) }).then((res) => {
this.$axios.post(loc() + (this.formData.id ? "/update" : "/insert"), {data: JSON.stringify(formData)}).then((res) => {
if (res.code === 0) {
this.dialogFormVisible = false
this.$message.success(res.msg)
@@ -201,7 +240,7 @@ layout("/layouts/platform.html"){
},
openView(id) {
this.viewDialogVisible = true
this.$axios.post(loc() + "/findOne", { id }).then((res) => {
this.$axios.post(loc() + "/findOne", {id}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}