Procházet zdrojové kódy

양의실수(preal) 속성 추가

gagamel před 4 roky
rodič
revize
3585360780

+ 108 - 8
src/main/webapp/WEB-INF/views/envset/BenefitEnvsetForm.html

@@ -84,56 +84,56 @@
 					<tr>
 						<th>자사상품정상포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품정상포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품정상포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품이월포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품이월포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>자사상품이월포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="자사상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품정상포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal5" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품정상포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal5" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품정상포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal6" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal6" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품이월포인트적립율(PC)</th>
 						<td>
-							<input name="c14StrSetVal7" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품이월포인트적립율(PC)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal7" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(PC)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
 					<tr>
 						<th>입점상품이월포인트적립율(모바일)</th>
 						<td>
-							<input name="c14StrSetVal8" type="text" class="w50 aR" maxlength="3" data-valid-type="real" data-valid-name="입점상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
+							<input name="c14StrSetVal8" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
 							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
 						</td>
 					</tr>
@@ -299,6 +299,86 @@
 			params.strSetVal1 = $('input[name=c12StrSetVal1]').val();
 			params.strSetVal2 = $('input[name=c12StrSetVal2]').val();
 		} else if (envsetType == 'C14') { // 구매포인트
+			if ($('input[name=c14StrSetVal1]').val() > 100) {
+				mcxDialog.alertC('자사상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal1]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c14StrSetVal2]').val() > 100) {
+				mcxDialog.alertC('자사상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal2]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal3]').val() > 100) {
+				mcxDialog.alertC('자사상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal3]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal4]').val() > 100) {
+				mcxDialog.alertC('자사상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal4]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal5]').val() > 100) {
+				mcxDialog.alertC('입점상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal5]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c14StrSetVal6]').val() > 100) {
+				mcxDialog.alertC('입점상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal6]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal7]').val() > 100) {
+				mcxDialog.alertC('입점상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal7]').focus();
+					}
+				});
+				return;
+			}
+			
+			if ($('input[name=c14StrSetVal8]').val() > 100) {
+				mcxDialog.alertC('입점상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c14StrSetVal8]').focus();
+					}
+				});
+				return;
+			}
+		
 			params.envsetNm = '구매포인트';
 			params.strSetVal1 = $('input[name=c14StrSetVal1]').val();
 			params.strSetVal2 = $('input[name=c14StrSetVal2]').val();
@@ -316,6 +396,26 @@
 			params.strSetVal4 = $('input[name=c15StrSetVal4]').val().removeComma();
 			params.strSetVal5 = $('input[name=c15StrSetVal5]').val().removeComma();
 		} else if (envsetType == 'C17') { // 포인트사용
+			if ($('input[name=c17StrSetVal2]').val() > 100) {
+				mcxDialog.alertC('최대사용가능포인트율(%)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c17StrSetVal2]').focus();
+					}
+				});
+				return;
+			}
+		
+			if ($('input[name=c17StrSetVal3]').val() > 100) {
+				mcxDialog.alertC('최대즉시사용포인트율(%)은 최대 100 이하로 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('input[name=c17StrSetVal3]').focus();
+					}
+				});
+				return;
+			}
+			
 			params.envsetNm = '포인트사용';
 			params.strSetVal1 = $('input[name=c17StrSetVal1]').val().removeComma();
 			params.strSetVal2 = $('input[name=c17StrSetVal2]').val();

+ 34 - 5
src/main/webapp/ux/plugins/gaga/gaga.validation.js

