目录

一、layui数据表格相关组件官网介绍

二、用户管理后台

三、用户新增

四、用户编辑


一、layui数据表格相关组件官网介绍

整体页面

①先根据路径创建相关的界面,如下

②在官网上找到数据表格的代码块,再放到项目中

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ include file="/common/header.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table class="layui-hide" id="test" lay-filter="test"></table><script type="text/html" id="toolbarDemo"><div class="layui-btn-container"><button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button><button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button><button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button></div>
</script><script type="text/html" id="barDemo"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script><script src="//res.layui.com/layui/dist/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 --> <script>
layui.use('table', function(){var table = layui.table;table.render({elem: '#test',url:'../../test/table/demo1.json.js'/*tpa=https://www.layuiweb.com/test/table/demo1.json*/,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可title: '提示',layEvent: 'LAYTABLE_TIPS',icon: 'layui-icon-tips'}],title: '用户数据表',cols: [[{type: 'checkbox', fixed: 'left'},{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true},{field:'username', title:'用户名', width:120, edit: 'text'},{field:'email', title:'邮箱', width:150, edit: 'text', templet: function(res){return '<em>'+ res.email +'</em>'}},{field:'sex', title:'性别', width:80, edit: 'text', sort: true},{field:'city', title:'城市', width:100},{field:'sign', title:'签名'},{field:'experience', title:'积分', width:80, sort: true},{field:'ip', title:'IP', width:120},{field:'logins', title:'登入次数', width:100, sort: true},{field:'joinTime', title:'加入时间', width:120},{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}]],page: true});//头工具栏事件table.on('toolbar(test)', function(obj){var checkStatus = table.checkStatus(obj.config.id);switch(obj.event){case 'getCheckData':var data = checkStatus.data;layer.alert(JSON.stringify(data));break;case 'getCheckLength':var data = checkStatus.data;layer.msg('选中了:'+ data.length + ' 个');break;case 'isAll':layer.msg(checkStatus.isAll ? '全选': '未全选');break;//自定义头工具栏右侧图标 - 提示case 'LAYTABLE_TIPS':layer.alert('这是工具栏右侧自定义的一个图标按钮');break;};});//监听行工具事件table.on('tool(test)', function(obj){var data = obj.data;//console.log(obj)if(obj.event === 'del'){layer.confirm('真的删除行么', function(index){obj.del();layer.close(index);});} else if(obj.event === 'edit'){layer.prompt({formType: 2,value: data.email}, function(value, index){obj.update({email: value});layer.close(index);});}});
});
</script>
</body>
</html>

初步效果:

③再从官网表单中找到输入框,并复制粘贴

  <div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">验证手机</label><div class="layui-input-inline"><input type="tel" name="phone" lay-verify="required|phone" autocomplete="off" class="layui-input"></div></div><div class="layui-inline"><label class="layui-form-label">验证邮箱</label><div class="layui-input-inline"><input type="text" name="email" lay-verify="email" autocomplete="off" class="layui-input"></div></div></div>

初步效果

④将验证邮箱那一块改为按钮

<div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">验证手机</label><div class="layui-input-inline"><input type="tel" name="phone" lay-verify="required|phone" autocomplete="off" class="layui-input"></div></div><div class="layui-inline"><div class="layui-input-inline"><button type="submit" class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button></div></div></div>

初步效果

⑤将官方中弹出层的代码块复制到项目中即可,暂时不需要用到

