diff --git a/src/views/account/AccountView.vue b/src/views/account/AccountView.vue index 4616868..178603b 100644 --- a/src/views/account/AccountView.vue +++ b/src/views/account/AccountView.vue @@ -282,10 +282,22 @@ const categoryMajor = ref('') // 펼쳐진 대분류 이름 const majorOptionsData = computed(() => categories.value.filter((c) => c.type === form.type && c.parentId == null) ) +// 대분류를 4개씩 행으로 묶음 +const majorRows = computed(() => { + const items = majorOptionsData.value + const rows = [] + for (let i = 0; i < items.length; i += 4) rows.push(items.slice(i, i + 4)) + return rows +}) // 현재 펼쳐진 대분류 객체 const selectedMajorObj = computed(() => majorOptionsData.value.find((m) => m.name === categoryMajor.value) ?? null ) +// 해당 행에 선택된 대분류가 포함되는지 확인 +function rowContainsSelected(row) { + if (!selectedMajorObj.value) return false + return row.some((m) => m.id === selectedMajorObj.value.id) +} // 특정 대분류의 소분류 목록 function subsByMajor(majorId) { return categories.value.filter((c) => c.parentId === majorId) @@ -322,10 +334,19 @@ const allCategoryNames = computed(() => [...new Set(categories.value.map((c) => // 모달 내 분류 인라인 추가 const addingCategory = ref(false) +const addingAsMajor = ref(true) // true=대분류 추가, false=소분류 추가 const newCategoryName = ref('') const catSubmitting = ref(false) -function startAddCategory() { +function startAddMajorCategory() { + categoryMajor.value = '' + form.category = '' newCategoryName.value = '' + addingAsMajor.value = true + addingCategory.value = true +} +function startAddSubCategory() { + newCategoryName.value = '' + addingAsMajor.value = false addingCategory.value = true } function cancelAddCategory() { @@ -1125,32 +1146,34 @@ onMounted(async () => {