欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

easyui 1.5+spring 4.2+mybatis 3.4 Web示例(七) 单表操作之页面层

程序员文章站 2022-05-29 14:46:26
...

easyui 还是很强大的一个框架,特别是表格操作的界面。省去了很多开发时间。

这里我就不过多的介绍easyui具体怎么用,只是说下值得注意到地方。

sysloglist.jsp

<%@ page contentType = "text/html; charset=UTF-8" %>
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>日志查询</title>
    <link rel="stylesheet" type="text/css" href="<%=basePath%>jslib/easyui/themes/default/easyui.css">  
    <link rel="stylesheet" type="text/css" href="<%=basePath%>jslib/easyui/themes/icon.css">
    <script type="text/javascript" src="<%=basePath%>jslib/jquery/jquery-1.11.0.min.js"></script>  
    <script type="text/javascript" src="<%=basePath%>jslib/easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="<%=basePath%>jslib/easyui/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript" src="<%=basePath%>js/comutil.js"></script>
    
    <script type="text/javascript"> 
        $(function () {  
              
            $('#list').datagrid({
                title:"日志查询",
                toolbar: '#toolbar',
                fit: true, 
                nowrap:false,
                pageSize :10, 
                pageList:[10, 20, 50],
                singleSelect:true,                 
                rownumbers:true,
                fitcolumns:true,                
                url :"getSysLogList",
                columns:[[    
                          {field:'operatorid',title:'操作员编号',width:fixWidth(0.2),align:'center'},
                            {field:'code',title:'操作员代码',width:fixWidth(0.17),align:'center'},
                          {field:'logtime',
                                title:'日志记录时间',
                                width:fixWidth(0.2),
                                align:'center', 
                            formatter:function(value,row,index){  
                                var unixTimestamp = new Date(value);  
                                return unixTimestamp.toLocaleString();  
                            }  
                        },  
                          {field:'logtype',
                            title:'日志类型',
                            width:fixWidth(0.1),
                            align:'center',
                            formatter : function(value, row, index) {  
                                if (value == '1') {  
                                    return '登录信息';  
                                } else if (value == '2'){  
                                    return '重要业务';  
                                }  
                            }  
                        },
                          {field:'loginfo',title:'日志内容',width:fixWidth(0.3),align:'center'}
                ]],
                pagination:true,
                loadFilter:pagerFilter   
            });
            
        });      
        
        var url;
        var type;
        
          //弹出新增
        function newuser () {
            $("#dlg").dialog("open").dialog('setTitle', '添加日志'); 
            $("#fm").form("clear");
            url = "add";
        }
        
        //弹出修改
        function edituser() {
            var row = $("#list").datagrid("getSelected");
            if (row) {
                var unixTimestamp = new Date(row.logtime);  
                var time =  unixTimestamp.toLocaleString();
                row.logtime = time;
                $("#dlg").dialog("open").dialog('setTitle', '修改日志');
                   $("#fm").form("load", row);               
                url = "update";         
            }else{
                $.messager.alert("提示信息", "请选择要修改的行");
            }
        }
        
        function saveuser() {
            
            $('#fm').form('submit', {
                url: url,
                onSubmit: function(){ 
                    return $(this).form("validate"); 
                },  
                success:function(data){  
                    var result = eval('('+data+')');
                    if (result.success == "true") {
                         $.messager.alert("提示信息", "操作成功");
                         $("#dlg").dialog("close");
                         $("#list").datagrid("load");
                    }
                    else {
                        $.messager.alert("提示信息", "操作失败");
                    }
                }  
            }); 
            
        }
        
        
        
        function destroyUser() {
            var row = $('#list').datagrid('getSelected');
            if (row) {
                $.messager.confirm('Confirm', '确认删除?', function (r) {
                    if (r) {
                        $.post('delete', { logid: row.logid }, function (result) {
                            if (result.success) {
                                $('#list').datagrid('reload');    // reload the user data 
                            } else {
                                //$.messager.alert("提示信息", "操作失败");
                                $.messager.show({   // show error message 
                                    title: 'Error',
                                    msg: result.errorMsg
                                });
                            }
                        }, 'json');
                    }
                });
            }
            else {
                $.messager.alert("提示信息", "请选择要修改的行");
            }
        } 
    </script>
    
    <style type="text/css">
        #fm
        {
            margin: 0;
            padding: 10px 30px;
        }
        .ftitle
        {
            font-size: 14px;
            font-weight: bold;
            padding: 5px 0;
            margin-bottom: 10px;
            border-bottom: 1px solid #ccc;
        }
        .fitem
        {
            margin-bottom: 5px;
        }
        .fitem label
        {
            display: inline-block;
            width: 80px;
        }
        
        #worp 
        {
            padding: 0px;
            width: 800px;
            margin-top: 0px;
            margin-right: auto;
            margin-bottom: 0px;
            margin-left: auto;
        }
        #worp #left 
        {
            margin: 0px;
            padding: 0px;
            float: left;
            width: 400px;    
        }
        #worp #right 
        {
            float: right;
            width: 400px;
        }
    </style> 
