Browse Source

教育培训会议修改

master
luyue123456 6 months ago
parent
commit
80d7d9a96d
7 changed files with 737 additions and 5 deletions
  1. +63
    -0
      rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkMeetingController.java
  2. +80
    -0
      rwk-admin/src/main/resources/static/ruoyi/css/meeting.css
  3. +50
    -3
      rwk-admin/src/main/resources/templates/main.html
  4. +2
    -2
      rwk-admin/src/main/resources/templates/system/information/add.html
  5. +196
    -0
      rwk-admin/src/main/resources/templates/system/meeting/add.html
  6. +188
    -0
      rwk-admin/src/main/resources/templates/system/meeting/edit.html
  7. +158
    -0
      rwk-admin/src/main/resources/templates/system/meeting/meeting.html

+ 63
- 0
rwk-admin/src/main/java/com/rwk/web/controller/ability/RwkMeetingController.java View File

@@ -0,0 +1,63 @@
package com.rwk.web.controller.ability;

import com.rwk.common.core.controller.BaseController;
import com.rwk.common.core.page.TableDataInfo;
import com.rwk.system.domain.RwkStaffInformation;
import com.rwk.system.service.IRwkStaffInformationService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
@RequestMapping("/system/meeting")
public class RwkMeetingController extends BaseController {
private String prefix = "system/meeting";

@Autowired
private IRwkStaffInformationService rwkStaffInformationService;

@RequiresPermissions("system:meeting:view")
@GetMapping()
public String information()
{
return prefix + "/meeting";
}

/**
* 查询人员信息列表
*/
@RequiresPermissions("system:meeting:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(RwkStaffInformation rwkStaffInformation)
{
startPage();
List<RwkStaffInformation> list = rwkStaffInformationService.selectRwkStaffInformationList(rwkStaffInformation);
return getDataTable(list);
}

/**
* 修改人员信息
*/
@RequiresPermissions("system:meeting:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
return prefix + "/edit";
}

/**
* 修改人员信息
*/
@RequiresPermissions("system:meeting:add")
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}

}

+ 80
- 0
rwk-admin/src/main/resources/static/ruoyi/css/meeting.css View File

@@ -0,0 +1,80 @@
.tr-meeting tr{
border: 1px solid #CCCCCC;
border-radius: 10px;
height: 170px;
}

.meeting-introdution {
height: 32%!important;
width: 100%;
}
.meeting-content{
height: 100%;
}
.div-display{
display: inline-block;
}
.inline-meeting-div{
display: inline-block;
/*margin-top: -20px;*/
}
.meeting-pieChart1{
height:40%;
width: 30%;
margin-top: 50px;
}
.pieChart1{
height:100%;
width: 100%;
}
.meeting-add-input{
border: 0px;
outline: none;
}
.meeting-add-header{
height: 40px;
width: 100%;
font-size: 25px;
}
.meeting-add-content {
width: 98%;
height: 200px;
font-size: 18px;
font-family: 仿宋;
resize: none;
border: none;
outline: none;
}
.meeting-add-introdution {
height: 40%!important;
width: 100%;
}
.meeting-add-font{
font-size: 18px;
font-family: 仿宋;
}
.meeting-btn-add{
font-size: 20px;
height: 40px;
text-align: center!important;
align-content: center;
}
.meeting-add-files{
/*border: 1px solid #5897fb;*/
height: 173px;
width: 100%;
}

.meeting-edit-files{
/*border: 1px solid #5897fb;*/
height: 173px;
width: 35%;
margin-left: 20px;
}
.meeting-table tr td{
border: 1px solid black;
}

.meeting-table tr{
width: 100%;
}

+ 50
- 3
rwk-admin/src/main/resources/templates/main.html View File

@@ -17,7 +17,7 @@
<div class="travel" style="height: 68%;">
<div style="width: 30%;">
<div class="wddbrw_head">
<h1>职务层次情况</h1>
<h1>知联会职务</h1>
</div>
<div class="box" style="height: calc(50% - 50px);">
<div id="pieChart1" style="width: 100%; height: 100%;"></div>
@@ -39,7 +39,7 @@
<div class="arrange div2">
<div><img style="width: 40px;height: 40px;" src="/img/main/presidentOne.png"/></div>
<div style="margin-left: 20px;">
<div>会长</div>
<div>会长</div>
<span><span style="margin-right: 20px;color: #FF620D;">1</span>人</span>
</div>
</div>
@@ -51,6 +51,46 @@
</div>
</div>
</div>
<div class="wddbrw_head" style="margin-top: 10px">
<h1>近期培训活动</h1>
</div>
<div class="box" style="height: calc(82% - 50px);display: flex;margin: 0px 10px;">
<div style="width:98%;display: flex;height: 100%">
<table style="width: 100%;font-size: 18px">
<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>

