Forráskód Böngészése

git-svn-id: https://192.168.57.71/svn/jsgkj@768 931142cf-59ea-a443-aa0e-51397b428577

ld_zhoutl 8 éve
szülő
commit
54e689e568

+ 11 - 3
gkaqv2/trunk/modules/web/src/main/java/com/xt/js/gkaq/web/ctl/UserCtl.java

@@ -84,9 +84,17 @@ public class UserCtl extends BaseCtl {
 
     @RequestMapping("del")
     @ResponseBody
-    public WebJsonResult del(String id) {
-        userService.deleteByID(id);
-        return success();
+    public int del(String ids) {
+    	int cnt = 0;
+		if (StringUtils.isNotEmpty(ids)) {
+			String[] idArr = ids.split(",");
+			for(String id : idArr) {
+				if(StringUtils.isNotEmpty(id)) {
+					cnt += userService.deleteByID(id);;
+				}
+			}
+		}
+		return cnt;
     }
 
     @RequestMapping("initEdit")

+ 3 - 2
gkaqv2/trunk/modules/web/src/main/webapp/WEB-INF/view/sys/index.jsp

@@ -12,11 +12,12 @@
 		var basePath = '${ctx}';
 	</script>
 </head>
-	<frameset rows="76px,93%"  border="1" frameborder="yes">
+	<frameset rows="76px,93%,26px;"  border="1" frameborder="yes" style="overflow:auto;">
 		<frame id="headFrame" name="headFrame" src="${ctx}/navbar" noresize="noresize" scrolling="no"/>
 		<frameset cols="150px,90%"  border="1" frameborder="yes">
 			<frame id="leftFrame" name="leftFrame" src="${ctx}/sidebar" noresize="noresize" scrolling="no"/>
-			<frame id="mainFrame" name="mainFrame" src="${ctx}/main" noresize="noresize" scrolling="yes"/>
+			<frame id="mainFrame" name="mainFrame" src="${ctx}/main" noresize="noresize" scrolling="yes" style="overflow:hidden;"/>
 		</frameset>
+		<frame id="footerFrame" name="footerFrame" src="${ctx}/footer" noresize="noresize" scrolling="no"/>
 	</frameset>
 </html>

+ 1 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/css/common/basic.css

@@ -1719,6 +1719,7 @@ pre.prettyprint {
 }
 .ui-jqgrid .ui-jqgrid-htable th div {
   overflow: visible;
+  text-align:center;
 }
 .ui-jqgrid .ui-pager-control {
   height: 40px;

+ 5 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/css/common/main.css

@@ -249,4 +249,9 @@ bootstrap 
   min-height: 16.43px;
   padding: 10px;
   border-bottom: 1px solid #e5e5e5;
+}
+input[type=radio], input[type=checkbox] {
+  margin: 0px 0 0;
+  margin-top: 1px \9;
+  line-height: normal;
 }

+ 18 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/js/common/common.js

@@ -231,6 +231,24 @@ function ajustJqGrid(grid_selector, pager_selector) {
 	});
 }
 
