sk_fems_ui commit
This commit is contained in:
124
store/modules/menu.js
Normal file
124
store/modules/menu.js
Normal file
@ -0,0 +1,124 @@
|
||||
//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 });
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user