

231120 게시판 상단고정, sort 추가
@cb14513026e6b3ad5db7b5332c6e10ff72489ac7
--- client/views/pages/admin/databook/DataInsert.vue
+++ client/views/pages/admin/databook/DataInsert.vue
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 |
</tr> |
39 | 39 |
<tr> |
40 | 40 |
<th>게시물 상단고정 사용여부</th> |
41 |
- <td><input type="checkbox" name="" id=""><label>사용</label></td> |
|
41 |
+ <td><input type="checkbox" v-model="post.notice_yn" true-value="Y" false-value="N"><label>사용</label></td> |
|
42 | 42 |
</tr> |
43 | 43 |
<tr> |
44 | 44 |
<th>내용</th> |
... | ... | @@ -79,6 +79,7 @@ |
79 | 79 |
link_url: null, |
80 | 80 |
// 카테고리가 없는 게시판에서는 null로 설정 부탁합니다! |
81 | 81 |
ctgry_nm: null, |
82 |
+ notice_yn: 'N', |
|
82 | 83 |
}, |
83 | 84 |
fileList: [], |
84 | 85 |
filecount: 0, |
--- client/views/pages/admin/news/NewsInsert.vue
+++ client/views/pages/admin/news/NewsInsert.vue
... | ... | @@ -86,6 +86,7 @@ |
86 | 86 |
post_content: null, |
87 | 87 |
// 카테고리가 없는 게시판에서는 null로 설정 부탁합니다! |
88 | 88 |
ctgry_nm: null, |
89 |
+ notice_yn: 'N', |
|
89 | 90 |
}, |
90 | 91 |
fileList: [], |
91 | 92 |
filecount: 0, |
--- client/views/pages/admin/notice/NoticeInsert.vue
+++ client/views/pages/admin/notice/NoticeInsert.vue
... | ... | @@ -16,7 +16,7 @@ |
16 | 16 |
</tr> |
17 | 17 |
<tr> |
18 | 18 |
<th>게시물 상단고정 사용여부</th> |
19 |
- <td><input type="checkbox" name="" id=""><label>사용</label></td> |
|
19 |
+ <td><input type="checkbox" v-model="post.notice_yn" true-value="Y" false-value="N"><label>사용</label></td> |
|
20 | 20 |
</tr> |
21 | 21 |
<tr> |
22 | 22 |
<th>내용</th> |
... | ... | @@ -56,6 +56,7 @@ |
56 | 56 |
post_content: null, |
57 | 57 |
// 카테고리가 없는 게시판에서는 null로 설정 부탁합니다! |
58 | 58 |
ctgry_nm: null, |
59 |
+ notice_yn: 'N', |
|
59 | 60 |
}, |
60 | 61 |
fileList: [], |
61 | 62 |
filecount: 0, |
--- client/views/pages/admin/technology/TechInsert.vue
+++ client/views/pages/admin/technology/TechInsert.vue
... | ... | @@ -105,6 +105,7 @@ |
105 | 105 |
link_url: null, |
106 | 106 |
// 카테고리가 없는 게시판에서는 null로 설정 부탁합니다! |
107 | 107 |
ctgry_nm: null, |
108 |
+ notice_yn: 'N', |
|
108 | 109 |
tech_doc_nm: null, |
109 | 110 |
tech_doc_version: null, |
110 | 111 |
tech_doc_main_content: null, |
--- client/views/pages/admin/wgcommunity/WgInsert.vue
+++ client/views/pages/admin/wgcommunity/WgInsert.vue
... | ... | @@ -72,6 +72,7 @@ |
72 | 72 |
link_url: null, |
73 | 73 |
// 카테고리가 없는 게시판에서는 null로 설정 부탁합니다! |
74 | 74 |
ctgry_nm: null, |
75 |
+ notice_yn: 'N', |
|
75 | 76 |
}, |
76 | 77 |
fileList: [], |
77 | 78 |
filecount: 0, |
--- client/views/pages/user/Data/Data.vue
+++ client/views/pages/user/Data/Data.vue
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 |
<ul class="flex-end"> |
64 | 64 |
<li v-for="(item, index) in sorts" :key="index" |
65 | 65 |
:class="{ active: activeIndex === index }" @click="changeColor(index)"> |
66 |
- {{ item }} |
|
66 |
+ {{ item.name }} |
|
67 | 67 |
</li> |
68 | 68 |
</ul> |
69 | 69 |
</div> |
... | ... | @@ -77,20 +77,31 @@ |
77 | 77 |
<th style="width:10%">작성자</th> |
78 | 78 |
<th style="width:15%">작성일자</th> |
79 | 79 |
<th style="width:20%">조회수</th> |
80 |
- <tr v-for="(item, idx) in postList" :key="idx" @click="postSelectOnePage(item)"> |
|
81 |
- <td :class="{ 'first-row': idx === 0 }">{{ postIdx - idx }}</td> |
|
82 |
- <td :class="{ 'first-row': idx === 0 }" v-if="item.ctgry_nm === 'policy'"><span |
|
83 |
- class="category-zone">정책자료</span></td> |
|
84 |
- <td :class="{ 'first-row': idx === 0 }" v-else-if="item.ctgry_nm === 'research'"><span |
|
85 |
- class="category-zone">연구자료</span></td> |
|
86 |
- <td :class="{ 'first-row': idx === 0 }" v-else><span class="category-zone">가이드라인</span></td> |
|
87 |
- <td :class="{ 'first-row': idx === 0 }"> |
|
88 |
- <p class="board-title pen-nib-icon"> <i class="fas fa-thumbtack" v-if="idx === 0"></i>{{ |
|
89 |
- item.post_title }}</p> |
|
80 |
+ <tr v-for="(notice, nIdx) in postNoticeList" :key="nIdx" @click="postSelectOnePage(notice)"> |
|
81 |
+ <td class="board-title pen-nib-icon" :class="{ 'first-row': notice.notice_yn === 'Y' }"> |
|
82 |
+ <i class="fas fa-thumbtack" v-if="notice.notice_yn === 'Y'"></i> |
|
90 | 83 |
</td> |
91 |
- <td :class="{ 'first-row': idx === 0 }">{{ item.rgtr_id }}</td> |
|
92 |
- <td :class="{ 'first-row': idx === 0 }">{{ yyyymmdd(item.reg_dt) }}</td> |
|
93 |
- <td :class="{ 'first-row': idx === 0 }">{{ item.view_cnt }}</td> |
|
84 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }" v-if="notice.ctgry_nm === 'policy'"><span |
|
85 |
+ class="category-zone">정책자료</span></td> |
|
86 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }" v-else-if="notice.ctgry_nm === 'research'"><span |
|
87 |
+ class="category-zone">연구자료</span></td> |
|
88 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }" v-else><span class="category-zone">가이드라인</span></td> |
|
89 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }"> {{ notice.post_title }} </td> |
|
90 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ notice.rgtr_id }}</td> |
|
91 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ yyyymmdd(notice.reg_dt) }}</td> |
|
92 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ notice.view_cnt }}</td> |
|
93 |
+ </tr> |
|
94 |
+ <tr v-for="(post, pIdx) in postList" :key="pIdx" @click="postSelectOnePage(post)"> |
|
95 |
+ <td >{{ postIdx - pIdx }}</td> |
|
96 |
+ <td v-if="post.ctgry_nm === 'policy'"><span |
|
97 |
+ class="category-zone">정책자료</span></td> |
|
98 |
+ <td v-else-if="post.ctgry_nm === 'research'"><span |
|
99 |
+ class="category-zone">연구자료</span></td> |
|
100 |
+ <td v-else><span class="category-zone">가이드라인</span></td> |
|
101 |
+ <td> {{ post.post_title }} </td> |
|
102 |
+ <td>{{ post.rgtr_id }}</td> |
|
103 |
+ <td>{{ yyyymmdd(post.reg_dt) }}</td> |
|
104 |
+ <td>{{ post.view_cnt }}</td> |
|
94 | 105 |
</tr> |
95 | 106 |
<tr v-if="postListCount == 0"> |
96 | 107 |
<td style="font-size: 12px;" colspan="5">검색조건에 해당하는 데이터가 없습니다.</td> |
... | ... | @@ -123,15 +134,18 @@ |
123 | 134 |
searchType: null, |
124 | 135 |
searchText: null, |
125 | 136 |
ctgry_nm: null, |
126 |
- bbs_id: '0' |
|
137 |
+ bbs_id: '0', |
|
138 |
+ sort: 'dt' |
|
127 | 139 |
}, |
128 | 140 |
postList: [], |
141 |
+ postNoticeList:[], |
|
129 | 142 |
postListCount: 0, |
130 | 143 |
postIdx: 0, |
131 | 144 |
categoryName: '전체', |
132 | 145 |
route: useRoute(), |
133 | 146 |
// 최신순 조회순 |
134 |
- sorts: ['최신순', '조회수순'], |
|
147 |
+ sorts: [ { name: '최신순', value: 'dt'}, |
|
148 |
+ { name: '조회수순', value: 'view'}], |
|
135 | 149 |
activeIndex: 0, |
136 | 150 |
|
137 | 151 |
// 자료실 버튼 |
... | ... | @@ -156,7 +170,11 @@ |
156 | 170 |
// 최신순 조회순 |
157 | 171 |
changeColor(index) { |
158 | 172 |
this.activeIndex = index; |
173 |
+ this.postListSearch.sort = this.sorts[index].value; |
|
174 |
+ console.log(this.postListSearch.sort); |
|
175 |
+ this.postSelectList(); |
|
159 | 176 |
}, |
177 |
+ |
|
160 | 178 |
clickButton(index) { |
161 | 179 |
this.buttons.forEach((button, idx) => { |
162 | 180 |
if (idx === index) { |
... | ... | @@ -201,6 +219,7 @@ |
201 | 219 |
}).then(function (response) { |
202 | 220 |
vm.postList = response.data.postSelectList; |
203 | 221 |
vm.postListCount = response.data.postSelectListCount; |
222 |
+ vm.postNoticeList = response.data.postNoticeSelectList; |
|
204 | 223 |
vm.postIdx = vm.postListCount - (vm.postListSearch.currentPage - 1) * vm.postListSearch.perPage; |
205 | 224 |
}).catch(function (error) { |
206 | 225 |
alert('자료집 목록 조회 오류, 관리자에게 문의하세요.'); |
--- client/views/pages/user/Data/DataOne.vue
+++ client/views/pages/user/Data/DataOne.vue
... | ... | @@ -10,8 +10,10 @@ |
10 | 10 |
<tbody> |
11 | 11 |
<tr> |
12 | 12 |
<td class="title-zone" colspan="2"> |
13 |
- <p class="flex"><span class="post-title">{{ post.post_title }}</span><span |
|
14 |
- class="category-zone">{{ post.ctgry_nm }}</span></p> |
|
13 |
+ <p class="flex"><span class="post-title">{{ post.post_title }}</span> |
|
14 |
+ <span class="category-zone" v-if="post.ctgry_nm === 'policy'">정책자료</span> |
|
15 |
+ <span class="category-zone" v-else-if="post.ctgry_nm === 'research'">연구자료</span> |
|
16 |
+ <span class="category-zone" v-else>가이드라인</span></p> |
|
15 | 17 |
<div class="flex-end"> |
16 | 18 |
<p><span class="writer">작성자 </span><span>{{ post.rgtr_id }}</span></p> |
17 | 19 |
<p><span class="view">조회수 </span><span>{{ post.view_cnt }}</span></p></div> |
--- client/views/pages/user/Data/Technology.vue
+++ client/views/pages/user/Data/Technology.vue
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 |
<ul class="flex-end"> |
12 | 12 |
<li v-for="(item, index) in sorts" :key="index" :class="{ active: activeIndex === index }" |
13 | 13 |
@click="changeColor(index)"> |
14 |
- {{ item }} |
|
14 |
+ {{ item.name }} |
|
15 | 15 |
</li> |
16 | 16 |
</ul> |
17 | 17 |
</div> |
... | ... | @@ -30,7 +30,7 @@ |
30 | 30 |
<img src="../../../../resources/jpg/tech.png" alt=""> |
31 | 31 |
</div> |
32 | 32 |
<div> |
33 |
- <p class="keyword-zone"> |
|
33 |
+ <p class="keyword-zone" v-if="item.tech_doc_keyword"> |
|
34 | 34 |
<span v-for="(keyword, keywordIndex) in item.tech_doc_keyword.split(',')" |
35 | 35 |
:key="keywordIndex"> |
36 | 36 |
{{ keyword }} |
... | ... | @@ -259,13 +259,14 @@ |
259 | 259 |
searchType: null, |
260 | 260 |
searchText: null, |
261 | 261 |
bbs_id: '3', |
262 |
- |
|
262 |
+ sort: 'dt' |
|
263 | 263 |
}, |
264 | 264 |
postList: [], |
265 | 265 |
postListCount: 0, |
266 | 266 |
postIdx: 0, |
267 | 267 |
// 최신순 조회순 |
268 |
- sorts: ['최신순', '조회수순'], |
|
268 |
+ sorts: [ { name: '최신순', value: 'dt'}, |
|
269 |
+ { name: '조회수순', value: 'view'}], |
|
269 | 270 |
activeIndex: 0, |
270 | 271 |
} |
271 | 272 |
}, |
... | ... | @@ -273,7 +274,11 @@ |
273 | 274 |
// 최신순 조회순 |
274 | 275 |
changeColor(index) { |
275 | 276 |
this.activeIndex = index; |
277 |
+ this.postListSearch.sort = this.sorts[index].value; |
|
278 |
+ console.log(this.postListSearch.sort); |
|
279 |
+ this.postSelectList(); |
|
276 | 280 |
}, |
281 |
+ |
|
277 | 282 |
postSelectOnePage(item) { |
278 | 283 |
const vm = this; |
279 | 284 |
|
--- client/views/pages/user/community/News.vue
+++ client/views/pages/user/community/News.vue
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 |
<ul class="flex-end"> |
12 | 12 |
<li v-for="(item, index) in sorts" :key="index" :class="{ active: activeIndex === index }" |
13 | 13 |
@click="changeColor(index)"> |
14 |
- {{ item }} |
|
14 |
+ {{ item.name }} |
|
15 | 15 |
</li> |
16 | 16 |
</ul> |
17 | 17 |
</div> |
... | ... | @@ -79,14 +79,16 @@ |
79 | 79 |
perPage: 9, |
80 | 80 |
searchType: null, |
81 | 81 |
searchText: null, |
82 |
- bbs_id: '1' |
|
82 |
+ bbs_id: '1', |
|
83 |
+ sort: 'dt' |
|
83 | 84 |
}, |
84 | 85 |
modalItem: null, |
85 | 86 |
realContent: null, |
86 | 87 |
fileList: [], |
87 | 88 |
realFileList: [], |
88 | 89 |
// 최신순 조회순 |
89 |
- sorts: ['최신순', '조회수순'], |
|
90 |
+ sorts: [ { name: '최신순', value: 'dt'}, |
|
91 |
+ { name: '조회수순', value: 'view'}], |
|
90 | 92 |
activeIndex: 0, |
91 | 93 |
} |
92 | 94 |
}, |
... | ... | @@ -94,7 +96,11 @@ |
94 | 96 |
// 최신순 조회순 |
95 | 97 |
changeColor(index) { |
96 | 98 |
this.activeIndex = index; |
99 |
+ this.postListSearch.sort = this.sorts[index].value; |
|
100 |
+ console.log(this.postListSearch.sort); |
|
101 |
+ this.postSelectList(); |
|
97 | 102 |
}, |
103 |
+ |
|
98 | 104 |
openModal: function (item) { |
99 | 105 |
const vm = this; |
100 | 106 |
|
--- client/views/pages/user/community/Notice.vue
+++ client/views/pages/user/community/Notice.vue
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 |
<ul class="flex-end"> |
26 | 26 |
<li v-for="(item, index) in sorts" :key="index" :class="{ active: activeIndex === index }" |
27 | 27 |
@click="changeColor(index)"> |
28 |
- {{ item }} |
|
28 |
+ {{ item.name }} |
|
29 | 29 |
</li> |
30 | 30 |
</ul> |
31 | 31 |
</div> |
... | ... | @@ -37,16 +37,21 @@ |
37 | 37 |
<th style="width:10%">작성자</th> |
38 | 38 |
<th style="width:10%">작성일자</th> |
39 | 39 |
<th style="width:10%">조회수</th> |
40 |
- <tr v-for="(item, idx) in postList" :key="idx" @click="postSelectOnePage(item)"> |
|
41 |
- <td :class="{ 'first-row': idx === 0 }">{{ postIdx - idx }}</td> |
|
42 |
- <td :class="{ 'first-row': idx === 0 }"> |
|
43 |
- <p class="board-title pen-nib-icon"> <i class="fas fa-thumbtack" v-if="idx === 0"></i> |
|
44 |
- {{ item.post_title |
|
45 |
- }}</p> |
|
40 |
+ <tr v-for="(notice, nIdx) in postNoticeList" :key="nIdx" @click="postSelectOnePage(notice)"> |
|
41 |
+ <td class="board-title pen-nib-icon" :class="{ 'first-row': notice.notice_yn === 'Y' }"> |
|
42 |
+ <i class="fas fa-thumbtack" v-if="notice.notice_yn === 'Y'"></i> |
|
46 | 43 |
</td> |
47 |
- <td :class="{ 'first-row': idx === 0 }">{{ item.rgtr_id }}</td> |
|
48 |
- <td :class="{ 'first-row': idx === 0 }">{{ yyyymmdd(item.reg_dt) }}</td> |
|
49 |
- <td :class="{ 'first-row': idx === 0 }">{{ item.view_cnt }}</td> |
|
44 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }"> {{ notice.post_title }} </td> |
|
45 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ notice.rgtr_id }}</td> |
|
46 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ yyyymmdd(notice.reg_dt) }}</td> |
|
47 |
+ <td :class="{ 'first-row': notice.notice_yn === 'Y' }">{{ notice.view_cnt }}</td> |
|
48 |
+ </tr> |
|
49 |
+ <tr v-for="(post, pIdx) in postList" :key="pIdx" @click="postSelectOnePage(post)"> |
|
50 |
+ <td>{{ postIdx - pIdx }}</td> |
|
51 |
+ <td>{{ post.post_title }}</td> |
|
52 |
+ <td>{{ post.rgtr_id }}</td> |
|
53 |
+ <td>{{ yyyymmdd(post.reg_dt) }}</td> |
|
54 |
+ <td>{{ post.view_cnt }}</td> |
|
50 | 55 |
</tr> |
51 | 56 |
<tr v-if="postListCount == 0"> |
52 | 57 |
<td colspan="5">검색조건에 해당하는 데이터가 없습니다.</td> |
... | ... | @@ -75,13 +80,16 @@ |
75 | 80 |
perPage: 10, |
76 | 81 |
searchType: null, |
77 | 82 |
searchText: null, |
78 |
- bbs_id: '2' |
|
83 |
+ bbs_id: '2', |
|
84 |
+ sort: 'dt' |
|
79 | 85 |
}, |
80 | 86 |
postList: [], |
87 |
+ postNoticeList:[], |
|
81 | 88 |
postListCount: 0, |
82 | 89 |
postIdx: 0, |
83 | 90 |
// 최신순 조회순 |
84 |
- sorts: ['최신순', '조회수순'], |
|
91 |
+ sorts: [ { name: '최신순', value: 'dt'}, |
|
92 |
+ { name: '조회수순', value: 'view'}], |
|
85 | 93 |
activeIndex: 0, |
86 | 94 |
} |
87 | 95 |
}, |
... | ... | @@ -89,7 +97,11 @@ |
89 | 97 |
// 최신순 조회순 |
90 | 98 |
changeColor(index) { |
91 | 99 |
this.activeIndex = index; |
100 |
+ this.postListSearch.sort = this.sorts[index].value; |
|
101 |
+ console.log(this.postListSearch.sort); |
|
102 |
+ this.postSelectList(); |
|
92 | 103 |
}, |
104 |
+ |
|
93 | 105 |
postSelectList: function () { |
94 | 106 |
const vm = this; |
95 | 107 |
|
... | ... | @@ -103,6 +115,7 @@ |
103 | 115 |
}).then(function (response) { |
104 | 116 |
vm.postList = response.data.postSelectList; |
105 | 117 |
vm.postListCount = response.data.postSelectListCount; |
118 |
+ vm.postNoticeList = response.data.postNoticeSelectList; |
|
106 | 119 |
vm.postIdx = vm.postListCount - (vm.postListSearch.currentPage - 1) * vm.postListSearch.perPage; |
107 | 120 |
}).catch(function (error) { |
108 | 121 |
alert('공지사항 목록 조회 오류, 관리자에게 문의하세요.'); |
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?