layer.open({type: 1,content: str //注意,如果str是object,那么需要字符拼接。})

二、用户管理后台

User实体类:

package com.zking.entity;public class User {private Long id;private String name;private String loginName;private String pwd;private Long rid;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public Long getRid() {return rid;}public void setRid(Long rid) {this.rid = rid;}public User() {super();// TODO Auto-generated constructor stub}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", loginName=" + loginName + ", pwd=" + pwd + ", rid=" + rid + "]";}}

①、完成UserDao

package com.zking.dao;import java.sql.SQLException;
import java.util.List;
import java.util.Map;import com.zking.entity.User;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
import com.zking.util.StringUtils;public class UserDao extends BaseDao<User> {public User login(User user) throws Exception {String sql="select * from t_oa_user where loginName = '"+user.getLoginName()+"' and pwd = '"+user.getPwd()+"'";
//      根据sql查询符合条件的用户,通常只会返回一条数据List<User> users = super.executeQuery(sql, User.class, null);return users==null||users.size()==0?null:users.get(0);//     return super.executeQuery(sql, clz, pageBean);}
//  查询用户信息及对应的角色,角色是通过case when得来的public List<Map<String, Object>> list(User user,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{String sql="select *,\r\n" + "(CASE rid \r\n" + "WHEN 1 THEN '管理员' \r\n" + "WHEN 2 THEN '发起者' \r\n" + "WHEN 3 THEN '审批者' \r\n" + "WHEN 4 THEN '参与者' \r\n" + "WHEN 5 THEN '会议室管理员' \r\n" + "ELSE '其他' END \r\n" + ") roleName \r\n" + "from t_oa_user where 1 = 1";String name = user.getName();if(StringUtils.isNotBlank(name)) {sql+=" and name like '%"+name+"%'";}
//      当实体类的属性完全包含数据库查询出来的列段的时候使用
//      super.executeQuery(sql, User.class, pageBean)
//      返回List<Map<String, Object>>,对应的是连表查询,单个实体类对象不完全包含查询的列段return super.executeQuery(sql, pageBean);}
//  增public int add(User user) throws Exception {String sql="insert into t_oa_user(name,loginName,pwd) values(?,?,?)";return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});}
//  删public int del(User user) throws Exception {String sql="delete from t_oa_user where id=?";return super.executeUpdate(sql, user, new String[] {"id"});}
//  改public int edit(User user) throws Exception {String sql = "update t_oa_user set name=?, loginName=?, pwd=? where id=?";return super.executeUpdate(sql, user, new String [] {"name","loginName","pwd","id"});}
}

再用juin进行测试---->UserDaoTest

package com.zking.dao;import static org.junit.Assert.*;import java.sql.SQLException;
import java.util.List;
import java.util.Map;import org.junit.After;
import org.junit.Before;
import org.junit.Test;import com.zking.entity.User;
import com.zking.util.PageBean;public class UserDaoTest {private UserDao userDao=new UserDao();@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void testList() {User user=new User();PageBean pageBean=new PageBean();try {List<Map<String, Object>> list = userDao.list(user, pageBean);for (Map<String, Object> map : list) {System.out.println(map);}} catch (Exception e) {e.printStackTrace();}}@Testpublic void testAdd() {User user=new User();user.setName("云鹤衫");user.setLoginName("yhs");user.setPwd("1234");try {userDao.add(user);} catch (Exception e) {e.printStackTrace();}}@Testpublic void testDel() {User user=new User();user.setId(17L);try {userDao.del(user);} catch (Exception e) {e.printStackTrace();}}@Testpublic void testEdit() {User user=new User();user.setName("云鹤衫");user.setLoginName("yhs2");user.setPwd("1234567");user.setId(17L);try {userDao.edit(user);} catch (Exception e) {e.printStackTrace();}}}

list方法结果:

add方法结果:

edit方法结果:

del方法结果:

将UserAction完善

package com.zking.web;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.zking.dao.UserDao;
import com.zking.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.R;
import com.zking.util.ResponseUtil;public class UserAction extends ActionSupport implements ModelDriver<User>{private User user=new User();private UserDao userDao=new UserDao();//写一个方法除了前台的请求
/*  public String login(HttpServletRequest req, HttpServletResponse resp) {Map<String, Object> map = new HashMap<String, Object>();if("zhangsan".equals(user.getUsername()) && "123456".equals(user.getPassword())) {map.put("code", 200);map.put("msg", "登录成功");}else {map.put("code", 0);map.put("msg", "用户名或密码错误");}try {ResponseUtil.writeJson(resp, map);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}try {ResponseUtil.writeJson(resp, map);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}*/public String login(HttpServletRequest req, HttpServletResponse resp) {try {User u=userDao.login(user);
//          通过账户名密码查到了用户记录if(u!=null) {
//              ResponseUtil.writeJson(resp, new R()
//                      .data("code", 200)
//                      .data("msg", "成功"));ResponseUtil.writeJson(resp, R.ok(200, "登录成功"));req.getSession().setAttribute("user", u);}else {ResponseUtil.writeJson(resp, R.ok(0, "用户名密码错误"));}} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.ok(0, "用户名密码错误"));} catch (Exception e2) {e2.printStackTrace();}}return null;}//用户查询public String list(HttpServletRequest req, HttpServletResponse resp) {try {PageBean pageBean=new PageBean();pageBean.setRequest(req);List<Map<String, Object>> users = userDao.list(user, pageBean);//注意:layui中的数据表格的格式ResponseUtil.writeJson(resp, R.ok(0  ,"用户数据查询成功",pageBean.getTotal(),user));} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询失败"));} catch (Exception e2) {e2.printStackTrace();}}return null;}//增加public String add(HttpServletRequest req, HttpServletResponse resp) {try {//rs是sql语句执行的影响行数int rs=userDao.add(user);if(rs>0) {ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));}else {ResponseUtil.writeJson(resp, R.ok(0, "用户数据新增失败"));}} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.ok(0, "用户数据新增失败"));} catch (Exception e2) {e2.printStackTrace();}}return null;}//删除public String del(HttpServletRequest req, HttpServletResponse resp) {try {//rs是sql语句执行的影响行数int rs=userDao.add(user);if(rs>0) {ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));}else {ResponseUtil.writeJson(resp, R.ok(0, "用户数据删除失败"));}} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.ok(0, "用户数据删除失败"));} catch (Exception e2) {e2.printStackTrace();}}return null;}//修改public String edit(HttpServletRequest req, HttpServletResponse resp) {try {//rs是sql语句执行的影响行数int rs=userDao.add(user);if(rs>0) {ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));}else {ResponseUtil.writeJson(resp, R.ok(0, "用户数据修改失败"));}} catch (Exception e) {e.printStackTrace();try {ResponseUtil.writeJson(resp, R.ok(0, "用户数据修改失败"));} catch (Exception e2) {e2.printStackTrace();}}return null;}@Overridepublic User getModel() {return user;}}

R类:

package com.zking.util;import java.util.HashMap;public class R extends HashMap{public R data(String key, Object value) {this.put(key, value);return this;}public static R ok(int code, String msg) {R r = new R();r.data("success", true).data("code", code).data("msg", msg);return r;}public static R error(int code, String msg) {R r = new R();r.data("success", false).data("code", code).data("msg", msg);return r;}public static R ok(int code, String msg,Object data) {R r = new R();r.data("success", true).data("code", code).data("msg", msg).data("data", data);return r;}public static R ok(int code, String msg, long count, Object data) {R r = new R();r.data("success", true).data("code", code).data("msg", msg).data("count", count).data("data", data);return r;}
}

三、用户新增

主界面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="static/js/system/userManage.js"></script>
<title>用户管理</title>
</head>
<body><!-- 搜索栏 --><div class="layui-form-item"><div class="layui-inline"><label class="layui-form-label">用户名:</label><div class="layui-input-inline"><input type="text" id="name" placeholder="请输入用户名" autocomplete="off" class="layui-input"></div></div><div class="layui-inline"><div class="layui-input-inline"><button id="btn_search" type="button" class="layui-btn layui-btn-normal"><i class="layui-icon layui-icon-search"></i>查询</button><button id="btn_add" type="button" class="layui-btn">新增</button></div></div></div><!-- 数据表格及分页 --><table id="tb" lay-filter="tb" class="layui-table" style="margin-top:-15px;"></table><!-- 对话框(新增和编辑共用一个页面) --><script type="text/html" id="toolbar"><button class="layui-btn layui-btn-sm" lay-event="edit">编辑</button><button class="layui-btn layui-btn-sm" lay-event="del">删除</button><button class="layui-btn layui-btn-sm" lay-event="reset">重置密码</button></script>
</body>
</html>

userManage.js

let layer,$,table;
var row;
layui.use(['jquery', 'layer', 'table'], function(){layer = layui.layer,$ = layui.jquery,table = layui.table;//初始化数据表格initTable();//绑定查询按钮的点击事件$('#btn_search').click(function(){query();});//绑定新增按钮的点击事件$('#btn_add').click(function(){row=null;open('新增');});
});//1.初始化数据表格
function initTable(){table.render({           //执行渲染elem: '#tb',         //指定原始表格元素选择器(推荐id选择器)
//        url: 'user.action?methodName=list',     //请求地址height: 340,         //自定义高度loading: false,      //是否显示加载条(默认 true)cols: [[             //设置表头{field: 'id', title: '用户编号', width: 120},{field: 'name', title: '用户名', width: 120},{field: 'loginName', title: '登录账号', width: 140},{field: '', title: '操作', width: 220,toolbar:'#toolbar'},]]});}
//2.点击查询
function query(){
//  console.log($("#ctx").val());table.reload('tb', {url: $("#ctx").val()+'/user.action',     //请求地址method: 'POST',                    //请求方式,GET或者POSTloading: true,                     //是否显示加载条(默认 true)page: true,                        //是否分页where: {                           //设定异步数据接口的额外参数,任意设'methodName':'list','name':$('#name').val()},  request: {                         //自定义分页请求参数名pageName: 'page', //页码的参数名称,默认:pagelimitName: 'rows' //每页数据量的参数名,默认:limit}});
}
//3.对话框
function open(title){layer.open({type: 2,                    //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)title:title,area: ['660px', '340px'],   //宽高skin: 'layui-layer-rim',    //样式类名content:  $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面btn:['保存','关闭','批量新增','22'],yes: function(index, layero){//调用子页面中提供的getData方法,快速获取子页面的form表单数据
//         jquery findlet data= $(layero).find("iframe")[0].contentWindow.getData();console.log(data);//判断title标题let methodName="add";if(title=="编辑")methodName="edit";$.post($("#ctx").val()+'/user.action?methodName='+methodName,data,function(rs){if(rs.success){//关闭对话框layer.closeAll();//调用查询方法刷新数据query();}else{layer.msg(rs.msg,function(){});}},'json');},btn2: function(index, layero){layer.closeAll();},btn3: function(index, layero){layer.msg("批量新增");return false;},btn4: function(index, layero){layer.msg("批量新增22");}});}

新增界面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/system/userEdit.js"></script>
<title>用户新增</title>
</head>
<style>
.layui-form-select dl{max-height:150px;
}
</style>
<body>
<div style="padding:10px;"><form class="layui-form layui-form-pane" lay-filter="user"><input type="hidden" name="id"/><div class="layui-form-item"><label class="layui-form-label">用户名称</label><div class="layui-input-block"><input type="text" id="name" name="name" autocomplete="off" placeholder="请输入用户名" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">用户角色</label><div class="layui-input-block"><select name="rid"><option value="">---请选择---</option><option value="1">管理员</option><option value="2">发起者</option><option value="3">审批者</option><option value="4">参与者</option><option value="5">会议管理员</option></select></div></div><div class="layui-form-item"><label class="layui-form-label">登录账号</label><div class="layui-input-block"><input type="text" name="loginName" lay-verify="required" placeholder="请输入账号" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">登录密码</label><div class="layui-input-block"><input type="password" name="pwd" placeholder="请输入密码" autocomplete="off" class="layui-input"></div></div></form>
</div>
</body>
</html>

userEdit.js:

let layer,form,$;
layui.use(['layer','form','jquery'],function(){layer=layui.layer,form=layui.form,$=layui.jquery;initData();
});function initData(){console.log(parent.row);if(null!=parent.row){//因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val//parent.row:表格行对象
//      table的数据在父页面 userMange.jsp
//      点击编辑按钮的时候,当前行赋值给予页面userEdit.jspform.val('user',$.extend({}, parent.row||{}));$('#name').attr('readonly','readonly');}
}function getData(){
//  取user from中的值return form.val('user');
}

效果:

四、用户编辑

更改一下即可

let layer,$,table;
var row;
layui.use(['jquery', 'layer', 'table'], function(){layer = layui.layer,$ = layui.jquery,table = layui.table;//初始化数据表格initTable();//绑定查询按钮的点击事件$('#btn_search').click(function(){query();});//绑定新增按钮的点击事件$('#btn_add').click(function(){row=null;open('新增');});
});//1.初始化数据表格
function initTable(){table.render({           //执行渲染elem: '#tb',         //指定原始表格元素选择器(推荐id选择器)
//        url: 'user.action?methodName=list',     //请求地址height: 340,         //自定义高度loading: false,      //是否显示加载条(默认 true)cols: [[             //设置表头{field: 'id', title: '用户编号', width: 120},{field: 'name', title: '用户名', width: 120},{field: 'loginName', title: '登录账号', width: 140},{field: '', title: '操作', width: 220,toolbar:'#toolbar'},]]});//在页面中的<table>中必须配置lay-filter="tb_goods"属性才能触发属性!!!table.on('tool(tb)', function (obj) {row = obj.data;if (obj.event == "edit") {open("编辑");}else if(obj.event == "del"){layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){$.post($("#ctx").val()+'/user.action',{'methodName':'del','id':row.id},function(rs){if(rs.success){//调用查询方法刷新数据query();}else{layer.msg(rs.msg,function(){});}},'json');layer.close(index);});}else{}});}
//2.点击查询
function query(){
//  console.log($("#ctx").val());table.reload('tb', {url: $("#ctx").val()+'/user.action',     //请求地址method: 'POST',                    //请求方式,GET或者POSTloading: true,                     //是否显示加载条(默认 true)page: true,                        //是否分页where: {                           //设定异步数据接口的额外参数,任意设'methodName':'list','name':$('#name').val()},  request: {                         //自定义分页请求参数名pageName: 'page', //页码的参数名称,默认:pagelimitName: 'rows' //每页数据量的参数名,默认:limit}});
}
//3.对话框
function open(title){layer.open({type: 2,                    //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)title:title,area: ['660px', '340px'],   //宽高skin: 'layui-layer-rim',    //样式类名content:  $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面btn:['保存','关闭','批量新增','22'],yes: function(index, layero){//调用子页面中提供的getData方法,快速获取子页面的form表单数据
//         jquery findlet data= $(layero).find("iframe")[0].contentWindow.getData();console.log(data);//判断title标题let methodName="add";if(title=="编辑")methodName="edit";$.post($("#ctx").val()+'/user.action?methodName='+methodName,data,function(rs){if(rs.success){//关闭对话框layer.closeAll();//调用查询方法刷新数据query();}else{layer.msg(rs.msg,function(){});}},'json');},btn2: function(index, layero){layer.closeAll();},btn3: function(index, layero){layer.msg("批量新增");return false;},btn4: function(index, layero){layer.msg("批量新增22");}});}

修改效果:

删除效果:

LayUI之CRUD相关推荐

  1. 结合Layui框架,实现SpringMVC+Spring+Mybatis,SSM整合案例CRUD(超详细代码,外加说明)

    首先: 你需要去Layui官网下载UI框架.你可能会问,为什么用Layui实现页面效果?简单来说就是:简单.好用.上手快,作为JAVA后端开发人员,Layui无疑是非常友好的,拿来即用. 页面效果图: ...

  2. 前端框架Layui实现动态表格效果用户管理实例(对表格进行CRUD操作-附源码)

    目录 一.前言 1.什么是表格 2.表格的使用范围 二.案例实现 1.案例分析 ①根据需求找到文档源码 ②查询结果在实体中没有该属性 2.dao层编写 ①BaseDao工具类 ②UserDao编写 3 ...

  3. 【高校宿舍管理系统】第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码

    第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正 ...

  4. golang后台管理系统Iris+Layui框架搭建教程

    项目介绍 一款 Go 语言基于Iris.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的 ...

  5. 基于Go语言GoFrame+Layui搭建MVC项目教程

    项目介绍 一款 Go 语言基于GoFrame.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可 ...

  6. 基于Go语言Gin+Xorm+Layui实现RBAC权限管理系统

    项目介绍 一款 Go 语言基于Gin.Xorm.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了 ...

  7. 基于Go语言GoFrame+Layui的OA办公系统

    项目介绍 一款 Go 语言基于GoFrame.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可 ...

  8. 基于Go语言Iris+Layui的OA办公系统

    项目介绍 一款 Go 语言基于Iris.Layui.MySQL等框架精心打造的一款模块化.高性能.企业级的敏捷开发框架,本着简化开发.提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的 ...

  9. 基于Go语言Revel+Layui的OA办公系统

    项目介绍 一款 Go 语言基于Revel.Layui.MySQL等框架精心打造的一款模块化.插件化.高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发.提升开发效率 ...

最新文章

  1. Java培训好不好?零基础可以学吗?
  2. 计算机组成原理考试计算题,计算机组成原理常考计算题.doc
  3. Qt Creator如何恢复默认布局
  4. 有关UNICODE、ANSI字符集和相关字符串操作的总结[转]
  5. mysql增删改查 dao_MYSQL 之 JDBC(七):增删改查(五) DAO设计模式
  6. 生成式对抗网络Generative Adversarial Networks(GANs)
  7. L2-020. 功夫传人
  8. mysql测试数据图表_mysql测试数据表
  9. unzip 报错error [clas.zip]:  missing 1844 bytes in zipfile
  10. 大数据平台系统该如何选择
  11. 自动安装与配置复制batch脚本
  12. linux 内核入口地址,Linux内核程序入口地址
  13. Windows 7安装超级终端连接COM口设备
  14. Visual Studio 2010下载 + 附破解方法
  15. A or B Equals C Gym - 101028C
  16. 【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程
  17. 什么是智能客服?智能客服能做到什么?
  18. Python实践-咚咚呛讲师Python进阶教程
  19. 失去英国电信的华为是否会失去整个欧洲?
  20. 通行证漫谈(不断补充)

热门文章

  1. 中国股市最“暴利”时代,而有的人活在15年的熊市!
  2. c语言如何输出字母锥子塔,C語言课堂练习.doc
  3. c语言编程计算π的值
  4. html5游戏开发 网页版-捕鱼达人游戏源码下载
  5. 讨论-职场中年人,你的危机感都来源于哪里
  6. 百度名词~杂篇--(对日常遇到事物的深入了解)
  7. 老男孩python全栈s21day03作业
  8. MySQL廖雪峰的官方网站
  9. 华为云计算IE面试笔记-桌面云用户登录连接流程及故障处理
  10. 根据所选日期、当前日期计算一周的日期和星期,农历