<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>
<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>
<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>

<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>
<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>
<tr style="width: 100%">
<td style="width: 70%;text-align: left">***************************活动</td>
<td style="width: 20%;text-align: right"> 2024-01-09</td>
</tr>
</table>
</div>
</div>

</div>
<div style="width: 30%;">
<div class="wddbrw_head">
@@ -91,6 +131,7 @@
<script th:src="@{/ruoyi/js/common.js?v=4.7.3}"></script>
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.7.3}"></script>
<th:block th:include="include :: echarts-js" />
<th:block th:include="include :: footer" />
<script type="text/javascript">
var prefix = "[[@{/}]]" + "system/information";
init();
@@ -115,6 +156,12 @@
{name:'数据3',value:310},
{name:'数据4',value:335}
];


$(".cut").click(function () {
$('.cut').removeClass('active');
$(this).addClass('active');
});
var grid = {left: '10%', right: '6%', bottom: '3%', top:'6%'}
//饼图1
pieChartMethod('pieChart1',array1,"职务层次情况",'60%',"",grid,"",true);
@@ -139,7 +186,7 @@
axisTick: {
show: false,
}
}
};
var series = [{
name: '男',
type: 'bar',


+ 2
- 2
rwk-admin/src/main/resources/templates/system/information/add.html View File

@@ -44,7 +44,7 @@
<tr>
<td colspan="2">是否取得境外长期居留资格</td>
<td colspan="2"><input name="overseasResidencyStatus" class="form-control" type="text"></td>
<td colspan="2">取得国家</td>
<td colspan="2">取得<br>国家</td>
<td colspan="2"><input name="acquiringCountry" class="form-control" type="text"></td>
<td colspan="2">证件号</td>
<td colspan="6"><input name="idNumber" class="form-control" type="text"></td>
@@ -96,7 +96,7 @@
<tr>
<td colspan="2">工作单位及职务</td>
<td colspan="6"><input name="unitJob" class="form-control" type="text"></td>
<td colspan="2">技术职称</td>
<td colspan="2">技术<br>职称</td>
<td colspan="3"><input name="technicalTitle" class="form-control" type="text"></td>
<td colspan="2">专业特长</td>
<td colspan="3"><input name="speciality" class="form-control" type="text"></td>


+ 196
- 0
rwk-admin/src/main/resources/templates/system/meeting/add.html View File

@@ -0,0 +1,196 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增培训/活动信息')" />
<link th:href="@{/ruoyi/css/meeting.css}" rel="stylesheet"/>
<link th:href="@{/css/use/css1.css}" rel="stylesheet"/>
<th:block th:include="include :: bootstrap-duallistbox-css" />
<th:block th:include="include :: bootstrap-duallistbox-js" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<ul class="nav head_top" id="tab">
<div class="text-right hidden-print" style="float: right">
<button class="btn btn-unite" onclick="submitHandler()">保存</button>
</div>
</ul>
<form class="form-horizontal m" id="form-meeting-add">
<div>
<input class="meeting-add-input meeting-add-header" placeholder="请填写培训活动标题">
</div>
<hr>

<div class="col-md-12">
<div class="col-md-6">
<div class="form-group">
<div>
<textarea class=" meeting-add-content meeting-add-font" placeholder="请填写培训活动简介" ></textarea>
</div>
</div>
<hr style="width: 102%;margin-left: -30px">
<div class="form-group">
<div class="div-display">
<label class="meeting-add-font">培训日期:</label>
</div>
<div class="div-display">
<input type="text" class="time-input meeting-add-font" placeholder="请选择培训日期" name="date"/>
</div>
</div>
<div class="form-group">
<div class="div-display">
<label class="meeting-add-font">相关附件:</label>
</div>
<div class="div-display">
<button class="btn btn-unite meeting-add-font meeting-btn-add" onclick="">上 传</button>
</div>
</div>
<div class="form-group select-table table-striped meeting-add-files">
<table id="bootstrap-table">
</table>
</div>
</div>
<div class="col-md-6" style="height: 524px">
<div class="ibox" >
<div class="ibox-content">
<form id="form-user-add" action="#" class="wizard-big">
<select class="form-control dual_select" name="duallistbox_demo" multiple style="height: 350px;" >
<option th:each="ul,temp:${user}" th:value="${ul.loginName}" th:text="'('+${ul.dept.deptName}+') '+${ul.userName}"></option>
<!--<option th:each="ul,temp:${map}" th:value="${ul.value}" th:text="${ul.key}"></option>-->
</select>
</form>
</div>
</div>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-duallistbox-js" />
<script th:inline="javascript">
var prefix = ctx + "system/meeting";
var editFlag = [[${@permission.hasPermi('system:meeting:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:meeting:remove')}]];
$(function() {
var options = {
pagination:false,
sidePagination: "client",
showFooter: false,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
virtualScroll: true,
showHeader:false,
height:160,
modalName: "文件信息",
data:[
{id:1,name:"<<关于**********教育文件>>"},
{id:2,name:"<<关于**********活动文件>>"},
{id:4,name:"<<关于**********活动文件>>"},
{id:5,name:"<<关于**********活动文件>>"},
],
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'name',
title: '文件标题'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-unite btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="" >下载</a> ');
actions.push('<a class="btn btn-unite btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')">删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);


// 左右互选控件
var prefix = ctx + "flowable/copy";
$('.dual_select').bootstrapDualListbox({
nonSelectedListLabel: '未邀请人员',
selectedListLabel: '已邀请人员',
preserveSelectionOnMove: 'moved',
moveOnSelect: false, // 出现一个剪头,表示可以一次选择一个
filterTextClear: '搜索重置',
moveSelectedLabel: "添加",
moveAllLabel: '添加所有',
removeSelectedLabel: "移除",
removeAllLabel: '移除所有',
filterPlaceHolder:"模糊搜索",
infoTextEmpty : "无用户可选择",
infoTextFiltered:"搜索到 {0} 总共 {1}",
infoText: '共{0}个',
showFilterInputs: true, // 是否带搜索
selectorMinimalHeight: 160
});

function submitHandler() {
var title=$("#title").val();
var lcid=$("#id").val();
var namelc=$("#name").val();
var key=$("#key").val();
var mj=$("#mj").val();
var roomIds = $("#bootstrap-duallistbox-selected-list_duallistbox_demo").map(function(){
return $(this).val();
}).get().join(",");
// var name = $.table.selectColumns('userName');
// var id = $.table.selectColumns('userType')
if (roomIds.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
var data = {"name": roomIds,"title":title,"lcid":lcid,"namelc":namelc,"key":key,"mj":mj};
$.operate.save(prefix + "/add",data);

$.modal.close();
page_Path();
// parent.location.reload();
$.operate.successCallback(result);
}

// function submitHandler(){
//
// var roomIds = $("#bootstrap-duallistbox-selected-list_duallistbox_demo").map(function(){
// return $(this).val();
// }).get().join(",");
// alert("选中--"+roomIds);
// // $.ajax({
// //
// // })
// }
// 刷新页面
function page_Path(){
var obj = new Object();
obj._type = ""; // 页面刷新
obj._pagePath =""; // 需要刷新的路径
obj.denote = "backlog"; // 用于区别同页面不同方法
ws.send(JSON.stringify(obj))
if (ws) {
ws.send(JSON.stringify(obj));
} else {
alert("未连接到服务器");
}
}
function checkItem(){
// var arrays = $.table.selectColumns("userId");
var arrays = $.table.selectColumns("userCode");

alert(arrays);
}
});




</script>
</body>
</html>

+ 188
- 0
rwk-admin/src/main/resources/templates/system/meeting/edit.html View File

@@ -0,0 +1,188 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改人员信息')" />
<link th:href="@{/ruoyi/css/meeting.css}" rel="stylesheet"/>
<th:block th:include="include :: echarts-js" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content meeting-content">
<!-- <ul class="nav head_top" id="tab">-->
<!-- <div class="text-right hidden-print" style="float: right">-->
<!-- <button class="btn btn-unite" >打印签到表</button>-->
<!-- </div>-->

<!-- </ul>-->
<form class="form-horizontal m meeting-content" id="form-information-edit" th:object="${rwkStaffInformation}">
<div>
<h1 style="font-size: 25px">培训活动标题示例</h1>
</div>
<hr>
<div class="meeting-introdution meeting-add-font">
培训活动简介示例培训活动简介示例培训活动简介示例<br>
培训活动简介示例培训活动简介示例培训活动简介示例培训活动简介示例<br>
培训活动简介示例培训活动简介示例
<br>培训地点:*******楼****号***室
<br>培训时间:2024年5月21日
</div>
<hr>
<div class="inline-meeting-div meeting-edit-files">
<table id="bootstrap-table-file">
</table>
</div>
<div class="inline-meeting-div" style="float: left;width: 33%">
<table id="bootstrap-table" ></table>
</div>
<div class="inline-meeting-div meeting-pieChart1" >
<div id="pieChart1" class="pieChart1"></div>
</div>

</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">

$(document).ready(function() {
var pieChart = echarts.init(document.getElementById('pieChart1'));
var option = {
tooltip: {
trigger: 'item'
},
legend: {
top: '1%',
left: 'center'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 15,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 60, name: '签到人数' },
{ value: 20, name: '未签到人数' }
]
}
]
};
pieChart.setOption(option);
});

$(function() {
const options = {
height: 325,
pagination:false,
sidePagination: "client",
showFooter: false,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
virtualScroll: true,
data:[
{id:1,name:"姓名1",qiandao:"未签到",mobilePhone:19878327621},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762},
{id:2,name:"姓名2",qiandao:"已签到",mobilePhone:11987832762}
],
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'name',
title: '姓名'
},
{
field: 'qiandao',
title: '签到情况',
formatter: function (value, row, index) {
return qdstatusTools(row);
}
},
{
field: 'mobilePhone',
title: '手机号'
}]
};
$.table.init(options);

});

