fix: 웹 UI JavaScript API 응답 구조 호환성 수정

- 성능 최적화로 변경된 API 응답 구조에 맞춰 JavaScript 수정
- management-dashboard.js: workers 데이터 접근 경로 수정 (data.data 지원)
- manage-worker.js: 작업자 목록 API 응답 구조 수정
- daily-work-report.js: workers, projects 데이터 접근 경로 수정
- login.js: 로그인 API 응답 구조 수정 (result.data.token 접근)

API 응답 구조: { success: true, data: [...], meta: {...} }
This commit is contained in:
Hyungi Ahn
2025-11-03 11:17:49 +09:00
parent 2b97844ed1
commit a3da93adc2
4 changed files with 8 additions and 7 deletions

View File

@@ -118,7 +118,7 @@ async function loadWorkers() {
try {
console.log('Workers API 호출 중... (통합 API 사용)');
const data = await apiCall(`${API}/workers`);
workers = Array.isArray(data) ? data : (data.workers || []);
workers = Array.isArray(data) ? data : (data.data || data.workers || []);
console.log('✅ Workers 로드 성공:', workers.length);
} catch (error) {
console.error('작업자 로딩 오류:', error);
@@ -130,7 +130,7 @@ async function loadProjects() {
try {
console.log('Projects API 호출 중... (통합 API 사용)');
const data = await apiCall(`${API}/projects`);
projects = Array.isArray(data) ? data : (data.projects || []);
projects = Array.isArray(data) ? data : (data.data || data.projects || []);
console.log('✅ Projects 로드 성공:', projects.length);
} catch (error) {
console.error('프로젝트 로딩 오류:', error);

View File

@@ -22,12 +22,12 @@ document.getElementById('loginForm').addEventListener('submit', async function (
// API 헬퍼를 통해 로그인 요청
const result = await login(username, password);
if (result.token) {
if (result.success && result.data && result.data.token) {
// 인증 정보 저장
saveAuthData(result.token, result.user);
saveAuthData(result.data.token, result.data.user);
// 백엔드가 지정한 URL로 리디렉션
const redirectUrl = result.redirectUrl || '/pages/dashboard/user.html'; // 혹시 모를 예외처리
const redirectUrl = result.data.redirectUrl || '/pages/dashboard/user.html'; // 혹시 모를 예외처리
// 부드러운 화면 전환 효과
document.body.style.transition = 'opacity 0.3s ease-out';

View File

@@ -74,7 +74,8 @@ async function loadWorkers() {
throw new Error(`HTTP error! status: ${res.status}`);
}
const list = await res.json();
const response = await res.json();
const list = response.data || response; // 새로운 API 응답 구조 지원
tbody.innerHTML = '';
if (Array.isArray(list)) {

View File

@@ -127,7 +127,7 @@ async function loadWorkers() {
try {
console.log('작업자 데이터 로딩 중... (통합 API)');
const data = await apiCall(`${API}/workers`);
workers = Array.isArray(data) ? data : (data.workers || []);
workers = Array.isArray(data) ? data : (data.data || data.workers || []);
console.log('✅ 작업자 로드 성공:', workers.length);
} catch (error) {
console.error('작업자 로딩 오류:', error);