diff --git a/pages/avatar/index.vue b/pages/avatar/index.vue index b526c56..2c0e1d2 100644 --- a/pages/avatar/index.vue +++ b/pages/avatar/index.vue @@ -48,9 +48,15 @@ - - 📷 - 微信头像 + + { // Logic after successful login if needed }; +const onChooseAvatar = async (e) => { + const avatarUrl = e.detail.avatarUrl; + if (!avatarUrl) return; + + uni.showLoading({ title: "上传中...", mask: true }); + try { + const imageUrl = await uploadImage(avatarUrl); + currentAvatar.value = { + id: "wechat_" + Date.now(), + imageUrl: imageUrl, + }; + uni.hideLoading(); + } catch (e) { + uni.hideLoading(); + uni.showToast({ title: "上传失败", icon: "none" }); + console.error("Upload avatar error", e); + } +}; + const useWeChatAvatar = () => { if (!isLoggedIn.value) { loginPopupRef.value.open(); @@ -832,28 +857,49 @@ const loadImage = (url) => { position: relative; background: #fff; box-shadow: 0 6rpx 16rpx rgba(0, 0, 0, 0.06); -} -.avatar-card.active { - outline: 4rpx solid #ff3b30; -} -.upload-card { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: #fff5f5; - border: 2rpx dashed #ffccc7; - box-sizing: border-box; -} -.upload-icon { - font-size: 48rpx; - margin-bottom: 8rpx; -} -.upload-text { - font-size: 22rpx; - color: #ff3b30; - font-weight: 500; + &.active { + outline: 4rpx solid #ff3b30; + } + + &.upload-card { + background: #fff5f5; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border: 2rpx dashed #ffccc7; + box-sizing: border-box; + + .wechat-avatar-btn { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + background: transparent; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + line-height: normal; + border: none; + + &::after { + border: none; + } + } + + .upload-icon { + font-size: 48rpx; + margin-bottom: 8rpx; + } + + .upload-text { + font-size: 22rpx; + color: #ff3b30; + font-weight: 500; + } + } } .avatar-thumb {