diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 6934d0bf..5545ed9d 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -6,6 +6,7 @@ import avatar1 from '@images/avatars/avatar-1.png' import { useToast } from 'vue-toast-notification' import { useConfirm } from 'vuetify-use-dialog' import UserAddEditDialog from '@/components/dialog/UserAddEditDialog.vue' +import { useDisplay } from 'vuetify' // 扩展User类型以包含昵称字段 interface ExtendedUser extends User { @@ -26,6 +27,9 @@ const props = defineProps({ }, }) +const display = useDisplay() +const isMobile = computed(() => display.mdAndDown.value) + // 当前用户的ID const currentLoginUserId = computed(() => useUserStore().userID) @@ -50,15 +54,6 @@ const movieSubscriptions = ref(0) // 用户电视剧订阅数量 const tvShowSubscriptions = ref(0) -// 是否显示更多操作菜单 -const showMenu = ref(false) - -// 鼠标悬停状态 -const isHovered = ref(false) - -// 是否为移动设备 -const isMobile = ref(window.innerWidth < 600) - // 显示名称 - 如果有昵称则优先显示昵称 const displayName = computed(() => { const settingsNickname = props.user.settings?.nickname as string | undefined @@ -66,13 +61,6 @@ const displayName = computed(() => { return nickname || props.user.name }) -// 计算用户卡片状态类 -const cardStatusClass = computed(() => { - if (!props.user.is_active) return 'user-card-inactive' - if (props.user.is_superuser) return 'user-card-admin' - return '' -}) - // 按用户查询订阅数量 async function fetchSubscriptions() { try { @@ -121,147 +109,165 @@ function onUserUpdate() { emit('save') } -// 更新窗口大小监听 -function handleResize() { - isMobile.value = window.innerWidth < 600 -} - onMounted(() => { fetchSubscriptions() - window.addEventListener('resize', handleResize) -}) - -onUnmounted(() => { - window.removeEventListener('resize', handleResize) })