comparison client/src/store/gauges.js @ 2604:85f9bf4a6eba

client: gauge waterlevel diagram: draw reference waterlevels
author Markus Kottlaender <markus@intevation.de>
date Tue, 12 Mar 2019 17:08:07 +0100
parents 8774054959a7
children 27933e66e848
comparison
equal deleted inserted replaced
2603:8d767359fddb 2604:85f9bf4a6eba
15 import { WFS } from "ol/format.js"; 15 import { WFS } from "ol/format.js";
16 16
17 const init = () => { 17 const init = () => {
18 return { 18 return {
19 gauges: [], 19 gauges: [],
20 selectedGauge: null, 20 selectedGaugeName: null,
21 waterlevels: [], 21 waterlevels: [],
22 loading: false 22 loading: false
23 }; 23 };
24 }; 24 };
25 25
26 export default { 26 export default {
27 init, 27 init,
28 namespaced: true, 28 namespaced: true,
29 state: init(), 29 state: init(),
30 getters: {
31 selectedGauge: state => {
32 return state.gauges.find(
33 g => g.properties.objname === state.selectedGaugeName
34 );
35 }
36 },
30 mutations: { 37 mutations: {
31 gauges: (state, gauges) => { 38 gauges: (state, gauges) => {
32 state.gauges = gauges; 39 state.gauges = gauges;
33 }, 40 },
34 selectedGauge: (state, gauge) => { 41 selectedGaugeName: (state, name) => {
35 state.selectedGauge = gauge; 42 state.selectedGaugeName = name;
36 }, 43 },
37 waterlevels: (state, data) => { 44 waterlevels: (state, data) => {
38 state.waterlevels = data; 45 state.waterlevels = data;
39 }, 46 },
40 loading: (state, loading) => { 47 loading: (state, loading) => {
41 state.loading = loading; 48 state.loading = loading;
42 } 49 }
43 }, 50 },
44 actions: { 51 actions: {
45 selectedGauge: ({ commit }, name) => { 52 selectedGaugeName: ({ commit }, name) => {
46 commit("selectedGauge", name); 53 commit("selectedGaugeName", name);
47 commit("application/showGauges", true, { root: true }); 54 commit("application/showGauges", true, { root: true });
48 commit("application/showSplitscreen", false, { root: true }); 55 commit("application/showSplitscreen", false, { root: true });
49 }, 56 },
50 loadGauges: ({ commit }) => { 57 loadGauges: ({ commit }) => {
51 return new Promise((resolve, reject) => { 58 return new Promise((resolve, reject) => {
75 }); 82 });
76 }); 83 });
77 }, 84 },
78 loadWaterlevels({ state, commit }, timePeriod) { 85 loadWaterlevels({ state, commit }, timePeriod) {
79 return new Promise(resolve => { 86 return new Promise(resolve => {
80 if (state.selectedGauge && timePeriod) { 87 if (state.selectedGaugeName && timePeriod) {
81 // generate some demo values 88 // generate some demo values
82 setTimeout(() => { 89 setTimeout(() => {
83 let data = []; 90 let data = [];
84 let waterlevel = 2.5; 91 let waterlevel = 380;
85 for (let i = 1; i <= 365; i++) { 92 for (let i = 1; i <= 365; i++) {
86 let date = new Date(); 93 let date = new Date();
87 date.setFullYear(2018); 94 date.setFullYear(2018);
88 date.setDate(date.getDate() + i); 95 date.setDate(date.getDate() + i);
89 waterlevel *= Math.random() * (1.02 - 0.98) + 0.98; 96 waterlevel *= Math.random() * (1.02 - 0.98) + 0.98;