var Common = (function () {
var Common = {
BindTable: function (table, url, uniqueid, queryid, columns) {
$(table).bootstrapTable({
// data: bt_data,
url: url,
dataType: "json",
//search: 'true',
method: 'get', //请求方式(*)
// contentType: "application/x-www-form-urlencoded", //post请求需要加的字段
//toolbar: '#toorbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: true, //是否启用排序
sortOrder: "asc", //排序方式
queryParams: queryParams, //传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 20, 50, 100], //可供选择的每页的行数(*),
smartDisplay: false,
//strictSearch: true,
//showColumns: true, //是否显示所有的列
//showRefresh: true, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
//clickToSelect: true, //是否启用点击选中行
//height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
uniqueId: uniqueid, //每一行的唯一标识,一般为主键列
showToggle: false, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
columns: columns
//onLoadSuccess: function (data) {
// var result = data["rows"];
// $.each(result, function (index, content) {
// //loadfunc;
// }),
// $(table).bootstrapTable("load", data);
//},
});
function queryParams(params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
sort: params.sort,
order: params.order,
limit: params.limit, //页面大小
offset: params.offset, //页码
queryid: queryid,
};
return temp;
}
},
InputCheck: function (objval, type) {
var reg = new RegExp();
var erro = "";
switch (type) {
case "domain": reg = new RegExp("^[0-9A-Za-z](\.){4,15}$"); erro = "4~15位字母、数字组成!"; break;
case "email": reg = new RegExp("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$"); erro = "请输入正确的邮箱!"; break;
case "account": reg = new RegExp("^[a-zA-Z0-9_-]{4,16}$"); erro = "4到16位(字母,数字,下划线,减号)"; break;
case "pwd": reg = new RegExp("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$"); erro = "密码长度在6~18之间,必须同时包含字母和数字!"; break
case "qq": reg = new RegExp("^[1-9][0-9]{4,10}$"); erro = "请输入5~11位QQ号码"; break;
// case "phone": reg = new RegExp("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$"); erro = "请输入正确的手机号码"; break;
case "wechat": reg = new RegExp("^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$"); erro = "6至20位,以字母开头,字母,数字,减号,下划线"; break;
}
if (objval === "") { //输入不能为空
layer.msg("输入不能为空!");
return false;
} else if (!reg.test(objval)) { //正则验证不通过,格式不对
layer.msg(erro);
return false;
}
else return true;
},
SetSimple: function (value, table, identify) {
var lst = [];
if (value == null || value == undefined || value == "")//多删
{
var a = $(table).bootstrapTable('getSelections');
$.each(a, function () { lst.push("'" + this[identify] + "'") });
if (lst == "") {
layer.msg("请选择要操作的数据!");
return;
}
}
else { lst.push("'" + value + "'"); }//单删
return lst;
},
SerializeObject: function (obj) {
var data = {};
var t = $(obj).serializeArray();
$.each(t, function () {
data[this.name] = this.value;
});
return data;
},
//onkeydown事件禁用文本框粘帖
fncKeyStop: function (evt) {
if (!window.event) {
var keycode = evt.keyCode;
var key = String.fromCharCode(keycode).toLowerCase();
if (evt.ctrlKey && key == "v") {
evt.preventDefault();
evt.stopPropagation();
}
}
},
HTMLEncode: function (html) {
var temp = document.createElement("div");
(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
var output = temp.innerHTML;
temp = null;
return output;
},
htmlDecode: function (text) {
//1.首先动态创建一个容器标签元素,如DIV
var temp = document.createElement("div");
//2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)
temp.innerHTML = text;
//3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。
var output = temp.innerText || temp.textContent;
temp = null;
return output;
},
// 全选 多选
selectMore:function(elTotal,elMany){
var checkboxs =elMany;
var mainbox =elTotal;
// console.log(checkboxs.length) ;
//console.log(mainbox.length)
mainbox.on("ifChecked ifUnchecked",function(event){
if(event.type == 'ifChecked'){
checkboxs.iCheck('check');
}else{
checkboxs.iCheck('uncheck');
}
});
checkboxs.on('ifChanged',function(event){
//下面的是用子选项控制mainbox的业务逻辑
if(checkboxs.filter(':checked').length == checkboxs.length) {
mainbox.prop('checked',true);
} else {
mainbox.prop('checked',false);
}
mainbox.iCheck('update')
});
},
// 表格分页
tabledata:function(el){
el.dataTable({
// lengthMenu: [ 10, 20, 30],//这里也可以设置分页,但是不能设置具体内容,只能是一维或二维数组的方式,所以推荐下面language里面的写法。
paging: true,//分页
ordering: false,//是否启用排序
searching: false,//搜索
bLengthChange: false, //去掉每页显示多少条数据方法
language: {
paginate: {//分页的样式内容。
previous: "<",
next: ">",
first: "",
last: ""
},
zeroRecords: "没有内容",//table tbody内容为空时,tbody的内容。
//下面三者构成了总体的左下角的内容。
info: "共_PAGES_ 页,显示第_START_ 到第 _END_个",//左下角的信息显示,大写的词为关键字。
infoEmpty: "0条记录",//筛选为空时左下角的显示。
infoFiltered: ""//筛选之后的左下角筛选提示,
},
pagingType: "full_numbers",//分页样式的类型
});
},
// 匹配颜色高亮
keywordscolorful:function(str, key){
var reg = new RegExp("(" + key + ")", "g");
var newstr = str.replace(reg, "$1");
return newstr;
},
}
return Common;
})();
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1, //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}