Selaa lähdekoodia

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.admin.git into develop

eskim 4 vuotta sitten
vanhempi
commit
a6ac21d15e

+ 9 - 0
src/main/java/com/style24/admin/biz/dao/TsaSystemDao.java

@@ -109,6 +109,15 @@ public interface TsaSystemDao {
 	 */
 	Collection<Menu> getMenuList(Menu menu);
 
+	/**
+	 * 메뉴ID 건수 조회
+	 * @param menuId - 메뉴ID
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 7. 16
+	 */
+	int getMenuIdCount(String menuId);
+
 	/**
 	 * 메뉴 등록/수정
 	 * @param menu - 메뉴 정보

+ 11 - 0
src/main/java/com/style24/admin/biz/service/TsaSystemService.java

@@ -289,6 +289,17 @@ public class TsaSystemService {
 		}
 	}
 
+	/**
+	 * 메뉴ID 건수 조회
+	 * @param menuId - 메뉴ID
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 7. 16
+	 */
+	public int getMenuIdCount(String menuId) {
+		return systemDao.getMenuIdCount(menuId);
+	}
+
 	/**
 	 * 메뉴 등록/수정 및 메뉴권한 생성
 	 * @param menu - 메뉴 정보

+ 13 - 0
src/main/java/com/style24/admin/biz/web/TsaSystemController.java

@@ -310,6 +310,19 @@ public class TsaSystemController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+	/**
+	 * 메뉴ID 조회
+	 * @param menuId - 메뉴ID
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 7. 16
+	 */
+	@GetMapping("/menu/id/{menuId}")
+	@ResponseBody
+	public int getMenuIdCount(@PathVariable("menuId") String menuId) {
+		return systemService.getMenuIdCount(menuId);
+	}
+
 	/**
 	 * 메뉴 등록/수정 처리
 	 * @return

+ 8 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaSystem.xml

@@ -330,6 +330,14 @@
 		ORDER  BY ORDBY
 	</select>
 
+	<!-- 메뉴ID 건수 -->
+	<select id="getMenuIdCount" parameterType="String" resultType="int">
+		/* TsaSystem.getMenuIdCount */
+		SELECT COUNT(*) AS CNT
+		FROM   TB_MENU
+		WHERE  MENU_ID = #{menuId}
+	</select>
+	
 	<!-- 메뉴 등록/수정 -->
 	<insert id="saveMenu" parameterType="Menu">
 		/* TsaSystem.saveMenu */

+ 16 - 3
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -111,7 +111,7 @@
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddSubTextPopRow(this);">서브텍스트추가</button>';
 				}
 				if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
-					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>';
+					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this ,\'add\','+i+');">브랜드소개추가</button>';
 				}
 				if(contentsLoc!='SMM005' && contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001' && contentsLoc!='SGNB002'  && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012' && contentsLoc!='SMM001' && contentsLoc!='SOM001' && contentsLoc!='SMM003' && contentsLoc!='SMM004' && contentsLoc!='SMM006'
 					&& contentsLoc!='SBM007' && contentsLoc!='SBM008' && contentsLoc!='SBM009' && contentsLoc!='SBM010' && contentsLoc!='SBM011' && contentsLoc!='SBM013' && contentsLoc!='SBM017' && contentsLoc!='SBM018' && contentsLoc!='SBM019' && contentsLoc!='SOM003' && contentsLoc!='SOM004'  && contentsLoc!='SCM004' && contentsLoc!='SBM004' && contentsLoc!='SCM001'){
@@ -695,7 +695,7 @@
 				html += ' onclick="fnAddSubTextPopRow(this);">서브텍스트추가</button>\n';
 			}
 			if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