</head>
<body>
     
    <div id="toolbar" style="padding: 10px">
        <fieldset style="padding: 10px">
            <legend>&emsp;条件搜索/工具栏&emsp;</legend>
            <div>
                &emsp;<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-add" onclick="newuser()"plain="true">添加</a> 
                &emsp;<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-edit" onclick="edituser()" plain="true">修改</a> 
                &emsp;<a href="javascript:void(0)" class="easyui-linkbutton" iconcls="icon-remove" onclick="destroyUser()" plain="true">删除</a>
            </div>
        </fieldset>
    </div>
    
    <table id="list" ></table>
    
    <div id="dlg" class="easyui-dialog" style="width: 500px; height: 350px; padding: 10px 20px;" closed="true" buttons="#dlg-buttons">
        <div class="ftitle">信息编辑</div>
           <form id="fm" method="post">
            <div class="fitem">
                   <label>操作员编号</label>
                   <input name="operatorid" class="easyui-validatebox" required="true"/>
               </div>
               <div class="fitem">
                   <label>操作员代码</label>
                <input name="code" class="easyui-validatebox" required="true" />
               </div>
               <div class="fitem">
                   <label>日志记录时间</label>
                   <input name="logtime" class="easyui-datetimebox" required="true"/>
               </div>
            <div class="fitem">
                   <label>日志类型</label>
                   <select id="logtype" class="easyui-combobox" name="logtype" required="true" panelHeight="auto" editable="false" style="width:155px;">  
                       <option value="1">登录信息</option>
                       <option value="2">重要业务</option>
                   </select>
               </div>
               <div class="fitem">
                   <label>日志内容</label>
                   <input name="loginfo" class="easyui-textbox" data-options="multiline:true" style="width:200px;height:60px" required="true"/>
               </div>
            <input type="hidden" name="logid" id="logid" />
       </form>
   </div>
    <div id="dlg-buttons">
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="saveuser()" iconcls="icon-save">保存</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" onclick="javascript:$('#dlg').dialog('close')" iconcls="icon-cancel">取消</a>
    </div>  
</body>
</html>


easyui 1.5+spring 4.2+mybatis 3.4 Web示例(七) 单表操作之页面层

这里是导入easyui的包,基本上用到的就这些。

comutil.js是一个我写的javascript类,里面有些共用方法。

//分页
function pagerFilter(data){
	if (typeof data.length == 'number' && typeof data.splice == 'function'){	// is array
		data = {
			total: data.length,
			rows: data
		}
	}
	var dg = $(this);
	var opts = dg.datagrid('options');
	var pager = dg.datagrid('getPager');
	pager.pagination({
		onSelectPage:function(pageNum, pageSize){
			opts.pageNumber = pageNum;
			opts.pageSize = pageSize;
			pager.pagination('refresh',{
				pageNumber:pageNum,
				pageSize:pageSize
			});
			dg.datagrid('loadData',data);
		}
	});
	if (!data.originalRows){
		data.originalRows = (data.rows);
	}
	var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
	var end = start + parseInt(opts.pageSize);
	data.rows = (data.originalRows.slice(start, end));
	return data;
}

//百分比
function fixWidth(percent)  
{  
    return document.body.clientWidth * percent ; //这里你可以自己做调整  
}  

//时间比较
function compareDate(date1,date2){
    var oDate1 = new Date(date1);
    var oDate2 = new Date(date2);
    if(oDate1.getTime() > oDate2.getTime()){
    	return false;
    } else{
    	return true;
    }
}


easyui 1.5+spring 4.2+mybatis 3.4 Web示例(七) 单表操作之页面层

这个方法是初始化列表的方法,easyui有两种方式初始话,我更喜欢这种,因为这种功能更全。

这里需要说明下,如果两种方式都有的话,页面就会调用两次。


easyui 1.5+spring 4.2+mybatis 3.4 Web示例(七) 单表操作之页面层

因为oracle数据返回过来的时间是一串数字,所以需要格式化它。

至此,一个单表操作的功能就完成了。总体来说,这种框架对这种表结构形式的项目还是蛮好用的。