import { defineComponent, toRefs, reactive, onMounted, ref, nextTick } from 'vue' import { ElTag, ElDropdown, ElDropdownItem, ElDropdownMenu, ElMessageBox } from 'element-plus' import classes from './index.module.less' import teacherHeader from '@/common/images/icon_teacher.png' import { state } from '@/state' import userBanner from '../images/userBanner.png' import changeIcon from '../images/changeIcon.png' import backIcon from '../images/backIcon.png' import peopleIcon from '../images/peopleIcon.png' import planIcon from '../images/planIcon.png' import { getUserInfo, getUserType, getAuth, setAuth } from '@/helpers/utils' import { useRouter } from 'vue-router' import request from '@/helpers/request' import mitt from '@/helpers/mitt' export default defineComponent({ name: 'loganInfo', props: { title: { type: String, default: '' } }, setup(props, conent) { const states = reactive({ title: props.title, user: {} as any, userType: '', showChange: false }) mitt.on('mittFn',()=>{ console.log('mittFn') setUser() }) const router = useRouter() onMounted(() => { nextTick(() => { setUser() }) }) const setUser = ()=>{ states.user = getUserInfo() states.userType = getUserType() if (states.user.userType) { if ( states.user.userType.indexOf('TEACHER') != -1 && states.user.userType.indexOf('STUDENT') != -1 ) { states.showChange = true } else { states.showChange = false } } } const gotoPage = (val: string) => { router.push({ path: val }) } const changeRoute = () => { const token = getAuth() let userType = '' let str = '' if (states.userType == 'TEACHER') { userType = 'STUDENT' str = '学生' } else { userType = 'TEACHER' str = '老师' } ElMessageBox.confirm(`是否确定切换到${str}?`, '提示', { type: 'warning' }).then(() => { setAuth( JSON.stringify({ token, loginUserType: userType }) ) router.push({ path: '/' }) window.location.reload() }) } const logout = async () => { try { const res = await request.get('/api-auth/exit', {}) router.push({ path: '/' }) window.location.reload() } catch (e) { console.log(e) } } const changeState = (val: string) => { if (val == 'strudent') { gotoPage('/studentInfo') } else if (val == 'teacher') { gotoPage('/userInfo') } else if (val == 'change') { changeRoute() } else if (val == 'back') { logout() } } return { ...toRefs(states), gotoPage, changeRoute, logout, changeState } }, render() { return ( <> this.changeState(val)} v-slots={{ dropdown: () => ( <>

{this.user.username}

{this.userType == 'TEACHER' ? (

{this.user.fansNum || 0}

粉丝

{this.user.musicSheetNum || 0}

乐谱

{/*

134

帖子

*/}
) : null} {this.userType == 'TEACHER' ? ( {' '} 个人中心 ) : ( {' '} 个人中心 )} {/* 创作中心 */} {this.showChange ? ( {' '} 角色切换 ) : null}
{' '} 退出登录
) }} >

{this.user.username}

) } })