first commit

This commit is contained in:
2026-01-16 14:13:44 +08:00
commit 903ff8d495
34603 changed files with 8585054 additions and 0 deletions

View File

@ -0,0 +1,83 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
function selectFun(dialog, grid) {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas = '{"id":"'+item.id +'","id":"'+item.id +'"}';
});
return $.parseJSON(datas);
}
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgType.do',
striped : true,
rownumbers : true,
pagination : true,
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
pageSize : 50,
pageList : [ 20, 50, 100],
columns : [ [
{checkbox:true , field : 'ck'},
{width : '100', title : '类型名称', field : 'name', sortable : true, halign:'center' },
{width : '180', title : 'ID', field : 'id', sortable : true, halign:'center' },
{width : '80', title : '类型种类', field: 'pid', sortable : true, halign:'center',formatter : function(value, row) {
var str = '';
if(value=="personal"){
str = "个人消息";
}else if(value=="system"){
str = "系统消息";
}
return str;
}
},
] ],
toolbar : '#toolbar',
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
</script>
</head>
<body class="easyui-layout" data-options="fit:true,border:false">
<div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>名称</td>
<td><input name="search_name" class="easyui-textbox" style="width: 180px;" /></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,257 @@
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<% request.setAttribute("PatrolPlan_Weekly", com.sipai.entity.timeefficiency.TimeEfficiencyCommStr.PatrolPlan_Weekly); %>
<% request.setAttribute("PatrolPlan_Daily", com.sipai.entity.timeefficiency.TimeEfficiencyCommStr.PatrolPlan_Daily); %>
<% request.setAttribute("PatrolPlan_Monthly", com.sipai.entity.timeefficiency.TimeEfficiencyCommStr.PatrolPlan_Monthly); %>
<% request.setAttribute("Last_Day", com.sipai.entity.timeefficiency.PatrolPlan.Last_Day); %>
<!-- bootstrap switch -->
<link rel="stylesheet"
href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js"
charset="utf-8"></script>
<!-- 拖拽排序-->
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/jquery.tablednd.js"
charset="utf-8"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/plugins/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js"
charset="utf-8"></script>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/plugins/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css"/>
<style type="text/css">
.select2-container .select2-selection--single {
height: 34px;
line-height: 34px;
}
.select2-selection__arrow {
margin-top: 3px;
}
</style>
<script type="text/javascript">
/**
* 加载list
*/
var getListFun = function () {
$('#table_user_fre').bootstrapTable('destroy');
$("#table_user_fre").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/frequentContacts/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 50, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'asc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},
{
field: 'userName', // 返回json数据中的name
title: '姓名', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
width: '90%',
formatter: function (value, row, index) {
return value;
}
},
{
title: "操作",
align: 'center',
valign: 'middle',
width: '10%',
formatter: function (value, row, index) {
var buts = '';
buts += '<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun_Fre(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
buts = '<div class = "btn-group">' + buts + '</div>';
return buts;
}
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table_user_fre");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
})
}
/**
* 保存
* @param ids
*/
var saveUserFun = function (ids) {
$.post(ext.contextPath + '/msg/frequentContacts/dosave.do', {
ids: ids,
unitId: unitId
}, function (data) {
getListFun();
});
}
/**
* 新增弹窗
*/
var addFun_Fre = function () {
stopBubbleDefaultEvent();
var userIds = '';
$.post(ext.contextPath + '/user/layerUser.do', {
formId: "subForm_func",
hiddenId: "hiddenId",
textId: "textId",
userIds: userIds,
fucname: 'saveUserFun'
}, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
}
/**
* 单个删除
* @param id
*/
var deleteFun_Fre = function (id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/frequentContacts/delete.do', {id: id}, function (data) {
if (data == 1) {
$("#table_user_fre").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
};
/**
* 批量删除
*/
var deletesFun_Fre = function () {
stopBubbleDefaultEvent();
var checkedItems = $("#table_user_fre").bootstrapTable('getSelections');
var datas = "";
$.each(checkedItems, function (index, item) {
datas += item.id + ",";
});
if (datas == "") {
// showAlert('d', '请先选择记录', 'mainAlertdiv');
} else {
swal({
text: "您确定要删除这些记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/frequentContacts/deletes.do', {ids: datas}, function (data) {
if (data > 0) {
$("#table_user_fre").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
}
};
$(function () {
getListFun();
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
</form>
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">常用联系人</h3>
<div class="box-tools pull-right">
<a onclick="addFun_Fre()" class="btn btn-box-tool" data-toggle="tooltip"
title="新增"><i class="fa fa-plus"></i></a>
<a onclick="deletesFun_Fre()" class="btn btn-box-tool" data-toggle="tooltip"
title="删除"><i class="fa fa-minus"></i></a>
</div>
</div>
<div class="box-body ">
<table id="table_user_fre"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<%-- <button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>--%>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,95 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<script type="text/javascript">
function dosave() {
$.post(ext.contextPath + '/msg/saveMsgYM.do', $("#subForm").serialize(), function (data) {
if (data.res == "发送成功" || data.res == "消息发送成功") {
console.log(data.res);
$("#table").bootstrapTable('refresh');
closeModal('msgAddModal');
} else {
showAlert('d', data.res);
}
}, 'json');
}
var showUser4SelectsFun = function () {
var userIds = $("#recvid").val();
$.post(ext.contextPath + '/user/userForSelect.do', { formId: "subForm", hiddenId: "recvid", textId: "recvname", userIds: userIds }, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var showMsgType4SelectsFun = function () {
//var userIds = $("#recvid").val();
$.post(ext.contextPath + '/msg/msgTypeForSelect.do', { formId: "subForm", hiddenId: "mtype", textId: "mtypename" }, function (data) {
$("#msgType4SelectDiv").html(data);
openModal("msgType4SelectModal");
});
};
$(function () {
/*$("#sendway").select2({ minimumResultsForSe arch: -1 });
fixSelect2ToTool('sendway');*/
})
</script>
<div class="modal fade" id="msgAddModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增界面</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">消息类型</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="mtypename" name="mtypename" placeholder="消息类型"
value="" onclick="showMsgType4SelectsFun();">
<input id="mtype" name="mtype" type="hidden" value="P" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">接收人</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="recvname" name="recvname" placeholder="接收人"
value="" onclick="showUser4SelectsFun();">
<input id="recvid" name="recvid" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">内容</label>
<div class="col-sm-9">
<textarea type="text" class="form-control" id="content" name="content" placeholder="内容"
row="15" style="height:300px;"></textarea>
</div>
</div>
<!--<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-9">
<select class="form-control select2 " id="sendway" name="sendway" style="width: 220px;">
<option value="msg">仅消息发送</option>
<option value="sms">仅短信发送</option>
<option value="both" selected>消息+短信发送</option>
</select>
</div>
</div>-->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()">发送</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,175 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosaveAlarmlevel() {
var msguserids= $('#msgsend').val();
var smsuserids= $('#smssend').val();
$("#subAlarmlevelForm").bootstrapValidator('validate');//提交验证
if ($("#subAlarmlevelForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/msg/saveAlarmlevel.do", $("#subAlarmlevelForm").serialize()+"&msguserids="+msguserids+"&smsuserids="+smsuserids, function(data) {
if (data.res == 1) {
showAlert('s','保存成功');
closeModal('subAlarmlevelModal');
$("#table_user").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subAlarmlevelForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
alarmLevel: {
validators: {
notEmpty: {
message: '报警级别不能为空'
},
}
},
msgsend: {
validators: {
notEmpty: {
message: '消息用户不能为空'
},
}
},
smssend: {
validators: {
notEmpty: {
message: '短信用户不能为空'
},
}
},
sendway: {
validators: {
notEmpty: {
message: '发送方式不能为空'
},
}
},
msgrole: {
validators: {
notEmpty: {
message: '发送条件不能为空'
},
}
},
}
});
$(function(){
$("#alarmsendway").select2({minimumResultsForSearch: 10}).val("msg").trigger("change");
//选择用户
$(function() {
$.post(ext.contextPath +"/user/selectUserForMsgAlarmlevel.do", {}, function(data) {
var selelct =$("#msgsend").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
multiple : true,
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
},'json');
$.post(ext.contextPath +"/user/selectUserForMsgAlarmlevel.do", {}, function(data) {
var selelct =$("#smssend").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
multiple : true,
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
},'json');
});
})
</script>
<div class="modal fade" id="subAlarmlevelModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增消息报警级别</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subAlarmlevelForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<input id="state" name="state" type="hidden" value="<%=request.getParameter("msgid") %>" />
<div class="form-group">
<label class="col-sm-2 control-label">报警级别</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="alarmLevel" name ="alarmLevel" placeholder="请输入:一级报警、二级报警......" value=""/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">消息用户</label>
<div class="col-sm-10">
<select class="form-control select2" id="msgsend" name ="msgsend" style="width:270px"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">短信用户</label>
<div class="col-sm-10">
<select class="form-control select2" id="smssend" name ="smssend" style="width:270px"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-10">
<select id="alarmsendway" name="sendway" class="form-control select2" style="width:270px;">
<option value='msg'>仅消息发送</option>
<option value='sms'>仅短信发送</option>
<option value='both'>消息+短信发送</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送条件</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="msgrole" name ="msgrole" placeholder="请以(>1,=1,1-2)的形式输入" value=""/>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id="remark" name ="remark" placeholder="备注"></textarea>
</div>
</div> -->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosaveAlarmlevel()">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,188 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
$(function() {
$("#alarmsendway").select2({minimumResultsForSearch: 10}).val("${msgAlarmlevel.sendway}").trigger("change");
//选择用户
$(function() {
$.post(ext.contextPath +"/user/selectUserForMsgAlarmlevel.do", {}, function(data) {
var selelct =$("#msgsend").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
multiple : true,
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
var items = new Array();
var msguserids='${msguserids}'.split(",");
for(var i=0 ;i<msguserids.length;i++){
items.push(msguserids[i]);
}
selelct.val(items).trigger("change");
},'json');
$.post(ext.contextPath +"/user/selectUserForMsgAlarmlevel.do", {}, function(data) {
var selelct =$("#smssend").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
multiple : true,
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
var items = new Array();
var smsuserids='${smsuserids}'.split(",");
for(var i=0 ;i<smsuserids.length;i++){
items.push(smsuserids[i]);
}
selelct.val(items).trigger("change");
},'json');
});
});
//输入框验证
$("#subAlarmlevelForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
alarmLevel: {
validators: {
notEmpty: {
message: '报警级别不能为空'
},
}
},
msgsend: {
validators: {
notEmpty: {
message: '消息用户不能为空'
},
}
},
smssend: {
validators: {
notEmpty: {
message: '短信用户不能为空'
},
}
},
sendway: {
validators: {
notEmpty: {
message: '发送方式不能为空'
},
}
},
msgrole: {
validators: {
notEmpty: {
message: '发送条件不能为空'
},
}
},
}
});
function doupdateAlarmlevel() {
var msguserids = $('#msgsend').val();
var smsuserids = $('#smssend').val();
$("#subAlarmlevelForm").bootstrapValidator('validate');//提交验证
if ($("#subAlarmlevelForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/msg/updateAlarmlevel.do", $("#subAlarmlevelForm").serialize()+"&msguserids="+msguserids+"&smsuserids="+smsuserids, function(data) {
if (data.res == 1) {
showAlert('s','保存成功');
closeModal('subAlarmlevelModal');
$("#table_user").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
</script>
<div class="modal fade" id="subAlarmlevelModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑消息报警级别</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subAlarmlevelForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<input id="state" name="state" type="hidden" value="${msgAlarmlevel.state }" />
<input id="id" name="id" type="hidden" value="${msgAlarmlevel.id }" />
<div class="form-group">
<label class="col-sm-2 control-label">报警级别</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="alarmLevel" name ="alarmLevel" placeholder="请输入:一级报警、二级报警......" value="${msgAlarmlevel.alarmLevel }"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">消息用户</label>
<div class="col-sm-10">
<select class="form-control select2" id="msgsend" name ="msgsend" style="width:270px"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">短信用户</label>
<div class="col-sm-10">
<select class="form-control select2" id="smssend" name ="smssend" style="width:270px"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-10">
<select id="alarmsendway" name="sendway" class="form-control select2" style="width:270px;">
<option value='msg'>仅消息发送</option>
<option value='sms'>仅短信发送</option>
<option value='both'>消息+短信发送</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送条件</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="msgrole" name ="msgrole" placeholder="请以(>1,=1,1-2)的形式输入" value="${msgAlarmlevel.msgrole}"/>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id="remark" name ="remark" placeholder="备注"></textarea>
</div>
</div> -->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdateAlarmlevel()">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,177 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page import="com.sipai.tools.SessionManager"%>
<%SessionManager sessionManager = new SessionManager();%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
<head>
<title></title>
<jsp:include page="../inc.jsp"></jsp:include>
<script type="text/javascript">
function dosave(dialog,grid) {
if($('#pid').combobox('getValue')==""){
alert("类型种类为必填项,不可为空");
return 0;
}
if ($(".form").form('validate')) {
$.post(ext.contextPath + "/msg/updateMsgType.do", $(".form").serialize(), function(data) {
if (data.res == 1) {
top.$.messager.alert('提示', "保存成功", 'info', function() {
//刷新列表
grid.datagrid('reload');
dialog.dialog('destroy');
});
}else if(data.res == 0){
top.$.messager.alert('提示', "保存失败", 'info');
}else{
top.$.messager.alert('提示', data.res, 'info');
}
},'json');
}
}
$(function() {
$('#pid').combobox('setValue', '${msgType.pid}');
$('#sendway').combobox('setValue', '${msgType.sendway}');
});
function doadd() {
var dialog = parent.ext.modalDialog({
iframeId:'iframeadd',
title : '消息报警级别',
url : ext.contextPath + '/msg/addMsgAlarmlevel.do?iframeId=iframeadd',
buttons : [ {
text : '保存',
handler : function() {
dialog.find('iframe').get(0).contentWindow.dosave(dialog, grid);
}
} ]
});
};
var deleteFun = function(id) {
parent.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgAlarmlevel.do', {id : id}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
function dodeletes() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deletesMsgAlarmlevel.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
var editFun = function(id) {
alert();
var dialog = parent.ext.modalDialog({
iframeId:'iframeedit',
title : '编辑消息类型',
url : ext.contextPath + '/msg/editAlarmlevel.do?iframeId=iframeedit&id=' + id,
buttons : [ {
text : '保存',
handler : function() {
dialog.find('iframe').get(0).contentWindow.dosave(dialog, grid);
}
} ]
});
};
var viewFun = function(id) {
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看消息类型',
url : ext.contextPath + '/msg/viewAlarmlevel.do?id=' + id
});
};
$(function() {
$('#p').panel({
width:"100%",
height:"300",
title: '报警级别',
tools: [{
iconCls:'icon-add',
handler:function(){doadd();}
},{
iconCls:'icon-remove',
handler:function(){dodeletes();}
}]
});
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgAlarmlevel.do',
striped : true,
rownumbers : true,
pagination : true,
singleSelect: false,
ctrlSelect:true,
idfield :'id',
columns :[[
{checkbox:true, field:'ck'},
{width : '100',title : '报警级别',field : 'alarmLevel', sortable : true, halign:'center'},
{width : '100',title : '短信发送用户',field : 'smssend', sortable : true, halign :'center'},
{width : '100',title : '消息发送用户',field : 'msgsend', sortable :true, halign :'center'},
{width : '100',title : '发送方式', field : 'sendway', sortable: true, halign : 'center',formatter :function(value,row){
if(value=="both"){
return "消息+短信发送";
}else if(value=="msg"){
return "消息发送";
} else if(value=="sms"){
return "短信发送";
}
}},
{width : '100',title : '备注' , field : 'remark' ,sortable : true, halign : 'center'},
{width : '100',title : '操作' ,field :'action', halign:'center',align :'center', formatter : function(value, row){
var str = '';
str += '<img class="iconImg ext-icon-table_edit" title="编辑" onclick="editFun(\''+row.id+'\');"/> ';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\');"/> ';
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.id+'\');"/> ';
return str;
}}
]],
});
});
</script>
</head>
<body>
<div id="p" >
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,84 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//判断消息类型
$(function() {
if('${msgAlarmlevel.sendway}'=='msg'){
$('#alarmsendway').attr('value','仅消息发送');
}else if('${msgAlarmlevel.sendway}'=='sms'){
$('#alarmsendway').attr('value','仅短信发送');
}else{
$('#alarmsendway').attr('value','消息+短信发送');
}
});
</script>
<div class="modal fade" id="subAlarmlevelModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看消息报警级别</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subAlarmlevelForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<div class="form-group">
<label class="col-sm-2 control-label">报警级别</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="alarmLevel" name ="alarmLevel" value="${msgAlarmlevel.alarmLevel }" disabled="disabled"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">消息用户</label>
<div class="col-sm-10">
<input class="form-control" id="msgsend" name ="msgsend" value="${msgusernames}" disabled="disabled" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">短信用户</label>
<div class="col-sm-10">
<input class="form-control" id="smssend" name ="smssend" value="${smsusernames}" disabled="disabled"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="alarmsendway" name ="sendway" value="" disabled="disabled"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送条件</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="msgrole" name ="msgrole" value="${msgAlarmlevel.msgrole}" disabled="disabled"/>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id="remark" name ="remark" placeholder="备注"></textarea>
</div>
</div> -->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-right" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,314 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var addFun = function() {
$.post(ext.contextPath + '/work/group/add.do', {} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
$.post(ext.contextPath + '/work/group/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/work/group/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var init = function() {
$.post(ext.contextPath + '/work/group/getListForSelect.do', {} , function(data) {
//console.info(data)
if(data.length>0){
for(var i=0;i<data.length;i++){
console.info(data)
$("#search_code").append("<option value='"+data[i].id+"'>"+data[i].text+"</option>");
}
/* $("#search_code").select2({
placeholder: "请选择班组",
language: "zh-CN",
allowClear: true,
data: data
}); */
}
},'json');
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item.id;
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgRecvs.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//标记为已读
var updateStatusFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item.id;
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
viewMsgRecv(datas);
}
};
function viewMsg(id,content){
swal({
title:'消息',
text: content,
dangerMode: true,
buttons: {
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-info",
closeModal: true
}
}
});
viewMsgRecv(id);
}
function viewMsgRecv(id){
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {ids:id} , function(data) {
if(data.res){
$("#table").bootstrapTable('refresh');
}
},'json');
}
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
$(function() {
$("#status").select2({minimumResultsForSearch: 10}).val("").trigger("change");
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgrecv.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order, // 排序规则
status:$('#status').val(),
search_content: $('#search_content').val()
}
},
sortName: 'M.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'typename', // 返回json数据中的name
title: '类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},{
field: 'content', // 返回json数据中的name
title: '内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'sdt', // 返回json数据中的name
title: '发送时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
formatter:function(value){
return value.substring(0,19);
}
},{
field: 'mrecv', // 返回json数据中的name
title: '已读状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
formatter:function(value){
if(value[0].status=="U"){
return '<span style="font-weight:bold">未读</span>';
}else{
return "已读";
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 60, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
return '<button class="btn btn-default btn-sm" onclick="viewMsg(\'' + row.id + '\',\'' + row.content + '\')"><i class="fa fa-eye"></i></button>';
/* return '<i class="fa fa-edit" onclick="editFun()(\'' + row.id + '\')></i>'; */
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="menu4SelectDiv"></div>
<div >
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<button type="button" class="btn btn-default" onclick="updateStatusFun();"><i class="fa fa-tags"></i> 标记为已读</button>
<button type="button" class="btn btn-default" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</div>
<br>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm pull-left">
<select id ="status" name="status" class="form-control select2 " style="width: 90px;">
<option value="" >全部</option>
<option value="U" >未读</option>
<option value="R" >已读</option>
</select>
</div>
<div class="input-group input-group-sm pull-left" style="width: 250px;">
<input type="text" id="search_content" name="search_content" class="form-control " placeholder="内容">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<table id="table"></table>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,264 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var grid;
var addFun = function() {
var dialog = parent.ext.modalDialog({
title : '新建消息',
url : ext.contextPath + '/msg/addMsg.do',
buttons : [ {
text : '保存',
handler : function() {
dialog.find('iframe').get(0).contentWindow.dosave(dialog, grid);
}
} ]
});
};
var viewFun = function(id) {
grid.datagrid('reload');
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看消息',
url : ext.contextPath + '/msg/viewMsgRecv.do?id=' + id,
onClose:function(){
grid.datagrid('reload');
},
buttons : [
{
text : '回复',
handler : function() {
dialog.find('iframe').get(0).contentWindow.doreply(dialog, grid);
}
},
{
text : '上一条',
handler : function() {
var morder="pre";
var send="false";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid,morder,send);
grid.datagrid('reload');
}
},
{
text : '下一条',
handler : function() {
var morder="next";
var send="false";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid,morder,send);
grid.datagrid('reload');
}
}
]
});
};
var deleteFun = function(id) {
parent.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecv.do', {id : id}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecvs.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgrecv.do',
striped : true,
rownumbers : true,
pagination : true,
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
pageSize : 50,
pageList : [ 20, 50, 100],
rowStyler: function(index,row){
if (row.mrecv!=null){
//必须两个if这样写
if(row.mrecv[0].status=='U'){
return 'font-weight:bold;';
}else{
return null;
}
}
},
columns : [ [
{checkbox:true , field : 'ck'},
{width : '100', title : '类型', field : 'typename', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},
{width : '160', title : '内容', field : 'content', sortable : true, halign:'center'},
{width : '80', title : '发送人', field: 'susername', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.caption;
}else{
return value;
}
}
},
{width : '160', title : '发送时间', field : 'sdt', sortable : true, halign:'center',formatter:function(value){
return value.substring(0,19);
}
},
{width : '80', title : '已读状态', field : 'mrecv', sortable : true, halign:'center',formatter:function(value){
if(value[0].status=="U"){
return "未读";
}else{
return "已读";
}
}
},
{title : '操作', field : 'action', width : '90', halign:'center', align:'center', formatter : function(value, row) {
var str = '';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\');"/> ';
//str += '<img class="iconImg ext-icon-table_edit" title="编辑" onclick="editFun(\''+row.id+'\');"/> ';
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.id+'\');"/>';
<%}%>
return str;
}
}
] ],
toolbar : '#toolbar',
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
function formattime(val) {
var year = parseInt(val.year) + 1900;
var month = (parseInt(val.month) + 1);
month = month > 9 ? month : ('0' + month);
var date = parseInt(val.date);
date = date > 9 ? date : ('0' + date);
var hours = parseInt(val.hours);
hours = hours > 9 ? hours : ('0' + hours);
var minutes = parseInt(val.minutes);
minutes = minutes > 9 ? minutes : ('0' + minutes);
var seconds = parseInt(val.seconds);
seconds = seconds > 9 ? seconds : ('0' + seconds);
var time = year + '-' + month + '-' + date + ' ' + hours + ':'
+ minutes + ':' + seconds;
return time;
}
</script>
</head>
<body class="easyui-layout" data-options="fit:true,border:false">
<div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<table>
<tr>
<!-- <td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true"
onclick="addFun();">添加</a>
</td>-->
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"
onclick="deletesFun();">删除</a>
</td>
<%}%>
<!-- <td><div class="datagrid-btn-separator"></div></td>
<td><a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-table_add',plain:true" onclick="">导入</a></td>
<td><a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-table_go',plain:true" onclick="">导出</a></td> -->
</tr>
</table>
</td>
</tr>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>发送人</td>
<td><input name="search_susername" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td>内容</td>
<td><input name="search_content" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td></td>
</tr>
<tr>
<td>发送时间</td>
<td><input id="sdt" name="sdt" class="Wdate" value="${param.sdt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',maxDate:'#F{$dp.$D(\'edt\')}'})"
readonly></td>
<td>到</td>
<td><input id="edt" name="edt" class="Wdate" value="${param.edt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'#F{$dp.$D(\'sdt\')}'})"
readonly></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,229 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<script type="text/javascript">
var grid;
var viewFun = function(id) {
grid.datagrid('reload');
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看消息',
url : ext.contextPath + '/msg/viewMsgRecv.do?id=' + id,
onClose:function(){
grid.datagrid('reload');
},
buttons : [
{
text : '回复',
handler : function() {
dialog.find('iframe').get(0).contentWindow.doreply(dialog, grid);
}
},
{
text : '上一条',
handler : function() {
var morder="pre";
var send="false";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid,morder,send);
grid.datagrid('reload');
}
},
{
text : '下一条',
handler : function() {
var morder="next";
var send="false";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid,morder,send);
grid.datagrid('reload');
}
}
]
});
};
var deleteFun = function(id) {
parent.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecv.do', {id : id}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecvs.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgrecv.do',
striped : true,
rownumbers : true,
/* pagination : true, */
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
/* pageSize : 50,
pageList : [ 20, 50, 100], */
rowStyler: function(index,row){
if (row.mrecv!=null){
//必须两个if这样写
if(row.mrecv[0].status=='U'){
return 'font-weight:bold;';
}else{
return null;
}
}
},
columns : [ [
//{checkbox:true , field : 'ck'},
{width : '70', title : '类型', field : 'typename', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},
{width : '160', title : '内容', field : 'content', sortable : true, halign:'center'},
{width : '80', title : '发送人', field: 'susername', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.caption;
}else{
return value;
}
}
},
{width : '140', title : '发送时间', field : 'sdt', sortable : true, halign:'center',formatter:function(value){
return value.substring(0,19);
}
},
/* {width : '80', title : '已读状态', field : 'mrecv', sortable : true, halign:'center',formatter:function(value){
if(value[0].status=="U"){
return "未读";
}else{
return "已读";
}
}
}, */
{title : '操作', field : 'action', width : '90', halign:'center', align:'center', formatter : function(value, row) {
var str = '';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\');"/> ';
//str += '<img class="iconImg ext-icon-table_edit" title="编辑" onclick="editFun(\''+row.id+'\');"/> ';
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.id+'\');"/>';
<%}%>
return str;
}
}
] ],
/* toolbar : '#toolbar', */
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
</script>
<div class="easyui-layout" data-options="fit:true,border:false">
<%-- <div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<table>
<tr>
<!-- <td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true"
onclick="addFun();">添加</a>
</td>-->
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"
onclick="deletesFun();">删除</a>
</td>
<%}%>
<!-- <td><div class="datagrid-btn-separator"></div></td>
<td><a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-table_add',plain:true" onclick="">导入</a></td>
<td><a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-table_go',plain:true" onclick="">导出</a></td> -->
</tr>
</table>
</td>
</tr>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>发送人</td>
<td><input name="search_susername" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td>内容</td>
<td><input name="search_content" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td></td>
</tr>
<tr>
<td>发送时间</td>
<td><input id="sdt" name="sdt" class="Wdate" value="${param.sdt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',maxDate:'#F{$dp.$D(\'edt\')}'})"
readonly></td>
<td>到</td>
<td><input id="edt" name="edt" class="Wdate" value="${param.edt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'#F{$dp.$D(\'sdt\')}'})"
readonly></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div> --%>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</div>

