function timeoutThread(fn,timeout){
var nfn=fn;
window.setTimeout(nfn ,timeout || 20);
}
function msg(content){
layer.msg(content);
}
function offsetMsg(content,style,offset){
if(!offset){
offset = 'rb';
}
if(!style){
style = 'width:100%;height:100%;color:#fff;line-height:150px;font-size:18px;background-color:#0073d5;text-align:center;';
}
layer.open({
type: 1,
title: false,
closeBtn: 0,
shade: [0],
shadeClose : true,
area: ['300px','150px'],
offset: offset,
time: 2000, //2秒后自动关闭
shift: 2,
content: '
' +content + '
'
});
}
//content可以是dom,string
function pop(title,content,maxmin){
if(!maxmin) maxmin = true;
layer.open({
type: 1,
title: title,
content: content,
maxmin: maxmin
});
}
function pop(title,content,width,height,maxmin){
layer.open({
type: 1,
title: title,
area: [width + 'px', height + 'px'],
content: content,
maxmin : true
});
}
//title:false不显示, 空title
function popWindow(title,url,width,height){
layer.open({
type: 2,
title: title,
maxmin: true,
area : [width+"px" , height+"px"],
content: url
});
}
//全屏window
function fullWindow(title,url,maxmin){
var index = layer.open({
type: 2,
title: title,
content: url,
maxmin: maxmin
});
layer.full(index);
}
//关闭所有layer
function closeAll(){
layer.closeAll() ;
}
//ajax,从formid获取数据后提交数据
function ajaxForm(url,formid,successfn,dataType){
if(!dataType)dataType = "json";
var loadIndex = layer.load(0,{shade:0.3});
$.ajax({
type: "post",
data: $('#' + formid).serialize(),
url: url,
dataType: dataType,
success: function(r){
layer.close(loadIndex);
if(successfn){
successfn(r);
}else{
msg(r.message);
}
},
error: function(e){
layer.close(loadIndex);
msg("操作数据发生异常,请稍后再试或联系管理员");
}
});
}
//ajaxPost
function ajaxPost(url, data, successfn,dataType) {
console.log(data);
data = (data==null || data=="" || typeof(data)=="undefined")? {"clientDate": new Date().getTime()} : data;
if(!dataType)dataType = "json";
var loadIndex = layer.load(0,{shade:0.3});
$.ajax({
type: "post",
data: data,
url: url,
dataType: dataType,
success: function(r){
layer.close(loadIndex);
if(successfn){
successfn(r);
}else{
msg(r.message);
}
},
error: function(e){
layer.close(loadIndex);
msg("操作数据发生异常,请稍后再试或联系管理员");
}
});
}
//刷新grid
function reloadGrid(gridId,timeout){
timeout = timeout || 400;
timeoutThread(reloadGrid_inner,timeout);
function reloadGrid_inner(){
$('#'+gridId).bootstrapTable('refresh');
}
}
//根据datatable选中的数据获取field的值进行删除
function goDelete(gridId,field,url,callback){
var val = getSelectedValue(gridId,field);
if(val){
layer.confirm('确定删除选中的数据', {
btn: ['确定','取消'] //按钮
}, function(){
if(url.indexOf("@value@")){
url = url.replace("@value@",val)
}
if(callback)
{
ajaxPost(url,null,callback);
}else{
ajaxPost(url,null,function(r){
if(r.success){
reloadGrid(gridId);
}
msg(r.message);
});
}
}, function(){
});
}else{
msg("请选择需要删除的数据");
}
}
//获取datatable选中单行的指定field的值
function getSingleSelectedValue(gridId,field){
var selects = $('#'+gridId).bootstrapTable('getSelections');
if( selects && selects.length == 1 ){
return selects[0][field];
}else if(selects.length > 0 ){
msg("只能选择单条数据");
return null;
}else{
msg("请选中数据");
return null;
}
}
//获取datatable选中多行的指定field的值
function getSelectedValue(gridId,field){
var selects = $('#'+gridId).bootstrapTable('getSelections');
if( selects && selects.length > 0 ){
var values = [];
for (var i = 0; i < selects.length; i++) {
var cellValue = selects[i][field];
if(cellValue && (""+cellValue).length > 0){
values.push(cellValue);
}
}
return values.join(',');
}else{
return null;
}
}
//获取datatable单选行的数据
function getSingleSelectedRow(gridId){
var rows = $('#'+gridId).bootstrapTable.bootstrapTable('getSelections');
var num = rows.length;
if (num == 1) {
return rows[0];
} else {
return null;
}
}
//数据表格启用状态格式化
function enableFormatter(value,row,index){
if(value == 1){
return ''
}else{
return '';
}
}
//自定义高精度浮点数运算
//对象格式写法
//float_caculator.add(1.11444,23.45674231);
var float_calculator={
/**
* 1.记录两个运算数小数点后的位数
* 2.将其转化为整数类型进行运算
* 3.移动小数点的位置
**/
//加
add:function(arg1,arg2){
var r1,r2,m;
try{
//取小数位长度
r1=arg1.toString().split(".")[1].length;
r2=arg2.toString().split(".")[1].length;
}catch(e){
r1=0;r2=0;
}
m=Math.pow(10,Math.max(r1,r2)); //计算因子
return (arg1*m+arg2*m)/m;
},
//减
minus:function(arg1,arg2){
return this.add(arg1,-arg2);
},
//乘
mul:function(arg1,arg2){
var r1,r2,m;
try{
//取小数位长度
r1=arg1.toString().split(".")[1].length;
r2=arg2.toString().split(".")[1].length;
}catch(e){
r1=0;r2=0;
}
m=Math.pow(10,Math.max(r1,r2)); //计算因子
return (arg1*m)*(arg2*m)/(m*m);
},
//除
div:function(arg1,arg2){
if( arg2 == 0 ) return 0;
var t1=0,t2=0,r1,r2;
try{
t1=arg1.toString().split(".")[1].length;
t2=arg2.toString().split(".")[1].length;
}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""));
r2=Number(arg2.toString().replace(".",""));
}
return (r1/r2)*Math.pow(10,t2-t1);
}
};
function Scroll(w) {
var win = w || window;
var d = win.document;
if (d.documentElement && !(d.documentElement.scrollTop == undefined || d.documentElement.scrollTop == 0)) {
return {
'top': win.document.documentElement.scrollTop,
'left': win.document.documentElement.scrollLeft
};
} else if (win.document.body) {
return {
'top': win.document.body.scrollTop,
'left': win.document.body.scrollLeft
};
}
}
function BoundingClientRect(obj) {
if (navigator.product == 'Gecko') {
var objWin = null;
var top = obj.offsetTop;
var left = obj.offsetLeft;
var right = obj.offsetWidth;
var bottom = obj.offsetHeight;
while (obj = obj.offsetParent) {
top += obj.offsetTop;
left += obj.offsetLeft;
if (obj.tagName.toLowerCase() == 'body') {
objWin = obj.ownerDocument.defaultView;
}
}
var theScroll = Scroll(objWin);
left -= theScroll.left;
top -= theScroll.top;
right += left;
bottom += top;
return {
'left': left,
'top': top,
'right': right,
'bottom': bottom
};
} else {
return obj.getBoundingClientRect();
}
}