+/**
+ *	获取多行选中的id 
+ */
+function getMultiData(grid_selector){
+	var ids = "";
+	//获取选择行的id
+	var row = jQuery(grid_selector).jqGrid('getGridParam','selarrrow');
+	if (row.length >= 1) {
+		for (var i = 0; i < row.length; i++) {
+			//获取选择的行的数据,只要传入rowId即可
+			var data = jQuery(grid_selector).jqGrid('getRowData', row[i]);
+			ids += data.id +",";
+		}
+		ids = ids.substr(0, ids.length - 1);
+	}
+	return ids;
+}
+
 function addZero(m){return m<10?'0'+m:m };
 /**
  * 时间列转换

+ 563 - 0
gkaqv2/trunk/modules/web/src/main/webapp/static/js/common/util.js

@@ -0,0 +1,563 @@
+/* 
+用途:检查输入字符串是否为空或者全部都是空格 
+输入:str 
+返回: 
+如果全是空返回true,否则返回false 
+ */
+function isNull(str) {
+    if (str == "" || str==null || str == "undefined") return true;
+    var regu = "^[ ]+$";
+    var re = new RegExp(regu);
+    return re.test(str);
+}
+
+/*
+ * 用途:检查输入对象的值是否符合整数格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isInteger(str) {
+    var regu = /^[-]{0,1}[0-9]{1,}$/;
+    return regu.test(str);
+}
+
+/*
+ * 用途:检查输入手机号码是否正确 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function checkMobile(s) {
+    var regu = /^[1][3][0-9]{9}$/;
+    var re = new RegExp(regu);
+    if (re.test(s)) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/*
+ * 用途:检查输入字符串是否符合正整数格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isNumber(s) {
+    var regu = "^[0-9]+$";
+    var re = new RegExp(regu);
+    if (s.search(re) != -1) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/*
+ * 用途:检查输入字符串是否是带小数的数字格式,可以是负数 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isDecimal(str) {
+    if (isInteger(str)) return true;
+    var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
+    if (re.test(str)) {
+        if (RegExp.$1 == 0 && RegExp.$2 == 0) return false;
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/*
+ * 用途:检查输入对象的值是否符合端口号格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isPort(str) {
+    return (isNumber(str) && str < 65536);
+}
+
+/*
+ * 用途:检查输入对象的值是否符合E-Mail格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isEmail(str) {
+    var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
+    if (myReg.test(str)) return true;
+    return false;
+}
+
+/*
+ * 用途:检查输入字符串是否符合金额格式 格式定义为带小数的正数,小数点后最多三位 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isMoney(s) {
+    var regu = "^[0-9]+[\.][0-9]{0,3}$";
+    var re = new RegExp(regu);
+    if (re.test(s)) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+/*
+ * 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isNumberOr_Letter(s) {// 判断是否是数字或字母
+
+    var regu = "^[0-9a-zA-Z\_]+$";
+    var re = new RegExp(regu);
+    if (re.test(s)) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+/*
+ * 用途:检查输入字符串是否只由英文字母和数字组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isNumberOrLetter(s) {// 判断是否是数字或字母
+
+    var regu = "^[0-9a-zA-Z]+$";
+    var re = new RegExp(regu);
+    if (re.test(s)) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+/*
+ * 用途:检查输入字符串是否只由汉字、字母、数字组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function isChinaOrNumbOrLett(s) {// 判断是否是汉字、字母、数字组成
+
+    var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
+    var re = new RegExp(regu);
+    if (re.test(s)) {
+        return true;
+    }
+    else {
+        return false;
+    }
+}
+
+/*
+ * 用途:判断是否是日期 输入:date:日期;fmt:日期格式 返回:如果通过验证返回true,否则返回false
+ */
+function isDate(date, fmt) {
+    if (fmt == null) fmt = "yyyyMMdd";
+    var yIndex = fmt.indexOf("yyyy");
+    if (yIndex == -1) return false;
+    var year = date.substring(yIndex, yIndex + 4);
+    var mIndex = fmt.indexOf("MM");
+    if (mIndex == -1) return false;
+    var month = date.substring(mIndex, mIndex + 2);
+    var dIndex = fmt.indexOf("dd");
+    if (dIndex == -1) return false;
+    var day = date.substring(dIndex, dIndex + 2);
+    if (!isNumber(year) || year > "2100" || year < "1900") return false;
+    if (!isNumber(month) || month > "12" || month < "01") return false;
+    if (day > getMaxDay(year, month) || day < "01") return false;
+    return true;
+}
+
+function getMaxDay(year, month) {
+    if (month == 4 || month == 6 || month == 9 || month == 11) return "30";
+    if (month == 2) if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) return "29";
+    else return "28";
+    return "31";
+}
+
+/*
+ * 用途:字符1是否以字符串2结束 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isLastMatch(str1, str2) {
+    var index = str1.lastIndexOf(str2);
+    if (str1.length == index + str2.length) return true;
+    return false;
+}
+
+/*
+ * 用途:字符1是否以字符串2开始 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isFirstMatch(str1, str2) {
+    var index = str1.indexOf(str2);
+    if (index == 0) return true;
+    return false;
+}
+
+/*
+ * 用途:字符1是包含字符串2 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
+ * 
+ */
+function isMatch(str1, str2) {
+    var index = str1.indexOf(str2);
+    if (index == -1) return false;
+    return true;
+}
+
+/*
+ * 用途:检查输入的起止日期是否正确,规则为两个日期的格式正确, 且结束如期>=起始日期 输入: startDate:起始日期,字符串 endDate:结束如期,字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function checkTwoDate(startDate, endDate) {
+    if (!isDate(startDate)) {
+        alert("起始日期不正确!");
+        return false;
+    }
+    else if (!isDate(endDate)) {
+        alert("终止日期不正确!");
+        return false;
+    }
+    else if (startDate > endDate) {
+        alert("起始日期不能大于终止日期!");
+        return false;
+    }
+    return true;
+}
+
+/*
+ * 用途:检查输入的Email信箱格式是否正确 输入: strEmail:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function checkEmail(strEmail) {
+    // var emailReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
+    var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
+    if (emailReg.test(strEmail)) {
+        return true;
+    }
+    else {
+        alert("您输入的Email地址格式不正确!");
+        return false;
+    }
+}
+
+/*
+ * 用途:检查输入的电话号码格式是否正确 输入: strPhone:字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function checkPhone(strPhone) {
+    var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
+    var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
+    var prompt = "您输入的电话号码不正确!"
+    if (strPhone.length > 9) {
+        if (phoneRegWithArea.test(strPhone)) {
+            return true;
+        }
+        else {
+            alert(prompt);
+            return false;
+        }
+    }
+    else {
+        if (phoneRegNoArea.test(strPhone)) {
+            return true;
+        }
+        else {
+            alert(prompt);
+            return false;
+        }
+
+    }
+}
+
+/*
+ * 用途:检查复选框被选中的数目 输入: checkboxID:字符串 返回: 返回该复选框中被选中的数目
+ * 
+ */
+
+function checkSelect(checkboxID) {
+    var check = 0;
+    var i = 0;
+    if (document.all(checkboxID).length > 0) {
+        for (i = 0; i < document.all(checkboxID).length; i++) {
+            if (document.all(checkboxID).item(i).checked) {
+                check += 1;
+            }
+
+        }
+    }
+    else {
+        if (document.all(checkboxID).checked) check = 1;
+    }
+    return check;
+}
+
+function getTotalBytes(varField) {
+    if (varField == null) return -1;
+
+    var totalCount = 0;
+    for (i = 0; i < varField.value.length; i++) {
+        if (varField.value.charCodeAt(i) > 127) totalCount += 2;
+        else totalCount++;
+    }
+    return totalCount;
+}
+
+function getFirstSelectedValue(checkboxID) {
+    var value = null;
+    var i = 0;
+    if (document.all(checkboxID).length > 0) {
+        for (i = 0; i < document.all(checkboxID).length; i++) {
+            if (document.all(checkboxID).item(i).checked) {
+                value = document.all(checkboxID).item(i).value;
+                break;
+            }
+        }
+    }
+    else {
+        if (document.all(checkboxID).checked) value = document.all(checkboxID).value;
+    }
+    return value;
+}
+
+function getFirstSelectedIndex(checkboxID) {
+    var value = -2;
+    var i = 0;
+    if (document.all(checkboxID).length > 0) {
+        for (i = 0; i < document.all(checkboxID).length; i++) {
+            if (document.all(checkboxID).item(i).checked) {
+                value = i;
+                break;
+            }
+        }
+    }
+    else {
+        if (document.all(checkboxID).checked) value = -1;
+    }
+    return value;
+}
+
+function selectAll(checkboxID, status) {
+
+    if (document.all(checkboxID) == null) return;
+
+    if (document.all(checkboxID).length > 0) {
+        for (i = 0; i < document.all(checkboxID).length; i++) {
+
+            document.all(checkboxID).item(i).checked = status;
+        }
+    }
+    else {
+        document.all(checkboxID).checked = status;
+    }
+}
+
+function selectInverse(checkboxID) {
+    if (document.all(checkboxID) == null) return;
+
+    if (document.all(checkboxID).length > 0) {
+        for (i = 0; i < document.all(checkboxID).length; i++) {
+            document.all(checkboxID).item(i).checked = !document.all(checkboxID).item(i).checked;
+        }
+    }
+    else {
+        document.all(checkboxID).checked = !document.all(checkboxID).checked;
+    }
+}
+
+function checkDate(value) {
+    if (value == '') return true;
+    if (value.length != 8 || !isNumber(value)) return false;
+    var year = value.substring(0, 4);
+    if (year > "2100" || year < "1900") return false;
+
+    var month = value.substring(4, 6);
+    if (month > "12" || month < "01") return false;
+
+    var day = value.substring(6, 8);
+    if (day > getMaxDay(year, month) || day < "01") return false;
+
+    return true;
+}
+
+/*
+ * 用途:检查输入的起止日期是否正确,规则为两个日期的格式正确或都为空 且结束日期>=起始日期 输入: startDate:起始日期,字符串 endDate: 结束日期,字符串 返回: 如果通过验证返回true,否则返回false
+ * 
+ */
+function checkPeriod(startDate, endDate) {
+    if (!checkDate(startDate)) {
+        alert("起始日期不正确!");
+        return false;
+    }
+    else if (!checkDate(endDate)) {
+        alert("终止日期不正确!");
+        return false;
+    }
+    else if (startDate > endDate) {
+        alert("起始日期不能大于终止日期!");
+        return false;
+    }
+    return true;
+}
+
+/* 
+ 用途:检查证券代码是否正确 
+ 输入: 
+ secCode:证券代码 
+ 返回: 
+ 如果通过验证返回true,否则返回false 
+
+ */
+function checkSecCode(secCode) {
+    if (secCode.length != 6) {
+        alert("证券代码长度应该为6位");
+        return false;
+    }
+
+    if (!isNumber(secCode)) {
+        alert("证券代码只能包含数字");
+
+        return false;
+    }
+    return true;
+}
+
+/**************************************************** 
+ function:cTrim(sInputString,iType) 
+ description:字符串去空格的函数 
+ parameters:iType:1=去掉字符串左边的空格 
+
+ 2=去掉字符串左边的空格 
+ 0=去掉字符串左边和右边的空格 
+ return value:去掉空格的字符串 
+ ****************************************************/
+function cTrim(sInputString, iType) {
+    var sTmpStr = ' ';
+    var i = -1;
+
+    if (iType == 0 || iType == 1) {
+        while (sTmpStr == ' ') {
+            ++i;
+            sTmpStr = sInputString.substr(i, 1);
+        }
+        sInputString = sInputString.substring(i);
+    }
+
+    if (iType == 0 || iType == 2) {
+        sTmpStr = ' ';
+        i = sInputString.length;
+        while (sTmpStr == ' ') {
+            --i;
+            sTmpStr = sInputString.substr(i, 1);
+        }
+        sInputString = sInputString.substring(0, i + 1);
+    }
+    return sInputString;
+}
+
+/**
+ * 根据id清空表单数据
+ * @param id
+ */
+function clearForm(id) {
+    var objId = document.getElementById(id);
+    if (objId == undefined) {
+        return;
+    }
+    for (var i = 0; i < objId.elements.length; i++) {
+        if (objId.elements[i].type == "text") {
+            objId.elements[i].value = "";
+        }
+        else if (objId.elements[i].type == "hidden") {
+            objId.elements[i].value = "";
+        }
+        else if (objId.elements[i].type == "password") {
+            objId.elements[i].value = "";
+        }
+        else if (objId.elements[i].type == "radio") {
+            objId.elements[i].checked = false;
+        }
+        else if (objId.elements[i].type == "checkbox") {
+            objId.elements[i].checked = false;
+        }
+        else if (objId.elements[i].type == "select-one") {
+            objId.elements[i].options[0].selected = true;
+        }
+        else if (objId.elements[i].type == "select-multiple") {
+            for (var j = 0; j < objId.elements[i].options.length; j++) {
+                objId.elements[i].options[j].selected = false;
+            }
+        }
+        else if (objId.elements[i].type == "textarea") {
+            objId.elements[i].value = "";
+        }
+    }
+}
+
+/** 
+ *  
+ * @param {} obj 
+ * 将ajax访问后得到的对象进行遍历 再使用jquery其职放入到同属性名的dom元素中 
+ */  
+function setFormValue(obj, suffix){
+    // 开始遍历     
+    for(var p in obj){        
+       // 方法    
+       if(typeof(obj[p])=="function"){        
+           // obj[p]();       
+        }else{      
+            $("#"+p+suffix).val(obj[p]);  
+            // p 为属性名称,obj[p]为对应属性的值       
+        }        
+    }        
+      
+}  
+
+/** 
+ *  
+ * @param {} obj 
+ * 将ajax访问后得到的对象进行遍历 再使用jquery其职放入到同属性名的dom元素中 
+ */  
+function setFormValue2(formid, obj, suffix){
+    // 开始遍历     
+    for(var p in obj){        
+       // 方法    
+       if(typeof(obj[p])=="function"){        
+           // obj[p]();       
+        }else{
+            //$("#updateUserForm input[id=updateUserName]")
+            $("#"+formid+" input[id="+p+"]"+suffix).val(obj[p]);  
+            // p 为属性名称,obj[p]为对应属性的值       
+        }        
+    }        
+      
+}    
+
+/** 
+ *  
+ * @param {} obj 
+ * 将数组转换为逗号分隔形式
+ */  
+function joinArr(obj){
+    var str = "";
+    if(obj && obj.length>0) {
+        for (var i = 0; i<obj.length; i++) {
+            str += obj[i] + ",";
+        }
+        str = str.substring(0, str.length - 1);
+    }  
+    return str;
+} 
+
+/**
+ * 移除按钮的点击事件,防止重复提交表单
+ * @param id
+ */
+var onclickEvent,$_id;
+function removeOnclick(id){
+	$_id = $("#"+id);
+	onclickEvent = $_id.attr("onclick");
+	$_id.removeAttr("onclick");
+}
+/**
+ * 恢复按钮的点击事件
+ */
+function resetOnclick(){
+	$_id.attr("onclick",onclickEvent);
+}

