admin-fe/src/views/reports/index.vue

87 lines
1.9 KiB
Vue
Raw Normal View History

2019-03-30 15:37:44 +00:00
<template>
<div class="reports-container">
<h1>{{ $t('reports.reports') }}</h1>
2019-05-19 21:29:54 +00:00
<div class="filter-container">
<reports-filter/>
</div>
2019-03-30 15:37:44 +00:00
<div class="block">
<el-timeline class="timeline">
2019-05-17 22:47:20 +00:00
<timeline-item v-loading="loading" v-for="report in reports" :report="report" :key="report.id"/>
2019-03-30 15:37:44 +00:00
</el-timeline>
<div v-if="reports.length === 0" class="no-reports-message">
<p>There are no reports to display</p>
</div>
2019-03-30 15:37:44 +00:00
</div>
</div>
</template>
<script>
import TimelineItem from './components/TimelineItem'
2019-05-19 21:29:54 +00:00
import ReportsFilter from './components/ReportsFilter'
2019-03-30 15:37:44 +00:00
export default {
2019-05-19 21:29:54 +00:00
components: { TimelineItem, ReportsFilter },
2019-03-30 15:37:44 +00:00
computed: {
2019-04-01 21:17:35 +00:00
loading() {
return this.$store.state.users.loading
},
2019-03-30 15:37:44 +00:00
reports() {
return this.$store.state.reports.fetchedReports
}
2019-04-01 21:17:35 +00:00
},
mounted() {
this.$store.dispatch('FetchReports')
2019-05-24 23:45:05 +00:00
},
created() {
window.addEventListener('scroll', this.handleScroll)
},
destroyed() {
window.removeEventListener('scroll', this.handleScroll)
2019-04-01 21:17:35 +00:00
},
methods: {
2019-05-24 23:45:05 +00:00
handleScroll(reports) {
const bottomOfWindow = document.documentElement.scrollHeight - document.documentElement.scrollTop === document.documentElement.clientHeight
if (bottomOfWindow) {
this.$store.dispatch('FetchReports')
2019-04-01 21:17:35 +00:00
}
}
2019-03-30 15:37:44 +00:00
}
}
</script>
<style rel='stylesheet/scss' lang='scss' scoped>
.reports-container {
.el-timeline {
margin: 45px 45px 45px 19px;
padding: 0px;
}
2019-05-19 21:29:54 +00:00
.filter-container {
margin: 22px 15px 22px 15px;
padding-bottom: 0
}
2019-03-30 15:37:44 +00:00
h1 {
margin: 22px 0 0 15px;
}
.no-reports-message {
color: gray;
margin-left: 19px
2019-03-30 15:37:44 +00:00
}
}
@media
only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px) {
.reports-container {
h1 {
2019-06-15 19:01:10 +00:00
margin: 7px 10px 15px 10px;
2019-03-30 15:37:44 +00:00
}
2019-05-19 21:29:54 +00:00
.filter-container {
2019-06-15 19:01:10 +00:00
margin: 0 10px
}
.timeline {
margin: 20px 20px 20px 18px
2019-05-19 21:29:54 +00:00
}
2019-03-30 15:37:44 +00:00
}
}
</style>