feat: UI redesign with uv-ui color system and landscape imagery

- Replace all colors with uv-ui design tokens (primary #3c9cff, warning #f9ae3d, etc.)
- Hero section: Wugong Mountain landscape photo with dark overlay
- Super Player card: photo background, large typography, warning-color price/CTA, value comparison (¥198 vs ¥3800+)
- Spots section: landscape thumbnails instead of CSS gradients, warning-color prices
- Profile page: landscape hero header, CSS menu icons, floating card layout
- Card list page: landscape hero header, filter pills, empty state design
- TabBar: rename '入园码' to '旅游卡', Lucide-style PNG icons (home/card/profile)
- Typography: corrected font weights (semibold for prices, medium for labels)
- Remove broken font-loader (lxgw-wen-kai CDN 404)
- Skip wx.getPrivacySetting in devtools to avoid framework timeout
- Replace all inline SVG with CSS-only icons for mini-program compatibility
- Add design system files (styles/, components/, animations)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
jacobxu666
2026-06-25 01:07:21 +08:00
co-authored by Claude
parent c062dee3e6
commit 5f1ab737e9
25 changed files with 2110 additions and 390 deletions
+17 -11
View File
@@ -4,15 +4,20 @@ import { useUserStore } from './store/user'
onLaunch(() => {
// #ifdef MP-WEIXIN
wx.getPrivacySetting({
success: (res: any) => {
if (res.needAuthorization) {
uni.setStorageSync('needPrivacy', true)
} else {
uni.removeStorageSync('needPrivacy')
}
}
})
// 仅真机检查隐私协议,模拟器中跳过(getPrivacySetting 在模拟器会触发框架级 timeout)
const sysInfo = uni.getSystemInfoSync()
if (sysInfo.platform !== 'devtools' && wx.getPrivacySetting) {
wx.getPrivacySetting({
success: (res: any) => {
if (res.needAuthorization) {
uni.setStorageSync('needPrivacy', true)
} else {
uni.removeStorageSync('needPrivacy')
}
},
fail: () => {},
})
}
// #endif
const userStore = useUserStore()
@@ -25,9 +30,10 @@ onLaunch(() => {
})
</script>
<style>
<style lang="scss">
@import './styles/main.scss';
page {
min-height: 100vh;
background-color: #f5f5f5;
}
</style>