You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
588 lines
25 KiB
588 lines
25 KiB
<!DOCTYPE html>
|
|
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>layui</title>
|
|
<meta name="renderer" content="webkit">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<link rel="stylesheet" href="/static/lib/layui-v2.8.6/css/layui.css" media="all">
|
|
<link rel="stylesheet" href="/static/css/public.css" media="all">
|
|
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
|
|
</head>
|
|
<body>
|
|
<div class="layuimini-container">
|
|
<div class="layuimini-main">
|
|
|
|
|
|
<script id="toolbarDemo" type="text/html">
|
|
<div class="layui-btn-container">
|
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"
|
|
th:style="'display:'+${display}">创建
|
|
</button>
|
|
<button class="layui-btn layui-btn-danger layui-btn-sm data-delete-btn" lay-event="delete"
|
|
th:style="'display:'+${display}">删除
|
|
</button>
|
|
<button class="layui-btn layui-btn-sm " lay-event="applicationOutAdd">添加</button>
|
|
<button class="layui-btn layui-btn-warm layui-btn-sm " lay-event="dispose">处理</button>
|
|
</div>
|
|
</script>
|
|
<div class="layui-collapse">
|
|
<div class="layui-colla-item">
|
|
<h2 class="layui-colla-title">搜索</h2>
|
|
<div class="layui-colla-content">
|
|
<div style="margin: 10px 10px 10px 10px">
|
|
<form class="layui-form layui-form-pane" action="">
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label">创建日期</label>
|
|
<div class="layui-input-block">
|
|
<input type="text" name="createTime" id="date" placeholder="请选择创建日期"
|
|
autocomplete="off" class="layui-input">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label">组合名称</label>
|
|
<div class="layui-input-block">
|
|
<input type="text" name="name" autocomplete="off" class="layui-input"
|
|
placeholder="请输入组合名称">
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label">组合编码</label>
|
|
<div class="layui-input-block">
|
|
<input type="text" name="code" autocomplete="off" class="layui-input"
|
|
placeholder="请输入组合编码">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label">状态</label>
|
|
<div class="layui-input-block">
|
|
<select id="state" name="state">
|
|
<option value="" selected>请选择状态</option>
|
|
<option value="1">启用</option>
|
|
<option value="2">禁用</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layui-inline">
|
|
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
|
|
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 状态展示-->
|
|
<script type="text/html" id="switchTpl">
|
|
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
|
|
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
|
|
</script>
|
|
|
|
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/html" id="currentTableBar">
|
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="detail">详情</a>
|
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete"
|
|
th:style="'display:'+${display}">删除</a>
|
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" id="display"
|
|
lay-event="realDelete">彻底删除</a>
|
|
</script>
|
|
<script type="text/html" id="currentTableBarForOut">
|
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="applicationIn">入库</a>
|
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="applicationOut">出库</a>
|
|
</script>
|
|
|
|
|
|
<script src="/static/lib/layui-v2.8.6/layui.js" charset="utf-8"></script>
|
|
<script>
|
|
// 用于查看并修改组合中的物料信息
|
|
function checkSeeGroup() {
|
|
|
|
}
|
|
|
|
layui.use(['form', 'table', 'laydate'], function () {
|
|
var $ = layui.jquery,
|
|
form = layui.form,
|
|
table = layui.table,
|
|
laydate = layui.laydate;
|
|
|
|
//日期
|
|
laydate.render({
|
|
elem: '#date'
|
|
});
|
|
|
|
// 加载表格
|
|
table.render({
|
|
elem: "#currentTableId",
|
|
url: '/group/findAllGroup',
|
|
parseData: function (res) { //res 即为原始返回的数据
|
|
return {
|
|
"status": res.status, //解析接口状态
|
|
"message": res.statusInfo.message, //解析提示文本
|
|
"count": res.count, //解析数据长度
|
|
"data": res.data //解析数据列表
|
|
};
|
|
},
|
|
height: 'full-60',//固定高度-即固定表头固定第一行首行
|
|
request: {
|
|
pageName: 'page', //页码的参数名称,默认:page
|
|
limitName: 'size' //每页数据量的参数名,默认:limit
|
|
},
|
|
response: {
|
|
statusName: 'status' //规定数据状态的字段名称,默认:code
|
|
, statusCode: 200 //规定成功的状态码,默认:0
|
|
, msgName: 'message' //规定状态信息的字段名称,默认:msg
|
|
, countName: 'count' //规定数据总数的字段名称,默认:count
|
|
, dataName: 'data' //规定数据列表的字段名称,默认:data
|
|
},
|
|
toolbar: '#toolbarDemo',
|
|
cols: [
|
|
[
|
|
{type: "checkbox", width: 50},
|
|
{field: 'gname', width: 150, title: '组合名称', edit: 'gname'},
|
|
{field: 'code', width: 150, title: '组合编码'},
|
|
{field: 'remark', width: 150, title: '组合备注'},
|
|
{title: '拥有物料', width: 700, align: "center"},
|
|
{field: 'quantity', width: 200, title: '物料数量'},
|
|
{field: 'createTime', width: 200, title: '创建时间'},
|
|
{field: 'state', title: '状态', minWidth: 100, templet: '#switchTpl'},
|
|
{title: '出入库', minWidth: 200, toolbar: '#currentTableBarForOut', align: "center"},
|
|
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"},
|
|
]
|
|
],
|
|
limits: [15, 30, 45, 60, 100],
|
|
limit: 15,
|
|
page: true,
|
|
skin: 'line',
|
|
done: function (res, curr, count) {
|
|
let display = $("#display").css("display");
|
|
$.each(res['data'], function (i, j) {
|
|
let materialSimple = j["materialSimple"];
|
|
let gid = j["id"];
|
|
let keys = Object.keys(materialSimple);
|
|
let rowItem = $("[lay-id='currentTableId'] tr:eq(" + (i + 1) + ")");
|
|
var materialItem = rowItem.children()[4];
|
|
var nameItem = rowItem.children()[1];
|
|
if (display === "none") {
|
|
$(nameItem).removeAttr("data-edit");
|
|
}
|
|
var aItem = materialItem.childNodes[0];
|
|
for (let k = 0; k < keys.length; k++) {
|
|
$(aItem).append('<button id=' + gid + ' class="layui-btn layui-btn-primary layui-btn-xs" onclick="checkSeeGroup(this)" value=' + materialSimple[keys[k]] + '>' + keys[k] + '</button>')
|
|
}
|
|
})
|
|
}
|
|
});
|
|
|
|
// 监听搜索操作
|
|
form.on('submit(data-search-btn)', function (data) {
|
|
var req = {};
|
|
data = data.field;
|
|
if (data.code !== '') {
|
|
req.code = data.code;
|
|
}
|
|
if (data.createTime !== '') {
|
|
req.createTime = data.createTime;
|
|
}
|
|
if (data.state !== '') {
|
|
req.state = data.state;
|
|
}
|
|
if (data.name !== '') {
|
|
req.gname = data.name;
|
|
}
|
|
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
where: req
|
|
}, 'data');
|
|
return false;
|
|
});
|
|
|
|
|
|
// 用于监视表格编辑
|
|
table.on('edit(currentTableFilter)', function (obj) { //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
|
|
|
|
let display = $("#display").css("display");
|
|
if (display !== "none") {
|
|
let gid = obj.data.id;
|
|
let gname = obj.value;
|
|
let req = {};
|
|
req.id = gid;
|
|
req.gname = gname;
|
|
$.ajax({
|
|
url: '/group/editGroupInfo',
|
|
dataType: "json",
|
|
type: "post",
|
|
data: JSON.stringify(req),
|
|
contentType: "application/json;charset=utf-8",
|
|
success: function (data) {
|
|
if (data.status >= 300) {
|
|
layer.msg(data.statusInfo.message);//失败的表情
|
|
|
|
} else {
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
return false;
|
|
}
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
|
|
// 用于监听操作
|
|
table.on('tool(currentTableFilter)', function (obj) {
|
|
let data = obj.data;
|
|
|
|
if (obj.event === 'detail') {
|
|
var index = layer.open({
|
|
title: '组合详情',
|
|
type: 2,
|
|
shade: 0.2,
|
|
maxmin: true,
|
|
shadeClose: true,
|
|
area: ['100%', '100%'],
|
|
content: '/group_edit?id=' + data.id,
|
|
end: function () {
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
}
|
|
});
|
|
$(window).on("resize", function () {
|
|
layer.full(index);
|
|
});
|
|
} else if (obj.event === 'delete') {
|
|
var req = {};
|
|
req.id = data.id;
|
|
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
|
|
$.ajax({
|
|
url: "/group/delGroup",
|
|
type: "post",
|
|
dataType: "json",
|
|
data: JSON.stringify(req),
|
|
contentType: "application/json;charset=utf-8",
|
|
success: function (data) {
|
|
layer.close(this.layerIndex);
|
|
if (data.status >= 300) {
|
|
layer.msg(data.statusInfo.message);//失败的表情
|
|
|
|
} else {
|
|
layer.msg("删除成功", {
|
|
icon: 6,//成功的表情
|
|
time: 500 //1秒关闭(如果不配置,默认是3秒)
|
|
});
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
return false;
|
|
}
|
|
}
|
|
})
|
|
});
|
|
} else if (obj.event === 'realDelete') { //彻底删除
|
|
layer.confirm('该操作将无法挽回', {icon: 2, title: '提示'}, function (index) {
|
|
var req = {};
|
|
req.id = data.id;
|
|
$.ajax({
|
|
url: "/group/realDelGroup",
|
|
type: "post",
|
|
dataType: "json",
|
|
data: JSON.stringify(req),
|
|
contentType: "application/json;charset=utf-8",
|
|
success: function (data) {
|
|
layer.close(this.layerIndex);
|
|
if (data.status >= 300) {
|
|
layer.msg(data.statusInfo.message);//失败的表情
|
|
|
|
} else {
|
|
layer.msg("删除成功", {
|
|
icon: 6,//成功的表情
|
|
time: 500 //1秒关闭(如果不配置,默认是3秒)
|
|
});
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
return false;
|
|
}
|
|
}
|
|
})
|
|
})
|
|
} else if (obj.event === 'applicationOut') {
|
|
let gid = data.id;
|
|
|
|
var index1 = layer.open({
|
|
title: '组合出库',
|
|
type: 2,
|
|
shade: 0.2,
|
|
maxmin: true,
|
|
shadeClose: true,
|
|
area: ['100%', '100%'],
|
|
content: '/applicationOutForGroup?gid=' + gid + '&type=one',
|
|
});
|
|
$(window).on("resize", function () {
|
|
layer.full(index1);
|
|
});
|
|
} else if (obj.event === 'applicationIn') {
|
|
let gid = data.id;
|
|
|
|
var index2 = layer.open({
|
|
title: '组合入库',
|
|
type: 2,
|
|
shade: 0.2,
|
|
maxmin: true,
|
|
shadeClose: true,
|
|
area: ['100%', '100%'],
|
|
content: '/applicationInForGroup?gid=' + gid + '&type=one',
|
|
});
|
|
$(window).on("resize", function () {
|
|
layer.full(index2);
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
//用于查看并修改组合中的物料信息
|
|
checkSeeGroup = function (obj) {
|
|
let gid = obj.id;
|
|
let mid = obj.value;
|
|
layer.open({
|
|
type: 2,
|
|
title: "组合明细",
|
|
skin: 'layui-layer-rim',
|
|
maxmin: true,
|
|
shadeClose: true, //点击遮罩关闭层
|
|
area: ['100%', '100%'],
|
|
move: '.layui-layer-title',
|
|
fixed: false,
|
|
content: '/materialForGroup?mid=' + mid + '&gid=' + gid,
|
|
end: function () {
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
}
|
|
});
|
|
|
|
};
|
|
|
|
//监听状态操作
|
|
form.on('switch(changeState)', function (obj) {
|
|
let display = $("#display").css("display");
|
|
if (display !== "none") {
|
|
var req = new Map;
|
|
if (obj.elem.checked) {
|
|
req["state"] = 1
|
|
}
|
|
req["id"] = this.value;
|
|
$.ajax({
|
|
url: "/group/changeGroupState",
|
|
type: 'post',
|
|
dataType: 'json',
|
|
contentType: "application/json;charset=utf-8",
|
|
data: JSON.stringify(req),
|
|
beforeSend: function () {
|
|
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
|
|
},
|
|
success: function (data) {
|
|
layer.close(this.layerIndex);
|
|
if (data.status >= 300) {
|
|
layer.msg(data.statusInfo.message);//失败的表情
|
|
} else {
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
});
|
|
|
|
|
|
/**
|
|
* toolbar监听事件
|
|
*/
|
|
table.on('toolbar(currentTableFilter)', function (obj) {
|
|
if (obj.event === 'add') { // 监听添加操作
|
|
layer.open({
|
|
type: 2,
|
|
title: "创建组合",
|
|
skin: 'layui-layer-rim',
|
|
maxmin: true,
|
|
shadeClose: true, //点击遮罩关闭层
|
|
area: ['100%', '100%'],
|
|
move: '.layui-layer-title',
|
|
fixed: false,
|
|
content: '/group_add',
|
|
end: function () {
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
}
|
|
|
|
});
|
|
} else if (obj.event === 'delete') {
|
|
var checkStatus = table.checkStatus('currentTableId')
|
|
, data = checkStatus.data;
|
|
var req = {};
|
|
req.ids = [];
|
|
for (i = 0, len = data.length; i < len; i++) {
|
|
req.ids[i] = data[i].id;
|
|
}
|
|
if (req.ids.length > 0) {
|
|
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
|
|
$.ajax({
|
|
url: "/group/delGroup",
|
|
type: "post",
|
|
dataType: "json",
|
|
data: JSON.stringify(req),
|
|
contentType: "application/json;charset=utf-8",
|
|
success: function (data) {
|
|
layer.close(this.layerIndex);
|
|
if (data.status >= 300) {
|
|
layer.msg(data.statusInfo.message);//失败的表情
|
|
|
|
} else {
|
|
layer.msg("删除成功", {
|
|
icon: 6,//成功的表情
|
|
time: 500 //1秒关闭(如果不配置,默认是3秒)
|
|
});
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
return false;
|
|
}
|
|
}
|
|
})
|
|
})
|
|
} else {
|
|
layer.msg("未选中记录,请确认!");
|
|
return false;
|
|
}
|
|
} else if (obj.event === 'applicationOutAdd') {
|
|
// 如果点击的是添加出库记录
|
|
var checkStatus = table.checkStatus('currentTableId')
|
|
, data = checkStatus.data;
|
|
var req = {};
|
|
req.gids = [];
|
|
for (i = 0, len = data.length; i < len; i++) {
|
|
req.gids[i] = data[i].id;
|
|
}
|
|
if (req.gids.length > 0) {
|
|
$.ajax({
|
|
url: "/group/addApplicationToRedis",
|
|
type: "post",
|
|
data: JSON.stringify(req),
|
|
dataType: "json",
|
|
contentType: "application/json;charset=utf-8",
|
|
success: function (data) {
|
|
if (data.status === 201) {
|
|
layer.msg("添加成功", {
|
|
icon: 6,//成功的表情
|
|
time: 500 //1秒关闭(如果不配置,默认是3秒)
|
|
}, function () {
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
});
|
|
} else {
|
|
layer.msg("添加失败,请重试", {
|
|
icon: 2,
|
|
time: 200,
|
|
}, function () {
|
|
//执行搜索重载
|
|
table.reloadData('currentTableId', {
|
|
url: '/group/findAllGroup',
|
|
page: {
|
|
curr: 1
|
|
},
|
|
}, 'data');
|
|
})
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
layer.msg("未选中记录,请确认!");
|
|
return false;
|
|
}
|
|
} else if (obj.event === 'dispose') {
|
|
// 如果点击的是处理
|
|
var index = layer.open({
|
|
title: '处理',
|
|
type: 2,
|
|
shade: 0.2,
|
|
maxmin: true,
|
|
shadeClose: true,
|
|
area: ['100%', '100%'],
|
|
content: '/application_group_multi'
|
|
});
|
|
$(window).on("resize", function () {
|
|
layer.full(index);
|
|
});
|
|
return false;
|
|
}
|
|
})
|
|
|
|
$('body').on('click', '[data-refresh]', function () {
|
|
location.reload();
|
|
})
|
|
})
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|