diff --git a/src/components/projectlist/ProjectList.vue b/src/components/projectlist/ProjectList.vue
index 9157c79..0a8f549 100644
--- a/src/components/projectlist/ProjectList.vue
+++ b/src/components/projectlist/ProjectList.vue
@@ -7,11 +7,11 @@
-
+
-
+
{
- const res = await $api.get('project/select', {
- params: {
- searchKeyword : searchText.value,
- category : selectedYear.value,
- },
- });
- projectList.value = res.data.data.projectList;
-};
-
// 검색 처리
const search = async (searchKeyword) => {
searchText.value = searchKeyword.trim();
@@ -237,6 +227,10 @@ const selectedYear = computed(() => {
return yearCategory.value.find(item => item.value === selectedCategory.value)?.label || null;
});
+// 프로젝트 목록 조회
+const getProjectList = async () => {
+ await projectStore.getProjectList(searchText.value, selectedYear.value);
+};
// 카테고리 변경 감지
watch(selectedCategory, async () => {
@@ -250,6 +244,20 @@ const openCreateModal = () => {
const closeCreateModal = () => {
isCreateModalOpen.value = false;
+ resetCreateForm();
+};
+
+const resetCreateForm = () => {
+ name.value = '';
+ color.value = '';
+ address.value = '';
+ detailAddress.value = '';
+ postcode.value = '';
+ startDay.value = today;
+ endDay.value = '';
+ description.value = '';
+ nameAlert.value = false;
+ addressAlert.value = false;
};
// 등록 :: 주소 업데이트 핸들러
@@ -283,7 +291,7 @@ const handleCreate = async () => {
if (res.status === 200) {
toastStore.onToast('프로젝트가 등록되었습니다.', 's');
closeCreateModal();
- location.reload();
+ getProjectList();
}
});
};
@@ -307,7 +315,7 @@ const allColors = computed(() => {
// 변경된 내용 있는지 확인
const hasChanges = computed(() => {
- const original = projectList.value.find(p => p.PROJCTSEQ === selectedProject.value.PROJCTSEQ);
+ const original = projectStore.projectList.find(p => p.PROJCTSEQ === selectedProject.value.PROJCTSEQ);
if (!original) return false;
return (
diff --git a/src/stores/useProjectStore.js b/src/stores/useProjectStore.js
new file mode 100644
index 0000000..46d8b7a
--- /dev/null
+++ b/src/stores/useProjectStore.js
@@ -0,0 +1,30 @@
+/*
+ 작성자 : 박지윤
+ 작성일 : 2025-02-25
+ 수정자 :
+ 수정일 :
+ 설명 : 프로젝트 목록
+*/
+import { defineStore } from 'pinia';
+import { ref } from 'vue';
+import $api from '@api';
+
+export const useProjectStore = defineStore('project', () => {
+ const projectList = ref([]);
+
+ const getProjectList = async (searchText, selectedYear) => {
+ try {
+ const res = await $api.get('project/select', {
+ params: {
+ searchKeyword: searchText,
+ category: selectedYear,
+ },
+ });
+ projectList.value = res.data.data.projectList;
+ } catch (error) {
+ console.error('프로젝트 목록 조회 실패:', error);
+ }
+ };
+
+ return { projectList, getProjectList };
+});