1 line
22 KiB
Plaintext
1 line
22 KiB
Plaintext
{"version":3,"sources":["pages/user/center.uvue","pages/user/login.uvue","pages/user/boot.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<template>\r\n <view class=\"page-wrapper\">\r\n <!-- Top section with language switch -->\r\n <view class=\"top-section\"> <view class=\"language-switch\">\r\n <button class=\"language-btn\" @click=\"toggleLanguage\">\r\n {{ currentLocale === 'zh-CN' ? 'EN' : '中' }}\r\n </button>\r\n </view>\r\n </view>\r\n \r\n <!-- Main content section -->\r\n <view class=\"main-section\">\r\n <scroll-view direction=\"vertical\" class=\"user-center-container\">\r\n <!-- Header with user info -->\r\n <view class=\"user-header\">\r\n <view class=\"user-info\">\r\n <image class=\"user-avatar\" :src=\"userAvatar\" mode=\"aspectFill\"></image>\r\n <view class=\"user-details\">\r\n <text class=\"user-name\">{{ profile.username ?? $t('user.center.unnamed') }}</text>\r\n <view class=\"edit-profile-link\" @click=\"navigateToProfile\">\r\n <text class=\"edit-text\">{{ $t('user.center.edit_profile') }}</text>\r\n <text class=\"edit-icon\">✏️</text>\r\n </view>\r\n </view>\r\n </view>\r\n \r\n <!-- User stats -->\r\n <view class=\"stats-container\">\r\n <view class=\"stat-item\">\r\n <text class=\"stat-value\">{{ userStats.trainings }}</text>\r\n <text class=\"stat-label\">{{ $t('user.center.trainings') }}</text>\r\n </view>\r\n <view class=\"stat-divider\"></view>\r\n <view class=\"stat-item\">\r\n <text class=\"stat-value\">{{ userStats.points }}</text>\r\n <text class=\"stat-label\">{{ $t('user.center.points') }}</text>\r\n </view>\r\n <view class=\"stat-divider\"></view>\r\n <view class=\"stat-item\">\r\n <text class=\"stat-value\">{{ userStats.streak }}</text>\r\n <text class=\"stat-label\">{{ $t('user.center.streak') }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- Main menu sections -->\r\n <view class=\"menu-sections\">\r\n <!-- Training section -->\r\n <view class=\"menu-section\">\r\n <view class=\"section-header\">\r\n <text class=\"section-title\">{{ $t('user.center.training') }}</text>\r\n </view>\r\n \r\n <view class=\"section-items\">\r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/training/records')\"> <view class=\"menu-icon training-records\">📊</view>\r\n <text class=\"menu-text\">{{ $t('user.center.training_records') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/training/plans')\">\r\n <view class=\"menu-icon training-plans\">📋</view>\r\n <text class=\"menu-text\">{{ $t('user.center.training_plans') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n \r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/training/reports')\">\r\n <view class=\"menu-icon reports\">📈</view>\r\n <text class=\"menu-text\">{{ $t('user.center.reports') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- Account section -->\r\n <view class=\"menu-section\">\r\n <view class=\"section-header\">\r\n <text class=\"section-title\">{{ $t('user.center.account') }}</text>\r\n </view>\r\n \r\n <view class=\"section-items\"> <view class=\"menu-item\" @click=\"navigateTo('/pages/user/profile')\">\r\n <view class=\"menu-icon profile\">👤</view>\r\n <text class=\"menu-text\">{{ $t('user.center.profile') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n \r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/user/devices')\">\r\n <view class=\"menu-icon devices\">📱</view>\r\n <text class=\"menu-text\">{{ $t('user.center.devices') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n \r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/user/notifications')\">\r\n <view class=\"menu-icon notifications\">🔔</view>\r\n <text class=\"menu-text\">{{ $t('user.center.notifications') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- Settings section -->\r\n <view class=\"menu-section\">\r\n <view class=\"section-header\">\r\n <text class=\"section-title\">{{ $t('user.center.settings') }}</text>\r\n </view>\r\n \r\n <view class=\"section-items\"> <view class=\"menu-item\" @click=\"navigateTo('/pages/settings/app')\">\r\n <view class=\"menu-icon app-settings\">⚙️</view>\r\n <text class=\"menu-text\">{{ $t('user.center.app_settings') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n \r\n <view class=\"menu-item\" @click=\"navigateTo('/pages/settings/about')\">\r\n <view class=\"menu-icon about\">ℹ️</view>\r\n <text class=\"menu-text\">{{ $t('user.center.about') }}</text>\r\n <text class=\"menu-arrow\">></text>\r\n </view>\r\n </view>\r\n </view> <!-- Logout button -->\r\n <button class=\"logout-button\" @click=\"showLogoutConfirm\">\r\n {{ $t('user.center.logout') }}\r\n </button>\r\n </view>\r\n </scroll-view>\r\n </view>\r\n \r\n <!-- Bottom section -->\r\n <view class=\"bottom-section\">\r\n <!-- Footer content or spacing -->\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script lang=\"uts\">\r\nimport { AkReqOptions, AkReqResponse, AkReqError } from '@/uni_modules/ak-req/index.uts';\r\nimport supa from '@/components/supadb/aksupainstance.uts'\r\nimport type { UserProfile,UserStats } from './types.uts';\r\nimport { setUserProfile } from '@/utils/store.uts';\r\nimport { AkSupaSelectOptions } from '@/components/supadb/aksupa.uts'\r\nimport { switchLocale, getCurrentLocale } from '@/utils/utils.uts';\r\n\r\nexport default {\r\n data() {\r\n return {\r\n isLoading: true,\r\n userStats: {\r\n trainings: 0,\r\n points: 0,\r\n streak: 0\r\n } as UserStats,\r\n profile: {\r\n username: '',\r\n email: ''\r\n } as UserProfile,\r\n userAvatar: '/static/default-avatar.png',\r\n currentLocale: getCurrentLocale()\r\n };\r\n },\r\n onLoad() {\r\n },\r\n onShow() {\r\n this.loadProfile();\r\n this.loadUserStats();\r\n }, methods: {\r\n toggleLanguage() {\r\n const newLocale = this.currentLocale === 'zh-CN' ? 'en-US' : 'zh-CN';\r\n switchLocale(newLocale);\r\n this.currentLocale = newLocale;\r\n \r\n uni.showToast({\r\n title: this.$t('user.center.language_switched'),\r\n icon: 'success'\r\n });\r\n },\r\n async loadUserStats() {\r\n // 这里可以根据 userStore.profile.id 拉取真实数据\r\n this.userStats = {\r\n trainings: 12,\r\n points: 480,\r\n streak: 5\r\n };\r\n\r\n },\r\n async loadProfile() {\r\n const user = supa.user;\r\n if (user==null || user.email=='') {\r\n\t\t console.log('null user:',user)\r\n this.profile.email = '';\r\n return;\r\n }\r\n const filter = `id.eq.${user.id}`;\r\n const options = { single: true } as AkSupaSelectOptions;\r\n const { data, error } = await supa.select('ak_users', filter, options);\r\n // 判断 data 是否为数组且为空\r\n\t if(Array.isArray(data) && data.length> 0) {\r\n\t \t\t console.log(data)\r\n\t \t\t let prodata= data[0] as UTSJSONObject;\r\n this.profile = {\r\n id: user.id as string,\r\n username: prodata.getString(\"username\")??\"\",\r\n email: prodata.getString(\"email\")??\"\",\r\n gender: prodata.getString(\"gender\"),\r\n birthday: prodata.getString(\"birthday\"),\r\n height_cm: prodata.getNumber(\"height_cm\"),\r\n weight_kg: prodata.getNumber(\"weight_kg\"),\r\n bio: prodata.getString(\"bio\"),\r\n avatar_url: prodata.getString(\"avatar_url\")??'/static/logo.png',\r\n preferred_language: prodata.getString(\"preferred_language\"),\r\n }\r\n\t this.userAvatar = this.profile.avatar_url!!;\r\n\t \r\n\t }\r\n else {\r\n\t this.profile.id= user.getString(\"id\");\r\n\t\tthis.profile.username = user.getString(\"username\")??\"\";\r\n\t\tthis.profile.email = user.getString(\"email\")??\"\";\r\n\t let newProfile = new UTSJSONObject(this.profile);\r\n const insertResult = await supa.from('ak_users').insert(newProfile).execute();\r\n\t\tconsole.log(insertResult)\r\n if (insertResult.error==null) {\r\n setUserProfile(this.profile);\r\n }\r\n } \r\n },\r\n \r\n\tnavigateToProfile() {\r\n uni.navigateTo({\r\n url: '/pages/user/profile'\r\n });\r\n },\r\n navigateTo(url: string) {\r\n const implementedPages = ['/pages/user/profile'];\r\n if (implementedPages.includes(url)) {\r\n uni.navigateTo({ url });\r\n } else {\r\n uni.showToast({\r\n title: 'Coming soon',\r\n icon: 'none'\r\n });\r\n }\r\n },\r\n showLogoutConfirm() {\r\n uni.showModal({\r\n title: this.$t('user.center.logout_confirm_title'),\r\n content: this.$t('user.center.logout_confirm_message'),\r\n cancelText: this.$t('user.center.cancel'),\r\n confirmText: this.$t('user.center.confirm'),\r\n success: (res) => {\r\n if (res.confirm) {\r\n this.handleLogout();\r\n }\r\n }\r\n });\r\n },\r\n async handleLogout() {\r\n try {\r\n await supa.signOut();\r\n uni.showToast({\r\n title: this.$t('user.center.logout_success'),\r\n icon: 'success'\r\n });\r\n setTimeout(() => {\r\n uni.reLaunch({\r\n url: '/pages/user/login'\r\n });\r\n }, 1000);\r\n } catch (err) {\r\n console.error('Logout error:', err);\r\n uni.showToast({\r\n title: this.$t('user.center.logout_error'),\r\n icon: 'none'\r\n });\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style>\r\n/* Page wrapper for full screen utilization */\r\n.page-wrapper {\r\n\r\n\r\n\r\n\r\n background-color: #f8f9fa;\r\n}\r\n\r\n/* Top section - Fixed header */\r\n.top-section {\r\n\r\n\r\n\r\n\r\n height: 120rpx;\r\n\r\n position: relative;\r\n background-image: linear-gradient(to right, #2196f3, #03a9f4);\r\n}\r\n\r\n/* Main content section - Scrollable */\r\n.main-section {\r\n\r\n\r\n\r\n\r\n\r\n flex-grow: 1;\r\n\r\n}\r\n\r\n/* Bottom section - Fixed footer */\r\n.bottom-section {\r\n\r\n\r\n\r\n\r\n\r\n height: 60rpx;\r\n\r\n background-color: #f8f9fa;\r\n}\r\n\r\n.user-center-container {\r\n\r\n\r\n background-color: #f8f9fa;\r\n\r\n\r\n\r\n\r\n padding-bottom: 50rpx;\r\n\r\n}\r\n\r\n/* Language switch button */\r\n.language-switch {\r\n position: absolute;\r\n\r\n\r\n\r\n\r\n\r\n top: 30rpx;\r\n right: 40rpx;\r\n\r\n z-index: 10;\r\n}\r\n\r\n/* User header */\r\n.user-header {\r\n background-image: linear-gradient(to right, #2196f3, #03a9f4);\r\n\r\n\r\n\r\n\r\n\r\n\r\n padding: 60rpx 40rpx 30rpx;\r\n border-bottom-left-radius: 30rpx;\r\n border-bottom-right-radius: 30rpx;\r\n\r\n color: #fff;\r\n box-shadow: 0 10rpx 20rpx rgba(3, 169, 244, 0.2);\r\n}\r\n\r\n.user-info {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n}\r\n\r\n.user-avatar {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n width: 120rpx;\r\n height: 120rpx;\r\n border-radius: 60rpx;\r\n border: 4rpx solid #fff;\r\n\r\n background-color: #fff;\r\n}\r\n\r\n.user-details {\r\n flex: 1;\r\n\r\n\r\n\r\n\r\n margin-left: 30rpx;\r\n\r\n}\r\n\r\n.user-name {\r\n\r\n\r\n\r\n\r\n\r\n font-size: 36rpx;\r\n margin-bottom: 10rpx;\r\n\r\n font-weight: bold;\r\n}\r\n\r\n.edit-profile-link {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.edit-text {\r\n\r\n\r\n\r\n\r\n font-size: 24rpx;\r\n\r\n color: rgba(255, 255, 255, 0.9);\r\n}\r\n\r\n.edit-icon {\r\n\r\n\r\n\r\n\r\n\r\n font-size: 24rpx;\r\n margin-left: 6rpx;\r\n\r\n}\r\n\r\n/* Stats container */\r\n.stats-container {\r\n display: flex;\r\n flex-direction: row;\r\n\r\n\r\n\r\n\r\n\r\n\r\n margin-top: 40rpx;\r\n border-radius: 15rpx;\r\n padding: 20rpx 0;\r\n\r\n background-color: rgba(255, 255, 255, 0.15);\r\n}\r\n\r\n.stat-item {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n}\r\n\r\n.stat-value {\r\n\r\n\r\n\r\n\r\n font-size: 32rpx;\r\n\r\n font-weight: bold;\r\n}\r\n\r\n.stat-label {\r\n\r\n\r\n\r\n\r\n\r\n font-size: 24rpx;\r\n margin-top: 6rpx;\r\n\r\n opacity: 0.9;\r\n}\r\n\r\n.stat-divider {\r\n width: 2rpx;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n\r\n\r\n\r\n\r\n margin: 10rpx 0;\r\n\r\n}\r\n\r\n/* Menu sections */\r\n.menu-sections {\r\n\r\n\r\n\r\n\r\n padding: 40rpx 30rpx;\r\n\r\n}\r\n\r\n.menu-section {\r\n background-color: #fff;\r\n\r\n\r\n\r\n\r\n\r\n border-radius: 20rpx;\r\n margin-bottom: 30rpx;\r\n\r\n overflow: hidden;\r\n box-shadow: 0 5rpx 15rpx rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.section-header {\r\n\r\n\r\n\r\n\r\n padding: 30rpx;\r\n\r\n border-bottom: 2rpx solid #f0f0f0;\r\n}\r\n\r\n.section-title {\r\n\r\n\r\n\r\n\r\n font-size: 28rpx;\r\n\r\n font-weight: bold;\r\n color: #333;\r\n}\r\n\r\n.section-items {\r\n\r\n\r\n\r\n\r\n padding: 0 15rpx;\r\n\r\n}\r\n\r\n.menu-item {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n\r\n\r\n\r\n padding: 30rpx 15rpx;\r\n\r\n border-bottom: 2rpx solid #f8f8f8;\r\n}\r\n\r\n.menu-item:last-child {\r\n border-bottom: none;\r\n flex-direction: row;\r\n \r\n}\r\n\r\n.menu-icon {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n width: 60rpx;\r\n height: 60rpx;\r\n border-radius: 30rpx;\r\n margin-right: 20rpx;\r\n font-size: 30rpx;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.menu-text {\r\n flex: 1;\r\n\r\n\r\n\r\n\r\n font-size: 28rpx;\r\n\r\n color: #333;\r\n}\r\n\r\n.menu-arrow {\r\n\r\n\r\n\r\n\r\n font-size: 36rpx;\r\n\r\n color: #ccc;\r\n}\r\n\r\n/* Menu icons with different colors */\r\n.training-records {\r\n background-color: #e3f2fd;\r\n}\r\n\r\n.training-plans {\r\n background-color: #e8f5e9;\r\n}\r\n\r\n.reports {\r\n background-color: #f3e5f5;\r\n}\r\n\r\n.profile {\r\n background-color: #e1f5fe;\r\n}\r\n\r\n.devices {\r\n background-color: #fffde7;\r\n}\r\n\r\n.notifications {\r\n background-color: #fff3e0;\r\n}\r\n\r\n.app-settings {\r\n background-color: #e0f2f1;\r\n}\r\n\r\n.about {\r\n background-color: #f5f5f5;\r\n}\r\n\r\n/* Logout button */\r\n.logout-button {\r\n width: 100%;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n height: 90rpx;\r\n font-size: 32rpx;\r\n margin: 30rpx 0 20rpx;\r\n border-radius: 45rpx;\r\n\r\n background-color: #fff; color: #f44336;\r\n font-weight: normal;\r\n border: 2rpx solid #fce4ec;\r\n text-align: center;\r\n}\r\n\r\n/* Center row utility class */\r\n.center-row {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center; /* 如有需<E69C89>?*/\r\n}\r\n\r\n.language-btn {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n width: 80rpx;\r\n height: 80rpx;\r\n border-radius: 40rpx;\r\n font-size: 28rpx;\r\n background-color: rgba(33, 150, 243, 0.8);\r\n color: #fff;\r\n font-weight: normal;\r\n border: 2rpx solid rgba(255, 255, 255, 0.3);\r\n text-align: center;\r\n box-shadow: 0 4rpx 12rpx rgba(33, 150, 243, 0.3);\r\n}\r\n</style>",null,null,null],"names":[],"mappings":"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"} |