Files
medical-mall/unpackage/cache/.app-android/sourcemap/pages/user/center.kt.map

1 line
22 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"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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"}