View File

@ -0,0 +1,594 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js" charset="utf-8"></script>
<style type="text/css">
.message_s {
position: relative;
cursor: pointer;
}
.message_s:after {
position: absolute;
content: "";
/*以下内容可以根据实际需要进行调整 -----start------*/
top: 3px;
left: 70px; /*改成right: -13px; 圆点显示在右侧*/
width: 10px;
height: 10px;
border-radius: 50%;
background-color:red;
/*-----end------*/
}
</style>
<script type="text/javascript">
//模糊查询功能
function dosearch(tablename) {
$("#"+tablename+"").bootstrapTable('refresh');
};
var redFlag='0';
// var newsType='needToDo';
function getNum(newsType){
$.post(ext.contextPath + '/msg/getMsgRecvNum.do', {newsType:newsType} , function(data) {
$('#unews').text(data.unews);
$('#rnews').text(data.rnews);
$('#totalnews').text(data.totalnews);
if(newsType=='needToDo'){
if(Number(data.unews)>0){
$('#tabSt1').addClass("message_s");
}else{
$('#tabSt1').removeClass("message_s");
}
}else if(newsType=='alarm'){
if(Number(data.unews)>0){
$('#tabSt2').addClass("message_s");
}else{
$('#tabSt2').removeClass("message_s");
}
}else if(newsType=='system'){
if(Number(data.unews)>0){
$('#tabSt3').addClass("message_s");
}else{
$('#tabSt3').removeClass("message_s");
}
}
},'json');
}
function getFirstNum(){
$.post(ext.contextPath + '/msg/getMsgRecvNum.do', {newsType:'needToDo'} , function(data) {
$('#unews').text(data.unews);
$('#rnews').text(data.rnews);
$('#totalnews').text(data.totalnews);
if(Number(data.unews)>0){
$('#tabSt1').addClass("message_s");
}else{
$('#tabSt1').removeClass("message_s");
}
},'json');
$.post(ext.contextPath + '/msg/getMsgRecvNum.do', {newsType:'alarm'} , function(data) {
if(Number(data.unews)>0){
$('#tabSt2').addClass("message_s");
}else{
$('#tabSt2').removeClass("message_s");
}
},'json');
$.post(ext.contextPath + '/msg/getMsgRecvNum.do', {newsType:'system'} , function(data) {
if(Number(data.unews)>0){
$('#tabSt3').addClass("message_s");
}else{
$('#tabSt3').removeClass("message_s");
}
},'json');
}
$(function() {
initDate();
getFirstNum();
$("#needToDoTable").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgrecv.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
redFlag: redFlag,
sdt:beginTimeStore,
edt:endTimeStore,
newsType:'needToDo',
search_content:$('#search_content').val()
}
},
sortName: 'm.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
// onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
// },
columns: [
{
field: 'typename', // 返回json数据中的name
title: '消息类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return row.typename.name
}
},{
field: 'content', // 返回json数据中的name
title: '消息内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '接收时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return value.substring(0,16)
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>';
str+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg"> 删除</span></button>';
str='<div class="btn-group" >'+str+'</div>';
return str;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("needToDoTable");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
$("#alarmTable").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgrecv.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
redFlag: redFlag,
sdt:beginTimeStore,
edt:endTimeStore,
newsType:'ALARM',
search_content:$('#search_content').val()
}
},
sortName: 'm.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
// onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
// },
columns: [
{
field: 'typename', // 返回json数据中的name
title: '消息类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return row.typename.name
}
},{
field: 'content', // 返回json数据中的name
title: '消息内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '接收时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return value.substring(0,16)
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>';
str+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg"> 删除</span></button>';
str='<div class="btn-group" >'+str+'</div>';
return str;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("alarmTable");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
$("#systemTable").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgrecv.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
redFlag: redFlag,
sdt:beginTimeStore,
edt:endTimeStore,
newsType:'system',
search_content:$('#search_content').val()
}
},
sortName: 'm.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
// onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
// },
columns: [
{
field: 'typename', // 返回json数据中的name
title: '消息类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return row.typename.name
}
},{
field: 'content', // 返回json数据中的name
title: '消息内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '接收时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
return value.substring(0,16)
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>';
str+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg"> 删除</span></button>';
str='<div class="btn-group" >'+str+'</div>';
return str;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("systemTable");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
});
var beginTimeStore = '';
var endTimeStore = '';
function initDate() {
//定义locale汉化插件
// beginTimeStore = moment().subtract(7, 'days').format('YYYY-MM-DD');
// endTimeStore = moment().subtract(0, 'days').format('YYYY-MM-DD');
var locale = {
"format": 'YYYY-MM-DD',
"separator": " ~ ",
"applyLabel": "确定",
// "cancelLabel": "取消",
"cancelLabel": '清除',
"fromLabel": "起始时间",
"toLabel": "结束时间'",
"customRangeLabel": "自定义",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
$('#reservationtime').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale,
//汉化按钮部分
ranges: {
'今日': [moment(), moment().subtract(-1, 'days')],
'昨日': [moment().subtract(1, 'days'), moment()],
'最近7日': [moment().subtract(6, 'days'), moment().subtract(-1, 'days')],
'本月': [moment().startOf('month'), moment().endOf('month').subtract(-1, 'days')],
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month').subtract(-1, 'days')]
},
// startDate: beginTimeStore,
// endDate: endTimeStore
}, function(start, end, label) {
beginTimeStore = start.format(this.locale.format);
endTimeStore = end.format(this.locale.format);
if(!this.startDate){
this.element.val('');
}else{
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
}
$('#reservationtime').on('cancel.daterangepicker', function (ev, picker) {
$('#reservationtime').val('');
searchModel.Start = null;
searchModel.End = null;
});
dosearch(tablename);
});
// $('#reservationtime').val(beginTimeStore + locale.separator + endTimeStore);
};
function viewFun(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/msg/viewMsgRecv.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
getNum(tablename.replace('Table',''));
dosearch(tablename);
});
}
var tablename="needToDoTable";
function changeTable(st){
tablename=st+"Table";
getNum(st);
dosearch(tablename);
}
function changeRedFlag(st){
redFlag=st;
if(st=='0'){
$('#redFlag1').css('background-color','#ffffff');
$('#redFlag2').css('background-color','');
$('#redFlag3').css('background-color','');
}else if(st=='1'){
$('#redFlag1').css('background-color','');
$('#redFlag2').css('background-color','#ffffff');
$('#redFlag3').css('background-color','');
}else if(st=='2'){
$('#redFlag1').css('background-color','');
$('#redFlag2').css('background-color','');
$('#redFlag3').css('background-color','#ffffff');
}
dosearch(tablename);
}
function doRightSearch(){
dosearch(tablename);
}
//标记为已读
var updateStatusFun = function() {
swal({
text: "您确定要全部标记已读?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
viewAllMsgRecv();
}})
};
function viewAllMsgRecv(){
$.post(ext.contextPath + '/msg/updateAllMsgRecvStatus.do', {tablename:tablename.replace('Table','')} , function(data) {
getNum(tablename.replace('Table',''));
dosearch(tablename);
},'json');
}
function deleteFun(id){
swal({
text: "您确定要删除该条记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsg.do', {id:id} , function(data) {
getNum(tablename.replace('Table',''));
dosearch(tablename);
},'json');
}})
}
//一键删除
var deleteAllMsgRecvFun = function() {
swal({
text: "您确定要删除所有记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
deleteAllMsgRecv();
}})
};
function deleteAllMsgRecv(){
$.post(ext.contextPath + '/msg/deleteAllMsgRecv.do', {tablename:tablename.replace('Table','')} , function(data) {
getNum(tablename.replace('Table',''));
dosearch(tablename);
},'json');
}
</script>
</head>
<body class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div>
<ul class="nav nav-tabs" id="myTab">
<li class="active"><a id="tabSt1" href="#tab1" data-toggle="tab"
index="0" aria-expanded="true" onclick="changeTable('needToDo');" >待办消息</a></li>
<li class=""><a id="tabSt2" href="#tab2" data-toggle="tab" index="1"
aria-expanded="true" onclick="changeTable('alarm');" >告警消息</a></li>
<li class=""><a id="tabSt3" href="#tab3" data-toggle="tab" index="1"
aria-expanded="true" onclick="changeTable('system');" >系统消息</a></li>
</ul>
<div class="btn-group" style="width: 100%;padding-top:10px;padding-bottom:10px;">
<div style="float:left;line-height:34px;">
<span id="redFlag1" class="fa fa-envelope" style="padding-left: 10px;color:#0AB1DF;cursor: pointer;line-height: 33px;border-radius:10px;background-color: #ffffff;" onclick="changeRedFlag('0');"> 未读:</span></span><span id="unews"></span>
<span id="redFlag2" class="fa fa-envelope-o" style="padding-left: 10px;cursor: pointer;line-height: 33px;border-radius:10px;" onclick="changeRedFlag('1');"> 已读:</span><span id="rnews"></span>
<span id="redFlag3" class="fa fa-envelope-square" style="padding-left: 10px;cursor: pointer;line-height: 33px;border-radius:10px;" onclick="changeRedFlag('2');"> 总数:</span><span id="totalnews"></span>
</div>
<div style="float:left;width:200px;margin-left:20px;">
<input type="text" class="form-control pull-left" autocomplete="off" id="reservationtime" style="width:200px;border-radius:10px;" placeholder="选择日期" readonly>
</div>
<div onclick="deleteAllMsgRecvFun();" style="float:left;width:80px;margin-left:20px;border-radius:15px;text-align: center;line-height: 34px;background-color:#ffffff;cursor: pointer;">
全部删除
</div>
<div onclick="updateStatusFun();" style="float:left;width:80px;margin-left:20px;border-radius:15px;text-align: center;line-height: 34px;background-color:#0AB1DF;color: #ffffff;cursor: pointer;">
一键已读
</div>
<div style="float:right;width:270px;margin-left:20px;">
<input type="text" class="form-control pull-left" id="search_content" style="width:200px;border-radius:10px;" placeholder="消息内容..." >
<button type="button" class="btn btn-default btn-sm" style="margin-left:5px;height: 35px;" onclick="doRightSearch();"><i class="fa fa-search"></i> 查询</button>
</div>
</div>
<div class="tab-content no-padding">
<div class="chart tab-pane active" id="tab1"
style="position: relative; padding:5px;">
<table id="needToDoTable"></table>
</div>
<div class=" tab-pane" id="tab2"
style="position: relative; padding:5px;">
<table id="alarmTable"></table>
</div>
<div class=" tab-pane" id="tab3"
style="position: relative; padding:5px;">
<table id="systemTable"></table>
</div>
</div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,522 @@
<%@page import="com.sipai.entity.equipment.EquipmentCard"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<style>
/* * {
padding: 0;
margin: 0;
list-style: none;
}
header {
background: #f7483b;
border-bottom: 1px solid #ccc
}
header h2 {
text-align: center;
line-height: 54px;
font-size: 16px;
color: #fff
} */
.list-ul {
overflow: hidden
}
.list-li {
line-height: 40px;
border-bottom: 1px solid #e1e1e1;
position: relative;
padding: 0 12px;
color: #666;
background: #ffffff;
-webkit-transform: translateX(0px);
}
.btn1 {
position: absolute;
top: 0;
bottom:0;
right: -80px;
text-align: center;
background: #ff0000;
color: #fff;
width: 80px
}
.main-header{display:none;}
.content-header{display:none;}
.main-footer{display:none;}
</style>
<script type="text/javascript">
let timer = null
let startTime = ''
let endTime = ''
var label = document.getElementById("listdiv");
var touchStart;
var touchMove;
var touchEnd;
label.oncontextmenu = function(e){
  return false;
}
label.addEventListener('touchstart', function (event) {
//event.preventDefault();
startTime = +new Date()
var touch = event.targetTouches[0];
touchStart = touch.pageY;
timer = setTimeout(function () {
}, 1000)
});
label.addEventListener('touchmove', function (event) {
var touch = event.targetTouches[0];
touchMove = touch.pageY;//移动的距离
});
label.addEventListener("click", function (event) {
startTime = +new Date()
endTime = +new Date()
//alert(endTime-startTime);
clearTimeout(timer)
var obj = event.target;
var id = obj.id;
//alert(endTime-startTime);
/* if (endTime - startTime > 500) {
// 处理点击事件
deleteFun(id);
} */
if(endTime - startTime <100){
//滚动触摸不执行查看方法
if(touchMove>0){
}else{
if(obj.id=='next'){
next();
}
else if(obj.id=='last'){
last();
}
else if(obj.id=='loadmore'){
}else{
editFun(id);
}
}
}
touchMove=0;
});
label.addEventListener('touchend', function (event) {
endTime = +new Date()
clearTimeout(timer)
var obj = event.target;
var id = obj.id;
//alert(endTime-startTime);
if (endTime - startTime > 500) {
// 处理点击事件
event.preventDefault();
deleteFun(id);
}
/* if(endTime - startTime <500){
//滚动触摸不执行查看方法
if(touchMove>0){
}else{
if(obj.id=='next'){
next();
}
else if(obj.id=='last'){
last();
}
else if(obj.id=='loadmore'){
}else{
editFun(id);
}
}
}
touchMove=0; */
});
var init = function() {
$("#status").select2({
ajax: {
type:'POST',
url: ext.contextPath +'/msg/getListForSelect.do',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
}
},
cache: true
},
placeholder:'全部',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: -1,//禁用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
};
$(function() {
var flag = IsApp();
if (flag==true){
}else{
$(".main-header").show();
$(".content-header").show();
$(".main-footer").show();
}
init();
dosearch();
});
/* var addFun = function() {
$.post(ext.contextPath + '/work/group/add.do', {} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
}; */
var editFun = function(id) {
$.post(ext.contextPath + '/msg/viewMsgRecv.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgRecv.do', {id : id}, function(data) {
if(data==1){
$.post(ext.contextPath + '/msg/getMsgrecv.do', {} , function(data) {
//alert(data);
if(data){
//closeModal('subModal');
document.getElementById("listdiv").innerHTML = data;
}
});
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item.id;
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgRecvs.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//标记为已读
var updateStatusFun = function() {
swal({
text: "您确定要全部标记已读?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
viewAllMsgRecv();
}})
/* var checkedItems;
var datas="";
var nameattr = "";
var list = request.get
$("#listul li").each(function(i) {
var id = $(this).attr("id");
if(datas!=""){
datas+=",";
}
datas+=id;
});
if(datas==""){
showAlert('d','无记录','mainAlertdiv');
}else{
viewMsgRecv(datas);
} */
};
function viewMsg(id,content){
swal({
title:'消息',
text: content,
dangerMode: true,
buttons: {
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-info",
closeModal: true
}
}
});
viewMsgRecv(id);
}
/* function viewMsgRecv(id){
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {ids:id} , function(data) {
if(data.res){
$("#table").bootstrapTable('refresh');
}
},'json');
} */
function viewMsgRecv(id){
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {ids:id} , function(data) {
if(data.res){
$("#table").bootstrapTable('refresh');
}
},'json');
}
function viewAllMsgRecv(){
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {} , function(data) {
if(data.res){
$.post(ext.contextPath + '/msg/getMsgrecv.do', {} , function(data) {
//alert(data);
if(data){
document.getElementById("listdiv").innerHTML = data;
}
});
}
},'json');
}
/* var dosearch = function() {
$("#table").bootstrapTable('refresh');
}; */
var dosearch = function dosearch() {
var st = document.getElementById("status").value;
var sc = document.getElementById("search_content").value;
//var pg = document.getElementById("page").value;
var pg=1;
$.post(ext.contextPath + '/msg/getMsgrecv.do', {status:st,search_content:sc,page:pg} , function(data) {
//alert(data);
if(data){
document.getElementById("listdiv").innerHTML = data;
}
});
};
var next = function() {
var st = document.getElementById("status").value;
var sc = document.getElementById("search_content").value;
if(document.getElementById("pageNum") ==null){
var pgn=1;
}else{
var pgn = parseInt(document.getElementById("pageNum").value);
}
var pg = parseInt(document.getElementById("pages").value);
if(pgn<pg){
pgn=pgn+1;
$.post(ext.contextPath + '/msg/getMsgrecv.do', {status:st,search_content:sc,page:pgn} , function(data) {
//alert(data);
if(data){
document.getElementById("listdiv").innerHTML = data;
}
});
}
};
var last = function() {
var st = document.getElementById("status").value;
var sc = document.getElementById("search_content").value;
if(document.getElementById("pageNum") !=null){
var pgn = parseInt(document.getElementById("pageNum").value);
pgn=pgn-1;
if(pgn<=1){
pgn=1;
}
}else{
var pgn = 1;
}
$.post(ext.contextPath + '/msg/getMsgrecv.do', {status:st,search_content:sc,page:pgn} , function(data) {
//alert(data);
if(data){
document.getElementById("listdiv").innerHTML = data;
}
});
};
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini" id="body">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="menu4SelectDiv"></div>
<div >
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<button type="button" class="btn btn-default" onclick="updateStatusFun();"><i class="fa fa-tags"></i> 全部标记为已读</button>
<!-- <button type="button" class="btn btn-default " onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button> -->
</div>
<br>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm pull-left">
<select class="form-control select2 pull-left" id="status" name ="status" style="width: 120px;" onchange="dosearch()">
</select>
</div>
<div class="input-group input-group-sm pull-left" style="width: 250px;">
<input type="text" id="search_content" name="search_content" class="form-control " placeholder="内容">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div class="col-lg-12 col-xs-12 " style="padding:0px;margin-left:0px;margin-right:0px" id="listdiv">
</div>
</section>
<%-- <section class="list1" >
<ul class="list-ul products-list product-list-in-box">
<c:forEach var="current" items="${list }">
<li id="li" class="list-li">
<div class="product-img">
<img
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
alt="Product Image">
</div>
<div class="con product-info">
<a href="javascript:void(0)" class="product-title"> <c:if
test="${!empty current.typename}">${current.typename.name }
</c:if> <c:if test="${empty current.typename}">--
</c:if> <span class="label label-success pull-right">${fn:substring(current.sdt,0,10) }</span></a>
<span class="product-description"> ${current.content } </span>
</div>
<div class="btn1">删除</div>
</li>
</c:forEach>
</ul>
<!-- /.box-body -->
<div class="box-footer text-center">
<a href="javascript:void(0)" class="uppercase">View All Products</a>
</div>
<!-- /.box-footer -->
</section> --%>
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,58 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<script type="text/javascript">
</script>
<input id="pages" type="hidden" value="${page.pages }"/>
<input id="pageNum" type="hidden" value="${page.pageNum }"/>
<div id="listul">
<ul class="list-ul products-list product-list-in-box"
style="-webkit-user-select: none;/*禁用手机浏览器的用户选择功能 */
-moz-user-select: none;">
<c:forEach var="current" items="${list }">
<%-- <input id="id" type="hidden" value="${current.id }"/> --%>
<c:set value="${current.mrecv }" var="mrecv" />
<c:forEach var="current1" items="${mrecv }">
<li id="${current1.id }" data-name="${current.id }" class="list-li"
<c:if test="${current1.status =='U' }">style="font-weight:bold"</c:if>>
<div id="${current1.id }" data-name="${current.id }">
<div class="product-img" id="${current1.id }"
data-name="${current.id }"
style="margin-top:15px;display: table-cell;vertical-align: middle">
<img id="${current1.id }" data-name="${current.id }"
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
alt="Product Image">
</div>
<div class="con product-info" id="${current1.id }"
data-name="${current.id }">
<a href="javascript:void(0)" class="product-title"
id="${current1.id }" data-name="${current.id }"> <c:if
test="${!empty current.typename}">${current.typename.name }
</c:if>
<c:if test="${empty current.typename}">--
</c:if>
<c:if test="${current1.status eq 'U' }">
<i class="fa fa-circle" style="color:#ff0000"></i>
</c:if> <span id="${current1.id }" data-name="${current.id }"
class="label label-success pull-right" style="margin-top:20px">${fn:substring(current.sdt,0,16) }</span>
</a> <span class="product-description" id="${current1.id }"
data-name="${current.id }"> <c:if
test="${empty current.content }">--</c:if> <c:if
test="${!empty current.content }">${current.content }</c:if>
</span>
</div>
</div>
</li>
</c:forEach>
</c:forEach>
</ul>
</div>
<div class="box-footer text-center" id="loadmore">
<a href="javascript:" class="uppercase" id="last" onclick="last()">上一页</a>
<a class="uppercase">第${page.pageNum }页</a> <a href="javascript:"
class="uppercase" id="next" onclick="next()">下一页</a>
</div>

