first commit
This commit is contained in:
42
resources/js/Layouts/AppLayout.vue
Normal file
42
resources/js/Layouts/AppLayout.vue
Normal file
@@ -0,0 +1,42 @@
|
||||
<script setup>
|
||||
import { NLayout, NH1, NLayoutSider, NFlex, NButton, NConfigProvider, ruRU, dateRuRU } from "naive-ui";
|
||||
import SideMenu from "./Components/SideMenu.vue";
|
||||
import { generate } from '@arco-design/color'
|
||||
|
||||
const colors = generate('#EC6608', {
|
||||
list: true,
|
||||
})
|
||||
const themeOverrides = {
|
||||
common: {
|
||||
primaryColor: colors[5],
|
||||
primaryColorHover: colors[4],
|
||||
primaryColorSuppl: colors[4],
|
||||
primaryColorPressed: colors[6],
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NConfigProvider :theme-overrides="themeOverrides" :locale="ruRU" :date-locale="dateRuRU">
|
||||
<NLayout class="h-screen">
|
||||
<NLayout position="absolute" has-sider>
|
||||
<NLayoutSider
|
||||
:native-scrollbar="false"
|
||||
bordered
|
||||
>
|
||||
<SideMenu />
|
||||
</NLayoutSider>
|
||||
<NLayout content-class="p-6 pt-2 relative" :native-scrollbar="false">
|
||||
<div>
|
||||
<slot name="header" />
|
||||
</div>
|
||||
<slot />
|
||||
</NLayout>
|
||||
</NLayout>
|
||||
</NLayout>
|
||||
</NConfigProvider>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
63
resources/js/Layouts/Components/SideMenu.vue
Normal file
63
resources/js/Layouts/Components/SideMenu.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<script setup>
|
||||
import {computed, ref} from "vue";
|
||||
import {useAppStore} from "../../Stores/App.js";
|
||||
import {NMenu} from 'naive-ui'
|
||||
|
||||
const { collapsed } = useAppStore()
|
||||
|
||||
const menuItems = [
|
||||
{
|
||||
label: 'СофтИнфо',
|
||||
key: 'si',
|
||||
children: [
|
||||
{
|
||||
label: 'Стационарные карты',
|
||||
key: 'web.si.stt'
|
||||
},
|
||||
{
|
||||
label: 'Амбулаторные карты',
|
||||
key: 'web.si.amb'
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'МИС',
|
||||
key: 'mis',
|
||||
children: [
|
||||
{
|
||||
label: 'Стационарные карты',
|
||||
key: 'web.mis.stt'
|
||||
},
|
||||
{
|
||||
label: 'Амбулаторные карты',
|
||||
key: 'web.mis.amb'
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
const menu = ref(null)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NMenu
|
||||
ref="menu"
|
||||
class="side-menu"
|
||||
accordion
|
||||
:indent="18"
|
||||
:collapsed-icon-size="22"
|
||||
:collapsed-width="64"
|
||||
:collapsed="collapsed"
|
||||
:options="menuItems"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
.side-menu:not(.n-menu--collapsed) .n-menu-item-content::before {
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
.side-menu:not(.n-menu--collapsed) .n-menu-item-content.n-menu-item-content--selected::before {
|
||||
border-left: 4px solid #EC6608;
|
||||
}
|
||||
</style>
|
||||
24
resources/js/Layouts/Default/Index.vue
Normal file
24
resources/js/Layouts/Default/Index.vue
Normal file
@@ -0,0 +1,24 @@
|
||||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="wh-full flex">
|
||||
<aside
|
||||
class="flex-col flex-shrink-0 transition-width-300"
|
||||
:class="appStore.collapsed ? 'w-64' : 'w-220'"
|
||||
border-r="1px solid light_border dark:dark_border"
|
||||
>
|
||||
<SideBar />
|
||||
</aside>
|
||||
|
||||
<article class="w-0 flex-col flex-1">
|
||||
<AppHeader class="h-60 flex-shrink-0" />
|
||||
<slot />
|
||||
</article>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
12
resources/js/Layouts/Default/SideBar/Index.vue
Normal file
12
resources/js/Layouts/Default/SideBar/Index.vue
Normal file
@@ -0,0 +1,12 @@
|
||||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<SideLogo border-b="1px solid light_border dark:dark_border" />
|
||||
<SideMenu class="cus-scroll-y mt-4 h-0 flex-1" />
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user