中小后台系统UI框架--EasyUI
程序员文章站
2022-05-18 20:13:46
后台开发人员不擅长前端UI界面,而小型软件公司没有专职美工岗位,开发人员只能借助开源UI框架,复用已有组件,完成用户操作界面。EasyUI是基于jQuery的UI插件集合体,可帮助开发者轻松构建网页。 官方地址:http://www.jeasyui.com/ 一、引用EasyUI 官网下载EasyU ......
后台开发人员不擅长前端ui界面,而小型软件公司没有专职美工岗位,开发人员只能借助开源ui框架,复用已有组件,完成用户操作界面。easyui是基于jquery的ui插件集合体,可帮助开发者轻松构建网页。
官方地址:
一、引用easyui
官网下载easyui组件jquery-easyui-1.*.*.zip,项目工程导入locale文件夹、themes文件夹、jquery.easyui.min.js、jquery.min.js文件。
二、以系统用户首页为例,使用easyui
1) 用户登录系统,首页界面
2)home.jsp编码设计
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>管理系统</title>
<link rel="stylesheet" href="plugin/easyui/themes/icon.css" />
<link rel="stylesheet" href="plugin/easyui/themes/default/easyui.css" />
<link rel="stylesheet" href="css/home.css"/>
<script type="text/javascript" src="plugin/easyui/jquery.min.js"></script>
<script type="text/javascript" src="plugin/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="plugin/easyui/locale/easyui-lang-zh_cn.js"></script>
<script type="text/javascript" src="js/pathurl.js"></script>
<script type="text/javascript" src="js/home.js?v=1.01"></script>
<script type="text/javascript" src="js/head.js"></script>
</head>
<!-- ${username} -->
<body class="easyui-layout" style="overflow-y: hidden" scroll="no">
<input id="loguser" type="hidden" value="${username}"/>
<input id="usernotice" type="hidden" value="${usernotice}"/>
<div region="north" split="true" border="false" style="overflow: hidden; height: 35px;
background: url(images/header.jpg) #7f99be repeat-x center 50%;
line-height: 30px;color: #fff; font-family: verdana, 宋体">
<span style="padding-left:5px; font-size: 18px; ">管理系统</span>
<span style="float:right; padding-right:20px; font-size: 18px;" class="head">
<a href="javascript:void(0)" id="menub" class="easyui-menubutton"
data-options="menu:'#userfunc',iconcls:'icon-usermgr'">${username}</a>
</span>
</div>
<div region="south" split="true" style="height: 30px; background: #d2e0f2; ">
<div class="footer">copyright © 2010-2017 start, all rights reserved.</div>
</div>
<div region="west" hide="true" split="true" title="导航菜单" style="width:180px;" id="west">
<div id="menunav" class="easyui-accordion" fit="true" border="false">
<!-- 导航内容 -->
</div>
</div>
<div id="mainpanle" region="center" style="background: #eee; overflow-y:hidden">
<div id="tabs" class="easyui-tabs" fit="true" border="false" >
<div title="首页" style="padding:20px;overflow:hidden; color:blue; " >
<h1 style="font-size:20px;" align="center">欢迎使用管理系统</h1>
</div>
</div>
</div>
<!--修改密码窗口-->
<div id="w" class="easyui-window" title="修改密码" collapsible="false" minimizable="false"
maximizable="false" icon="icon-save" style="width: 300px; height: 150px; padding: 5px;
background: #fafafa;">
<div class="easyui-layout" fit="true">
<div region="center" border="false" style="padding: 10px; background: #fff; border: 1px solid #ccc;">
<table cellpadding=3>
<tr>
<td>旧密码:</td>
<td><input id="txtoldpass" type="password" class="easyui-textbox" /></td>
</tr>
<tr>
<td>新密码:</td>
<td><input id="txtnewpass" type="password" class="easyui-textbox" /></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input id="txtrepass" type="password" class="easyui-textbox" /></td>
</tr>
</table>
</div>
<div region="south" border="false" style="text-align: right; height: 30px; line-height: 30px;"> <a id="btnep" class="easyui-linkbutton" icon="icon-ok" href="javascript:void(0)" > 确定</a> <a id="btncancel" class="easyui-linkbutton" icon="icon-cancel" href="javascript:void(0)">取消</a> </div>
</div>
</div>
<div id="mm" class="easyui-menu" style="width:150px;">
<div id="mm-tabupdate">刷新</div>
<div class="menu-sep"></div>
<div id="mm-tabclose">关闭</div>
<div id="mm-tabcloseall">全部关闭</div>
<div id="mm-tabcloseother">除此之外全部关闭</div>
<div class="menu-sep"></div>
<div id="mm-tabcloseright">当前页右侧全部关闭</div>
<div id="mm-tabcloseleft">当前页左侧全部关闭</div>
<div class="menu-sep"></div>
<div id="mm-exit">退出</div>
</div>
<div id="userfunc" style="width:150px;">
<div id="editpass" data-options="iconcls:'icon-edit'">修改密码</div>
<div id="loginout" data-options="iconcls:'icon-stop'">注销</div>
</div>
</body>
</html>
3)根据easyui组件,编写功能菜单ui
$(function() {
initleftmenu();
tabclose();
tabcloseeven();
});
// 初始化左侧菜单
function initleftmenu() {
$("#menunav").accordion({
animate : false
});
$.ajax({
url : "user/getusermenu.do",
type : "post",
datatype : "json",
success : function(data) {
console.log("菜单数据: " + json.stringify(data));
$.each(data.menus, function(i, n) {
var menulist = '';
menulist += '<ul>';
$.each(n.menus, function(j, o) {
menulist += '<li><div><a ref="'
+ o.menuid
+ '" href="#" rel="'
+ o.menuurl
+ '" ><span class="icon '
+ o.icon
+ '" > </span><span class="nav">'
+ o.menuname
+ '</span></a></div></li> ';
})
menulist += '</ul>';
$('#menunav').accordion('add', {
title : n.menuname,
content : menulist,
iconcls : 'icon ' + n.icon
});
});
$('.easyui-accordion li a').click(function() {
var tabtitle = $(this).children('.nav').text();
var url = $(this).attr("rel");
var menuid = $(this).attr("ref");
addtab(tabtitle, url);
$('.easyui-accordion li div').removeclass("selected");
$(this).parent().addclass("selected");
}).hover(function() {
$(this).parent().addclass("hover");
}, function() {
$(this).parent().removeclass("hover");
});
// 选中第一个
var panels = $('#menunav').accordion('panels');
var t = panels[0].panel('options').title;
$('#menunav').accordion('select', t);
}
});
}
// 添加选项卡
function addtab(subtitle, url) {
if (!$('#tabs').tabs('exists', subtitle)) {
$('#tabs').tabs('add', {
title : subtitle,
content : createframe(url),
closable : true
// icon:icon
});
} else {
$('#tabs').tabs('select', subtitle);
$('#mm-tabupdate').click();
}
tabclose();
}
// 创建点击菜单时打开框架
function createframe(url) {
var s = '<iframe scrolling="auto" frameborder="0" src="' + url
+ '" style="width:100%;height:100%;"></iframe>';
return s;
}
// 关闭选项卡
function tabclose() {
/* 双击关闭tab选项卡 */
$(".tabs-inner").dblclick(function() {
var subtitle = $(this).children(".tabs-closable").text();
$('#tabs').tabs('close', subtitle);
})
/* 为选项卡绑定右键 */
$(".tabs-inner").bind('contextmenu', function(e) {
$('#mm').menu('show', {
left : e.pagex,
top : e.pagey
});
var subtitle = $(this).children(".tabs-closable").text();
$('#mm').data("currtab", subtitle);
$('#tabs').tabs('select', subtitle);
return false;
});
}
// 绑定右键菜单事件
function tabcloseeven() {
// 刷新
$('#mm-tabupdate').click(function() {
var currtab = $('#tabs').tabs('getselected');
var url = $(currtab.panel('options').content).attr('src');
$('#tabs').tabs('update', {
tab : currtab,
options : {
content : createframe(url)
}
})
})
// 关闭当前
$('#mm-tabclose').click(function() {
var currtab_title = $('#mm').data("currtab");
$('#tabs').tabs('close', currtab_title);
})
// 全部关闭
$('#mm-tabcloseall').click(function() {
$('.tabs-inner span').each(function(i, n) {
var t = $(n).text();
$('#tabs').tabs('close', t);
});
});
// 关闭除当前之外的tab
$('#mm-tabcloseother').click(function() {
$('#mm-tabcloseright').click();
$('#mm-tabcloseleft').click();
});
// 关闭当前右侧的tab
$('#mm-tabcloseright').click(function() {
var nextall = $('.tabs-selected').nextall();
if (nextall.length == 0) {
$.messager.alert('系统提示', '已关闭', 'error');
return false;
}
nextall.each(function(i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#tabs').tabs('close', t);
});
return false;
});
// 关闭当前左侧的tab
$('#mm-tabcloseleft').click(function() {
var prevall = $('.tabs-selected').prevall();
if (prevall.length == 0) {
return false;
}
prevall.each(function(i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#tabs').tabs('close', t);
});
return false;
});
// 退出
$("#mm-exit").click(function() {
$('#mm').menu('hide');
})
}
4)菜单json对象数据格式
{"menus":[{"icon":null,"menuid":"a","menuname":"机构管理","menus":[{"menuid":"a1","menuname":"部门机构","parentid":"a","menuurl":"dept/index.do","serialno":null,"icon":null}]},{"icon":"icon-overview","menuid":"h","menuname":"系统管理","menus":[{"menuid":"h1","menuname":"用户管理","parentid":"h","menuurl":"system/user/index.do","serialno":null,"icon":"icon-overview"},{"menuid":"h2","menuname":"角色管理","parentid":"h","menuurl":"system/role/index.do","serialno":null,"icon":"icon-overview"},{"menuid":"h3","menuname":"菜单管理","parentid":"h","menuurl":"system/menu/index.do","serialno":null,"icon":"icon-overview"},{"menuid":"h4","menuname":"岗位成员","parentid":"h","menuurl":"system/rolemember/index.do","serialno":null,"icon":null},{"menuid":"h5","menuname":"系统日志","parentid":"h","menuurl":"system/log/index.do","serialno":null,"icon":"icon-overview"},{"menuid":"h6","menuname":"数据字典","parentid":"h","menuurl":"system/param/index.do","serialno":null,"icon":"icon-overview"}]}]}
三、api手册
1) 官网组件(英文)地址:
2) jquery easyui 官方api文档中文版,下载地址:http://download.csdn.net/album/detail/343
上一篇: PHP身份证验证
下一篇: Java中接口和抽象类的区别?
推荐阅读
-
ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享
-
ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之消息管理
-
ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享
-
ASP.NET MVC5+EF6+EasyUI 后台管理系统(81)-数据筛选(万能查询)实例
-
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(24)-权限管理系统-将权限授权给角色
-
[开源] 基于Layui组件封装的后台模版,HG-Layui-UI通用后台管理框架V1.0版
-
ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之消息管理
-
中小后台系统UI框架--EasyUI
-
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(26)-权限管理系统-分配角色给用户
-
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(29)-T4模版