You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EasyDarwin/web_src/store.js

79 lines
2.2 KiB

import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
logoText: "EasyDarwin",
logoMiniText: "ED",
serverInfo: {},
userInfo: null,
menus: [
{
path: '/',
title: "首页",
icon: 'dashboard'
}, {
path: '/pushers/1',
title: "推流列表",
icon: "video-camera"
}, {
path: '/players/1',
title: "拉流列表",
icon: "play"
}, {
path: "/about",
icon: "support",
title: "版本信息"
}, {
path: "/apidoc",
target: "blank",
icon: "book",
title: "接口文档"
}
]
},
mutations: {
updateServerInfo(state, serverInfo) {
state.serverInfo = serverInfo;
},
updateUserInfo(state, userInfo) {
state.userInfo = userInfo;
}
},
actions : {
getServerInfo({commit}){
return new Promise((resolve, reject) => {
$.get('/api/v1/serverinfo').then(serverInfo => {
commit('updateServerInfo', serverInfo);
resolve(serverInfo);
}).fail(() => {
resolve(null);
});
})
},
getUserInfo({ commit, state }) {
return new Promise((resolve, reject) => {
$.get("/api/v1/userinfo").then(userInfo => {
commit('updateUserInfo', userInfo);
resolve(userInfo);
}).fail(() => {
resolve(null);
})
})
},
logout({ commit, state }) {
return new Promise((resolve, reject) => {
$.get('/api/v1/logout').then(data => {
commit('updateUserInfo', null);
resolve(null);
}).fail(() => {
resolve(null);
})
})
}
}
})
export default store;