정다정
10-21
241021 정다정 교재,단원 이름 반영
@77324673079847d2478284414330cfa02a46046e
+++ client/views/component/BookInfo.vue
... | ... | @@ -0,0 +1,46 @@ |
1 | +<template> | |
2 | + <div> | |
3 | + <span class="title mr40">{{ infoData.book_nm }}</span> | |
4 | + <span class="subtitle">{{ infoData.unit_nm }}</span> | |
5 | + </div> | |
6 | +</template> | |
7 | +<script> | |
8 | +import axios from 'axios'; | |
9 | +export default { | |
10 | + data() { | |
11 | + return { | |
12 | + infoData: [], | |
13 | + }; | |
14 | + }, | |
15 | + methods: { | |
16 | + fetchScheduleInfo() { | |
17 | + axios({ | |
18 | + url: '/schedule/selectScheduleName.json', | |
19 | + method: 'post', | |
20 | + headers: { | |
21 | + 'Content-Type': 'application/json; charset=UTF-8', | |
22 | + }, | |
23 | + data: { | |
24 | + scheduleId: this.scheduleId, | |
25 | + }, | |
26 | + }) | |
27 | + .then((response) => { | |
28 | + console.log(response.data[0]); | |
29 | + this.infoData = response.data[0]; | |
30 | + }) | |
31 | + .catch((err) => { | |
32 | + console.log('에러 : ', err); | |
33 | + }); | |
34 | + }, | |
35 | + }, | |
36 | + computed: { | |
37 | + scheduleId() { | |
38 | + return this.$store.getters.getSchdlId; | |
39 | + }, | |
40 | + }, | |
41 | + mounted() { | |
42 | + this.fetchScheduleInfo(); | |
43 | + }, | |
44 | +}; | |
45 | +</script> | |
46 | +<style lang=""></style> |
--- client/views/pages/main/Chapter/Chapter1_2.vue
+++ client/views/pages/main/Chapter/Chapter1_2.vue
... | ... | @@ -1,265 +1,246 @@ |
1 | 1 |
<template> |
2 |
- <div id="Chapter1_2" class="content-wrap"> |
|
3 |
- <div style="margin: 30px 0px 50px; width: 20%"> |
|
4 |
- <router-link to="/MyPlan.page"> |
|
5 |
- <div class="logo mb25"> |
|
6 |
- <img src="../../../../resources/img/new_img/logo_v2.png" alt="" /> |
|
2 |
+ <div id="Chapter1_2" class="content-wrap"> |
|
3 |
+ <div style="margin: 30px 0px 50px; width: 20%"> |
|
4 |
+ <router-link to="/MyPlan.page"> |
|
5 |
+ <div class="logo mb25"> |
|
6 |
+ <img src="../../../../resources/img/new_img/logo_v2.png" alt="" /> |
|
7 |
+ </div> |
|
8 |
+ </router-link> |
|
7 | 9 |
</div> |
8 |
- </router-link> |
|
9 |
- </div> |
|
10 |
- <div |
|
11 |
- class="title-box mb25 flex align-center mt40" |
|
12 |
- style="justify-content: space-between" |
|
13 |
- > |
|
14 |
- <div> |
|
15 |
- <span class="title mr40">1. Hello WORLD</span> |
|
16 |
- <span class="subtitle">my name is dd</span> |
|
17 |
- </div> |
|
18 |
- <div class="flex"> |
|
19 |
- <TextToImage /> |
|
20 |
- <button class="completeBtn" @click="complete">학습 종료</button> |
|
21 |
- </div> |
|
22 |
- </div> |
|
23 |
- <div class="flex justify-between align-center"> |
|
24 |
- <div |
|
25 |
- class="pre-btn" |
|
26 |
- style="visibility: hidden" |
|
27 |
- @click="goToPage('Chapter1_1')" |
|
28 |
- > |
|
29 |
- <img src="../../../../resources/img/left.png" alt="" /> |
|
30 |
- </div> |
|
31 |
- <div class="content title-box"> |
|
32 |
- <p class="title mt25 title-bg">step1. Hello WORLD</p> |
|
33 |
- <div |
|
34 |
- class="flex align-center ml50 mb15" |
|
35 |
- style="margin-top: -30px; gap: 10px" |
|
36 |
- > |
|
37 |
- <h4> |
|
38 |
- 각 인물들의 대화를 듣고 읽어봅시다. 아래의 플레이버튼을 눌러 영어 |
|
39 |
- 발음을 들어보세요! |
|
40 |
- </h4> |
|
41 |
- <div class="listen-btn"> |
|
42 |
- <img |
|
43 |
- src="../../../../resources/img/btn10_s.png" |
|
44 |
- alt="" |
|
45 |
- @click="playAudio" |
|
46 |
- /> |
|
47 |
- <audio |
|
48 |
- id="audio-player" |
|
49 |
- src="client/resources/audio/passage/passage_intoduce.mp3" |
|
50 |
- preload="auto" |
|
51 |
- ></audio> |
|
52 |
- </div> |
|
53 |
- </div> |
|
54 |
- <div class="flex justify-center"> |
|
55 |
- <div class="readGroup"> |
|
56 |
- <div> |
|
57 |
- <div class="textbox"> |
|
58 |
- <article |
|
59 |
- v-for="(line, index) in combinedLines" |
|
60 |
- :key="index" |
|
61 |
- :class="[ |
|
62 |
- 'flex', |
|
63 |
- 'align-center', |
|
64 |
- 'mb10', |
|
65 |
- { 'justify-end': index % 2 !== 0 }, |
|
66 |
- ]" |
|
67 |
- > |
|
68 |
- <div v-if="index % 2 === 0" class="icon mr40"> |
|
69 |
- <img src="../../../../resources/img/img37_s.png" alt="" /> |
|
70 |
- <p class="name">{{ speakerA_name }}</p> |
|
71 |
- </div> |
|
72 |
- <p v-if="index % 2 === 0" class="read">{{ line }}</p> |
|
73 |
- <div class="listen-btn ml10" v-if="index % 2 === 0"> |
|
74 |
- <img |
|
75 |
- src="../../../../resources/img/new_img/icon/play_icon.png" |
|
76 |
- alt="" |
|
77 |
- @click="generateTts('male', line)" |
|
78 |
- /> |
|
79 |
- <audio id="tts-audio-player" preload="auto"></audio> |
|
80 |
- </div> |
|
81 |
- |
|
82 |
- <div class="listen-btn mr10" v-if="index % 2 !== 0"> |
|
83 |
- <img |
|
84 |
- src="../../../../resources/img/new_img/icon/play_icon.png" |
|
85 |
- alt="" |
|
86 |
- @click="generateTts('femail', line)" |
|
87 |
- /> |
|
88 |
- <audio id="tts-audio-player" preload="auto"></audio> |
|
89 |
- </div> |
|
90 |
- <p v-if="index % 2 !== 0" class="read mr40">{{ line }}</p> |
|
91 |
- <div v-if="index % 2 !== 0" class="icon"> |
|
92 |
- <img src="../../../../resources/img/img37_s.png" alt="" /> |
|
93 |
- <p class="name">{{ speakerB_name }}</p> |
|
94 |
- </div> |
|
95 |
- </article> |
|
96 |
- </div> |
|
10 |
+ <div class="title-box mb25 flex align-center mt40" style="justify-content: space-between"> |
|
11 |
+ <!-- <div> |
|
12 |
+ <span class="title mr40">1. Hello WORLD</span> |
|
13 |
+ <span class="subtitle">my name is dd</span> |
|
14 |
+ </div> --> |
|
15 |
+ <BookInfo /> |
|
16 |
+ <div class="flex"> |
|
17 |
+ <TextToImage /> |
|
18 |
+ <button class="completeBtn" @click="complete">학습 종료</button> |
|
97 | 19 |
</div> |
98 |
- </div> |
|
99 | 20 |
</div> |
100 |
- </div> |
|
101 |
- <div class="next-btn" @click="goToNextPage"> |
|
102 |
- <img src="../../../../resources/img/right.png" alt="" /> |
|
103 |
- </div> |
|
21 |
+ <div class="flex justify-between align-center"> |
|
22 |
+ <div class="pre-btn" style="visibility: hidden" @click="goToPage('Chapter1_1')"> |
|
23 |
+ <img src="../../../../resources/img/left.png" alt="" /> |
|
24 |
+ </div> |
|
25 |
+ <div class="content title-box"> |
|
26 |
+ <p class="title mt25 title-bg">step1. Hello WORLD</p> |
|
27 |
+ <div class="flex align-center ml50 mb15" style="margin-top: -30px; gap: 10px"> |
|
28 |
+ <h4>각 인물들의 대화를 듣고 읽어봅시다. 아래의 플레이버튼을 눌러 영어 발음을 들어보세요!</h4> |
|
29 |
+ <div class="listen-btn"> |
|
30 |
+ <img src="../../../../resources/img/btn10_s.png" alt="" @click="playAudio" /> |
|
31 |
+ <audio |
|
32 |
+ id="audio-player" |
|
33 |
+ src="client/resources/audio/passage/passage_intoduce.mp3" |
|
34 |
+ preload="auto" |
|
35 |
+ ></audio> |
|
36 |
+ </div> |
|
37 |
+ </div> |
|
38 |
+ <div class="flex justify-center"> |
|
39 |
+ <div class="readGroup"> |
|
40 |
+ <div> |
|
41 |
+ <div class="textbox"> |
|
42 |
+ <article |
|
43 |
+ v-for="(line, index) in combinedLines" |
|
44 |
+ :key="index" |
|
45 |
+ :class="['flex', 'align-center', 'mb10', { 'justify-end': index % 2 !== 0 }]" |
|
46 |
+ > |
|
47 |
+ <div v-if="index % 2 === 0" class="icon mr40"> |
|
48 |
+ <img src="../../../../resources/img/img37_s.png" alt="" /> |
|
49 |
+ <p class="name">{{ speakerA_name }}</p> |
|
50 |
+ </div> |
|
51 |
+ <p v-if="index % 2 === 0" class="read">{{ line }}</p> |
|
52 |
+ <div class="listen-btn ml10" v-if="index % 2 === 0"> |
|
53 |
+ <img |
|
54 |
+ src="../../../../resources/img/new_img/icon/play_icon.png" |
|
55 |
+ alt="" |
|
56 |
+ @click="generateTts('male', line)" |
|
57 |
+ /> |
|
58 |
+ <audio id="tts-audio-player" preload="auto"></audio> |
|
59 |
+ </div> |
|
60 |
+ |
|
61 |
+ <div class="listen-btn mr10" v-if="index % 2 !== 0"> |
|
62 |
+ <img |
|
63 |
+ src="../../../../resources/img/new_img/icon/play_icon.png" |
|
64 |
+ alt="" |
|
65 |
+ @click="generateTts('femail', line)" |
|
66 |
+ /> |
|
67 |
+ <audio id="tts-audio-player" preload="auto"></audio> |
|
68 |
+ </div> |
|
69 |
+ <p v-if="index % 2 !== 0" class="read mr40">{{ line }}</p> |
|
70 |
+ <div v-if="index % 2 !== 0" class="icon"> |
|
71 |
+ <img src="../../../../resources/img/img37_s.png" alt="" /> |
|
72 |
+ <p class="name">{{ speakerB_name }}</p> |
|
73 |
+ </div> |
|
74 |
+ </article> |
|
75 |
+ </div> |
|
76 |
+ </div> |
|
77 |
+ </div> |
|
78 |
+ </div> |
|
79 |
+ </div> |
|
80 |
+ <div class="next-btn" @click="goToNextPage"> |
|
81 |
+ <img src="../../../../resources/img/right.png" alt="" /> |
|
82 |
+ </div> |
|
83 |
+ </div> |
|
104 | 84 |
</div> |
105 |
- </div> |
|
106 | 85 |
</template> |
107 | 86 |
|
108 | 87 |
<script> |
109 |
-import TextToImage from "../../../component/TextToImage.vue"; |
|
110 |
-import axios from "axios"; |
|
88 |
+import TextToImage from '../../../component/TextToImage.vue'; |
|
89 |
+import BookInfo from '../../../component/BookInfo.vue'; |
|
90 |
+import axios from 'axios'; |
|
111 | 91 |
export default { |
112 |
- data() { |
|
113 |
- return { |
|
114 |
- text_data: null, // 받아온 지문 정보 |
|
115 |
- speakerA_name: null, |
|
116 |
- speakerB_name: null, |
|
117 |
- speakerA: [], |
|
118 |
- speakerB: [], |
|
92 |
+ data() { |
|
93 |
+ return { |
|
94 |
+ text_data: null, // 받아온 지문 정보 |
|
95 |
+ speakerA_name: null, |
|
96 |
+ speakerB_name: null, |
|
97 |
+ speakerA: [], |
|
98 |
+ speakerB: [], |
|
119 | 99 |
|
120 |
- seq: this.$store.getters.seqNum, |
|
121 |
- }; |
|
122 |
- }, |
|
123 |
- methods: { |
|
124 |
- complete() { |
|
125 |
- const { unit_id, book_id } = this.$route.query; |
|
126 |
- this.$router.push({ |
|
127 |
- name: "Dashboard", |
|
128 |
- query: { value: this.seq, unit_id, book_id }, |
|
129 |
- }); |
|
100 |
+ seq: this.$store.getters.seqNum, |
|
101 |
+ }; |
|
130 | 102 |
}, |
131 |
- goToPage(page) { |
|
132 |
- this.$router.push({ name: page }); |
|
133 |
- }, |
|
134 |
- goToNextPage() { |
|
135 |
- // alert('지문 학습 완료!'); |
|
136 |
- this.complete(); |
|
137 |
- this.goToPage("Chapter1_1"); |
|
138 |
- }, |
|
139 |
- // 대화 지문 API |
|
140 |
- async fetchText() { |
|
141 |
- axios({ |
|
142 |
- url: "/text/selectOneText.json", |
|
143 |
- method: "post", |
|
144 |
- headers: { |
|
145 |
- "Content-Type": "application/json; charset=UTF-8", |
|
103 |
+ methods: { |
|
104 |
+ complete() { |
|
105 |
+ const { unit_id, book_id } = this.$route.query; |
|
106 |
+ this.$router.push({ |
|
107 |
+ name: 'Dashboard', |
|
108 |
+ query: { value: this.seq, unit_id, book_id }, |
|
109 |
+ }); |
|
146 | 110 |
}, |
147 |
- data: { |
|
148 |
- textId: this.textId, |
|
111 |
+ goToPage(page) { |
|
112 |
+ this.$router.push({ name: page }); |
|
149 | 113 |
}, |
150 |
- }) |
|
151 |
- .then((response) => { |
|
152 |
- this.text_data = response.data[0].text_cnt; |
|
153 |
- this.splitConversation(); |
|
154 |
- }) |
|
155 |
- .catch((err) => { |
|
156 |
- console.log("지문 에러 : ", err); |
|
157 |
- }); |
|
158 |
- }, |
|
159 |
- // 대화 지문 split |
|
160 |
- splitConversation() { |
|
161 |
- const lines = this.text_data.split("/"); |
|
162 |
- const speakers = {}; |
|
163 |
- |
|
164 |
- lines.forEach((line) => { |
|
165 |
- const [speaker, message] = line.trim().split(":"); |
|
166 |
- |
|
167 |
- if (!speakers.speakerA_name && !speakers.speakerB_name) { |
|
168 |
- // 첫 번째 발화자를 speakerA_name으로 설정 |
|
169 |
- speakers.speakerA_name = speaker.trim(); |
|
170 |
- this.speakerA.push(message.trim()); |
|
171 |
- } else if ( |
|
172 |
- speakers.speakerA_name && |
|
173 |
- !speakers.speakerB_name && |
|
174 |
- speakers.speakerA_name !== speaker.trim() |
|
175 |
- ) { |
|
176 |
- // 두 번째 발화자를 speakerB_name으로 설정 |
|
177 |
- speakers.speakerB_name = speaker.trim(); |
|
178 |
- this.speakerB.push(message.trim()); |
|
179 |
- } else if (speaker.trim() === speakers.speakerA_name) { |
|
180 |
- // speakerA_name에 내용 추가 |
|
181 |
- this.speakerA.push(message.trim()); |
|
182 |
- } else if (speaker.trim() === speakers.speakerB_name) { |
|
183 |
- // speakerB_name에 내용 추가 |
|
184 |
- this.speakerB.push(message.trim()); |
|
185 |
- } |
|
186 |
- }); |
|
187 |
- |
|
188 |
- this.speakerA_name = speakers.speakerA_name; |
|
189 |
- this.speakerB_name = speakers.speakerB_name; |
|
190 |
- }, |
|
191 |
- |
|
192 |
- playAudio() { |
|
193 |
- const audio = document.getElementById("audio-player"); |
|
194 |
- audio.play(); |
|
195 |
- console.log("playing"); |
|
196 |
- }, |
|
197 |
- |
|
198 |
- // 대화 지문 재생 |
|
199 |
- generateTts(gender, line) { |
|
200 |
- console.log("line : ", line); |
|
201 |
- axios({ |
|
202 |
- url: "http://165.229.169.32:35716/generate_tts", |
|
203 |
- method: "post", |
|
204 |
- headers: { |
|
205 |
- "Content-Type": "application/json; charset=UTF-8", |
|
114 |
+ goToNextPage() { |
|
115 |
+ // alert('지문 학습 완료!'); |
|
116 |
+ this.complete(); |
|
117 |
+ this.goToPage('Chapter1_1'); |
|
206 | 118 |
}, |
207 |
- responseType: "blob", |
|
208 |
- data: { |
|
209 |
- gender: gender, |
|
210 |
- input_text: line, |
|
119 |
+ // 대화 지문 API |
|
120 |
+ async fetchText() { |
|
121 |
+ axios({ |
|
122 |
+ url: '/text/selectOneText.json', |
|
123 |
+ method: 'post', |
|
124 |
+ headers: { |
|
125 |
+ 'Content-Type': 'application/json; charset=UTF-8', |
|
126 |
+ }, |
|
127 |
+ data: { |
|
128 |
+ textId: this.textId, |
|
129 |
+ }, |
|
130 |
+ }) |
|
131 |
+ .then((response) => { |
|
132 |
+ this.text_data = response.data[0].text_cnt; |
|
133 |
+ this.splitConversation(); |
|
134 |
+ }) |
|
135 |
+ .catch((err) => { |
|
136 |
+ console.log('지문 에러 : ', err); |
|
137 |
+ }); |
|
211 | 138 |
}, |
212 |
- }) |
|
213 |
- .then((response) => { |
|
214 |
- console.log("tts 응답 : ", response); |
|
215 |
- const audioBlob = new Blob([response.data], { type: "audio/mpeg" }); |
|
216 |
- const audioUrl = URL.createObjectURL(audioBlob); // 오디오 url 생성 |
|
217 |
- const audioPlayer = document.getElementById("tts-audio-player"); |
|
218 |
- audioPlayer.src = audioUrl; |
|
219 |
- audioPlayer.play(); |
|
220 |
- }) |
|
221 |
- .catch((err) => { |
|
222 |
- console.log("tts 에러 : ", err); |
|
223 |
- }); |
|
224 |
- }, |
|
225 |
- }, |
|
226 |
- watch: {}, |
|
227 |
- computed: { |
|
228 |
- textId() { |
|
229 |
- //console.log("지문 화면 아이디 : ", this.$store.getters.getTextId); |
|
230 |
- return this.$store.getters.getTextId; |
|
231 |
- }, |
|
232 |
- combinedLines() { |
|
233 |
- const maxLength = Math.max(this.speakerA.length, this.speakerB.length); |
|
234 |
- const lines = []; |
|
139 |
+ // 대화 지문 split |
|
140 |
+ splitConversation() { |
|
141 |
+ const lines = this.text_data.split('/'); |
|
142 |
+ const speakers = {}; |
|
235 | 143 |
|
236 |
- for (let i = 0; i < maxLength; i++) { |
|
237 |
- if (i < this.speakerA.length) { |
|
238 |
- lines.push(this.speakerA[i]); |
|
239 |
- } |
|
240 |
- if (i < this.speakerB.length) { |
|
241 |
- lines.push(this.speakerB[i]); |
|
242 |
- } |
|
243 |
- } |
|
244 |
- return lines; |
|
144 |
+ lines.forEach((line) => { |
|
145 |
+ const [speaker, message] = line.trim().split(':'); |
|
146 |
+ |
|
147 |
+ if (!speakers.speakerA_name && !speakers.speakerB_name) { |
|
148 |
+ // 첫 번째 발화자를 speakerA_name으로 설정 |
|
149 |
+ speakers.speakerA_name = speaker.trim(); |
|
150 |
+ this.speakerA.push(message.trim()); |
|
151 |
+ } else if ( |
|
152 |
+ speakers.speakerA_name && |
|
153 |
+ !speakers.speakerB_name && |
|
154 |
+ speakers.speakerA_name !== speaker.trim() |
|
155 |
+ ) { |
|
156 |
+ // 두 번째 발화자를 speakerB_name으로 설정 |
|
157 |
+ speakers.speakerB_name = speaker.trim(); |
|
158 |
+ this.speakerB.push(message.trim()); |
|
159 |
+ } else if (speaker.trim() === speakers.speakerA_name) { |
|
160 |
+ // speakerA_name에 내용 추가 |
|
161 |
+ this.speakerA.push(message.trim()); |
|
162 |
+ } else if (speaker.trim() === speakers.speakerB_name) { |
|
163 |
+ // speakerB_name에 내용 추가 |
|
164 |
+ this.speakerB.push(message.trim()); |
|
165 |
+ } |
|
166 |
+ }); |
|
167 |
+ |
|
168 |
+ this.speakerA_name = speakers.speakerA_name; |
|
169 |
+ this.speakerB_name = speakers.speakerB_name; |
|
170 |
+ }, |
|
171 |
+ |
|
172 |
+ playAudio() { |
|
173 |
+ const audio = document.getElementById('audio-player'); |
|
174 |
+ audio.play(); |
|
175 |
+ console.log('playing'); |
|
176 |
+ }, |
|
177 |
+ |
|
178 |
+ // 대화 지문 재생 |
|
179 |
+ generateTts(gender, line) { |
|
180 |
+ console.log('line : ', line); |
|
181 |
+ axios({ |
|
182 |
+ url: 'http://165.229.169.32:35716/generate_tts', |
|
183 |
+ method: 'post', |
|
184 |
+ headers: { |
|
185 |
+ 'Content-Type': 'application/json; charset=UTF-8', |
|
186 |
+ }, |
|
187 |
+ responseType: 'blob', |
|
188 |
+ data: { |
|
189 |
+ gender: gender, |
|
190 |
+ input_text: line, |
|
191 |
+ }, |
|
192 |
+ }) |
|
193 |
+ .then((response) => { |
|
194 |
+ console.log('tts 응답 : ', response); |
|
195 |
+ const audioBlob = new Blob([response.data], { type: 'audio/mpeg' }); |
|
196 |
+ const audioUrl = URL.createObjectURL(audioBlob); // 오디오 url 생성 |
|
197 |
+ const audioPlayer = document.getElementById('tts-audio-player'); |
|
198 |
+ audioPlayer.src = audioUrl; |
|
199 |
+ audioPlayer.play(); |
|
200 |
+ }) |
|
201 |
+ .catch((err) => { |
|
202 |
+ console.log('tts 에러 : ', err); |
|
203 |
+ }); |
|
204 |
+ }, |
|
245 | 205 |
}, |
246 |
- }, |
|
247 |
- components: { |
|
248 |
- TextToImage: TextToImage, |
|
249 |
- }, |
|
250 |
- mounted() { |
|
251 |
- this.fetchText(); |
|
252 |
- }, |
|
206 |
+ watch: {}, |
|
207 |
+ computed: { |
|
208 |
+ textId() { |
|
209 |
+ //console.log("지문 화면 아이디 : ", this.$store.getters.getTextId); |
|
210 |
+ return this.$store.getters.getTextId; |
|
211 |
+ }, |
|
212 |
+ combinedLines() { |
|
213 |
+ const maxLength = Math.max(this.speakerA.length, this.speakerB.length); |
|
214 |
+ const lines = []; |
|
215 |
+ |
|
216 |
+ for (let i = 0; i < maxLength; i++) { |
|
217 |
+ if (i < this.speakerA.length) { |
|
218 |
+ lines.push(this.speakerA[i]); |
|
219 |
+ } |
|
220 |
+ if (i < this.speakerB.length) { |
|
221 |
+ lines.push(this.speakerB[i]); |
|
222 |
+ } |
|
223 |
+ } |
|
224 |
+ return lines; |
|
225 |
+ }, |
|
226 |
+ }, |
|
227 |
+ components: { |
|
228 |
+ TextToImage: TextToImage, |
|
229 |
+ BookInfo: BookInfo, |
|
230 |
+ }, |
|
231 |
+ mounted() { |
|
232 |
+ this.fetchText(); |
|
233 |
+ }, |
|
253 | 234 |
}; |
254 | 235 |
</script> |
255 | 236 |
|
256 | 237 |
<style> |
257 | 238 |
.completeBtn { |
258 |
- margin-right: 100px; |
|
259 |
- background-color: #ffba08; |
|
260 |
- padding: 10px 30px; |
|
261 |
- border-radius: 10px; |
|
262 |
- font-size: 28px; |
|
263 |
- font-family: "ONEMobilePOPOTF"; |
|
239 |
+ margin-right: 100px; |
|
240 |
+ background-color: #ffba08; |
|
241 |
+ padding: 10px 30px; |
|
242 |
+ border-radius: 10px; |
|
243 |
+ font-size: 28px; |
|
244 |
+ font-family: 'ONEMobilePOPOTF'; |
|
264 | 245 |
} |
265 | 246 |
</style> |
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?