View File

@ -0,0 +1,229 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var grid;
var viewFun = function(id) {
grid.datagrid('reload');
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看消息',
url : ext.contextPath + '/msg/viewMsgRecv.do?id=' + id,
onClose:function(){
grid.datagrid('reload');
}
});
};
var deleteFun = function(recvid) {
parent.$.messager.confirm('提示', '您确定要彻底删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecv.do', {id : recvid}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.mrecv[0].id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要彻底删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgRecvs.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgrecvdeleted.do',
striped : true,
rownumbers : true,
pagination : true,
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
pageSize : 50,
pageList : [ 20, 50, 100],
rowStyler: function(index,row){
if (row.mrecv!=null){
//必须两个if这样写
if(row.mrecv[0].status=='U'){
return 'font-weight:bold;';
}else{
return null;
}
}
},
columns : [ [
{checkbox:true , field : 'ck'},
{width : '20', title : '', field : 'redflag', sortable : false, halign:'center',formatter:function(value, row){
var str = '';
if(row.mrecv[0].redflag=='1'){
str ='<img class="iconImg ext-icon-flag_red" title="重要" onclick="resetRedflag(\''+row.id+'\');"/> ';
}
return str;
}
},
{width : '100', title : '类型', field : 'typename', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},
{width : '160', title : '内容', field : 'content', sortable : true, halign:'center'},
{width : '80', title : '发送人', field: 'susername', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.caption;
}else{
return value;
}
}
},
{width : '160', title : '发送时间', field : 'sdt', sortable : true, halign:'center',formatter:function(value){
return value.substring(0,19);
}
},
{width : '80', title : '已读状态', field : 'mrecv', sortable : true, halign:'center',formatter:function(value){
if(value[0].status=="U"){
return "未读";
}else{
return "已读";
}
}
},
{title : '操作', field : 'action', width : '90', halign:'center', align:'center', formatter : function(value, row) {
var str = '';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\');"/> ';
//str += '<img class="iconImg ext-icon-table_edit" title="编辑" onclick="editFun(\''+row.id+'\');"/> ';
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.mrecv[0].id+'\');"/>';
<%}%>
return str;
}
}
] ],
toolbar : '#toolbar',
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
function formattime(val) {
var year = parseInt(val.year) + 1900;
var month = (parseInt(val.month) + 1);
month = month > 9 ? month : ('0' + month);
var date = parseInt(val.date);
date = date > 9 ? date : ('0' + date);
var hours = parseInt(val.hours);
hours = hours > 9 ? hours : ('0' + hours);
var minutes = parseInt(val.minutes);
minutes = minutes > 9 ? minutes : ('0' + minutes);
var seconds = parseInt(val.seconds);
seconds = seconds > 9 ? seconds : ('0' + seconds);
var time = year + '-' + month + '-' + date + ' ' + hours + ':'
+ minutes + ':' + seconds;
return time;
}
</script>
</head>
<body class="easyui-layout" data-options="fit:true,border:false">
<div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<table>
<tr>
<%if (sessionManager.havePermission(session,"msg/deleteMsgRecv.do")) {%>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"
onclick="deletesFun();">删除</a>
</td>
<%}%>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>发送人</td>
<td><input name="search_susername" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td>内容</td>
<td><input name="search_content" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td></td>
</tr>
<tr>
<td>发送时间</td>
<td><input id="sdt" name="sdt" class="Wdate" value="${param.sdt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',maxDate:'#F{$dp.$D(\'edt\')}'})"
readonly></td>
<td>到</td>
<td><input id="edt" name="edt" class="Wdate" value="${param.edt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'#F{$dp.$D(\'sdt\')}'})"
readonly></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,235 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var grid;
var viewFun = function(id,issms) {
if(issms=="sms"){
//查看短信
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看短信',
url : ext.contextPath + '/msg/viewSms.do?id=' + id ,
onClose:function(){
grid.datagrid('reload');
}
});
}else{
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看信息',
url : ext.contextPath + '/msg/viewMsgSend.do?id=' + id+'&send=send'
});
}
};
var deleteFun = function(id) {
parent.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgsend.do', {id : id}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgsends.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgrollbacked.do',
striped : true,
rownumbers : true,
pagination : true,
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
pageSize : 50,
pageList : [ 20, 50, 100],
columns : [ [
{checkbox:true , field : 'ck'},
{width : '20', title : '', field : 'redflag', sortable : false, halign:'center',formatter:function(value, row){
var str = '';
if(value=='1'){
str ='<img class="iconImg ext-icon-flag_red" title="重要"/> ';
}
return str;
}
},
{width : '80', title : '类型', field : 'typename', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},
{width : '80', title : '方式', field : 'issms', sortable : true, halign:'center',formatter:function(value){
if(value=="sms"){
return "短信";
}else{
return "消息";
}
}
},
{width : '280', title : '内容', field : 'content', sortable : true, halign:'center'},
{width : '80', title : '发送人', field: 'susername', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.caption;
}else{
return value;
}
}
},
{width : '160', title : '发送时间', field : 'sdt', sortable : true, halign:'center',align:'center',formatter:function(value){
return value.substring(0,19);
}
},
{title : '操作', field : 'action', width : '160', halign:'center', align:'center', formatter : function(value, row) {
var str = '';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\',\''+row.issms+'\');"/> ';
<%if (sessionManager.havePermission(session,"msg/deleteMsg.do")) {%>
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.id+'\');"/>';
<%}%>
if(row.issms!='sms'){
//str+=' <a href="#" onclick="viewstatus(\''+row.id+'\');">浏览情况</a>';
str+=' <img class="iconImg ext-icon-eye" title="浏览情况" onclick="viewstatus(\''+row.id+'\');"/>';
}else{
str+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
}
return str;
}
}
] ],
toolbar : '#toolbar',
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
function formattime(val) {
var year = parseInt(val.year) + 1900;
var month = (parseInt(val.month) + 1);
month = month > 9 ? month : ('0' + month);
var date = parseInt(val.date);
date = date > 9 ? date : ('0' + date);
var hours = parseInt(val.hours);
hours = hours > 9 ? hours : ('0' + hours);
var minutes = parseInt(val.minutes);
minutes = minutes > 9 ? minutes : ('0' + minutes);
var seconds = parseInt(val.seconds);
seconds = seconds > 9 ? seconds : ('0' + seconds);
var time = year + '-' + month + '-' + date + ' ' + hours + ':'
+ minutes + ':' + seconds;
return time;
}
function viewstatus(id){
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '浏览情况',
url : ext.contextPath + '/msg/viewMsgStatus.do?id=' + id
});
}
</script>
</head>
<body class="easyui-layout" data-options="fit:true,border:false">
<div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<table>
<tr>
<%if (sessionManager.havePermission(session,"msg/deleteMsg.do")) {%>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"
onclick="deletesFun();">删除</a>
</td>
<%}%>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>发送人</td>
<td><input name="search_susername" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td>内容</td>
<td><input name="search_content" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td></td>
</tr>
<tr>
<td>发送时间</td>
<td><input id="sdt" name="sdt" class="Wdate" value="${param.sdt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',maxDate:'#F{$dp.$D(\'edt\')}'})"
readonly></td>
<td>到</td>
<td><input id="edt" name="edt" class="Wdate" value="${param.edt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'#F{$dp.$D(\'sdt\')}'})"
readonly></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,388 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
charset="utf-8"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
charset="utf-8"></script>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css" />
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js"
charset="utf-8"></script>
<script type="text/javascript">
/*var beginTimeStore1 = '';
var endTimeStore1 = '';
var colors = ['#00c200', '#d14a61', '#675bba', '#5793f3'];
function initDate1() {
//定义locale汉化插件
beginTimeStore1 = moment().subtract(1, 'hours').format('YYYY-MM-DD HH:mm');;
endTimeStore1 = moment().format('YYYY-MM-DD HH:mm');
/* if(${param.sdt!=''}){
beginTimeStore1='2018-08-09';
}
if(${param.edt!=''}){
endTimeStore1='2018-08-10';
} */
/*var locale = {
"format": 'YYYY-MM-DD HH:mm',
"separator": " ~ ",
"applyLabel": "确定",
"cancelLabel": "取消",
"fromLabel": "起始时间",
"toLabel": "结束时间'",
"customRangeLabel": "自定义",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
$('#reservationtime1').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale,
//汉化按钮部分
ranges: {
'1小时': [moment().subtract(1, 'hours'), moment()],
'8小时': [moment().subtract(8, 'hours'), moment()],
'24小时': [moment().subtract(24, 'hours'), moment()],
},
startDate: beginTimeStore1,
endDate: endTimeStore1
}, function (start, end, label) {
beginTimeStore1 = start.format(this.locale.format);
endTimeStore1 = end.format(this.locale.format);
if (!this.startDate) {
this.element.val('');
} else {
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
}
});
$('#reservationtime1').val(beginTimeStore1 + locale.separator + endTimeStore1);
//展示测量点曲线
buildTable();
};*/
//模糊查询功能
var dosearch = function () {
$table.bootstrapTable('refresh');
};
var $table;
var addFun = function () {
$.post(ext.contextPath + '/msg/addMsg.do', {}, function (data) {
$("#subDiv").html(data);
openModal('msgAddModal');
});
};
var viewFun = function (id, issms) {
if (issms == "sms") {
//查看短信
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '查看短信',
url: ext.contextPath + '/msg/viewSms.do?id=' + id,
onClose: function () {
grid.datagrid('reload');
}
});
} else {
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '查看信息',
url: ext.contextPath + '/msg/viewMsgSend.do?id=' + id + '&send=send',
buttons: [{
text: '上一条',
handler: function () {
var morder = "pre";
var send = "true";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid, morder, send);
grid.datagrid('reload');
}
},
{
text: '下一条',
handler: function () {
var morder = "next";
var send = "true";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid, morder, send);
grid.datagrid('reload');
}
}]
});
}
};
var deleteFun = function (id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsg.do', { id: id }, function (data) {
if (data == 1) {
$("#table").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
};
var deletesFun = function () {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas = "";
$.each(checkedItems, function (index, item) {
datas += item.id + ",";
});
if (datas == "") {
showAlert('d', '请先选择记录', 'mainAlertdiv');
} else {
swal({
text: "您确定要删除这些记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgs.do', { ids: datas }, function (data) {
if (data > 0) {
$("#table").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
}
};
function buildTable() {
$table = $("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgsend.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
//sdt: beginTimeStore1,
//edt: endTimeStore1
}
},
sortName: 'M.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewstatus(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
}, {
field: 'typename', // 返回json数据中的name
title: '类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value) {
if (value != null) {
return value.name;
} else {
return value;
}
}
}, {
field: 'issms', // 返回json数据中的name
title: '方式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',// 上下居中
formatter: function (value) {
if (value == "sms") {
return "短信";
} else {
return "消息";
}
}
}, {
field: 'content', // 返回json数据中的name
title: '内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}, {
field: 'susername', // 返回json数据中的name
title: '发送人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value) {
if (value != null) {
return value.caption;
} else {
return value;
}
}
}, {
field: 'sdt', // 返回json数据中的name
title: '发送时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}, {
title: "操作",
align: 'center',
valign: 'middle',
width: 250, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
/* str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>'; */
str += '<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
str = '<div class="btn-group" >' + str + '</div>';
return str;
}
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
}
$(function () {
//initDate1();
buildTable();
});
function viewstatus(id) {
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '浏览情况',
url: ext.contextPath + '/msg/viewMsgStatus.do?id=' + id
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%--<jsp:include page="/jsp/side.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%--<jsp:include page="/jsp/left.jsp"></jsp:include>--%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id="head_title"></h1>
<ol class="breadcrumb">
<li><a id='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="unit4SelectDiv"></div>
<div id="user4SelectDiv"></div>
<div id="msgType4SelectDiv"></div>
<div id="subAlarmlevelDiv"></div>
<div>
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<button type="button" class="btn btn-default" onclick="addFun();"><i class="fa fa-plus"></i>
新增</button>
<button type="button" class="btn btn-default" onclick="deletesFun();"><i
class="fa fa-trash-o"></i> 删除</button>
</div>
<br>
<form class="form-group " style="padding:0;" id="searchForm">
<!--<div class="form-group pull-right">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" class="form-control pull-left" id="reservationtime1"
style="width:225px">
</div>
</div>-->
<div class="form-group pull-right">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="search" class="form-control col-sm-2" id="search_name" name="search_name"
placeholder="发送人/内容" style="width: 250px;height:30px">
<div class="input-group-btn">
<button type="button" class="btn btn-default" onclick="dosearch();"><i
class="fa fa-search"></i></button>
</div>
</div>
</div>
</form>
<table id="table"></table>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<jsp:include page="/jsp/side.jsp"></jsp:include>
</div>
</body>
</html>

View File

@ -0,0 +1,235 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var grid;
var viewFun = function(id,issms) {
if(issms=="sms"){
//查看短信
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看短信',
url : ext.contextPath + '/msg/viewSms.do?id=' + id ,
onClose:function(){
grid.datagrid('reload');
}
});
}else{
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '查看信息',
url : ext.contextPath + '/msg/viewMsgSend.do?id=' + id+'&send=send'
});
}
};
var deleteFun = function(id) {
parent.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgsend.do', {id : id}, function(data) {
if(data==1){
top.$.messager.alert('提示','删除成功','info');
grid.datagrid('reload');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $('#grid').datagrid('getChecked');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
top.$.messager.alert('提示', '请先选择要删除的记录','info');
}else{
top.$.messager.confirm('提示', '您确定要删除此记录?', function(r) {
if (r) {
$.post(ext.contextPath + '/msg/deleteMsgsends.do', {ids:datas} , function(data) {
if(data>0){
top.$.messager.alert('提示','成功删除'+data+'条记录','info');
grid.datagrid('reload');
grid.datagrid('clearChecked');
}else{
top.$.messager.alert('提示','删除失败','info');
}
});
}
});
}
};
$(function() {
grid = $('#grid').datagrid({
title : '',
url : ext.contextPath + '/msg/getMsgsenddeleted.do',
striped : true,
rownumbers : true,
pagination : true,
ctrlSelect:true,
singleSelect: false,
selectOnCheck: false,
checkOnSelect: false,
idField : 'id',
pageSize : 50,
pageList : [ 20, 50, 100],
columns : [ [
{checkbox:true , field : 'ck'},
{width : '20', title : '', field : 'redflag', sortable : false, halign:'center',formatter:function(value, row){
var str = '';
if(value=='1'){
str ='<img class="iconImg ext-icon-flag_red" title="重要"/> ';
}
return str;
}
},
{width : '80', title : '类型', field : 'typename', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.name;
}else{
return value;
}
}
},
{width : '80', title : '方式', field : 'issms', sortable : true, halign:'center',formatter:function(value){
if(value=="sms"){
return "短信";
}else{
return "消息";
}
}
},
{width : '280', title : '内容', field : 'content', sortable : true, halign:'center'},
{width : '80', title : '发送人', field: 'susername', sortable : true, halign:'center',formatter:function(value){
if(value!=null){
return value.caption;
}else{
return value;
}
}
},
{width : '160', title : '发送时间', field : 'sdt', sortable : true, halign:'center',align:'center',formatter:function(value){
return value.substring(0,19);
}
},
{title : '操作', field : 'action', width : '160', halign:'center', align:'center', formatter : function(value, row) {
var str = '';
str += '<img class="iconImg ext-icon-table" title="查看" onclick="viewFun(\''+row.id+'\',\''+row.issms+'\');"/> ';
<%if (sessionManager.havePermission(session,"msg/deleteMsg.do")) {%>
str += '<img class="iconImg ext-icon-table_delete" title="删除" onclick="deleteFun(\''+row.id+'\');"/>';
<%}%>
if(row.issms!='sms'){
//str+=' <a href="#" onclick="viewstatus(\''+row.id+'\');">浏览情况</a>';
str+=' <img class="iconImg ext-icon-eye" title="浏览情况" onclick="viewstatus(\''+row.id+'\');"/>';
}else{
str+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
}
return str;
}
}
] ],
toolbar : '#toolbar',
onLoadSuccess : function(data) {
$('.iconImg').attr('src', ext.pixel_0);
}
});
});
function formattime(val) {
var year = parseInt(val.year) + 1900;
var month = (parseInt(val.month) + 1);
month = month > 9 ? month : ('0' + month);
var date = parseInt(val.date);
date = date > 9 ? date : ('0' + date);
var hours = parseInt(val.hours);
hours = hours > 9 ? hours : ('0' + hours);
var minutes = parseInt(val.minutes);
minutes = minutes > 9 ? minutes : ('0' + minutes);
var seconds = parseInt(val.seconds);
seconds = seconds > 9 ? seconds : ('0' + seconds);
var time = year + '-' + month + '-' + date + ' ' + hours + ':'
+ minutes + ':' + seconds;
return time;
}
function viewstatus(id){
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title : '浏览情况',
url : ext.contextPath + '/msg/viewMsgStatus.do?id=' + id
});
}
</script>
</head>
<body class="easyui-layout" data-options="fit:true,border:false">
<div id="toolbar" style="display: none;">
<table>
<tr>
<td>
<table>
<tr>
<%if (sessionManager.havePermission(session,"msg/deleteMsg.do")) {%>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"
onclick="deletesFun();">删除</a>
</td>
<%}%>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<form id="searchForm">
<table>
<tr>
<td>发送人</td>
<td><input name="search_susername" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td>内容</td>
<td><input name="search_content" class="easyui-textbox" data-options="prompt:'请输入关键字'" style="width: 150px;" value=""/></td>
<td></td>
</tr>
<tr>
<td>发送时间</td>
<td><input id="sdt" name="sdt" class="Wdate" value="${param.sdt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',maxDate:'#F{$dp.$D(\'edt\')}'})"
readonly></td>
<td>到</td>
<td><input id="edt" name="edt" class="Wdate" value="${param.edt }"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'#F{$dp.$D(\'sdt\')}'})"
readonly></td>
<td>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-search',plain:true"
onclick="grid.datagrid('load',ext.serializeObject($('#searchForm')));">搜索</a>
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true"
onclick="$('#searchForm').form('clear');grid.datagrid('load',{});">重置</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<div data-options="region:'center',fit:true,border:false">
<table id="grid" data-options="fit:true,border:false"></table>
</div>
</body>
</html>

