1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

fix: collapse sidebar icon

Signed-off-by: Kaifuny <superbiger.github@gmail.com>
This commit is contained in:
Kaifuny 2023-07-25 11:04:10 +08:00
parent ffe26155f1
commit 12cb53bba4
8 changed files with 76 additions and 32 deletions

View File

@ -1,15 +1,23 @@
<script setup lang="ts"> <script setup lang="ts">
import { MenusLayout } from '@cskefu/shared-ui' import { ref } from 'vue'
import { MenuOption } from 'naive-ui' import { MenuOption } from 'naive-ui'
import routes from '../routes' import { MenusLayout } from '@cskefu/shared-ui'
import { routesToMenus } from '@cskefu/shared-utils' import { routesToMenus } from '@cskefu/shared-utils'
import { Menu } from '@cskefu/shared-ui' import { Menu } from '@cskefu/shared-ui'
import routes from '../routes'
const menuOptions: MenuOption[] = routesToMenus(routes) const menuOptions: MenuOption[] = routesToMenus(routes)
const collapsed = ref<boolean>(false)
</script> </script>
<template> <template>
<MenusLayout> <MenusLayout v-model:collapsed="collapsed">
<Menu :options="menuOptions" /> <Menu
v-model:collapsed="collapsed"
:options="menuOptions"
:collapsed-width="64"
:collapsed-icon-size="24"
/>
</MenusLayout> </MenusLayout>
</template> </template>

View File

