
--- client/views/component/Breadcrumb/Breadcrumb.vue
+++ client/views/component/Breadcrumb/Breadcrumb.vue
... | ... | @@ -25,13 +25,13 @@ |
25 | 25 |
}, |
26 | 26 |
// 새로고침 시 동작 |
27 | 27 |
'$store.state.menuList': { |
28 |
- immediate: true, |
|
29 |
- handler(val) { |
|
30 |
- if (val && val.length > 0) { |
|
31 |
- this.generateBreadcrumb(); |
|
28 |
+ immediate: true, |
|
29 |
+ handler(val) { |
|
30 |
+ if (val && val.length > 0) { |
|
31 |
+ this.generateBreadcrumb(); |
|
32 |
+ } |
|
32 | 33 |
} |
33 | 34 |
} |
34 |
- } |
|
35 | 35 |
}, |
36 | 36 |
methods: { |
37 | 37 |
generateBreadcrumb() { |
--- client/views/pages/adm/boardManagement/boardManagement/BoardManagementInsert.vue
+++ client/views/pages/adm/boardManagement/boardManagement/BoardManagementInsert.vue
... | ... | @@ -5,10 +5,11 @@ |
5 | 5 |
<div class="form-box mb30"> |
6 | 6 |
<div class="form-box-title"> |
7 | 7 |
<p>기본 설정</p> |
8 |
+ <p><span>*</span>필수입력</p> |
|
8 | 9 |
</div> |
9 | 10 |
<div class="form-content"> |
10 | 11 |
<div class="layout"> |
11 |
- <label class="form-title">게시판명</label> |
|
12 |
+ <label class="form-title"><span>*</span>게시판명</label> |
|
12 | 13 |
<input type="text" class="form-control sm" v-model="bbsMng.bbsNm" |
13 | 14 |
placeholder="게시판명을 입력하세요." /> |
14 | 15 |
</div> |
... | ... | @@ -23,7 +24,7 @@ |
23 | 24 |
placeholder="게시판 설명을 입력하세요." /> |
24 | 25 |
</div> |
25 | 26 |
<div class="layout"> |
26 |
- <label class="form-title">게시판 유형</label> |
|
27 |
+ <label class="form-title"><span>*</span>게시판 유형</label> |
|
27 | 28 |
<select name="" id="" class="form-select sm" @change="typeSelect" |
28 | 29 |
:disabled="bbsMng.bbsMngId != null"> |
29 | 30 |
<option :value="null" disabled :selected="bbsMng.bbsTypeId == null"> |
... | ... | @@ -35,11 +36,11 @@ |
35 | 36 |
</select> |
36 | 37 |
</div> |
37 | 38 |
<div class="layout"> |
38 |
- <label class="form-title">목록 개수</label> |
|
39 |
+ <label class="form-title"><span>*</span>목록 개수</label> |
|
39 | 40 |
<input type="number" class="form-control sm" v-model="bbsMng.artclCnt" /> |
40 | 41 |
</div> |
41 | 42 |
<div class="layout"> |
42 |
- <label class="form-title">페이지 유형</label> |
|
43 |
+ <label class="form-title"><span>*</span>페이지 유형</label> |
|
43 | 44 |
<select name="" id="" class="form-select sm" v-model="bbsMng.cd"> |
44 | 45 |
<option :value="null" disabled>선택해주세요</option> |
45 | 46 |
<option v-for="(item, idx) in pageTypeList" :value="item.cd" :key="idx"> |
... | ... | @@ -52,10 +53,11 @@ |
52 | 53 |
<div class="form-box"> |
53 | 54 |
<div class="form-box-title"> |
54 | 55 |
<p>세부설정</p> |
56 |
+ <p><span>*</span>필수입력</p> |
|
55 | 57 |
</div> |
56 | 58 |
<div class="form-content"> |
57 | 59 |
<div class="layout"> |
58 |
- <label class="form-title">첨부파일 기능</label> |
|
60 |
+ <label class="form-title"><span>*</span>첨부파일 기능</label> |
|
59 | 61 |
<div class="check-area"> |
60 | 62 |
<div class="form-check"> |
61 | 63 |
<input type="radio" name="file" id="file-y" class="mr5" value="Y" |
... | ... | @@ -70,7 +72,7 @@ |
70 | 72 |
</div> |
71 | 73 |
</div> |
72 | 74 |
<div class="layout"> |
73 |
- <label class="form-title">공지글 기능</label> |
|
75 |
+ <label class="form-title"><span>*</span>공지글 기능</label> |
|
74 | 76 |
<div class="check-area"> |
75 | 77 |
<div class="form-check"> |
76 | 78 |
<input type="radio" name="notice" id="notice-y" class="mr5" value="Y" |
... | ... | @@ -85,7 +87,7 @@ |
85 | 87 |
</div> |
86 | 88 |
</div> |
87 | 89 |
<div class="layout"> |
88 |
- <label class="form-title">첨부파일 확장자</label> |
|
90 |
+ <label class="form-title"><span>*</span>첨부파일 확장자</label> |
|
89 | 91 |
<div class="form-group"> |
90 | 92 |
<div class="layout border-none"> |
91 | 93 |
<input type="text" class="form-control sm" v-model="inputExtNm" placeholder="첨부파일 확장자를 입력하세요" |
... | ... | @@ -110,7 +112,7 @@ |
110 | 112 |
</div> |
111 | 113 |
</div> |
112 | 114 |
<div class="layout"> |
113 |
- <label class="form-title">파일크기 제한</label> |
|
115 |
+ <label class="form-title"><span>*</span>파일크기 제한</label> |
|
114 | 116 |
<div class="input-group"> |
115 | 117 |
<input type="number" class="form-control sm" v-model="bbsMng.fileSzLmt" |
116 | 118 |
:placeholder="'첨부파일 파일 크기를 입력하세요(0 입력 시 최대' + maxFileSize + 'MB)'" /> |
... | ... | @@ -118,7 +120,7 @@ |
118 | 120 |
</div> |
119 | 121 |
</div> |
120 | 122 |
<div class="layout"> |
121 |
- <label class="form-title">비밀글 기능</label> |
|
123 |
+ <label class="form-title"><span>*</span>비밀글 기능</label> |
|
122 | 124 |
<div class="check-area"> |
123 | 125 |
<div class="form-check"> |
124 | 126 |
<input type="radio" name="private" id="private-y" class="mr5" value="Y" |
... | ... | @@ -133,7 +135,7 @@ |
133 | 135 |
</div> |
134 | 136 |
</div> |
135 | 137 |
<div class="border-bottom layout"> |
136 |
- <label class="form-title">이전글/다음글 기능</label> |
|
138 |
+ <label class="form-title"><span>*</span>이전글/다음글 기능</label> |
|
137 | 139 |
<div class="check-area"> |
138 | 140 |
<div class="form-check"> |
139 | 141 |
<input type="radio" name="bf" id="bf-y" class="mr5" value="Y" |
... | ... | @@ -148,7 +150,7 @@ |
148 | 150 |
</div> |
149 | 151 |
</div> |
150 | 152 |
<div class="layout"> |
151 |
- <label class="form-title">댓글 기능</label> |
|
153 |
+ <label class="form-title"><span>*</span>댓글 기능</label> |
|
152 | 154 |
<div class="check-area"> |
153 | 155 |
<div class="form-check"> |
154 | 156 |
<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
... | ... | @@ -47,11 +47,11 @@ |
47 | 47 |
</div> |
48 | 48 |
<div class="form-content grid-none overflow-y"> |
49 | 49 |
<div class="layout"> |
50 |
- <label for="" class="form-title">제목</label> |
|
50 |
+ <label for="" class="form-title"><span>*</span>제목</label> |
|
51 | 51 |
<input type="text" class="form-control sm" v-model="bbsCn.bbsNm" placeholder="제목을 입력하세요." /> |
52 | 52 |
</div> |
53 | 53 |
<div class="layout" ref="first"> |
54 |
- <label for="" class="form-title">내용</label> |
|
54 |
+ <label for="" class="form-title"><span>*</span>내용</label> |
|
55 | 55 |
<div class="w_100 h_100"> |
56 | 56 |
<ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent> |
57 | 57 |
</div> |
... | ... | @@ -324,6 +324,7 @@ |
324 | 324 |
formData.append("multipartImgList", imgFile); |
325 | 325 |
} |
326 | 326 |
// axios 호출 |
327 |
+ console.log("등록 Authorization 확인: ", this.$store.state.authorization); |
|
327 | 328 |
await defaultAxios({ |
328 | 329 |
url: this.$filters.ctxPath("/sys/bbsCn/saveBbsCn.file"), |
329 | 330 |
method: "post", |
... | ... | @@ -385,6 +386,7 @@ |
385 | 386 |
for (const imgFile of this.imgFileList) { |
386 | 387 |
formData.append("multipartImgList", imgFile); |
387 | 388 |
} |
389 |
+ console.log("수정 Authorization 확인: ", this.$store.state.authorization); |
|
388 | 390 |
// axios 호출 |
389 | 391 |
defaultAxios({ |
390 | 392 |
url: this.$filters.ctxPath("/sys/bbsCn/updateBbsCn.file"), |
... | ... | @@ -412,7 +414,7 @@ |
412 | 414 |
}, |
413 | 415 |
// 유효성 검사 |
414 | 416 |
Validation() { |
415 |
- if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") { |
|
417 |
+ if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") { |
|
416 | 418 |
alert("게시판 제목을 입력해주세요."); |
417 | 419 |
return false; |
418 | 420 |
} |
--- client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
+++ client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 |
</div> |
10 | 10 |
<div class="form-content grid-none"> |
11 | 11 |
<div class="layout" ref="first"> |
12 |
- <label for="" class="form-title">내용</label> |
|
12 |
+ <label for="" class="form-title"><span>*</span>내용</label> |
|
13 | 13 |
<template v-if="ansPageId != null"> |
14 | 14 |
<textarea class="form-control area" placeholder="답변을 입력하세요." v-model="bbsCn.ansCn" style="height: 100%;"></textarea> |
15 | 15 |
</template> |
... | ... | @@ -280,7 +280,7 @@ |
280 | 280 |
// 등록 |
281 | 281 |
async fnSave() { |
282 | 282 |
// 내용 null검사 |
283 |
- if (this.bbsCn.bbsCn === null || this.bbsCn.bbsCn.trim() == "") { |
|
283 |
+ if (!this.bbsCn.bbsCn || this.bbsCn.bbsCn.trim() === "") { |
|
284 | 284 |
alert("내용을 입력하세요."); |
285 | 285 |
return; |
286 | 286 |
} |
--- client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
+++ client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 |
</div> |
10 | 10 |
<div class="form-content grid-none overflow-y"> |
11 | 11 |
<div class="layout"> |
12 |
- <label for="" class="form-title">제목</label> |
|
12 |
+ <label for="" class="form-title"><span>*</span>제목</label> |
|
13 | 13 |
<input |
14 | 14 |
type="text" |
15 | 15 |
class="form-control sm" |
... | ... | @@ -18,13 +18,13 @@ |
18 | 18 |
/> |
19 | 19 |
</div> |
20 | 20 |
<div class="layout" ref="first"> |
21 |
- <label for="" class="form-title">내용</label> |
|
21 |
+ <label for="" class="form-title"><span>*</span>내용</label> |
|
22 | 22 |
<div class="w_100 h_100"> |
23 | 23 |
<ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent> |
24 | 24 |
</div> |
25 | 25 |
</div> |
26 | 26 |
<div class="layout"> |
27 |
- <label for="" class="form-title">이미지 파일</label> |
|
27 |
+ <label for="" class="form-title"><span>*</span>이미지 파일</label> |
|
28 | 28 |
<div> |
29 | 29 |
<label for="imgFile" class="file-upload">파일찾기</label> |
30 | 30 |
<input type="file" id="imgFile" ref="imgFile" @change="fnImgFileInsert" multiple accept="image/*" class="sr-only"/> |
... | ... | @@ -420,7 +420,7 @@ |
420 | 420 |
}, |
421 | 421 |
// 유효성 검사 |
422 | 422 |
Validation() { |
423 |
- if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") { |
|
423 |
+ if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") { |
|
424 | 424 |
alert("게시판 제목을 입력해주세요."); |
425 | 425 |
return false; |
426 | 426 |
} |
--- client/views/pages/adm/boardManagement/template/videoTemplate/VideoInsert.vue
+++ client/views/pages/adm/boardManagement/template/videoTemplate/VideoInsert.vue
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 |
</div> |
10 | 10 |
<div class="form-content grid-none overflow-y"> |
11 | 11 |
<div class="layout"> |
12 |
- <label for="" class="form-title">제목</label> |
|
12 |
+ <label for="" class="form-title"><span>*</span>제목</label> |
|
13 | 13 |
<input |
14 | 14 |
type="text" |
15 | 15 |
class="form-control sm" |
... | ... | @@ -18,13 +18,13 @@ |
18 | 18 |
/> |
19 | 19 |
</div> |
20 | 20 |
<div class="layout" ref="first"> |
21 |
- <label for="" class="form-title">내용</label> |
|
21 |
+ <label for="" class="form-title"><span>*</span>내용</label> |
|
22 | 22 |
<div class="w_100 h_100"> |
23 | 23 |
<ckeditorComponent ref="ckeditor5" :bbsCn.sync="bbsCn"></ckeditorComponent> |
24 | 24 |
</div> |
25 | 25 |
</div> |
26 | 26 |
<div class="layout"> |
27 |
- <label for="" class="form-title">영상 URL</label> |
|
27 |
+ <label for="" class="form-title"><span>*</span>영상 URL</label> |
|
28 | 28 |
<input |
29 | 29 |
type="text" |
30 | 30 |
class="form-control sm" |
... | ... | @@ -746,7 +746,7 @@ |
746 | 746 |
}, |
747 | 747 |
// 유효성 검사 |
748 | 748 |
Validation() { |
749 |
- if (this.bbsCn.bbsNm == null || this.bbsCn.bbsNm.trim() == "") { |
|
749 |
+ if (!this.bbsCn.bbsNm || this.bbsCn.bbsNm.trim() === "") { |
|
750 | 750 |
alert("게시판 제목을 입력해주세요."); |
751 | 751 |
return false; |
752 | 752 |
} |
... | ... | @@ -772,7 +772,7 @@ |
772 | 772 |
} |
773 | 773 |
|
774 | 774 |
// url null 검사 |
775 |
- if (this.bbsCn.vdoUrl == null || this.bbsCn.vdoUrl.trim() == "") { |
|
775 |
+ if (!this.bbsCn.vdoUrl || this.bbsCn.vdoUrl.trim() === "") { |
|
776 | 776 |
alert("영상 URL을 입력해주세요."); |
777 | 777 |
return false; |
778 | 778 |
} |
--- client/views/pages/adm/boardManagement/wordsManagement/WordsManagementSelectList.vue
+++ client/views/pages/adm/boardManagement/wordsManagement/WordsManagementSelectList.vue
... | ... | @@ -146,6 +146,10 @@ |
146 | 146 |
// 금지어 등록 |
147 | 147 |
async fnSave() { |
148 | 148 |
try { |
149 |
+ if (this.wordsArr.length == 0) { |
|
150 |
+ alert('등록할 금지어를 추가해주세요.') |
|
151 |
+ return |
|
152 |
+ } |
|
149 | 153 |
const param = { |
150 | 154 |
wordsArr: this.wordsArr |
151 | 155 |
} |
--- client/views/pages/adm/departmentManagement/DepartmentManagement.vue
+++ client/views/pages/adm/departmentManagement/DepartmentManagement.vue
... | ... | @@ -38,6 +38,7 @@ |
38 | 38 |
<div class="form-box"> |
39 | 39 |
<div class="form-box-title"> |
40 | 40 |
<p>부서 정보</p> |
41 |
+ <p><span>*</span>필수입력</p> |
|
41 | 42 |
</div> |
42 | 43 |
<div class="form-content"> |
43 | 44 |
<div class="layout"> |
... | ... | @@ -50,7 +51,7 @@ |
50 | 51 |
/> |
51 | 52 |
</div> |
52 | 53 |
<div class="layout"> |
53 |
- <label class="form-title">부서명</label> |
|
54 |
+ <label class="form-title"><span>*</span>부서명</label> |
|
54 | 55 |
<input |
55 | 56 |
type="text" |
56 | 57 |
class="form-control sm" |
... | ... | @@ -60,7 +61,7 @@ |
60 | 61 |
/> |
61 | 62 |
</div> |
62 | 63 |
<div class="grid-column layout"> |
63 |
- <label class="form-title">부서권한</label> |
|
64 |
+ <label class="form-title"><span>*</span>부서권한</label> |
|
64 | 65 |
<select |
65 | 66 |
class="form-select sm" |
66 | 67 |
:disabled="isFormDisabled" |
... | ... | @@ -287,9 +288,8 @@ |
287 | 288 |
}, |
288 | 289 |
// 저장 |
289 | 290 |
async fnSave() { |
290 |
- // 부서 권한 설정 |
|
291 |
- if (!this.fnDeptAuthrt()) { |
|
292 |
- alert("부서 권한을 지정해주세요."); |
|
291 |
+ // 유효성 검사 |
|
292 |
+ if (this.validation() == false) { |
|
293 | 293 |
return false; |
294 | 294 |
} |
295 | 295 |
// 신규 등록 및 수정 설정 |
... | ... | @@ -305,13 +305,15 @@ |
305 | 305 |
alert(error.response.data.message); |
306 | 306 |
} |
307 | 307 |
}, |
308 |
- // 부서권한 설정 |
|
309 |
- fnDeptAuthrt() { |
|
310 |
- if ( |
|
311 |
- this.selectedAuthrt == null || |
|
312 |
- this.selectedAuthrt == "" || |
|
313 |
- this.selectedAuthrt == undefined |
|
314 |
- ) { |
|
308 |
+ // 유효성 검사 |
|
309 |
+ validation() { |
|
310 |
+ if (!this.viewDept.deptNm || this.viewDept.deptNm.trim() === "") { |
|
311 |
+ alert("부서명을 입력해주세요."); |
|
312 |
+ return false; |
|
313 |
+ } |
|
314 |
+ // 부서권한 검사 |
|
315 |
+ if (!this.selectedAuthrt) { |
|
316 |
+ alert("부서 권한을 지정해주세요."); |
|
315 | 317 |
return false; |
316 | 318 |
} |
317 | 319 |
let authrtList = []; |
--- client/views/pages/adm/popup/PopupManagementInsert.vue
+++ client/views/pages/adm/popup/PopupManagementInsert.vue
... | ... | @@ -5,10 +5,11 @@ |
5 | 5 |
<div class="form-box"> |
6 | 6 |
<div class="form-box-title"> |
7 | 7 |
<p>기본정보</p> |
8 |
+ <p><span>*</span>필수입력</p> |
|
8 | 9 |
</div> |
9 | 10 |
<div class="form-content"> |
10 | 11 |
<div class="layout"> |
11 |
- <label class="form-title">제목</label> |
|
12 |
+ <label class="form-title"><span>*</span>제목</label> |
|
12 | 13 |
<input |
13 | 14 |
type="text" |
14 | 15 |
class="form-control sm" |
... | ... | @@ -18,7 +19,7 @@ |
18 | 19 |
/> |
19 | 20 |
</div> |
20 | 21 |
<div class="layout"> |
21 |
- <label class="form-title">게시일</label> |
|
22 |
+ <label class="form-title"><span>*</span>게시일</label> |
|
22 | 23 |
<div class="input-group"> |
23 | 24 |
<div class="form-control sm cal"> |
24 | 25 |
<VueDatePicker |
... | ... | @@ -44,7 +45,7 @@ |
44 | 45 |
</div> |
45 | 46 |
</div> |
46 | 47 |
<div class="layout"> |
47 |
- <label class="form-title">팝업크기</label> |
|
48 |
+ <label class="form-title"><span>*</span>팝업크기</label> |
|
48 | 49 |
<div class="input-group"> |
49 | 50 |
<select class="form-select sm fixed" v-model="popup['popupSizeType']"> |
50 | 51 |
<option value="fixed">고정값</option> |
... | ... | @@ -90,7 +91,7 @@ |
90 | 91 |
</div> |
91 | 92 |
</div> |
92 | 93 |
<div class="layout"> |
93 |
- <label class="form-title">업로드 형식</label> |
|
94 |
+ <label class="form-title"><span>*</span>업로드 형식</label> |
|
94 | 95 |
<div class="check-area"> |
95 | 96 |
<div class="form-check"> |
96 | 97 |
<input |
... | ... | @@ -116,7 +117,7 @@ |
116 | 117 |
</div> |
117 | 118 |
<template v-if="popup['popupType'] == 'image'"> |
118 | 119 |
<div class="layout"> |
119 |
- <label class="form-title">이미지 첨부파일</label> |
|
120 |
+ <label class="form-title"><span>*</span>이미지 첨부파일</label> |
|
120 | 121 |
|
121 | 122 |
<div v-for="(file, index) of this.fileList" :key="index" class="input-group" style="height: 100%" > |
122 | 123 |
<p v-if="file['fileId'] != null"> |
... | ... | @@ -145,7 +146,7 @@ |
145 | 146 |
</div> |
146 | 147 |
|
147 | 148 |
<div class="layout"> |
148 |
- <label class="form-title">링크 URL</label> |
|
149 |
+ <label class="form-title"><span>*</span>링크 URL</label> |
|
149 | 150 |
<input |
150 | 151 |
type="text" |
151 | 152 |
class="form-control sm" |
... | ... | @@ -158,7 +159,7 @@ |
158 | 159 |
</template> |
159 | 160 |
<template v-if="popup['popupType'] == 'video'"> |
160 | 161 |
<div class="layout"> |
161 |
- <label class="form-title">동영상 URL</label> |
|
162 |
+ <label class="form-title"><span>*</span>동영상 URL</label> |
|
162 | 163 |
<input |
163 | 164 |
type="text" |
164 | 165 |
class="form-control sm" |
... | ... | @@ -168,9 +169,10 @@ |
168 | 169 |
ref="vdoUrl" |
169 | 170 |
/> |
170 | 171 |
</div> |
172 |
+ <div class="layout"></div> |
|
171 | 173 |
</template> |
172 | 174 |
<div class="layout"> |
173 |
- <label class="form-title">팝업 노출 페이지</label> |
|
175 |
+ <label class="form-title"><span>*</span>팝업 노출 페이지</label> |
|
174 | 176 |
<select |
175 | 177 |
class="form-select sm " |
176 | 178 |
v-model="popup['pageType']" |
... | ... | @@ -187,7 +189,7 @@ |
187 | 189 |
</select> |
188 | 190 |
</div> |
189 | 191 |
<div class="layout"> |
190 |
- <label class="form-title">순서</label> |
|
192 |
+ <label class="form-title"><span>*</span>순서</label> |
|
191 | 193 |
<select class="form-select sm " v-model="popup['sn']" ref="sn"> |
192 | 194 |
<option value="0">순서를 선택하세요.</option> |
193 | 195 |
<option value="1">1</option> |
... | ... | @@ -338,44 +340,41 @@ |
338 | 340 |
|
339 | 341 |
// 유효성 검사 |
340 | 342 |
valiadtion() { |
341 |
- if (this.popup["popupTtl"] == null || this.popup["popupTtl"] == "") { |
|
343 |
+ if (!this.popup["popupTtl"] || this.popup["popupTtl"].trim() === "") { |
|
342 | 344 |
alert("제목을 입력해주세요."); |
343 | 345 |
this.$refs.popupTtl.focus(); |
344 | 346 |
return false; |
345 | 347 |
} |
346 |
- if (this.popup["bgngDt"] == null || this.popup["bgngDt"] == "") { |
|
348 |
+ if (!this.popup["bgngDt"]) { |
|
347 | 349 |
alert("시작일을 입력해주세요."); |
348 | 350 |
this.$refs.bgngDt.focus(); |
349 | 351 |
return false; |
350 | 352 |
} |
351 |
- if (this.popup["endDt"] == null || this.popup["endDt"] == "") { |
|
353 |
+ if (!this.popup["endDt"]) { |
|
352 | 354 |
alert("종료일을 입력해주세요."); |
353 | 355 |
this.$refs.endDt.focus(); |
354 | 356 |
return false; |
355 | 357 |
} |
356 |
- if ( |
|
357 |
- this.popup["popupSizeType"] == "null" || |
|
358 |
- this.popup["popupSizeType"] == "" |
|
359 |
- ) { |
|
358 |
+ if (!this.popup["popupSizeType"]) { |
|
360 | 359 |
alert("팝업 크기를 선택해주세요."); |
361 | 360 |
return false; |
362 | 361 |
} |
363 | 362 |
if (this.popup["popupSizeType"] == "fixed") { |
364 |
- if (this.popup["popupSize"] == null || this.popup["popupSize"] == "") { |
|
363 |
+ if (!this.popup["popupSize"]) { |
|
365 | 364 |
alert("팝업 크기를 선택해주세요."); |
366 | 365 |
return false; |
367 | 366 |
} |
368 | 367 |
} else if (this.popup["popupSizeType"] == "custom") { |
369 |
- if (this.popup["wdthLen"] == null || this.popup["wdthLen"] == "") { |
|
368 |
+ if (!this.popup["wdthLen"]) { |
|
370 | 369 |
alert("팝업 가로 크기를 선택해주세요."); |
371 | 370 |
return false; |
372 | 371 |
} |
373 |
- if (this.popup["vrtcLen"] == null || this.popup["vrtcLen"] == "") { |
|
372 |
+ if (!this.popup["vrtcLen"]) { |
|
374 | 373 |
alert("팝업 세로 크기를 선택해주세요."); |
375 | 374 |
return false; |
376 | 375 |
} |
377 | 376 |
} |
378 |
- if (this.popup["popupType"] == null || this.popup["popupType"] == "") { |
|
377 |
+ if (!this.popup["popupType"]) { |
|
379 | 378 |
alert("업로드 형식을 선택해주세요."); |
380 | 379 |
return false; |
381 | 380 |
} |
... | ... | @@ -384,31 +383,31 @@ |
384 | 383 |
alert("이미지 첨부파일을 선택해주세요."); |
385 | 384 |
return false; |
386 | 385 |
} |
387 |
- if (this.popup["linkUrl"] == null || this.popup["linkUrl"] == "") { |
|
386 |
+ if (!this.popup["linkUrl"]) { |
|
388 | 387 |
alert("링크 URL을 선택해주세요."); |
389 | 388 |
this.$refs.linkUrl.focus(); |
390 | 389 |
return false; |
391 | 390 |
} |
392 | 391 |
} else if (this.popup["popupType"] == "video") { |
393 |
- if (this.popup["vdoUrl"] == null || this.popup["vdoUrl"] == "") { |
|
392 |
+ if (!this.popup["vdoUrl"]) { |
|
394 | 393 |
alert("동영상 URL을 선택해주세요."); |
395 | 394 |
this.$refs.vdoUrl.focus(); |
396 | 395 |
return false; |
397 | 396 |
} |
398 | 397 |
} |
399 |
- if (this.popup["sn"] == null || this.popup["sn"] == "") { |
|
398 |
+ if (!this.popup["sn"]) { |
|
400 | 399 |
alert("순서를 선택해주세요."); |
401 | 400 |
this.$refs.sn.focus(); |
402 | 401 |
return false; |
403 | 402 |
} |
404 |
- if (this.popup["pageType"] == null || this.popup["pageType"] == "") { |
|
403 |
+ if (!this.popup["pageType"]) { |
|
405 | 404 |
alert("팝업 노출 페이지를 선택해주세요."); |
406 | 405 |
return false; |
407 | 406 |
} |
408 |
- if (this.popup["popupUseYn"] == null || this.popup["popupUseYn"] == "") { |
|
409 |
- alert("사용 유무를 선택해주세요."); |
|
410 |
- return false; |
|
411 |
- } |
|
407 |
+ // if (!this.popup["popupUseYn"]) { |
|
408 |
+ // alert("사용 유무를 선택해주세요."); |
|
409 |
+ // return false; |
|
410 |
+ // } |
|
412 | 411 |
}, |
413 | 412 |
|
414 | 413 |
//─────axios─────┐ |
--- client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
+++ client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
... | ... | @@ -30,6 +30,7 @@ |
30 | 30 |
<div class="form-box sch-full"> |
31 | 31 |
<div class="form-box-title"> |
32 | 32 |
<p>공통코드정보</p> |
33 |
+ <p><span>*</span>필수입력</p> |
|
33 | 34 |
</div> |
34 | 35 |
<div class="form-content" style="grid-template-rows: auto auto auto 1fr;"> |
35 | 36 |
<div class="layout"> |
... | ... | @@ -41,12 +42,12 @@ |
41 | 42 |
<input type="text" class="form-control sm" disabled v-model="viewCode.upCdNm" /> |
42 | 43 |
</div> |
43 | 44 |
<div class="layout"> |
44 |
- <label for="" class="form-title">코드</label> |
|
45 |
+ <label for="" class="form-title"><span>*</span>코드</label> |
|
45 | 46 |
<input type="text" class="form-control sm" :disabled="isFormDisabled || !submitStts" |
46 | 47 |
v-model="viewCode.cd" placeholder="코드를 입력해주세요"/> |
47 | 48 |
</div> |
48 | 49 |
<div class="layout"> |
49 |
- <label for="" class="form-title">코드명</label> |
|
50 |
+ <label for="" class="form-title"><span>*</span>코드명</label> |
|
50 | 51 |
<input type="text" class="form-control sm" :disabled="isFormDisabled" v-model="viewCode.cdNm" placeholder="코드명을 입력해주세요"/> |
51 | 52 |
</div> |
52 | 53 |
<div class="layout"> |
... | ... | @@ -54,7 +55,7 @@ |
54 | 55 |
<input type="text" class="form-control sm" :disabled="isFormDisabled" v-model="viewCode.cdVl" placeholder="코드값을 입력해주세요"/> |
55 | 56 |
</div> |
56 | 57 |
<div class="border-bottom layout"> |
57 |
- <label for="" class="form-title">사용여부</label> |
|
58 |
+ <label for="" class="form-title"><span>*</span>사용여부</label> |
|
58 | 59 |
<div class="check-area"> |
59 | 60 |
<div class="form-check"> |
60 | 61 |
<input type="radio" name="code" id="y" value="Y" :disabled="isFormDisabled" |
... | ... | @@ -240,11 +241,7 @@ |
240 | 241 |
this.submitStts = true; |
241 | 242 |
}, |
242 | 243 |
validation() { |
243 |
- if ( |
|
244 |
- this.viewCode.cd == null || |
|
245 |
- this.viewCode.cd == "" || |
|
246 |
- this.viewCode.cd == undefined |
|
247 |
- ) { |
|
244 |
+ if (!this.viewCode.cd || this.viewCode.cd.trim() === "") { |
|
248 | 245 |
alert("코드를 입력해주세요."); |
249 | 246 |
return false; |
250 | 247 |
} |
... | ... | @@ -253,11 +250,7 @@ |
253 | 250 |
alert("코드는 영문과 언더바(_)만 사용하여 작성해주세요."); |
254 | 251 |
return false; |
255 | 252 |
} |
256 |
- if ( |
|
257 |
- this.viewCode.cdNm == null || |
|
258 |
- this.viewCode.cdNm == "" || |
|
259 |
- this.viewCode.cdNm == undefined |
|
260 |
- ) { |
|
253 |
+ if (!this.viewCode.cdNm || this.viewCode.cdNm.trim() === "") { |
|
261 | 254 |
alert("코드명을 입력해주세요."); |
262 | 255 |
return false; |
263 | 256 |
} |
--- client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
+++ client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
... | ... | @@ -5,11 +5,12 @@ |
5 | 5 |
<div class="form-box"> |
6 | 6 |
<div class="form-box-title"> |
7 | 7 |
<p>기본정보</p> |
8 |
+ <p><span>*</span>필수입력</p> |
|
8 | 9 |
</div> |
9 | 10 |
<div class="form-content"> |
10 | 11 |
<div class="layout"> |
11 | 12 |
<label for="" class="form-title"> |
12 |
- 콘텐츠 한글명 |
|
13 |
+ <span>*</span>콘텐츠 한글명 |
|
13 | 14 |
</label> |
14 | 15 |
<input |
15 | 16 |
type="text" |
... | ... | @@ -21,7 +22,7 @@ |
21 | 22 |
</div> |
22 | 23 |
<div class="layout"> |
23 | 24 |
<label for="" class="form-title"> |
24 |
- 콘텐츠 영문명 |
|
25 |
+ <span>*</span>콘텐츠 영문명 |
|
25 | 26 |
</label> |
26 | 27 |
<input |
27 | 28 |
type="text" |
... | ... | @@ -35,13 +36,16 @@ |
35 | 36 |
<label for="" class="form-title"> |
36 | 37 |
관리자 PATH |
37 | 38 |
</label> |
38 |
- <input |
|
39 |
- type="text" |
|
40 |
- class="form-control sm" |
|
41 |
- v-model="contsTypeVO.mngrPageCrs" |
|
42 |
- ref="mngrPageCrs" |
|
43 |
- placeholder="관리자 path를 입력해주세요" |
|
44 |
- /> |
|
39 |
+ <div class="form-group"> |
|
40 |
+ <input |
|
41 |
+ type="text" |
|
42 |
+ class="form-control sm" |
|
43 |
+ v-model="contsTypeVO.mngrPageCrs" |
|
44 |
+ ref="mngrPageCrs" |
|
45 |
+ placeholder="관리자 path를 입력해주세요" |
|
46 |
+ /> |
|
47 |
+ <span><strong>관리자 PATH</strong> 또는 <strong>사용자 PATH</strong> 중 하나는 필수입니다</span> |
|
48 |
+ </div> |
|
45 | 49 |
</div> |
46 | 50 |
<div class="layout"> |
47 | 51 |
<label for="" class="form-title"> |
... | ... | @@ -57,7 +61,7 @@ |
57 | 61 |
</div> |
58 | 62 |
<div class="layout"> |
59 | 63 |
<label for="" class="form-title"> |
60 |
- COMPONENT_URL |
|
64 |
+ <span>*</span>COMPONENT_URL |
|
61 | 65 |
</label> |
62 | 66 |
<input |
63 | 67 |
type="text" |
... | ... | @@ -69,7 +73,7 @@ |
69 | 73 |
</div> |
70 | 74 |
<div class="layout"> |
71 | 75 |
<label for="" class="form-title"> |
72 |
- 메뉴노출 |
|
76 |
+ <span>*</span>메뉴노출 |
|
73 | 77 |
</label> |
74 | 78 |
<div class="check-area"> |
75 | 79 |
<div class="form-check"> |
--- client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
... | ... | @@ -4,8 +4,8 @@ |
4 | 4 |
<div class="scroll"> |
5 | 5 |
<div open class="form-box"> |
6 | 6 |
<div class="form-box-title"> |
7 |
- <p class="summary-style pl10">기본 정보</p> |
|
8 |
- <span style="color: red;"> ※ 로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</span> |
|
7 |
+ <p>기본정보</p> |
|
8 |
+ <p><span>*</span>로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</p> |
|
9 | 9 |
</div> |
10 | 10 |
<div class="form-content"> |
11 | 11 |
<div class="layout"> |
--- client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
+++ client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 |
</div> |
10 | 10 |
<div class="form-content"> |
11 | 11 |
<div class="layout"> |
12 |
- <label for="" class="form-title"><span>*</span> 제어 유형</label> |
|
12 |
+ <label for="" class="form-title"><span>*</span>제어 유형</label> |
|
13 | 13 |
<select name="selectType" id="selectType" class="form-select sm" |
14 | 14 |
v-model="accesCtrl.cntrlType"> |
15 | 15 |
<option value="">전체</option> |
... | ... | @@ -18,14 +18,14 @@ |
18 | 18 |
</select> |
19 | 19 |
</div> |
20 | 20 |
<div class="layout border-bottom"> |
21 |
- <label for="" class="form-title"><span>*</span> 제어 IP</label> |
|
21 |
+ <label for="" class="form-title"><span>*</span>제어 IP</label> |
|
22 | 22 |
<div class="form-group"> |
23 | 23 |
<input type="text" class="form-control sm" v-model="accesCtrl.cntrlIp" placeholder="1~255 범위의 숫자로 구성하여 형식에 맞게 작성해주세요." /> |
24 | 24 |
<span>ex) 192.168.0.1 / 192.168.0.*</span> |
25 | 25 |
</div> |
26 | 26 |
</div> |
27 | 27 |
<div class="layout"> |
28 |
- <label for="" class="form-title"><span>*</span> 제어 경로</label> |
|
28 |
+ <label for="" class="form-title"><span>*</span>제어 경로</label> |
|
29 | 29 |
<input type="text" class="form-control sm" v-model="accesCtrl.cntrlCrs" placeholder="제어할 경로 URL을 입력하세요."/> |
30 | 30 |
</div> |
31 | 31 |
</div> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?