feat:dashboard可编辑

This commit is contained in:
jxxghp
2024-01-03 13:09:28 +08:00
parent 227b6bd7ef
commit 82454a650c

View File

@@ -6,11 +6,54 @@ import AnalyticsStorage from '@/views/dashboard/AnalyticsStorage.vue'
import AnalyticsWeeklyOverview from '@/views/dashboard/AnalyticsWeeklyOverview.vue'
import AnalyticsCpu from '@/views/dashboard/AnalyticsCpu.vue'
import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
// 仪表盘配置
const dashboard_names = {
storage: '存储空间',
mediaStatistic: '媒体统计',
weeklyOverview: '最近入库',
speed: '实时速率',
scheduler: '后台任务',
cpu: 'CPU',
memory: '内存',
library: '我的媒体库',
playing: '继续播放',
latest: '最近添加',
}
// 弹窗
const dialog = ref(false)
// 从localStorage中获取数据
const default_config = {
mediaStatistic: true,
scheduler: true,
speed: true,
storage: true,
weeklyOverview: true,
cpu: true,
memory: true,
library: false,
playing: false,
latest: false,
}
const config = ref(JSON.parse(localStorage.getItem('MP_DASHBOARD') || '{}'))
if (!config.value) {
config.value = default_config
localStorage.setItem('MP_DASHBOARD', JSON.stringify(config.value))
}
// 弹窗设置项目
function setDashboardConfig() {
localStorage.setItem('MP_DASHBOARD', JSON.stringify(config.value))
dialog.value = false
}
</script>
<template>
<VRow class="match-height">
<VCol
v-if="config.storage"
cols="12"
md="4"
>
@@ -18,6 +61,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.mediaStatistic"
cols="12"
md="8"
>
@@ -25,6 +69,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.weeklyOverview"
cols="12"
md="4"
>
@@ -32,6 +77,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.speed"
cols="12"
md="4"
>
@@ -39,6 +85,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.scheduler"
cols="12"
md="4"
>
@@ -46,6 +93,7 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.cpu"
cols="12"
md="6"
>
@@ -53,10 +101,54 @@ import AnalyticsMemory from '@/views/dashboard/AnalyticsMemory.vue'
</VCol>
<VCol
v-if="config.memory"
cols="12"
md="6"
>
<AnalyticsMemory />
</VCol>
</VRow>
<!-- 底部操作按钮 -->
<span class="fixed right-5 bottom-5">
<VBtn icon="mdi-view-dashboard-edit" class="me-2" color="primary" size="x-large" @click="dialog = true" />
</span>
<!-- 弹窗根据配置生成选项 -->
<VDialog
v-model="dialog"
max-width="600"
scrollable
>
<VCard title="设置仪表盘">
<VCardText>
<VRow>
<VCol
v-for="(item, key) in dashboard_names"
:key="key"
cols="12"
md="4"
>
<VCheckbox
v-model="config[key]"
:label="dashboard_names[key]"
/>
</VCol>
</VRow>
</VCardText>
<VCardActions>
<VBtn
color="primary"
@click="dialog = false"
>
取消
</VBtn>
<VSpacer />
<VBtn
color="primary"
@click="setDashboardConfig"
>
保存
</VBtn>
</VCardActions>
</VCard>
</vdialog>
</template>