Files
Lydc_frontend/src/components/vuex/store.js

191 lines
5.5 KiB
JavaScript

import Vue from 'vue'
import Vuex from 'vuex'
import { ajax as request } from "@/request.js";
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
config: {
meta: {
drawtool: {},
position: [],
basemap: [],
},
tables: [],
},
LocalLocation: {
currentPosition: '',
currentLocation: ''
},
// 登录后初始化的任务数据
taskData: {
selectAllWithTableName: [], // /api/task/selectAllWithTableName 的数据
selectAll: [], // /api/task/selectAll/ 的数据
selectTaskHasCreated: [] // /api/task/selectTaskHasCreated 的数据
},
// 初始化状态
taskDataInitialized: false,
taskDataInitializing: false,
initError: null // 初始化错误信息
},
mutations: {
updateDrawtool(state, drawtool) {
//刷新之后 重新赋值 页面数据会丢失
let config = sessionStorage["Data"]
if (config) {
state.config = JSON.parse(config)
}
state.config.meta.drawtool = drawtool
sessionStorage["Data"] = JSON.stringify(state.config)
},
updatePosition1(state, position) {
let config = sessionStorage["Data"]
if (config) {
state.config = JSON.parse(config)
}
state.config.meta.position = position
sessionStorage["Data"] = JSON.stringify(state.config)
},
updateBasemap(state, basemap) {
let config = sessionStorage["Data"]
if (config) {
state.config = JSON.parse(config)
}
state.config.meta.basemap = basemap
sessionStorage["Data"] = JSON.stringify(state.config)
},
updateTables(state, tables) {
let config = sessionStorage["Data"]
if (config) {
state.config = JSON.parse(config)
}
state.config.tables = tables
sessionStorage["Data"] = JSON.stringify(state.config)
},
updateData(state, config) {
state.config = config
},
updateLocation(state, location) {
state.LocalLocation.currentLocation = location
},
updatePosition(state, position) {
state.LocalLocation.currentPosition = position
},
// 设置任务数据
setTaskDataSelectAllWithTableName(state, data) {
state.taskData.selectAllWithTableName = data
},
setTaskDataSelectAll(state, data) {
state.taskData.selectAll = data
},
setTaskDataSelectTaskHasCreated(state, data) {
state.taskData.selectTaskHasCreated = data
},
setTaskDataInitialized(state, value) {
state.taskDataInitialized = value
},
setTaskDataInitializing(state, value) {
state.taskDataInitializing = value
},
setInitError(state, error) {
state.initError = error
},
clearInitError(state) {
state.initError = null
}
},
actions: {
updateDrawtool({ commit, state }, obj) {
commit('updateDrawtool', obj.drawtool)
},
updatePosition1({ commit, state }, obj) {
commit('updatePosition1', obj.position)
},
updateBasemap({ commit, state }, obj) {
commit('updateBasemap', obj.basemap)
},
updateTables({ commit, state }, obj) {
commit("updateTables", obj.tables)
},
updateData({ commit, state }, obj) {
commit("updateData", obj.config)
},
updateLocation({ commit, state }, obj) {
commit("updateLocation", obj.location)
},
updatePosition({ commit, state }, obj) {
commit("updatePosition", obj.position)
},
// 初始化任务数据
async initTaskData({ commit, state }) {
commit('setTaskDataInitializing', true)
commit('setTaskDataInitialized', false)
try {
// 调用3个接口
const [response1, response2, response3] = await Promise.all([
request({
url: "/task/selectAllWithTableName",
method: "get",
}),
request({
url: "/task/selectAll/",
method: "get",
}),
request({
url: "/task/selectTaskHasCreated",
method: "get",
})
])
// 检查是否有401错误
if (response1.data.status == "401" || response2.data.status == "401" || response3.data.status == "401") {
throw new Error("认证失败,请重新登录")
}
// 处理第一个接口的数据
let data1 = response1.data.data || []
commit('setTaskDataSelectAllWithTableName', data1)
// 处理第二个接口的数据
let data2 = []
if (response2.data.success == true && response2.data.data) {
try {
const parsed = JSON.parse(response2.data.data)
data2 = parsed.data || []
} catch (e) {
data2 = response2.data.data || []
}
}
commit('setTaskDataSelectAll', data2)
// 处理第三个接口的数据
let data3 = []
if (response3.data.success == true && response3.data.data) {
try {
const parsed = JSON.parse(response3.data.data)
data3 = parsed.data || []
} catch (e) {
data3 = response3.data.data || []
}
}
commit('setTaskDataSelectTaskHasCreated', data3)
commit('setTaskDataInitialized', true)
commit('setTaskDataInitializing', false)
return { success: true }
} catch (error) {
commit('setTaskDataInitialized', false)
commit('setTaskDataInitializing', false)
return { success: false, error: error.message || '初始化失败,请重试' }
}
}
},
})