
--- client/views/pages/teacher/TextDetail.vue
+++ client/views/pages/teacher/TextDetail.vue
... | ... | @@ -5,43 +5,31 @@ |
5 | 5 |
<div class="board-wrap"> |
6 | 6 |
<div class="flex align-center mb20"> |
7 | 7 |
<label for="" class="title2">제목</label> |
8 |
- <div v-if="isEditing"> |
|
9 |
- <input type="text" v-model="newData.textTtl" class="data-wrap"> |
|
10 |
- </div> |
|
11 |
- <div v-else> |
|
12 |
- <p class="data-wrap">{{ post.text_ttl }}</p> |
|
13 |
- </div> |
|
8 |
+ <input v-if="isEditing" type="text" v-model="post.textTtl" class="data-wrap"> |
|
9 |
+ <p v-else class="data-wrap">{{ post.textTtl }}</p> |
|
14 | 10 |
</div> |
15 | 11 |
<div class="flex align-center mb20"> |
16 | 12 |
<label for="" class="title2">URL</label> |
17 |
- <div v-if="isEditing"> |
|
18 |
- <input type="text" v-model="newData.textUrl" class="data-wrap"> |
|
19 |
- </div> |
|
20 |
- <div v-else> |
|
21 |
- <p class="data-wrap">{{ post.text_url }}</p> |
|
22 |
- </div> |
|
13 |
+ <input v-if="isEditing" type="text" v-model="post.textUrl" class="data-wrap"> |
|
14 |
+ <p v-else class="data-wrap">{{ post.textUrl }}</p> |
|
23 | 15 |
</div> |
24 |
- <div class="flex align-center"> |
|
16 |
+ <div class="flex align-center mb20"> |
|
25 | 17 |
<label class="title2">형식</label> |
26 | 18 |
<label class="title2"> |
27 |
- <input type="radio" v-model="radio" value="1" class="data-wrap" :disabled="!isEditing"> 일반 |
|
19 |
+ <input type="radio" v-model="post.textTypeId" value="1" class="data-wrap" :disabled="!isEditing"> 일반 |
|
28 | 20 |
</label> |
29 | 21 |
<label class="title2"> |
30 |
- <input type="radio" v-model="radio" value="2" class="data-wrap" :disabled="!isEditing"> 대화 |
|
22 |
+ <input type="radio" v-model="post.textTypeId" value="2" class="data-wrap" :disabled="!isEditing"> 대화 |
|
31 | 23 |
</label> |
32 | 24 |
<label class="title2"> |
33 |
- <input type="radio" v-model="radio" value="3" class="data-wrap" :disabled="!isEditing"> 책 리스닝 |
|
25 |
+ <input type="radio" v-model="post.textTypeId" value="3" class="data-wrap" :disabled="!isEditing"> 책 리스닝 |
|
34 | 26 |
</label> |
35 | 27 |
</div> |
36 | 28 |
<hr> |
37 | 29 |
<div class="flex align-center"> |
38 | 30 |
<label for="" class="title2">스크립트</label> |
39 |
- <div v-if="isEditing"> |
|
40 |
- <textarea v-model="newData.textCnt" class="data-wrap"></textarea> |
|
41 |
- </div> |
|
42 |
- <div v-else> |
|
43 |
- <p class="data-wrap">{{ post.text_cnt }}</p> |
|
44 |
- </div> |
|
31 |
+ <textarea v-if="isEditing" v-model="post.textCnt" class="data-wrap"></textarea> |
|
32 |
+ <p v-else class="data-wrap">{{ post.textCnt }}</p> |
|
45 | 33 |
</div> |
46 | 34 |
</div> |
47 | 35 |
<div class="flex justify-between mt50"> |
... | ... | @@ -68,15 +56,11 @@ |
68 | 56 |
data() { |
69 | 57 |
return { |
70 | 58 |
mdiMagnify: mdiMagnify, |
71 |
- post: {}, |
|
72 |
- newData: { |
|
73 |
- "textId": "", |
|
59 |
+ post: {"textId": "", |
|
74 | 60 |
"textTtl": "", |
75 | 61 |
"textCnt": "", |
76 | 62 |
"textUrl": "", |
77 |
- "textTypeId": "" |
|
78 |
- }, |
|
79 |
- radio: null, |
|
63 |
+ "textTypeId": ""}, |
|
80 | 64 |
isEditing: false // Add this property to toggle edit mode |
81 | 65 |
}; |
82 | 66 |
}, |
... | ... | @@ -98,8 +82,11 @@ |
98 | 82 |
}) |
99 | 83 |
.then(response => { |
100 | 84 |
if (response.data && response.data[0]) { |
101 |
- this.post = response.data[0]; |
|
102 |
- this.radio = this.post.text_type_id; |
|
85 |
+ this.post.textId = response.data[0].text_id; |
|
86 |
+ this.post.textTtl = response.data[0].text_ttl; |
|
87 |
+ this.post.textCnt = response.data[0].text_cnt; |
|
88 |
+ this.post.textUrl = response.data[0].text_url; |
|
89 |
+ this.post.textTypeId = response.data[0].text_type_id; |
|
103 | 90 |
} else { |
104 | 91 |
this.error = "Failed to fetch post details."; |
105 | 92 |
} |
... | ... | @@ -109,9 +96,8 @@ |
109 | 96 |
this.error = "Failed to fetch post details."; |
110 | 97 |
}); |
111 | 98 |
}, |
112 |
- dataInsert() { |
|
113 |
- this.newData.textId=this.textId; |
|
114 |
- axios.post("/text/textUpdate.json", this.newData, { |
|
99 |
+ dataInsert() { |
|
100 |
+ axios.post("/text/textUpdate.json", this.post, { |
|
115 | 101 |
headers: { |
116 | 102 |
"Content-Type": "application/json; charset=UTF-8", |
117 | 103 |
} |
... | ... | @@ -126,9 +112,7 @@ |
126 | 112 |
}); |
127 | 113 |
}, |
128 | 114 |
toggleEdit() { |
129 |
- if (this.isEditing) { |
|
130 |
- // Save changes if in edit mode |
|
131 |
- this.newData.textTypeId = this.radio; |
|
115 |
+ if (this.isEditing) { |
|
132 | 116 |
this.dataInsert(); |
133 | 117 |
this.isEditing = false; |
134 | 118 |
} else { |
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?