<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> <c:set var="contextPath" value="${pageContext.request.contextPath}"></c:set> <link rel="stylesheet" href="${contextPath}/static/assets/css/jquery-ui.css" /> <link rel="stylesheet" href="${contextPath}/static/assets/css/ui.jqgrid.css" /> <div class="row"> <div class="col-xs-12"> <div class="dropdown"> 省:<select id="areaProvince" onchange="setChArea(this)"> <option selected value="" >全部</option> </select> 市:<select id="areaCity" onchange="setChArea(this)"></select> 区:<select id="areaCounty"></select> 查档类型: <select id='orderType'> <option selected value="" >全部</option> <option value="1" >工商基本信息</option> <option value="2" >工商内档信息</option> <option value="3" >户籍信息</option> <option value="4" >婚姻信息</option> <option value="5" >房产信息</option> <option value="6" >车辆信息</option> </select> 接单状态: <select id='status'> <option selected value="" >全部</option> <option value="0" >备选</option> <option value="1" >默认</option> </select> 关键字:<input id="keyword" class="input-medium search-query" type="text" /> <button id="searchd" type="button" class="btn" >搜索</button> <table id="grid-table"></table> <div id="grid-pager"></div> <script type="text/javascript"> var $path_base = "${contextPath}/static";//in Ace demo this will be used for editurl parameter </script> </div> </div> <div id="button-modal-table" class="modal fade" tabindex="-1" data-backdrop="static"> <div class="modal-dialog"> <form id="authorityForm"> <div class="modal-content"> <div class="modal-header no-padding"> <div class="table-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> <span class="white">×</span> </button> 按钮授权 </div> </div> <div class="modal-body"> <div id="modal-tip" class="red clearfix"></div> <input id="modalValue" type="hidden" /> <input id="menuCodeId" type="hidden" /> <div class="widget-box widget-color-blue2"> <div class="widget-body"> <div class="widget-main padding-8"> <div class="row"> <div class="col-xs-12 col-sm-12"> <div class="control-group"> <div id="checkboxList" class="checkbox"> </div> </div> </div> </div> </div> </div> </div> </div> <div class="modal-footer no-margin-top"> <div class="text-center"> <button id="submitButton" type="button" class="btn btn-app btn-success btn-xs"> <i class="ace-icon fa fa-floppy-o bigger-160"></i> 保存 </button> <button class="btn btn-app btn-pink btn-xs" data-dismiss="modal"> <i class="ace-icon fa fa-share bigger-160"></i> 取消 </button> </div> </div> </div><!-- /.modal-content --> </form> </div><!-- /.modal-dialog --> </div> <!-- page specific plugin scripts --> <script type="text/javascript"> var scripts = [ null, "${contextPath}/static/assets/js/jqGrid/jquery.jqGrid.js", "${contextPath}/static/assets/js/jqGrid/i18n/grid.locale-cn.js", null ] $('.page-content-area').ace_ajax('loadScripts', scripts, function() { // inline scripts related to this page jQuery(function($) { var grid_selector = "#grid-table"; var pager_selector = "#grid-pager"; // resize to fit page size $(window).on('resize.jqGrid', function() { $(grid_selector).jqGrid('setGridWidth', $(".page-content").width()); }) // resize on sidebar collapse/expand var parent_column = $(grid_selector).closest('[class*="col-"]'); $(document).on('settings.ace.jqGrid', function(ev, event_name, collapsed) { if (event_name === 'sidebar_collapsed' || event_name === 'main_container_fixed') { // setTimeout is for webkit only to give time for DOM changes and then redraw!!! setTimeout(function() { $(grid_selector).jqGrid('setGridWidth', parent_column.width()); }, 0); } }); /*搜索框 主要对Jquery grid进行刷新 带参数刷新 */ $("#searchd").click(function(){ var keyword =$("#keyword").val(); var status =$("#status").val(); var orderType =$("#orderType").val(); var cityCode =$("#areaCity").val()==null?"":$("#areaCity").val(); var countyCode =$("#areaCounty").val()==null?"":$("#areaCounty").val(); myGrid.setGridParam({data:'json',url : '${contextPath}/sys/cdPrice/getCdPrice?isFlag=0&keyword='+keyword+'&status='+status+'&orderType='+orderType+'&cityCode='+cityCode+'&countyCode='+countyCode}).trigger('reloadGrid'); }); var myGrid = jQuery(grid_selector).jqGrid({ subGrid : false, url : "${contextPath}/sys/cdPrice/getCdPrice", datatype : "json", height : 450, colNames : ['','律师', '手机', '地区', '查档天数', '绑定时间','查档类型', '金额', '接单优化级', '备注'], colModel : [ { name : '', index : '', width : 80, fixed : true, sortable : false, resize : false, formatter : 'actions', formatoptions : { keys : true, delOptions : { recreateForm : true, beforeShowForm : beforeDeleteCallback } } },{ name : 'lawyerName', index : 'lawyerName', width : 80, editable : false },{ name : 'mobile', index : 'mobile', width : 80, editable : true }, { name : 'areaName', index : 'areaName', editable : false, width : 80, }, { name : 'takeTime', index : 'takeTime', editable : true, width : 80, }, { name : 'createDate', index : 'createDate', editable : false, width : 80, }, { name : 'orderTypeName', index : 'orderTypeName', width : 120, editable : false, }, { name : 'price', index : 'price', editable : true, width : 120, }, { name : 'status', index : 'status', label : '接单状态', width : 80, editable : true, edittype : "select", editoptions:{value:"0:0;1:1;2:2;3:3;4:4;5:5;6:6;7:7;8:8;9:9"} }, {name : 'remark', index : 'remark', width : 150, editable : true, search : false, edittype: 'textarea', }], //scroll : 1, // set the scroll property to 1 to enable paging with scrollbar - virtual loading of records sortname : "createDate", sortorder : "desc", viewrecords : true, rowNum : 10, rowList : [ 10, 20, 30 ], pager : pager_selector, altRows : true, //toppager : true, multiselect : true, //multikey : "ctrlKey", multiboxonly : true, loadComplete : function() { var table = this; setTimeout(function(){ styleCheckbox(table); updateActionIcons(table); updatePagerIcons(table); enableTooltips(table); }, 0); }, editurl : "${contextPath}/sys/cdPrice/operateCdPrice" }); $(window).triggerHandler('resize.jqGrid'); function aceSwitch(cellvalue, options, cell) { setTimeout(function() { $(cell).find('input[type=checkbox]').addClass('ace ace-switch ace-switch-5').after('<span class="lbl"></span>'); }, 0); } // navButtons jQuery(grid_selector).jqGrid('navGrid', pager_selector, { // navbar options edit : <shiro:hasPermission name="${ROLE_KEY}:authority:edit">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:edit">false</shiro:lacksPermission>, editicon : 'ace-icon fa fa-pencil blue', add : <shiro:hasPermission name="${ROLE_KEY}:authority:add">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:add">false</shiro:lacksPermission>, addicon : 'ace-icon fa fa-plus-circle purple', del : <shiro:hasPermission name="${ROLE_KEY}:authority:delete">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:delete">false</shiro:lacksPermission>, delicon : 'ace-icon fa fa-trash-o red', search : <shiro:hasPermission name="${ROLE_KEY}:authority:search">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:search">false</shiro:lacksPermission>, searchicon : 'ace-icon fa fa-search orange', refresh : true, refreshicon : 'ace-icon fa fa-refresh blue', view : <shiro:hasPermission name="${ROLE_KEY}:authority:view">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:view">false</shiro:lacksPermission>, viewicon : 'ace-icon fa fa-search-plus grey' }, { // edit record form // closeAfterEdit: true, // width: 700, recreateForm : true, beforeShowForm : function(e) { var form = $(e[0]); form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />') style_edit_form(form); }, errorTextFormat: function (response) { var result = eval('('+response.responseText+')'); return result.message; } }, { // new record form // width: 700, closeAfterAdd : true, recreateForm : true, viewPagerButtons : false, beforeShowForm : function(e) { var form = $(e[0]); form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />') style_edit_form(form); }, errorTextFormat: function (response) { var result = eval('('+response.responseText+')'); return result.message; } }, { // delete record form recreateForm : true, beforeShowForm : function(e) { var form = $(e[0]); if (form.data('styled')) return false; form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />') style_delete_form(form); form.data('styled', true); }, onClick : function(e) { // alert(1); } }, { // search form recreateForm : true, afterShowSearch : function(e) { var form = $(e[0]); form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />') style_search_form(form); }, afterRedraw : function() { style_search_filters($(this)); }, multipleSearch : true /** * multipleGroup:true, showQuery: true */ }, { // view record form recreateForm : true, beforeShowForm : function(e) { var form = $(e[0]); form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />') } }) // add custom button to export the data to excel if(<shiro:hasPermission name="${ROLE_KEY}:authority:export">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:authority:export">false</shiro:lacksPermission>){ jQuery(grid_selector).jqGrid('navButtonAdd', pager_selector,{ caption : "", title : "导出Excel", buttonicon : "ace-icon fa fa-file-excel-o green", onClickButton : function () { var keys = [], ii = 0, rows = ""; var ids = $(grid_selector).getDataIDs(); // Get All IDs var row = $(grid_selector).getRowData(ids[0]); // Get First row to get the labels //var label = $(grid_selector).jqGrid('getGridParam','colNames'); for (var k in row) { keys[ii++] = k; // capture col names rows = rows + k + "\t"; // output each Column as tab delimited } rows = rows + "\n"; // Output header with end of line for (i = 0; i < ids.length; i++) { row = $(grid_selector).getRowData(ids[i]); // get each row for (j = 0; j < keys.length; j++) rows = rows + row[keys[j]] + "\t"; // output each Row as tab delimited rows = rows + "\n"; // output each row with end of line } rows = rows + "\n"; // end of line at the end var form = "<form name='csvexportform' action='${contextPath}/sys/authority/operateAuthority?oper=excel' method='post'>"; form = form + "<input type='hidden' name='csvBuffer' value='" + encodeURIComponent(rows) + "'>"; form = form + "</form><script>document.csvexportform.submit();</sc" + "ript>"; OpenWindow = window.open('', ''); OpenWindow.document.write(form); OpenWindow.document.close(); } }); } function buttonAuthorityFormatter(cellvalue, options, cell) { var template = "<button data-toggle='modal' onclick='javascript:$(\"#button-modal-table\").modal(\"toggle\");$(\"#menuCodeId\").val(\"" + cell.menuCode +"\")' class='btn btn-xs btn-warning'><i class='ace-icon fa fa-flag bigger-120'></i></button>"; if(cell.parentMenuCode == "0" || cell.parentMenuCode == "bootstrapinstance" || cell.parentMenuCode == "chartsreports" || cell.menuCode == "mail"){ return ""; }else{ return template; } } $("#button-modal-table").on('shown.bs.modal', function() { $("#modal-tip").html(""); $.ajax({ url : "${contextPath}/sys/authority/getAuthorityButtonList?rand=" + Math.random(1000), data : { menuCode : $("#menuCodeId").val() }, type : 'POST', dataType : 'json', complete : function(response) { var returninfo = eval("(" + response.responseText + ")"); $("#checkboxList").html(returninfo.data); } }); }); $('#submitButton').on('click', function() { var allArray = []; $("input[name='form-field-checkbox']").each(function(){ if($(this).attr("type") == "checkbox"){ allArray.push($(this).attr("id"),",",$(this).is(':checked') == "" ? "false" : "true",";"); } else { allArray.push("AND"); } }); $("#modalValue").html(allArray); $.ajax({ url : "${contextPath}/sys/authority/saveAuthorityButtonList", data : { checkboxList : $("#modalValue").text(), menuCode : $("#menuCodeId").val() }, type : 'POST', dataType : 'json', complete : function(response) { $("#button-modal-table").modal("toggle"); } }); }); function style_edit_form(form) { // form.find('input[name=statusCn]').addClass('ace ace-switch ace-switch-5').after('<span class="lbl"></span>'); // don't wrap inside a label element, the checkbox value won't be submitted (POST'ed) // .addClass('ace ace-switch ace-switch-5').wrap('<label class="inline" />').after('<span class="lbl"></span>'); // update buttons classes var buttons = form.next().find('.EditButton .fm-button'); buttons.addClass('btn btn-sm').find('[class*="-icon"]').hide();// ui-icon, s-icon buttons.eq(0).addClass('btn-primary').prepend('<i class="ace-icon fa fa-check"></i>'); buttons.eq(1).prepend('<i class="ace-icon fa fa-times"></i>') buttons = form.next().find('.navButton a'); buttons.find('.ui-icon').hide(); buttons.eq(0).append('<i class="ace-icon fa fa-chevron-left"></i>'); buttons.eq(1).append('<i class="ace-icon fa fa-chevron-right"></i>'); } function style_delete_form(form) { var buttons = form.next().find('.EditButton .fm-button'); buttons.addClass('btn btn-sm btn-white btn-round').find('[class*="-icon"]').hide();// ui-icon, s-icon buttons.eq(0).addClass('btn-danger').prepend('<i class="ace-icon fa fa-trash-o"></i>'); buttons.eq(1).addClass('btn-default').prepend('<i class="ace-icon fa fa-times"></i>') } function style_search_filters(form) { form.find('.delete-rule').val('X'); form.find('.add-rule').addClass('btn btn-xs btn-primary'); form.find('.add-group').addClass('btn btn-xs btn-success'); form.find('.delete-group').addClass('btn btn-xs btn-danger'); } function style_search_form(form) { var dialog = form.closest('.ui-jqdialog'); var buttons = dialog.find('.EditTable') buttons.find('.EditButton a[id*="_reset"]').addClass('btn btn-sm btn-info').find('.ui-icon').attr('class', 'ace-icon fa fa-retweet'); buttons.find('.EditButton a[id*="_query"]').addClass('btn btn-sm btn-inverse').find('.ui-icon').attr('class', 'ace-icon fa fa-comment-o'); buttons.find('.EditButton a[id*="_search"]').addClass('btn btn-sm btn-purple').find('.ui-icon').attr('class', 'ace-icon fa fa-search'); } function beforeDeleteCallback(e) { var form = $(e[0]); if (form.data('styled')) return false; form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />') style_delete_form(form); form.data('styled', true); } function beforeEditCallback(e) { var form = $(e[0]); form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />') style_edit_form(form); } // it causes some flicker when reloading or navigating grid // it may be possible to have some custom formatter to do this as the grid is being created to prevent this // or go back to default browser checkbox styles for the grid function styleCheckbox(table) { /** * $(table).find('input:checkbox').addClass('ace') .wrap('<label />') .after('<span class="lbl align-top" />') $('.ui-jqgrid-labels th[id*="_cb"]:first-child') * .find('input.cbox[type=checkbox]').addClass('ace') .wrap('<label />').after('<span class="lbl align-top" />'); */ } // unlike navButtons icons, action icons in rows seem to be hard-coded // you can change them like this in here if you want function updateActionIcons(table) { /** * var replacement = { 'ui-ace-icon fa fa-pencil' : 'ace-icon fa fa-pencil blue', 'ui-ace-icon fa fa-trash-o' : 'ace-icon fa fa-trash-o red', 'ui-icon-disk' : 'ace-icon fa fa-check green', 'ui-icon-cancel' : * 'ace-icon fa fa-times red' }; $(table).find('.ui-pg-div span.ui-icon').each(function(){ var icon = $(this); var $class = $.trim(icon.attr('class').replace('ui-icon', '')); if($class in replacement) * icon.attr('class', 'ui-icon '+replacement[$class]); }) */ } // replace icons with FontAwesome icons like above function updatePagerIcons(table) { var replacement = { 'ui-icon-seek-first' : 'ace-icon fa fa-angle-double-left bigger-140', 'ui-icon-seek-prev' : 'ace-icon fa fa-angle-left bigger-140', 'ui-icon-seek-next' : 'ace-icon fa fa-angle-right bigger-140', 'ui-icon-seek-end' : 'ace-icon fa fa-angle-double-right bigger-140' }; $('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function() { var icon = $(this); var $class = $.trim(icon.attr('class').replace('ui-icon', '')); if ($class in replacement) icon.attr('class', 'ui-icon ' + replacement[$class]); }) } function enableTooltips(table) { $('.navtable .ui-pg-button').tooltip({ container : 'body' }); $(table).find('.ui-pg-div').tooltip({ container : 'body' }); } // var selr = jQuery(grid_selector).jqGrid('getGridParam','selrow'); $(document).one('ajaxloadstart.page', function(e) { $(grid_selector).jqGrid('GridUnload'); $('.ui-jqdialog').remove(); }); }); }); function initAreaProvince(){ $.getJSON("${contextPath}/sys/cdPrice/getProvince",function(result){ $.each(result, function(i, v){ $("#areaProvince").append("<option value='"+v.code+"'>"+v.name+"</option>"); }); }); } function setChArea(obj){ var val = obj.value; var sec = null; var areaId = $(obj).attr("id"); if(areaId=="areaProvince"){ sec = document.getElementById('areaCity'); }else{ sec = document.getElementById('areaCounty'); } sec.innerHTML = "<option selected value='' >全部</option>"; if(val != ''){ //ajax $.getJSON("${contextPath}/sys/cdPrice/getAreas?parentCode="+val,function(result){ $.each(result, function(i, v){ sec.innerHTML+="<option value='"+v.code+"'>"+v.name+"</option>"; }); }); } } initAreaProvince(); </script>