界面展示:
增
删
改
查
目录结构
----------------------------------------------------------------------------------------------
利用 laiuimini 模板对相应模块进行修改:
controller
provider
package com.hz.controller;
import com.hz.pojo.Provider;
import com.hz.service.ProviderService;
import com.hz.utils.ResultAJAX;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/pro")
public class ProviderController {
@Autowired
private ProviderService providerService;
@RequestMapping("/findProviderList")
@ResponseBody
public ResultAJAX findProviderList(
@RequestParam(value = "page",defaultValue = "1") Integer page,
@RequestParam(value = "limit",defaultValue = "10") Integer limit,
String proName,
String proDesc){
return providerService.findProviderList(page,limit,proName,proDesc);
}
@RequestMapping("/findProviderById/{id}")
@ResponseBody
public ResultAJAX findProviderById(@PathVariable("id") Long id){
return providerService.findProviderById(id);
}
@RequestMapping("/updateProvider")
@ResponseBody
public ResultAJAX updateProvider(Provider provider){
return providerService.updateProvider(provider);
}
@RequestMapping("/insertProvider")
@ResponseBody
public ResultAJAX insertProvider(Provider provider){
return providerService.insertProvider(provider);
}
@RequestMapping("/deleteProvider/{id}")
@ResponseBody
public ResultAJAX deleteProvider(@PathVariable("id") Integer id){
return providerService.deleteProvider(id);
};
}
user
package com.hz.controller;
import com.hz.service.UserService;
import com.hz.utils.ResultAJAX;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/userLogin")
@ResponseBody
public ResultAJAX userLogin(
String userCode,
String userPassword){
return userService.userLogin(userCode,userPassword);
}
}
mapper
provider
package com.hz.mapper;
import com.hz.pojo.Provider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ProviderMapper {
/**
* 条件查询供应商信息
*/
public abstract List<Provider> findProviderList(
@Param("pyl") Integer pyl,
@Param("limit") Integer limit,
@Param("proName") String proName,
@Param("proDesc") String proDesc
);
/**
* 获得总记录数
* @return
*/
public abstract int findProviderListCount(
@Param("proName")String proName,
@Param("proDesc")String proDesc);
/**
* 根据供应商ID 获得单个对象
*/
public abstract Provider findProviderById(Long id);
/**
* 保存
*/
public abstract int updateProvider(Provider provider);
/**
*根据id删除用户
*/
public abstract int deleteProvider(Integer id);
/**
* 新增
*/
public abstract int insertProvider(Provider provider);
}
user
package com.hz.mapper;
import com.hz.pojo.User;
import org.apache.ibatis.annotations.Param;
/**
* 用户登录
*/
public interface UserMapper {
/**
* 用户登录
*/
public abstract User userLogin(
@Param("userCode") String userCode,
@Param("userPassword") String userPassword);
}
实体类略过
service
provider
package com.hz.service;
import com.hz.pojo.Provider;
import com.hz.utils.ResultAJAX;
import java.util.List;
public interface ProviderService {
/**
* 条件查询
*/
public abstract ResultAJAX findProviderList(Integer page,Integer limit,String proName,String proDesc);
/**
* 查
*/
public abstract ResultAJAX findProviderById(Long id);
/**
* 保存
*/
public abstract ResultAJAX updateProvider(Provider provider);
/**
* 新增
*/
public abstract ResultAJAX insertProvider(Provider provider);
/**
* 删除
*/
public abstract ResultAJAX deleteProvider(Integer id);
}
package com.hz.service.impl;
import com.hz.mapper.ProviderMapper;
import com.hz.pojo.Provider;
import com.hz.service.ProviderService;
import com.hz.utils.ResultAJAX;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProviderServiceImpl implements ProviderService {
@Autowired
private ProviderMapper providerMapper;
@Override
public ResultAJAX findProviderList(Integer page,Integer limit,String proName,String proDesc) {
//偏移量 = (当前页-1)*每页记录数
int pyl = (page-1)*limit;
List<Provider> providerList = providerMapper.findProviderList(pyl,limit,proName,proDesc);
//总记录数
int count = providerMapper.findProviderListCount(proName,proDesc);
return ResultAJAX.successLayui(count ,providerList);
}
@Override
public ResultAJAX findProviderById(Long id) {
return ResultAJAX.success(providerMapper.findProviderById(id));
}
//更新
@Override
public ResultAJAX updateProvider(Provider provider) {
if (providerMapper.updateProvider(provider)>=1){
return ResultAJAX.success();
}else {
return ResultAJAX.error();
}
}
//新增
@Override
public ResultAJAX insertProvider(Provider provider) {
return ResultAJAX.success(providerMapper.insertProvider(provider));
}
//删除
@Override
public ResultAJAX deleteProvider(Integer id) {
return ResultAJAX.success(providerMapper.deleteProvider(id));
}
}
----------------------------------------------------------------------------
user
package com.hz.service;
import com.hz.utils.ResultAJAX;
public interface UserService {
public abstract ResultAJAX userLogin(String userCode,String userPassword);
}
package com.hz.service.impl;
import com.hz.mapper.UserMapper;
import com.hz.service.UserService;
import com.hz.utils.ResultAJAX;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpSession;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public ResultAJAX userLogin(String userCode, String userPassword) {
if (userMapper.userLogin(userCode,userPassword)!=null){
return ResultAJAX.success(userMapper.userLogin(userCode,userPassword));
}else{
return ResultAJAX.error();
}
}
}
utils工具类
package com.hz.utils;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class ResultAJAX {
private Integer code;
private String msg;
private Integer count;
private Object data;
public ResultAJAX(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static ResultAJAX successLayui(Integer count,Object data){
return new ResultAJAX(0,"操作成功",count,data);
}
public static ResultAJAX success(){
return new ResultAJAX(0,"操作成功",null);
}
public static ResultAJAX success(Object data){
return new ResultAJAX(0,"操作成功",data);
}
public static ResultAJAX error(){
return new ResultAJAX(1,"操作失败",null);
}
}
页面部分
js部分
login
<script>
layui.use(['form'], function () {
var form = layui.form,
layer = layui.layer;
// 登录过期的时候,跳出ifram框架
if (top.location != self.location) top.location = self.location;
// 粒子线条背景
$(document).ready(function(){
$('.layui-container').particleground({
dotColor:'#7ec7fd',
lineColor:'#7ec7fd'
});
});
// 进行登录操作
form.on('submit(login)', function (data) {
data = data.field;
$.post("/user/userLogin",data,function (res) {
if (res.code==0){
layer.msg('登录成功', function () {
window.location = '/views/index.html';
})
}else {
layer.msg('用户名或密码错误');
}
},"json");
if (data.userCode == '') {
layer.msg('用户名不能为空');
return false;
}
if (data.userPassword == '') {
layer.msg('密码不能为空');
return false;
};
return false;
});
});
</script>
index
<script>
layui.use(['jquery', 'layer', 'miniAdmin','miniTongji'], function () {
var $ = layui.jquery,
layer = layui.layer,
miniAdmin = layui.miniAdmin,
miniTongji = layui.miniTongji;
var options = {
iniUrl: "/statics/api/init.json", // 初始化接口
clearUrl: "/statics/api/clear.json", // 缓存清理接口
urlHashLocation: true, // 是否打开hash定位
bgColorDefault: false, // 主题默认配置
multiModule: true, // 是否开启多模块
menuChildOpen: false, // 是否默认展开菜单
loadingTime: 0, // 初始化加载时间
pageAnim: true, // iframe窗口动画
maxTabNum: 20, // 最大的tab打开数量
};
miniAdmin.render(options);
// 百度统计代码,只统计指定域名
miniTongji.render({
specific: true,
domains: [
'99php.cn',
'layuimini.99php.cn',
'layuimini-onepage.99php.cn',
],
});
$('.login-out').on("click", function () {
layer.msg('退出登录成功', function () {
window.location = 'page/login-3.html';
});
});
var tableReload = function () {
}
});
var table;
var parentTable = function (obj) {
table = obj;
}
//刷新table
var TableReload = function () {
table.reload();//刷新父级页面
}
</script>
add
<script>
layui.use(['form'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
//监听提交,将数据添加
form.on('submit(saveBtn)', function (data) {
var url ="/pro/insertProvider";
$.post(url,data.field,function(res){
parent.layer.msg(res.msg,{
icon:parseInt(res.code)==0?1:2,
shade:0.5,
time:2000 //设置2秒后自动关闭
},function () {
parent.TableReload();
parent.layer.closeAll();
});
},"json");
return false;
});
});
</script>
edit
<script>
layui.use(['form'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
var id = getUrlParam("id");
$.getJSON("/pro/findProviderById/"+id,{},function (res) {
//给表单赋值
form.val("formGetValue",res.data);
});
//监听提交(确认保存)
form.on('submit(saveBtn)', function (data) {
var url ="/pro/updateProvider";
// if (id==''){
// //插入
// url = "/pro/insertProvider";
// }
$.post(url,data.field,function(res){
parent.layer.msg(res.msg,{
icon:parseInt(res.code)==0?1:2,
shade:0.5,
time:2000 //设置2秒后自动关闭
},function () {
parent.TableReload();
parent.layer.closeAll();
});
},"json");
return false;
});
});
function getUrlParam(name)
{
//构造一个含有目标参数的正则表达式对象
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
//匹配目标参数
var r = window.location.search.substr(1).match(reg);
//返回参数值
if (r!=null) return unescape(r[2]); return null;
}
</script>
list
<script>
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
var tb = table.render({
elem: '#currentTableId',
url: '/pro/findProviderList',
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print', {
title: '提示',
layEvent: 'LAYTABLE_TIPS',
icon: 'layui-icon-tips'
}],
cols: [[
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID', sort: true},
{field: 'proCode', width: 150, title: '供应商编码'},
{field: 'proName', width: 150, title: '供应商名称'},
{field: 'proDesc', width: 300, title: '供应商描述'},
{field: 'proContact', width: 100, title: '联系人'},
{field: 'proPhone', width: 150, title: '联系电话'},
{field: 'creationDate', width: 150, title: '创建时间'},
{title: '操作', minWidth: 100, toolbar: '#currentTableBar', align: "center",fixed:"right"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line'
});
parent.parentTable(tb);
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
//var result = JSON.stringify(data.field);
//执行搜索重载
table.reload('currentTableId', {
page: {
curr: 1
}
, where:data.field
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = parent.layer.open({
title: '添加供应商',
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['70%', '70%'],
content: '/views/provider/providerAdd.html',
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
layer.alert(JSON.stringify(data));
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var index = parent.layer.open({
title: '编辑用户',
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['50%', '50%'],
content: '/views/provider/providerEdit.html?id='+data.id,
});
return false;
} else if (obj.event === 'delete') {
parent.layer.confirm('确定删除此数据吗?', {
title: "操作提示",
btn: ['确定', '取消'] //可以无限个按钮
,btn3: function(index, layero){
//按钮【按钮三】的回调
}
}, function(index, layero){
//按钮【按钮一】的回调
//发送需要删除的id
$.post("/pro/deleteProvider/"+data.id,function(res){
parent.layer.msg(res.msg,{
icon:parseInt(res.code)==0?1:2,
shade:0.5,
time:2000 //设置2秒后自动关闭
},function () {
parent.TableReload();
layer.closeAll();
});
},"json");
}, function(index){
//按钮【按钮二】的回调
});
}
});
});
</script>