localhost-front/src/common/commonApi.js
2025-02-13 14:46:38 +09:00

46 lines
1.5 KiB
JavaScript

/*
작성자 : 박지윤
작성일 : 2025-02-04
수정자 :
수정일 :
설명 : 공통 api
*/
import { ref, onMounted } from "vue";
import $api from '@api';
const commonApi = (options = {}) => {
const colorList = ref([]);
const mbtiList = ref([]);
const pwhintList = ref([]);
const yearCategory = ref([]);
const cateList = ref([]);
// type 파라미터를 추가로 받도록 수정
const CommonCode = async (path, endpoint, targetList, type = null) => {
const params = type ? { type } : {};
const response = await $api.get(`${path}/${endpoint}`, {
params
});
targetList.value = response.data.data.map(item => ({
label: item.CMNCODNAM,
value: item.CMNCODVAL,
}));
};
onMounted(async () => {
// 요청할 데이터가 옵션으로 전달 -> 그에 맞게 호출
// color 옵션에 type 포함
if (options.loadColor) {
await CommonCode("user", "color", colorList, options.colorType);
}
if (options.loadMbti) await CommonCode("user", "mbti", mbtiList);
if (options.loadPwhint) await CommonCode("user", "pwhint", pwhintList);
if (options.loadYearCategory) await CommonCode("project", "yearCategory", yearCategory);
if (options.loadCateList) await CommonCode("worddict", "getWordCategory", cateList);
});
return { colorList, mbtiList, pwhintList, yearCategory, cateList };
};
export default commonApi;