$(function() {
const options = {
id: 'bootstrap-table-file',
height: 325,
pagination:false,
sidePagination: "client",
showFooter: false,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
virtualScroll: true,
data:[
{id:1,name:"<<关于**********教育文件>>"},
{id:2,name:"<<关于**********活动文件>>"},
{id:4,name:"<<关于**********活动文件>>"},
{id:5,name:"<<关于**********活动文件>>"},
{id:5,name:"<<关于**********活动文件>>"},
{id:5,name:"<<关于**********活动文件>>"},
],
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'name',
title: '文件标题'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-unite btn-xs " href="javascript:void(0)" onclick="" >下载</a> ');
return actions.join('');
}
}]
};
$.table.init(options);

});

/* 用户状态显示 */
function qdstatusTools(row) {
if (row.qiandao == '已签到') {
return '<span class="badge badge-primary">已签到</span> ';
} else {
return '<span class="badge badge-danger">未签到</span> ';
}
}


</script>
</body>
</html>

+ 158
- 0
rwk-admin/src/main/resources/templates/system/meeting/meeting.html View File

@@ -0,0 +1,158 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('人员信息列表')" />
<link th:href="@{/ruoyi/css/meeting.css}" rel="stylesheet"/>
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: datetimepicker-js" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">

<div class="select-list">
<ul>
<li>
<label>培训标题:</label>
<input type="text" name="name"/>
</li>
<li>
<label class="control-label">培训日期:</label>
<input type="text" class="time-input" placeholder="请选择培训日期" name="startDate"/> -
<input type="text" class="time-input" placeholder="请选择培训日期" name="endDate"/>
</li>
<li>
<a class="btn btn-unite btn-rounded btn-sm" onclick="$.table.search()">搜索</a>
<a class="btn btn-unite btn-rounded btn-sm" onclick="$.form.reset()">重置</a>
</li>
</ul>
</div>
</form>
</div>