@ -6,6 +6,9 @@ import {
BusinessOutline, BusinessOutline,
GitNetworkOutline, GitNetworkOutline,
LibraryOutline, LibraryOutline,
BagCheckOutline,
PeopleOutline,
OptionsOutline,
} from '@vicons/ionicons5' } from '@vicons/ionicons5'
const routes: RouteRecordRaw[] = [ const routes: RouteRecordRaw[] = [
@ -52,7 +55,7 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '质检', title: '质检',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting', icon: BagCheckOutline,
}, },
}, },
{ {
@ -60,6 +63,7 @@ const routes: RouteRecordRaw[] = [
name: ROUTE_NAME.ENTERPRISE_ADMIN_INDEX, name: ROUTE_NAME.ENTERPRISE_ADMIN_INDEX,
meta: { meta: {
title: '组织/成员', title: '组织/成员',
icon: PeopleOutline,
}, },
children: [ children: [
{ {
@ -69,7 +73,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '账号管理', title: '账号管理',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
{ {
@ -79,7 +82,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '角色管理', title: '角色管理',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
{ {
@ -89,7 +91,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '组织架构', title: '组织架构',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
], ],
@ -99,6 +100,7 @@ const routes: RouteRecordRaw[] = [
name: ROUTE_NAME.ENTERPRISE_FEATURE_INDEX, name: ROUTE_NAME.ENTERPRISE_FEATURE_INDEX,
meta: { meta: {
title: '功能设置', title: '功能设置',
icon: OptionsOutline,
}, },
children: [ children: [
{ {
@ -108,7 +110,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '对话设置', title: '对话设置',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
{ {
@ -118,7 +119,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '客户设置', title: '客户设置',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
{ {
@ -128,7 +128,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '工单设置', title: '工单设置',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
{ {
@ -138,7 +137,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '留言设置', title: '留言设置',
requiresAuth: true, requiresAuth: true,
icon: 'el-icon-setting',
}, },
}, },
], ],

View File

@ -3,11 +3,18 @@ import { MenusLayout } from '@cskefu/shared-ui'
import { MenuOption } from 'naive-ui' import { MenuOption } from 'naive-ui'
import { Menu } from '@cskefu/shared-ui' import { Menu } from '@cskefu/shared-ui'
import { ref } from 'vue'
const menuOptions: MenuOption[] = [] const menuOptions: MenuOption[] = []
const collapsed = ref<boolean>(false)
</script> </script>
<template> <template>
<MenusLayout> <MenusLayout v-model:collapsed="collapsed">
<Menu :options="menuOptions" /> <Menu
v-model:collapsed="collapsed"
:options="menuOptions"
:collapsed-width="64"
:collapsed-icon-size="24"
/>
</MenusLayout> </MenusLayout>
</template> </template>

View File

@ -1,15 +1,23 @@
<script setup lang="ts"> <script setup lang="ts">
import { MenusLayout } from '@cskefu/shared-ui' import { ref } from 'vue'
import { MenuOption } from 'naive-ui' import { MenuOption } from 'naive-ui'
import routes from '../routes' import { MenusLayout } from '@cskefu/shared-ui'
import { routesToMenus } from '@cskefu/shared-utils' import { routesToMenus } from '@cskefu/shared-utils'
import { Menu } from '@cskefu/shared-ui' import { Menu } from '@cskefu/shared-ui'
import routes from '../routes'
const menuOptions: MenuOption[] = routesToMenus(routes) const menuOptions: MenuOption[] = routesToMenus(routes)
const collapsed = ref<boolean>(false)
</script> </script>
<template> <template>
<MenusLayout> <MenusLayout v-model:collapsed="collapsed">
<Menu :options="menuOptions" /> <Menu
v-model:collapsed="collapsed"
:options="menuOptions"
:collapsed-width="64"
:collapsed-icon-size="24"
/>
</MenusLayout> </MenusLayout>
</template> </template>

View File

@ -7,10 +7,7 @@ import {
AnalyticsOutline, AnalyticsOutline,
ChatbubblesOutline, ChatbubblesOutline,
DocumentAttachOutline, DocumentAttachOutline,
BarChartOutline,
SettingsOutline,
HardwareChip, HardwareChip,
GridOutline,
} from '@vicons/ionicons5' } from '@vicons/ionicons5'
const routes: RouteRecordRaw[] = [ const routes: RouteRecordRaw[] = [
@ -75,7 +72,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '数据统计', title: '数据统计',
requiresAuth: true, requiresAuth: true,
icon: BarChartOutline,
}, },
}, },
{ {
@ -85,7 +81,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '机器人管理', title: '机器人管理',
requiresAuth: true, requiresAuth: true,
icon: GridOutline,
}, },
}, },
{ {
@ -95,7 +90,6 @@ const routes: RouteRecordRaw[] = [
meta: { meta: {
title: '机器人设置', title: '机器人设置',
requiresAuth: true, requiresAuth: true,
icon: SettingsOutline,
}, },
}, },
], ],

View File

@ -2,11 +2,18 @@
import { MenusLayout } from '@cskefu/shared-ui' import { MenusLayout } from '@cskefu/shared-ui'
import { MenuOption } from 'naive-ui' import { MenuOption } from 'naive-ui'
import { Menu } from '@cskefu/shared-ui' import { Menu } from '@cskefu/shared-ui'
import { ref } from 'vue'
const menuOptions: MenuOption[] = [] const menuOptions: MenuOption[] = []
const collapsed = ref<boolean>(false)
</script> </script>
<template> <template>
<MenusLayout> <MenusLayout v-model:collapsed="collapsed">
<Menu :options="menuOptions" /> <Menu
v-model:collapsed="collapsed"
:options="menuOptions"
:collapsed-width="64"
:collapsed-icon-size="24"
/>
</MenusLayout> </MenusLayout>
</template> </template>

View File

@ -1,16 +1,23 @@
<script setup lang="ts"> <script setup lang="ts">
import { MenusLayout } from '@cskefu/shared-ui' import { ref } from 'vue'
import { MenuOption } from 'naive-ui' import { MenuOption } from 'naive-ui'
import { Menu } from '@cskefu/shared-ui' import { Menu } from '@cskefu/shared-ui'
import { MenusLayout } from '@cskefu/shared-ui'
import { routesToMenus } from '@cskefu/shared-utils'
import routes from '../routes' import routes from '../routes'
import { routesToMenus } from '@cskefu/shared-utils'
const menuOptions: MenuOption[] = routesToMenus(routes) const menuOptions: MenuOption[] = routesToMenus(routes)
const collapsed = ref<boolean>(false)
</script> </script>
<template> <template>
<MenusLayout> <MenusLayout v-model:collapsed="collapsed">
<Menu :options="menuOptions" /> <Menu
v-model:collapsed="collapsed"
:options="menuOptions"
:collapsed-width="64"
:collapsed-icon-size="24"
/>
</MenusLayout> </MenusLayout>
</template> </template>

View File

@ -18,7 +18,13 @@ defineProps({
type: Boolean, type: Boolean,
default: true, default: true,
}, },
collapsed: {
type: Boolean,
default: false,
},
}) })
defineEmits(['update:collapsed'])
</script> </script>
<template> <template>
<n-layout has-sider class="h-full"> <n-layout has-sider class="h-full">
@ -35,7 +41,16 @@ defineProps({
:y-offset="60" :y-offset="60"
:rotate="-15" :rotate="-15"
/> />
<n-layout-sider bordered show-trigger="bar" collapse-mode="transform"> <n-layout-sider
:collapsed-width="64"
:width="280"
:collapsed="collapsed"
bordered
show-trigger="bar"
collapse-mode="width"
@collapse="$emit('update:collapsed', true)"
@expand="$emit('update:collapsed', false)"
>
<slot></slot> <slot></slot>
</n-layout-sider> </n-layout-sider>
<n-layout-content <n-layout-content