function loading(msg, jq) {
var _1cb = jq || $(document.body);
if (!_1cb.children("div.datagrid-mask").length) {
$("<div class=\"datagrid-mask\" style=\"display:block;z-index:9999999\"></div>").appendTo(_1cb);
var msg = $("<div class=\"datagrid-mask-msg\" style=\"display:block;left:50%;z-index:99999999\"></div>").html(msg || "正在处理...").appendTo(_1cb);
msg._outerHeight(40);
msg.css({ marginLeft: (-msg.outerWidth() / 2), lineHeight: (msg.height() + "px") });
return msg;
} else {
return _1cb.children("div.datagrid-mask-msg");
}
}
function loaded(jq) {
var _1cc = jq || $(document.body);
_1cc.children("div.datagrid-mask-msg").remove();
_1cc.children("div.datagrid-mask").remove();
}
function dateFtt(fmt, date) {
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
if ($.fn.datagrid) {
$.extend($.fn.datagrid.methods, {
currentRowIndex: function (jq, obj) {
return $(obj).closest("tr.datagrid-row")[0].rowIndex;
},
currentRowData: function (jq, obj) {
var index = $(obj).closest("tr.datagrid-row")[0].rowIndex;
return jq.datagrid("getRows")[index];
},
changeEditor: function (jq, p) {
return jq.each(function () {
var dg = $(this);
var index = p.index;
if (typeof (index) != "number") {
index = $(index).closest("tr.datagrid-row")[0].rowIndex;
}
var editor = dg.datagrid('getEditor', { index: index, field: p.field });
var diveitor = $(editor.target).closest("div.datagrid-cell");
var editortd = $(editor.target).parent();
var opts = dg.datagrid("options");
var _15d, _15e;
if (typeof p.editor == "string") {
_15d = p.editor;
} else {
_15d = p.editor.type;
_15e = p.editor.options;
}
editortd.empty();
var _15f = opts.editors[_15d];
$.data(diveitor[0], "datagrid.editor", { actions: _15f, target: _15f.init(editortd, _15e), field: p.field, type: _15d, oldHtml: editor.oldHtml });
var row = opts.finder.getRow(dg[0], index);
var ed = $.data(diveitor[0], "datagrid.editor");
var initvalue = row[p.field] || (_15e && _15e.value);
if (initvalue == undefined || initvalue == null)
initvalue = "";
ed.actions.setValue(ed.target, initvalue);
ed.actions.resize(ed.target, diveitor.width());
});
},
getEditorValue: function (jq, p) {
var dg = jq;
var index = p;
if (typeof (index) != "number") {
index = $(index).closest("tr.datagrid-row")[0].rowIndex;
}
var opts = dg.datagrid("options");
var tr = opts.finder.getTr(dg[0], index);
var row = opts.finder.getRow(dg[0], index);
var _14d = $.extend({}, row);
tr.find("div.datagrid-editable").each(function () {
var _14e = $(this).parent().attr("field");
var ed = $.data(this, "datagrid.editor");
var t = $(ed.target);
var _14f = t.data("textbox") ? t.textbox("textbox") : t;
_14f.triggerHandler("blur");
var _150 = ed.actions.getValue(ed.target);
_14d[_14e] = _150;
});
return _14d;
},
setEditorValue: function (jq, p) {
return jq.each(function () {
var dg = $(this);
var index = p.index;
if (typeof (index) != "number") {
index = $(index).closest("tr.datagrid-row")[0].rowIndex;
}
var opts = dg.datagrid("options");
var tr = opts.finder.getTr(dg[0], index);
var row = opts.finder.getRow(dg[0], index);
var value = p.value || {};
var _14d = $.extend({}, row);
tr.find("div.datagrid-editable").each(function () {
var _14e = $(this).parent().attr("field");
if (value[_14e] !== undefined) {
var ed = $.data(this, "datagrid.editor");
var t = $(ed.target);
ed.actions.setValue(ed.target, value[_14e]);
}
});
});
},
getEditorText: function (jq, p) {
var dg = jq;
var index = p;
if (typeof (index) != "number") {
index = $(index).closest("tr.datagrid-row")[0].rowIndex;
}
var opts = dg.datagrid("options");
var tr = opts.finder.getTr(dg[0], index);
var row = opts.finder.getRow(dg[0], index);
var _14d = $.extend({}, row);
tr.find("div.datagrid-editable").each(function () {
var _14e = $(this).parent().attr("field");
var ed = $.data(this, "datagrid.editor");
var t = $(ed.target);
var _14f = t.data("textbox") ? t.textbox("textbox") : t;
//_14f.triggerHandler("blur");
var _150 = _14f.val();
_14d[_14e] = _150;
});
return _14d;
}
});
}
if ($.fn.validatebox) {
$.extend($.fn.validatebox.defaults.rules, {
dgltfield: {
validator: function (value, param) {
var field = param[0], dg = param[1];
var row = $(dg).datagrid("getEditorText", this);
var othervalue = row[field] || "";
param[2] = $(dg).datagrid("getColumnOption", field).title;
return value<othervalue;
},
message: '值必须小于{2}值'
},
dggtfield: {
validator: function (value, param) {
var field = param[0], dg = param[1];
var row = $(dg).datagrid("getEditorText", this);
var othervalue = row[field] || "";
param[2] = $(dg).datagrid("getColumnOption", field).title;
return value > othervalue;
},
message: '值必须大于{2}值'
}
});
}
if ($.fn.combobox) {
$.extend($.fn.combobox.methods, {
getSelectedItem: function (jq) {
var opts = jq.combobox("options");
var panel = jq.combobox("panel");
var ret = [];
panel.find(".combobox-item-selected").each(function () {
var row = opts.finder.getRow(jq[0], $(this));
ret.push(row);
});
return opts.multiple ? ret : ret[0];
},
getSelectedItem_Ensure: function (jq) {
var item = jq.combobox("getSelectedItem");
var text = jq.combobox("getText");
var opts = jq.combobox("options");
var textf = opts.textField;
if (opts.multiple)
return item;
if (!item)
return item;
if (item[textf] != text)
return null;
return item;
}
});
}
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
if ($.fn.combotree) {
$.extend($.fn.combotree.defaults.keyHandler, {
query: function (q) {
var t = $(this).combotree('tree');
var nodes = t.tree('getChildren');
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
if (node.text.toLowerCase().indexOf(q.toLowerCase()) >= 0) {
$(node.target).parents().show();
$(node.target).show();
} else {
$(node.target).hide();
}
}
var opts = $(this).combotree('options');
if (!opts.hasSetEvents) {
opts.hasSetEvents = true;
var onShowPanel = opts.onShowPanel;
opts.onShowPanel = function () {
var nodes = t.tree('getChildren');
for (var i = 0; i < nodes.length; i++) {
$(nodes[i].target).show();
}
onShowPanel.call(this);
};
$(this).combo('options').onShowPanel = opts.onShowPanel;
}
}
});
$.extend($.fn.combotree.defaults, {
onShowPanel: function () {
var _c = $(this).combo("panel");
var _d = _c.find(".tree-node-selected");
if (_d.length) {
if (_d.position().top <= 0) {
var h = _c.scrollTop() + _d.position().top;
_c.scrollTop(h);
} else {
if (_d.position().top + _d.outerHeight() > _c.height()) {
var h = _c.scrollTop() + _d.position().top + _d.outerHeight() - _c.height();
_c.scrollTop(h);
}
}
}
}
});
$.extend($.fn.combotree.methods, {
getSelectedItem: function (jq) {
var tree = jq.combotree("tree");
var opts = jq.combotree("options");
var panel = jq.combotree("panel");
var ret = [];
panel.find(".tree-node-selected").each(function () {
var row = tree.tree("getNode", this);
ret.push(row);
});
return opts.multiple ? ret : ret[0];
},
getSelectedItem_Ensure: function (jq) {
var item = jq.combotree("getSelectedItem");
var text = jq.combotree("getText");
var opts = jq.combotree("options");
if (opts.multiple)
return item;
if (!item)
return item;
if (item.text != text)
return null;
return item;
}
});
}
if ($.fn.datebox) {
$.fn.datebox.defaults.formatter = function (dt) {
var y = dt.getFullYear();
var m = dt.getMonth() + 1;
var d = dt.getDate();
var opts = null;
try {
opts = $(this).datebox("options");
}
catch (e) { opts = {}; }
if (opts.yearmoth)
return y + '-' + (m < 10 ? '0' + m : m);
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d);
}
$.fn.datebox.defaults.parser = function (s) {
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0], 10);
var m = parseInt(ss[1], 10);
var d = parseInt(ss[2], 10);
d = d || 1;
if (!isNaN(y) && !isNaN(m) && !isNaN(d)) {
return new Date(y, m - 1, d);
} else {
return new Date();
}
}
//支持月份
$.fn.datebox.defaults.onShowPanel = function () {
var opts = null, self = $(this);
try {
opts = $(this).datebox("options");
}
catch (e) { opts = {}; }
if (opts.yearmoth) {
var p = $(this).datebox('panel');
var span = p.find('span.calendar-text');
span.trigger('click');
if (!self.data("initedyearmoth")) {
self.data("initedyearmoth", true);
setTimeout(function () {
var tds = p.find('div.calendar-menu-month-inner td');
tds.click(function (e) {
e.stopPropagation();
var year = /\d{4}/.exec(span.html())[0]
, month = parseInt($(this).attr('abbr'), 10);
self.datebox('hidePanel').datebox('setValue', year + '-' + (month < 10 ? '0' + month : month));
});
}, 10);
}
}
}
$.fn.datebox.defaults.editable = false;
$.fn.datebox.defaults.icons = [{
iconCls: 'icon-clear',
handler: function (e) {
$(e.data.target).datebox('clear');
}
}];
}