View File

@ -0,0 +1,155 @@
<%@ page language="java" pageEncoding="UTF-8" %>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<script type="text/javascript">
function dosave() {
$.post(ext.contextPath + '/msg/saveMsgYMMobile.do', $("#subForm").serialize(), function (data) {
if (data.res == "发送成功" || data.res == "消息发送成功") {
// console.log(data.res);
$("#table").bootstrapTable('refresh');
closeModal('msgAddModal');
} else {
showAlert('d', data.res);
}
}, 'json');
}
/**
* 导入常用联系人
*/
function doImportUser() {
$.post(ext.contextPath + '/msg/frequentContacts/getListJson.do', $("#subForm").serialize(), function (data) {
var obj_1 = data;
var userId = '';
var userName = '';
var mobile = '';
for (var i in data) {
userId += obj_1[i].userId + ",";
userName += obj_1[i].userName + ",";
if (obj_1[i].mobile != null && obj_1[i].mobile != '') {
mobile += obj_1[i].mobile + ",";
} else {
mobile += "未配置" + ",";
}
}
$('#recvid').val(userId);
$('#recvname').val(userName);
$('#recvmobile').val(mobile);
}, 'json');
}
//根据人员id刷新页面手机号码
var upuserFun = function () {
var userIds = $('#recvid').val();
$.get(ext.contextPath + '/user/getMobile4UserIds.do', {
userIds: userIds
}, function (data) {
$('#recvmobile').val(data);
});
}
//选择人员通用页面
var showUser4SelectsFun = function () {
var userIds = $("#recvid").val();
$.post(ext.contextPath + '/user/layerUser.do', {
formId: "subForm",
hiddenId: "recvid",
textId: "recvname",
userIds: userIds,
fucname: 'upuserFun'
}, function (data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var showMsgType4SelectsFun = function () {
//var userIds = $("#recvid").val();
$.post(ext.contextPath + '/msg/msgTypeForSelect.do', {
formId: "subForm",
hiddenId: "mtype",
textId: "mtypename"
}, function (data) {
$("#msgType4SelectDiv").html(data);
openModal("msgType4SelectModal");
});
};
$(function () {
/*$("#sendway").select2({ minimumResultsForSe arch: -1 });
fixSelect2ToTool('sendway');*/
$('#unitId').val(unitId);
})
</script>
<div class="modal fade" id="msgAddModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增界面</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="unitId" name="unitId" type="hidden" value="">
<%--<div class="form-group">
<label class="col-sm-2 control-label">消息类型</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="mtypename" name="mtypename"
placeholder="消息类型"
value="" onclick="showMsgType4SelectsFun();">
<input id="mtype" name="mtype" type="hidden" value="P"/>
</div>
</div>--%>
<div class="form-group">
<label class="col-sm-2 control-label">接收人</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="recvname" name="recvname" placeholder="接收人"
value="" onclick="showUser4SelectsFun();">
<input id="recvid" name="recvid" type="hidden"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">接收号码</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="recvmobile" name="recvmobile"
placeholder="选择接收人员后自动填充"
value="" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">内容</label>
<div class="col-sm-9">
<textarea type="text" class="form-control" id="content" name="content" placeholder="内容"
row="15" style="height:300px;"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-9">
<select class="form-control select2 " id="sendway" name="sendway" style="width: 220px;">
<%-- <option value="msg">仅消息发送</option>--%>
<option value="sms" selected>仅短信发送</option>
<%-- <option value="both" selected>消息+短信发送</option>--%>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-default pull-left" onclick="doImportUser()">导入常用联系人</button>
<button type="button" class="btn btn-primary" onclick="dosave()">发送</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,358 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="UTF-8" %>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%
SessionManager sessionManager = new SessionManager();
%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
charset="utf-8"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
charset="utf-8"></script>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js"
charset="utf-8"></script>
<script type="text/javascript">
//模糊查询功能
var dosearch = function () {
$table.bootstrapTable('refresh');
};
var $table;
var addFun = function () {
$.post(ext.contextPath + '/msg/addMobileMsg.do', {}, function (data) {
$("#subDiv").html(data);
openModal('msgAddModal');
});
};
var viewFun = function (id, issms) {
if (issms == "sms") {
//查看短信
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '查看短信',
url: ext.contextPath + '/msg/viewSms.do?id=' + id,
onClose: function () {
grid.datagrid('reload');
}
});
} else {
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '查看信息',
url: ext.contextPath + '/msg/viewMsgSend.do?id=' + id + '&send=send',
buttons: [{
text: '上一条',
handler: function () {
var morder = "pre";
var send = "true";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid, morder, send);
grid.datagrid('reload');
}
},
{
text: '下一条',
handler: function () {
var morder = "next";
var send = "true";//判断是否为发送,还是接收,接收要更改未读状态
dialog.find('iframe').get(0).contentWindow.doview(dialog, grid, morder, send);
grid.datagrid('reload');
}
}]
});
}
};
var deleteFun = function (id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsg.do', {id: id}, function (data) {
if (data == 1) {
$("#table").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
};
var deletesFun = function () {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas = "";
$.each(checkedItems, function (index, item) {
datas += item.id + ",";
});
if (datas == "") {
showAlert('d', '请先选择记录', 'mainAlertdiv');
} else {
swal({
text: "您确定要删除这些记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgs.do', {ids: datas}, function (data) {
if (data > 0) {
$("#table").bootstrapTable('refresh');
} else {
showAlert('d', '删除失败', 'mainAlertdiv');
}
});
}
});
}
};
function buildTable() {
$table = $("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMobileMsgSend.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val()
}
},
sortName: 'M.insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewstatus(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
width: '40',
}, {
field: 'typename', // 返回json数据中的name
title: '类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '7%',
formatter: function (value) {
if (value != null) {
return value.name;
} else {
return value;
}
}
}, {
field: 'issms', // 返回json数据中的name
title: '方式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',// 上下居中
width: '5%',
formatter: function (value) {
if (value == "sms") {
return "短信";
} else {
return "消息";
}
}
}, {
field: 'content', // 返回json数据中的name
title: '内容', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '50%',
formatter: function (value, row, index) {
// return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value + "' >" + value + "</span>";
return value;
}
}, {
field: 'susername', // 返回json数据中的name
title: '发送人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '8%',
formatter: function (value) {
if (value != null) {
// return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value.caption + "'>" + value.caption + "</span>";
return value.caption;
} else {
// return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value + "'>" + value + "</span>";
return value;
}
}
}, {
field: 'sdt', // 返回json数据中的name
title: '发送时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '10%',
}, {
field: 'recvUserName', // 返回json数据中的name
title: '接收人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '20%',
formatter: function (value, row, index) {
// return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value + "'>" + value + "</span>";
return value;
}
},
/*{
field: 'recvUserMobile', // 返回json数据中的name
title: '接收号码', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '20%',
formatter: function (value, row, index) {
return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value + "'>" + value + "</span>";
}
}, */
{
title: "操作",
align: 'center',
valign: 'middle',
width: 80, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
/* str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>'; */
str += '<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
str = '<div class="btn-group" >' + str + '</div>';
return str;
}
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
}
var userListFun = function () {
$.post(ext.contextPath + '/msg/frequentContacts/showList.do', {unitId: unitId}, function (data) {
$("#subDiv").html(data);
openModal('subModal');
});
}
$(function () {
//initDate1();
buildTable();
});
function viewstatus(id) {
grid.datagrid('clearChecked');
var dialog = parent.ext.modalDialog({
title: '浏览情况',
url: ext.contextPath + '/msg/viewMsgStatus.do?id=' + id
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<div class="content-wrapper">
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="unit4SelectDiv"></div>
<div id="user4SelectDiv"></div>
<div id="msgType4SelectDiv"></div>
<div id="subAlarmlevelDiv"></div>
<div>
<div class="form-group pull-left" style="padding:0;">
<button type="button" class="btn btn-default" onclick="addFun();"><i class="fa fa-plus"></i>
新增
</button>
<button type="button" class="btn btn-default" onclick="deletesFun();"><i class="fa fa-trash-o"></i>
删除
</button>
<button type="button" class="btn btn-default" onclick="userListFun();"><i
class="fa fa-align-justify"></i>
常用联系人
</button>
</div>
<form class="form-group pull-right form-inline" id="searchForm">
<div class="form-group pull-right">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="search" class="form-control col-sm-2" id="search_name" name="search_name"
placeholder="发送人/内容" style="width: 250px;">
<div class="input-group-btn">
<button type="button" class="btn btn-default" onclick="dosearch();"><i
class="fa fa-search"></i></button>
</div>
</div>
</div>
</form>
<table id="table"></table>
</div>
</section>
</div>
<jsp:include page="/jsp/side.jsp"></jsp:include>
</div>
</body>
</html>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/msg/saveMsgType.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
showAlert('s','保存成功');
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else if(data.res == 2){
showAlert('d','ID已被占用不可重复');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '类型名称不能为空'
},
}
},
id: {
validators: {
notEmpty: {
message: 'ID不能为空'
},
}
},
pid: {
validators: {
notEmpty: {
message: '类型种类不能为空'
},
}
},
}
});
//选择类型种类,发送方式
$(function(){
$("#pid").select2({minimumResultsForSearch: 10}).val("personal").trigger("change");
$("#sendway").select2({minimumResultsForSearch: 10}).val("msg").trigger("change");
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增消息类型</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<div class="form-group">
<label class="col-sm-2 control-label">类型名称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name ="name" placeholder="类型名称" value=""/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">ID</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="id" name ="id" placeholder="英文单词或字母PmailINFO等" value=""/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">类型种类</label>
<div class="col-sm-10">
<select id ="pid" name="pid" class="form-control select2" style="width: 220px;">
<!-- <option value="personal">个人消息</option> -->
<option value="needToDo">待办消息</option>
<option value="alarm" >告警消息</option>
<option value="system" >系统消息</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-10">
<select id="sendway" name="sendway" class="form-control select2" style="width:220px;">
<option value='msg'>仅消息发送</option>
<option value='sms'>仅短信发送</option>
<option value='both'>消息+短信发送</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,332 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/msg/updateMsgType.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
showAlert('s','保存成功');
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '类型名称不能为空'
},
}
},
pid: {
validators: {
notEmpty: {
message: '类型种类不能为空'
},
}
},
}
});
//选择类型种类,发送方式
$(function(){
$("#pid").select2({minimumResultsForSearch: 10}).val("${msgType.pid}").trigger("change");
$("#sendway").select2({minimumResultsForSearch: 10}).val("${msgType.sendway}").trigger("change");
});
//新增报警级别
function addAlarmlevelFun() {
var msgid=$('#id').val();
//console.log(msgid);
$.post(ext.contextPath + '/msg/addMsgAlarmlevel.do', {msgid:msgid} , function(data) {
$("#subAlarmlevelDiv").html(data);
openModal('subAlarmlevelModal');
});
};
var deleteAlarmlevelFun = function(id) {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgAlarmlevel.do', {id : id}, function(data) {
if(data==1){
$("#table_user").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
};
var deletesAlarmlevelFun = function() {
var checkedItems = $("#table_user").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除这些记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deletesMsgAlarmlevel.do', {ids:datas} , function(data) {
if(data>0){
$("#table_user").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//编辑报警级别
var editAlarmlevelFun = function(id) {
$.post(ext.contextPath + '/msg/editAlarmlevel.do', {id:id} , function(data) {
$("#subAlarmlevelDiv").html(data);
openModal('subAlarmlevelModal');
});
};
//查看报警级别
var viewAlarmlevelFun = function(id) {
$.post(ext.contextPath + '/msg/viewAlarmlevel.do', {id:id} , function(data) {
$("#subAlarmlevelDiv").html(data);
openModal('subAlarmlevelModal');
});
};
var msgid=$('#id').val();
$("#table_user").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgAlarmlevel.do?msgid='+msgid, // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
clickToSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 20, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
//responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order, // 排序规则
}
},
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'alarmLevel',
title: "报警级别",
align: 'center',
valign: 'middle',
width: '10%'
},{
field: 'smssend',
title: "消息发送用户",
align: 'center',
valign: 'middle',
width: '20%',
formatter :function(value,row){
var msgusers =row.msgusers;
var msguserstr="";
for(var i=0;i<msgusers.length;i++){
if(msguserstr!=""){
msguserstr+=",";
}
msguserstr+=msgusers[i].user.caption;
}
return msguserstr;
}
},{
field: 'msgsend',
title: "短信发送用户",
align: 'center',
valign: 'middle',
width: '20%',
formatter :function(value,row){
var smsusers =row.smsusers;
var smsuserstr="";
for(var i=0;i<smsusers.length;i++){
if(smsuserstr!=""){
smsuserstr+=","
}
smsuserstr+=smsusers[i].user.caption;
}
return smsuserstr;
}
},{
field: 'sendway', // 返回json数据中的name
title: '发送方式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',// 上下居中
width: '20%',
formatter :function(value,row){
if(value=="both"){
return "消息+短信发送";
}else if(value=="msg"){
return "消息发送";
} else if(value=="sms"){
return "短信发送";
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: '25%',
formatter: function (value, row, index) {
var str = '';
str+='<button type="button" class="btn btn-default btn-sm" title="查看" onclick="viewAlarmlevelFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>';
str+='<button type="button" class="btn btn-default btn-sm" title="编辑" onclick="editAlarmlevelFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
str+='<button type="button" class="btn btn-default btn-sm" title="删除" onclick="deleteAlarmlevelFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg"> 删除</span></button>';
str='<div class="btn-group" >'+str+'</div>';
return str;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_user");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑消息类型</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<div class="form-group">
<label class="col-sm-2 control-label">类型名称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name ="name" placeholder="类型名称" value="${msgType.name}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">ID</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="id" name ="id" placeholder="英文单词或字母PmailINFO等" readonly = "readonly" value="${msgType.id}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">类型种类</label>
<div class="col-sm-10">
<select id ="pid" name="pid" class="form-control select2" style="width: 220px;">
<option value="needToDo">待办消息</option>
<option value="alarm" >告警消息</option>
<option value="system" >系统消息</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送方式</label>
<div class="col-sm-10">
<select id="sendway" name="sendway" class="form-control select2" style="width:220px;">
<option value='msg'>仅消息发送</option>
<option value='sms'>仅短信发送</option>
<option value='both'>消息+短信发送</option>
</select>
</div>
</div>
<br /><br/>
<div class="box box-primary" >
<div class="box-header with-border">
<h6 class="box-title">报警级别</h6>
<div class="box-tools pull-right">
<a onclick="addAlarmlevelFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i><span class="hidden-md hidden-lg" style="color:black"> 新增</span></a>
<a onclick="deletesAlarmlevelFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-trash"></i><span class="hidden-md hidden-lg" style="color:black" > 删除</span></a>
</div>
</div>
<table id="table_user"></table>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,258 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchMsgType = function () {
$("#table_msgType").bootstrapTable('refresh');
};
function doSelect() {
var checkedItems = $("#table_msgType").bootstrapTable('getSelections');
//默认单选
$('#${param.formId} #${param.hiddenId}').val(checkedItems[0].id);
$('#${param.formId} #${param.textId}').val(checkedItems[0].name);
closeModal("msgType4SelectModal");
};
var $table;
var switchStatus = false;
var selectionIds = []; //保存选中ids
function initialSelectionIds() {
var check_array = "";
if (check_array != null && check_array.length > 0) {
selectionIds = new Array(check_array.length);
for (var i = 0; i < check_array.length; i++) {
selectionIds[i] = check_array[i].id;
}
}
}
function getCheckedIds() {
var ids = "";
var check_array = eval('${users}');
$.each(check_array, function (index, item) {
if (ids != "") {
ids += ",";
}
ids += item.id;
});
return ids;
}
function queryParams(params) {
var temp = {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_pid: '${param.companyId}',
querytype:'getMsgType'
};
var status = $('#switchBtn').bootstrapSwitch('state')
if (status) {
temp.checkedIds = getCheckedIds();
}
return temp;
}
$(function () {
//jquery html()方法加载导致box无法执行boxwidget(),手动初始化
$('#searchBox').boxWidget();
/* $("#search_pid").select2({
ajax: {
type:'POST',
url: ext.contextPath +"/work/group/getListForSelect.do",
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
}
},
cache: true
},
placeholder:'请选择部门',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
}); */
//$("#active").select2({minimumResultsForSearch: 10}).val("${menu.active}").trigger("change");
$('#switchBtn').bootstrapSwitch({
onText: '是',
offText: '否',
size: "small",
});
$(".select2-selection--single").css({ 'height': '30px', 'paddingTop': '4px' });
//initialSelectionIds();
$table = $("#table_msgType").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgTypeForSelect.do', // 获取表格数据的url
//cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
clickToSelect: true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 20, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
clickToSelect: true,
responseHandler: responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
queryParams: queryParams,
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
singleSelect: true, // 单选checkbox
/* showColumns: true,
showRefresh: true, */
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i, row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if ($.inArray(row.id, Array.from(selectionIds)) != -1) { // 因为 Set是集合,需要先转换成数组
return {
checked: true // 存在则选中
}
}
}
}, {
field: 'name',
title: "类型名称",
align: 'center',
valign: 'middle',
width: '30%'
}, {
field: 'id',
title: "ID",
align: 'center',
valign: 'middle',
width: '40%'
}, {
title: '类型种类',
field: 'pid',
align: 'center',
valign: 'middle',
width: '40%'
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table_msgType");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
})
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows, obj) {
if ('check' == e.type) {
$('#table_msgType .checked').removeClass("checked");
obj.parent().addClass("checked");
checkedItem = rows;
} else {
obj.parent().removeClass("checked");
checkedItem = "";
}
});
});
//选中事件操作数组
var union = function (array, ids) {
$.each(ids, function (i, id) {
if ($.inArray(id, array) == -1) {
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function (array, ids) {
$.each(ids, function (i, id) {
var index = $.inArray(id, array);
if (index != -1) {
array.splice(index, 1);
}
});
return array;
};
var _ = { "union": union, "difference": difference };
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="msgType4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择消息类型</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="box box-primary box-solid collapsed-box" id="searchBox" collapsed>
<div class="box-header">
<!-- tools box -->
<div class="pull-right box-tools">
<button type="button" class="btn btn-primary btn-sm pull-right" data-widget="collapse"
style="margin-right: 5px;">
<i class="fa fa-plus"></i></button>
</div>
<!-- /. tools -->
<i class="fa fa-search"></i>
</div>
<div class="box-body collapse">
<form class="form-horizontal ">
<div class="form-group" style="margin-right: 20px;">
<!-- <label class="col-sm-2 control-label">部门</label>
<div class="col-sm-4">
<select class="form-control select2 " id="search_pid" name ="search_pid" style="width:170px;"></select>
</div> -->
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-4">
<input type="text" id="search_name" name="search_name" class="form-control input-sm"
placeholder="名称" style="width:170px;">
</div>
<label class="col-sm-2 control-label">只看选中</label>
<div class="col-sm-4">
<div class="switch" data-on="primary" data-off="info">
<input id="switchBtn" type="checkbox" />
</div>
</div>
</div>
<div class="form-group" style="margin-right: 20px;">
<div class=" col-sm-offset-6 button-group" style="padding: 0;">
<button type="button" class="btn btn-default btn-sm pull-right"
onclick="doSearchMsgType();"><i class="fa fa-search"> 搜索</i></button>
</div>
</div>
</form>
</div>
</div>
<div>
<div id="table_msgType" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModal('msgType4SelectModal');">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelect()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,247 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var addFun = function() {
$.post(ext.contextPath + '/msg/addMsgType.do', {} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/msg/editMsgType.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id) {
$.post(ext.contextPath + '/msg/viewMsgType.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgType.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除这些记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/msg/deleteMsgTypes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//模糊查询功能
var dosearch = function() {
$table.bootstrapTable('refresh');
};
var $table;
$(function() {
$table = $("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgType.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val()
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'name', // 返回json数据中的name
title: '类型名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'id', // 返回json数据中的name
title: 'ID', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'pid', // 返回json数据中的name
title: '类型种类', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function(value,row){
var str = '';
if(value=="personal"){
str = "个人消息";
}else if(value=="system"){
str = "系统消息";
}
return str;
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 250, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var str = '';
/* str+='<button class="btn btn-default btn-sm" title="查看" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg"> 查看</span></button>'; */
str+='<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
str+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\'' + row.id + '\')"><i class="fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
str='<div class="btn-group" >'+str+'</div>';
return str;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="unit4SelectDiv"></div>
<div id="subAlarmlevelDiv"></div>
<div >
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="user/addUser.do">
<button type="button" class="btn btn-default" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
</security:authorize>
<button type="button" class="btn btn-default" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</div>
<br>
<form class="form-group " style="padding:0;" id="searchForm">
<div class="form-group pull-right" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="search" class="form-control col-sm-2" id="search_name" name ="search_name" placeholder="类型名称" style="width: 250px;height:30px">
<div class="input-group-btn">
<button type="button" class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</form>
<table id="table"></table>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.maintenance.Maintenance"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<!-- bootstrap-star-rating -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//判断类型种类
if('${msgType.pid}'== 'personal'){
$("#pid").attr("value",'个人消息');
}else{
$("#pid").attr("value",'系统消息');
}
//判断消息类型
$(function() {
if('${msgType.sendway}'=='msg'){
$('#sendway').attr('value','仅消息发送');
}else if('${msgType.sendway}'=='sms'){
$('#sendway').attr('value','仅短信发送');
}else{
$('#sendway').attr('value','消息+短信发送');
}
});
var msgid=$('#id').val();
$("#table_user").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/msg/getMsgAlarmlevel.do?msgid='+msgid, // 获取表格数据的url
//cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
clickToSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 20, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
//responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order, // 排序规则
}
},
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
/* showColumns: true,
showRefresh: true, */
columns: [
{
field: 'alarmLevel',
title: "报警级别",
align: 'center',
valign: 'middle',
width: '10%'
},{
field: 'smssend',
title: "消息发送用户",
align: 'center',
valign: 'middle',
width: '20%',
formatter :function(value,row){
var msgusers =row.msgusers;
var msguserstr="";
for(var i=0;i<msgusers.length;i++){
if(msguserstr!=""){
msguserstr+=","
}
msguserstr+=msgusers[i].user.caption;
}
return msguserstr;
}
},{
field: 'msgsend',
title: "短信发送用户",
align: 'center',
valign: 'middle',
width: '20%',
formatter :function(value,row){
var smsusers =row.smsusers;
var smsuserstr="";
for(var i=0;i<smsusers.length;i++){
if(smsuserstr!=""){
smsuserstr+=","
}
smsuserstr+=smsusers[i].user.caption;
}
return smsuserstr;
}
},{
field: 'sendway', // 返回json数据中的name
title: '发送方式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',// 上下居中
width: '20%',
formatter :function(value,row){
if(value=="both"){
return "消息+短信发送";
}else if(value=="msg"){
return "消息发送";
} else if(value=="sms"){
return "短信发送";
}
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_user");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看消息类型</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group " >
<label class="control-label col-sm-2">类型名称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name ="name" value="${msgType.name}" disabled="disabled" style="width: 220px;"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">ID</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="id" name ="id" value="${msgType.id}" disabled="disabled" style="width: 220px;"/>
</div>
</div>
<div class="form-group " >
<label class="control-label col-sm-2">类型种类</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="pid" name ="pid" style="width: 220px;" disabled="disabled" value=""/>
</div>
</div>
<div class="form-group " >
<label class="control-label col-sm-2">发送方式</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="sendway" name ="sendway" style="width: 220px;" disabled="disabled" value=""/>
</div>
</div>
<br /><br/>
<div class="box box-primary" >
<div class="box-header with-border">
<h6 class="box-title">报警级别</h6>
</div>
<table id="table_user"></table>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,69 @@
<%@page import="com.sipai.tools.CommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doViewClose() {
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content" >
<div class="modal-header">
<button type="button" class="close" onclick="doViewClose();">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">浏览</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<div id="alertDiv"></div>
<!-- 界面提醒div强制id为alertdiv -->
<div class="form-group">
<label class="col-sm-2 control-label">发送人</label>
<div class="col-sm-10" style="padding-top:6.5px">
<span>${suser}</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发送时间</label>
<div class="col-sm-10" style="padding-top:6.5px">
<span>${fn:substring(msg.sdt,0,16)}</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">接收人</label>
<div class="col-sm-10" style="padding-top:6.5px">
<span>${recv}</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">内容</label>
<div class="col-sm-10" style="padding-top:6.5px">
<span>${msg.content}</span>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" onclick="doViewClose();">关闭</button>
<!-- <button type="button" class="btn btn-primary" onclick="doupdate();" id="btn_update">保存</button>
<button type="button" class="btn" onclick="dodel();" >删除</button> -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,70 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
<head>
<title></title>
<jsp:include page="../inc.jsp"></jsp:include>
<script type="text/javascript">
$(function(){
<c:forEach items="${viewlist}" var="viewlistobj">
if('${viewlistobj.suserid}'=='${suser.id}'){
var longstr='<div style="float:left;width:400px;"><br><table class="table" ><tr><th>'+'${suser.caption}'+'<br>'+'${viewlistobj.sdt.substring(0,19)}'+'</th>'
+'<td height="50px">'+'${viewlistobj.content}'+'</td></tr></table></div>';
}else{
var longstr='<div style="float:right;width:400px;"><br><table class="table" ><tr><td height="50px">'+'${viewlistobj.content}'+'</td>'
+'<th>'+'${cu.caption}'+'<br>'+'${viewlistobj.sdt.substring(0,19)}'+'</th></tr></table></div>';
}
$("#screen").append(longstr);
$("#parentid").val('${viewlistobj.id}');
</c:forEach>
$("#content").val("000000");
});
function sendnew(){
var content = $("#content").val();
var parentid = $("#parentid").val();
if(content==null ||content==""){
alert("发送内容不能为空");
return;
}
if ($(".form").form('validate')) {
$.post(ext.contextPath + "/msg/replynewMsg.do", {recvid:"${recvid}",typeid:"${msg.typeid}",content:content,parentid:parentid} , function(data) {
if (data.res== 1) {
$("#content").textbox("setValue","");
top.$.messager.alert('提示', "发送成功", 'info');
//刷新页面
$("#parentid").val(data.parentid);
var longstr='<div style="float:right;width:400px;"><br><table class="table" ><tr><td height="50px">'+data.rows[0].content+'</td>'
+'<th>'+data.susername+'<br>'+data.rows[0].sdt.substring(0,19)+'</th></tr></table></div>';
$("#screen").append(longstr);
}else if(data.res == 0){
top.$.messager.alert('提示', "保存失败", 'info');
}else{
top.$.messager.alert('提示', data.res, 'info');
}
},'json');
}
}
</script>
</head>
<body>
<input type="hidden" id="recvid" name="recvid" value="${recvid}"/>
<input type="hidden" id="typeid" name="typeid" value="${msg.typeid}"/>
<input type="hidden" id="parentid" name="parentid" value="${msg.id}"/>
<div class="easyui-layout" style="width:750px;height:500px;">
<div class="easyui-layout" fit="true">
<div data-options="region:'center',title:'联系人:${suser.caption }',iconCls:'icon-man'" id="screen">
</div>
<div region="south" split="true" border="false" style="height:20%;" >
<input class="easyui-textbox" data-options="buttonText:'发送',prompt:'输入消息内容',multiline:true,onClickButton:sendnew" style="width:100%;height:100%;" id="content" name="content"/>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,71 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<html>
<head>
<title></title>
<jsp:include page="../inc.jsp"></jsp:include>
<script type="text/javascript">
function doview(dialog, grid,morder,send){
//grid.datagrid('reload');
var id=$('#id').val();
var sdt=$('#sdtt').val();
$.post(ext.contextPath + '/msg/viewMsgFast.do',{id:id,morder:morder,sdt:sdt,send:send},function(data){
if(data.rows==""){
top.$.messager.alert('提示',data.res,'info');
}
$('#suser').html(data.suser);
$('#recv').html(data.recv);
$('#sdt').html(data.rows[0].sdt.substring(0,19));
$('#content').html(data.rows[0].content);
$('#id').val(data.rows[0].id);
$('#sdtt').val(data.rows[0].sdt.substring(0,19));
},'json');
}
function formattime(val) {
var year = parseInt(val.year) + 1900;
var month = (parseInt(val.month) + 1);
month = month > 9 ? month : ('0' + month);
var date = parseInt(val.date);
date = date > 9 ? date : ('0' + date);
var hours = parseInt(val.hours);
hours = hours > 9 ? hours : ('0' + hours);
var minutes = parseInt(val.minutes);
minutes = minutes > 9 ? minutes : ('0' + minutes);
var seconds = parseInt(val.seconds);
seconds = seconds > 9 ? seconds : ('0' + seconds);
var time = year + '-' + month + '-' + date + ' ' + hours + ':'
+ minutes + ':' + seconds;
return time;
}
</script>
</head>
<body>
<form method="post" class="form">
<input type="hidden" id="id" name="id" value="${msg.id }"/>
<input type="hidden" id="sdtt" name="sdtt" value="${msg.sdt}"/>
<table class="table" id="table1">
<tr>
<th>发送人</th>
<td id="suser">${suser}</td>
</tr>
<tr>
<th>发送时间</th>
<td id="sdt">${fn:substring(msg.sdt,0,19)}</td>
</tr>
<tr>
<th>接收人</th>
<td id="recv">${recv}</td>
</tr>
<tr>
<th>内容</th>
<td id="content">${msg.content}</td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,28 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title></title>
<jsp:include page="../inc.jsp"></jsp:include>
<script type="text/javascript">
</script>
</head>
<body>
<form method="post" class="form">
<table class="table">
<tr>
<th style="text-align:center">已浏览人</th>
<td style="overflow:auto;width:100%;height:80px;">${checker}</td>
</tr>
<tr>
<th style="text-align:center">未浏览人</th>
<td style="overflow:auto;width:100%;height:80px;">${notchecker}</td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,73 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
<head>
<title></title>
<jsp:include page="../inc.jsp"></jsp:include>
<script type="text/javascript">
$(function(){
<c:forEach items="${listuserrecv}" var="obj">
$("#selectUsers").append("<option value='"+'${obj.id}'+"'>"+'${obj.caption}'+"</option>");
</c:forEach>
<c:forEach items="${viewlist}" var="viewlistobj">
var longstr='<div style="float:right;width:400px;"><br><table class="table" ><tr><td height="50px">'+'${viewlistobj.content}'+'</td>'
+'<th>'+'${suser.caption}'+'<br>'+'${viewlistobj.sdt.substring(0,19)}'+'</th></tr></table></div>';
$("#screen").append(longstr);
$("#parentid").val('${viewlistobj.id}');
</c:forEach>
});
function sendnew(){
var content = $("#content").val();
var parentid = $("#parentid").val();
if(content==null ||content==""){
alert("短信内容不能为空");
return;
}
if ($(".form").form('validate')) {
$.post(ext.contextPath + "/msg/sendnewSms.do", {recvid:"${recvid}",typeid:"${msg.typeid}",content:content,parentid:parentid} , function(data) {
if (data.res== 1) {
top.$.messager.alert('提示', "发送成功", 'info');
//刷新页面
$("#parentid").val(data.parentid);
var longstr='<div style="float:right;width:400px;"><br><table class="table" ><tr><td height="50px">'+data.rows[0].content+'</td>'
+'<th>'+data.susername+'<br>'+data.rows[0].sdt.substring(0,19)+'</th></tr></table></div>';
$("#screen").append(longstr);
}else if(data.res == 0){
top.$.messager.alert('提示', "保存失败", 'info');
}else{
top.$.messager.alert('提示', data.res, 'info');
}
},'json');
}
}
</script>
</head>
<body>
<input type="hidden" id="recvid" name="recvid" value="${recvid}"/>
<input type="hidden" id="typeid" name="typeid" value="${msg.typeid}"/>
<input type="hidden" id="parentid" name="parentid" value="${msg.id}"/>
<div class="easyui-layout" style="width:750px;height:450px;">
<!-- <div data-options="region:'north'" style="height:50px"></div>-->
<!-- <div data-options="region:'west',split:true" title="West" style="width:100px;"></div> -->
<div data-options="region:'east',split:true,iconCls:'icon-man'" title="收信人" style="width:20%;padding:0;">
<select name="selectUsers" id="selectUsers" ondblclick="" style="width:100%; height:100%;margin:-2px" multiple="multiple"></select>
</div>
<div data-options="region:'center',title:'内容',iconCls:'icon-ok'">
<div class="easyui-layout" fit="true">
<div region="center" border="false" id="screen">
</div>
<div region="south" split="true" border="false" style="height:20%;" >
<input class="easyui-textbox" data-options="buttonText:'发送',prompt:'输入短信内容',multiline:true,onClickButton:sendnew" style="width:100%;height:100%;" id="content" name="content">
</div>
</div>
</div>
</div>
</body>
</html>