|
|
|
|
//#region ajax初始化设置
|
|
|
|
|
function ajaxInit(WindowLoadModel) {
|
|
|
|
|
$.ajaxSetup({
|
|
|
|
|
type: "POST",
|
|
|
|
|
contentType: "application/json",
|
|
|
|
|
converters: { "* text": window.String, "text html": true, "text json": Sys.Serialization.JavaScriptSerializer.deserialize, "text xml": jQuery.parseXML },
|
|
|
|
|
dataType: "json",
|
|
|
|
|
data: "{}",
|
|
|
|
|
cache: false,
|
|
|
|
|
error: function (xhr, status) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 返回首页
|
|
|
|
|
function BackHome() {
|
|
|
|
|
var objwin = window.parent;
|
|
|
|
|
if (objwin == null) { window.location = '../Login.aspx'; }
|
|
|
|
|
else { objwin.location = '../Login.aspx'; }
|
|
|
|
|
}
|
|
|
|
|
function BackError() {
|
|
|
|
|
var objwin = window.parent;
|
|
|
|
|
if (objwin == null) { window.location = '../Error.aspx'; }
|
|
|
|
|
else { objwin.location = '../Error.aspx'; }
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region Table平均分配未分配的列
|
|
|
|
|
function TableAveColWidth(id) {
|
|
|
|
|
var cols = $("#" + id).find("col");
|
|
|
|
|
var width = parseInt($("#" + id).width());
|
|
|
|
|
var width2 = 0;
|
|
|
|
|
var i = 0;
|
|
|
|
|
$(cols).each(function () {
|
|
|
|
|
var aa = $(this).attr("width");
|
|
|
|
|
if (aa == "" || aa=="0px") {
|
|
|
|
|
i++;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
width2 += parseInt(aa.substr(0, aa.length - 2));
|
|
|
|
|
});
|
|
|
|
|
var colWidth = (width - width2) / i;
|
|
|
|
|
$(cols).each(function () {
|
|
|
|
|
var aa = $(this).attr("width");
|
|
|
|
|
if (aa == "" || aa=="0px") {
|
|
|
|
|
$(this).css("width", colWidth + "px");
|
|
|
|
|
}else{
|
|
|
|
|
$(this).css("width", aa);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 换行
|
|
|
|
|
function ReplaceNewLine(value) {
|
|
|
|
|
if (value == undefined || value == null) return value;
|
|
|
|
|
if (typeof (value) != "string") return value;
|
|
|
|
|
return value.replace(/\r\n/g, "<br>").replace(/\n/g, "<br>");
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region Base64
|
|
|
|
|
var Base64 = {
|
|
|
|
|
|
|
|
|
|
// private property
|
|
|
|
|
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
|
|
|
|
|
// public method for encoding
|
|
|
|
|
encode: function (input) {
|
|
|
|
|
var output = "";
|
|
|
|
|
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
|
|
|
|
|
var i = 0;
|
|
|
|
|
|
|
|
|
|
input = Base64._utf8_encode(input);
|
|
|
|
|
|
|
|
|
|
while (i < input.length) {
|
|
|
|
|
|
|
|
|
|
chr1 = input.charCodeAt(i++);
|
|
|
|
|
chr2 = input.charCodeAt(i++);
|
|
|
|
|
chr3 = input.charCodeAt(i++);
|
|
|
|
|
|
|
|
|
|
enc1 = chr1 >> 2;
|
|
|
|
|
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
|
|
|
|
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
|
|
|
|
enc4 = chr3 & 63;
|
|
|
|
|
|
|
|
|
|
if (isNaN(chr2)) {
|
|
|
|
|
enc3 = enc4 = 64;
|
|
|
|
|
} else if (isNaN(chr3)) {
|
|
|
|
|
enc4 = 64;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return output;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// public method for decoding
|
|
|
|
|
decode: function (input) {
|
|
|
|
|
var output = "";
|
|
|
|
|
var chr1, chr2, chr3;
|
|
|
|
|
var enc1, enc2, enc3, enc4;
|
|
|
|
|
var i = 0;
|
|
|
|
|
|
|
|
|
|
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
|
|
|
|
|
|
|
|
|
while (i < input.length) {
|
|
|
|
|
|
|
|
|
|
enc1 = this._keyStr.indexOf(input.charAt(i++));
|
|
|
|
|
enc2 = this._keyStr.indexOf(input.charAt(i++));
|
|
|
|
|
enc3 = this._keyStr.indexOf(input.charAt(i++));
|
|
|
|
|
enc4 = this._keyStr.indexOf(input.charAt(i++));
|
|
|
|
|
|
|
|
|
|
chr1 = (enc1 << 2) | (enc2 >> 4);
|
|
|
|
|
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
|
|
|
|
chr3 = ((enc3 & 3) << 6) | enc4;
|
|
|
|
|
|
|
|
|
|
output = output + String.fromCharCode(chr1);
|
|
|
|
|
|
|
|
|
|
if (enc3 != 64) {
|
|
|
|
|
output = output + String.fromCharCode(chr2);
|
|
|
|
|
}
|
|
|
|
|
if (enc4 != 64) {
|
|
|
|
|
output = output + String.fromCharCode(chr3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output = Base64._utf8_decode(output);
|
|
|
|
|
|
|
|
|
|
return output;
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// private method for UTF-8 encoding
|
|
|
|
|
_utf8_encode: function (string) {
|
|
|
|
|
string = string.replace(/\r\n/g, "\n");
|
|
|
|
|
var utftext = "";
|
|
|
|
|
|
|
|
|
|
for (var n = 0; n < string.length; n++) {
|
|
|
|
|
|
|
|
|
|
var c = string.charCodeAt(n);
|
|
|
|
|
|
|
|
|
|
if (c < 128) {
|
|
|
|
|
utftext += String.fromCharCode(c);
|
|
|
|
|
} else if ((c > 127) && (c < 2048)) {
|
|
|
|
|
utftext += String.fromCharCode((c >> 6) | 192);
|
|
|
|
|
utftext += String.fromCharCode((c & 63) | 128);
|
|
|
|
|
} else {
|
|
|
|
|
utftext += String.fromCharCode((c >> 12) | 224);
|
|
|
|
|
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
|
|
|
|
utftext += String.fromCharCode((c & 63) | 128);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return utftext;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// private method for UTF-8 decoding
|
|
|
|
|
_utf8_decode: function (utftext) {
|
|
|
|
|
var string = "";
|
|
|
|
|
var i = 0;
|
|
|
|
|
var c = c1 = c2 = 0;
|
|
|
|
|
|
|
|
|
|
while (i < utftext.length) {
|
|
|
|
|
|
|
|
|
|
c = utftext.charCodeAt(i);
|
|
|
|
|
|
|
|
|
|
if (c < 128) {
|
|
|
|
|
string += String.fromCharCode(c);
|
|
|
|
|
i++;
|
|
|
|
|
} else if ((c > 191) && (c < 224)) {
|
|
|
|
|
c2 = utftext.charCodeAt(i + 1);
|
|
|
|
|
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
|
|
|
|
|
i += 2;
|
|
|
|
|
} else {
|
|
|
|
|
c2 = utftext.charCodeAt(i + 1);
|
|
|
|
|
c3 = utftext.charCodeAt(i + 2);
|
|
|
|
|
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
|
|
|
|
|
i += 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return string;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 替换网址
|
|
|
|
|
function replaceAll(s, s2) {
|
|
|
|
|
var url = "http://" + $.url.attr("host");
|
|
|
|
|
var port = $.url.attr("port");
|
|
|
|
|
if (port != "80") url += ":" + port;
|
|
|
|
|
return s.replace(new RegExp(url, "gm"), s2);
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 读取星期1-7
|
|
|
|
|
function GetDateWeek(InDate) {
|
|
|
|
|
var week = InDate.getDay();
|
|
|
|
|
if (week == 0) week = 7;
|
|
|
|
|
return week;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
//#region 验证日期
|
|
|
|
|
function JqueryIsData(value) {
|
|
|
|
|
if (value == "") return true;
|
|
|
|
|
var a = Date.parseInvariant(value, "yyyy-MM-dd");
|
|
|
|
|
if (a == null) { return false; }
|
|
|
|
|
if (a.getFullYear() < 1900) { return false; }
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 验证邮箱地址
|
|
|
|
|
function JqueryIsEmail(value) {
|
|
|
|
|
if (value == "") return true;
|
|
|
|
|
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
|
|
|
|
|
if (!myreg.test(value)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 验证身份证
|
|
|
|
|
function JqueryIsIdentityCard(value) {
|
|
|
|
|
if (value == "") return true;
|
|
|
|
|
var myreg = /^\d{18}$|^\d{15}$|\d{17}(\d|X|x)$/;
|
|
|
|
|
if (!myreg.test(value)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 验证邮政编码
|
|
|
|
|
function JqueryIsPostalcode(value) {
|
|
|
|
|
if (value == "") return true;
|
|
|
|
|
var myreg = /^\d{6}$/;
|
|
|
|
|
if (!myreg.test(value)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 验证电话号码或手机
|
|
|
|
|
function JqueryIsPhone(value) {
|
|
|
|
|
if (value == "") return true;
|
|
|
|
|
var myreg = /^\d{11}$|\d{8}$|0\d{2,3}-?\d{8}$/;
|
|
|
|
|
if (!myreg.test(value)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 检测文件是否是图片类型
|
|
|
|
|
function IsImage(filename) {
|
|
|
|
|
var extStart = filename.lastIndexOf(".") + 1;
|
|
|
|
|
var ext = filename.substring(extStart, filename.length).toUpperCase();
|
|
|
|
|
if (ext != "BMP" && ext != "PNG" && ext != "GIF" && ext != "JPG" && ext != "JPEG") {
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 检测文件是否是Excel
|
|
|
|
|
function IsExcel(filename) {
|
|
|
|
|
var extStart = filename.lastIndexOf(".") + 1;
|
|
|
|
|
var ext = filename.substring(extStart, filename.length).toUpperCase();
|
|
|
|
|
if (ext != "XLS" && ext != "XLSX") {
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 检测文件是否是Word
|
|
|
|
|
function IsWord(filename) {
|
|
|
|
|
var extStart = filename.lastIndexOf(".") + 1;
|
|
|
|
|
var ext = filename.substring(extStart, filename.length).toUpperCase();
|
|
|
|
|
if (ext != "DOC" && ext != "DOCX") {
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 检测文件是否是CSV
|
|
|
|
|
function IsCSV(filename) {
|
|
|
|
|
var extStart = filename.lastIndexOf(".") + 1;
|
|
|
|
|
var ext = filename.substring(extStart, filename.length).toUpperCase();
|
|
|
|
|
if (ext != "CSV") {
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 格式化数字
|
|
|
|
|
function FormatNumber(value, num) {
|
|
|
|
|
return parseFloat(parseFloat(value).localeFormat("n" + num)).localeFormat("d");
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//#region 复制日期
|
|
|
|
|
function cloneDate(cDate) {
|
|
|
|
|
var dt = new Date();
|
|
|
|
|
dt.setFullYear(cDate.getFullYear());
|
|
|
|
|
dt.setMonth(cDate.getMonth());
|
|
|
|
|
dt.setDate(cDate.getDate());
|
|
|
|
|
dt.setHours(cDate.getHours());
|
|
|
|
|
dt.setMinutes(cDate.getMinutes());
|
|
|
|
|
dt.setSeconds(cDate.getSeconds());
|
|
|
|
|
dt.setMilliseconds(cDate.getMilliseconds());
|
|
|
|
|
return dt;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加秒
|
|
|
|
|
function addSeconds(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.setSeconds(dt2.getSeconds() + num);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加分钟
|
|
|
|
|
function addMinutes(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.setMinutes(dt2.getMinutes() + num);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加小时
|
|
|
|
|
function addHours(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.setHours(dt2.getHours() + num);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加天
|
|
|
|
|
function addDays(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.setDate(dt2.getDate() + num);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加星期
|
|
|
|
|
function addWeeks(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.addDays(num * 7);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加月份
|
|
|
|
|
function addMonths(dt, num) {
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
var d = dt2.getDate();
|
|
|
|
|
dt2.setMonth(dt2.getMonth() + num);
|
|
|
|
|
if (dt2.getDate() < d) dt2.setDate(0);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 增加年份
|
|
|
|
|
function addYears(dt, num) {
|
|
|
|
|
var m = dt.getMonth();
|
|
|
|
|
var dt2 = cloneDate(dt);
|
|
|
|
|
dt2.setFullYear(dt2.getFullYear() + num);
|
|
|
|
|
if (m < dt2.getMonth()) dt2.setDate(0);
|
|
|
|
|
return dt2;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//#region 解析返回数据
|
|
|
|
|
function ParseData(msg) {
|
|
|
|
|
var ss = msg.split("^");
|
|
|
|
|
var model = new Object();
|
|
|
|
|
$(ss).each(function () {
|
|
|
|
|
if (this == "" || this == null || this == undefined) return true;
|
|
|
|
|
var index = this.indexOf("=");
|
|
|
|
|
if (index == -1) return true;
|
|
|
|
|
var key = $.trim(this.substr(0, index));
|
|
|
|
|
var value = "";
|
|
|
|
|
if (this.length > index + 1) value = this.substr(index + 1);
|
|
|
|
|
value = $.trim(value);
|
|
|
|
|
model[key] = value;
|
|
|
|
|
});
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
//#region 左边补字符
|
|
|
|
|
function PadLeft(value, len, paddingChar) {
|
|
|
|
|
var plen = len - value.length;
|
|
|
|
|
if (plen <= 0) return value;
|
|
|
|
|
var padString = "";
|
|
|
|
|
for (i = 0; i < plen; i++) {
|
|
|
|
|
padString += paddingChar;
|
|
|
|
|
}
|
|
|
|
|
value = padString + value;
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#region 右边补字符
|
|
|
|
|
function PadRight(value, len, paddingChar) {
|
|
|
|
|
var plen = len - value.length;
|
|
|
|
|
if (plen <= 0) return value;
|
|
|
|
|
for (i = 0; i < plen; i++) {
|
|
|
|
|
value += paddingChar;
|
|
|
|
|
}
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
//#region JsonTable创建html表格
|
|
|
|
|
function JsonTableToHtml(tb) {
|
|
|
|
|
var html = new Sys.StringBuilder();
|
|
|
|
|
var ColIndex = 0;
|
|
|
|
|
html.append("<table class='DataGridTableStyle' style='width: 100%; text-align: left;'>");
|
|
|
|
|
if (tb.Cells.length > 0) {
|
|
|
|
|
$(tb.Cells).each(function (i) {
|
|
|
|
|
if (ColIndex == 0) {
|
|
|
|
|
if (this.IsHader == true) { html.append("<tr class='HeaderStyle' rowindex='" + i + "'>"); }
|
|
|
|
|
else { html.append("<tr class='DataGridRowStyle' rowindex='" + i + "'>"); }
|
|
|
|
|
}
|
|
|
|
|
if (this.IsHader == true) {
|
|
|
|
|
//创建列
|
|
|
|
|
html.append("<th index='" + i + "'>" + this.CellText + "</th>");
|
|
|
|
|
} else {
|
|
|
|
|
html.append("<td index='" + i + "'>" + this.CellText + "</td>");
|
|
|
|
|
}
|
|
|
|
|
if (ColIndex == tb.ColumnNumber - 1) html.append("</tr>");
|
|
|
|
|
ColIndex++;
|
|
|
|
|
if (ColIndex == tb.ColumnNumber) ColIndex = 0;
|
|
|
|
|
});
|
|
|
|
|
if (ColIndex > 0) {
|
|
|
|
|
for (var i = ColIndex; i < data.d.ColumnNumber; i++) {
|
|
|
|
|
html.append("<td index='0'></td>");
|
|
|
|
|
}
|
|
|
|
|
if (ColIndex > 0) html.append("</tr>");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$(tb.Rows).each(function (i) {
|
|
|
|
|
if (this[0].IsHader == true) { html.append("<tr class='HeaderStyle' rowindex='" + i + "'>"); }
|
|
|
|
|
else { html.append("<tr class='DataGridRowStyle' rowindex='" + i + "'>"); }
|
|
|
|
|
$(this).each(function (j) {
|
|
|
|
|
if (this.ColSpan > 0 || this.RowSpan > 0) {
|
|
|
|
|
if (this.IsHader == true) {
|
|
|
|
|
html.append("<th colspan='" + this.ColSpan + "' rowspan='" + this.RowSpan + "' colindex='" + j + "'>" + this.CellText + "</th>");
|
|
|
|
|
} else {
|
|
|
|
|
html.append("<td colspan='" + this.ColSpan + "' rowspan='" + this.RowSpan + "' colindex='" + j + "'>" + this.CellText + "</td>");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
html.append("</tr>");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
html.append("</table>");
|
|
|
|
|
return html.toString();
|
|
|
|
|
}
|
|
|
|
|
//#endregion
|
|
|
|
|
//#endregion
|
|
|
|
|
|