From 2abbace470899cdd1117e2cf3996c1cf926343a6 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 19 Apr 2025 11:44:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20UserCard=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E9=87=8D=E6=9E=84=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA=E5=92=8C=E6=93=8D=E4=BD=9C=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=B8=83=E5=B1=80=EF=BC=8C=E6=8F=90=E5=8D=87=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E9=80=82=E9=85=8D=E6=95=88=E6=9E=9C=E3=80=82?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=86=97=E4=BD=99=E7=9A=84=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=8C=E7=AE=80=E5=8C=96=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=BC=BA=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/cards/UserCard.vue | 696 ++++++------------------------ 1 file changed, 143 insertions(+), 553 deletions(-) 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) })