@@ -107,7 +107,7 @@ var gagajf = {
 	testRegexp : function(el, regexp, type) {
 		var val = $(el).val();
 
-		if (type == 'integer' || type == 'pinteger' || type == 'real') {
+		if (type == 'integer' || type == 'pinteger' || type == 'real' || type == 'preal') {
 			// 콤마(,) 제거
 			val = val.removeComma();
 		}
@@ -319,6 +319,12 @@ var gagajf = {
 					if (gagajf.testRegexp($(el), /^-?(([0-9]+\.?)|(\.?))\d*$/, 'real'))
 						return true;
 
+					isInvalid = false;
+					return false;
+				case 'preal': // 실수
+					if (gagajf.testRegexp($(el), /^(([0-9]+\.?)|(\.?))\d*$/, 'preal'))
+						return true;
+
 					isInvalid = false;
 					return false;
 				case 'alphaNumeric': // 알파벳+숫자
@@ -431,6 +437,7 @@ var gagajf = {
 						}
 					}
 				case 'real': // 실수
+				case 'preal': // 양의실수
 					//최대값
 					if ($(el).attr("max")) {
 						if ($(el).val() > $(el).attr("max")) {
@@ -484,24 +491,24 @@ var gagajf = {
 	},
 
 	/**
-	 * formId의 input의 data-valid-type이 integer, pinteger, real인 경우에 값에 comma(,)를 자동으로 붙여 표시한다.
+	 * formId의 input의 data-valid-type이 integer, pinteger, real, preal인 경우에 값에 comma(,)를 자동으로 붙여 표시한다.
 	 * 사용) gagajf.addCommaAtNumberFormattedInput('#registerForm');
 	 */
 	addCommaAtNumberFormattedInput : function(formId) {
 		$(formId).find('input').each(function(idx, el) {
-			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real') {
+			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real' || $(el).data('validType') == 'preal') {
 				$(el).val($(el).val().removeComma().addComma());
 			}
 		});
 	},
 
 	/**
-	 * formId의 input의 data-valid-type이 integer, pinteger, real, numeric 인 경우에 값에 comma(,)를 자동으로 제거한다.
+	 * formId의 input의 data-valid-type이 integer, pinteger, real, preal, numeric 인 경우에 값에 comma(,)를 자동으로 제거한다.
 	 * 사용) gagajf.removeCommaAtNumberFormattedInput('#registerForm');
 	 */
 	removeCommaAtNumberFormattedInput : function(formId) {
 		$(formId).find('input').each(function(idx, el) {
-			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real' || $(el).data('validType') == 'numeric') {
+			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'pinteger' || $(el).data('validType') == 'real' || $(el).data('validType') == 'preal' || $(el).data('validType') == 'numeric') {
 				$(el).val($(el).val().removeComma());
 			}
 		});
@@ -1084,6 +1091,7 @@ var gagajf = {
  *           data-valid-type="integer" : 정수. 속성 지정시 숫자와 +, - 만 입력 가능
  *           data-valid-type="pinteger" : 양의정수. 속성 지정시 숫자와 +만 입력 가능
  *           data-valid-type="real" : 실수. 속성 지정시 숫자와 +, -, . 만 입력 가능
+ *           data-valid-type="preal" : 양의실수. 속성 지정시 숫자와 +, .만 입력 가능
  *           data-valid-type="alphaNumeric" : 알파벳과 숫자. 속성 지정 시 영문과 숫자만 형식에 맞게 입력 가능
  *           data-valid-type="date" : 숫자와 / 만 입력 가능
  *           data-valid-type="korean" : 한글. 속성 지정 시 한글만 형식에 맞게 입력 가능
@@ -1098,6 +1106,7 @@ var gagajf = {
  *     <input type="text" data-valid-type="integer" />
  *     <input type="text" data-valid-type="pinteger" />
  *     <input type="text" data-valid-type="real" />
+ *     <input type="text" data-valid-type="preal" />
  *     <input type="text" data-valid-type="alphaNumeric" />
  *     <input type="text" data-valid-type="date" />
  *     <input type="text" data-valid-type="korean" />
@@ -1188,6 +1197,26 @@ $(document).on("keydown", "[data-valid-type=real]", function() {
 		event.returnValue = false;
 	}
 });
+$(document).on("blur", "[data-valid-type=preal]", function() { $(this).val($(this).val().removeComma().addComma()); });
+$(document).on("click", "[data-valid-type=preal]", function() { $(this).val($(this).val().removeComma()); });
+$(document).on("keyup", "[data-valid-type=preal]", function() { $(this).val($(this).val().replace(/[^0-9\+\.]/gi,"")); });
+$(document).on("keydown", "[data-valid-type=preal]", function() {
+	var value = $(this).val();
+
+	var keyCode = gagajf.getKeyCode();
+	if (keyCode == -1)
+		return true;
+
+	if (!((keyCode >= 48 && keyCode <= 57 && !event.shiftKey) // 0 ~ 9
+		|| (keyCode >= 96 && keyCode <= 105) // 0 ~ 9 (Num Lock)
+		|| (keyCode == 187 && event.shiftKey) // Shift 하고 +
+		|| (keyCode == 107) // + (Num Lock)
+		|| (keyCode == 190 && !event.shiftKey) // .
+		)) {
+		$(this).val(value);
+		event.returnValue = false;
+	}
+});
 $(document).on("keyup", "[data-valid-type=alphaNumeric]", function() { $(this).val($(this).val().replace(/[^a-zA-Z0-9]/gi, "")); });
 $(document).on("keyup", "[data-valid-type=date]", function() { $(this).val($(this).val().replace(/[^0-9\/]/gi,"")); });
 $(document).on("keyup", "[data-valid-type=calendar]", function() { $(this).val($(this).val().replace(/[^0-9\/]/gi,"")); });