zentaopms/module/transfer/view/footer.html.php
2023-05-16 10:47:08 +08:00

119 lines
3.7 KiB
PHP

<script>
$('#showData > tbody').addClass('load-indicator loading');
$.get(createLink('transfer', 'ajaxGetTbody','model=<?php echo $model;?>&lastID=0&pagerID=<?php echo $pagerID;?>'), function(data)
{
$('#showData > tbody').append(data);
if($('#showData tbody').find('tr').hasClass('showmore') === false) $('#showData tfoot').removeClass('hidden');
$('#showData tbody').find('.picker-select').picker({chosenMode: true});
$('.form-date').datetimepicker({minView: 2, format: "yyyy-mm-dd"});
$('.form-datetime').datetimepicker('update');
$('#showData > tbody').removeClass('load-indicator loading');
if(typeof(getTbodyLoaded) == 'function') getTbodyLoaded();
})
window.addEventListener('scroll', this.handleScroll);
function handleScroll(e)
{
var relative = 500; // 相对距离
$('tr.showmore').each(function()
{
var $showmore = $(this);
var offsetTop = $showmore[0].offsetTop;
if(offsetTop == 0) return true;
if(getScrollTop() + getWindowHeight() >= offsetTop - relative)
{
throttle(loadData($showmore), 250)
}
})
}
function loadData($showmore)
{
$showmore.removeClass('showmore');
var lastID = $showmore.attr('data-id');
var url = createLink('transfer', 'ajaxGetTbody','model=<?php echo $model;?>&lastID=' + lastID + '&pagerID=<?php echo $pagerID;?>');
$.get(url, function(data)
{
$showmore.after(data);
if($('#showData tbody').find('tr').hasClass('showmore') === false) $('#showData tfoot').removeClass('hidden');
$('#showData tbody').find('.picker-select').picker({chosenMode: true}).removeClass('nopicker');
$('.form-date').datetimepicker({minView: 2, format: "yyyy-mm-dd"});
$('.form-datetime').datetimepicker('update');
})
}
function throttle(fn, threshhold)
{
var last;
var timer;
threshhold || (threshhold = 250);
return function()
{
var context = this;
var args = arguments;
var now = +new Date()
if (last && now < last + threshhold)
{
clearTimeout(timer);
timer = setTimeout(function ()
{
last = now
fn.apply(context, args)
}, threshhold)
}
else
{
last = now
fn.apply(context, args)
}
}
}
function getScrollTop()
{
return scrollTop = document.body.scrollTop + document.documentElement.scrollTop
}
function getWindowHeight()
{
return document.compatMode == "CSS1Compat" ? windowHeight = document.documentElement.clientHeight : windowHeight = document.body.clientHeight
}
$('#showData').on('mouseenter', '.picker', function(e){
var myPicker = $(this);
var field = myPicker.prev().attr('data-field');
var id = myPicker.prev().attr('id');
var name = myPicker.prev().attr('name');
var index = Number(name.replace(/[^\d]/g, " "));
var value = myPicker.prev().val();
if($('#' + id).attr('isInit')) return;
$.ajaxSettings.async = false;
$.get(createLink('transfer', 'ajaxGetOptions', 'model=<?php echo $model;?>&field=' + field + '&value=' + value + '&index=' + index), function(data)
{
$('#' + id).parent().html(data);
$('#' + id).picker({chosenMode: true});
$('#' + id).attr('isInit', true);
$('#' + id).attr('data-field', field);
});
$.ajaxSettings.async = true;
})
$(function()
{
$.fixedTableHead('#showData');
$("#showData th").each(function()
{
if(requiredFields.indexOf(this.id) !== -1) $("#" + this.id).addClass('required');
});
});
</script>
<?php include $app->getModuleRoot() . 'common/view/footer.html.php';?>