rt-sim-training-client/src/store/modules/runplan.js
2020-12-24 15:33:06 +08:00

224 lines
8.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const runPlan = {
namespaced: true,
state: {
stations: [], // 车站列表
planData: {}, // 运行图原始数据
editData: {}, // 运行图编辑数据
planSizeCount: 0, // 运行图canvas 大小变更标识
planLoadedCount: 0, // 运行图数据更新
// planUpdateCount: 0, // 运行图更新标识
selected: {}, // 选择的对象
width: 800, // 运行图canvas 容器 宽度
height: 600, // 运行图canvas 容器 高度
refreshCount: 0, // 刷新页面重新加载
initialPlanData: {}, // 运行图原始数据
draftSelected: {}, // 草稿运行图选中对象
draftStations: [], // 草稿运行图车站列表
runPlanMap: {}, // 运行图数据map以id和version 为标识)
runPlanInfo: {}, // 运行图信息
loadRunPlanCount: 0 // 运行图加载数据完成
},
getters: {
stations: (state) => {
return state.stations || [];
},
draftStations: (state) => {
return state.draftStations || [];
},
getRunPlanData: (state) => {
if (!state.runPlanInfo || !state.runPlanInfo.templateId) {
return '';
} else {
return state.runPlanMap[`runPlan_${state.runPlanInfo.templateId}_${state.runPlanInfo.version}`];
}
}
},
mutations: {
setWidth: (state, width) => {
state.width = width;
state.planSizeCount += 1;
},
setHeight: (state, height) => {
state.height = height;
state.planSizeCount += 1;
},
setStations: (state, stations) => {
state.stations = stations;
},
setDraftStations: (state, stations) => {
state.draftStations = stations;
},
setInitialPlanData: (state, data) => {
state.initialPlanData = {};
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
const serviceList = data.serviceNumberDataList;
serviceList.forEach((service, i) => {
const trainList = service.tripNumberDataList;
state.initialPlanData[service.serviceNumber] = { oldIndex: i, serviceNumber: service.serviceNumber, backup: service.backup, trainMap: {} };
trainList.forEach((train, j) => {
state.initialPlanData[service.serviceNumber].trainMap[`${train.tripNumber}`] = { oldIndex: j, tripNumber: train.tripNumber, directionCode: train.directionCode, reentry: train.reentry, stationTimeList: train.stationTimeList };
});
});
}
},
setPlanData: (state, data) => {
state.planData = data;
state.editData = {};
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
const serviceList = data.serviceNumberDataList;
serviceList.forEach((service, i) => {
const trainList = service.tripNumberDataList;
state.editData[service.serviceNumber] = { oldIndex: i, serviceNumber: service.serviceNumber, backup: service.backup, trainMap: {} };
trainList.forEach((train, j) => {
// ${train.directionCode}
state.editData[service.serviceNumber].trainMap[`${train.tripNumber}`] = { oldIndex: j, tripNumber: train.tripNumber, directionCode: train.directionCode, reentry: train.reentry, stationTimeList: train.stationTimeList };
});
});
}
state.planLoadedCount++;
},
setDraftPlanData: (state, data) => {
state.draftPlanData = data;
state.draftEditData = {};
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
const serviceList = data.serviceNumberDataList;
serviceList.forEach((service, i) => {
const trainList = service.tripNumberDataList;
state.draftEditData[service.serviceNumber] = { oldIndex: i, serviceNumber: service.serviceNumber, backup: service.backup, trainMap: {} };
trainList.forEach((train, j) => {
// ${train.directionCode}
state.draftEditData[service.serviceNumber].trainMap[`${train.tripNumber}`] = { oldIndex: j, tripNumber: train.tripNumber, directionCode: train.directionCode, reentry: train.reentry, stationTimeList: train.stationTimeList };
});
});
}
},
setSelected: (state, selected) => {
state.selected = selected;
},
setDraftSelected: (state, draftSelected) => {
state.draftSelected = draftSelected;
},
addserviceNumber: (state, serviceNumber) => {
const serviceObj = state.planData[serviceNumber];
if (serviceObj) {
const oldIndex = serviceObj.oldIndex;
state.planData[serviceNumber] = { oldIndex, serviceNumber, trainMap: {} };
state.planLoadedCount++;
}
},
clear: (state) => {
// state.stations = [];
state.planData = {};
state.editData = {};
state.selected = {};
},
draftClear: (state) => {
state.draftPlanData = {};
state.draftEditData = {};
state.draftSelecte = {};
},
refresh: (state) => {
state.refreshCount++;
},
setRunPlanMap: ( state, data) => {
if (state.runPlanInfo && state.runPlanInfo.templateId) {
state.runPlanMap[`runPlan_${state.runPlanInfo.templateId}_${state.runPlanInfo.version}`] = data;
}
},
setRunPlanInfo: (state, data) => {
state.runPlanInfo = data;
},
loadRunPlanCountIncrease:(state, data) => {
state.loadRunPlanCount++;
}
},
actions: {
/** 设置运行图大小*/
resize({ commit }, opt) {
if (opt.width) {
commit('setWidth', opt.width);
}
if (opt.height) {
commit('setHeight', opt.height);
}
},
/** 设置stations数据 */
setStations: ({ commit }, mapModel) => {
return new Promise((resolve) => {
commit('setStations', mapModel);
resolve(mapModel);
});
},
/** 设置草稿stations数据 */
setDraftStations: ({ commit }, mapModel) => {
return new Promise((resolve) =>{
commit('setDraftStations', mapModel);
resolve(mapModel);
});
},
/** 重置运行图数据更新池 */
resetRunPlanData:({ commit }) => {
commit('resetRunPlanData');
},
/** 删除运行图第一条shuj */
shiftRunPlanData:({ commit }) => {
commit('shiftRunPlanData');
},
/** 设置运行图数据 */
setPlanData: ({ commit }, data) => {
commit('setPlanData', data);
},
setDraftPlanData: ({ commit }, data) => {
commit('setDraftPlanData', data);
},
/** 设置初始运行图数据 */
setInitialPlanData: ({ commit }, data) => {
commit('setInitialPlanData', data);
},
/** 增加服务号*/
addserviceNumber: ({ commit }, serviceNumber) => {
commit('addserviceNumber', serviceNumber);
},
/** 选择车次*/
setSelected: ({ commit }, selected) => {
commit('setSelected', selected);
},
setDraftSelected: ({ commit }, draftSelected) => {
commit('setDraftSelected', draftSelected);
},
/** 更新数据*/
updateRunPlanData: ({ commit }, data) => {
commit('updateRunPlanData', data);
},
/** 清空数据*/
clear: ({ commit }) => {
return new Promise((resolve) => {
commit('clear');
resolve();
});
},
draftClear: ({ commit }) => {
return new Promise(resolve => {
commit('draftClear');
resolve();
});
},
/** 刷新页面*/
refresh: ({commit}) => {
commit('refresh');
},
setRunPlanInfo: ({commit}, data) => {
commit('setRunPlanInfo', data);
},
setRunPlanMap: ({commit}, data) => {
commit('setRunPlanMap', data);
},
loadRunPlanCountIncrease: ({commit}) => {
commit('loadRunPlanCountIncrease');
}
}
};
export default runPlan;