You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
3.8 KiB
Vue
148 lines
3.8 KiB
Vue
4 years ago
|
<template>
|
||
|
<div class="pa-5">
|
||
|
<v-card
|
||
|
flat
|
||
|
width="400"
|
||
|
class="mx-auto"
|
||
|
>
|
||
|
<v-list-item>
|
||
|
<v-list-item-icon class="mr-3">
|
||
|
<v-icon>$info</v-icon>
|
||
|
</v-list-item-icon>
|
||
|
<v-list-item-content>
|
||
|
<v-list-item-title>Software</v-list-item-title>
|
||
|
</v-list-item-content>
|
||
|
<v-list-item-action>
|
||
|
<v-btn
|
||
|
outlined
|
||
|
color="primary"
|
||
|
>
|
||
|
Update
|
||
|
</v-btn>
|
||
|
</v-list-item-action>
|
||
|
</v-list-item>
|
||
|
<v-divider class="mx-4" />
|
||
|
<v-list
|
||
|
class="pb-0"
|
||
|
>
|
||
|
<v-list-item three-line>
|
||
|
<v-list-item-content>
|
||
|
<v-list-item-title>Firmware</v-list-item-title>
|
||
|
<v-list-item-subtitle class="text--disabled">
|
||
|
Rev: {{ stats.firmware.rev }}
|
||
|
</v-list-item-subtitle>
|
||
|
<v-list-item-subtitle class="text--disabled">
|
||
|
Build: {{ new Date(stats.firmware.created * 1000).toLocaleString() }}
|
||
|
</v-list-item-subtitle>
|
||
|
</v-list-item-content>
|
||
|
</v-list-item>
|
||
|
|
||
|
<v-list-item three-line>
|
||
|
<v-list-item-content>
|
||
|
<v-list-item-title>App</v-list-item-title>
|
||
|
<v-list-item-subtitle class="text--disabled">
|
||
|
Rev: {{ stats.app.rev }}
|
||
|
</v-list-item-subtitle>
|
||
|
<v-list-item-subtitle class="text--disabled">
|
||
|
Build: {{ new Date(stats.app.created * 1000).toLocaleString() }}
|
||
|
</v-list-item-subtitle>
|
||
|
</v-list-item-content>
|
||
|
</v-list-item>
|
||
|
</v-list>
|
||
|
|
||
|
<v-list-item class="mt-10">
|
||
|
<v-list-item-icon class="mr-3">
|
||
|
<v-icon>$storage</v-icon>
|
||
|
</v-list-item-icon>
|
||
|
<v-list-item-content>
|
||
|
<v-list-item-title>Storage</v-list-item-title>
|
||
|
</v-list-item-content>
|
||
|
<v-list-item-avatar>
|
||
|
<v-progress-circular
|
||
|
:rotate="-90"
|
||
|
:value="fsUsage"
|
||
|
class="caption"
|
||
|
>
|
||
|
{{ fsUsage }}
|
||
|
</v-progress-circular>
|
||
|
</v-list-item-avatar>
|
||
|
</v-list-item>
|
||
|
<v-divider class="mx-4" />
|
||
|
<v-list
|
||
|
class="pb-0"
|
||
|
>
|
||
|
<v-list-item>
|
||
|
<v-list-item-title>Total</v-list-item-title>
|
||
|
<v-list-item-subtitle class="text-right">
|
||
|
{{ fs.total | prettyBytes }}
|
||
|
</v-list-item-subtitle>
|
||
|
</v-list-item>
|
||
|
|
||
|
<v-list-item>
|
||
|
<v-list-item-title>Free</v-list-item-title>
|
||
|
<v-list-item-subtitle class="text-right">
|
||
|
{{ fs.free | prettyBytes }}
|
||
|
</v-list-item-subtitle>
|
||
|
</v-list-item>
|
||
|
</v-list>
|
||
|
<v-progress-linear
|
||
|
height="25"
|
||
|
:value="fsUsage"
|
||
|
dark
|
||
|
rounded
|
||
|
>
|
||
|
<template #default="{ value }">
|
||
|
<strong>{{ Math.ceil(value) }}%</strong>
|
||
|
</template>
|
||
|
</v-progress-linear>
|
||
|
|
||
|
<v-list-item class="mt-10">
|
||
|
<v-list-item-icon class="mr-3">
|
||
|
<v-icon>$memory</v-icon>
|
||
|
</v-list-item-icon>
|
||
|
<v-list-item-content>
|
||
|
<v-list-item-title>Memory</v-list-item-title>
|
||
|
</v-list-item-content>
|
||
|
<v-list-item-avatar>
|
||
|
<v-progress-circular
|
||
|
:rotate="-90"
|
||
|
:value="fsUsage"
|
||
|
class="caption"
|
||
|
>
|
||
|
{{ fsUsage }}
|
||
|
</v-progress-circular>
|
||
|
</v-list-item-avatar>
|
||
|
</v-list-item>
|
||
|
|
||
|
<v-divider class="mx-4" />
|
||
|
</v-card>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import { mapState } from 'vuex'
|
||
|
|
||
|
export default {
|
||
|
components: {
|
||
|
},
|
||
|
data: () => ({
|
||
|
isLoading: false,
|
||
|
}),
|
||
|
computed: {
|
||
|
...mapState(['stats']),
|
||
|
fsUsage () {
|
||
|
return Math.round(
|
||
|
(100 / this.stats.device.fs.total) * this.stats.device.fs.used,
|
||
|
)
|
||
|
},
|
||
|
fs () {
|
||
|
return this.stats.device.fs
|
||
|
},
|
||
|
|
||
|
},
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped>
|
||
|
</style>
|