From 4124f2609591f1b7c2ad66484960be0b897fe1f7 Mon Sep 17 00:00:00 2001 From: Ap_Tx <3045929398@qq.com> Date: Sat, 17 Oct 2026 21:18:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=9A=AE=E8=82=A4?= =?UTF-8?q?=E7=AB=99=E7=8E=A9=E5=AE=B6=E7=AE=A1=E7=90=86=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SkinSiteProfileView:玩家列表、选中玩家的 3D 预览,以及皮肤 / 披风 / 鞘翅的上传与删除;Mojang 账号只读。 - 账号卡增加「My players」入口,主页在该视图与首页之间切换。 - 3D 预览复用 SkinPreviewRenderer。 --- .../ui/skin-site/SkinSiteAccountCard.vue | 3 +- .../components/ui/skin-site/SkinSiteHome.vue | 60 ++-- .../ui/skin-site/SkinSiteProfileView.vue | 283 ++++++++++++++++++ 3 files changed, 320 insertions(+), 26 deletions(-) create mode 100644 apps/app-frontend/src/components/ui/skin-site/SkinSiteProfileView.vue diff --git a/apps/app-frontend/src/components/ui/skin-site/SkinSiteAccountCard.vue b/apps/app-frontend/src/components/ui/skin-site/SkinSiteAccountCard.vue index 69d0b28..8720deb 100644 --- a/apps/app-frontend/src/components/ui/skin-site/SkinSiteAccountCard.vue +++ b/apps/app-frontend/src/components/ui/skin-site/SkinSiteAccountCard.vue @@ -30,9 +30,10 @@ const messages = defineMessages({ error: { id: 'app.skin-site.home.error', defaultMessage: 'Could not load players.' }, signIn: { id: 'app.skin-site.home.sign-in', defaultMessage: 'Sign in' }, settings: { id: 'app.skin-site.home.settings', defaultMessage: 'Account' }, + myPlayers: { id: 'app.skin-site.home.my-players', defaultMessage: 'My players' }, }) -const emit = defineEmits<{ (e: 'sign-in' | 'open-settings'): void }>() +const emit = defineEmits<{ (e: 'sign-in' | 'open-settings' | 'open-players'): void }>() const luck = ref(null) const luckLoading = ref(false) diff --git a/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue b/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue index 99bb1ad..1f5e473 100644 --- a/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue +++ b/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue @@ -9,6 +9,7 @@ import SkinSiteDonationCard from './SkinSiteDonationCard.vue' import SkinSiteLoginModal from './SkinSiteLoginModal.vue' import SkinSiteNavCards from './SkinSiteNavCards.vue' import SkinSiteProfileModal from './SkinSiteProfileModal.vue' +import SkinSiteProfileView from './SkinSiteProfileView.vue' const { formatMessage } = useVIntl() const { addNotification } = injectNotificationManager() @@ -26,6 +27,7 @@ const messages = defineMessages({ const YGGDRASIL_URL = 'https://skin.starlight.cool/yggdrasil' const loginModal = ref>() const profileModal = ref>() +const view = ref<'home' | 'players'>('home') async function copyAddress() { try { @@ -40,36 +42,44 @@ async function copyAddress() {