sk_fems_ui commit
This commit is contained in:
536
store/index.js
Normal file
536
store/index.js
Normal file
@ -0,0 +1,536 @@
|
||||
const INIT_STATE = {
|
||||
comCd: '',
|
||||
userInfo: {},
|
||||
indexRoot: {
|
||||
root: '/',
|
||||
menuNm: ' ',
|
||||
menuId: null,
|
||||
prgmId: 'myIndex',
|
||||
id: 'myIndex',
|
||||
},
|
||||
myHomeTabItems: {
|
||||
closable: false,
|
||||
id: '/ems/base/DashboardPage',
|
||||
prgmId: 'PRG0001',
|
||||
title: '대시보드',
|
||||
to: '/ems/base/DashboardPage?prgmId=PRG0001',
|
||||
},
|
||||
myHome: {
|
||||
root: '/ems/base/DashboardPage?prgmId=PRG0001',
|
||||
menuNm: '대시보드',
|
||||
menuId: 'MNU0001',
|
||||
prgmId: 'PRG0001',
|
||||
id: 'PRG0001',
|
||||
},
|
||||
menuData:
|
||||
localStorage.getItem('menuData') != null
|
||||
? JSON.parse(localStorage.getItem('menuData'))
|
||||
: {
|
||||
myIndex: {
|
||||
root: '/',
|
||||
menuNm: ' ',
|
||||
menuId: null,
|
||||
prgmId: 'myIndex',
|
||||
id: 'myIndex',
|
||||
},
|
||||
PRG0001: {
|
||||
root: '/ems/base/DashboardPage?prgmId=PRG0001',
|
||||
menuNm: '대시보드',
|
||||
menuId: 'MNU0001',
|
||||
prgmId: 'PRG0001',
|
||||
id: 'PRG0001',
|
||||
},
|
||||
},
|
||||
treevieItems: [],
|
||||
// activeTab: "",
|
||||
activeMenuInfo: {
|
||||
prgmId: '0',
|
||||
},
|
||||
// 프로그램 아이디 (prgmId) 를 키로 해당 페이지별 데이타 세팅
|
||||
pageData:
|
||||
localStorage.getItem('pageData') != null
|
||||
? JSON.parse(localStorage.getItem('pageData'))
|
||||
: {
|
||||
// myIndex: {},
|
||||
// PRG0001: {},
|
||||
// PRG0002: {},
|
||||
// PRG0003: {},
|
||||
// PRG0004: {},
|
||||
// PRG0005: {},
|
||||
// PRG0006: {},
|
||||
// PRG0007: {},
|
||||
// PRG0008: {},
|
||||
// PRG0009: {},
|
||||
// PRG0010: {},
|
||||
// PRG0011: {},
|
||||
// PRG0012: {},
|
||||
// PRG0013: {},
|
||||
// PRG0014: {},
|
||||
// PRG0015: {},
|
||||
// PRG0016: {},
|
||||
// PRG0017: {},
|
||||
// PRG0018: {},
|
||||
// PRG0019: {},
|
||||
// PRG0020: {},
|
||||
// PRG0021: {},
|
||||
// PRG0022: {},
|
||||
// PRG0023: {},
|
||||
// PRG0024: {},
|
||||
// PRG0025: {},
|
||||
// PRG0026: {},
|
||||
// PRG0027: {},
|
||||
// PRG0028: {},
|
||||
// PRG0029: {},
|
||||
// PRG0030: {},
|
||||
// PRG0031: {},
|
||||
// PRG0032: {},
|
||||
// PRG0033: {},
|
||||
// PRG0034: {},
|
||||
// PRG0040: {},
|
||||
// PRG0041: {},
|
||||
// PRG0049: {},
|
||||
// PRG0050: {},
|
||||
// PRG0051: {},
|
||||
// PRG0059: {},
|
||||
// PRG0060: {},
|
||||
// PRG0061: {},
|
||||
// PRG0062: {},
|
||||
// PRG0065: {},
|
||||
// PRG0066: {},
|
||||
// PRG0104: {},
|
||||
// PRG0105: {},
|
||||
// PRG1101: {},
|
||||
// PRG1102: {},
|
||||
// PRG3102: {},
|
||||
// PRG3103: {},
|
||||
// PRG3105: {},
|
||||
// PRG3106: {},
|
||||
// PRG3109: {},
|
||||
// PRG3110: {},
|
||||
// PRG3111: {},
|
||||
// PRG4107: {},
|
||||
// PRG0053: {},
|
||||
// PRG0052: {},
|
||||
// PRG0054: {},
|
||||
// PRG0055: {},
|
||||
// PRG4107: {},
|
||||
// PRG4109: {},
|
||||
// PRG4110: {},
|
||||
// PRG4111: {},
|
||||
// PRG0063: {},
|
||||
// PRG4101: {},
|
||||
// PRG4102: {},
|
||||
// PRG4108: {},
|
||||
// PRG0064: {},
|
||||
},
|
||||
// today: null,
|
||||
// refreshPageFlag: false, // 페이지 새로고침 여부
|
||||
openTabList: [], // 현재 열려있는 탭 목록
|
||||
isDarkMode: true,
|
||||
holidayList: null, // 휴일목록
|
||||
drawer: true, // default.vue 좌측사이드 메뉴관련
|
||||
};
|
||||
|
||||
export const state = () => Object.assign({}, INIT_STATE);
|
||||
|
||||
export const mutations = {
|
||||
// 활성화 페이지 메뉴정보 set
|
||||
setActiveMenuInfo(state, payload) {
|
||||
// console.log("=======================================================");
|
||||
// console.log(
|
||||
// ">>>>>>>>>> ",
|
||||
// payload.prgmId,
|
||||
// " , ",
|
||||
// payload.menuNm,
|
||||
// " <<<<<<<<<<"
|
||||
// );
|
||||
state.activeMenuInfo = payload;
|
||||
},
|
||||
setMyHome: (state, payload) => {
|
||||
state.myHome = payload;
|
||||
},
|
||||
setIndexRoot: (state, payload) => {
|
||||
state.indexRoot = payload;
|
||||
},
|
||||
// 메뉴 set => prgmId를 키로 재구성
|
||||
setMenuItems(state, payload) {
|
||||
// state.treevieItems = payload;
|
||||
localStorage.setItem('menuData', JSON.stringify(payload));
|
||||
state.menuData = Object.assign(INIT_STATE.menuData, payload); // 일단 추가
|
||||
},
|
||||
// 메뉴 set
|
||||
setTreevieItems(state, payload) {
|
||||
// state.treevieItems = payload;
|
||||
state.treevieItems = INIT_STATE.treevieItems; // 일단 추가
|
||||
state.treevieItems = state.treevieItems.concat(payload); // 일단 추가
|
||||
},
|
||||
// 휴일목록 set
|
||||
setHolidayList(state, payload) {
|
||||
state.holidayList = payload;
|
||||
},
|
||||
|
||||
// 페이지 데이터 set => 초기세팅
|
||||
pageInit: (state, payload) => {
|
||||
state.pageData[payload.prgmId] = Object.assign({}, payload.value);
|
||||
},
|
||||
// 페이지 데이터 set => 업데이트
|
||||
setPageData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId] = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId],
|
||||
payload,
|
||||
);
|
||||
},
|
||||
setWidgetPageData: (state, payload) => {
|
||||
state.pageData[payload.prgmId] = Object.assign(
|
||||
state.pageData[payload.prgmId],
|
||||
payload,
|
||||
);
|
||||
},
|
||||
setDataPathPageData: (state, payload) => {
|
||||
const dataPath = payload.pathKey;
|
||||
const setData = payload.data;
|
||||
state.pageData[state.activeMenuInfo.prgmId][dataPath] = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][dataPath],
|
||||
setData,
|
||||
);
|
||||
},
|
||||
|
||||
// 페이지 그리드 데이터 set
|
||||
setGridData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.gridKey] = {
|
||||
...state.pageData[state.activeMenuInfo.prgmId][payload.gridKey],
|
||||
data: payload.value,
|
||||
};
|
||||
},
|
||||
setWidgetGridData: (state, payload) => {
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.gridKey
|
||||
] = {
|
||||
...state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.gridKey
|
||||
],
|
||||
data: payload.value,
|
||||
};
|
||||
},
|
||||
// 페이지 그리드 컬럼 set
|
||||
setGridColumn: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.gridKey].column =
|
||||
payload.value;
|
||||
},
|
||||
setWidgetGridColumn: (state, payload) => {
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.gridKey
|
||||
].column = payload.value;
|
||||
},
|
||||
// 페이지 그리드 옵견 set
|
||||
setGridOption: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][
|
||||
payload.gridKey
|
||||
].option = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.gridKey].option,
|
||||
payload.value,
|
||||
);
|
||||
},
|
||||
setWidgetGridOption: (state, payload) => {
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.gridKey
|
||||
].option = Object.assign(
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.gridKey
|
||||
].option,
|
||||
payload.value,
|
||||
);
|
||||
},
|
||||
// 페이지 그리드 데이터 수정 set
|
||||
setGridDataEdit: (state, payload) => {
|
||||
const myPrgmId = state.activeMenuInfo.prgmId;
|
||||
state.pageData[myPrgmId][payload.gridKey].data[payload.selectRow][
|
||||
payload.objKey
|
||||
] = payload.value;
|
||||
state.pageData[myPrgmId][payload.gridKey + 'Modify'] = true;
|
||||
},
|
||||
setGridSelectData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][
|
||||
payload.gridKey
|
||||
].rowGridSelectData = Object.assign(
|
||||
payload.gridSelect
|
||||
? {}
|
||||
: state.pageData[state.activeMenuInfo.prgmId][payload.gridKey]
|
||||
.rowGridSelectData,
|
||||
payload.rowGridSelectData,
|
||||
);
|
||||
|
||||
if (payload.rowGridSelectKey >= 0) {
|
||||
state.pageData[state.activeMenuInfo.prgmId][
|
||||
payload.gridKey
|
||||
].rowGridSelectKey = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.gridKey]
|
||||
.rowGridSelectKey,
|
||||
payload.rowGridSelectKey,
|
||||
);
|
||||
}
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartOption: (state, payload) => {
|
||||
var optionKeys = Object.keys(payload.value);
|
||||
optionKeys.forEach(key => {
|
||||
if (key == 'series') {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey][key] = [];
|
||||
}
|
||||
Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey][key],
|
||||
payload.value[key],
|
||||
);
|
||||
});
|
||||
},
|
||||
setWidgetChartOption: (state, payload) => {
|
||||
var optionKeys = Object.keys(payload.value);
|
||||
optionKeys.forEach(key => {
|
||||
if (key == 'series') {
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.chartKey
|
||||
][key] = [];
|
||||
}
|
||||
Object.assign(
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.chartKey
|
||||
][key],
|
||||
payload.value[key],
|
||||
);
|
||||
});
|
||||
},
|
||||
|
||||
setModalChartOption: (state, payload) => {
|
||||
var optionKeys = Object.keys(payload.value);
|
||||
optionKeys.forEach(key => {
|
||||
if (key == 'series') {
|
||||
state.pageData[payload.prgmId][payload.modalId][payload.modalDataKey][payload.chartKey][key] = [];
|
||||
}
|
||||
Object.assign(
|
||||
state.pageData[payload.prgmId][payload.modalId][payload.modalDataKey][payload.chartKey][key],
|
||||
payload.value[key],
|
||||
);
|
||||
});
|
||||
},
|
||||
|
||||
// 차트 옵션 set
|
||||
setModalChartSeries: (state, payload) => {
|
||||
state.pageData[payload.prgmId][payload.modalId][payload.modalDataKey][payload.chartKey].series =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setModalChartTooltip: (state, payload) => {
|
||||
var optionKeys = Object.keys(payload.value);
|
||||
optionKeys.forEach(key => {
|
||||
// Object.assign(
|
||||
state.pageData[payload.prgmId][payload.modalId][payload.modalDataKey][payload.chartKey].tooltip[key]= payload.value[key]
|
||||
// )
|
||||
});
|
||||
// let keyList = [];
|
||||
// keyList = Object.keys(payload.value);
|
||||
// for (var i = 0; i < keyList.length; i++) {
|
||||
// state.pageData[payload.prgmId][payload.modalId][payload.modalDataKey][payload.chartKey].tooltip[
|
||||
// keyList[i]
|
||||
// ] = payload.value[keyList[i]];
|
||||
// }
|
||||
},
|
||||
|
||||
setWidgetChartYaxisData: (state, payload) => {
|
||||
state.pageData[payload.prgmId][payload.widgetKey][payload.widgetData][
|
||||
payload.chartKey
|
||||
].yAxis = payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartYAxisData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].yAxis =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartXAxisData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].xAxis.data =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartDetailXAxisData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].xAxis =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartColorData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].color =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartSeries: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].series =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartTitle: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].title =
|
||||
payload.value;
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartLegend: (state, payload) => {
|
||||
let keyList = [];
|
||||
keyList = Object.keys(payload.value);
|
||||
for (var i = 0; i < keyList.length; i++) {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].legend[
|
||||
keyList[i]
|
||||
] = payload.value[keyList[i]];
|
||||
}
|
||||
},
|
||||
// 차트 옵션 set
|
||||
setChartTooltip: (state, payload) => {
|
||||
let keyList = [];
|
||||
keyList = Object.keys(payload.value);
|
||||
for (var i = 0; i < keyList.length; i++) {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.chartKey].tooltip[
|
||||
keyList[i]
|
||||
] = payload.value[keyList[i]];
|
||||
}
|
||||
},
|
||||
|
||||
// 모달 그리드 데이터 set
|
||||
setModalGridData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.modalDataKey][
|
||||
payload.modalKey
|
||||
][payload.gridKey].data = payload.value;
|
||||
},
|
||||
// 모달 그리드 컬럼 set
|
||||
setModalGridColumn: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.modalDataKey][
|
||||
payload.modalKey
|
||||
][payload.gridKey].column = payload.value;
|
||||
},
|
||||
// 모달 그리드 옵견 set
|
||||
setModalGridOption: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.modalDataKey][
|
||||
payload.modalKey
|
||||
][payload.gridKey].option = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.modalDataKey][
|
||||
payload.modalKey
|
||||
][payload.gridKey].option,
|
||||
payload.value,
|
||||
);
|
||||
},
|
||||
// 위젯 모달 그리드 데이터 set
|
||||
setWidgetModalGridData: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.widgetId][
|
||||
payload.widgetId + 'Data'
|
||||
][payload.modalDataKey][payload.modalKey][payload.gridKey].data =
|
||||
payload.value;
|
||||
},
|
||||
// 위젯 모달 그리드 컬럼 set
|
||||
setWidgetModalGridColumn: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.widgetId][
|
||||
payload.widgetId + 'Data'
|
||||
][payload.modalDataKey][payload.modalKey][payload.gridKey].column =
|
||||
payload.value;
|
||||
},
|
||||
// 위젯 모달 그리드 옵션
|
||||
setWidgetModalGridOption: (state, payload) => {
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.widgetId][
|
||||
payload.widgetId + 'Data'
|
||||
][payload.modalDataKey][payload.modalKey][
|
||||
payload.gridKey
|
||||
].option = Object.assign(
|
||||
state.pageData[state.activeMenuInfo.prgmId][payload.widgetId][
|
||||
payload.widgetId + 'Data'
|
||||
][payload.modalDataKey][payload.modalKey][payload.gridKey].option,
|
||||
payload.value,
|
||||
);
|
||||
},
|
||||
// setRefreshPageFlag: (state, payload) => {
|
||||
// state.refreshPageFlag = payload;
|
||||
// },
|
||||
setOpenTabList: (state, payload) => {
|
||||
state.openTabList = payload;
|
||||
},
|
||||
setThemeChange: (state, payload) => {
|
||||
state.isDarkMode = payload;
|
||||
},
|
||||
setDrawer: (state, payload) => {
|
||||
state.drawer = !state.drawer;
|
||||
},
|
||||
setUserInfo: (state, payload) => {
|
||||
state.userInfo = Object.assign({}, payload);
|
||||
},
|
||||
openDashboardWidget: (state, payload) => {
|
||||
var width = payload.width == undefined ? 810 : payload.width;
|
||||
var height = payload.height == undefined ? 330 : payload.height;
|
||||
var top = payload.top == undefined ? 10 : payload.top;
|
||||
var left = payload.left == undefined ? 10 : payload.left;
|
||||
var widgetId =
|
||||
payload.widgetId == undefined ? 'BlankWidget' : payload.widgetId;
|
||||
var prgmId = payload.prgmId;
|
||||
window.open(
|
||||
'/comm/base/WidgetPopPage?prgmId=' + prgmId + '&widgetId=' + widgetId,
|
||||
widgetId,
|
||||
'top=' +
|
||||
top +
|
||||
', left=' +
|
||||
left +
|
||||
', width=' +
|
||||
width +
|
||||
', height=' +
|
||||
height +
|
||||
', status=no, menubar=no, toolbar=no, resizable=no, scrollbars=no',
|
||||
);
|
||||
},
|
||||
setPageDataInit(state, payload) {
|
||||
state.pageData = Object.assign({}, INIT_STATE.pageData, payload);
|
||||
},
|
||||
};
|
||||
|
||||
export const getters = {};
|
||||
|
||||
export const actions = {
|
||||
chkOpenTabList({ state, commit }, payload) {
|
||||
let list = state.openTabList;
|
||||
const key = payload.key;
|
||||
const myPrgmId = payload.prgmId;
|
||||
switch (key) {
|
||||
case 'destroy':
|
||||
commit(
|
||||
'setOpenTabList',
|
||||
list.filter(it => it !== myPrgmId),
|
||||
);
|
||||
commit('pageInit', { prgmId: myPrgmId, value: {} });
|
||||
//commit("pageInit", {});
|
||||
break;
|
||||
case 'create':
|
||||
if (!list.some(it => it === myPrgmId)) {
|
||||
// console.log("클릭 한 메뉴가 기존 목록에 없다 => 새로 push"); // & 초기화 세팅
|
||||
localStorage.setItem('pageData', JSON.stringify(state.pageData));
|
||||
commit('setOpenTabList', list.concat(myPrgmId));
|
||||
commit('pageInit', { prgmId: myPrgmId, value: payload.defaultData });
|
||||
}else if(list.some(it => it === myPrgmId)&&myPrgmId=="PRG0001"){
|
||||
// http://localhost:9999으로 index(대시보드)호출할 경우 pageData 없는 경우를 대비하기 위해서
|
||||
commit('pageInit', { prgmId: myPrgmId, value: payload.defaultData });
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
getPrgmId({ state }, payload) {
|
||||
let objKey = Object.keys(state.menuData);
|
||||
let prgmId;
|
||||
objKey.forEach(item => {
|
||||
if (state.menuData[item].menuId == payload) {
|
||||
prgmId = item;
|
||||
}
|
||||
});
|
||||
return prgmId;
|
||||
},
|
||||
};
|
||||
|
||||
// Vue.use(Vuex);
|
||||
// export const store = new Vuex.Store({
|
||||
// modules: {
|
||||
// search
|
||||
// }
|
||||
// });
|
||||
export const strict = false;
|
Reference in New Issue
Block a user