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: {} // 运行图信息 }, 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; } }, 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); } } }; export default runPlan;