You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
597 lines
17 KiB
597 lines
17 KiB
4 years ago
|
var AddWindowTitle = "添加";
|
||
|
var UpdateWindowTitle = "修改";
|
||
|
var ChangeWindowTitle = "变更";
|
||
|
var HistoryWindowTitle = "查看历史";
|
||
|
var MsgNormalTitle = "提示";
|
||
|
var MsgErrTitle = "错误";
|
||
|
var NothingSelectTitle = "请选择要处理的记录。";
|
||
|
var OnlyOneTitle = "每次只能处理一条记录。";
|
||
|
var AtLeastOneTitle = "至少选择一条记录!";
|
||
|
var FixDeleteTitle = "确定要删除选中的记录吗?";
|
||
|
var PleaseSelectTitle = "请选择";
|
||
|
|
||
|
//消息提示框
|
||
|
function MSIFade(title, message) {
|
||
|
$.messager.show({
|
||
|
title: title,
|
||
|
msg: message,
|
||
|
showType: 'fade'
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function MS(title, message) {
|
||
|
$.messager.alert(title, message);
|
||
|
}
|
||
|
function MSE(title, message) {
|
||
|
$.messager.alert(title, message, 'error');
|
||
|
}
|
||
|
function MSI(title, message) {
|
||
|
//alert(message);
|
||
|
$.messager.alert(title, message, 'info');
|
||
|
}
|
||
|
|
||
|
function MSW(title, message) {
|
||
|
$.messager.alert(title, message, 'warning');
|
||
|
}
|
||
|
|
||
|
function MSQ(title, message, OKfun) {
|
||
|
$.messager.confirm(title, message, function (r) {
|
||
|
if (r) {
|
||
|
OKfun();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function MSE(title, message, OKfun) {
|
||
|
$.messager.prompt(title, message, function (r) {
|
||
|
if (r) {
|
||
|
OKfun(r);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
function isValidate() {
|
||
|
return $("#Mainform").form('validate');
|
||
|
|
||
|
}
|
||
|
|
||
|
//自定义验证
|
||
|
$.extend($.fn.validatebox.defaults.rules, {
|
||
|
NOCHS: {
|
||
|
validator: function (value, param) {
|
||
|
if (param == null) {
|
||
|
if (escape(value).indexOf("%u") == -1) {
|
||
|
return true;
|
||
|
}
|
||
|
else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
var len = $.trim(value).length;
|
||
|
if (escape(value).indexOf("%u") == -1 && (len >= param[0] && len <= param[1])) {
|
||
|
return true;
|
||
|
}
|
||
|
else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
message: ('{0}' != '') ? '请输入内容长度不大于{1}的非汉字字符' : '请输入汉字非汉字字符'
|
||
|
},
|
||
|
WORKSTATION: {
|
||
|
validator: function (value) {
|
||
|
var len = $.trim(value).length;
|
||
|
if (len != 5) {
|
||
|
return false;
|
||
|
}
|
||
|
else if (value.substring(4, 5).toUpperCase() != "L" & value.substring(4, 5).toUpperCase() != "R" & value.substring(4, 5).toUpperCase() != "A") {
|
||
|
return false;
|
||
|
}
|
||
|
else {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
},
|
||
|
message: '工位编号不符合规则(最大5位,且最后一位为R或L或A)'
|
||
|
},
|
||
|
DATE: {
|
||
|
validator: function (value) {
|
||
|
return isDate(value);
|
||
|
},
|
||
|
message: '请输入合法日期'
|
||
|
},
|
||
|
CHS: {
|
||
|
validator: function (value, param) {
|
||
|
if (param == null) {
|
||
|
return /^[\u0391-\uFFE5]+$/.test(value);
|
||
|
}
|
||
|
else {
|
||
|
var len = $.trim(value).length;
|
||
|
return /^[\u0391-\uFFE5]+$/.test(value) && (len >= param[0] && len <= param[1]);
|
||
|
}
|
||
|
},
|
||
|
message: ('{0}' != '') ? '请输入内容长度不大于{1}的汉字' : '请输入汉字'
|
||
|
},
|
||
|
ENG: {
|
||
|
validator: function (value, param) {
|
||
|
return /^[A-Za-z]+$/.test(value);
|
||
|
},
|
||
|
message: '请输入英文'
|
||
|
},
|
||
|
ZIP: {
|
||
|
validator: function (value, param) {
|
||
|
return /^[1-9]\d{5}$/.test(value);
|
||
|
},
|
||
|
message: '邮政编码不存在'
|
||
|
},
|
||
|
QQ: {
|
||
|
validator: function (value, param) {
|
||
|
return /^[1-9]\d{4,10}$/.test(value);
|
||
|
},
|
||
|
message: 'QQ号码不正确'
|
||
|
},
|
||
|
mobile: {
|
||
|
validator: function (value, param) {
|
||
|
return /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/.test(value);
|
||
|
},
|
||
|
message: '手机号码不正确'
|
||
|
},
|
||
|
loginName: {
|
||
|
validator: function (value, param) {
|
||
|
return /^[\u0391-\uFFE5\w]+$/.test(value);
|
||
|
},
|
||
|
message: '登录名称只允许汉字、英文字母、数字及下划线。'
|
||
|
},
|
||
|
safepass: {
|
||
|
validator: function (value, param) {
|
||
|
return safePassword(value);
|
||
|
},
|
||
|
message: '密码由字母和数字组成,至少6位'
|
||
|
},
|
||
|
equalTo: {
|
||
|
validator: function (value, param) {
|
||
|
return value == $(param[0]).val();
|
||
|
},
|
||
|
message: '两次输入的字符不一至'
|
||
|
},
|
||
|
number: {
|
||
|
validator: function (value, param) {
|
||
|
if (param == null) {
|
||
|
return /^\d+$/.test(value);
|
||
|
}
|
||
|
else {
|
||
|
var len = $.trim(value).length;
|
||
|
return /^\d+$/.test(value) && (len >= param[0] && len <= param[1]);
|
||
|
}
|
||
|
|
||
|
},
|
||
|
message: ('{0}' != '') ? '请输入内容长度不大于{1}的数字' : '请输入数字'
|
||
|
},
|
||
|
idcard: {
|
||
|
validator: function (value, param) {
|
||
|
return idCard(value);
|
||
|
},
|
||
|
message: '请输入正确的身份证号码'
|
||
|
}
|
||
|
});
|
||
|
|
||
|
/* 密码由字母和数字组成,至少6位 */
|
||
|
var safePassword = function (value) {
|
||
|
return !(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(value));
|
||
|
}
|
||
|
|
||
|
var idCard = function (value) {
|
||
|
if (value.length == 18 && 18 != value.length) return false;
|
||
|
var number = value.toLowerCase();
|
||
|
var d, sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '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 re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
|
||
|
if (re == null || a.indexOf(re[1]) < 0) return false;
|
||
|
if (re[2].length == 9) {
|
||
|
number = number.substr(0, 6) + '19' + number.substr(6);
|
||
|
d = ['19' + re[4], re[5], re[6]].join('-');
|
||
|
} else d = [re[9], re[10], re[11]].join('-');
|
||
|
if (!isDateTime.call(d, 'yyyy-MM-dd')) return false;
|
||
|
for (var i = 0; i < 17; i++) sum += number.charAt(i) * w[i];
|
||
|
return (re[2].length == 9 || number.charAt(17) == v.charAt(sum % 11));
|
||
|
}
|
||
|
|
||
|
//获取表格选中行
|
||
|
function getGVRows() {
|
||
|
var Rows = $('#QDateGrid').datagrid('getRows');
|
||
|
if (Rows) {
|
||
|
return Rows;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//action提交
|
||
|
function submitByButton(url) {
|
||
|
var myform = $('form');
|
||
|
|
||
|
if (myform) {
|
||
|
myform.attr("action", url);
|
||
|
//alert(myform.attr("action"));
|
||
|
myform.submit();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
//获取表格选中主键
|
||
|
function GetSelectID() {
|
||
|
var ids = [];
|
||
|
var rows = $('#QDateGrid').datagrid('getSelections');
|
||
|
for (var i = 0; i < rows.length; i++) {
|
||
|
ids.push(rows[i].code);
|
||
|
}
|
||
|
return rows;
|
||
|
}
|
||
|
|
||
|
//删除按钮
|
||
|
function formatDeleteButton(value, rec) {
|
||
|
|
||
|
return QLinkButtonHtml("删除", value);
|
||
|
}
|
||
|
|
||
|
//获取表格按钮脚本
|
||
|
function QLinkButtonHtml(buttonName, actionFunc) {
|
||
|
var html = "";
|
||
|
|
||
|
html = '<a href="#" onclick="' + actionFunc + '">' + buttonName + '</a>';
|
||
|
|
||
|
return html;
|
||
|
}
|
||
|
|
||
|
//判断json集合项是否存在
|
||
|
function existsJsonItem(list, keyName, key) {
|
||
|
var r = false;
|
||
|
for (var i = 0; i < list.length; i++) {
|
||
|
if (list[i][keyName] == key) {
|
||
|
r = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
//查找json集合项
|
||
|
function findJsonItem(list, keyName, key) {
|
||
|
var item = null;
|
||
|
|
||
|
for (var i = 0; i < list.length; i++) {
|
||
|
|
||
|
if (list[i][keyName] == key) {
|
||
|
item = list[i];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
return item;
|
||
|
}
|
||
|
|
||
|
//删除json集合项
|
||
|
function deleteJsonItem(list, keyName, key) {
|
||
|
|
||
|
for (var i = 0; i < list.length; i++) {
|
||
|
if (list[i][keyName] == key) {
|
||
|
list.splice(i, 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return list;
|
||
|
}
|
||
|
|
||
|
//随机数 单雨春
|
||
|
function numRand(x, y) {
|
||
|
var rand = parseInt(Math.random() * (x - y + 1) + y);
|
||
|
return rand;
|
||
|
}
|
||
|
|
||
|
//删除数组 单雨春
|
||
|
Array.prototype.remove = function (dx) {
|
||
|
if (isNaN(dx) || dx > this.length) { return false; }
|
||
|
for (var i = 0, n = 0; i < this.length; i++) {
|
||
|
if (this[i] != this[dx]) {
|
||
|
this[n++] = this[i]
|
||
|
}
|
||
|
}
|
||
|
this.length -= 1
|
||
|
}
|
||
|
|
||
|
|
||
|
// Trim
|
||
|
String.prototype.trim = function () {
|
||
|
return this.replace(/(^\s*)|(\s*$)/g, '');
|
||
|
}
|
||
|
|
||
|
//取消事件
|
||
|
function cancelEvent() {
|
||
|
if (event) {
|
||
|
event.returnValue = false; // 取消点击事件
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function _isFormChanged() {
|
||
|
var isChanged = false;
|
||
|
var form = document.forms[0];
|
||
|
for (var i = 0; i < form.elements.length; i++) {
|
||
|
var element = form.elements[i];
|
||
|
var type = element.type;
|
||
|
if (type == "text" || type == "hidden" || type == "textarea" || type == "button") {
|
||
|
//无视只读的,因为有的只读项目为CODE名称,是在画显示后用脚本赋值上去的。可能和默认值不一致。
|
||
|
if (element.readOnly) {
|
||
|
continue;
|
||
|
}
|
||
|
if (element.value != element.defaultValue) {
|
||
|
isChanged = true;
|
||
|
break;
|
||
|
}
|
||
|
} else if (type == "radio" || type == "checkbox") {
|
||
|
if (element.checked != element.defaultChecked) {
|
||
|
isChanged = true;
|
||
|
break;
|
||
|
}
|
||
|
} else if (type == "select-one" || type == "select-multiple") {
|
||
|
for (var j = 0; j < element.options.length; j++) {
|
||
|
if (element.options[j].selected != element.options[j].defaultSelected) {
|
||
|
//如果默认没有选择,但是选择了第一项,则也认为是没有修改
|
||
|
if (element.options[j].defaultSelected == false && element.selectedIndex == 0) {
|
||
|
} else {
|
||
|
isChanged = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
// etc...
|
||
|
}
|
||
|
}
|
||
|
return isChanged;
|
||
|
}
|
||
|
|
||
|
function _doReturn(url) {
|
||
|
cancelEvent();
|
||
|
if (_isFormChanged()) {
|
||
|
if (!confirm('表单已被修改,是否放弃修改?')) {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
window.location.href = url;
|
||
|
}
|
||
|
|
||
|
function _doReturn(url, isChange) {
|
||
|
cancelEvent();
|
||
|
if (isChange) {
|
||
|
if (!confirm('表单已被修改,是否放弃修改?')) {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
window.location.href = url;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* 查询模板开始 */
|
||
|
|
||
|
//查询模板
|
||
|
function ListQueryTL(programName) {
|
||
|
openAppWindow1('查询模板', '/QueryTL/QueryTLList?programName=' + programName, '600', '480');
|
||
|
}
|
||
|
|
||
|
//添加查询模板
|
||
|
function AddQueryTL(programName) {
|
||
|
openAppWindow1('添加模板', '/QueryTL/QueryTLEdit?programName=' + programName, '600', '480');
|
||
|
}
|
||
|
|
||
|
//修改查询模板
|
||
|
function UpdateQueryTL(programName, id) {
|
||
|
openAppWindow1('修改模板', '/QueryTL/QueryTLEdit?programName=' + programName + "&id=" + id, '600', '480');
|
||
|
}
|
||
|
|
||
|
/* 查询模板结束 */
|
||
|
|
||
|
//打开窗口
|
||
|
function openAppWindow1(title, url, width, height) {
|
||
|
document.getElementById("appWindow1_Frm").src = url;
|
||
|
|
||
|
var left = (document.documentElement.clientWidth - width) / 2
|
||
|
var top = (document.documentElement.clientHeight - height) / 2
|
||
|
|
||
|
$('#appWindow1').window({
|
||
|
title: title,
|
||
|
left: left,
|
||
|
top: 10,
|
||
|
width: width,
|
||
|
modal: true,
|
||
|
shadow: false,
|
||
|
collapsible: false,
|
||
|
closed: false,
|
||
|
closable: true,
|
||
|
minimizable: false,
|
||
|
maximizable: false,
|
||
|
height: height,
|
||
|
onClose: function () { document.getElementById("appWindow1_Frm").src = ""; },
|
||
|
onMove: function (left, top) {
|
||
|
var parentObj = $(this).window('window').parent();
|
||
|
if (left > 0 && top > 0) {
|
||
|
return;
|
||
|
}
|
||
|
if (left < 0) {
|
||
|
$(this).window('move', {
|
||
|
left: 1
|
||
|
});
|
||
|
}
|
||
|
if (top < 0) {
|
||
|
$(this).window('move', {
|
||
|
top: 1
|
||
|
});
|
||
|
}
|
||
|
var width = $(this).panel('options').width;
|
||
|
var height = $(this).panel('options').height;
|
||
|
var right = left + width;
|
||
|
var buttom = top + height;
|
||
|
var parentWidth = parentObj.width();
|
||
|
var parentHeight = parentObj.height();
|
||
|
if (parentObj.css("overflow") == "hidden") {
|
||
|
if (left > parentWidth - width) {
|
||
|
$(this).window('move', {
|
||
|
"left": parentWidth - width
|
||
|
});
|
||
|
}
|
||
|
if (top > parentHeight - $(this).parent().height()) {
|
||
|
$(this).window('move', {
|
||
|
"top": parentHeight - $(this).parent().height()
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
$('#appWindow1').window('open');
|
||
|
|
||
|
}
|
||
|
|
||
|
//关闭窗口
|
||
|
function closeAppWindow1() {
|
||
|
$('#appWindow1').window('close');
|
||
|
}
|
||
|
|
||
|
function showTitle(message) {
|
||
|
MSI("提示", message);
|
||
|
window.status = message;
|
||
|
}
|
||
|
|
||
|
|
||
|
//在线帮助
|
||
|
var manageWebRoot="";
|
||
|
var sessionID="";
|
||
|
function SysHelp(menuID, action) {
|
||
|
if (manageWebRoot != "") {
|
||
|
window.open(manageWebRoot + "OnLineHelp/ViewHelp?sessionID=" + sessionID + " &menuID=" + menuID);
|
||
|
}
|
||
|
else {
|
||
|
window.open("/OnLineHelp/ViewHelp?menuID="+menuID);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//日期验证,获取两个日期差 add by han lei
|
||
|
function DateDiff(date1, date2) {
|
||
|
var dt1 = new Date(Date.parse(date1.replace(/-/g, '/')));
|
||
|
var dt2 = new Date(Date.parse(date2.replace(/-/g, '/')));
|
||
|
try {
|
||
|
return Math.round((dt2.getTime() - dt1.getTime()));
|
||
|
}
|
||
|
catch (e) {
|
||
|
return e.message;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
//获取选中的checkbox primaryKey 列集合 add by han lei
|
||
|
//primaryKey:为主键列名
|
||
|
function GetSelIdsInGrid(primaryKey) {
|
||
|
var selectedData = [];
|
||
|
var rows = $("#QDateGrid").datagrid('getRows');
|
||
|
$("input[name='ck']:checked").each(function () {
|
||
|
var index = $(this).parents('tr').attr('datagrid-row-index');
|
||
|
selectedData.push(rows[index][primaryKey]);
|
||
|
if (selectedData.length > 1) {
|
||
|
selectedData = UniqueInArr(selectedData);
|
||
|
}
|
||
|
});
|
||
|
return selectedData;
|
||
|
}
|
||
|
|
||
|
//获取选中的checkbox Row集合 add by han lei
|
||
|
function GetSelRowsInGrid() {
|
||
|
var selectedData = [];
|
||
|
var rows = $("#QDateGrid").datagrid('getRows');
|
||
|
$("input[name='ck']:checked").each(function () {
|
||
|
var index = $(this).parents('tr').attr('datagrid-row-index');
|
||
|
selectedData.push(rows[index]);
|
||
|
});
|
||
|
return selectedData;
|
||
|
|
||
|
}
|
||
|
|
||
|
//去除重复的数组元素 add by han lei
|
||
|
//arr:需要去除相同元素的数组
|
||
|
function UniqueInArr(arr) {
|
||
|
var result = [], hash = {};
|
||
|
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
|
||
|
if (!hash[elem]) {
|
||
|
result.push(elem);
|
||
|
hash[elem] = true;
|
||
|
}
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
//禁止刷新,回退
|
||
|
//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外
|
||
|
function keyHandler(e) {
|
||
|
|
||
|
//回车=》tab
|
||
|
if (event.keyCode == 13) {
|
||
|
if (event.srcElement.tagName == 'TEXTAREA') {
|
||
|
return;
|
||
|
}
|
||
|
if (event.srcElement.submitFnc) {
|
||
|
if (event.srcElement.submitFnc != "") {
|
||
|
eval(event.srcElement.submitFnc);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
event.keyCode = 9;
|
||
|
|
||
|
} else {
|
||
|
|
||
|
var ev = e || window.event; //获取event对象
|
||
|
var obj = ev.target || ev.srcElement; //获取事件源
|
||
|
|
||
|
var t = obj.type || obj.getAttribute('type'); //获取事件源类型
|
||
|
|
||
|
//获取作为判断条件的事件类型
|
||
|
var vReadOnly = obj.getAttribute('readonly');
|
||
|
var vEnabled = obj.getAttribute('enabled');
|
||
|
//处理null值情况
|
||
|
vReadOnly = (vReadOnly == null || vReadOnly == "") ? false : true;
|
||
|
vEnabled = (vEnabled == null || vEnabled == "") ? true : vEnabled;
|
||
|
|
||
|
//当敲Backspace键时,事件源类型为密码或单行、多行文本的,
|
||
|
//并且readonly属性为true或enabled属性为false的,则退格键失效
|
||
|
var flag1 = (ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea") && (vReadOnly == true || vEnabled != true)) ? true : false;
|
||
|
|
||
|
//当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效
|
||
|
var flag2 = (ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea") ? true : false;
|
||
|
|
||
|
//判断
|
||
|
if (flag2) {
|
||
|
return false;
|
||
|
}
|
||
|
if (flag1) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
//禁止后退键 作用于IE、Chrome
|
||
|
document.onkeydown = keyHandler;
|
||
|
|
||
|
$(document).ready(function () {
|
||
|
//所有输入框,焦点离开后小写转大写
|
||
|
$.each($("input[type=text]"), function (i, n) {
|
||
|
if ($(this).prop("id") != "Email") {
|
||
|
$(this).bind("blur", function () {
|
||
|
$(this).val($(this).val().toUpperCase());
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
$.each($("textarea"), function (i, n) {
|
||
|
$(this).bind("blur", function () {
|
||
|
$(this).val($(this).val().toUpperCase());
|
||
|
});
|
||
|
});
|
||
|
});
|