Files
Your Name dce091da91 t
2025-03-27 07:52:44 +00:00

314 lines
9.4 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//系统工具[不含业务]
var Tools = {
/**
* 获取选中的值
* @param isArray 返回 array | string
* @returns {any}
*/
getCheckedBoxListVal: function (obj, isArray) {
var ids = '';
$(obj?obj:'.list-check-box').each(function(a, b){
if($(b).is(":checked")){
if(ids == ''){
ids += ''+$(b).val();
}else{
ids += ','+$(b).val();
}
}
});
return true===isArray?ids.split(','):ids;
},
/**
* 弹出带计算规则的验证码对话框
* @param callBack
*/
showValidatePrompt: function (callBack) {
var start_num = Math.floor(Math.random() * 10);
var end_num = Math.floor(Math.random() * 10);
layer.prompt({
title: start_num+'*'+end_num+'= 请输入计算结果。',
formType: 0, //输入框类型支持0文本默认1密码2多行文本
value: '', //初始时的值,默认空字符
maxlength: 10, //可输入文本的最大长度默认500
}, function (value, index, elem) {
if(start_num*end_num != 1*value){
return layer.alert('输入错误');
}
if(typeof callBack == 'function'){
callBack();
}
layer.close(index);
});
},
/**
* 常规请求
* @param url
* @param data
* @param callBack
*/
request: function (url, data, callBack) {
$.post(url, data, function (res) {
if(typeof callBack == 'function'){
return callBack(res);
}
if(res.code == 1){
return $.msg.error(res.msg);
}
$.msg.success(res.msg);
return $.form.reload();
}, 'json');
},
/**
* 验证身份证
* @param card
* @returns {boolean}
*/
isCardNo : function(card) {
var pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return pattern.test(card);
},
/**
* 验证手机
* @param mobile
* @returns {*|boolean}
*/
isMobile:function(mobile){
var mobreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
return mobreg.test(mobile)
},
/**
* 回车键按下确认
*/
enterKeydown: function(ele){
if (event.keyCode == 13){
$(ele).submit();
}
},
/**
* 自写验证邮箱
* @param p
* @returns {*|boolean}
*/
isEmail:function (p) {
return /^([A-Z|a-z|0-9|\D]*)@([a-z|A-Z|0-9]*).[a-z|A-Z]*$/.test(p);
},
/**
* 检查是否是字母或(和)数字
* @param p
* @param type 为 true 则包含特殊字符 否则不包含
* @returns {*|boolean}
*/
isTxtNum:function (p, type) {
return type?/^[A-Z|a-z|0-9]|[.~@#%&_-]+$/.test(p):/^([A-Z|a-z|0-9])+$/.test(p);
},
isNum:function (p) {
return /^\d+$/.test(p);
},
//提示
tips:function (msg, ele) {
layer.tips(msg, ele);
$(ele).css({'border':'1px solid red'});
},
//失去焦点提示
blur:function (o, ele) {
$(o).bind('blur',function () {
//元素警告样式
if($(ele).val()!='')$(ele).css({'border':0});
else {
wh.tips('这里必须哦', ele);
$(ele).css({'border':'1px solid red'});
}
});
},
/**
* 将key=val;key1=val1 或 key=val&key1=val1格式的字符串转换为二维数组
**/
strToArray : function(uri, str){
if(!str)str = ';';//拆分符号
var spl_arr = uri.split(str);
var res_arr = [];//存储结果
for(var i=0; i<spl_arr.length; i++){
var tmparr = spl_arr[i].split('=');
res_arr[i] = tmparr;
}
return res_arr;
},
/**
* 设置cookie
**/
setCookie : function(key, val){
document.cookie = key+'='+encodeURIComponent(val);
return true;
},
/**
* 获取cookie[仅返回有效数据]
**/
getCookie : function(key){
//假设存储格式是key=val;key1=val1
var cook_arr = document.cookie.split(';');
//验证一下,没有值就返回false不进入下一个流程
if(!cook_arr)return false;
var res_arr = [];//存储解析结果
for(var i=0; i<cook_arr.length; i++){
//这里要再解析一次
var arr = cook_arr[i].split('=');
//这里表示满足key=val格式
if(arr && arr.length==2)res_arr.push ([arr[0].trim(),decodeURIComponent(arr[1].trim())]);//存储
}
if(key){
for(var j=0; j<res_arr.length; j++){
if(key == res_arr[j][0])return res_arr[j][1];//返回正确val
}
}else{
return res_arr;//key不存在就返回所有有时候还是想看看所有的值
}
//默认返回false 表示没有取到值
return false;
},
/**
* [公共]表单验证
* @param form
* @returns {boolean}
*/
formValidate:function (form) {
var r = true;
$(form).find('*').each(function (k, o) {
var ele_val = $(o).val();
var attr = $(o).attr('data-validate');
if(attr){
$(o).addClass('tips_'+k);//临时class
var ele = '.tips_'+k;
if(attr == 'require'){
if(ele_val == ''){
wh.tips('这里必须哦', ele);//根据临时class处理后续css逻辑
wh.blur(o, ele);
r = false;//指定返回结果
return false;//退出循环
}
}else if(attr == 'mobile'){
if(false === wh.isMobile(ele_val)){
wh.tips('这里是手机号哦', ele);
wh.blur(o, ele);
r = false;//指定返回结果
return false;
}
}else if(attr == 'number'){
if(false === /^\d*$/.test(ele_val)){
wh.tips('这里是数字哦', ele);
wh.blur(o, ele);
r = false;//指定返回结果
return false;
}
}else if(attr == 'birthday'){
//todo ...
}else if(attr == 'date'){
//验证日期格式
//todo...
}else if(attr == 'email'){
if(false === wh.isEmail(ele_val)){
wh.tips('这里是邮箱哦', ele);
wh.blur(o, ele);
r = false;//指定返回结果
return false;
}
}else if(attr == 'txtnum'){
//字母+数字
if(false === wh.isTxtNum(ele_val)){
wh.tips('这里是字母和(或)数字哦', ele);
wh.blur(o, ele);
r = false;//指定返回结果
return false;
}
}else if(attr == 'card'){
if(false === wh.isCardNo(ele_val)){
wh.tips('这里是身份证哦', ele);
wh.blur(o, ele);
r = false;//指定返回结果
return false;
}
}
}
});
return r;
},
/**
* 转换下载地址,把完整文件下载地址分割为前缀和文件名
* @param file_download_url eghttp://www.down.com/file/abc.mp4
* @returns {[string, string]} ['http://www.down.com/file/', 'abc.mp4']
*/
revertDownloadUrl: function (file_download_url) {
var last_index = file_download_url.lastIndexOf('/');
//前缀
var frefix = file_download_url.substr(0, last_index+1);
//资源文件名称
var file_name = file_download_url.substr(last_index+1);
return [frefix, file_name];
},
};
var Submit = {
is_debug: true,
is_layer_load: true,//显示加载层
//单表单
saveData: function(obj, fn){
var form = $(obj).parents('form');
if(form.length !== 1){
return Console.error('表单不存在');
}
var url = $(form).attr('action');
if(!url){
return Console.error('请求url不存在');
}
var data = $(form).serializeArray();
if(this.is_debug){
Console.info(data);
}
if(data.length === 0){
return Console.error('提交空数据');
}
var that = this;
//遮罩
if(that.is_layer_load){
var load_index = layer.load(1);
}
$.post(url, data, function (res) {
if(that.is_debug){
Console.info(res);
}
//取消遮罩
if(that.is_layer_load){
layer.close(load_index);
}
//处理
if(fn) fn(res);
}, 'json');
},
//多表单
//todoing
};
//控制台
var Console = {
error: function(msg){
return console.error(msg);
},
info: function (msg) {
return console.log(msg);
}
};