/** * @author : 최정우 * @since : 2022.10.19 * @dscription : Vue를 활용한 Client단 구현의 시작점(Index) Component 입니다. */ import { createApp } from "vue"; // import AppRouter from "./pages/AppRouter.js"; import createAppRouter from "./pages/AppRouter.js"; import App from "./pages/App.vue"; import createAppStore from "./pages/AppStore.js"; import COMMON_UTIL from "../resources/js/common.js"; import filters from './common/filters.js'; import cmmnPlugin from './common/commonPlugin.js'; import VueCookies from "vue-cookies"; import SvgIcon from "@jamescoyle/vue-icon"; import VueDaumPostcode from "vue-daum-postcode"; import VueDatePicker from '@vuepic/vue-datepicker'; import '@vuepic/vue-datepicker/dist/main.css' import '../resources/scss/main.scss'; import { getCntxtPth } from "../resources/api/cntxtPth.js"; import { getStorageMode, getLoginMode } from "../resources/api/loginPolicy.js"; async function initVueApp() { const ctx = await contextPath(); const strgMode = await storageMode(); const lgnMode = await loginMode(); const store = createAppStore(ctx, strgMode, lgnMode); const router = await createAppRouter() const vue = createApp(App) .use(router) .use(store) .use(VueDaumPostcode) .use(COMMON_UTIL) .use(cmmnPlugin) .component("svg-icon", SvgIcon) .component('VueDatePicker', VueDatePicker); vue.config.globalProperties.$filters = filters; vue.config.devtools = true; // 쿠키 설정 vue.use(VueCookies); vue.$cookies.config("1d"); // 쿠키 만료일 (글로벌 세팅) vue.mount("#root"); } // Context Path 조회 async function contextPath() { try { const res = await getCntxtPth(); if (res.status == 200) { return res.data.data; } return null; } catch (error) { console.log("Error fetching context path:", error); const errorData = error.response.data; if (errorData.message != null && errorData.message != "") { alert(error.response.data.message); } else { alert("에러가 발생했습니다.\n관리자에게 문의해주세요."); } } }; // 스토리지 방식 조회 async function storageMode() { try { const res = await getStorageMode (); if (res.status == 200) { return res.data.data; } return null; } catch (error) { const errorData = error.response.data; if (errorData.message != null && errorData.message != "") { alert(error.response.data.message); } else { alert("에러가 발생했습니다.\n관리자에게 문의해주세요."); } } }; // 로그인 방식 조회 async function loginMode() { try { const res = await getLoginMode(); if (res.status == 200) { return res.data.data; } return null; } catch (error) { const errorData = error.response.data; if (errorData.message != null && errorData.message != "") { alert(error.response.data.message); } else { alert("에러가 발생했습니다.\n관리자에게 문의해주세요."); } } }; initVueApp();