Files
bigscreenWeb/src/store/index.ts
2025-09-25 13:32:47 +08:00

120 lines
3.2 KiB
TypeScript

import { createStore, Store, useStore } from "vuex";
import { login } from "@/api/login/login";
import { initLedger, queryConfig } from "@/api/statistics/index";
// const store = useStore();
// 定义状态接口
interface State {
count: number;
token: string;
deptId: string;
timeType: number;
timeValue: string[];
seriousNotice: number;
normalNotic: number;
voiceType: number;
screenNotic: number;
eventTypeList: string[];
eventValue: number;
eventDuration: number;
realData: []; //实时数据
}
// 初始状态
const state: State = {
count: 0,
token: "",
deptId: "10001",
timeType: 3, //类型(1年 2季度 3月份 4周 5日)")
timeValue: [], //类型(1年 2季度 3月份 4周 5日)")
seriousNotice: 0, //严重通知(0关闭 1开启)
normalNotic: 1, //普通通知(0关闭 1开启)
voiceType: 1, //语音类型(1人声音 2音频)
screenNotic: 1, //屏幕通知(0关闭 1开启)
eventTypeList: [], //触发类型(1告警 2事件)
eventValue: 0.7,
eventDuration: 5,
realData: [], //实时数据
};
// 定义Mutation类型
enum Mutations {
INCREMENT = "INCREMENT",
SET_TOKEN = "SET_TOKEN",
SET_TIME = "SET-TIME",
SET_CONFIG = "SET-CONFIG-TIME",
}
export default createStore({
state,
mutations: {
[Mutations.INCREMENT](state: State) {
state.count++;
},
[Mutations.SET_TOKEN](state: State, data: any) {
window.sessionStorage.setItem("token", data.token);
window.sessionStorage.setItem("deptId", data.deptId);
state.token = data.token;
state.deptId = data.deptId;
},
[Mutations.SET_TIME](state: State, data: any) {
state.timeType = data.type;
state.timeValue = data.value;
},
[Mutations.SET_CONFIG](state: State, data: any) {
state.seriousNotice = data.seriousNotice;
state.normalNotic = data.normalNotic;
state.voiceType = data.voiceType;
state.screenNotic = data.screenNotic;
state.eventTypeList = data.eventTypeList;
state.eventValue = data.eventValue;
state.eventDuration = data.eventDuration;
},
SET_REAL_DATA(state, data) {
state.realData = data;
},
},
actions: {
async loginAction({ commit }, data: any) {
try {
// const response = await login({
// username: "screen",
// password: "@#001njcnpqs",
// });
const response = await login(data);
commit(Mutations.SET_TOKEN, response.data);
// await initLedger({ deptId: response.data.deptId, type: 0 });
return;
return response.data;
} catch (error) {
console.error("登录失败:", error);
throw error;
}
},
increment({ commit }) {
commit(Mutations.INCREMENT);
},
setTimeType({ commit }, data: any) {
commit(Mutations.SET_TIME, data);
},
setConfig({ commit }, data: any) {
queryConfig().then((res) => {
commit(Mutations.SET_CONFIG, res.data);
});
},
updateRealData({ commit }, data) {
commit("SET_REAL_DATA", data);
},
},
getters: {
double(state: State) {
return 2 * state.count;
},
isAuthenticated(state: State) {
return !!state.token;
},
},
});