/** * First we will load all of this project's JavaScript dependencies which * includes Vue and other libraries. It is a great starting point when * building robust, powerful web applications using Vue and Laravel. */ require('./bootstrap'); window.Vue = require('vue'); window.moment = require('moment'); /** * The following block of code may be used to automatically register your * Vue components. It will recursively scan this directory for the Vue * components and automatically register them with their "basename". * * Eg. ./components/ExampleComponent.vue -> */ // const files = require.context('./', true, /\.vue$/i) // files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default)) Vue.component('example-component', require('./components/ExampleComponent.vue').default); /** * Next, we will create a fresh Vue application instance and attach it to * the page. Then, you may begin adding components to this application * or customize the JavaScript scaffolding to fit your unique needs. */ import VueThermometer from 'vuejs-thermometer' Vue.use(VueThermometer); import VueDygraphs from 'vue-dygraphs'; Vue.use(VueDygraphs); import VueTableDynamic from 'vue-table-dynamic' Vue.use(VueTableDynamic); import Datetime from 'vue-datetime' Vue.use(Datetime); Vue.component('stats-table', require('./components/StatisticsComponent.vue').default); import { TabsPlugin } from 'bootstrap-vue' Vue.use(TabsPlugin); import { CardPlugin } from 'bootstrap-vue' Vue.use(CardPlugin); import { BButton } from 'bootstrap-vue' Vue.component('b-button', BButton); //(function () { var app = new Vue({ el: '#app', data: { tmin: -10, tmax: 50, temperature: null, time: null, startdate: null, enddate: null, host: 'balkon', componentKey: 0, ti: 0, //Tab Index graphShow: [], params: { data: [], border: true, stripe: true }, options: { temperature: { legend: 'always', title: 'Teplotný graf', xlabel: 'Dátum', labels: ['Dátum','Teplota'], ylabel: 'Stupeň', fillGraph: true }, humidity: { color: 'red', legend: 'always', title: 'Vlhkosť graf', xlabel: 'Dátum', labels: ['Dátum','Vlhkosť'], ylabel: 'Percent', fillGraph: true }, pressure: { color: 'blue', legend: 'always', title: 'Tlak graf', xlabel: 'Dátum', labels: ['Dátum','Tlak'], ylabel: 'Tlak', fillGraph: true } }, series: { "temperature" : [], "humidity" : [], "pressure": [] }, }, mounted: function () { console.log('MOUNTED'); this.getData(); var that = this; window.setInterval(function(){ console.log("TIMER"); that.getData(); }, 300000); }, methods: { displayResults: function () { this.getData(); }, sethost: function (host) { this.host = host; this.getData(); console.log(host); }, resizeGraph: function (i) { console.log("RESIZE"); let index = "dg[" + i + "]"; console.log('Change tab:',i); this.$nextTick(() => { app.$refs[index]._data._graph.resize(); }); }, getData: function () { axios.get('/data', { params: { } }) .then(function (response) { console.log("GET DATA"); console.log(response.data.temperature); let data = app.params.data = []; data.push(['Teplota',response.data.temperature,'°C']); data.push(['Vlhkosť',response.data.humidity,'%']); data.push(['Tlak',response.data.pressure,'kHPa']); data.push(['Napätie',response.data.voltage,'V']); moment.locale('sk_SK'); app.time = moment(response.data.time).format('LLL'); app.temperature = response.data.temperature; }) .catch(function (error) { console.log(error); }); let vts = ["temperature","humidity","pressure"]; for (var t in vts) { console.log("t=",vts[t]); axios.get('/data/get', { params: { type: vts[t], startdate: this.startdate, enddate: this.enddate, host: this.host } }) .then(function (response) { console.log("GET DATA"); console.log(response.config.params.type); let data = response.data.map( x => [moment(x[0]).toDate(),x[1]] ); app.series[response.config.params.type] = data; app.componentKey += 1; }) .catch(function (error) { console.log(error); }); } }, } }); // })();