import { defineComponent, ref, Transition, TransitionGroup, watch } from 'vue'
import ModeSwitch from './ModeSwitch'
import icons, { initIcons } from './icons'
import { OhVueIcon, addIcons } from 'oh-vue-icons'
import { PxHeadset, PxAddBox, PxCheck } from 'oh-vue-icons/icons'
import useRouterStore from '@/useRouterStore'
import useLayoutStore from '../useLayoutStore'
import useUserStore from '@/user/useUserStore'
import AvatarCircle from '@/user/AvatarCircle'
initIcons()
addIcons(PxHeadset, PxAddBox, PxCheck)
const Item = defineComponent({
props: {
name: {
type: String,
default: ''
},
label: {
type: String,
default: ''
},
idx: {
type: Number,
default: 0
},
active: {
type: Boolean,
default: false
}
},
emits: ['click'],
setup(props, ctx) {
const hover = ref(false)
return () => (
{
hover.value = true
}}
onMouseleave={() => {
hover.value = false
}}
onClick={() => {
ctx.emit('click')
}}
>
{props.label}
)
}
})
export default defineComponent(() => {
const showEdit = ref(false)
const selected = ref(icons[0])
const router = useRouterStore()
const layout = useLayoutStore()
const user = useUserStore()
const label = ref('')
watch(
selected,
(val) => {
label.value = val.label
},
{ immediate: true }
)
return () => (
{layout.ready && (
- {
showEdit.value = true
}}
/>
- {
router.go('settings-fallback')
}}
/>
{
if (user.isLogin) {
router.go('settings-user')
} else {
router.go('global-login')
}
}}
>
{/* 添加页面 */}
{showEdit.value && (
{
showEdit.value = false
}}
>
{icons.map((el) => (
{
selected.value = { ...el }
}}
>
))}
{
layout.currentMode.pages.push({
list: [],
label: label.value,
name: selected.value.name
})
}}
>
添加页面
)}
)}
)
})