하석형 하석형 04-16
250416 하석형 필수입력 표시 추가
@32bbae22227f5dd36253412f0093988eae31fd28
client/views/component/Breadcrumb/Breadcrumb.vue
--- client/views/component/Breadcrumb/Breadcrumb.vue
+++ client/views/component/Breadcrumb/Breadcrumb.vue
@@ -25,13 +25,13 @@
     },
     // 새로고침 시 동작
     '$store.state.menuList': {
-    immediate: true,
-    handler(val) {
-      if (val && val.length > 0) {
-        this.generateBreadcrumb();
+      immediate: true,
+      handler(val) {
+        if (val && val.length > 0) {
+          this.generateBreadcrumb();
+        }
       }
     }
-  }
   },
   methods: {
     generateBreadcrumb() {
client/views/pages/adm/authority/authority/AuthorityInsert.vue
--- client/views/pages/adm/authority/authority/AuthorityInsert.vue
+++ client/views/pages/adm/authority/authority/AuthorityInsert.vue
@@ -5,10 +5,11 @@
         <div class="form-box">
           <div class="form-box-title">
             <p>기본정보</p>
+            <p><span>*</span>필수입력</p>
           </div>
           <div class="form-content">
             <div class="layout">
-              <label class="form-title">권한코드</label>
+              <label class="form-title"><span>*</span>권한코드</label>
               <div class="form-group">
                 <input
                   type="text"
@@ -24,7 +25,7 @@
             </div>
 
             <div class="border-bottom layout">
-              <label class="form-title">권한명</label>
+              <label class="form-title"><span>*</span>권한명</label>
               <input
                 type="text"
                 class="form-control sm"
@@ -154,12 +155,12 @@
       }
     },
     validation() {
-      if (this.authrt.authrtCd == null || this.authrt.authrtCd == "") {
+      if (!this.authrt.authrtCd || this.authrt.authrtCd.trim() === "") {
         alert("권한코드를 입력해주세요.");
         this.$refs.authrtCd.focus();
         return false;
       }
-      if (this.authrt.authrtCd.substr(0, 5) != "ROLE_") {
+      if (this.authrt.authrtCd.trim().substr(0, 5) != "ROLE_") {
         alert("권한코드는 반드시 ROLE_로 시작해야합니다.");
         this.$refs.authrtCd.focus();
         return false;
@@ -170,7 +171,8 @@
         this.$refs.authrtCd.focus();
         return false;
       }
-      if (this.authrt.authrtNm == null || this.authrt.authrtNm == "") {
+      this.authrt.authrtCd = this.authrt.authrtCd.trim(); // 완성된 권한코드 공백 제거
+      if (!this.authrt.authrtNm || this.authrt.authrtNm.trim() === "") {
         alert("권한명을 입력해주세요.");
         this.$refs.authrtNm.focus();
         return false;
client/views/pages/adm/boardManagement/boardManagement/BoardManagementInsert.vue
--- client/views/pages/adm/boardManagement/boardManagement/BoardManagementInsert.vue
+++ client/views/pages/adm/boardManagement/boardManagement/BoardManagementInsert.vue
@@ -5,10 +5,11 @@
                 <div class="form-box mb30">
                     <div class="form-box-title">
                         <p>기본 설정</p>
+                        <p><span>*</span>필수입력</p>
                     </div>
                     <div class="form-content">
                         <div class="layout">
-                            <label class="form-title">게시판명</label>
+                            <label class="form-title"><span>*</span>게시판명</label>
                             <input type="text" class="form-control sm" v-model="bbsMng.bbsNm"
                                 placeholder="게시판명을 입력하세요." />
                         </div>
@@ -23,7 +24,7 @@
                                 placeholder="게시판 설명을 입력하세요." />
                         </div>
                         <div class="layout">
-                            <label class="form-title">게시판 유형</label>
+                            <label class="form-title"><span>*</span>게시판 유형</label>
                             <select name="" id="" class="form-select sm" @change="typeSelect"
                                 :disabled="bbsMng.bbsMngId != null">
                                 <option :value="null" disabled :selected="bbsMng.bbsTypeId == null">
@@ -35,11 +36,11 @@
                             </select>
                         </div>
                         <div class="layout">
-                            <label class="form-title">목록 개수</label>
+                            <label class="form-title"><span>*</span>목록 개수</label>
                             <input type="number" class="form-control sm" v-model="bbsMng.artclCnt" />
                         </div>
                         <div class="layout">
-                            <label class="form-title">페이지 유형</label>
+                            <label class="form-title"><span>*</span>페이지 유형</label>
                             <select name="" id="" class="form-select sm" v-model="bbsMng.cd">
                                 <option :value="null" disabled>선택해주세요</option>
                                 <option v-for="(item, idx) in pageTypeList" :value="item.cd" :key="idx">
@@ -52,10 +53,11 @@
                 <div class="form-box">
                     <div  class="form-box-title">
                         <p>세부설정</p>
+                        <p><span>*</span>필수입력</p>
                     </div>
                     <div class="form-content">
                         <div class="layout">
-                            <label class="form-title">첨부파일 기능</label>
+                            <label class="form-title"><span>*</span>첨부파일 기능</label>
                             <div class="check-area">
                                 <div class="form-check">
                                     <input type="radio" name="file" id="file-y" class="mr5" value="Y"
@@ -70,7 +72,7 @@
                             </div>
                         </div>
                         <div class="layout">
-                            <label class="form-title">공지글 기능</label>
+                            <label class="form-title"><span>*</span>공지글 기능</label>
                             <div class="check-area">
                                 <div class="form-check">
                                     <input type="radio" name="notice" id="notice-y" class="mr5" value="Y"
@@ -85,7 +87,7 @@
                             </div>
                         </div>
                         <div class="layout">
-                            <label class="form-title">첨부파일 확장자</label>
+                            <label class="form-title"><span>*</span>첨부파일 확장자</label>
                             <div class="form-group">
                                 <div class="layout border-none">
                                     <input type="text" class="form-control sm" v-model="inputExtNm" placeholder="첨부파일 확장자를 입력하세요"
@@ -110,7 +112,7 @@
                             </div>
                         </div>
                         <div class="layout">
-                            <label class="form-title">파일크기 제한</label>
+                            <label class="form-title"><span>*</span>파일크기 제한</label>
                             <div class="input-group">
                                 <input type="number" class="form-control sm" v-model="bbsMng.fileSzLmt"
                                     :placeholder="'첨부파일 파일 크기를 입력하세요(0 입력 시 최대' + maxFileSize + 'MB)'" />
@@ -118,7 +120,7 @@
                             </div>
                         </div>
                         <div class="layout">
-                            <label class="form-title">비밀글 기능</label>
+                            <label class="form-title"><span>*</span>비밀글 기능</label>
                             <div class="check-area">
                                 <div class="form-check">
                                     <input type="radio" name="private" id="private-y" class="mr5" value="Y"
@@ -133,7 +135,7 @@
                             </div>
                         </div>
                         <div class="border-bottom layout">
-                            <label class="form-title">이전글/다음글 기능</label>
+                            <label class="form-title"><span>*</span>이전글/다음글 기능</label>
                             <div class="check-area">
                                 <div class="form-check">
                                     <input type="radio" name="bf" id="bf-y" class="mr5" value="Y"
@@ -148,7 +150,7 @@
                             </div>
                         </div>
                         <div class="layout">
-                            <label class="form-title">댓글 기능</label>
+                            <label class="form-title"><span>*</span>댓글 기능</label>
                             <div class="check-area">
                                 <div class="form-check">
                                     <input type="radio" name="comment" id="comment-y" class="mr5" value="Y"
client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
--- client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
+++ client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
@@ -47,11 +47,11 @@
               </div>
               <div class="form-content grid-none overflow-y">
                 <div class="layout">
-                  <label for="" class="form-title">제목</label>
+                  <label for="" class="form-title"><span>*</span>제목</label>
                   <input type="text" class="form-control sm" v-model="bbsCn.bbsNm" placeholder="제목을 입력하세요." />
                 </div>
                 <div class="layout"  ref="first">
-                  <label for="" class="form-title">내용</label>
+                  <label for="" class="form-title"><span>*</span>내용</label>
                   <div class="w_100 h_100">
                     <ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent>
                   </div>
@@ -324,6 +324,7 @@
         formData.append("multipartImgList", imgFile);
       }
       // axios 호출
+      console.log("등록 Authorization 확인: ", this.$store.state.authorization);
       await defaultAxios({
         url: this.$filters.ctxPath("/sys/bbsCn/saveBbsCn.file"),
         method: "post",
@@ -385,6 +386,7 @@
       for (const imgFile of this.imgFileList) {
         formData.append("multipartImgList", imgFile);
       }
+      console.log("수정 Authorization 확인: ", this.$store.state.authorization);
       // axios 호출
       defaultAxios({
         url: this.$filters.ctxPath("/sys/bbsCn/updateBbsCn.file"),
@@ -412,7 +414,7 @@
     },
     // 유효성 검사
     Validation() {
-      if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") {
+      if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") {
         alert("게시판 제목을 입력해주세요.");
         return false;
       }
client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
--- client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
+++ client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
@@ -9,7 +9,7 @@
           </div>
           <div class="form-content grid-none">
             <div class="layout" ref="first">
-              <label for="" class="form-title">내용</label>
+              <label for="" class="form-title"><span>*</span>내용</label>
               <template v-if="ansPageId != null">
                 <textarea class="form-control area"  placeholder="답변을 입력하세요."   v-model="bbsCn.ansCn" style="height: 100%;"></textarea>
               </template>
@@ -280,7 +280,7 @@
     // 등록
     async fnSave() {
       // 내용 null검사
-      if (this.bbsCn.bbsCn === null || this.bbsCn.bbsCn.trim() == "") {
+      if (!this.bbsCn.bbsCn || this.bbsCn.bbsCn.trim() === "") {
         alert("내용을 입력하세요.");
         return;
       }
client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
--- client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
+++ client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
@@ -9,7 +9,7 @@
           </div>
           <div class="form-content grid-none overflow-y">
             <div class="layout">
-              <label for="" class="form-title">제목</label>
+              <label for="" class="form-title"><span>*</span>제목</label>
               <input
                 type="text"
                 class="form-control sm"
@@ -18,13 +18,13 @@
               />
             </div>
             <div class="layout" ref="first">
-              <label for="" class="form-title">내용</label>
+              <label for="" class="form-title"><span>*</span>내용</label>
               <div class="w_100 h_100">
                 <ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent>
               </div>
             </div>
             <div class="layout">
-              <label for="" class="form-title">이미지 파일</label>
+              <label for="" class="form-title"><span>*</span>이미지 파일</label>
               <div>
                 <label for="imgFile" class="file-upload">파일찾기</label>
                 <input type="file"  id="imgFile"  ref="imgFile" @change="fnImgFileInsert" multiple accept="image/*"  class="sr-only"/>
@@ -420,7 +420,7 @@
     },
     // 유효성 검사
     Validation() {
-      if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") {
+      if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") {
         alert("게시판 제목을 입력해주세요.");
         return false;
       }
client/views/pages/adm/boardManagement/template/videoTemplate/VideoInsert.vue
--- client/views/pages/adm/boardManagement/template/videoTemplate/VideoInsert.vue
+++ client/views/pages/adm/boardManagement/template/videoTemplate/VideoInsert.vue
@@ -9,7 +9,7 @@
           </div>
           <div class="form-content grid-none overflow-y">
             <div class="layout">
-              <label for="" class="form-title">제목</label>
+              <label for="" class="form-title"><span>*</span>제목</label>
               <input
                 type="text"
                 class="form-control sm"
@@ -18,13 +18,13 @@
               />
             </div>
             <div class="layout" ref="first">
-              <label for="" class="form-title">내용</label>
+              <label for="" class="form-title"><span>*</span>내용</label>
               <div class="w_100 h_100">
                 <ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent>
               </div>
             </div>
             <div class="layout">
-              <label for="" class="form-title">영상 URL</label>
+              <label for="" class="form-title"><span>*</span>영상 URL</label>
               <input
                 type="text"
                 class="form-control sm"
@@ -746,7 +746,7 @@
     },
     // 유효성 검사
     Validation() {
-      if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") {
+      if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") {
         alert("게시판 제목을 입력해주세요.");
         return false;
       }
@@ -772,7 +772,7 @@
       }
 
       // url null 검사
-      if (this.bbsCn.vdoUrl == null || this.bbsCn.vdoUrl.trim() == "") {
+      if (!this.bbsCn.vdoUrl || this.bbsCn.vdoUrl.trim() === "") {
         alert("영상 URL을 입력해주세요.");
         return false;
       }
client/views/pages/adm/boardManagement/wordsManagement/WordsManagementSelectList.vue
--- client/views/pages/adm/boardManagement/wordsManagement/WordsManagementSelectList.vue
+++ client/views/pages/adm/boardManagement/wordsManagement/WordsManagementSelectList.vue
@@ -146,6 +146,10 @@
         // 금지어 등록
         async fnSave() {
             try {
+                if (this.wordsArr.length == 0) {
+                    alert('등록할 금지어를 추가해주세요.')
+                    return
+                }
                 const param = {
                     wordsArr: this.wordsArr
                 }
client/views/pages/adm/departmentManagement/DepartmentManagement.vue
--- client/views/pages/adm/departmentManagement/DepartmentManagement.vue
+++ client/views/pages/adm/departmentManagement/DepartmentManagement.vue
@@ -38,6 +38,7 @@
             <div class="form-box">
               <div class="form-box-title">
                 <p>부서 정보</p>
+                <p><span>*</span>필수입력</p>
               </div>
               <div class="form-content">
                 <div  class="layout">
@@ -50,7 +51,7 @@
                   />
                 </div>
                 <div  class="layout">
-                  <label class="form-title">부서명</label>
+                  <label class="form-title"><span>*</span>부서명</label>
                   <input
                     type="text"
                     class="form-control sm"
@@ -60,7 +61,7 @@
                   />
                 </div>
                 <div  class="grid-column layout">
-                  <label class="form-title">부서권한</label>
+                  <label class="form-title"><span>*</span>부서권한</label>
                   <select
                     class="form-select sm"
                     :disabled="isFormDisabled"
@@ -287,9 +288,8 @@
     },
     // 저장
     async fnSave() {
-      // 부서 권한 설정
-      if (!this.fnDeptAuthrt()) {
-        alert("부서 권한을 지정해주세요.");
+      // 유효성 검사
+      if (this.validation() == false) {
         return false;
       }
       // 신규 등록 및 수정 설정
@@ -305,13 +305,15 @@
         alert(error.response.data.message);
       }
     },
-    // 부서권한 설정
-    fnDeptAuthrt() {
-      if (
-        this.selectedAuthrt == null ||
-        this.selectedAuthrt == "" ||
-        this.selectedAuthrt == undefined
-      ) {
+    // 유효성 검사
+    validation() {
+      if (!this.viewDept.deptNm || this.viewDept.deptNm.trim() === "") {
+        alert("부서명을 입력해주세요.");
+        return false;
+      }
+      // 부서권한 검사
+      if (!this.selectedAuthrt) {
+        alert("부서 권한을 지정해주세요.");
         return false;
       }
       let authrtList = [];
client/views/pages/adm/menuManagement/menuManagement/MenuManagement.vue
--- client/views/pages/adm/menuManagement/menuManagement/MenuManagement.vue
+++ client/views/pages/adm/menuManagement/menuManagement/MenuManagement.vue
@@ -28,6 +28,7 @@
             <div class="form-box sch-full">
               <div class="form-box-title">
                 <p>메뉴 정보</p>
+                <p><span>*</span>필수입력</p>
               </div>
               <div class="form-content"  style="grid-template-rows: auto auto auto auto 1fr auto auto;">
                 <div  class="layout">
@@ -35,12 +36,12 @@
                   <input type="text" class="form-control sm" v-model="viewMenu.upMenuNm" disabled />
                 </div>
                 <div  class="layout">
-                  <label class="form-title">메뉴명</label>
+                  <label class="form-title"><span>*</span>메뉴명</label>
                   <input type="text" class="form-control sm" ref="menuNm" v-model="viewMenu.menuNm"
                     :disabled="!editMode" placeholder="메뉴명을 입력해주세요"/>
                 </div>
                 <div class="grid-column layout">
-                  <label class="form-title">메뉴 타입</label>
+                  <label class="form-title"><span>*</span>메뉴 타입</label>
                   <div class="input-group">
                       <select class="form-select sm" ref="menuType" v-model="viewMenu.menuType" :disabled="!editMode">
                         <option value="">선택</option>
@@ -67,7 +68,7 @@
                   </div>
                 </div>
                 <div  class="layout">
-                  <label class="form-title">메뉴 사용자</label>
+                  <label class="form-title"><span>*</span>메뉴 사용자</label>
                   <div class="check-area">
                     <div class="form-check">
                       <input type="radio" name="menuUser" id="menuUserAdm"  v-model="viewMenu.menuUser"
@@ -82,7 +83,7 @@
                   </div>
                 </div>
                 <div  class="layout">
-                  <label class="form-title">링크유형 </label>
+                  <label class="form-title"><span>*</span>링크유형 </label>
                   <div class="check-area">
                     <div class="form-check">
                       <input type="radio" name="linkType" id="linkTypeY"  v-model="viewMenu.linkType"
@@ -97,7 +98,7 @@
                   </div>
                 </div>
                 <div class="layout">
-                  <label for="" class="form-title">만족도 조사 사용 여부 </label>
+                  <label for="" class="form-title"><span>*</span>만족도 조사 사용 여부 </label>
                   <div class="check-area">
                     <div class="form-check">
                       <input type="radio" name="dgstfnExmnUseYn" id="dgstfnExmnUseY" 
@@ -112,7 +113,7 @@
                   </div>
                 </div>
                 <div  class="layout">
-                  <label class="form-title">메뉴 노출 여부</label>
+                  <label class="form-title"><span>*</span>메뉴 노출 여부</label>
                   <div class="check-area">
                     <div class="form-check">
                       <input type="radio" name="menuExpsrYn" id="menuExpsrY" 
@@ -304,61 +305,49 @@
 
     // 메뉴관리 유효성 검사
     valiadtion() {
+      console.log("this.viewMenu: ", this.viewMenu);
       // 메뉴명 입력 여부
-      if (this.viewMenu["menuNm"] == null || this.viewMenu["menuNm"] == "") {
+      if (!this.viewMenu["menuNm"] || this.viewMenu["menuNm"].trim() === "") {
         alert("메뉴명을 입력하세요.");
         this.$refs.menuNm.focus();
         return false;
       }
       // 메뉴 타입 입력 여부
-      if (
-        this.viewMenu["menuType"] != null &&
-        this.viewMenu["menuType"] != ""
-      ) {
-        if (
-          this.viewMenu["menuType"] == "bbs" ||
-          this.viewMenu["menuType"] == "conts"
-        ) {
-          if (
-            this.viewMenu["menuTypeCtgry"] == null ||
-            this.viewMenu["menuTypeCtgry"] == ""
-          ) {
-            alert("메뉴 타입 항목을 선택하세요.");
-            this.$refs.menuTypeCtgry.focus();
-            return false;
-          }
-        } else if (this.viewMenu["menuType"] == "link") {
-          if (
-            this.viewMenu["linkUrl"] == null ||
-            this.viewMenu["linkUrl"] == ""
-          ) {
-            alert("링크 주소를 입력하세요.");
-            this.$refs.linkUrl.focus();
-            return false;
-          }
+      if (!this.viewMenu["menuType"]) {
+        alert("메뉴 타입을 선택하세요.");
+        return false;
+      }
+      // 메뉴 타입 하위 입력 여부
+      if (this.viewMenu["menuType"] == "bbs" || this.viewMenu["menuType"] == "conts") {
+        if (!this.viewMenu["menuTypeCtgry"]) {
+          alert("메뉴 타입 항목을 선택하세요.");
+          this.$refs.menuTypeCtgry.focus();
+          return false;
+        }
+      } else if (this.viewMenu["menuType"] == "link") {
+        if (!this.viewMenu["linkUrl"]) {
+          alert("링크 주소를 입력하세요.");
+          this.$refs.linkUrl.focus();
+          return false;
         }
       }
+      // 메뉴 사용자
+      if (!this.viewMenu["menuUser"]) {
+        alert("메뉴 사용자를 선택하세요.");
+        return false;
+      }
       // 링크 유형
-      if (
-        this.viewMenu["linkType"] == null ||
-        this.viewMenu["linkType"] == ""
-      ) {
+      if (!this.viewMenu["linkType"]) {
         alert("링크 유형을 선택하세요.");
         return false;
       }
       // 만족도 조사 사용여부
-      if (
-        this.viewMenu["dgstfnExmnUseYn"] == null ||
-        this.viewMenu["dgstfnExmnUseYn"] == ""
-      ) {
+      if (!this.viewMenu["dgstfnExmnUseYn"]) {
         alert("만족도 조사 사용여부를 선택하세요.");
         return false;
       }
       // 메뉴 노출 여부
-      if (
-        this.viewMenu["menuExpsrYn"] == null ||
-        this.viewMenu["menuExpsrYn"] == ""
-      ) {
+      if (!this.viewMenu["menuExpsrYn"]) {
         alert("메뉴 노출 여부를 선택하세요.");
         return false;
       }
client/views/pages/adm/popup/PopupManagementInsert.vue
--- client/views/pages/adm/popup/PopupManagementInsert.vue
+++ client/views/pages/adm/popup/PopupManagementInsert.vue
@@ -5,10 +5,11 @@
         <div class="form-box">
           <div class="form-box-title">
             <p>기본정보</p>
+            <p><span>*</span>필수입력</p>
           </div>
           <div class="form-content">
             <div class="layout">
-              <label class="form-title">제목</label>
+              <label class="form-title"><span>*</span>제목</label>
               <input
                 type="text"
                 class="form-control sm"
@@ -18,7 +19,7 @@
               />
             </div>
             <div class="layout">
-              <label class="form-title">게시일</label>
+              <label class="form-title"><span>*</span>게시일</label>
               <div class="input-group">
                 <div class="form-control sm cal">
                   <VueDatePicker
@@ -44,7 +45,7 @@
               </div>
             </div>
             <div class="layout">
-              <label class="form-title">팝업크기</label>
+              <label class="form-title"><span>*</span>팝업크기</label>
               <div class="input-group">
                 <select class="form-select sm fixed" v-model="popup['popupSizeType']">
                   <option value="fixed">고정값</option>
@@ -90,7 +91,7 @@
               </div>
             </div>
             <div  class="layout">
-              <label class="form-title">업로드 형식</label>
+              <label class="form-title"><span>*</span>업로드 형식</label>
               <div class="check-area">
                 <div class="form-check">
                   <input
@@ -116,7 +117,7 @@
             </div>
             <template v-if="popup['popupType'] == 'image'">
               <div  class="layout">
-                <label class="form-title">이미지 첨부파일</label>
+                <label class="form-title"><span>*</span>이미지 첨부파일</label>
     
                   <div v-for="(file, index) of this.fileList" :key="index" class="input-group" style="height: 100%" >
                     <p v-if="file['fileId'] != null">
@@ -145,7 +146,7 @@
               </div>
           
               <div class="layout">
-                <label class="form-title">링크 URL</label>
+                <label class="form-title"><span>*</span>링크 URL</label>
                 <input
                   type="text"
                   class="form-control sm"
@@ -158,7 +159,7 @@
             </template>
             <template v-if="popup['popupType'] == 'video'">
                 <div  class="layout">
-                  <label class="form-title">동영상 URL</label>
+                  <label class="form-title"><span>*</span>동영상 URL</label>
                   <input
                     type="text"
                     class="form-control sm"
@@ -168,9 +169,10 @@
                     ref="vdoUrl"
                   />
                 </div>
+                <div  class="layout"></div>
             </template>
             <div  class="layout">
-              <label class="form-title">팝업 노출 페이지</label>
+              <label class="form-title"><span>*</span>팝업 노출 페이지</label>
               <select
                 class="form-select sm "
                 v-model="popup['pageType']"
@@ -187,7 +189,7 @@
               </select>
             </div>
             <div  class="layout">
-              <label class="form-title">순서</label>
+              <label class="form-title"><span>*</span>순서</label>
               <select class="form-select sm " v-model="popup['sn']" ref="sn">
                 <option value="0">순서를 선택하세요.</option>
                 <option value="1">1</option>
@@ -338,44 +340,41 @@
 
     // 유효성 검사
     valiadtion() {
-      if (this.popup["popupTtl"] == null || this.popup["popupTtl"] == "") {
+      if (!this.popup["popupTtl"] || this.popup["popupTtl"].trim() === "") {
         alert("제목을 입력해주세요.");
         this.$refs.popupTtl.focus();
         return false;
       }
-      if (this.popup["bgngDt"] == null || this.popup["bgngDt"] == "") {
+      if (!this.popup["bgngDt"]) {
         alert("시작일을 입력해주세요.");
         this.$refs.bgngDt.focus();
         return false;
       }
-      if (this.popup["endDt"] == null || this.popup["endDt"] == "") {
+      if (!this.popup["endDt"]) {
         alert("종료일을 입력해주세요.");
         this.$refs.endDt.focus();
         return false;
       }
-      if (
-        this.popup["popupSizeType"] == "null" ||
-        this.popup["popupSizeType"] == ""
-      ) {
+      if (!this.popup["popupSizeType"]) {
         alert("팝업 크기를 선택해주세요.");
         return false;
       }
       if (this.popup["popupSizeType"] == "fixed") {
-        if (this.popup["popupSize"] == null || this.popup["popupSize"] == "") {
+        if (!this.popup["popupSize"]) {
           alert("팝업 크기를 선택해주세요.");
           return false;
         }
       } else if (this.popup["popupSizeType"] == "custom") {
-        if (this.popup["wdthLen"] == null || this.popup["wdthLen"] == "") {
+        if (!this.popup["wdthLen"]) {
           alert("팝업 가로 크기를 선택해주세요.");
           return false;
         }
-        if (this.popup["vrtcLen"] == null || this.popup["vrtcLen"] == "") {
+        if (!this.popup["vrtcLen"]) {
           alert("팝업 세로 크기를 선택해주세요.");
           return false;
         }
       }
-      if (this.popup["popupType"] == null || this.popup["popupType"] == "") {
+      if (!this.popup["popupType"]) {
         alert("업로드 형식을 선택해주세요.");
         return false;
       }
@@ -384,31 +383,31 @@
           alert("이미지 첨부파일을 선택해주세요.");
           return false;
         }
-        if (this.popup["linkUrl"] == null || this.popup["linkUrl"] == "") {
+        if (!this.popup["linkUrl"]) {
           alert("링크 URL을 선택해주세요.");
           this.$refs.linkUrl.focus();
           return false;
         }
       } else if (this.popup["popupType"] == "video") {
-        if (this.popup["vdoUrl"] == null || this.popup["vdoUrl"] == "") {
+        if (!this.popup["vdoUrl"]) {
           alert("동영상 URL을 선택해주세요.");
           this.$refs.vdoUrl.focus();
           return false;
         }
       }
-      if (this.popup["sn"] == null || this.popup["sn"] == "") {
+      if (!this.popup["sn"]) {
         alert("순서를 선택해주세요.");
         this.$refs.sn.focus();
         return false;
       }
-      if (this.popup["pageType"] == null || this.popup["pageType"] == "") {
+      if (!this.popup["pageType"]) {
         alert("팝업 노출 페이지를 선택해주세요.");
         return false;
       }
-      if (this.popup["popupUseYn"] == null || this.popup["popupUseYn"] == "") {
-        alert("사용 유무를 선택해주세요.");
-        return false;
-      }
+      // if (!this.popup["popupUseYn"]) {
+      //   alert("사용 유무를 선택해주세요.");
+      //   return false;
+      // }
     },
 
     //─────axios─────┐
client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
--- client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
+++ client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
@@ -30,6 +30,7 @@
             <div class="form-box sch-full">
               <div class="form-box-title">
                 <p>공통코드정보</p>
+                <p><span>*</span>필수입력</p>
               </div>
               <div class="form-content" style="grid-template-rows: auto auto auto 1fr;">
                 <div class="layout">
@@ -41,12 +42,12 @@
                   <input type="text" class="form-control sm" disabled v-model="viewCode.upCdNm" />
                 </div>
                 <div class="layout">
-                  <label for="" class="form-title">코드</label>
+                  <label for="" class="form-title"><span>*</span>코드</label>
                   <input type="text" class="form-control sm" :disabled="isFormDisabled || !submitStts"
                     v-model="viewCode.cd" placeholder="코드를 입력해주세요"/>
                 </div>
                 <div class="layout">
-                  <label for="" class="form-title">코드명</label>
+                  <label for="" class="form-title"><span>*</span>코드명</label>
                   <input type="text" class="form-control sm" :disabled="isFormDisabled" v-model="viewCode.cdNm" placeholder="코드명을 입력해주세요"/>
                 </div>
                 <div class="layout">
@@ -54,7 +55,7 @@
                   <input type="text" class="form-control sm" :disabled="isFormDisabled" v-model="viewCode.cdVl" placeholder="코드값을 입력해주세요"/>
                 </div>
                 <div class="border-bottom layout">
-                  <label for="" class="form-title">사용여부</label>
+                  <label for="" class="form-title"><span>*</span>사용여부</label>
                   <div class="check-area">
                     <div class="form-check">
                       <input type="radio" name="code" id="y"  value="Y" :disabled="isFormDisabled"
@@ -240,11 +241,7 @@
       this.submitStts = true;
     },
     validation() {
-      if (
-        this.viewCode.cd == null ||
-        this.viewCode.cd == "" ||
-        this.viewCode.cd == undefined
-      ) {
+      if (!this.viewCode.cd || this.viewCode.cd.trim() === "") {
         alert("코드를 입력해주세요.");
         return false;
       }
@@ -253,11 +250,7 @@
         alert("코드는 영문과 언더바(_)만 사용하여 작성해주세요.");
         return false;
       }
-      if (
-        this.viewCode.cdNm == null ||
-        this.viewCode.cdNm == "" ||
-        this.viewCode.cdNm == undefined
-      ) {
+      if (!this.viewCode.cdNm || this.viewCode.cdNm.trim() === "") {
         alert("코드명을 입력해주세요.");
         return false;
       }
client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
--- client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
+++ client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
@@ -5,11 +5,12 @@
         <div class="form-box">
           <div class="form-box-title">
             <p>기본정보</p>
+            <p><span>*</span>필수입력</p>
           </div>
           <div class="form-content">
             <div class="layout">
                 <label for="" class="form-title">
-                  콘텐츠 한글명
+                  <span>*</span>콘텐츠 한글명
                 </label>
                 <input
                   type="text"
@@ -21,7 +22,7 @@
               </div>
               <div class="layout">
                 <label for="" class="form-title">
-                  콘텐츠 영문명
+                  <span>*</span>콘텐츠 영문명
                 </label>
                 <input
                   type="text"
@@ -35,13 +36,16 @@
                 <label for="" class="form-title">
                   관리자 PATH
                 </label>
-                <input
-                  type="text"
-                  class="form-control sm"
-                  v-model="contsTypeVO.mngrPageCrs"
-                  ref="mngrPageCrs"
-                  placeholder="관리자 path를 입력해주세요"
-                />
+                <div class="form-group">
+                  <input
+                    type="text"
+                    class="form-control sm"
+                    v-model="contsTypeVO.mngrPageCrs"
+                    ref="mngrPageCrs"
+                    placeholder="관리자 path를 입력해주세요"
+                  />
+                  <span><strong>관리자 PATH</strong> 또는 <strong>사용자 PATH</strong> 중 하나는 필수입니다</span>
+                </div>
               </div>
               <div class="layout">
                 <label for="" class="form-title">
@@ -57,7 +61,7 @@
               </div>
               <div class="layout">
                 <label for="" class="form-title">
-                  COMPONENT_URL
+                  <span>*</span>COMPONENT_URL
                 </label>
                 <input
                   type="text"
@@ -69,7 +73,7 @@
               </div>
               <div class="layout">
                 <label for="" class="form-title">
-                  메뉴노출
+                  <span>*</span>메뉴노출
                 </label>
                 <div class="check-area">
                     <div class="form-check">
client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
--- client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
@@ -4,8 +4,8 @@
       <div class="scroll">
         <div open class="form-box">
           <div class="form-box-title">
-            <p class="summary-style pl10">기본 정보</p>
-            <span style="color: red;"> ※ 로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</span>
+            <p>기본정보</p>
+            <p><span>*</span>로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</p>
           </div>
           <div class="form-content">
             <div class="layout">
client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
--- client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
+++ client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
@@ -9,7 +9,7 @@
                     </div>
                     <div class="form-content">
                             <div class="layout">
-                                <label for="" class="form-title"><span>*</span> 제어 유형</label>
+                                <label for="" class="form-title"><span>*</span>제어 유형</label>
                                 <select name="selectType" id="selectType" class="form-select sm"
                                     v-model="accesCtrl.cntrlType">
                                     <option value="">전체</option>
@@ -18,14 +18,14 @@
                                 </select>
                             </div>
                             <div class="layout border-bottom">
-                                <label for="" class="form-title"><span>*</span> 제어 IP</label>
+                                <label for="" class="form-title"><span>*</span>제어 IP</label>
                                 <div class="form-group">
                                     <input type="text" class="form-control sm" v-model="accesCtrl.cntrlIp"  placeholder="1~255 범위의 숫자로 구성하여 형식에 맞게 작성해주세요." />
                                     <span>ex) 192.168.0.1 / 192.168.0.*</span>
                                 </div>
                             </div>
                             <div class="layout">
-                                <label for="" class="form-title"><span>*</span> 제어 경로</label>
+                                <label for="" class="form-title"><span>*</span>제어 경로</label>
                                 <input type="text"  class="form-control sm"  v-model="accesCtrl.cntrlCrs" placeholder="제어할 경로 URL을 입력하세요."/>
                             </div>
                     </div>
Add a comment
List