layui 数据表格
程序员文章站
2022-07-02 20:30:21
...
goods_list.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="author" content="order by dede58.com"/>
<title>商品列表</title>
<jsp:include page="situation/head.jsp"></jsp:include>
<%--js文件--%>
<script src="${pageContext.request.contextPath}/js/goods/goods_list.js"></script>
</head>
<body>
<input type="hidden" name="contextPath" id="contextPath" value="${pageContext.request.contextPath}">
<%--编辑--%>
<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 type="text/html" id="toolbarDemo">
<h2><span></span>商品列表</h2>
</script>
<!-- 表格部分 -->
<div class="layui-row">
<div class="layui-col-xs12">
<div class="layui-card">
<!-- 数据表格 -->
<table class="layui-hide" lay-filter="test" id="goods_list"></table>
</div>
</div>
</div>
<div class="layui-row" id="uplTest" >
<br>
<div class="layui-col-md10">
<form class="layui-form" action="" lay-filter="updateform">
<div class="layui-form-item">
<label class="layui-form-label">商品名称:</label>
<div class="layui-input-block">
<input type="text" name="commodityName" id="commodityName" placeholder="请输入商品名称" lay-verify="required" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否上架</label>
<div class="layui-input-block">
<select name="status" id="status">
<option value="下架">下架</option>
<option value="上架">上架</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所属分类</label>
<div class="layui-input-block">
<select name="commodityCategoryId" id="commodityCategoryId">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品售价:</label>
<div class="layui-input-block">
<input type="text" name="price" id="price" placeholder="请输入售价" lay-verify="required" 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="text" name="commissions" id="commissions" placeholder="请输入销售提成" lay-verify="required" 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="text" name="repertory" id="repertory" placeholder="请输入销售库存" lay-verify="required" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品描述:</label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" lay-verify="required" class="layui-textarea" id="description" name="description"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">修改商品</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</div>
</body>
</html>
goods_list.js
layui.use(['table', 'layer', 'form', 'element', 'jquery', 'tree'],
function () {
var table = layui.table,
layer = layui.layer,
form = layui.form,
element = layui.element,
$ = layui.jquery, // 重点处
tree = layui.tree;
var contextPath = $("#contextPath").val();
form.render();// from菜单渲染 把内容加载进去
// 方法级渲染
table.render({
elem: '#goods_list',// 指定表格元素
toolbar: '#toolbarDemo', // 开启工具栏,此处显示默认图标,可以自定义模板,详见文档
// totalRow: true,// 开启合计行
url: contextPath + '/goods/goodsList', // 请求路径
skin: 'line ', // 表格风格 line (行边框风格)row (列边框风格)nob // (无边框风格)
// layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] ,//自定义分页布局
cols: [[{
checkbox: true,
}, {
field: 'commodityId',
title: '商品ID',
align: 'center',
hide: true,
fixed: false
}, {
field: 'commodityName',
title: '商品名称',
align: 'center',
}, {
field: 'price',
title: '商品价格',
align: 'center',
}, {
field: 'repertory',
title: '商品库存',
align: 'center',
}, {
field: 'status',
title: '商品状态',
align: 'center',
templet: function (d) {
var state = "";
//当是上架状态的时候
if (d.status == "上架") {
state = "<input type='checkbox' value='"+d.commodityId+"' id='status' lay-filter='stat' checked='checked' name='status' lay-skin='switch' lay-text='上架|下架' >";
}
else {
state = "<input type='checkbox' value='"+d.commodityId+"' id='status' lay-filter='stat' name='status' lay-skin='switch' lay-text='上架|下架' >";
}
return state;
}
}, {
field: 'commodityCategoryId',
title: '分类id',
hide: true,
},
{
field: 'addtime',
title: '添加时间',
align: 'center',
},
{
title: '操作',
align: 'center',
toolbar: '#barDemo',
// templet : function(d) {
// return "";
// }
},
]],
//这个表格的id
id: 'userReload',
// 开启分页
page: true,
// 每页条数的选择项,默认:[10,20,30,40,50,60,70,80,90]。
// limits: [10, 20],
groups: 1, //只显示 1 个连续页码
// method: 'get', // 提交方式
});
// 查询 数据渲染 重载
var $ = layui.$, active = {
reload: function () {
// 执行重载
table.reload('userReload', {
page: {
// 重新从第 1 页开始
// curr: 1
},
where: {}
});
}
};
$('.demoTable .layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//监听行工具事件
table.on('tool(test)', function (obj) {
var data = obj.data;
// console.log(obj);
//删除
switch (obj.event) {
case 'del':
if (data.status != "上架") {
layer.confirm('真的删除行这个商品吗?', function (index) {
$.ajax({
type: "get",
url: contextPath + '/goods/goodsCommDel',
data: {
//删除的参数
"commodityId": data.commodityId
},
success: function (data) {
if (data == 1) {
layer.msg('删除成功',
// 提示的样式
{icon: 1, time: 2000,});
// 数据重载
active.reload();
}
else {
layer.msg('删除失败,可能是你没有权限!',
// 提示的样式
{icon: 2, time: 2000,});
}
}
});
});
}
//如果是上架,不给他删除
else {
layer.msg('无法删除',
// 提示的样式
{icon: 2, time: 2000,});
}
break;
}
//修改
switch (obj.event) {
case 'edit':
/*修改需要一个弹出框*/
form.render();// from菜单渲染 把内容加载进去
//分类下拉框
indexcommoCatList();
var index = layer.open({
type: 1,
area: ['60%','50%'],
content: $("#uplTest").html(),
title: "修改商品",
success() {
//对弹窗的表单数据进行处理
//表单初始赋值
form.val('updateform', {
"commodityName": data.commodityName
, "status": data.status//是否上架
, "commodityCategoryId": data.commodityCategoryId //分类
, "price": data.price //售价
, "commissions": data.commissions //销售提成
, "repertory": data.repertory //商品库存
, "description": data.description //商品描述
})
}
});
//点击修改
form.on('submit(formDemo)', function (d) {
$.post(contextPath + '/goods/goodsCommUpdate', {
"commodityId": data.commodityId,
"commodityName": d.field.commodityName,
"status": d.field.status,
"commodityCategoryId": d.field.commodityCategoryId,
"price": d.field.price,
"commissions": d.field.commissions,
"repertory": d.field.repertory,
"description": d.field.description,
},
function (d) {
if (d > 0) {
// 提示的样式
layer.msg('修改成功', {icon: 1, time: 4000,});
//数据重载
active.reload();
layer.close(index);
}
else {
// 提示的样式
layer.msg('权限不足', {icon: 2, time: 2000,});
}
});
return false;
});
break;
}
});
/* , success: function (layero, index) {
var body = layer.getChildFrame('body', index); // body.html() body里面的内容
console.log( data.commodityName);
body.find("#commodityName").val(data.commodityName);
}*/
/*查询分类*/
// 下拉框
function indexcommoCatList() {
$.ajax({
url: contextPath + '/CommCat/commoCatList',
dataType: 'json',
type: 'post',
async: false,
success: function (data) {
//清除下拉框里面的数据
$("#commodityCategoryId").find("option").remove();
//对后台放回的值进行处理
$.each(data, function (index, item) {
// console.log(item);
//给这个下拉框绑定值
$('#commodityCategoryId').append(
new Option(item.commodityCategoryName,
item.commodityCategoryId));// 往下拉菜单里添加元素
form.render('select');// from菜单渲染 把内容加载进去
})
}
})
}
//监听开关事件
form.on('switch(stat)', function (data) {
var contexts;
var x = data.elem.checked;//判断开关状态
if (x==true) {
contexts = "上架";
} else {
contexts = "下架";
}
//自定义弹窗
layer.open({
content: "你确定要"+contexts+"?"
, btn: ['确定', '取消']
, yes: function (index, layero) {
//按钮确定【按钮一】的回调
data.elem.checked = x;
//对商品进行上架或下架处理
$.ajax({
type: "post",
url: contextPath + '/goods/goodsCommUpdate',
data: {
//上下架的参数
"commodityId": data.value,
"status":contexts
},
success: function (data) {
if (data == 1) {
layer.msg(contexts+'成功',
// 提示的样式
{icon: 1, time: 2000,});
// 数据重载
active.reload();
}
else {
layer.msg(contexts+'失败,可能是你没有权限!',
// 提示的样式
{icon: 2, time: 2000,});
}
}
});
form.render();
layer.close(index);
}
, btn2: function (index, layero) {
//按钮【按钮二】的回调
data.elem.checked = !x;
form.render();
layer.close(index);
//return false 开启该代码可禁止点击该按钮关闭
}
, cancel: function () {
//右上角关闭回调
data.elem.checked = !x;
form.render();
// return false; //开启该代码可禁止点击该按钮关闭
}
});
return false;
});
});
上一篇: 就喜欢你这样直接进套的人
下一篇: 揭秘:为什么古代*的大多是文臣呢?