-				html += '<button type="button" class="btn btn-base btn-lg" id="addBrandDesc'+dataIdx+'" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>\n';
+				html += '<button type="button" class="btn btn-base btn-lg" id="addBrandDesc'+dataIdx+'" onclick="fnAddBrandDescRow(this,\'add\','+dataIdx+');">브랜드소개추가</button>\n';
 			}
 			if(contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001' && contentsLoc!='SGNB002' && contentsLoc!='SMM005') {
 				html += '<button type="button" class="btn btn-base btn-lg"';
@@ -1626,8 +1626,17 @@
 	 * 브랜드 소개추가
 	 */
 	var brandDescIndex = 0;
-	var fnAddBrandDescRow = function (param){
+	var fnAddBrandDescRow = function (param , gubun, idx){
+		if(gubun=='add'){
+			var thisIdx = $("#mcTable"+idx).find("input[name=tableIdx]").val();
+			brandDescIndex = thisIdx;
+		}
+
 		var val = typeof param=='object'?'':param;
+		if(!gagajf.isNull()){
+			val = val.replaceAll('&lt;','<').replaceAll('&gt;', '>').replaceAll('&quot;', '"');
+		}
+
 		var html = '<tr name="subTextPopRow">'
 		html += '<th>브랜드소개';
 		html += '<br/>';
@@ -1863,6 +1872,10 @@
 	var fnResetDispOrd = function (){
 		$('.mcTable').each(function (idx){
 			$(this).find('input[name=dispOrd]').val(idx+1);
+			if(contentsLoc=='SBM005'){
+				var thisIdx = $(this).find("input[name=tableIdx]").val();
+				$(this).find('textarea[name=subText]').attr('id','brandDesc'+thisIdx);
+			}
 		});
 	}
 

+ 61 - 3
src/main/webapp/WEB-INF/views/system/MenuForm.html

@@ -91,7 +91,8 @@
 								<tr>
 									<th>메뉴ID<i class="required" title="필수" aria-hidden="true"></i></th>
 									<td>
-										<input type="text" name="menuId" placeholder="" maxlength="20" required="required" data-valid-type="alphaNumeric" data-valid-name="메뉴ID" onkeyup="$(this).val($(this).val().toUpperCase());"/>
+										<input type="text" name="menuId" class="w150" placeholder="" maxlength="20" required="required" data-valid-type="alphaNumeric" data-valid-name="메뉴ID" onkeyup="$(this).val($(this).val().toUpperCase());"/>
+										<button type="button" class="btn btn-default btn-sm" id="menuIdDupCheck">중복체크</button>
 									</td>
 									<th>메뉴명<i class="required" title="필수" aria-hidden="true"></i></th>
 									<td>
@@ -101,7 +102,7 @@
 								<tr>
 									<th>메뉴구분<i class="required" title="필수" aria-hidden="true"></i></th>
 									<td>
-										<label class="rdoBtn"><input type="radio" name="menuGb" value="M"/>메뉴</label>
+										<label class="rdoBtn"><input type="radio" name="menuGb" value="M" checked="checked"/>메뉴</label>
 										<label class="rdoBtn"><input type="radio" name="menuGb" value="P"/>프로그램</label>
 									</td>
 									<th>상위메뉴</th>
@@ -378,16 +379,73 @@
 		$('#detailForm input[name=menuNm]').focus();
 	}
 	
+	// 메뉴ID 중복 체크
+	var isUnique = true;
+	$('#menuIdDupCheck').on('click', function() {
+		var $e = $('#registerForm input[name=menuId]');
+		if (gagajf.isNull($e.val())) {
+			mcxDialog.alertC('메뉴ID를 입력해 주세요.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$e.focus();
+				}
+			});
+			return;
+		}
+		
+		$.get('/system/menu/id/' + $e.val()
+			, function(data) {
+				if (data > 0) {
+					mcxDialog.alertC('이 ID는 이미 사용중입니다. 다른 ID를 입력해 주세요.', {
+						sureBtnText: "확인",
+						sureBtnClick: function() {
+							isUnique = false;
+							$e.val('');
+							$e.focus();
+						}
+					});
+				} else {
+					mcxDialog.alert('이 ID는 사용 가능합니다.');
+					isUnique = true;
+				}
+			});
+	});
+	
 	// 저장 처리
 	var fnSave = function(formId) {
 		// 입력 값 체크
 		if (!gagajf.validation(formId))
 			return false;
 		
+		if (formId == '#registerForm') {
+			if (!isUnique) {
+				mcxDialog.alert('메뉴ID를 중복체크해 주세요.');
+				return;
+			}
+		}
+		
 		$(formId + ' input[name=useYn]').val($(formId + ' input:checkbox[name=chkUseYn]').is(":checked") ? 'Y' : 'N');
 		$(formId + ' input[name=roleCds]').val($(formId + ' select[name=roleCd]').val());
 		
-		gagajf.ajaxFormSubmit($(formId).prop('action'), formId, fnSaveCallback);
+		if ($(formId + " input:radio[name=menuGb]").eq(1).is(':checked')) {
+			if (gagajf.isNull($(formId + ' input[name=menuUrl]').val())) {
+				mcxDialog.alertC('메뉴URL을 입력해 주세요.', {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$(formId + ' input[name=menuUrl]').focus();
+					}
+				});
+				return;
+			}
+		}
+		
+		mcxDialog.confirm("저장하시겠습니까?", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				gagajf.ajaxFormSubmit($(formId).prop('action'), formId, fnSaveCallback);
+			}
+		});
 	}
 	
 	// 등록/수정 처리 후 콜백함수