Files
UNION_HUTB/target/classes/views/platform/jdh/hyhd/index.html
T
2026-09-09 09:14:28 +08:00

648 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.flex {
display: flex;
}
.flex > .el-form-item {
width: 50% !important;
}
.el-form-item .el-select {
width: 100% !important;
}
</style>
<div id="app" v-cloak>
<guava>
<el-card shadow="never">
<div class="btn-group tool-button">
<el-input clearable placeholder="请输入名称查询" style="width: 250px;" v-model="pageForm.name"></el-input>
</div>
<div class="btn-group tool-button">
<el-select clearable filterable placeholder="请选择教代会" v-model="pageForm.jdhid">
<el-option
:key="item.id"
:label="item.jdhallname"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-select clearable placeholder="类型" style="width: 100px;" v-model="pageForm.lx">
<el-option label="会议" value="1"></el-option>
<el-option label="活动" value="2"></el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
</div>
<div class="pull-right offscreen-right">
<el-button @click="openAdd" size="medium" type="primary"><i class="ti-plus"></i> 新增会议及活动</el-button>
</div>
</el-card>
<el-card class="mt20" shadow="never">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column align="center" align="center" header-align="center" header-align="center" label="序号"
type="index">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="会议或活动名称" prop="name"></el-table-column>
<el-table-column align="center" header-align="center" label="教代会" prop="jdhallname"></el-table-column>
<el-table-column align="center" header-align="center" label="开始时间" prop="kssj"></el-table-column>
<el-table-column align="center" header-align="center" label="结束时间" prop="jssj"></el-table-column>
<el-table-column align="center" header-align="center" label="场地" prop="cd"></el-table-column>
<el-table-column align="center" header-align="center" label="类型" prop="lx">
<template slot-scope="scope">
<span class="text-primary" v-if="scope.row.lx===1">会议</span>
<span class="text-primary" v-if="scope.row.lx===2">活动</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="状态">
<template slot-scope="{row}">
<span class="text-warning" v-if="moment().format('YYYY-MM-DD HH:mm:ss')<row.kssj">准备中</span>
<span class="text-primary"
v-if="row.kssj<moment().format('YYYY-MM-DD HH:mm:ss') && moment().format('YYYY-MM-DD HH:mm:ss')<row.jssj">进行中</span>
<span class="text-danger" v-if="moment().format('YYYY-MM-DD HH:mm:ss')>row.jssj">已结束</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="350">
<template slot-scope="{row}">
<el-button @click="openView(row.id)" size="mini">查看</el-button>
<el-button @click="openCy(row.id)" size="mini" v-if="moment().format('YYYY-MM-DD')<row.jssj">
人员设置
</el-button>
<el-button @click="openEdit(row)" size="mini" type="primary">编辑</el-button>
<el-button @click="doDelete(row.id)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</guava>
<el-dialog :visible.sync="addDialogVisible" title="新增会议及活动">
<el-form :model="formData" :rules="rules" label-width="100px" ref="AddForm">
<el-form-item label="发布人">
<el-input value="${@shiro.getPrincipalProperty('username')}"></el-input>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input maxlength="30" v-model="formData.name"></el-input>
</el-form-item>
<div class="flex">
<el-form-item label="类型" prop="lx">
<el-select v-model="formData.lx">
<el-option label="会议" value="1"></el-option>
<el-option label="活动" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会" prop="jdhid">
<el-select v-model="formData.jdhid">
<el-option
:key="item.id"
:label="item.jdhallname"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="flex">
<el-form-item label="时间" prop="sj">
<el-date-picker
:default-time="['12:00:00', '08:00:00']"
end-placeholder="结束日期"
start-placeholder="开始日期"
style="width: 100%"
type="datetimerange"
v-model="formData.sj"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item label="经费预算" prop="jfys">
<el-input oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请输入内容" v-model="formData.jfys">
<template slot="append"></template>
</el-input>
</el-form-item>
</div>
<el-form-item label="场地" prop="cd">
<el-input maxlength="100" placeholder="请输入场地地点" v-model="formData.cd">
</el-input>
</el-form-item>
<el-form-item label="内容" prop="nr">
<el-input maxlength="200" rows="5" type="textarea" v-model="formData.nr">
</el-input>
</el-form-item>
<el-form-item label="纪要" prop="jy">
<el-input maxlength="200" rows="5" type="textarea" v-model="formData.jy">
</el-input>
</el-form-item>
<el-form-item label="附件">
<wp-upload :upload-auto="false"
allow-files="['doc','docx']"
max-file-number="1"
ref="addwp"></wp-upload>
<div>只能上传doc、docx类型的文件</div>
</el-form-item>
<!-- <el-form-item label="附件上传">-->
<!-- <el-upload-->
<!-- name="file"-->
<!-- multiple="false"-->
<!-- :auto-upload="false"-->
<!-- limit="1"-->
<!-- action="#"-->
<!-- :on-change="handleChange"-->
<!-- :file-list="fileList">-->
<!-- <el-button size="small" type="primary">选取文件</el-button>-->
<!-- </el-upload>-->
<!-- </el-form-item>-->
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button @click="doAdd" type="primary">确 定</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="editDialogVisible" title="编辑会议及活动">
<el-form :model="formData" :rules="rules" label-width="100px" ref="EditForm">
<el-form-item label="发布人">
<el-input v-model="formData.username"></el-input>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input maxlength="30" v-model="formData.name"></el-input>
</el-form-item>
<div class="flex">
<el-form-item label="类型" prop="lx">
<el-select v-model="formData.lx">
<el-option label="会议" value="1"></el-option>
<el-option label="活动" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会" prop="jdhid">
<el-select v-model="formData.jdhid">
<el-option
:key="item.id"
:label="item.jdhallname"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="flex">
<el-form-item label="时间" prop="sj">
<el-date-picker
:default-time="['12:00:00', '08:00:00']"
end-placeholder="结束日期"
start-placeholder="开始日期"
style="width: 100%"
type="datetimerange"
v-model="formData.sj"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item label="经费预算" prop="jfys">
<el-input oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请输入内容" v-model="formData.jfys">
<template slot="append"></template>
</el-input>
</el-form-item>
</div>
<el-form-item label="场地" prop="cd">
<el-input maxlength="100" placeholder="请输入场地地点" v-model="formData.cd">
</el-input>
</el-form-item>
<el-form-item label="内容" prop="nr">
<el-input maxlength="200" rows="5" type="textarea" v-model="formData.nr">
</el-input>
</el-form-item>
<el-form-item label="纪要" prop="jy">
<el-input maxlength="200" rows="5" type="textarea" v-model="formData.jy">
</el-input>
</el-form-item>
<el-form-item label="附件">
<wp-upload :file-list="fileList"
:upload-auto="false"
@on-delete="onDeleteFile"
allow-files="['doc','docx']"
max-file-number="1"
ref="editwp"></wp-upload>
<div>只能上传doc、docx类型的文件</div>
</el-form-item>
<!-- <el-form-item label="附件上传">
<el-upload
name="file"
multiple="false"
:auto-upload="false"
limit="1"
action="#"
:on-change="handleChange"
:on-remove="handleRemove"
:file-list="fileList">
<el-button size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">只能上传doc/docx文件</div>
</el-upload>
</el-form-item>-->
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button @click="doEdit" type="primary">确 定</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="userDialogVisible" title="参与人员设置">
<el-row>
<div class="btn-group tool-button">
<div>
<el-select
:remote-method="queryUser"
filterable
placeholder="请输入工号或姓名关键字"
remote
reserve-keyword
size="mini"
style="width: 400px"
v-model="userFormData.userid"
>
<el-option
:key="item.id"
:label="item.loginname+' '+item.username+' '+item.dwname"
:value="item.id"
v-for="item in userList">
</el-option>
</el-select>
</div>
</div>
<div class="btn-group tool-button">
<el-button @click="doAddUser" icon="el-icon-circle-plus" size="mini" type="primary">添加</el-button>
</div>
</el-row>
<el-row style="margin-top: 15px">
<el-table :data="userTableData" height="350">
<el-table-column align="center" header-align="center" label="工号" prop="loginname"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="姓名" prop="username"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex" sortable></el-table-column>
<el-table-column align="center" header-align="center" label="所属单位" prop="dwname"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="手机号码" prop="mobile"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="150">
<template slot-scope="scope">
<el-button @click="doDeleteUser(scope.row.id)" icon="el-icon-delete" size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<span class="dialog-footer" slot="footer">
<el-button @click="userDialogVisible = false" type="danger">关 闭</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="viewDialogVisible" title="查看">
<el-form label-position="left" label-suffix="" style="padding: 20px 0">
<el-row gutter="20">
<vi-title title="基础信息"></vi-title>
<el-col :span="12">
<el-form-item label="教代会">
{{ viewData.data.jdhallname }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型">
{{viewData.data.lx===1?'会议':'活动'}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开始时间">
{{viewData.data.kssj}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束时间">
{{viewData.data.jssj}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发布人">
{{viewData.data.username}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经费预算">
{{viewData.data.jfys}}元
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="内容">
{{viewData.data.nr}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="纪要">
{{viewData.data.jy}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="参与人员">
<el-tag class="mr5" effect="light"
type="info" v-for="u in viewData.userList" v-if="viewData.userList.length>0">
{{u.username}}
</el-tag>
<td class="content" colspan="4" v-else>
<div class="text-center">暂无</div>
</td>
</el-form-item>
</el-col>
<el-col :span="24">
<vi-title title="附件"></vi-title>
<el-form-item label="附件">
<el-link @click="dd3s.preview(f.filepath,f.id)" type="primary" v-for="f in viewData.fileList"
v-if="viewData.fileList.length>0">
{{f.filename}}
</el-link>
<td class="content" colspan="4" v-else>
<div class="text-center">暂无</div>
</td>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</div>
<script>
const rules = {
name: [{required: true, message: '请填写名称', trigger: ['blur', 'change']}],
lx: [{required: true, message: '请选择类型', trigger: ['blur', 'change']}],
jdhid: [{required: true, message: '请选择教代会', trigger: ['blur', 'change']}],
sj: [{required: true, message: '请选择时间', trigger: ['blur', 'change']}],
jfys: [{required: true, message: '请填写经费预算', trigger: ['blur', 'change']}],
cd: [{required: true, message: '请填写场地名称', trigger: ['blur', 'change']}],
nr: [{required: true, message: '请填写内容', trigger: ['blur', 'change']}],
jy: [{required: true, message: '请填写纪要', trigger: ['blur', 'change']}],
}
let vue = new Vue({
el: '#app',
data() {
return {
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
name: '',
lx: null
},
jdhList: [],
addDialogVisible: false,
formData: {},
rules: rules,
tableData: [],
fileList: [],
editDialogVisible: false,
delFile: [],
userDialogVisible: false,
userFormData: {},
userTableData: [],
userList: [],
viewData: {
data: {},
fileList: [],
userList: []
},
viewDialogVisible: false
}
},
methods: {
onDeleteFile(file) {
this.delFile.push({fileid: file.fileDes.id, filepath: file.fileDes.filepath})
},
openAdd() {
this.formData = {}
if (this.$refs.addwp) {
this.$refs.addwp.clean()
}
this.addDialogVisible = true
},
doAdd() {
this.$refs['AddForm'].validate(valid => {
if (valid) {
this.formData.kssj = this.formData.sj[0]
this.formData.jssj = this.formData.sj[1]
let formData = new FormData()
formData.append("data", JSON.stringify(this.formData))
// this.fileList.forEach(val=>{
// formData.append("file",val.raw)
// })
if (this.$refs.addwp.fileShowArray.length > 0) {
formData.append("file", this.$refs.addwp.fileShowArray[0].file)
}
$.ajax({
url: base + '/platform/jdh/hyjhd/doAdd',
type: "post",
data: formData,
processData: false,
contentType: false
}).then(res => {
if (res.code === 0) {
this.addDialogVisible = false
this.pageData()
this.$message.success(res.msg)
}
})
}
})
},
pageData() {
sublime.showLoadingbar()
$.post(base + '/platform/jdh/hyjhd/pageData', this.pageForm).then(res => {
sublime.closeLoadingbar()
if (res.code === 0) {
this.tableData = res.data.list
this.pageForm.totalCount = res.data.totalCount
}
})
},
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
},
pageOrder(column) {
this.pageForm.pageOrderName = column.prop
this.pageForm.pageOrderBy = column.order
this.pageData()
},
pageNumberChange(val) {
this.pageForm.pageNumber = val;
this.pageData()
},
pageSizeChange(val) {
this.pageForm.pageSize = val;
this.pageData()
},
openEdit(row) {
this.editDialogVisible = true
$.get(base + '/platform/jdh/hyjhd/findOne', {id: row.id}).then(res => {
if (res.code === 0) {
this.formData = res.data.data
this.formData.sj = [res.data.data.kssj, res.data.data.jssj]
this.formData.lx = this.formData.lx.toString()
for (let f of res.data.fileList) {
f.name = f.filename
f.url = '${AppFileDomain!}' + f.filepath
}
this.fileList = res.data.fileList
this.$nextTick(() => {
this.$refs.editwp.refreshFileList()
})
}
})
},
doEdit() {
this.$refs['EditForm'].validate(valid => {
if (valid) {
this.formData.kssj = this.formData.sj[0]
this.formData.jssj = this.formData.sj[1]
let formData = new FormData()
formData.append("data", JSON.stringify(this.formData))
formData.append("delFile", JSON.stringify(this.delFile))
if (this.$refs.editwp.fileShowArray.length > 0) {
if (this.$refs.editwp.fileShowArray[0].status === 0) {
formData.append("file", this.$refs.editwp.fileShowArray[0].file)
}
}
$.ajax({
url: base + '/platform/jdh/hyjhd/doEdit',
type: "post",
data: formData,
processData: false,
contentType: false
}).then(res => {
if (res.code === 0) {
this.editDialogVisible = false
this.pageData()
this.$message.success(res.msg)
}
})
}
})
},
doDelete(id) {
this.$confirm('确认删除吗,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post(base + '/platform/jdh/hyjhd/doDelete', {id: id}).then(res => {
if (res.code === 0) {
console.log(res)
this.$message.success(res.msg)
this.pageData()
}
})
}).catch(() => {
})
},
openCy(id) {
this.userFormData.id = id
this.userData()
this.userDialogVisible = true
},
userData(id) {
$.get(base + '/platform/jdh/hyjhd/userData', {id: this.userFormData.id}).then(res => {
if (res.code === 0) {
this.userTableData = res.data
}
})
},
queryUser(query) {
if (query !== '') {
$.get(base + '/platform/jdh/hyjhd/queryUser', {
query: query,
id: this.userFormData.id
}).then(res => {
if (res.code === 0) {
this.userList = res.data
}
})
}
},
doAddUser() {
if (this.userFormData.userid === '') {
this.$message.info('请先选择用户!')
return
}
$.post(base + '/platform/jdh/hyjhd/doAddUser', this.userFormData).then(res => {
if (res.code === 0) {
this.$message.success(res.msg)
this.userFormData.userid = ''
this.userList = []
this.userData()
}
})
},
doDeleteUser(userid) {
$.post(base + '/platform/jdh/hyjhd/doDeleteUser', {
id: this.userFormData.id,
userid: userid
}).then(res => {
if (res.code === 0) {
this.$message.success(res.msg)
this.userFormData.userid = ''
this.userList = []
this.userData()
}
})
},
openView(id) {
this.viewDialogVisible = true
$.get(base + '/platform/jdh/hyjhd/findOne', {id: id}).then(res => {
if (res.code === 0) {
this.viewData = res.data
this.viewData.userList = []
$.get(base + '/platform/jdh/hyjhd/userData', {id: id}).then(res => {
if (res.code === 0) {
this.viewData.userList = res.data
}
})
}
})
}
},
async created() {
this.jdhList = await getOpenJdh()
if (this.jdhList.length > 0) {
this.pageForm.jdhid = this.jdhList[0].id
this.pageData()
}
}
})
</script>
<!--#
}
#-->