PageRenderTime 45ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/src/store/Store.js

https://bitbucket.org/michaeljaekel/vuesion
JavaScript | 410 lines | 357 code | 52 blank | 1 comment | 16 complexity | bc7ac5f75b25ca42644c13e97db53d53 MD5 | raw file
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. import axios from 'axios'
  5. import VueAxios from 'vue-axios'
  6. import VueCookie from 'vue-cookie'
  7. import moment from 'moment'
  8. import VueMomentJS from 'vue-momentjs'
  9. import {
  10. stat
  11. } from 'fs'
  12. import tools from '@/tools/Tools.js'
  13. Vue.use(VueAxios, axios)
  14. Vue.use(VueCookie)
  15. Vue.use(VueMomentJS, moment)
  16. const store = new Vuex.Store({
  17. state: {
  18. clock: '00.00.0000 00:00:00',
  19. fastTimer: 1000,
  20. slowTimer: 3000,
  21. standorte: [],
  22. users: [],
  23. currentUser: {},
  24. einsaetze: [],
  25. currentEinsatz: {},
  26. matrixData: [],
  27. miniMatrixData: [{}],
  28. meldungen: [],
  29. einsatzTypen: []
  30. },
  31. getters: {
  32. clock(state, getters) {
  33. return state.clock
  34. },
  35. slowTimer(state, getters) {
  36. return state.slowTimer
  37. },
  38. standorte(state, getters) {
  39. return state.standorte
  40. },
  41. users(state, getters) {
  42. return state.users
  43. },
  44. currentUser(state, getters) {
  45. return state.currentUser
  46. },
  47. currentUserId(state, getters) {
  48. return state.currentUser.id
  49. },
  50. einsaetze(state, getters) {
  51. return state.einsaetze
  52. },
  53. openEinsaetze(state, getters) {
  54. return state.einsaetze.filter(einsatz => einsatz.einsatzStatus == 1)
  55. },
  56. currentEinsatz(state, getters) {
  57. return state.currentEinsatz
  58. },
  59. currentEinsatzId(state, getters) {
  60. var result = VueCookie.get('currentEinsatzId')
  61. return result
  62. },
  63. matrixData(state, getters) {
  64. return state.matrixData
  65. },
  66. filteredMatrix: state => einsatzId => {
  67. return state.matrixData.filter(
  68. standort =>
  69. standort.standort.standortEinsatzId == einsatzId ||
  70. standort.standort.standortMehrfach == 1
  71. )
  72. },
  73. miniMatrixData(state, getters) {
  74. return state.miniMatrixData
  75. },
  76. miniMatrixDataFilter: state => einsatzId => {
  77. if (einsatzId != undefined) {
  78. var result = state.miniMatrixData.filter(function (einsatz) {
  79. return einsatz.einsatz == einsatzId
  80. })
  81. if (result.length != 0) {
  82. return result[0].standorte
  83. } else {
  84. return []
  85. }
  86. } else {
  87. return []
  88. }
  89. },
  90. meldungen(state, getters) {
  91. return state.meldungen
  92. },
  93. filteredMeldungen: state => einsatzId => {
  94. return state.meldungen.filter(
  95. meldung =>
  96. meldung.meldungEinsatzId == einsatzId && meldung.meldungStatus == 1
  97. )
  98. },
  99. einsatzTypen(state, getters) {
  100. return state.einsatzTypen
  101. }
  102. },
  103. actions: {
  104. getStandorte({
  105. commit
  106. }) {
  107. return new Promise((resolve, reject) => {
  108. var link = './static/api/standorte/standorte.php?action=list'
  109. return axios.get(link).then(
  110. result => {
  111. commit('updateStandorte', result.data.records)
  112. resolve()
  113. },
  114. error => {
  115. this.message({
  116. message: 'Error by axios: ' + error
  117. })
  118. reject()
  119. }
  120. )
  121. })
  122. },
  123. getUsers({
  124. commit
  125. }) {
  126. return new Promise((resolve, reject) => {
  127. var link = './static/api/users/users.php?action=list'
  128. return axios.get(link).then(
  129. result => {
  130. commit('updateUsers', result.data.records)
  131. resolve()
  132. },
  133. error => {
  134. console.error('Error by axios: ', error)
  135. reject()
  136. }
  137. )
  138. })
  139. },
  140. getEinsaetze({
  141. commit
  142. }) {
  143. return new Promise((resolve, reject) => {
  144. var link = '/static/api/einsaetze/einsaetze.php?action=list'
  145. return axios.get(link).then(
  146. response => {
  147. commit('updateEinsaetze', response.data.records)
  148. resolve()
  149. },
  150. error => {
  151. console.error('Error by axios: ', error)
  152. reject()
  153. }
  154. )
  155. })
  156. },
  157. getEinsatzTypen({
  158. commit
  159. }) {
  160. return new Promise((resolve, reject) => {
  161. var link = './static/api/einsatzTypen/einsatzTypen.php?action=list'
  162. axios.get(link).then(
  163. result => {
  164. commit('updateEinsatzTypen', result.data.records)
  165. resolve()
  166. },
  167. error => {
  168. console.error('Error by axios: ', error)
  169. reject()
  170. }
  171. )
  172. })
  173. },
  174. setCurrentEinsatzToNone({
  175. commit
  176. }) {
  177. return new Promise((resolve, reject) => {
  178. VueCookie.delete('currentEinsatzId')
  179. commit('updateCurrentEinsatz', {})
  180. resolve()
  181. })
  182. },
  183. setCurrentEinsatz({
  184. commit
  185. }, einsatzId) {
  186. return new Promise((resolve, reject) => {
  187. var link =
  188. './static/api/einsaetze/einsaetze.php?action=read&einsatzId=' +
  189. einsatzId
  190. return axios.get(link).then(
  191. result => {
  192. commit('updateCurrentEinsatz', result.data.record)
  193. VueCookie.set('currentEinsatzId', result.data.record.id)
  194. resolve()
  195. },
  196. error => {
  197. console.error('Error by axios: ', error)
  198. reject()
  199. }
  200. )
  201. })
  202. },
  203. setCurrentUser({
  204. commit
  205. }, userId) {
  206. return new Promise((resolve, reject) => {
  207. var link = './static/api/users/users.php?action=read&userId=' + userId
  208. axios.get(link).then(
  209. result => {
  210. commit('updateCurrentUser', result.data.record)
  211. VueCookie.set('currentUserId', result.data.record.id)
  212. resolve()
  213. },
  214. error => {
  215. console.error('Error by Axios: ', error)
  216. reject()
  217. }
  218. )
  219. })
  220. },
  221. // Actions mit Timer-Funktionen
  222. startClockTimer({
  223. commit
  224. }, timerValue) {
  225. var i = 0;
  226. var self = this
  227. setInterval(() => {
  228. commit('updateClock', moment().format('DD.MM.YYYY HH:mm:ss'))
  229. }, timerValue)
  230. },
  231. startAlarmTimer({
  232. commit
  233. }, timerValue) {
  234. var self = this
  235. setInterval(() => {
  236. console.warn("ALARMTIMER")
  237. self.state.miniMatrixData.forEach((einsatz) => {
  238. einsatz.standorte.forEach((standort) => {
  239. var einheiten = standort.einheiten
  240. einheiten.forEach((einheit) => {
  241. if (einheit.einheitStatus == 'alarmiert') {
  242. var a = moment(self.state.clock, "DD-MM-YYYY HH:mm:ss")
  243. var b = moment(einheit.einheitAlarmzeit, "DD-MM-YYYY HH:mm:ss")
  244. var minuten = a.diff(b, 'minutes')
  245. var link = './static/api/einheiten/einheiten.php?action=updateAlarmTime&einheitId=' + einheit.id + '&alarmTime=' + minuten
  246. axios.get(link).then(() => {
  247. if (minuten in {
  248. 5: '',
  249. 10: '',
  250. 15: '',
  251. }) {
  252. var data = {
  253. meldungType: 'warning',
  254. meldungText: 'Alarmzeit für die Einheit ' + einheit.einheitButtonName + ' ist überschritten! (' + minuten + ' Minuten)',
  255. meldungVon: 'FEZ',
  256. meldungAn: 'system',
  257. einsatzId: einheit.einheitEinsatzId
  258. }
  259. tools.insertMeldung(data).then(() => {})
  260. }
  261. }, (error) => {
  262. console.error('Fehler beim Update der Alarmzeiten --axio: ', error)
  263. })
  264. }
  265. })
  266. })
  267. })
  268. }, timerValue)
  269. },
  270. startMatrixTimer({
  271. commit
  272. }, timerValue) {
  273. var link1 = './static/api/matrix/matrix.php?action=matrixXP'
  274. var link2 = './static/api/matrix/matrix.php?action=matrixXP4'
  275. setInterval(() => {
  276. axios.get(link1).then(
  277. result => {
  278. commit('updateMatrixData', result.data.zeilen)
  279. },
  280. error => {
  281. console.error('Error by axios: ', error)
  282. }
  283. )
  284. axios.get(link2).then(
  285. result => {
  286. commit('updateMiniMatrixData', result.data.records)
  287. },
  288. error => {
  289. console.error('Error by axios: ', error)
  290. }
  291. )
  292. }, timerValue)
  293. },
  294. startEinsaetzeTimer({
  295. commit
  296. }, timerValue) {
  297. var link = './static/api/einsaetze/einsaetze.php?action=list'
  298. setInterval(() => {
  299. axios.get(link).then(
  300. response => {
  301. commit('updateEinsaetze', response.data.records)
  302. },
  303. error => {
  304. console.error('Error by axios: ', error)
  305. }
  306. )
  307. }, timerValue)
  308. },
  309. startMeldungenTimer({
  310. commit
  311. }, timerValue) {
  312. var link = './static/api/meldungen/meldungen.php?action=listAll'
  313. setInterval(() => {
  314. axios.get(link).then(
  315. response => {
  316. commit('updateMeldungen', response.data.records)
  317. },
  318. error => {
  319. console.error('Error by axios: ', error)
  320. }
  321. )
  322. }, timerValue)
  323. }
  324. },
  325. mutations: {
  326. updateStandorte(state, data) {
  327. state.standorte = data
  328. },
  329. updateUsers(state, data) {
  330. state.users = data
  331. },
  332. updateCurrentUser(state, data) {
  333. state.currentUser = data
  334. },
  335. updateClock(state, data) {
  336. state.clock = data
  337. },
  338. updateEinsaetze(state, data) {
  339. state.einsaetze = data
  340. },
  341. updateCurrentEinsatz(state, data) {
  342. state.currentEinsatz = data
  343. },
  344. updateMatrixData(state, data) {
  345. state.matrixData = data
  346. },
  347. updateMiniMatrixData(state, data) {
  348. state.miniMatrixData = data
  349. },
  350. updateMeldungen(state, data) {
  351. state.meldungen = data
  352. },
  353. updateEinsatzTypen(state, data) {
  354. state.einsatzTypen = data
  355. }
  356. }
  357. })
  358. export default store