海工商新版后台
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.
 
 

138 lines
3.4 KiB

<span class="{{ $class }}">
<span style="cursor: pointer" class="switch-dialog">{!! $button !!}</span>
<template class="content">
<div {!! $attributes !!}>
<div class="p-2 dialog-body">{!! $table !!}</div>
@if($footer)
<div class="dialog-footer layui-layer-btn">{!! $footer !!}</div>
@endif
</div>
</template>
{{-- 标题 --}}
<template class="title">{!! $title !!}</template>
{{-- 事件监听 --}}
<template class="event">
{!! $events['shown'] !!}
@if(!empty($events['load']))
$t.on('table:loaded', function (e) { {!! $events['load'] !!} });
@endif
</template>
</span>
<script init=".{{ $class }}">
var area = screen.width <= 850 ? ['100%', '100%',] : '{{ $width }}',
offset = screen.width <= 850 ? 0 : '70px',
_tb = '.async-table',
_container = '.dialog-table',
_id,
_temp,
_title,
_event,
_btnId;
setId(id);
function hidden(index) {
{!! $events['hidden'] !!}
getLayer(index).find(_container).trigger('dialog:hidden');
}
function open(btn) {
var index = layer.open({
type: 1,
title: $(_title).html(),
area: area,
offset: offset,
maxmin: false,
resize: false,
content: $(_temp).html(),
success: function(layero, index) {
var $c = getLayer(index).find(_container),
$t = getLayer(index).find(_tb);
$c.attr('layer', index);
setDataId($c);
setMaxHeight(index);
eval($(_event).html());
setTimeout(function () {
Dcat.grid.AsyncTable({container: $t});
$t.trigger('table:load');
}, 100);
$c.trigger('dialog:shown');
$c.on('dialog:open', openDialog);
$c.on('dialog:close', closeDialog)
},
cancel: function (index) {
btn && btn.removeAttr('layer');
hidden(index)
}
});
btn && btn.attr('layer', index);
}
function setDataId(obj) {
if (! obj.attr('data-id')) {
obj.attr('data-id', id);
}
}
function setId(val) {
if (! val) return;
_id = '#' + val;
_temp = _id + ' .content';
_title = _id + ' .title';
_event = _id + ' .event';
_btnId = _id + ' .switch-dialog';
}
function openDialog () {
setId($(this).attr('data-id'));
setDataId($(this));
if (! $(this).attr('layer')) {
open($(this));
}
}
function getLayer(index) {
return $('#layui-layer'+index)
}
function closeDialog() {
var index = $(this).attr('layer');
getLayer(index).find(_container).removeAttr('layer');
$(_btnId).removeAttr('layer');
if (index) {
layer.close(index);
hidden(index);
}
}
function setMaxHeight(index) {
var maxHeight = ($(window).height() - 220);
if (maxHeight < 250) {
maxHeight = maxHeight + 120;
}
getLayer(index).find('.layui-layer-content').css({'max-height': maxHeight});
}
$(_btnId).on('click', openDialog);
</script>