-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathLDOs.vue
109 lines (99 loc) · 3.56 KB
/
LDOs.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<template>
<div class="event-tab">
<Spinner v-if="spinner" />
<b-table hover outlined responsive :fields="fields" :items="items" v-if="!spinner">
<template slot="index" slot-scope="data">{{ data.index + 1 }}</template>
<template slot="description" slot-scope="data">
<img src="../../assets/img/question-circle.png" alt="Описание"
v-if="!!data.value" v-b-popover.hover.right="data.value" />
</template>
</b-table>
</div>
</template>
<script>
import Spinner from '@/components/Spinner'
import apiSettings from '@/settings/api'
export default {
components: { Spinner },
props: ['event'],
data() {
return {
items: [
{ parameter: 'Прогноз повреждений M1', description: '', value: 0 },
{ parameter: 'Прогноз повреждений M2', description: '', value: 0 },
{ parameter: 'Прогноз повреждений M3', description: '', value: 0 },
{ parameter: 'Прогноз повреждений M4', description: '', value: 0 },
{ parameter: 'Прогноз повреждений M5', description: '', value: 0 },
{
parameter: 'Необходимы инспекционные работы',
description: '',
value: 0
},
{
parameter: 'Версия базы',
description: 'Версия банка данных зданий и сооружений',
value: null
},
{
parameter: 'Всего магистральных объектов',
description: 'Общее количество зданий и сооружений в базе на момент землетрясения',
value: null
},
{
parameter: 'Конфигурация системы',
description: 'Версия конфигурации системы, которая была использована в расчетах',
value: null
}
],
fields: [
{ key: 'index', label: '#' },
{ key: 'parameter', label: 'Параметр' },
{ key: 'value', label: 'Значение', 'class': 'text-center' },
{ key: 'description', label: ' ', 'class': 'text-center' }
],
spinner: true
}
},
created() {
this.fetchData()
},
methods: {
fetchData: function() {
this.$http.get(apiSettings.endpointEventLDOs(this.event.id), {
params: {
customer_ids: [1], // Change id(s) when the user management is implemented.
show_all_parts: 1
}
})
.then(response => {
this.$root.$emit('onMapLDOsDataFetched', response.data.data)
this.setData(response.data.data)
})
},
setData: function(data) {
const damagedParts = { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 }
data.forEach(ldo => {
ldo.parts.data.forEach(part => {
if (part.damage && part.damage.data.damage_level > 0) {
damagedParts[part.damage.data.damage_level] += 1
}
})
})
Object.keys(damagedParts).forEach((k, i) => {
this.items[i].value = damagedParts[k]
})
this.items[5].value = 0;
([2, 3, 4, 5]).forEach(level => {
this.items[5].value += damagedParts[level]
})
this.items[6].value = this.$store.getters.srssDBVersion
this.items[7].value = data.length
this.items[8].value = this.$store.getters.msk64ConfigVersion
this.spinner = false
}
}
}
</script>
<style lang="scss" scoped>
@import '~scss/event';
</style>