-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathBuildings.vue
138 lines (134 loc) · 7.99 KB
/
Buildings.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<template>
<div class="event-tab">
<b-table hover outlined responsive :fields="fields" :items="items">
<template slot="index" slot-scope="data">{{ data.index + 1 }}</template>
<template slot="description" slot-scope="data">
<img v-if="data.value" src="../../assets/img/question-circle.png" alt="Описание" v-b-popover.hover.right="data.value" />
</template>
</b-table>
</div>
</template>
<script>
import apiSettings from '@/settings/api'
export default {
props: ['event'],
data() {
return {
fields: [
{ key: 'index', label: '#' },
{ key: 'parameter', label: 'Параметр' },
{ key: 'value', label: 'Значение', 'class': 'text-center' },
{ key: 'description', label: ' ', 'class': 'text-center' }
],
items: [
{
parameter: 'Прогноз повреждений d-0',
value: 0,
description: 'Отсутствие расчётных повреждений. Сотрясение здания: сыплется пыль из щелей, осыпаются чешуйки побелки.'
},
{
parameter: 'Прогноз повреждений d-1',
value: 0,
description: 'Слабые расчётные повреждения. Высокая вероятность слабых повреждений отделки ' +
'и ненесущих элементов здания или сооружения: тонкие трещины в штукатурке; ' +
'откалывание небольших кусков штукатурки; тонкие трещины в сопряжениях перекрытий со стенами ' +
'и стенового заполнения с элементами каркаса, между панелями, в разделке печей и дверных коробок, ' +
'тонкие трещины в перегородках, карнизах. фронтонах, трубах. ' +
'Видимые повреждения конструктивных элементов отсутствуют. ' +
'Работоспособное техническое состояние по ГОСТ 31937'
},
{
parameter: 'Прогноз повреждений d-2',
value: 0,
description: 'Слабые расчётные повреждения. Высокая вероятность слабых повреждений отделки ' +
'и ненесущих элементов здания или сооружения: трещины в штукатурке; откалывание небольших кусков штукатурки; ' +
'трещины в сопряжениях перекрытий со стенами и стенового заполнения с элементами каркаса, между панелями, ' +
'в разделке печей и дверных коробок, трещины в перегородках, карнизах, фронтонах, трубах. ' +
'Видимые повреждения конструктивных элементов отсутствуют. ' +
'Ограниченно работоспособное техническое состояние по ГОСТ 31937'
},
{
parameter: 'Прогноз повреждений d-3',
value: 0,
description: 'Серьезные расчётные повреждения. Высокая вероятность повреждений отделки и несущих элементов ' +
'здания или сооружения: трещины в штукатурке; откалывание небольших кусков штукатурки; трещины в сопряжениях ' +
'перекрытий со стенами и стенового заполнения с элементами каркаса, между панелями, в разделке печей ' +
'и дверных коробок; трещины в перегородках, карнизах, фронтонах, трубах. ' +
'Видимые повреждения конструктивных элементов. Аварийное состояние по ГОСТ 31937'
},
{
parameter: 'Прогноз повреждений d-4',
value: 0,
description: 'Значительные расчётные повреждения. Высокая вероятность значительных повреждений несущих ' +
'элементов здания или сооружения: глубокие трещины в карнизах и фронтонах, падение дымовых труб. ' +
'Высокая вероятность значительных деформаций и больших отколов бетона или раствора ' +
'в узлах каркаса и в стыках панелей. Здание под снос.'
},
{
parameter: 'Прогноз повреждений d-5',
value: 0,
description: 'Разрушение по данным расчётов. Высокая вероятность обрушения несущих стен и перекрытия, ' +
'полного обрушения здания или сооружения с потерей его формы.'
},
{
parameter: 'Ранее повреждённые объекты',
value: 0,
description: 'Количество зданий на которые было оказано опасное сейсмическое воздействие от предыдущих землетрясений.'
},
{
parameter: 'Версия базы',
value: null,
description: 'Версия банка данных зданий и сооружений'
},
{
parameter: 'Всего объектов',
value: null,
description: 'Общее количество зданий и сооружений в базе на момент землетрясения'
},
{
parameter: 'Конфигурация системы',
value: null,
description: 'Версия конфигурации системы, которая была использована в расчетах'
}
]
}
},
created() {
this.fetchData()
},
methods: {
fetchData: function() {
this.$http.get(apiSettings.endpointEventBuildings(this.event.id))
.then(response => {
this.$root.$emit('onMapBuildingsDataFetched', response.data.data)
this.setData(response.data.data)
})
},
setData: function(buildings) {
let itemsLen = this.items.length
let damageLevels = Array.from({ length: itemsLen - 3 }, () => 0)
let destroyed = 0
buildings.forEach(building => {
if(building.building.data.destroyed > building.damage_level) {
destroyed++
} else {
damageLevels[building.damage_level] += 1
}
})
damageLevels.forEach((v, _level) => { this.items[_level].value = v })
this.items[itemsLen - 4].value = destroyed
this.items[itemsLen - 3].value = this.$store.getters.srssDBVersion
this.items[itemsLen - 2].value = buildings.length
this.items[itemsLen - 1].value = `${this.$store.getters.msk64ConfigVersion}`
}
},
watch: {
event: function() {
this.fetchData()
}
}
}
</script>
<style lang="scss" scoped>
@import '~scss/event';
</style>