/**
|
* 常用工具和方法 本js依赖jQuery
|
*
|
* @author 姜友瑶
|
*/
|
|
var MTools = {
|
|
/**
|
* 用逗号分开的存的id是否包含对应的id
|
* 如比较 123,123,124 中是否包含12这个主键
|
* 比对的方法是 字符串中是否包含"^12$" "^12,.*" 或者 ".+,12$" 或者 ".+,12,$"或者 ".+,12,.+" 字符串
|
* */
|
isContainId: function (ids, id) {
|
var reg1 = new RegExp("^" + id + "$|^" + id + ",.*|.+," + id + "$|.+," + id + ",$|.+," + id + ",.+");
|
if (reg1.test(ids)) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
|
/**
|
* 对表格中单挑数据进行处理 请在url后添加参数 url: 远程地址 msg:提示信息 callbackfn:操作成功后回调函数
|
*/
|
handleItem: function (url, msg, callbackfn) {
|
layer.confirm(msg, function () {
|
$.AjaxProxy().invoke(url, function (loj) {
|
layer.msg(loj.getValue("info"), {icon: 1, time: 1000}, function () {
|
if (callbackfn) {
|
callbackfn();
|
}
|
});
|
|
});
|
});
|
},
|
|
/** 返回一个随机数 */
|
random: function () {
|
return Math.floor(Math.random() * (1000000000 + 1));
|
},
|
|
/** 返回一个随机字符串 */
|
randomStr: function () {
|
return 'pp' + Math.floor(Math.random() * (1000000000 + 1));
|
},
|
|
/** 页面定向 */
|
redirect: function (url) {
|
window.location.href = url;
|
},
|
|
/** 页面定向 无视iframe */
|
toPredirect: function (url) {
|
window.top.location.href = url;
|
},
|
|
/** 在页面删除一个节点 */
|
delThis: function (id) {
|
$('#' + id).remove();
|
},
|
|
/** 在页面删除一个节点,带上滑效果 */
|
delThisSlide: function (id) {
|
$('#' + id).slideUp("fast", function () {
|
$('#' + id).remove();
|
});
|
},
|
|
changeValidateCode: function (id) {
|
$("#" + id).attr("src",
|
basePath + "/common/validateImg?rand=" + this.random())
|
},
|
|
getTime:function() {
|
var date = new Date();
|
return date.getFullYear() + "-" + setFomartZero((date.getMonth() + 1))
|
+ "-" + setFomartZero(date.getDate()) + " " + setFomartZero(date.getHours())
|
+ ":" + setFomartZero(date.getMinutes());
|
|
},
|
chooesFile : function(fileText) {
|
$(fileText).trigger("click");
|
},
|
upFile : function(submitBtn) {
|
$(submitBtn).trigger("click");
|
},
|
selectFile : function(node,fileTextId,submitNode) {
|
var filePath = $(fileTextId).val()
|
var fileName = filePath.substring(filePath.lastIndexOf("\\") + 1,
|
filePath.length);
|
$(node).val(fileName);
|
$(submitNode).trigger("click");
|
},
|
|
/**
|
* 根据autoFull的css类自动填充select框里面的option selecteder :选择器名 value: 默认值为id file:
|
* 默认值name url: 请求路径 param:{type : ''} 对象 为查询条件属性 defaultValue: 默认值 by
|
* luoyuanhong 2016-7-13
|
*/
|
autoFullSelect: function (_initParam) {
|
|
var initParam = {
|
value: "id",// value默认值
|
filed: "name",// filed默认值
|
selecteder:".autoFull"
|
|
}
|
|
if(_initParam){
|
initParam=$.extend(initParam,_initParam)
|
}
|
|
|
$(initParam.selecteder)
|
.each(
|
function () {
|
var _this = $(this);
|
var def = _this.data("def");
|
console.log("autoFull");
|
var param = eval("(" + _this.data("param") + ")");
|
var value = _this.data("value") == null ? initParam.value
|
: _this.data("value");
|
var filed = _this.data("filed") == null ? initParam.filed
|
: _this.data("filed");
|
var url = _this.data("url");
|
// 增加一个排除不显示的 值得,参数是数组如 jsp的input属性data-hidden=1,2
|
eval("var hidden = [" + _this.data("hidden") + "]");
|
// 取服务器请求数据
|
$
|
.AjaxProxy({
|
p: param,
|
c: true
|
})
|
.invoke(
|
url,
|
function (loj) {
|
var html = '';
|
/* html += '<option value="'
|
+ ""
|
+ '">'
|
+ "全部"
|
+ "</option>";*/
|
a: for (var i = 0; i < loj
|
.getRowCount(); i++) {
|
b: for (var j = 0; j < hidden.length; j++) {
|
if (hidden[j]
|
&& hidden[j] == loj
|
.getString(
|
i,
|
value)) {
|
html += "";
|
continue a;
|
}
|
}
|
|
if (def) {
|
def = def + "";
|
var values = def.split(",");
|
var isSelect = false;
|
for (var k = 0; k < values.length; k++) {
|
if ((values[k] + "") == loj.getString(i, value)) {
|
html += '<option selected="selected" value="'
|
+ loj
|
.getString(
|
i,
|
value)
|
+ '">'
|
+ loj
|
.getString(
|
i,
|
filed)
|
+ "</option>";
|
isSelect = true;
|
}
|
}
|
|
if (!isSelect) {
|
html += '<option value="'
|
+ loj
|
.getString(
|
i,
|
value)
|
+ '">'
|
+ loj
|
.getString(
|
i,
|
filed)
|
+ "</option>";
|
}
|
|
} else {
|
html += '<option value="'
|
+ loj
|
.getString(
|
i,
|
value)
|
+ '">'
|
+ loj
|
.getString(
|
i,
|
filed)
|
+ "</option>";
|
}
|
|
}
|
_this.append(html);
|
if(initParam && initParam.callback){
|
initParam.callback();
|
}
|
});
|
});
|
},
|
/**
|
* 初始化时间控件方法
|
* @param _initParam:
|
*/
|
ininDatetimepicker: function (_initParam) {
|
var initParam = {
|
format: "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss"
|
maxView: 4, //日期时间选择器最高能展示的选择范围视图。
|
minView: "month", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour"
|
autoclose: true, //true,选择完是否自动关闭,如果不关闭,改为:false
|
minuteStep: 5, //此数值被当做步进值用于构建小时视图。对于每个 minuteStep 都会生成一组预设时间(分钟)用于选择
|
weekStart: 1, //一周从哪一天开始。0(星期日)到6(星期六)
|
timeSelecter: ".datetimepicker", //时间选择器的类名
|
state: "none", //none,不做限制,beforeToday:只能选择当前日期之前,aferToday:只能选择当前日期之后
|
listenBlur: false //由于validform当输入日期后还提示输入,因此 时间按控件当日期更改后,触发该类元素的blur事件,validfrom会验证
|
}
|
|
if (_initParam != null) {
|
//把传过来的参数覆盖默认参数
|
initParam = $.extend(initParam, _initParam);
|
}
|
if (initParam.state == "beforeToday") {
|
initParam = $.extend(initParam, {endDate: new Date()});
|
//日期只能选择当前日,及当前日之前的日期
|
|
} else if (initParam.state == "aferToday") {
|
//日期只能选择当前日,及当前日之后的日期
|
initParam = $.extend(initParam, {startDate: new Date()});
|
}
|
//可以选择任意日期
|
var dataObj = $(initParam.timeSelecter).datetimepicker(initParam);
|
|
if (initParam.listenBlur) {
|
dataObj.on('changeDate', function (e) {
|
$(initParam.timeSelecter).trigger("blur");
|
});
|
}
|
},
|
/**
|
* 结束时间不能小于开始时间
|
* beginTimeId:开始时间控件的id,注意要传#
|
* endTimeId:结束时间控件的id,注意要传#
|
*/
|
limitStartEndTime: function (_initParam) {
|
var initParam = {
|
beginTimeId: "#beginTime",
|
endTimeId: "#endTime"
|
}
|
if (_initParam != null) {
|
initParam = $.extend(initParam, _initParam);
|
}
|
$(initParam.endTimeId).datetimepicker('setStartDate', $(initParam.beginTimeId).val());
|
$(initParam.beginTimeId).datetimepicker('setEndDate', $(initParam.endTimeId).val());
|
|
//限制结束时间不能大于开始时间
|
$(initParam.beginTimeId).datetimepicker().on('changeDate', function (e) {
|
var currentTime = e.date;
|
$(initParam.endTimeId).datetimepicker('setStartDate', currentTime);
|
});
|
$(initParam.endTimeId).datetimepicker().on('changeDate', function (e) {
|
var currentTime = e.date;
|
$(initParam.beginTimeId).datetimepicker('setEndDate', currentTime);
|
});
|
},
|
|
/* 关闭弹出的窗口 */
|
closeForm: function () {
|
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
parent.layer.close(index);
|
},
|
|
padLeftZero: function (str) {
|
return ('00' + str).substr(str.length)
|
},
|
|
|
formatDate: function (date, fmt) {
|
var date=new Date(date);
|
if (/(y+)/.test(fmt)) {
|
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
|
}
|
let o = {
|
'M+': date.getMonth() + 1,
|
'd+': date.getDate(),
|
'h+': date.getHours(),
|
'm+': date.getMinutes(),
|
's+': date.getSeconds()
|
}
|
for (let k in o) {
|
if (new RegExp(`(${k})`).test(fmt)) {
|
let str = o[k] + ''
|
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : this.padLeftZero(str))
|
}
|
}
|
return fmt
|
},
|
|
|
|
}
|