//const DOMAIN = "http://dotest.kfems.kr:9997/"; const DOMAIN = ''; // const DOMAIN = "/"; const ROUTE_URL = { myIndex: '/', }; export const state = () => Object.assign({}, ROUTE_URL); export const actions = { // 사업장 목록 조회 selectBlocMstrCodeList // getBlocMstrList({ state, dispatch, commit }, payload) { // const res = this.$axios.post( // DOMAIN + "comm/MenuMngCtr/selectMenu", // payload || {} // ); // res // .then(value => { // // dispatch("addInx", value.data.dataset.blocCodeLists).then(list => { // // commit( // // "setPageData", // // { blocMstrList: list, blocCd: 0 }, // // { root: true } // // ); // // }); // }) // .catch(error => console.log(error)); // // .finally(() => console.log("end")); // }, async getMenu({ state, dispatch, commit }, payload) { // console.log(payload); const headers = { headers: { 'X-Fems-MenuId': 'MNU0001', }, }; const params = { params: payload || {} }; const res = await this.$axios.post( DOMAIN + 'comm/base/MenuMngCtr/selectAuthMenu', params, headers, ); // const params = { params: payload || {} }; // const res = await this.$axios.post( // DOMAIN + "comm/MenuMngCtr/selectMenu", // params // ); // console.log(res); const list = res.data.dataset.menuList; let myMenu = []; if (list.length > 0) { myMenu = list // .filter(ele => { // return ele.useFg === "1"; // }) // 사용 설정된것만 => 실제로 사용되는 값만 들어오면 삭제 .map((item, i) => ({ ...item, id: item.prgmId || i, upMenuId: item.upMenuId || item.menuNm, // title: item.menuNm // icon: '', // 아이콘은,. 값을 받아오지 않는 이상 별도로 상수화해서 prgmId 값을 키로 꺼내써야 할듯, to: state[item.prgmId], // to: '' // 경로는,. 값을 받아오지 않는 이상 아이콘과 마찬가지로 짝지어 상수화 하거나 sysDivCd, prgmId 값 등을 이용해 조합해서 route를 구성해야 할듯, })); // console.log("myMenu::", myMenu); } dispatch('setMenuTree', myMenu); commit( 'setMenuItems', myMenu.reduce( (acc, it) => ({ ...acc, [it.prgmId]: it, }), {}, ), { root: true }, ); }, // 메뉴 트리 세팅 async setMenuTree({ commit }, payload) { // console.log("setTree::res = ", res); let tmpLsit = []; if (payload.length > 0) { tmpLsit = payload .map(item => ({ ...item, children: [], })) .reduce( // 동일한 부모를 가진 object 끼리 묶기 (acc, it) => ({ ...acc, [it.upMenuId]: acc[it.upMenuId] ? [...acc[it.upMenuId], it] : [it], }), {}, ); Object.getOwnPropertyNames(tmpLsit) .reverse() .forEach(function(val, idx, array) { array.map(obj => { tmpLsit[obj].filter(v => { if (val === v.menuId) { // 부모 키와 동일한 값을 가지고 있는 목록의 children 에 추가 v.children = tmpLsit[val]; } if (val === obj && v.children.length === 0) { // 자식이 없느면 삭제 delete v.children; } }); }); }); } // console.log(tmpLsit["0"]); commit('setTreevieItems', tmpLsit['0'], { root: true }); }, };