前台jsp页面:
<!-- system/addQaStandard.jsp --> <%@ page contentType="text/html;charset=GBK"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <link rel="stylesheet" href="<%=request.getContextPath()%>/css/css.css" type="text/css"> <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/js/qaStandard/qaStandard.js"></script> <title>质检标准管理</title> </head> <body> <form name="form1" method="post" action="" target="mainFrame"> <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="22" height="32" background="<%=request.getContextPath()%>/images/main/frame_q.jpg"> </td> <td background="<%=request.getContextPath()%>/images/main/frame_w.jpg" class="MainTitle">质检标准管理</td> <td width="22" height="32" background="<%=request.getContextPath()%>/images/main/frame_e.jpg"> </td> </tr> <tr> <td background="<%=request.getContextPath()%>/images/main/frame_a.jpg"> </td> <td valign="top" bgcolor="#EFEFEF"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#efefef"> <tr> <td class="SecondTitle">.:标准:.</td> </tr> <tr> <td bgcolor="#999999"> <table border="0" cellspacing="1" cellpadding="5" width="100%"> <tr width="100%"> <td width="12%" align="right" class="general-td">标准名称:</td> <td width="38%" align="left" class="general-td"> <input type="text" name="standardName1" class="inputbg" onkeyup="checkIfStandardNameDuplicated(this);"/> </td> <td width="12%" align="right" class="general-td">所属系统:</td> <td width="38%" align="left" class="general-td"> <select name="systemFlag" class="selectCtrl"> <option value="1">电销</option> </select> </td> </tr> <tr width="100%"> <td width="12%" align="right" class="general-td">销售结果:</td> <td width="38%" align="left" class="general-td"> <select name="isSuccessful" class="selectCtrl"> <option value="">请选择</option> <option value="Y">成功件</option> <option value="N">失败件</option> <option value="G">跟踪件</option> </select> </td> <td width="12%" align="right" class="general-td"></td> <td width="38%" align="left" class="general-td"></td> </tr> </table> </td> </tr> <tr> <td class="SecondTitle">.:大项:.</td> </tr> <tr> <td bgcolor="#999999"> <table border="0" cellspacing="1" cellpadding="5" width="100%"> <tbody> <tr width="100%"> <td width="12%" align="right" class="general-td">名称:</td> <td width="38%" align="left" class="general-td"> <input type="text" name="standardName2" class="inputbg"/></td> <td width="12%" align="right" class="general-td">分值:</td> <td width="38%" align="left" class="general-td"> <input type="text" name="standardScore2" class="inputbg"/> </td> </tr> <tr width="100%"> <td width="12%" align="right" class="general-td">排序序号:</td> <td width="38%" align="left" class="general-td"> <input type="text" name="standardOrder2" class="inputbg"/></td> <td width="12%" align="right" class="general-td"></td> <td width="38%" align="left" class="general-td"></td> </tr> <tr width="100%"> <td width="100%" align="center" class="general-td" colSpan="4"> <input name="add2" type="button" class="btn" value="继续添加" onclick="addBigQa(this);"> </td> </tr> </tbody> </table> </td> </tr> <tr> <td class="SecondTitle">.:小项:.</td> </tr> <tr> <td bgcolor="#999999"> <table border="0" cellspacing="1" cellpadding="5" width="100%"> <tbody> <tr> <td width="10%" align="right" class="general-td">所属大项:</td> <td width="20%" align="left" class="general-td"> <select name="parentItem"> <option value="">请选择</option> </select> </td> <td width="10%" align="right" class="general-td">名称:</td> <td width="20%" align="left" class="general-td"> <input type="text" name="standardName3" class="inputbg"/> </td> <td width="10%" align="right" class="general-td">分值:</td> <td width="30%" align="left" class="general-td"> <input type="text" name="standardScore3"class="inputbg"/> </td> </tr> <tr width="100%"> <td width="10%" align="right" class="general-td">瑕疵等级:</td> <td width="20%" align="left" class="general-td"> <select name="badLevel"> <c:forEach items="${defectLevelList}" var="defectLevel"> <option value='<c:out value="${defectLevel.paramValue}"/>'><c:out value="${defectLevel.paramName}"/></option> </c:forEach> </select> </td> <td width="10%" align="right" class="general-td">操作方式:</td> <td width="30%" align="left" class="general-td"> <select name="operation"> <option value="1">点选</option> <option value="2">手工输入</option> </select> </td> <td width="10%" align="right" class="general-td">排序序号:</td> <td width="20%" align="left" class="general-td"> <input type="text" name="standardOrder3" class="inputbg"/> </td> </tr> <tr width="100%"> <td width="12%" align="center" class="general-td" colspan="6"> <input name="add3" type="button" class="btn" value="继续添加" onclick="addSmallQa(this);"> </td> </tr> </tbody> <tr width="100%"> <td colspan="7" align="right" class="general-td"> <input name="save" type="button" class="btn" value="保存" onclick="saveStandard();"> <input name="back" type="button" class="btn" value="返回" onClick="returnSearch();"> </td> </tr> </table> </td> </tr> </table> </td> <td background="<%=request.getContextPath()%>/images/main/frame_d.jpg"> </td> </tr> <tr> <td width="22" height="26" background="<%=request.getContextPath()%>/images/main/frame_z.jpg"> </td> <td background="<%=request.getContextPath()%>/images/main/frame_x.jpg"> </td> <td background="<%=request.getContextPath()%>/images/main/frame_c.jpg"> </td> </tr> </table> </form> </body>
function addBigQa(obj){ var tr = obj.parentElement.parentElement; $('<tr width="100%">'+ '<td width="12%" align="right" class="general-td">名称:</td>'+ '<td width="38%" align="left" class="general-td"><input type="text" name="standardName2" class="inputbg" /></td>'+ '<td width="12%" align="right" class="general-td">分值:</td>'+ '<td width="38%" align="left" class="general-td"><input type="text" name="standardScore2" class="inputbg" /></td>'+ '</tr>'+ '<tr width="100%">'+ '<td width="12%" align="right" class="general-td">排序序号:</td>'+ '<td width="38%" align="left" class="general-td"><input type="text" name="standardOrder2" class="inputbg" /></td>'+ '<td width="12%" align="center" class="general-td" colSpan="2">'+ '<input name="add2" type="button" class="btn" value="删除" onclick="removeBigQa(this);"></td>'+ '</tr>').insertAfter(tr); } function removeBigQa(obj){ var tr2 = obj.parentElement.parentElement; var tr1 = tr2.previousSibling; $(tr2).remove(); $(tr1).remove(); } function addSmallQa(obj){ var tr = obj.parentElement.parentElement; $('<tr>'+ '<td width="10%" align="right" class="general-td">所属大项:</td>'+ '<td width="20%" align="left" class="general-td">'+ '<select name="parentItem">'+ '<option value="">请选择</option>'+ '</select>'+ '</td>'+ '<td width="10%" align="right" class="general-td">名称:</td>'+ '<td width="20%" align="left" class="general-td">'+ '<input type="text" name="standardName3" class="inputbg"/>'+ '</td>'+ '<td width="10%" align="right" class="general-td">分值:</td>'+ '<td width="30%" align="left" class="general-td">'+ '<input type="text" name="standardScore3"class="inputbg"/>'+ '</td>'+ '</tr>'+ '<tr width="100%">'+ '<td width="10%" align="right" class="general-td">瑕疵等级:</td>'+ '<td width="20%" align="left" class="general-td">'+ '<select name="badLevel">'+ '</select>'+ '</td>'+ '<td width="10%" align="right" class="general-td">操作方式:</td>'+ '<td width="30%" align="left" class="general-td">'+ '<select name="operation">'+ '<option value="1">点选</option>'+ '<option value="2">手工输入</option>'+ '</select>'+ '</td>'+ '<td width="10%" align="right" class="general-td">排序序号:</td>'+ '<td width="20%" align="left" class="general-td">'+ '<input type="text" name="standardOrder3" class="inputbg" />'+ '</td>'+ '</tr>'+ '<tr width="100%">'+ '<td width="12%" align="center" class="general-td" colspan="6">'+ '<input name="add3" type="button" class="btn" value="删除" onclick="removeSmallQa(this);">'+ '</td>'+ '</tr>').insertAfter(tr); $.getJSON( window.location.pathname, { "operation" : "fetchDefectLevel" }, function(data){ var badLevel = $('select[name="badLevel"]'); for(var i=0;i<badLevel.length;i++){ for(var j=0;j<data[0].defectLevelList.length;j++){ if(badLevel[i].options.length < data[0].defectLevelList.length){ $("<option></option>").val(data[0].defectLevelList[j].paramValue).text(data[0].defectLevelList[j].paramName).appendTo(badLevel[i]); } } } } ); refreshBigSelectList(); } function removeSmallQa(obj){ var tr3 = obj.parentElement.parentElement; var tr2 = tr3.previousSibling; var tr1 = tr2.previousSibling; $(tr3).remove(); $(tr2).remove(); $(tr1).remove(); } $('input[name="standardName2"]').live("change",function(){ refreshBigSelectList(); refreshParentItemSelectList(); }); $('input[name="standardScore2"]').live("blur",function(){ if($(this).val() != ""){ var score = $(this).val(); if(isNaN(score)){ $(this).val(""); }else{ if(score < 0 || score > 100){ $(this).val(""); } } } }); $('input[name="standardScore3"]').live("blur",function(){ if($(this).val() != ""){ var score = $(this).val(); if(isNaN(score)){ $(this).val(""); }else{ if(score < 0 || score > 100){ $(this).val(""); } } } }); $('input[name="standardOrder2"]').live("blur",function(){ if($(this).val() != ""){ var score = $(this).val(); if(isNaN(score)){ $(this).val(""); }else{ if(score < 1 || score > 9999){ $(this).val(""); } } } }); $('input[name="standardOrder3"]').live("blur",function(){ if($(this).val() != ""){ var score = $(this).val(); if(isNaN(score)){ $(this).val(""); }else{ if(score < 1 || score > 9999){ $(this).val(""); } } } }); function refreshBigSelectList(){ var parentItem = $('select[name="parentItem"]'); var standardName2 = $('input[name="standardName2"]'); parentItem.empty(); for(var i=0;i<parentItem.length;i++){ if(isBigSelectListNotNull(standardName2)){ for(var j=0;j<standardName2.length;j++){ if(standardName2[j].value != ""){ $("<option></option>").val(standardName2[j].value).text(standardName2[j].value).appendTo(parentItem[i]); } } }else{ $("<option></option>").val("").text("请选择").appendTo(parentItem[i]); } } } function refreshParentItemSelectList(){ var parentItem = $('select[name="parentItem"]'); for(var i=0;i<parentItem.length;i++){ var parentItem_nextSibling = parentItem[i].nextSibling; if(parentItem_nextSibling != null){ parentItem[i].parentElement.removeChild(parentItem_nextSibling); } if(parentItem[i].value==""){ $('<span style="color:red;">请先完善大项信息!</span>').insertAfter(parentItem[i]); } } } function isBigSelectListNotNull(standardName2){ var flag = false; for(var j=0;j<standardName2.length;j++){ if(standardName2[j].value != ""){ flag = true; break; } } return flag; } function saveStandard(){ var standardName1 = $('input[name="standardName1"]'); checkIfStandardNameDuplicated(standardName1[0]); var standardName1_nextSibling = standardName1[0].nextSibling; if(standardName1_nextSibling != null){ standardName1[0].parentElement.removeChild(standardName1_nextSibling); } if(standardName1[0].value == ""){ $('<span style="color:red;">标准名称不能为空!</span>').insertAfter(standardName1); } var isSuccessful = $('select[name="isSuccessful"]'); var isSuccessful_nextSibling = isSuccessful[0].nextSibling; if(isSuccessful_nextSibling != null){ isSuccessful[0].parentElement.removeChild(isSuccessful_nextSibling); } if(isSuccessful[0].value == ""){ $('<span style="color:red;">请选择销售结果!</span>').insertAfter(isSuccessful); } var standardName2 = $('input[name="standardName2"]'); for(var i=0;i<standardName2.length;i++){ var standardName2_nextSibling = standardName2[i].nextSibling; if(standardName2_nextSibling != null){ standardName2[i].parentElement.removeChild(standardName2_nextSibling); } if(standardName2[i].value == ""){ $('<span style="color:red;">大项名称不能为空!</span>').insertAfter(standardName2[i]); } } var standardName3 = $('input[name="standardName3"]'); for(var i=0;i<standardName3.length;i++){ var standardName3_nextSibling = standardName3[i].nextSibling; if(standardName3_nextSibling != null){ standardName3[i].parentElement.removeChild(standardName3_nextSibling); } if(standardName3[i].value == ""){ $('<span style="color:red;">小项名称不能为空!</span>').insertAfter(standardName3[i]); } } refreshParentItemSelectList(); return false; } function checkIfStandardNameDuplicated(obj){ var standardName1 = obj; var standardName1_nextSibling = standardName1.nextSibling; if(standardName1_nextSibling != null){ standardName1.parentElement.removeChild(standardName1_nextSibling); } if(standardName1.value == ""){ $('<span style="color:red;">标准名称不能为空!</span>').insertAfter(standardName1); }else{ $.ajax({ url: window.location.pathname, data: {"operation" : "checkStandardName","name":obj.value}, type:"post", contentType: "application/x-www-form-urlencoded; charset=utf-8", success: function(data){ if(data >= "1") { $('<span style="color:red;">标准名称已存在!</span>').insertAfter(standardName1); } }, error:function(){ alert("系统异常,请联系管理员!"); } }); } }
package com.tpaic.qualityAssessment.web.controller.system; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.web.servlet.ModelAndView; import com.tpaic.qualityAssessment.dto.QaListParamDTO; import com.tpaic.qualityAssessment.web.controller.common.AbstractCommonController; import com.tpaic.qualityAssessment.web.util.CommonUtils; import com.tpaic.qualityAssessment.web.util.ServiceRequestId; import com.tpaic.tpfa.app.dto.AggregatedSearchDTO; public class AddQaStandardViewController extends AbstractCommonController { protected final Log logger = LogFactory.getLog(getClass()); protected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception { AggregatedSearchDTO aggregatedSearchDTO = CommonUtils.getAggregatedSearchDTO("QaListParam.searchDefectLevelByType","defectLevel"); String action = ServiceRequestId.AGGREGATED_SEARCH_ACTION; @SuppressWarnings("unchecked") List<QaListParamDTO> defectLevelList = (List<QaListParamDTO>) this.getDispatch().dispatchRequest(aggregatedSearchDTO, action); Map<String,Object> result = new HashMap<String,Object>(); String operation = request.getParameter("operation"); result.put("defectLevelList", defectLevelList); response.setCharacterEncoding("UTF-8"); if("fetchDefectLevel".equals(operation)){ response.getWriter().write(JSONArray.fromObject(result).toString()); return null; }else if("checkStandardName".equals(operation)){ String name = request.getParameter("name"); AggregatedSearchDTO aggregatedSearchDTOForStandardNameCount = CommonUtils.getAggregatedSearchDTO("QaStandard.SearchStandardForCount",name,false); String count = (String) this.getDispatch().dispatchRequest(aggregatedSearchDTOForStandardNameCount, action); response.getWriter().write(count); return null; }else{ return new ModelAndView(this.getSuccessView(),result); } } }