125 lines
3.3 KiB
JavaScript
125 lines
3.3 KiB
JavaScript
//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 });
|
|
},
|
|
};
|