+ 26 - 22
gkaqv2/trunk/modules/web/src/main/webapp/static/js/user/index.js

@@ -61,8 +61,8 @@ function initGrid() {
 		rownumbers : true,
 		pagerpos : 'center', //指定分页栏的位置
 		altRows : true, //设置为交替行表格,默认为false
-		multiselect : false, //可以多选
-		multiboxonly : false, //只有选择checkbox才会起作用 
+		multiselect : true, //可以多选
+		multiboxonly : true, //只有选择checkbox才会起作用 
 		loadComplete : function() {
 			var table = this;
 			setTimeout(function() {
@@ -148,14 +148,14 @@ function addInfo() {
  * 删除信息
  */
 function delInfo() {
-	// 获取
-	var id=$(grid_selector).jqGrid('getGridParam','selrow');
-	if(null != id) {
+	// 获取选择
+	var ids = getMultiData(grid_selector);
+	if(!isNull(ids)) {
 		layer.confirm('确定删除吗?', {icon: 3, title:'提示'}, function(index){
 			$.ajax({
 				type : 'POST',
 				dataType : "json",
-				data : {"id":id},
+				data : {"ids":ids},
 				url : basePath + '/user/del',//请求的路径				
 				success : function(data) {
 					layer.close(index);
@@ -175,22 +175,26 @@ function delInfo() {
  * 编辑信息
  */
 function editInfo() {
-	// 获取单行
-	var id=$(grid_selector).jqGrid('getGridParam','selrow');
-    $.ajax({
-		type : 'POST',
-		dataType : "json",
-		data : {"id":id},
-		url : basePath + '/user/initEdit',//请求的路径				
-		success : function(data) {
-			$("#id").val(data.id);
-			$("#realName").val(data.realName);
-			$("#loginName").val(data.loginName);
-			showModelDialog("myModal", "编辑");
-		},
-		error: function (XMLHttpRequest, textStatus, errorThrown) {
-        }
-	});
+	// 获取选择行
+	var ids = getMultiData(grid_selector);
+	if(isNull(ids) || ids.indexOf(",")!=-1) {
+		layer.alert("请选择且只选择一条记录");
+	} else {
+	    $.ajax({
+			type : 'POST',
+			dataType : "json",
+			data : {"id":ids},
+			url : basePath + '/user/initEdit',//请求的路径				
+			success : function(data) {
+				$("#id").val(data.id);
+				$("#realName").val(data.realName);
+				$("#loginName").val(data.loginName);
+				showModelDialog("myModal", "编辑");
+			},
+			error: function (XMLHttpRequest, textStatus, errorThrown) {
+	        }
+		});
+	}
 };
 
 /**