常用组件
layout(布局)
通过样式对页面经行简单的布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"> <link rel="stylesheet" type="text/css" href="easyui/themes/color.css"> <script type="text/javascript" src="easyui/jquery.min.js"></script> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script src="easyui/locale/easyui-lang-zh_CN.js"></script> <script> $(function() { $("#EasyUItree").tree({ url: 'datatree.json', method: 'get', //添加事件 'onClick': function(node) { //判断是否有子节点 if(!node.children){ //判断我们是否已经有了该text if($("#EasyUItabs").tabs("exists",node.text)){ $("#EasyUItabs").tabs("select",node.text); } else{ $("#EasyUItabs").tabs("add",{ title: node.text, closable:true, content:'<iframe src="'+ node.url+'" frameborder="0" width="100%" height="100%"></iframe>' }); } } } }) }) </script> </head> <!--只用完整布局--> <body class="easyui-layout"> <!--上布局--> <div data-options="region:'north',title:'超级管理系统'" style="height:100px;"> XXXX超级管理系统 </div> <div data-options="region:'west',title:'菜单',split:true" style="width:100px;"> <!--引入树结构--> <ul id="EasyUItree"></ul> </div> <div id="EasyUItabs" data-options="region:'center',title:'center title'" class="easyui-tabs" style="padding:5px;background:#eee;"> <!--添加tabs--> <!--data-options="closable:true"選擇是否能夠點擊刪除'--> <div title="主页" data-options="closable:true" style="padding:20px;display:none;"> <h2>欢迎来到 超级NB的 0704 Xxx 管理系统 </h2> </div> </div> <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"> 杰大大的超级管理系统 </div> </body> </html>
然后在上下左右中加入我们需要的内容
tabs
这就是tabs,选择的时候会弹出来,做一个点击事件,如果没有子元素我们就需要点击的时候显示头部,并且跳转到页面
'onClick': function(node) {
//判断是否有子节点
if(!node.children){
//判断我们是否已经有了该text
if($("#EasyUItabs").tabs("exists",node.text)){
$("#EasyUItabs").tabs("select",node.text);
}
else{
$("#EasyUItabs").tabs("add",{
title: node.text,
closable:true,
content:'<iframe src="'+ node.url+'" frameborder="0" width="100%" height="100%"></iframe>'
});
}
}
From
这里我们直接引入,但是可以通过使用EasyUI扩展库的功能完成我们对密码的验证以及前台东西的相应展示
EasyUI扩展库的使用:
在百度上搜索我们就会有演示和列子,以及对应引入的文件
DataGrid
把我们json的东西对应的显示到我们的页面中,能过做一些非常好的东西
整体的html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <!--默认样式--> <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"> <!--图标样式--> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"> <!-- 插入其中的css --> <link rel="stylesheet" type="text/css" href="validatebox/jeasyui.extensions.validatebox.css"> <!-- jquery 脚本--> <script type="text/javascript" src="easyui/jquery.min.js"></script> <!-- easyui 核心插件--> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <!-- 中文插件 --> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script> <!-- 扩展插件 --> <script type="text/javascript" src="js/jquery.jdirk.js"></script> <script type="text/javascript" src="validatebox/jeasyui.extensions.validatebox.rules.js"></script> <script type="text/javascript" src="js/crud.js"></script> </head> <body> <!--data-options="closed:true"隐藏菜单属性--> <div class="easyui-dialog" id="edialog" title="添加/修改" style="width:400px;padding:10px;" data-options="closed:true"> <form id="eform" method="post"> <table cellpadding="5"> <tr> <td>用户名:</td> <td><input class="easyui-textbox" type="text" name="username" data-options="required:true"></input></td> </tr> <tr> <td>密码:</td> <td><input id='v16' class="easyui-validatebox" type="password" name="password" data-options="required:true"></input></td> </tr> <tr> <td>确认密码:</td> <td><input id="v17" class="easyui-validatebox" type="password" name="qrpassword" data-options="required:true"></input></td> </tr> <tr> <td>邮箱:</td> <td><input class="easyui-textbox" name="email" data-options="validType:'email'"></input></td> </tr> <tr> <!-- 扩展 easyUI 约束为数字 --> <td>年龄:</td> <td><input class="easyui-validatebox" name="age" data-options="validType:['integer']"></input></td> </tr> <tr> <!--下拉框 --内容动态获取 --> <td>部门:</td> <td> <select id="ecombox" class="easyui-combobox" name="department.id"></select> </td> </tr> </table> </form> <div style="text-align:center;padding:5px"> <a href="javascript:void(0)" data-method="submitForm" class="easyui-linkbutton" onclick="submitForm()">Submit</a> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">Clear</a> </div> </div> </div> <!--toolbar:'#ft'"工具箱栏位url:'empldata.json'发送一个请求获得json--> <table id="edatagrid" class="easyui-datagrid" fit=true title="DataGrid Complex Toolbar" style="width:700px;height:250px" data-options="rownumbers:true,singleSelect:true,url:'empldata.json',fitColumns:true,method:'get',toolbar:'#ft'"> <thead> <tr> <!--通过field找到相应的json对象中的数据--> <th data-options="field:'id',width:20">编号</th> <th data-options="field:'username',width:20">姓名</th> <th data-options="field:'password',width:100,align:'right'">密码</th> <th data-options="field:'email',width:80,align:'right'">邮箱</th> <th data-options="field:'age',width:20" >年龄</th> <th data-options="field:'headImage',width:40,align:'center',formatter:showImg">图片</th> <th data-options="field:'department',width:20,align:'center',formatter:showEmpl">部门</th> </tr> </thead> </table> <div id="ft" style="padding:2px 5px;"> <a href="#" class="easyui-linkbutton" data-method="add" iconCls="icon-add" plain="true">添加</a> <a href="#" class="easyui-linkbutton" data-method="update" iconCls="icon-edit" plain="true">修改</a> <a href="#" class="easyui-linkbutton" data-method="remove" iconCls="icon-remove" plain="true">删除</a> </div> </body> </html>
增删改查JQ
我们动态的添加并且实现crud操作
//图片展示 function showImg(value, row, index) { //图片展示 return '<img src="' + value + '" alt="没有头像" style="width: 50px;height: 50px;" />' }; function showEmpl(value, row, index) { //vaule的值自己打印出来看 if(value) { //返回值为图片的位置 return value.name; } else { return "没有部门"; } }; $(function() { var edatagrid = $("#edatagrid"); var edialog = $("#edialog"); var eform = $("#eform"); var ecombox = $("#ecombox"); // 动态值 标签事件,绑定onClick,调用jiedada里的方法 // 绑定on事件 $("a[data-method]").on("click", function() { var method = $(this).data("method"); jiedada[method](); }) // 加载 部门的数据 $('#ecombox').combobox({ url: 'department.json', method: 'get', width: '100px', panelHeight: 'auto', valueField: 'id', textField: 'text', }); // 两次密码一致的验证 $("#v17").validatebox({ validType: ['equals["#v16","jquery"]'] }); var jiedada = { "add": function() { // 点击按钮 显示对话框 eform.form("clear"); // 清除之前的数据 jiedada.show(); // 显示密码框 edialog.dialog("open"); // 显示对话框 }, "update": function() { //判断是否选中 var row = edatagrid.datagrid("getSelected"); if(row) { // 因为和 添加共用一个form ,数据会冲突,提交时清空了数据 // 加载数据 -- load eform.form("load", row); // 隐藏 密码框: jiedada.hidden(); // 部门的数据没有回显 if(row.department) { ecombox.combobox("select", row.department.name); } // 打开对话框,回显数据 edialog.dialog("open"); // } else { // alert() //不使用原始的alert 太丑了,不同浏览器的区别 $.messager.alert('警告', "<h1 style='color:red'>哈b</h1>请先选择,在进行修改的!", 'warning'); }; }, "remove": function() { // 判断是否选中: var row = edatagrid.datagrid("getSelected"); if(row) { $.messager.confirm('确认对话框', '您确定要删除我吗?', function(r) { if(r) { // 删除 发生后台请求! $.messager.alert('提示', "<h1 >删除完成!</h1>", 'info'); } else { // 取消删除 } }); } else { // alert() //不使用原始的alert 太丑了,不同浏览器的区别 $.messager.alert('警告', "<h1 style='color:red'>哈b</h1>请先选择,在删除的!", 'warning'); }; }, 'submitForm': function() { // 数据是否复合验证 if(eform.form("validate")) { // 提交表单数据 // 关闭窗口 -- 清空表单中的数据 eform.form("clear"); edialog.dialog("close"); } else { $.messager.alert("", "数据有误,验证后在提交!") } }, "hidden": function() { //修改数据时 隐藏 密码框 $("#v16").closest("tr").hide(); $("#v17").closest("tr").hide(); }, "show": function() { //添加数据时 显示 密码框 $("#v16").closest("tr").show(); $("#v17").closest("tr").show(); } }; });
对饮的json
[{ "id": 1, "text": "系统管理", "state": "open", "children": [{ "id": 12, "text": "部门管理", "iconCls":"icon-lock", "url":"/department/index" },{ "id": 11, "text": "员工管理", "iconCls":"icon-man", "url":"empldataprid.html" }] },{ "id": 1, "text": "基本信息", "state": "open", "children": [{ "id": 11, "text": "菜单管理", "iconCls":"icon-man", "url":"/user.action" },{ "id": 12, "text": "角色管理", "iconCls":"icon-man", "url":"/customer/index" },{ "id": 12, "text": "资源管理", "iconCls":"icon-man", "url":"/06_panel.jsp" } ] }]
[{ "id":1, "text":"IT部", "selected":true },{ "id":2, "text":"采购部" },{ "id":3, "text":"销售部" }]
{ "total": 139, "rows": [ { "id": 1, "username": "admin", "password": "48d05cc43f3bfe2510394e8dfcef919a", "email": "admin@itsource.com", "age": 34, "headImage": "img/1.png", "department": { "id": 1, "name": "IT部" } }, { "id": 2, "username": "roleAdmin", "password": "d563ad18fb8e2067eaee76ca27f3e8a3", "email": "roleAdmin@itsource.cn", "age": 25, "headImage": "img/1.png", "department": { "id": 1, "name": "IT部" } }, { "id": 3, "username": "admin1", "password": "6a4876827226fb87ffeb78edb2b1e7ad", "email": "amdin1@itsource.cn", "age": 25, "headImage": "img/1.png", "department": { "id": 1, "name": "IT部" } }, { "id": 4, "username": "admin2", "password": "d157d747dc2f6740e81ca9d84b669272", "email": "amdin2@itsource.cn", "age": 25, "department": { "id": 2, "name": "采购部" } }, { "id": 5, "username": "admin3", "password": "89335a5f0fdd015113e9acf90727cdce", "email": "amdin3@itsource.cn", "age": 25, "headImage": "img/1.png", "department": { "id": 1, "name": "IT部" } }, { "id": 6, "username": "admin4", "password": "12e4dc60e1813184b3e4552dedd7bf9b", "email": "amdin4@itsource.cn", "age": 25, "headImage": "img/1.png", "department": { "id": 3, "name": "销售部" } }, { "id": 7, "username": "admin5", "password": "02f9b7f759b5654d421c0ce458d16c28", "email": "amdin5@itsource.cn", "age": 25, "headImage": "img/1.png", "department": { "id": 1, "name": "IT部" } }, { "id": 8, "username": "admin6", "password": "138e943e0987d1fff7a4c367deedd4e3", "email": "amdin6@itsource.cn", "age": 25, "headImage": "", "department": { "id": 2, "name": "采购部" } }, { "id": 9, "username": "admin7", "password": "53bf9cd2cb250a9d82c3260b6d398d73", "email": "amdin7@itsource.cn", "age": 25, "department": { "id": 2, "name": "采购部" } }, { "id": 10, "username": "admin8", "password": "f6bd6e8ca007216fef1ddd9652e5d42f", "email": "amdin8@itsource.cn", "age": 25, "headImage": "" } ] }