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.

251 lines
9.4 KiB

<div class="layuimini-container layuimini-page-anim">
<div class="layuimini-main">
<div style="margin: 10px" id="building">
</div>
</div>
<div class="layuimini-main" style="width: 250px;position: absolute;left: 0px;">
<ul class="storey">
</ul>
</div>
<div class="layuimini-main" style="left: 270px;float: right;position: absolute;right:0px">
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">
<i class="layui-icon layui-icon-add-circle"></i>
新增
</button>
<button class="layui-btn layui-btn-sm layui-btn-normal data-delete-btn" lay-event="update">
<i class="layui-icon layui-icon-edit"></i>
修改
</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete">
<i class="layui-icon layui-icon-delete"></i>
删除
</button>
<button class="layui-btn layui-btn-sm layui-btn-normal data-init-btn" lay-event="init">
<i class="layui-icon layui-icon-edit"></i>
宿舍初始化
</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
</div>
</div>
<style>
.storey{
margin: 0px;
padding: 0px;
}
.storey li{
height: 40px;
line-height:40px;
border-bottom: 1px solid #f1f1f1;
font-size: 16px;
cursor: pointer;
padding-left: 50px;
}
.storey>li>span{
float: right;
margin-right: 10px;
}
.storey>li>span>button{
cursor: pointer;
color: #00998b;
background: transparent;
border: 0px;
font-size: 20px;
}
.storey-bg{
background-color: #f0f0f0;
color: #000000;
}
</style>
<script>
layui.use(['form', 'table','miniPage','element','axios'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
axios = layui.axios,
form = layui.form,
miniPage = layui.miniPage;
let _buildingId;
let _storeyId;
function loadBuilding(){
axios.post('building/query',{}).then(function (response) {
response.data.forEach(item=>{
let btn = '<button class="layui-btn layui-btn-primary layui-btn-radius building-btn" key='+item.id+'>'+item.name+'</button>';
let btnObj = $(btn);
btnObj.click(function () {
$(this).siblings().addClass('layui-btn-primary');
$(this).removeClass('layui-btn-primary');
loadStorey($(this).attr("key"));
});
$('#building').append(btnObj);
})
$('#building button:first').trigger('click');
}).catch(function (error) {
layer.msg(error);
});
}
loadBuilding();
//加载楼层
function loadStorey(buildingId){
axios.post('storey/query',{"buildingId":buildingId}).then(function (response) {
$('.storey').empty();
response.data.forEach(item=>{
let btn = `<li key="${item.id}">${item.name}</li>`;
let btnObj = $(btn);
btnObj.click(function () {
$(this).siblings().removeClass('storey-bg');
btnObj.addClass('storey-bg');
loadDormitorySet(buildingId,$(this).attr("key"));
});
$('.storey').append(btnObj);
})
$('.storey li:first').trigger('click');
}).catch(function (error) {
layer.msg(error);
});
}
function loadDormitorySet(buildingId,storeyId){
_buildingId = buildingId;
_storeyId = storeyId;
table.render({
elem: '#currentTableId',
method:'post',
url: 'dormitorySet/query',
data:{buildingId:buildingId,storeyId:storeyId},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [[
{type: "checkbox", width: 50},
{field: 'id', width: 80, title: 'ID'},
{field: 'prefix',title: '前缀'},
{field: 'start',title: '前缀'},
{field: 'end',title: '前缀'},
{field: 'capacity', title: '容量'},
]],
page: true,
skin: 'line'
});
}
window.reload = function(){
table.reload('currentTableId');
}
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var result = JSON.stringify(data.field);
//执行搜索重载
table.reload('currentTableId', {
where: data.field
}, 'data');
return false;
});
/**
* toolbar事件监听
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
let content = miniPage.getHrefContent('dormitorySet/add.html');
let openWH = miniPage.getOpenWidthHeight();
let index = layer.open({
title: '添加',
type: 1,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: [openWH[0] + 'px', openWH[1] + 'px'],
offset: [openWH[2] + 'px', openWH[3] + 'px'],
content: content
});
form.val('setAddForm',{
buildingId:_buildingId,
storeyId:_storeyId
})
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'update') { //修改操作
let data = table.checkStatus('currentTableId').data;
if(data.length!=1){
layer.msg("请选择一条记录修改");
}else{
let content = miniPage.getHrefContent('dormitorySet/update.html');
let openWH = miniPage.getOpenWidthHeight();
let index = layer.open({
title: '添加',
type: 1,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: [openWH[0] + 'px', openWH[1] + 'px'],
offset: [openWH[2] + 'px', openWH[3] + 'px'],
content: content
});
form.val('setUpdateForm',{
id:data[0].id,
buildingId:data[0].buildingId,
storeyId:data[0].storeyId,
prefix:data[0].prefix,
start:data[0].start,
end:data[0].end,
capacity:data[0].capacity,
})
$(window).on("resize", function () {
layer.full(index);
});
}
}else if (obj.event === 'delete') { //删除操作
let data = table.checkStatus('currentTableId').data;
if(data.length==0){
layer.msg("请选择要删除的数据");
}else{
layer.confirm('真的删除行吗', function (index) {
//异步删除 map\filter\some\every
let arr = data.map(item=>item.id);
axios.get('dormitorySet/delete?ids='+arr.join(",")).then(function (response) {
table.reload('currentTableId');
layer.msg(response.msg);
}).catch(function (error) {
layer.msg(error);
});
layer.close(index);
});
}
}else if(obj.event === 'init'){//初始化...
axios.post('dormitory/query',{buildingId:_buildingId,storeyId:_storeyId}).then(function (response) {
let exist='';
if(response.data.length>0){
exist="已存在宿舍信息,初始化后原数据会丢失,";
}
layer.confirm(exist+'确认初始化吗?', function (index) {
axios.post('dormitory/init',{buildingId:_buildingId,storeyId:_storeyId}).then(function (response) {
layer.msg(response.msg);
}).catch(function (error) {
layer.msg(error);
});
layer.close(index);
});
}).catch(function (error) {
layer.msg(error);
});
}
});
});
</script>