From 213329198f5f6ed5bd58096b883a9e520c285801 Mon Sep 17 00:00:00 2001 From: khj0414 Date: Mon, 24 Feb 2025 13:20:48 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9A=A9=EC=96=B4=EC=A7=91=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/wordDict/DictWrite.vue | 21 ++++++--- src/views/wordDict/wordDict.vue | 66 ++++++++++++++++++--------- 2 files changed, 59 insertions(+), 28 deletions(-) diff --git a/src/components/wordDict/DictWrite.vue b/src/components/wordDict/DictWrite.vue index 12d057c..2de9ee1 100644 --- a/src/components/wordDict/DictWrite.vue +++ b/src/components/wordDict/DictWrite.vue @@ -17,7 +17,7 @@ - +
@@ -83,12 +83,12 @@ const addCategoryAlert = ref(false); const selectCategory = ref(''); // 제목 상태 -const computedTitle = computed(() => +const computedTitle = computed(() => wordTitle.value === '' ? props.titleValue : wordTitle.value ); // 카테고리 상태 -const selectedCategory = computed(() => +const selectedCategory = computed(() => selectCategory.value === '' ? props.formValue : selectCategory.value ); @@ -138,8 +138,16 @@ const onChange = (newValue) => { //용어 등록 const saveWord = () => { + + // if(addCategory.value == ''){ + // addCategoryAlert.value = true; + // return; + // }else { + // addCategoryAlert.value = false; + // } + //validation - + // 용어 체크 if(computedTitle.value == '' || computedTitle.length == 0){ wordTitleAlert.value = true; @@ -158,8 +166,7 @@ const saveWord = () => { category: selectedCategory.value, content: content.value, }; - - emit('addWord', wordData); + emit('addWord', wordData ,addCategory.value ); }; @@ -173,4 +180,4 @@ const saveWord = () => { margin-top: 2.5rem } } - \ No newline at end of file + diff --git a/src/views/wordDict/wordDict.vue b/src/views/wordDict/wordDict.vue index a4b3a27..3942ee7 100644 --- a/src/views/wordDict/wordDict.vue +++ b/src/views/wordDict/wordDict.vue @@ -102,14 +102,14 @@ const { cateList } = commonApi({ loadCateList: true }); - + const selectedCategory = ref(''); const selectCategory = ref(''); // 체크박스 체크된 갯수 const checkedItems = ref([]); // 체크박스의 name - const checkedNames = ref([]); + const checkedNames = ref([]); //선택된 알파벳 @@ -177,34 +177,58 @@ const addCategory = (data) =>{ const lastCategory = cateList.value[cateList.value.length - 1]; const newValue = lastCategory ? lastCategory.value + 1 : 600101; - axios.post('worddict/insertCategory',{ - CMNCODNAM: data - }).then(res => { - if(res.data.data == '1'){ - toastStore.onToast('카테고리가 추가 등록 되었습니다.', 's'); - const newCategory = { label: data, value: newValue }; + const newCategory = { label: data, value: newValue }; cateList.value = [newCategory, ...cateList.value]; selectedCategory.value = newCategory.value; - } else if(res.data.message == '이미 존재하는 카테고리명입니다.') { - toastStore.onToast(res.data.message, 'e'); - } - }) + // axios.post('worddict/insertCategory',{ + // CMNCODNAM: data + // }).then(res => { + // if(res.data.data == '1'){ + // toastStore.onToast('카테고리가 추가 등록 되었습니다.', 's'); + // const newCategory = { label: data, value: newValue }; + // cateList.value = [newCategory, ...cateList.value]; + // selectedCategory.value = newCategory.value; + // } else if(res.data.message == '이미 존재하는 카테고리명입니다.') { + // toastStore.onToast(res.data.message, 'e'); + // } + // }) } - //용어 등록 - const addWord = (wordData) => { - axios.post('worddict/insertWord',{ - WRDDICCAT : wordData.category, - WRDDICTTL : wordData.title, - WRDDICCON : $common.deltaAsJson(wordData.content), - }).then(res => { - if(res.data.data == '1'){ + const addWord = (wordData, data) => { + let category = null; + // 카테고리 체크 + const existingCategory = cateList.value.find(item => item.label === data); + if (existingCategory) { + //카테고리 있을시 그냥 저장 + category = existingCategory.label == '' ? wordData.category : existingCategory.value; + } else { + //카테고리 없을시 카테고리 와 용어 둘다 저장 + console.log('카테고리 없음'); + const lastCategory = cateList.value[cateList.value.length - 1]; + category = lastCategory ? lastCategory.value + 1 : 600101; + } + sendWordRequest(category, wordData, data, !existingCategory); + }; + const sendWordRequest = (category, wordData, data, isNewCategory) => { + const payload = { + WRDDICCAT: category, + WRDDICTTL: wordData.title, + WRDDICCON: $common.deltaAsJson(wordData.content), + }; + + if (isNewCategory) { + payload.CMNCODNAM = data; // 새로운 카테고리 추가 시 포함 + } + axios.post('worddict/insertWord', payload).then(res => { + if (res.data.status === 'OK') { toastStore.onToast('용어가 등록 되었습니다.', 's'); isWriteVisible.value = false; getwordList(); + //카테고리 리스트 다시 조회 해야야함 } - }) + }); }; + // 체크 상태 업데이트 const updateCheckedItems = (checked, id, name) => { if (checked) {