前端代码:
@{ Layout = "~/Views/Shared/_Index.cshtml"; }
<link href="~/lib/layui/css/layui.css" rel="stylesheet" />
<link href="~/lib/layui-soul-table/soulTable.css" rel="stylesheet" />
<link href="~/lib/layui-soul-table/soulTable.js" rel="stylesheet" />
<script src="~/lib/layui/layui.js"></script>
<div class="tabs-container">
<ul class="nav nav-tabs">
<li class="active">
<a data-toggle="tab" lay-submit="" lay-filter="switch1" aria-expanded="true"> 未审核</a>
</li>
<li class="">
<a data-toggle="tab" lay-submit="" lay-filter="switch2" aria-expanded="false">已审核</a>
</li>
<li class="">
<a data-toggle="tab" lay-submit="" lay-filter="switch3" aria-expanded="false">已拒绝</a>
</li>
</ul>
</div>
<div class="layui-row layui-form">
<div class="layui-col-md3">
<div class="layui-inline">
<label class="layui-form-label">表单编码</label>
<div class="layui-input-inline">
<input type="text" name="MasterBillNo"
class="layui-input" placeholder="请输入表单编码关键字">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-inline">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-inline">
<input type="text" name="MaterialName"
class="layui-input" placeholder="请输入物料名称关键字">
</div>
</div>
</div>
<div class="layui-col-md2">
<div class="layui-inline">
<label class="layui-form-label">开始时间</label>
<div class="layui-input-inline">
<input id="startTime" name="StartTime"
type="text" class="layui-input time-input" placeholder="开始时间" />
</div>
</div>
</div>
<div class="layui-col-md2">
<div class="layui-inline">
<label class="layui-form-label">结束时间</label>
<div class="layui-input-inline">
<input id="endTime" name="EndTime"
type="text" class="layui-input time-input" placeholder="结束时间" />
</div>
</div>
</div>
<div class="layui-col-md2">
<button class="layui-btn mgl-20" lay-submit="" lay-filter="search"><i class="layui-icon"></i>查询</button>
</div>
</div>
<table id="myTable2" lay-filter="myTable2"></table>
<script>
var clickTab = 0;
$(function () {
});
var bodyHeight = $('body').height();
var souTableHeight = bodyHeight - 100;
var param = {};
var checkStatus = 0;
var allowRows = [];
var rejectRows = [];
var cancelRows = [];
laydate.render({ elem: '#startTime', format: 'yyyy-MM-dd', value: new Date() });
laydate.render({ elem: '#endTime', format: 'yyyy-MM-dd', value: new Date() });
param.MasterBillNo = "";
// 自定义模块
layui.config({
base: '/lib/layui-soul-table/', // 模块目录
}).extend({// 模块别名
soulTable: 'soulTable'
});
//function soulTable_init(){
layui.use(['form', 'table', 'soulTable'], function () {
var table = layui.table,
form = layui.form,
soulTable = layui.soulTable;
table.render({
elem: '#myTable2',
url: '@Url.Content("~/MaintainManage/Stock/GetPageListJson")',
height: souTableHeight,
toolbar: '<div class="check-btn"><a class="layui-btn layui-btn-sm allow-btn" lay-event="allow">审核通过</a><a class="layui-btn layui-btn-sm reject-btn" lay-event="reject">审核未通过</a><a class="layui-btn layui-btn-sm cancel-btn" lay-event="cancel">取消审核</a></div>',
page: true,
cols: [[
{ type: 'checkbox', fixed: 'left' },
{
title: '#', width: 50, children: function (row) {
console.log(row)
return [
{
title: '出(入)库详情表',
url: '@Url.Content("~/MaintainManage/Stock/GetDetailList")',
height: 300,
page: false,
where: function (row) {
//row 为当前行数据
console.log(row);
return { BillNo: row.BillNo }
},
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: 'MaterialCode', title: '物料编码', sort: true, filter: true },
{ field: 'MaterialName', title: '物料名称', sort: true, filter: true },
{ field: 'Qty', title: '数量', filter: true },
{ field: 'Unit', title: '单位', sort: true, filter: true },
{ field: 'DeviceNo', title: '设备编码', sort: true, filter: true },
{ field: 'StockDate', title: '出(入)库日期', sort: true },
{ field: 'OutInv', title: '出库仓库', sort: true, filter: true },
{ field: 'InInv', title: '入库仓库', sort: true, filter: true },
{ field: 'Type', title: '单据类型', filter: true },
{ field: 'Remark', title: '备注', filter: true },
{ field: 'CreateTime', title: '创建时间', sort: true }
]]
, done: function () {
soulTable.render(this);
}
, filter: {
bottom: false
}
}
]
}
},
{ field: 'BillNo', title: '表单编码', sort: true, filter: true },
{ field: 'WareHouser', title: '入库人', filter: true },
{ field: 'WarehouseManager', title: '仓管员', filter: true },
{ field: 'Duty', title: '负责人', filter: { split: ',' }, sort: true },
{ field: 'BillDate', title: '单据日期', sort: true },
{ field: 'StatusStr', title: '状态', filter: true, sort: true },
{ field: 'Remark', title: '备注', filter: true, sort: true },
]],
done: function () {
soulTable.render(this);
openTab(clickTab);
}, filter: {
bottom: false
}
});
form.on('submit(search)', function (data) {
debugger;
var param = {};
data.field.Status = checkStatus;
param = data.field;
table.reload('myTable2', {
where: param
})
openTab(clickTab);
}),
form.on('submit(switch1)', function (data) {
var param = {};
param.Status = 0;
checkStatus = 0;
table.reload('myTable2', {
where: param
})
clickTab = 0;
openTab(clickTab);
}),
form.on('submit(switch2)', function (data) {
var param = {};
param.Status = 1;
checkStatus = 1;
table.reload('myTable2', {
where: param
})
clickTab = 1;
openTab(clickTab);
}) ,
form.on('submit(switch3)', function (data) {
var param = {};
param.Status = 2;
checkStatus = 2;
table.reload('myTable2', {
where: param
})
clickTab = 2;
openTab(clickTab);
})
table.on('toolbar(myTable2)', function (obj) {
debugger;
var type = 1;
if (obj.event === 'allow') {
allowRows = soulTable.cache['myTable2'].filter(item => item.LAY_CHECKED)
}
if (obj.event === 'reject') {
type = 2;
rejectRows = soulTable.cache['myTable2'].filter(item => item.LAY_CHECKED)
}
if (obj.event === 'cancel') {
type = 0;
cancelRows = soulTable.cache['myTable2'].filter(item => item.LAY_CHECKED)
}
var list=allowRows.length > 0 ? allowRows:(rejectRows.length > 0 ? rejectRows:cancelRows);
zz.ajax({
url: '@Url.Content("~/MaintainManage/Stock/UpdateStatus")',
type: "post",
data: { "type":type,"list": list},
success: function (obj) {
if (obj.Tag == 1) {
zz.msgSuccess(obj.Message);
allowRows = [];
rejectRows = [];
cancelRows = [];
table.reload('myTable2', {});
openTab(clickTab);
}
else {
zz.msgError(obj.Message);
}
}
});
});
})
//}
function statusChoose(statusId) {
alert(statusId);
}
function checkPass() {
}
function openTab(clickTab) {
switch (clickTab) {
case 0:
$(".allow-btn").show();
$(".reject-btn").show();
$(".cancel-btn").hide();
break;
default:
$(".allow-btn").hide();
$(".reject-btn").hide();
$(".cancel-btn").show();
break;
}
}
</script>
数据格式
父数据格式
"data":[{"Id":186,"BillNo":"STI2207290002","WareHouser":null,"WarehouseManager":null,"Duty":null,"BillDate":"2022-07-29","OnUse":null,"Status":0,"StatusStr":"0.未审核","Remark":null}
孩子数据格式
"data":[{"Id":378,"MasterBillNo":null,"MaterialCode":"xxxxxx","MaterialName":"xxxxxx","Qty":1,"Type":"xxxxxx","Remark":"xxxxxx","StockDate":"2022-01-01","CreateTime":"2022-07-29 13:07:40","OutInv":null,"InInv":"xxxxxx","OutInvName":null,"InInvName":"xxxxxx","DeviceNo":"xxxxxx","Unit":"个"}]