미리듣기 시간설정 기능 추가 #3
@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user