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.
iot/projects/WebApp/wwwroot/js/store.js

119 lines
4.0 KiB

Vue.use(Vuex);
const store = new Vuex.Store({
state: {
accessToken: localStorage.getItem("accessToken"),
refreshToken: localStorage.getItem("refreshToken"),
user: null,
products: [],
nodes: [],
scenes: [],
timers: [],
tiggers: [],
product: null,
node: null,
device: null
},
actions: {
update(context, model) {
context.commit(model.event, model);
}
},
mutations: {
setToken(state, data) {
state.accessToken = data.accessToken;
localStorage.setItem("accessToken", state.accessToken);
state.refreshToken = data.refreshToken;
localStorage.setItem("refreshToken", state.refreshToken);
},
logout(state) {
state.accessToken = null;
state.refreshToken = null;
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
},
setUser(state, user) {
state.user = user;
},
setProducts(state, model) {
state.products = model;
},
setNodes(state, model) {
state.nodes = model;
},
setProduct(state, model) {
state.product = model;
},
setDevice(state, model) {
state.device = model;
},
setNode(state, model) {
state.node = model;
},
nodeEntityUpdated(state, data) {
var model = data.model;
if (state.nodes) {
updateByNumber(state.nodes, model);
}
if (state.node) {
if (state.node.number === model.number) {
copy(model, state.node);
}
}
},
dataEntityUpdated(state, data) {
var model = data.model;
if (state.node) {
let device = Enumerable.from(state.node.devices).where(function (o) { return o.id === model.deviceId; }).firstOrDefault();
if (device) {
updateByKey(device.data, model);
}
}
if (state.product) {
let device = Enumerable.from(state.product.devices).where(function (o) { return o.id === model.deviceId; }).firstOrDefault();
if (device) {
updateByKey(device.data, model);
}
}
if (state.device) {
let device = state.device.number === model.number;
if (device) {
updateByKey(device.data, model);
}
}
}
//update(state,method,message,to,from) {
// alert(1);
//},
//updateNode(state, model) {
// updateByNumber(state.nodes, model);
//},
//insertDevice(state, model) {
// updateByNumber(state.devices, model);
// var node = Enumerable.from(state.nodes).where(function (o) { return o.id === model.nodeId; }).firstOrDefault();
// if (node) {
// node.count += 1;
// }
// var product = Enumerable.from(state.products).where(function (o) { return o.id === model.nodeId; }).firstOrDefault();
// if (product) {
// product.count += 1;
// }
//},
//updateDevice(state, model) {
// updateByNumber(state.devices, model);
// if (device) {
// //update device
// }
//},
//deleteDevice(state, model) {
// deleteByNumber(state.devices, model);
// var node = Enumerable.from(state.nodes).where(function (o) { return o.id === model.nodeId; }).firstOrDefault();
// if (node) {
// node.count -= 1;
// }
// var product = Enumerable.from(state.products).where(function (o) { return o.id === model.productId; }).firstOrDefault();
// if (product) {
// product.count -= 1;
// }
//}
}
});