var constant = function () {
//当前环境区分
//1: 本地环境
//2: 正式环境
//3: 测试环境
var environment = 1;
if(environment==2){
//正式环境
baseUrl = "/";
}else if(environment==3){
//测试环境
baseUrl = "/";
}else{
//本地环境
baseUrl = '/';
}
//三方(大数据
var that = this;
//jquery ajax函数
var jqAjax = function (opt) {
$.ajax({
type: opt.type,
url: opt.url,
cache: false,
dataType: opt.dataType || 'JSON',
contentType: opt.contentType || "application/json; charset=utf-8",
async: opt.async,
data: opt.data || '',
beforeSend: function (request) {
if (opt.beforeSend) {
opt.beforeSend(request);
}
return request.setRequestHeader('Authorization', util.getCash('token') || '');
//return request.setRequestHeader('Authorization', that.token || '');
},
success: function (result) {
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
opt.success(result);
},
error: function (err) {
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
if (JSON.parse(err.responseText).code == 401) {
layer.alert('登录信息超时', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
}else if(JSON.parse(err.responseText).code == 412){
layer.alert('没有访问该接口的权限', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
});
}else if(JSON.parse(err.responseText).code == 413){
layer.alert('不被支持的令牌', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
//constant.dialog.alertInfo("不被支持的令牌");
}else if(JSON.parse(err.responseText).code == 414){
layer.alert('令牌格式错误', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
// constant.dialog.alertInfo("令牌格式错误");
}else if(JSON.parse(err.responseText).code == 415){
layer.alert('令牌签名失败', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
}else if(JSON.parse(err.responseText).code == 416){
layer.alert('错误的参数', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
}else if(JSON.parse(err.responseText).code == 417){
layer.alert('没有接收到令牌', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
}else if(JSON.parse(err.responseText).code == 418){
layer.alert(JSON.parse(err.responseText).message+'!', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
});
//constant.dialog.alertInfo("没有接收到令牌");
}else if(JSON.parse(err.responseText).code == 444){
layer.alert('当前系统已关闭,请稍后再试!', {
skin: 'layui-layer-lan', //
closeBtn: 1,
anim: 1
}, function(){
window.location.href = constant.url.imges.LoginIndex;
});
}else{
opt.error(err);
}
}
});
};
var jqAjaxOption = function (type, arg) {
if(typeof(App)!='undefined'){
App.startPageLoading({animate: true});
}
var opt = {};
if (!arg.url || !type) {
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
return;
}
try{
if (typeof arg.url == "string") {
//按照字符串传输时单独组合
opt.url = arg.url;
opt.type = type;
opt.success = arg.sf;
opt.error = arg.ef;
opt.beforeSend = arg.bf;
if (arg.data) {
if (type.toUpperCase() == 'GET'|| !arg.restful) {
opt.contentType = "application/x-www-form-urlencoded";
opt.data = arg.data;
} else {
opt.data = JSON.stringify(arg.data);
}
}
} else {
opt.url = arg.url.url;
if (arg.url.async == undefined || arg.url.async == null) {
opt.async = true;
} else {
opt.async = arg.url.async;
}
opt.type = type;
opt.success = arg.url.success;
opt.error = arg.url.error;
opt.beforeSend = arg.url.beforeSend;
if (arg.url.data) {
if (type.toUpperCase() == 'GET' || !arg.restful) {
opt.contentType = "application/x-www-form-urlencoded";
opt.data = arg.url.data;
} else {
opt.data = JSON.stringify(arg.url.data);
}
}
}
}catch(ex){
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
console.error(ex);
}
jqAjax(opt);
};
return {
setToken: function (token) {
that.token = token;
},
url: {
sc_img: {
//imgUpdate: baseScImage + '/api/common/imgUpdate', //百度富文本 图片上传
// imgUpdate: baseScResources + '/api/v1/ueditorImageUpdate',
// ueditorConfig: baseScImage + '/api/common/ueditor',
// videoUpdate: baseScImage + '/api/common/videoUpdate', //百度富文本 视频上传
// imgSubmit: baseScImage + '/api/common/imgSubmit', //图片上传
// imgDelete: baseScImage + '/api/common/imgDelete/', //图片删除
},
imges: {
// accountList: baseScAdmin + '/api/v1/sys/account/', //管理账户
LoginIndex: baseUrl +'rest/imges/imgesHomeController',
login: baseUrl +'rest/rbac/loginController/login'
},
nmmine: {
// accountList: baseScAdmin + '/api/v1/sys/account/', //管理账户
LoginIndex: baseUrl +'rest/nmmine/nmmineHomeController',
login: baseUrl +'rest/rbac/loginController/login'
}
},
ajax: {
post: function (url, data, sf, ef, bf) {
jqAjaxOption('post', {url: url, data: data, sf: sf, ef: ef, bf: bf,restful:true});
},
postAjax:function(url,data,sf,ef,bf){
jqAjaxOption('post',{url:url,data:data,sf:sf,ef:ef,bf:bf,restful:false});
},
get: function (url, data, sf, ef, bf) {
jqAjaxOption('get', {url: url, data: data, sf: sf, ef: ef, bf: bf,restful:false});
},
getAjax:function(url, data, sf, ef, bf){
//为了和postAjax对照,逻辑同ajax.get
jqAjaxOption('get', {url: url, data: data, sf: sf, ef: ef, bf: bf,restful:false});
},
put: function (url, data, sf, ef, bf) {
jqAjaxOption('put', {url: url, data: data, sf: sf, ef: ef, bf: bf,restful:true});
},
del: function (url, data, sf, ef, bf) {
jqAjaxOption('delete', {url: url, data: data, sf: sf, ef: ef, bf: bf,restful:true});
},
upload: function (url,data, sf, ef, bf,async) {
//上传图片和视频
if(typeof(App)!='undefined'){
App.startPageLoading({animate: true});
}
if(async==null||async==undefined){
async = false;
}
$.ajax({
type: "POST",
url: url,
enctype: "multipart/form-data",
contentType: false,
processData: false,
beforeSend: function (request) {
return request.setRequestHeader('Authorization', util.getCash('token') || '');
},
cache: false,
async: async,
data: data,
success: function (result) {
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
sf(result);
},
error: function (err) {
if(typeof(App)!='undefined'){
App.stopPageLoading();
}
ef(err);
}
});
}
},
datatables: {
// DataTables初始化选项
default_option: {
language: {
"sProcessing": "处理中...",
"sLengthMenu": "每页 _MENU_ 项",
"sZeroRecords": "没有匹配结果",
"sInfo": "当前显示第 _START_ 至 _END_ 项,共 _TOTAL_ 项。",
"sInfoEmpty": "当前显示第 0 至 0 项,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "系统暂未收录相关信息",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页",
"sJump": "跳转"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
autoWidth: false, // 禁用自动调整列宽
order: [], // 取消默认排序查询
lengthChange: false,
renderer: "bootstrap",
pageLength: 10,//每页显示多少条数据
sort: false,//不排序
pagingType: "full_numbers", // 分页样式:simple,simple_numbers,full,full_numbers
processing: false, // 隐藏加载提示,自行处理
serverSide: true, // 启用服务器端分页
searching: false,// 禁用原生搜索
destroy:true//Cannot reinitialise DateTable,解决重新加载表格内容问题
},
columns: {
checkbox: { // 复选框单元格
className: "td-checkbox",
orderable: false,
width: "30px",
data: null,
render: function (data, type, row, meta) {
return '';
}
},
radio: {
className: "td-radio",
orderable: false,
width: "30px",
data: null,
render: function (data, type, row, meta) {
return '';
}
}
},
render: {
//文本显示不开专用渲染函数,挤压部分显示...
ellipsis: function (data, type, row, meta) {
data = data || "";
return '' + data + '';
}
}
},
dialog: {
/*
功能:错误提示
参数:
- title:提示的标题(选填)
- mag:提示的内容(选填)
*/
alertError: function (title, msg) {
var thisTitle = title || '出错了,请稍后尝试';
var thisMsg = msg || '';
swal(thisTitle, thisMsg, 'error');
},
/*
功能:警告提示
参数:
- title:提示的标题(必填)
*/
alertInfo: function (title, msg) {
var thisTitle = title || '';
var thisMsg = msg || '';
swal(title, msg, 'warning');
},
/*
功能:成功提示
参数:
- title:提示的标题(选填)
*/
alertSuccess: function (title, msg) {
var thisTitle = title || '操作成功';
var thisMsg = msg || '';
swal(title, msg, 'success');
},
/*
功能:确认提示(有回调函数)
参数:
- title:提示框标题(必填)
- fn:确认按钮点击回调(必填)
*/
alertConfirm: function (title, fn) {
swal({
'title': title, //标题
'text': '', //标题
'type': 'question', //alert类型
'showCancelButton': true, //如果设置为true,“取消”按钮将会显示,用户可以点击取消按钮关闭弹窗。
'confirmButtonColor': '#3085d6', //使用该参数来修改“确认”按钮的背景颜色(必须是十六进制值)。
'cancelButtonColor': '#d33', //使用该参数来修改“确认”按钮的显示文本。
'confirmButtonText': '确定', //使用该参数来修改“确认”按钮的显示文本。
'cancelButtonText': '取消', //使用该参数来修改“取消”按钮的显示文本。
'confirmButtonClass': 'btn-confirm btn btn-success', //可以为“确认”按钮设置自定义类
'cancelButtonClass': 'btn btn-danger', //可以为“取消”按钮设置自定义类
'buttonsStyling': false, //默认按钮样式使用swal2的样式,如果你想要使用自己的CSS类(例如Bootstrap类),将该参数设置为false。
'allowOutsideClick': false,
'preConfirm': fn
});
}
},
func: {
//常用函数
replaceTags: function (content) {
content = content || '';
content = content.replace(/<\/?.+?>/g, "");
return content.replace(/ /g, "");
},
onImgError: function(url){
var img = event.srcElement;
img.src = url;
img.onerror = null;
}
},
// parenturl:'http://'+document.domain+':8081'
parenturl:'http://'+document.location.host
};
}();
var util = function () {
return {
isNull: function (obj) {
return obj == undefined || !obj;
},
isString: function (obj) {
return typeof obj == 'string';
},
isEmpty: function (obj) {
if (typeof obj == "undefined" || obj == null || obj == "" || $.trim(obj) == "") {
return true;
} else {
return false;
}
},
fromJson: function (json) {
return JSON.stringify(json);
},
trim: function (str) {
if (!str)
return str;
return str.replace(/(^\s*)|(\s*$)/g, '');
},
setCash: function (name, value) {
if (util.isNull(value))
return;
if (!util.isString(value))
value = util.fromJson(value);
value = util.trim(value);
localStorage.setItem(name, value);
},
getCash: function (name) {
var value = localStorage.getItem(name);
if (util.isNull(value))
return null;
if (value.length > 1
&& (value[0] == '{' || value[0] == '[')
&& (value[value.length - 1] == '}' || value[value.length - 1] == ']'))
value = JSON.parse(value);
return value;
},
removeCash: function (name) {
localStorage.removeItem(name);
},
//时间如果为单位数补0
fixZero: function (num, length) {
var str = "" + num;
var len = str.length;
var s = "";
for (var i = length; i-- > len;) {
s += "0";
}
return s + str;
},
formatDate: function (now) {
var now = new Date(now);
var year = now.getFullYear();
var month = now.getMonth() + 1;
var date = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
return year + "年" + fixZero(month, 2) + "月" + fixZero(date, 2) + "日" + fixZero(hour, 2) + ":" + fixZero(minute, 2) + ":" + fixZero(second, 2);
},
isCardId: function (code) {
var city = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门",
91: "国外"
};
var tip = "";
var pass = true;
if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
tip = "身份证号格式错误";
pass = false;
}
else if (!city[code.substr(0, 2)]) {
tip = "地址编码错误";
pass = false;
}
else {
//18位身份证需要验证最后一位校验位
if (code.length == 18) {
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++) {
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
var last = parity[sum % 11];
if (parity[sum % 11] != code[17]) {
tip = "校验位错误";
pass = false;
}
}
}
// if (!pass) alert(tip);
return pass;
},
isMobile: function (phonenum) {
if (!(/^1(3|4|5|7|8)\d{9}$/.test(phonenum))) {
return false;
} else {
return true;
}
},
isFixMobile: function (fixnum) {
if (!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(fixnum)) {
return false;
}
},
isMail: function (mail) {
var myReg = /^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/;
var tip = '';
if (myReg.test(mail)) {
return true;
} else {
tip = "邮箱格式不对!";
return false;
}
},
isAccount: function (username) {
var re = /^[a-zA-z]\w{3,15}$/;
if (re.test(str)) {
return true;
} else {
return false;
}
},
GetUrlParam: function (paraName) {
var url = document.location.toString();
var arrObj = url.split("?");
if (arrObj.length > 1) {
var arrPara = arrObj[1].split("&");
var arr;
for (var i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split("=");
if (arr != null && arr[0] == paraName) {
return arr[1];
}
}
return "";
}
else {
return "";
}
}
}
}();
//数据字典
// var dic = function () {
// var dics;
//
// $.ajax({
// async: false,
// type: "get",
// url: constant.url.sc_admin.dic,
// dataType: 'JSON',
// contentType: "application/json; charset=utf-8",
// success: function (result) {
// if (result.code == "200") {
// dics = (result.data.list);
// }
// }
// });
//
// return {
// getByTypeId: function (groupId) {
// var dictypes;
// dictypes = dics.filter(function (item) {
// return item.type == groupId;
// });
// return dictypes;
// },
// getByDictId: function (groupId, dictId) {
// var dictypeids;
// dictypeids = dics.filter(function (item) {
// return (item.type == groupId) && (item.name == dictId);
// });
// return dictypeids[0];
// },
// getByDictValue: function (groupId, dictValue) {
// var dictypevalues;
// dictypevalues = dics.filter(function (item) {
// return (item.type == groupId) && (item.code == dictValue);
// });
// return dictypevalues[0];
// }
// }
// }();
//自定义 返回结果null-->''
var _selffn = function(){
var flashglg;
return {
jsonNullToString : function(obj){
if(obj){
if(JSON.stringify(obj).substr(0,1) =="{" && !obj.list){
for(attr in obj)if(!obj[attr])obj[attr]='';
return obj;
}else if(obj.length >=0 ){
if(obj.length > 0){
obj.forEach(function(data,i){
for(attr in data)if(!data[attr])data[attr]=''
});
}
return obj;
}else if(obj.list){
if(obj.list.length > 0){
obj.list.forEach(function(data,i){
for(attr in data)if(!data[attr])data[attr]=''
});
}
return obj;
}
}else{
return false;
}
},
jsonNullToStringOfList : function(obj){
if(obj && obj != true){
if(JSON.stringify(obj).substr(0,1) =="{" && !obj.list){
for(attr in obj)if(!obj[attr])obj[attr]='';
return [obj];
} else if (obj.length >=0 ) {
if (obj.length > 0) {
obj.forEach(function (data, i) {
for (attr in data) if (!data[attr]) data[attr] = '';
});
}
return obj;
} else if (obj.list) {
if (obj.list.length > 0) {
obj.list.forEach(function (data, i) {
for (attr in data) if (!data[attr]) data[attr] = '';
});
}
return obj.list;
}
}else{
return [];
}
},
jsonNullToZeroOfList : function(obj){
if(obj && obj != true){
if(JSON.stringify(obj).substr(0,1) =="{" && !obj.list){
for(attr in obj)if(!obj[attr])obj[attr]=0;
return [obj];
} else if (obj.length >=0 ) {
if (obj.length > 0) {
obj.forEach(function (data, i) {
for (attr in data) if (!data[attr]) data[attr] = 0;
});
}
return obj;
} else if (obj.list) {
if (obj.list.length > 0) {
obj.list.forEach(function (data, i) {
for (attr in data) if (!data[attr]) data[attr] = 0;
});
}
return obj.list;
}
}else{
return [];
}
},
setfalshcircle : function(flash){
flashglg = flash;
},
getfalshcircle : function(){
return flashglg;
}
}
}();
//表单验证
function form_validation(_this,type) {
var layer_val=$(_this).val();
var util_adopt;
if (type=='CardId'){
util_adopt=util.isCardId(layer_val)
tip='身份证号填写错误';
}else if (type=='Mobile'){
util_adopt=util.isMobile(layer_val);
tip = "手机号格式不正确";
}else if (type=='FixMobile'){
util_adopt=util.isFixMobile(layer_val);
tip = "电话号码格式不正确";
}else if (type=='Mail'){
util_adopt=util.isMail(layer_val);
tip = "邮箱格式错误";
}else if (type=='Account'){
util_adopt=util.isAccount(layer_val);
tip = "账户名格式错误";
}
if (util_adopt){
$(_this).removeAttr('lay-cont');
} else {
if (!util_adopt) layer.tips(tip,$(_this),{
tips:4,
tipsMore: true
});
$(_this).attr('lay-cont',-1);
}
return util_adopt;
}
//表单提交验证
function lay_submit(_this) {
var breakEach=true;
$(_this).parent().siblings().find('input.form_submits').each(function (i,ele) {
if ($(ele).val()==''){
$(ele).focus();
constant.dialog.alertInfo("请将信息填写完整!");
breakEach=false;
return breakEach;
}
})
if (breakEach){
$(_this).parent().siblings().find('input.form_submits').each(function (i,ele) {
if ($(ele).attr('lay-cont')==-1){
layer.msg('请输入正确的信息并提交',{},function() {
$(ele).focus();
});
breakEach=false;
return breakEach;
}
})
}
return breakEach;
}
function lay_submits(_this) {
var breakEach=true;
$(_this).parents('form').siblings('form').find('input.form_submits').each(function (i,ele) {
if ($(ele).val()==''){
$(ele).focus();
constant.dialog.alertInfo("请将信息填写完整!");
breakEach=false;
return breakEach;
}
})
if (breakEach) {
$(_this).parent().siblings().find('input.form_submits').each(function (i, ele) {
if ($(ele).val() == '') {
$(ele).focus();
constant.dialog.alertInfo("请将信息填写完整!");
breakEach = false;
return breakEach;
}
})
}
if (breakEach){
$(_this).parents('form').siblings('form').find('input.form_submits').each(function (i,ele) {
if ($(ele).attr('lay-cont')==-1){
layer.msg('请输入正确的信息并提交',{},function() {
$(ele).focus();
});
breakEach=false;
return breakEach;
}
})
}
if (breakEach){
$(_this).parent().siblings().find('input.form_submits').each(function (i,ele) {
if ($(ele).attr('lay-cont')==-1){
layer.msg('请输入正确的信息并提交',{},function() {
$(ele).focus();
});
breakEach=false;
return breakEach;
}
})
}
return breakEach;
}
//IE 不支持 filter 解决方案
if (!Array.prototype.filter){
Array.prototype.filter = function(fun){
if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function")
throw new TypeError();
var res = [];
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
for (var i = 0; i < len; i++){
if (i in t){
var val = t[i];
if (fun.call(thisArg, val, i, t))
res.push(val);
}
}
return res;
};
}
//IE 不支持 MAP 解决方案
if (!Array.prototype.map) {
Array.prototype.map = function(callback, thisArg) {
var T, A, k;
if (this == null) {
throw new TypeError(" this is null or not defined");
}
var O = Object(this);
var len = O.length >>> 0;
if (typeof callback !== "function") {
throw new TypeError(callback + " is not a function");
}
if (thisArg) {
T = thisArg;
}
A = new Array(len);
k = 0;
while(k < len) {
var kValue, mappedValue;
if (k in O) {
kValue = O[ k ];
mappedValue = callback.call(T, kValue, k, O);
A[ k ] = mappedValue;
}
k++;
}
return A;
};
}
layer.config({
extend: 'blue/style.css', //加载您的扩展样式
skin: 'layui-ext-blue'
});