[jichoi]
08-06
240806 최정임
@dc9bbd5d5840419d10536023ceb83065246fca84
--- client/resources/css/style.css
+++ client/resources/css/style.css
... | ... | @@ -309,6 +309,38 @@ |
309 | 309 |
.mypage em.red { |
310 | 310 |
color: #DB2B39; |
311 | 311 |
} |
312 |
+ |
|
313 |
+.myphoto{ |
|
314 |
+ |
|
315 |
+ background-image: url('../img/img207_15s.png'); |
|
316 |
+ width: 1011px; |
|
317 |
+ height: 558px; |
|
318 |
+ padding: 30px; |
|
319 |
+ margin: 0 auto; |
|
320 |
+} |
|
321 |
+.tab-btn{position: relative; color: #568BFA;} |
|
322 |
+.tab-btn p.custom-style{color: #FFF;} |
|
323 |
+ |
|
324 |
+.tab-btn p { |
|
325 |
+ position: absolute; |
|
326 |
+ top: 46%; |
|
327 |
+ right: 7%; |
|
328 |
+ transform: translate(-50%, -50%); |
|
329 |
+ font-family: 'ONEMobilePOPOTF'; |
|
330 |
+ font-size: 36px; |
|
331 |
+ |
|
332 |
+} |
|
333 |
+.myphoto .btnGroup{ |
|
334 |
+ width: max-content; |
|
335 |
+ position: absolute; |
|
336 |
+ right: 45px; |
|
337 |
+ z-index: -1; |
|
338 |
+} |
|
339 |
+.tab-box{ |
|
340 |
+ margin: 80px 60px 20px 60px; |
|
341 |
+} |
|
342 |
+ |
|
343 |
+ |
|
312 | 344 |
/* 대시보드 */ |
313 | 345 |
.main { |
314 | 346 |
max-height: 600px; |
+++ client/resources/img/btn47_15s_click.png
Binary file is not shown |
+++ client/resources/img/btn47_15s_normal.png
Binary file is not shown |
+++ client/resources/img/btn48_15s_click.png
Binary file is not shown |
+++ client/resources/img/btn48_15s_normal.png
Binary file is not shown |
+++ client/resources/img/btn49_15s_click.png
Binary file is not shown |
+++ client/resources/img/btn49_15s_normal.png
Binary file is not shown |
+++ client/resources/img/btn50_19s_click.png
Binary file is not shown |
+++ client/resources/img/btn50_19s_normal.png
Binary file is not shown |
+++ client/resources/img/img201_15p.png
Binary file is not shown |
+++ client/resources/img/img202_15s.png
Binary file is not shown |
+++ client/resources/img/img204_15s.png
Binary file is not shown |
+++ client/resources/img/img205_15s.png
Binary file is not shown |
+++ client/resources/img/img206_15s.png
Binary file is not shown |
+++ client/resources/img/img207_15s.png
Binary file is not shown |
+++ client/resources/img/img208_15s.png
Binary file is not shown |
+++ client/resources/img/img209_15s.png
Binary file is not shown |
+++ client/resources/img/img210_15s.png
Binary file is not shown |
+++ client/resources/img/img211_15s.png
Binary file is not shown |
+++ client/resources/img/img212_15s.png
Binary file is not shown |
+++ client/resources/img/img213_15s.png
Binary file is not shown |
+++ client/resources/img/img214_19s.png
Binary file is not shown |
+++ client/resources/img/img215_20s.png
Binary file is not shown |
+++ client/resources/img/img215_22s.png
Binary file is not shown |
+++ client/resources/img/img216_22s.png
Binary file is not shown |
+++ client/resources/img/img217_22s.png
Binary file is not shown |
+++ client/resources/img/img218_22s.png
Binary file is not shown |
+++ client/resources/img/img219_22s.png
Binary file is not shown |
+++ client/resources/img/img220_111t.png
Binary file is not shown |
+++ client/resources/img/img221_22s.png
Binary file is not shown |
+++ client/resources/img/img221_25s.png
Binary file is not shown |
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 |
import Join from "../Join.vue" |
6 | 6 |
import MyPage from './main/MyPage.vue'; |
7 | 7 |
import MyPlan from './main/MyPlan.vue'; |
8 |
+import PhotoBook from './main/PhotoBook.vue'; |
|
8 | 9 |
import Dashboard from './main/Dashboard.vue'; |
9 | 10 |
import Main from "./main/Main.vue"; |
10 | 11 |
import Chapter1 from "./main/Chapter/Chapter1.vue"; |
... | ... | @@ -90,6 +91,7 @@ |
90 | 91 |
{ path: '/Dashboard.page', name: 'Dashboard', component: Dashboard }, |
91 | 92 |
{ path: '/MyPage.page', name: 'MyPage', component: MyPage }, |
92 | 93 |
{ path: '/MyPlan.page', name: 'MyPlan', component: MyPlan }, |
94 |
+ { path: '/PhotoBook.page', name: 'PhotoBook', component: PhotoBook }, |
|
93 | 95 |
] |
94 | 96 |
}, |
95 | 97 |
{ path: '/Chapter1.page', name: 'Chapter1', component: Chapter1 }, |
--- client/views/pages/main/MyPage.vue
+++ client/views/pages/main/MyPage.vue
... | ... | @@ -54,14 +54,15 @@ |
54 | 54 |
</div> |
55 | 55 |
<div class="photobook"> |
56 | 56 |
<div class="flex justify-between"> |
57 |
- <div class="box" style="gap: 5px;" @click="goToPage('ClassDetail')"> |
|
57 |
+ <div class="box" style="gap: 5px;" > |
|
58 | 58 |
<div><img src="../../../resources/img/img198_12p.png" alt=""></div> |
59 | 59 |
</div> |
60 | 60 |
<div class="text mt10"> |
61 | 61 |
<p class="title1 mb10">나의 사진첩</p> |
62 |
- <button @click="selectedTab = 'tab4'" type="button" title="글쓰기" class="new-btn"> |
|
63 |
- 바로가기 |
|
64 |
- </button> |
|
62 |
+ <button @click="selectedTab = 'tab4'; goToPage('PhotoBook')" type="button" title="글쓰기" class="new-btn"> |
|
63 |
+ 바로가기 |
|
64 |
+</button> |
|
65 |
+ |
|
65 | 66 |
</div> |
66 | 67 |
</div> |
67 | 68 |
|
+++ client/views/pages/main/PhotoBook.vue
... | ... | @@ -0,0 +1,89 @@ |
1 | +<template> | |
2 | + <div class="title-box flex justify-between mb20"> | |
3 | + <p class="title">내 사진첩</p> | |
4 | + </div> | |
5 | + <div class="myphoto mb30"> | |
6 | + <div class="title-box flex justify-end mb40"> | |
7 | + <select name="" id=""> | |
8 | + <option value="">A반</option> | |
9 | + </select> | |
10 | + </div> | |
11 | + <div class="btnGroup"> | |
12 | + <button @click="selectedTab = 'tab1'" type="button" title="글쓰기" class="tab-btn"> | |
13 | + <img v-if="selectedTab !== 'tab1'" src="../../../resources/img/btn49_15s_normal.png" alt=""> | |
14 | + <img v-else src="../../../resources/img/btn49_15s_click.png" alt=""> | |
15 | + <p :class="{ 'custom-style': selectedTab === 'tab1' }">1</p> | |
16 | + </button> | |
17 | + </div> | |
18 | + <div v-if="selectedTab === 'tab1'" class="tab-box"> | |
19 | + <div class="class photo"> | |
20 | + <div class="box gd-col2" style="gap: 10px;" @click="goToPage('ClassDetail')"> | |
21 | + <div><img src="../../../resources/img/img210_15s.png" alt=""></div> | |
22 | + </div> | |
23 | + <div class="text flex justify-between mt20"> | |
24 | + <p class="title1">A반</p> | |
25 | + <span class="member">20명</span> | |
26 | + </div> | |
27 | + | |
28 | + </div> | |
29 | + | |
30 | + </div> | |
31 | + </div> | |
32 | +</template> | |
33 | + | |
34 | +<script> | |
35 | +import SvgIcon from '@jamescoyle/vue-icon'; | |
36 | +import { mdiMagnify, } from '@mdi/js'; | |
37 | +import { mdilArrowRight } from '@mdi/light-js'; | |
38 | +import ProgressBar from '../../component/ProgressBar.vue'; | |
39 | + | |
40 | + | |
41 | +export default { | |
42 | + data() { | |
43 | + return { | |
44 | + selectedTab: 'tab1', | |
45 | + mdiMagnify: mdiMagnify, | |
46 | + mdilArrowRight: mdilArrowRight, | |
47 | + timer: "00:00", | |
48 | + progress: 20 | |
49 | + } | |
50 | + }, | |
51 | + methods: { | |
52 | + goToPage(page) { | |
53 | + this.$router.push({ name: page }); | |
54 | + }, | |
55 | + increaseProgress() { | |
56 | + if (this.progress < 100) { | |
57 | + this.progress += 10; | |
58 | + } | |
59 | + }, | |
60 | + showConfirm(type) { | |
61 | + let message = ''; | |
62 | + if (type === 'cancel') { | |
63 | + message = '삭제하시겠습니까?'; | |
64 | + } else if (type === 'reset') { | |
65 | + message = '초기화하시겠습니까?'; | |
66 | + } else if (type === 'save') { | |
67 | + message = '등록하시겠습니까?'; | |
68 | + } | |
69 | + | |
70 | + if (confirm(message)) { | |
71 | + this.goBack(); | |
72 | + } | |
73 | + }, | |
74 | + }, | |
75 | + watch: { | |
76 | + | |
77 | + }, | |
78 | + computed: { | |
79 | + | |
80 | + }, | |
81 | + components: { | |
82 | + SvgIcon, | |
83 | + ProgressBar | |
84 | + }, | |
85 | + mounted() { | |
86 | + console.log('Main2 mounted'); | |
87 | + } | |
88 | +} | |
89 | +</script>(파일 끝에 줄바꿈 문자 없음) |
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?