list.jsp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  2. <%String basePath = request.getScheme()+ "://" + request.getServerName() + ":" +request.getServerPort() + request.getContextPath(); %>
  3. <jsp:include page="../../common/include.jsp" />
  4. <link type="text/css" rel="stylesheet" href="<%=basePath %>/style/sendSms.css">
  5. <script type="text/javascript">
  6. /**显示区*/
  7. $(function() {
  8. $('#sendSmsDataGrid').datagrid({
  9. rownumbers:true,
  10. fit:true,
  11. pageSize:20,
  12. pageList : [ 10, 20, 30, 40, 50 ],
  13. fitColumns:false,
  14. border:false,
  15. sortOrder:'desc',
  16. pagination:true,
  17. idField:'id',
  18. url:whzl.basePath + '/sendSmsAction_list',
  19. toolbar:'#searchtool',
  20. checkOnSelect:true,
  21. selectOnCheck:true,
  22. nowrap:true,
  23. singleSelect:true,
  24. showFooter: true,
  25. loadFilter:function(result){
  26. if(result.success){
  27. return result.obj;
  28. }else{
  29. $.messager.alert("提示",result.message);
  30. return ;
  31. }
  32. }
  33. });
  34. });
  35. /**查询*/
  36. function searchFun(){
  37. $("#sendSmsDataGrid").datagrid("load", {
  38. "sendSms.phones":trim($("#phone").val()),
  39. "startDay":trim($('#startDay').datebox('getValue')),
  40. "endDay":trim($('#endDay').datebox('getValue'))
  41. });
  42. }
  43. /*清除查询条件**/
  44. function ClearQuery() {
  45. $("#tblQuery").find("input").val("");
  46. $("#tblQuery").find("select").val("-1");
  47. }
  48. var sendUserFormatter = function(value , row , index){
  49. if(row.user!= null){
  50. return row.user.fullName;
  51. }else{
  52. return "系统发送"
  53. }
  54. };
  55. /**详细*/
  56. var detailsFormatter = function(value , row , index){
  57. return "<img src='<%=basePath%>/js/easyui/themes/itemicon/detail.png' title='查看详情' onclick=details(" + row.id + ") style='cursor:pointer' />";
  58. };
  59. /**详细页面对话框*/
  60. var details = function(id){
  61. $("#detailDialog").dialog(
  62. {
  63. buttons : [
  64. {
  65. text : '确定',
  66. iconCls : 'icon-ok',
  67. handler : function(){
  68. $("#detailDialog").dialog("close");
  69. }
  70. }
  71. ],
  72. onLoad : function(){
  73. var contactsId;
  74. $.ajax({
  75. type: "post",//使用get方法访问后台
  76. dataType: "json",//返回json格式的数据
  77. url: "sendSmsAction_findById",//要访问的后台地址
  78. data: "sendSms.id="+id,//要发送的数据
  79. complete :function(){$("#load").hide();},//AJAX请求完成时隐藏loading提示
  80. success: function(msg){//msg为返回的数据,在这里做数据绑定
  81. $("#content_detail").text(msg.obj.content);
  82. $("#phones_detail").text(msg.obj.phones);
  83. if(msg.obj.user!= null){
  84. $("#sendUser_detail").text(msg.obj.user.fullName);
  85. }else{
  86. $("#sendUser_detail").text("系统发送");
  87. }
  88. $("#names_detail").text(msg.obj.names);
  89. $("#dept_detail").text(msg.obj.dept);
  90. }
  91. });
  92. }
  93. }
  94. );
  95. };
  96. /**增加*/
  97. function add(){
  98. $('#addDialog').dialog(
  99. {
  100. buttons : [
  101. {
  102. text : '发送短信',
  103. iconCls : 'icon-ok',
  104. handler : function(){
  105. parent.$.messager.progress({
  106. title : '提示',
  107. text : '保存中,请稍后....'
  108. });
  109. $('#addForm').form('submit',
  110. {
  111. url : whzl.basePath+'/sendSmsAction_add',
  112. onSubmit: function(){
  113. var isValid =$('#addForm').form('validate');
  114. if(isValid == false){
  115. parent.$.messager.progress('close');
  116. }
  117. return isValid;
  118. },
  119. success : function(result){
  120. parent.$.messager.progress('close');
  121. var parseResult = $.parseJSON(result);
  122. if(parseResult.success){
  123. $("#addDialog").dialog("close");
  124. searchFun();
  125. }else{
  126. $.messager.alert("提示",parseResult.message);
  127. }
  128. }
  129. }
  130. );
  131. }
  132. },
  133. {
  134. text : '取消',
  135. iconCls : 'icon-cancel',
  136. handler : function(){
  137. $("#addDialog").dialog("close");
  138. }
  139. }
  140. ],
  141. onLoad : function(){
  142. $.ajax({
  143. type: "post",//使用get方法访问后台
  144. dataType: "json",//返回json格式的数据
  145. async:false,
  146. url: "contactsAction_findByUserIdsList",//要访问的后台地址
  147. complete :function(){$("#load").hide();},//AJAX请求完成时隐藏loading提示
  148. success: function(msg){//msg为返回的数据,在这里做数据绑定
  149. console.log(msg);
  150. for(var i =0; i < msg.length; i++){
  151. $("#sendSms_ul").append("<li>"+
  152. "<P><label>"+msg[i].text+"("+msg[i].count+"人)</label><input class='chooseBtn' type='button' rel='0' value='&nbsp;'/></P>"+
  153. "<ul class='subMenu' id='"+msg[i].id+"'></ul></li>")
  154. for(var j =0; j < msg[i].children.length; j++){
  155. $("#"+msg[i].id).append("<li><input type='checkbox' name='"+msg[i].children[j].text+"("+msg[i].children[j].phone+")' id='"+msg[i].children[j].id+"choose' value='"+msg[i].children[j].phone+"'/><label for='"+msg[i].children[j].id+"choose'>"+msg[i].children[j].text+"</label></li>");
  156. }
  157. }
  158. }
  159. });
  160. $('.menu li>p').click(function(){
  161. if($(this).next('ul').css('display')=='none'){
  162. $(this).next('ul').css('display','block');
  163. }else{
  164. $(this).next('ul').css('display','none');
  165. }
  166. })
  167. /*总全选按钮效果*/
  168. $('.chooseAll').click(function(even){
  169. var rel=$(this).attr('rel');
  170. if(rel==0){
  171. $(".menu input").prop("checked", true);
  172. $(".menu input").attr("checked", true);
  173. var valArr = new Array;
  174. var phonesArr = new Array;
  175. $(".menu :checkbox[checked]").each(function(i){
  176. valArr[i] = $(this).val();
  177. phonesArr[i] = $(this).attr("name");
  178. });
  179. var vals = valArr.join(',');
  180. var phones = phonesArr.join(',');
  181. $('#receiveNumBox').val(vals);
  182. $('#phones').val(phones);
  183. $(this).attr('rel','1');
  184. $('.chooseBtn').attr('rel','1');
  185. }else{
  186. $(".menu input").attr("checked", false);
  187. $('#receiveNumBox').val('');
  188. $('#phones').val('');
  189. $(this).attr('rel','0');
  190. }
  191. even.stopPropagation();
  192. })
  193. /*局部全选按钮效果*/
  194. $('.chooseBtn').click(function(even){
  195. var rel=$(this).attr('rel');
  196. if(rel==0){
  197. $(this).parent('p').next('ul').find('input').attr("checked", true);
  198. $(this).parent('p').next('ul').find('input').prop("checked", true);
  199. var valArr = new Array;
  200. var phonesArr = new Array;
  201. $(".menu :checkbox[checked]").each(function(i){
  202. valArr[i] = $(this).val();
  203. phonesArr[i] = $(this).attr("name");
  204. });
  205. var vals = valArr.join(',');//转换为逗号隔开的字符串 join 拼合
  206. var phones = phonesArr.join(',');
  207. $('#receiveNumBox').val(vals);
  208. $('#phones').val(phones);
  209. $(this).attr('rel','1');
  210. }else{
  211. $(this).parent('p').next('ul').find('input').attr("checked", false);
  212. $(this).parent('p').next('ul').find('input').prop("checked", false);
  213. var delarr = new Array;
  214. var delphonearr = new Array;
  215. $(this).parent('p').next('ul').find('input').each(function(i){
  216. delarr[i] = $(this).val();
  217. delphonearr[i] = $(this).attr("name");
  218. });
  219. for(var i=0;i<delarr.length;i++){
  220. valstr=$('#receiveNumBox').val();//获取文本框里面的值
  221. var arr = valstr.split(','); //以逗号分隔开存入数组中
  222. var phonesstr = $('#phones').val();
  223. var phonesarr = phonesstr.split(',');
  224. if($.inArray(delarr[i],arr)!=-1){
  225. arr.splice($.inArray(delarr[i],arr),1); //当前值匹配到数组中相同的值,删除匹配中的值
  226. phonesarr.splice($.inArray(delphonearr[i],phonesarr),1);
  227. }
  228. var vals = arr.join(',');
  229. $('#receiveNumBox').val(vals); //将删除后的字符串存入文本中
  230. var phones = phonesarr.join(',');
  231. $('#phones').val(phones);
  232. }
  233. $(this).attr('rel','0');
  234. }
  235. even.stopPropagation();
  236. })
  237. /*单个点击复选框时*/
  238. $('.subMenu li input').click(function(even){
  239. even.stopPropagation();
  240. if($(this).prop("checked")){
  241. var arr = new Array;
  242. valstr=$('#receiveNumBox').val();//获取文本框里面的值
  243. phonesstr=$('#phones').val();//获取文本框里面的值
  244. var thisval=$(this).val();//获取当前点击的复选框的值
  245. var phone = $(this).attr("name");
  246. if(valstr){
  247. var arr = valstr.split(','); //以逗号分隔开存入数组中
  248. arr.push(thisval);
  249. var vals = arr.join(',');
  250. $('#receiveNumBox').val(vals); //将删除后的字符串存入文本中
  251. var phonearr = phonesstr.split(',');
  252. phonearr.push(phone);
  253. var phones = phonearr.join(',');
  254. $('#phones').val(phones);
  255. }else{
  256. $('#receiveNumBox').val(thisval);
  257. $('#phones').val(phone);
  258. }
  259. }else{
  260. //取消选中状态
  261. valstr=$('#receiveNumBox').val();//获取文本框里面的值
  262. var arr = valstr.split(','); //以逗号分隔开存入数组中
  263. var thisval=$(this).val();//获取当前点击的复选框的值
  264. phonesstr=$('#phones').val();//获取文本框里面的值
  265. var phonearr = phonesstr.split(','); //以逗号分隔开存入数组中
  266. var phoneval=$(this).attr("name");//获取当前点击的复选框的值
  267. if($.inArray(thisval,arr)!=-1){
  268. arr.splice($.inArray(thisval,arr),1); //当前值匹配到数组中相同的值,删除匹配中的值
  269. phonearr.splice($.inArray(phoneval,phonearr),1);
  270. }
  271. var vals = arr.join(',');
  272. $('#receiveNumBox').val(vals); //将删除后的字符串存入文本中
  273. var phones = phonearr.join(',');
  274. $('#phones').val(phones);
  275. }
  276. })
  277. }
  278. }
  279. );
  280. }
  281. /**导出短信*/
  282. function smsExport(){
  283. var params = encodeURI("startDay="+$('#startDay').datebox('getValue')+
  284. "&endDay="+$('#endDay').datebox('getValue'))
  285. window.location.href = whzl.basePath+"/sendSmsAction_export?"+params;
  286. }
  287. </script>
  288. <div class="easyui-layout" data-options="fit:true,border:false">
  289. <div data-options="region:'center',border:false">
  290. <div id="searchtool" data-options="region:'north', border:false">
  291. <div class="clear"></div>
  292. <table id="tblQuery" style="width:100%;font-size:12px;">
  293. <tr>
  294. <td align="right"><span>手机号码</span></td>
  295. <td width="250px"><input id="phone" type="text"/></td>
  296. <td align="right"><span>发送时间从</span></td>
  297. <td>
  298. <input class="easyui-datebox" id="startDay"/>&nbsp;至&nbsp;
  299. <input class="easyui-datebox" id="endDay"/>
  300. </td>
  301. <td align="left">
  302. <a href="javascript:searchFun();" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">查询</a>
  303. <a href="javascript:add();" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">增加</a>
  304. <a href="javascript:smsExport();" class="easyui-linkbutton" data-options="iconCls:'icon-import',plain:true">导出</a>
  305. </td>
  306. </tr>
  307. </table>
  308. <div class="clear"></div>
  309. </div>
  310. <table id="sendSmsDataGrid">
  311. <thead frozen="true">
  312. <tr>
  313. <th data-options="field:'id',checkbox:true,width:30">ID</th>
  314. </tr>
  315. </thead>
  316. <thead>
  317. <tr>
  318. <th data-options="field:'sendUser',formatter:sendUserFormatter,width:140">发送人</th>
  319. <th data-options="field:'sendDate',width:140">发送时间</th>
  320. <th data-options="field:'phones',width:100">手机号码</th>
  321. <th data-options="field:'content',width:250">内容</th>
  322. <th data-options="field:'totalMan',width:40">人数</th>
  323. <th data-options="field:'countSms',width:60">单条数</th>
  324. <th data-options="field:'totalSms',width:60">总条数</th>
  325. <th data-options="field:'details',align:'center',width:60,formatter:detailsFormatter">查看详情</th>
  326. </tr>
  327. </thead>
  328. </table>
  329. </div>
  330. </div>
  331. <div id="detailDialog" data-options="title:'&nbsp;短信详细信息',iconCls:'icon-details',width:800,height:400,modal:true,href:'<%=basePath %>/sendSmsAction_toDetail'">
  332. </div>
  333. <div id="addDialog" data-options="title:'&nbsp;增加短信信息',iconCls:'icon-add',width:800,height:500,modal:true,href:'<%=basePath %>/sendSmsAction_toAdd'" style="overflow: hidden;">
  334. </div>
  335. <script type="text/javascript">
  336. <!--
  337. $(function(){
  338. parent.$.messager.progress('close');
  339. });
  340. //-->
  341. </script>