미리듣기 시간설정 기능 추가
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung