40 lines
1.4 KiB
Vue
40 lines
1.4 KiB
Vue
<script setup>
|
|
import { Link } from '@inertiajs/vue3';
|
|
import PortalLayout from './PortalLayout.vue';
|
|
|
|
defineProps({
|
|
site: { type: Object, required: true },
|
|
auth: { type: Object, required: true },
|
|
urls: { type: Object, required: true },
|
|
flash: { type: Object, default: () => ({}) },
|
|
current: { type: String, required: true },
|
|
});
|
|
|
|
const items = [
|
|
{ key: 'accounts', label: 'Аккаунты', url: 'admin_accounts', number: '01' },
|
|
{ key: 'balances', label: 'Слёзы Элуны', url: 'admin_balances', number: '02' },
|
|
{ key: 'shop', label: 'Магазин', url: 'admin_shop', number: '03' },
|
|
{ key: 'news', label: 'Новости', url: 'admin_news', number: '04' },
|
|
{ key: 'login-news', label: 'Новости WoW', url: 'admin_login_news', number: '05' },
|
|
];
|
|
</script>
|
|
|
|
<template>
|
|
<PortalLayout :site="site" :auth="auth" :urls="urls" :flash="flash">
|
|
<div class="admin-bar">
|
|
<nav class="wrap admin-bar__inner" aria-label="Разделы админки">
|
|
<Link
|
|
v-for="item in items"
|
|
:key="item.key"
|
|
:class="{ active: current === item.key }"
|
|
:href="urls[item.url]"
|
|
>
|
|
<small>{{ item.number }}</small>
|
|
{{ item.label }}
|
|
</Link>
|
|
</nav>
|
|
</div>
|
|
<slot />
|
|
</PortalLayout>
|
|
</template>
|