다국어 관리 페이지
This commit is contained in:
@@ -65,7 +65,7 @@ export default function MultiLangPage() {
|
||||
const fetchCompanies = async () => {
|
||||
try {
|
||||
console.log("회사 목록 조회 시작");
|
||||
const response = await apiClient.get("/api/admin/companies");
|
||||
const response = await apiClient.get("/admin/companies");
|
||||
console.log("회사 목록 응답 데이터:", response.data);
|
||||
|
||||
const data = response.data;
|
||||
@@ -87,7 +87,7 @@ export default function MultiLangPage() {
|
||||
// 언어 목록 조회
|
||||
const fetchLanguages = async () => {
|
||||
try {
|
||||
const response = await apiClient.get("/api/admin/multilang/languages");
|
||||
const response = await apiClient.get("/multilang/languages");
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
setLanguages(data.data);
|
||||
@@ -100,7 +100,7 @@ export default function MultiLangPage() {
|
||||
// 다국어 키 목록 조회
|
||||
const fetchLangKeys = async () => {
|
||||
try {
|
||||
const response = await apiClient.get("/api/admin/multilang/keys");
|
||||
const response = await apiClient.get("/multilang/keys");
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
console.log("✅ 전체 키 목록 로드:", data.data.length, "개");
|
||||
@@ -147,7 +147,7 @@ export default function MultiLangPage() {
|
||||
const fetchLangTexts = async (keyId: number) => {
|
||||
try {
|
||||
console.log("다국어 텍스트 조회 시작: keyId =", keyId);
|
||||
const response = await apiClient.get(`/api/admin/multilang/keys/${keyId}/texts`);
|
||||
const response = await apiClient.get(`/multilang/keys/${keyId}/texts`);
|
||||
const data = response.data;
|
||||
console.log("다국어 텍스트 조회 응답:", data);
|
||||
if (data.success) {
|
||||
@@ -203,7 +203,18 @@ export default function MultiLangPage() {
|
||||
if (!selectedKey) return;
|
||||
|
||||
try {
|
||||
const response = await apiClient.post(`/api/admin/multilang/keys/${selectedKey.keyId}/texts`, editingTexts);
|
||||
// 백엔드가 기대하는 형식으로 데이터 변환
|
||||
const requestData = {
|
||||
texts: editingTexts.map((text) => ({
|
||||
langCode: text.langCode,
|
||||
langText: text.langText,
|
||||
isActive: text.isActive || "Y",
|
||||
createdBy: user?.userId || "system",
|
||||
updatedBy: user?.userId || "system",
|
||||
})),
|
||||
};
|
||||
|
||||
const response = await apiClient.post(`/multilang/keys/${selectedKey.keyId}/texts`, requestData);
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
alert("저장되었습니다.");
|
||||
@@ -245,9 +256,9 @@ export default function MultiLangPage() {
|
||||
|
||||
let response;
|
||||
if (editingLanguage) {
|
||||
response = await apiClient.put(`/api/admin/multilang/languages/${editingLanguage.langCode}`, requestData);
|
||||
response = await apiClient.put(`/multilang/languages/${editingLanguage.langCode}`, requestData);
|
||||
} else {
|
||||
response = await apiClient.post("/api/admin/multilang/languages", requestData);
|
||||
response = await apiClient.post("/multilang/languages", requestData);
|
||||
}
|
||||
|
||||
const result = response.data;
|
||||
@@ -282,17 +293,11 @@ export default function MultiLangPage() {
|
||||
|
||||
try {
|
||||
const deletePromises = Array.from(selectedLanguages).map((langCode) =>
|
||||
fetch(`${API_BASE_URL}/multilang/languages/${langCode}`, {
|
||||
method: "DELETE",
|
||||
credentials: "include",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}),
|
||||
apiClient.delete(`/admin/multilang/languages/${langCode}`),
|
||||
);
|
||||
|
||||
const responses = await Promise.all(deletePromises);
|
||||
const failedDeletes = responses.filter((response) => !response.ok);
|
||||
const failedDeletes = responses.filter((response) => !response.data.success);
|
||||
|
||||
if (failedDeletes.length === 0) {
|
||||
alert("선택된 언어가 삭제되었습니다.");
|
||||
@@ -344,9 +349,9 @@ export default function MultiLangPage() {
|
||||
|
||||
let response;
|
||||
if (editingKey) {
|
||||
response = await apiClient.put(`/api/admin/multilang/keys/${editingKey.keyId}`, requestData);
|
||||
response = await apiClient.put(`/multilang/keys/${editingKey.keyId}`, requestData);
|
||||
} else {
|
||||
response = await apiClient.post("/api/admin/multilang/keys", requestData);
|
||||
response = await apiClient.post("/multilang/keys", requestData);
|
||||
}
|
||||
|
||||
const data = response.data;
|
||||
@@ -383,7 +388,7 @@ export default function MultiLangPage() {
|
||||
// 키 상태 토글
|
||||
const handleToggleStatus = async (keyId: number) => {
|
||||
try {
|
||||
const response = await apiClient.put(`/api/admin/multilang/keys/${keyId}/toggle`);
|
||||
const response = await apiClient.put(`/multilang/keys/${keyId}/toggle`);
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
alert(`키가 ${data.data}되었습니다.`);
|
||||
@@ -400,7 +405,7 @@ export default function MultiLangPage() {
|
||||
// 언어 상태 토글
|
||||
const handleToggleLanguageStatus = async (langCode: string) => {
|
||||
try {
|
||||
const response = await apiClient.put(`/api/admin/multilang/languages/${langCode}/toggle`);
|
||||
const response = await apiClient.put(`/multilang/languages/${langCode}/toggle`);
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
alert(`언어가 ${data.data}되었습니다.`);
|
||||
@@ -440,9 +445,7 @@ export default function MultiLangPage() {
|
||||
}
|
||||
|
||||
try {
|
||||
const deletePromises = Array.from(selectedKeys).map((keyId) =>
|
||||
apiClient.delete(`/api/admin/multilang/keys/${keyId}`),
|
||||
);
|
||||
const deletePromises = Array.from(selectedKeys).map((keyId) => apiClient.delete(`/multilang/keys/${keyId}`));
|
||||
|
||||
const responses = await Promise.all(deletePromises);
|
||||
const allSuccess = responses.every((response) => response.data.success);
|
||||
@@ -472,7 +475,7 @@ export default function MultiLangPage() {
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await apiClient.delete(`/api/admin/multilang/keys/${keyId}`);
|
||||
const response = await apiClient.delete(`/multilang/keys/${keyId}`);
|
||||
const data = response.data;
|
||||
if (data.success) {
|
||||
alert("언어 키가 영구적으로 삭제되었습니다.");
|
||||
|
||||
Reference in New Issue
Block a user