commit
7de724e75f
@ -1031,9 +1031,10 @@ const removeImage = (index) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1. generateContent 함수 - 완전한 버전
|
||||||
const generateContent = async () => {
|
const generateContent = async () => {
|
||||||
if (!canGenerate.value) {
|
if (!formData.value.title?.trim()) {
|
||||||
appStore.showSnackbar('모든 필수 항목을 입력해주세요.', 'warning')
|
appStore.showSnackbar('제목을 입력해주세요.', 'warning')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1056,22 +1057,59 @@ const generateContent = async () => {
|
|||||||
console.log('📋 [UI] 폼 데이터:', formData.value)
|
console.log('📋 [UI] 폼 데이터:', formData.value)
|
||||||
console.log('📁 [UI] 이미지 데이터:', previewImages.value)
|
console.log('📁 [UI] 이미지 데이터:', previewImages.value)
|
||||||
|
|
||||||
// 매장 ID 가져오기
|
// 매장 ID 가져오기 - API 호출로 변경
|
||||||
let storeId = 1
|
let storeId = null
|
||||||
|
|
||||||
|
try {
|
||||||
|
const storeApiUrl = (window.__runtime_config__ && window.__runtime_config__.STORE_URL)
|
||||||
|
? window.__runtime_config__.STORE_URL
|
||||||
|
: 'http://localhost:8082/api/store'
|
||||||
|
|
||||||
|
const token = localStorage.getItem('accessToken') || localStorage.getItem('auth_token') || localStorage.getItem('token')
|
||||||
|
|
||||||
|
if (!token) {
|
||||||
|
throw new Error('인증 토큰이 없습니다.')
|
||||||
|
}
|
||||||
|
|
||||||
|
const storeResponse = await fetch(`${storeApiUrl}`, {
|
||||||
|
headers: {
|
||||||
|
'Authorization': `Bearer ${token}`,
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (storeResponse.ok) {
|
||||||
|
const storeData = await storeResponse.json()
|
||||||
|
storeId = storeData.data?.storeId
|
||||||
|
console.log('✅ 매장 정보 조회 성공, storeId:', storeId)
|
||||||
|
} else {
|
||||||
|
throw new Error(`매장 정보 조회 실패: ${storeResponse.status}`)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ 매장 정보 조회 실패:', error)
|
||||||
|
|
||||||
|
// fallback: localStorage에서 이전에 저장된 매장 정보 확인
|
||||||
try {
|
try {
|
||||||
const storeInfo = JSON.parse(localStorage.getItem('storeInfo') || '{}')
|
const storeInfo = JSON.parse(localStorage.getItem('storeInfo') || '{}')
|
||||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
|
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
|
||||||
|
|
||||||
if (storeInfo.storeId) {
|
if (storeInfo.storeId) {
|
||||||
storeId = storeInfo.storeId
|
storeId = storeInfo.storeId
|
||||||
|
console.log('⚠️ fallback - localStorage에서 매장 ID 사용:', storeId)
|
||||||
} else if (userInfo.storeId) {
|
} else if (userInfo.storeId) {
|
||||||
storeId = userInfo.storeId
|
storeId = userInfo.storeId
|
||||||
|
console.log('⚠️ fallback - userInfo에서 매장 ID 사용:', storeId)
|
||||||
} else {
|
} else {
|
||||||
console.warn('⚠️ localStorage에서 매장 ID를 찾을 수 없음, 기본값 사용:', storeId)
|
throw new Error('매장 정보를 찾을 수 없습니다. 매장 관리 페이지에서 매장을 등록해주세요.')
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (fallbackError) {
|
||||||
console.warn('⚠️ 매장 정보 파싱 실패, 기본값 사용:', storeId)
|
console.error('❌ fallback 실패:', fallbackError)
|
||||||
|
throw new Error('매장 정보를 찾을 수 없습니다. 매장 관리 페이지에서 매장을 등록해주세요.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!storeId) {
|
||||||
|
throw new Error('매장 ID를 가져올 수 없습니다. 매장 관리 페이지에서 매장을 등록해주세요.')
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('🏪 [UI] 사용할 매장 ID:', storeId)
|
console.log('🏪 [UI] 사용할 매장 ID:', storeId)
|
||||||
@ -1213,6 +1251,7 @@ const selectVersion = (index) => {
|
|||||||
selectedVersion.value = index
|
selectedVersion.value = index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2. saveVersion 함수 - 완전한 버전
|
||||||
const saveVersion = async (index) => {
|
const saveVersion = async (index) => {
|
||||||
isPublishing.value = true
|
isPublishing.value = true
|
||||||
publishingIndex.value = index
|
publishingIndex.value = index
|
||||||
@ -1222,10 +1261,38 @@ const saveVersion = async (index) => {
|
|||||||
|
|
||||||
console.log('💾 [UI] 저장할 버전 데이터:', version)
|
console.log('💾 [UI] 저장할 버전 데이터:', version)
|
||||||
|
|
||||||
// 매장 ID 가져오기
|
// 매장 ID 가져오기 - API 호출로 변경
|
||||||
let storeId = 1
|
let storeId = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
const storeApiUrl = (window.__runtime_config__ && window.__runtime_config__.STORE_URL)
|
||||||
|
? window.__runtime_config__.STORE_URL
|
||||||
|
: 'http://localhost:8082/api/store'
|
||||||
|
|
||||||
|
const token = localStorage.getItem('accessToken') || localStorage.getItem('auth_token') || localStorage.getItem('token')
|
||||||
|
|
||||||
|
if (!token) {
|
||||||
|
throw new Error('인증 토큰이 없습니다.')
|
||||||
|
}
|
||||||
|
|
||||||
|
const storeResponse = await fetch(`${storeApiUrl}`, {
|
||||||
|
headers: {
|
||||||
|
'Authorization': `Bearer ${token}`,
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (storeResponse.ok) {
|
||||||
|
const storeData = await storeResponse.json()
|
||||||
|
storeId = storeData.data?.storeId
|
||||||
|
console.log('✅ [저장] 매장 정보 조회 성공, storeId:', storeId)
|
||||||
|
} else {
|
||||||
|
throw new Error(`매장 정보 조회 실패: ${storeResponse.status}`)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ [저장] 매장 정보 조회 실패:', error)
|
||||||
|
|
||||||
|
// fallback
|
||||||
const storeInfo = JSON.parse(localStorage.getItem('storeInfo') || '{}')
|
const storeInfo = JSON.parse(localStorage.getItem('storeInfo') || '{}')
|
||||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
|
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
|
||||||
|
|
||||||
@ -1234,10 +1301,12 @@ const saveVersion = async (index) => {
|
|||||||
} else if (userInfo.storeId) {
|
} else if (userInfo.storeId) {
|
||||||
storeId = userInfo.storeId
|
storeId = userInfo.storeId
|
||||||
} else {
|
} else {
|
||||||
console.warn('⚠️ localStorage에서 매장 ID를 찾을 수 없음, 기본값 사용:', storeId)
|
throw new Error('매장 정보를 찾을 수 없습니다.')
|
||||||
}
|
}
|
||||||
} catch (error) {
|
}
|
||||||
console.warn('⚠️ 매장 정보 파싱 실패, 기본값 사용:', storeId)
|
|
||||||
|
if (!storeId) {
|
||||||
|
throw new Error('매장 ID를 가져올 수 없습니다.')
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('🏪 [UI] 사용할 매장 ID:', storeId)
|
console.log('🏪 [UI] 사용할 매장 ID:', storeId)
|
||||||
|
|||||||
@ -45,7 +45,6 @@
|
|||||||
@keyup.enter="handleLogin"
|
@keyup.enter="handleLogin"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
<!-- 로그인 옵션 -->
|
<!-- 로그인 옵션 -->
|
||||||
<div class="d-flex justify-space-between align-center mb-6">
|
<div class="d-flex justify-space-between align-center mb-6">
|
||||||
<v-checkbox
|
<v-checkbox
|
||||||
@ -109,10 +108,10 @@
|
|||||||
<h3 class="text-subtitle-2 font-weight-bold mb-2">데모 계정 정보</h3>
|
<h3 class="text-subtitle-2 font-weight-bold mb-2">데모 계정 정보</h3>
|
||||||
<div class="demo-info">
|
<div class="demo-info">
|
||||||
<div class="text-body-2 mb-1">
|
<div class="text-body-2 mb-1">
|
||||||
<span class="font-weight-medium">아이디:</span> user01
|
<span class="font-weight-medium">아이디:</span> test
|
||||||
</div>
|
</div>
|
||||||
<div class="text-body-2 mb-2">
|
<div class="text-body-2 mb-2">
|
||||||
<span class="font-weight-medium">비밀번호:</span> passw0rd
|
<span class="font-weight-medium">비밀번호:</span> test1234!
|
||||||
</div>
|
</div>
|
||||||
<v-btn size="small" color="info" variant="outlined" @click="fillDemoCredentials">
|
<v-btn size="small" color="info" variant="outlined" @click="fillDemoCredentials">
|
||||||
데모 계정 자동 입력
|
데모 계정 자동 입력
|
||||||
@ -328,8 +327,8 @@ const emailChecked = ref(false)
|
|||||||
|
|
||||||
// 로그인 자격 증명
|
// 로그인 자격 증명
|
||||||
const credentials = ref({
|
const credentials = ref({
|
||||||
username: 'user01',
|
username: 'test',
|
||||||
password: 'passw0rd',
|
password: 'test1234!',
|
||||||
})
|
})
|
||||||
|
|
||||||
// 회원가입 데이터
|
// 회원가입 데이터
|
||||||
@ -410,8 +409,8 @@ const businessNumberRules = [
|
|||||||
|
|
||||||
// 로그인 관련 메서드
|
// 로그인 관련 메서드
|
||||||
const fillDemoCredentials = () => {
|
const fillDemoCredentials = () => {
|
||||||
credentials.value.username = 'user01'
|
credentials.value.username = 'test'
|
||||||
credentials.value.password = 'passw0rd'
|
credentials.value.password = 'test1234!'
|
||||||
loginError.value = ''
|
loginError.value = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user