Files
sk_fems_ui/store/modules/search.js
2025-07-12 15:13:46 +09:00

536 lines
19 KiB
JavaScript

// import Axios from "axios";
//const DOMAIN = "http://dotest.kfems.kr:9997/";
const DOMAIN = '';
// const DOMAIN = "http://localhost:9999/";
// const DOMAIN = "/";
const INIT_URL_STATE = {
// apiUrl:
selectBlocMstrCodeList: 'comm/base/CommCtr/selectBlocMstrCodeList', // 사업장 목록
selectEnergy: 'ems/base/EmsCommCtr/selectEnergy', // 에너지원 목록
selectCommCdSelect: 'comm/base/CommCdMngCtr/selectCodeList', // 시스템관리 공통셀렉트 목록
selectCodeList: 'comm/base/CommCdMngCtr/selectCodeList', // 시스템관리 공통셀렉트 목록
selectMonthWeekendList: 'comm/base/CalendarMngCtr/selectMonthWeekendList', // 공휴일 목록 조회 => 최초 1회만 실행
selectFactoryList: 'ems/base/seasonReadCtr/selectFactoryList', //공장 목록
selectMtt: 'ems/base/EmsCommCtr/selectMtt',
selectMttCd: 'ems/base/ReadResultCloseMngCtr/selectMttCd', // 개소종류
selectStandard: 'ems/base/EmsCommCtr/selectStandard', //기준 목록
// 기준 정보 (신규)
selectAddGrpInfo: 'ems/base/AddInfoMngCtr/selectAddGrpInfo',
selectAddInfo: 'ems/base/AddInfoMngCtr/selectAddInfo', // 공휴일 목록 조회 => 최초 1회만 실행
selectReadObjInfo: 'ems/base/ReadObjMngCtr/selectReadObjInfo',
selectEqpmGrp: 'ems/base/EqpmGrpMngCtr/selectEqpmGrp',
selectErc: 'ems/base/EnrgResourceCenterMngCtr/selectErcInfo',
};
export const state = () => Object.assign({}, INIT_URL_STATE);
export const actions = {
addInx({}, payload) {
return payload.map((item, i) => ({ ...item, idx: i }));
},
// 휴일 목록 조회 selectBlocMstrCodeList
getHolidayList({ state, rootState, commit }) {
if (!rootState.holidayList) {
const params = { params: {} }; // as-is 에서는 파람을 넘겨 토,일 요일정보도 가져왔으나 to-be 는 전체 휴일정보만 한번에 가져와 진행할 예정
const res = this.$axios.post(
DOMAIN + state.selectMonthWeekendList,
params,
);
res
.then(value => {
commit('setHolidayList', value.data.dataset.workcaldData, {
root: true,
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
} else {
// console.log("휴일 정보가 이미 있음 ", rootState.holidayList);
}
},
// 사업장 목록 조회 selectBlocMstrCodeList
getBlocMstrList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(
DOMAIN + state.selectBlocMstrCodeList,
params,
headers,
);
res
.then(value => {
let newList = value.data.dataset.blocCodeLists;
if (payload.addAll) newList.unshift({ blocId: '', blocNm: '전체' });
dispatch('addInx', newList).then(list => {
let defaultValue = '';
if (!dataKey) {
defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId].blocId ||
list[0].blocId;
} else {
defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].blocId;
}
if (!dataKey) {
commit(
'setPageData',
{ blocMstrList: list, blocId: 0 },
{ root: true },
);
} else {
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
}
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 사업장 목록 조회 selectBlocMstrCodeList - localstorage 추가
getBlocMstrListForPop({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(
DOMAIN + state.selectBlocMstrCodeList,
params,
headers,
);
res
.then(value => {
dispatch('addInx', value.data.dataset.blocCodeLists).then(list => {
commit(
'setPageData',
{
blocMstrList: list,
blocId:
localStorage.getItem(
this.state.activeMenuInfo.id + 'SelectedBlocCd',
) === null
? 0
: parseInt(
localStorage.getItem(
this.state.activeMenuInfo.id + 'SelectedBlocCd',
),
),
},
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 에너지원 목록 조회 selectErc
getErcList({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(DOMAIN + state.selectErc, params, headers);
res
.then(value => {
dispatch('addInx', value.data.dataset.ercInfoData).then(list => {
commit('setPageData', { ercList: list, ercId: 0 }, { root: true });
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 에너지원 목록 조회 selectEnergy
getEnergyList({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(DOMAIN + state.selectEnergy, params, headers);
res
.then(value => {
dispatch('addInx', value.data.dataset.energyData).then(list => {
commit(
'setPageData',
{ energyList: list, energyCd: 0 },
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 에너지원 목록 조회 selectEnergy - localstorage 추가
getEnergyListForPop({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(DOMAIN + state.selectEnergy, params, headers);
res
.then(value => {
dispatch('addInx', value.data.dataset.energyData).then(list => {
commit(
'setPageData',
{
energyList: list,
energyCd:
localStorage.getItem(
this.state.activeMenuInfo.id + 'SelectedEnergyCd',
) === null
? 0
: parseInt(
localStorage.getItem(
this.state.activeMenuInfo.id + 'SelectedEnergyCd',
),
),
},
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 공통코드 사용여부 목록 조회 selectUseFg
getUseFgList({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(
DOMAIN + state.selectCommCdSelect,
params,
headers,
);
res
.then(value => {
dispatch('addInx', value.data.dataset.codeLists).then(list => {
commit('setPageData', { useFgList: list }, { root: true });
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 공통코드 목록 조회 selectCodeList
getCodeList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(
DOMAIN + state.selectCodeList,
params,
headers,
);
res
.then(value => {
let newList = value.data.dataset.codeLists;
if (payload.addAll) newList.unshift({ commCd: '', commCdNm: '전체' });
if (payload.addBlank) newList.unshift({ commCd: '', commCdNm: '' });
dispatch('addInx', newList).then(list => {
const defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].commCd;
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
getMttList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(DOMAIN + state.selectMtt, params, headers);
res
.then(value => {
let newList = value.data.dataset.mttData;
dispatch('addInx', newList).then(list => {
const defaultValue =
list[0].mttCd ||
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey];
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 측정 대상 유형 목록 조회 selectReadObjInfo
getReadObjInfoList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(
DOMAIN + state.selectReadObjInfo,
params,
headers,
);
res
.then(value => {
let newList = value.data.dataset.readObjInfoData;
if (payload.addAll)
newList.unshift({ readObjId: '', readObjNm: '전체' });
dispatch('addInx', newList).then(list => {
const defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].readObjId;
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
});
})
.catch(error => console.log(error));
},
// 측정 대상 유형 목록 조회 selectEqpmGrp
getEqpmGrpList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(DOMAIN + state.selectEqpmGrp, params, headers);
res
.then(value => {
let newList = value.data.dataset.eqpmGrpData;
if (payload.addAll)
newList.unshift({ eqpmGrpId: '', eqpmGrpNm: '전체' });
dispatch('addInx', newList).then(list => {
const defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].eqpmGrpId;
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
});
})
.catch(error => console.log(error));
},
// 추가 정보 그룹 목록 조회 selectAddGrpInfo
getAddGrpInfoList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(
DOMAIN + state.selectAddGrpInfo,
params,
headers,
);
res
.then(value => {
let newList = value.data.dataset.addGrpInfoData;
if (payload.addAll) newList.unshift({ addGrpId: '', addGrpNm: '전체' });
dispatch('addInx', newList).then(list => {
if (list.length > 0) {
const defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].addGrpId;
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
}
});
})
.catch(error => console.log(error));
},
// 추가 정보 목록 조회 selectAddInfo
getAddInfoList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(DOMAIN + state.selectAddInfo, params, headers);
res
.then(value => {
let newList = value.data.dataset.addInfoData;
if (payload.addAll)
newList.unshift({ addInfoId: '', addInfoNm: '전체' });
dispatch('addInx', newList).then(list => {
if (list.length > 0) {
const defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey] ||
list[0].addInfoId;
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
}
});
})
.catch(error => console.log(error));
},
// 공장 목록 조회 selectFactoryList
getFactoryList({ state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload || {} };
const res = this.$axios.post(
DOMAIN + state.selectFactoryList,
params,
headers,
);
res
.then(value => {
dispatch('addInx', value.data.dataset.seasonReadData).then(list => {
commit(
'setPageData',
{ factoryList: list, plcCd: 0 },
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
// 공통 search
getSearchList({ rootState, state, commit }, payload) {
// console.log(payload);
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const params = { params: payload.params };
const res = this.$axios.post(
DOMAIN + state[payload.apiKey],
params,
headers,
);
res
.then(value => {
const list = value.data.dataset[payload.resKey];
let returnList = [];
let defaultValue = '';
if (list.length > 0) {
returnList = list.map(item => ({
...item,
text: item.value || item[payload.dataNm],
code: item.code || item[payload.dataCd],
}));
if (payload.addAll) returnList.unshift({ code: '', text: '전체' });
defaultValue =
rootState.pageData[rootState.activeMenuInfo.prgmId][
payload.resKey + 'Default' // 기본 지정값이 있다면 모화면 defaultData 에 [resKey + "Default"] 값으로 세팅
] || returnList[0].code;
}
commit(
'setPageData',
{
[payload.resKey + 'List']: returnList,
[payload.resKey]: defaultValue,
},
{ root: true },
);
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
getStandardList({ rootState, state, dispatch, commit }, payload) {
const headers = {
headers: {
'X-Fems-MenuId': this.state.activeMenuInfo.menuId,
},
};
const dataKey = payload.dataKey || '';
const params = { params: payload.params || {} };
const res = this.$axios.post(
DOMAIN + state.selectStandard,
params,
headers,
);
res
.then(value => {
let newList = value.data.dataset.standardData;
dispatch('addInx', newList).then(list => {
const defaultValue =
list[0].readObjId ||
rootState.pageData[rootState.activeMenuInfo.prgmId][dataKey];
// { [dataKey + "List"]: list, [dataKey]: 0 },
commit(
'setPageData',
{ [dataKey + 'List']: list, [dataKey]: defaultValue },
{ root: true },
);
});
})
.catch(error => console.log(error));
// .finally(() => console.log("end"));
},
};