미리듣기 시간설정 기능 추가
This commit is contained in:
parent
15f1136499
commit
9e4ff25c8d
|
@ -413,6 +413,32 @@
|
|||
</v-col>
|
||||
</v-row>
|
||||
</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-spacer />
|
||||
<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() {
|
||||
if (
|
||||
this.audio_content.title === null ||
|
||||
|
@ -647,7 +679,50 @@ export default {
|
|||
price: this.audio_content.price,
|
||||
themeId: this.audio_content.theme_id,
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue