Последняя версия с сервера прошлого разработчика
This commit is contained in:
100
nova/resources/js/views/Dashboard.vue
Executable file
100
nova/resources/js/views/Dashboard.vue
Executable file
@@ -0,0 +1,100 @@
|
||||
<template>
|
||||
<div :dusk="'dashboard-' + this.name">
|
||||
<custom-dashboard-header class="mb-3" :dashboard-name="name" />
|
||||
|
||||
<heading v-if="cards.length > 1" class="mb-6">{{
|
||||
__('Dashboard')
|
||||
}}</heading>
|
||||
|
||||
<div v-if="shouldShowCards">
|
||||
<cards v-if="smallCards.length > 0" :cards="smallCards" class="mb-3" />
|
||||
<cards v-if="largeCards.length > 0" :cards="largeCards" size="large" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { CardSizes } from 'laravel-nova'
|
||||
|
||||
export default {
|
||||
metaInfo() {
|
||||
return {
|
||||
title: `${this.label}`,
|
||||
}
|
||||
},
|
||||
|
||||
data: () => ({ label: '', cards: '' }),
|
||||
|
||||
props: {
|
||||
name: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: 'main',
|
||||
},
|
||||
},
|
||||
|
||||
watch: {
|
||||
name() {
|
||||
this.fetchDashboard()
|
||||
},
|
||||
},
|
||||
|
||||
created() {
|
||||
this.fetchDashboard()
|
||||
},
|
||||
|
||||
methods: {
|
||||
async fetchDashboard() {
|
||||
const {
|
||||
data: { label, cards },
|
||||
} = await Nova.request()
|
||||
.get(this.dashboardEndpoint, {
|
||||
params: this.extraCardParams,
|
||||
})
|
||||
.catch(e => {
|
||||
this.$router.push({ name: '404' })
|
||||
})
|
||||
|
||||
this.label = label
|
||||
this.cards = cards
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
/**
|
||||
* Get the endpoint for this dashboard.
|
||||
*/
|
||||
dashboardEndpoint() {
|
||||
return `/nova-api/dashboards/${this.name}`
|
||||
},
|
||||
|
||||
/**
|
||||
* Determine whether we have cards to show on the Dashboard
|
||||
*/
|
||||
shouldShowCards() {
|
||||
return this.cards.length > 0
|
||||
},
|
||||
|
||||
/**
|
||||
* Return the small cards used for the Dashboard
|
||||
*/
|
||||
smallCards() {
|
||||
return _.filter(this.cards, c => CardSizes.indexOf(c.width) !== -1)
|
||||
},
|
||||
|
||||
/**
|
||||
* Return the full-width cards used for the Dashboard
|
||||
*/
|
||||
largeCards() {
|
||||
return _.filter(this.cards, c => c.width == 'full')
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the extra card params to pass to the endpoint.
|
||||
*/
|
||||
extraCardParams() {
|
||||
return null
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user