미리듣기 시간설정 기능 추가
This commit is contained in:
parent
15f1136499
commit
9e4ff25c8d
|
@ -413,6 +413,32 @@
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row align="center">
|
||||||
|
<v-col cols="4">
|
||||||
|
미리듣기 시간설정
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="8">
|
||||||
|
<v-row align="center">
|
||||||
|
<v-col cols="5">
|
||||||
|
<v-text-field
|
||||||
|
v-model="audio_content.preview_start_time"
|
||||||
|
label="시작시간(00:00:00)"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="2">
|
||||||
|
~
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="5">
|
||||||
|
<v-text-field
|
||||||
|
v-model="audio_content.preview_end_time"
|
||||||
|
label="종료시간(00:00:30)"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
<v-card-actions v-show="!is_loading">
|
<v-card-actions v-show="!is_loading">
|
||||||
<v-spacer />
|
<v-spacer />
|
||||||
<v-btn
|
<v-btn
|
||||||
|
@ -606,6 +632,12 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
isValidTimeFormat(time) {
|
||||||
|
// 정규 표현식을 사용하여 "HH:mm:ss" 형식인지 확인
|
||||||
|
const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
|
||||||
|
return regex.test(time);
|
||||||
|
},
|
||||||
|
|
||||||
async save() {
|
async save() {
|
||||||
if (
|
if (
|
||||||
this.audio_content.title === null ||
|
this.audio_content.title === null ||
|
||||||
|
@ -647,7 +679,50 @@ export default {
|
||||||
price: this.audio_content.price,
|
price: this.audio_content.price,
|
||||||
themeId: this.audio_content.theme_id,
|
themeId: this.audio_content.theme_id,
|
||||||
isAdult: this.audio_content.is_adult,
|
isAdult: this.audio_content.is_adult,
|
||||||
isCommentAvailable: this.audio_content.is_comment_available,
|
isCommentAvailable: this.audio_content.is_comment_available
|
||||||
|
}
|
||||||
|
|
||||||
|
let previewStartTime = this.audio_content.preview_start_time;
|
||||||
|
let previewEndTime = this.audio_content.preview_end_time;
|
||||||
|
|
||||||
|
if (
|
||||||
|
previewStartTime !== undefined &&
|
||||||
|
previewStartTime !== null &&
|
||||||
|
previewStartTime.trim() !== '' &&
|
||||||
|
previewEndTime !== undefined &&
|
||||||
|
previewEndTime !== null &&
|
||||||
|
previewEndTime.trim() !== ''
|
||||||
|
) {
|
||||||
|
if (
|
||||||
|
!this.isValidTimeFormat(previewStartTime) ||
|
||||||
|
!this.isValidTimeFormat(previewEndTime)
|
||||||
|
) {
|
||||||
|
this.notifyError("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 시간을 분해하고 계산하는 나머지 코드는 이전과 동일합니다.
|
||||||
|
const [h1, m1, s1] = previewStartTime.split(':').map(Number);
|
||||||
|
const [h2, m2, s2] = previewEndTime.split(':').map(Number);
|
||||||
|
const totalSeconds1 = h1 * 3600 + m1 * 60 + s1;
|
||||||
|
const totalSeconds2 = h2 * 3600 + m2 * 60 + s2;
|
||||||
|
const timeDifference = totalSeconds2 - totalSeconds1;
|
||||||
|
|
||||||
|
if (timeDifference < 30) {
|
||||||
|
this.notifyError("미리 듣기의 최소 시간은 30초 입니다.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request["previewStartTime"] = previewStartTime
|
||||||
|
request["previewEndTime"] = previewEndTime
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
(previewStartTime !== undefined && previewStartTime.trim() !== '') ||
|
||||||
|
(previewEndTime !== undefined && previewEndTime.trim() !== '')
|
||||||
|
) {
|
||||||
|
this.notifyError("미리 듣기 시작 시간과 종료 시간 둘 다 입력을 하거나 둘 다 입력 하지 않아야 합니다.")
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
formData.append("coverImage", this.audio_content.cover_image)
|
formData.append("coverImage", this.audio_content.cover_image)
|
||||||
|
|
Loading…
Reference in New Issue