first commit
This commit is contained in:
83
WebRoot/jsp/msg/alarmlevelForSelect.jsp
Normal file
83
WebRoot/jsp/msg/alarmlevelForSelect.jsp
Normal 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>
|
||||
257
WebRoot/jsp/msg/frequentContactsList.jsp
Normal file
257
WebRoot/jsp/msg/frequentContactsList.jsp
Normal 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>
|
||||
95
WebRoot/jsp/msg/msgAdd.jsp
Normal file
95
WebRoot/jsp/msg/msgAdd.jsp
Normal 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">×</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>
|
||||
175
WebRoot/jsp/msg/msgAlarmlevelAdd.jsp
Normal file
175
WebRoot/jsp/msg/msgAlarmlevelAdd.jsp
Normal 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">×</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>
|
||||
188
WebRoot/jsp/msg/msgAlarmlevelEdit.jsp
Normal file
188
WebRoot/jsp/msg/msgAlarmlevelEdit.jsp
Normal 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">×</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>
|
||||
177
WebRoot/jsp/msg/msgAlarmlevelList.jsp
Normal file
177
WebRoot/jsp/msg/msgAlarmlevelList.jsp
Normal 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>
|
||||
84
WebRoot/jsp/msg/msgAlarmlevelView.jsp
Normal file
84
WebRoot/jsp/msg/msgAlarmlevelView.jsp
Normal 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">×</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>
|
||||
314
WebRoot/jsp/msg/msgListrecv.jsp
Normal file
314
WebRoot/jsp/msg/msgListrecv.jsp
Normal 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>
|
||||
264
WebRoot/jsp/msg/msgListrecv1.jsp
Normal file
264
WebRoot/jsp/msg/msgListrecv1.jsp
Normal 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>
|
||||
|
||||
229
WebRoot/jsp/msg/msgListrecv4main.jsp
Normal file
229
WebRoot/jsp/msg/msgListrecv4main.jsp
Normal 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>
|
||||
|
||||
|
||||
594
WebRoot/jsp/msg/msgListrecv4mobile.jsp
Normal file
594
WebRoot/jsp/msg/msgListrecv4mobile.jsp
Normal 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>
|
||||
522
WebRoot/jsp/msg/msgListrecv4mobile2.jsp
Normal file
522
WebRoot/jsp/msg/msgListrecv4mobile2.jsp
Normal 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>
|
||||
58
WebRoot/jsp/msg/msgListrecv4mobileInner.jsp
Normal file
58
WebRoot/jsp/msg/msgListrecv4mobileInner.jsp
Normal 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>
|
||||
229
WebRoot/jsp/msg/msgListrecvdeleted.jsp
Normal file
229
WebRoot/jsp/msg/msgListrecvdeleted.jsp
Normal 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>
|
||||
|
||||
235
WebRoot/jsp/msg/msgListrollbacked.jsp
Normal file
235
WebRoot/jsp/msg/msgListrollbacked.jsp
Normal 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+=' ';
|
||||
|
||||
}
|
||||
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>
|
||||
|
||||
388
WebRoot/jsp/msg/msgListsend.jsp
Normal file
388
WebRoot/jsp/msg/msgListsend.jsp
Normal 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>
|
||||
235
WebRoot/jsp/msg/msgListsenddeleted.jsp
Normal file
235
WebRoot/jsp/msg/msgListsenddeleted.jsp
Normal 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+=' ';
|
||||
|
||||
}
|
||||
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>
|
||||
|
||||
155
WebRoot/jsp/msg/msgMobileAdd.jsp
Normal file
155
WebRoot/jsp/msg/msgMobileAdd.jsp
Normal 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">×</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>
|
||||
358
WebRoot/jsp/msg/msgMobileList.jsp
Normal file
358
WebRoot/jsp/msg/msgMobileList.jsp
Normal 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>
|
||||
122
WebRoot/jsp/msg/msgTypeAdd.jsp
Normal file
122
WebRoot/jsp/msg/msgTypeAdd.jsp
Normal 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">×</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="英文单词或字母,如:P,mail,INFO等" 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>
|
||||
332
WebRoot/jsp/msg/msgTypeEdit.jsp
Normal file
332
WebRoot/jsp/msg/msgTypeEdit.jsp
Normal 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">×</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="英文单词或字母,如:P,mail,INFO等" 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>
|
||||
258
WebRoot/jsp/msg/msgTypeForSelect.jsp
Normal file
258
WebRoot/jsp/msg/msgTypeForSelect.jsp
Normal 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">×</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>
|
||||
247
WebRoot/jsp/msg/msgTypeList.jsp
Normal file
247
WebRoot/jsp/msg/msgTypeList.jsp
Normal 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>
|
||||
175
WebRoot/jsp/msg/msgTypeView.jsp
Normal file
175
WebRoot/jsp/msg/msgTypeView.jsp
Normal 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">×</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>
|
||||
69
WebRoot/jsp/msg/msgViewRecv.jsp
Normal file
69
WebRoot/jsp/msg/msgViewRecv.jsp
Normal 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">×</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>
|
||||
70
WebRoot/jsp/msg/msgViewReply.jsp
Normal file
70
WebRoot/jsp/msg/msgViewReply.jsp
Normal 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>
|
||||
71
WebRoot/jsp/msg/msgViewSend.jsp
Normal file
71
WebRoot/jsp/msg/msgViewSend.jsp
Normal 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>
|
||||
28
WebRoot/jsp/msg/msgViewstatus.jsp
Normal file
28
WebRoot/jsp/msg/msgViewstatus.jsp
Normal 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>
|
||||
73
WebRoot/jsp/msg/smsView.jsp
Normal file
73
WebRoot/jsp/msg/smsView.jsp
Normal 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>
|
||||
Reference in New Issue
Block a user