<div id="toolbar" role="group">
<a class="btn btn-unite" onclick="openModelAdd()" shiro:hasPermission="system:meeting:add">
添加
</a>
<a class="btn btn-unite single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:information:edit">
修改
</a>
<a class="btn btn-unite multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:information:remove">
删除
</a>
<a class="btn btn-unite" onclick="$.table.exportExcel()" shiro:hasPermission="system:information:export">
导出
</a>
</div>

<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:meeting:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:meeting:remove')}]];

var sexDatas = [[${@dict.getType('sys_user_sex')}]];
var prefix = ctx + "system/meeting";
$(function() {
var options = {
// url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
// removeUrl: prefix + "/remove",
// exportUrl: prefix + "/export",
pagination:false,
sidePagination: "client",
showFooter: false,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
virtualScroll: true,
modalName: "人员信息",
data:[
{id:1,name:"<<关于**********教育培训>>",num:"20/50",date:"2024-09-01"},
{id:2,name:"<<关于**********活动培训>>",num:"36/45",date:"2024-08-01"},
],
// mobileResponsive: true,
// cardView: true,
// showHeader:false,
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'name',
title: '培训标题'
},
{
field: 'num',
title: '参与人数/受邀人数',
},
{
field: 'date',
title: '培训时间'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-unite btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="openModel()" >编辑</a> ');
actions.push('<a class="btn btn-unite btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')">删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
function openModel() {
var options = {
title: '培训会议详情',
url: '/system/meeting/edit/1',
skin: 'layui-layer-gray',
btn: ['关闭'],
width:1400,
height:800,
maxmin: false,
full: false,
yes: function (index, layero) {
$.modal.close(index);
$.table.refresh(); // 关闭后刷新表格数据(不刷新页面)
}
};
$.modal.openOptions(options);
}

function openModelAdd() {
var options = {
title: '新增培训活动',
url: '/system/meeting/add',
skin: 'layui-layer-gray',
btn: ['关闭'],
width:1400,
height:800,
maxmin: false,
full: false,
yes: function (index, layero) {
$.modal.close(index);
$.table.refresh(); // 关闭后刷新表格数据(不刷新页面)
}
};
$.modal.openOptions(options);
}


</script>
</body>
</html>

Loading…
Cancel
Save