refactor: 重构移动端页面布局与资源路径,优化打包配置

1. 新增layout.uts统一管理页面尺寸与安全区计算
2. 修正图片资源路径到static/mobile目录
3. 调整App.vue与AppIcon组件样式适配多端
4. 为微信小程序配置打包忽略规则减少包体积
5. 修复API请求错误抛出类型,完善类型定义
6. 补充README文档说明项目运行与维护规范
7. 优化多个页面的样式与生命周期逻辑
This commit is contained in:
hujun
2026-09-15 16:16:55 +08:00
parent 626cef9d38
commit b0ee4f9d7e
67 changed files with 80727 additions and 189 deletions
+18 -7
View File
@@ -1,26 +1,37 @@
<template>
<view class="splash page-white" @click="enter">
<view class="splash-status"></view>
<view class="splash page-white" @click="enter" :style="pageStyle()">
<view class="splash-status" :style="statusStyle(0)"></view>
<view class="brand-area">
<BrandLogo />
<text class="tagline">智能评估 · 精准匹配</text>
<text class="slogan">让融资更简单</text>
</view>
<image class="splash-art" src="/static/images/shield.png" mode="aspectFit"></image>
<image class="splash-art" src="/static/mobile/images/shield.png" mode="aspectFit"></image>
<view class="launch-line"><view class="launch-dot"></view><text>开启智能融资新体验</text></view>
</view>
</template>
<script setup lang="uts">
import { usePageLayout } from '@/services/layout.uts'
const { statusStyle, pageStyle } = usePageLayout()
import BrandLogo from '@/components/BrandLogo.uvue'
import { isLoggedIn } from '@/services/api.uts'
const enter = () => { uni.redirectTo({ url: isLoggedIn() ? '/pages/home/home' : '/pages/login/login' }) }
setTimeout(() => enter(), 1800)
let enterTimer = 0
let entered = false
const enter = () => {
if (entered) return
entered = true
clearTimeout(enterTimer)
uni.redirectTo({ url: isLoggedIn() ? '/pages/home/home' : '/pages/login/login' })
}
onShow(() => { if (!entered) enterTimer = setTimeout(() => enter(), 1800) })
onHide(() => { clearTimeout(enterTimer) })
onUnmounted(() => { clearTimeout(enterTimer) })
</script>
<style>
.splash { min-height: 100vh; align-items: center; position: relative; overflow: hidden; }
.splash-status { height: var(--status-bar-height); }
.splash { align-items: center; position: relative; overflow: hidden; }
.splash-status { }
.brand-area { align-items: center; margin-top: 220rpx; }
.tagline { margin-top: 18rpx; color: #32405a; font-size: 28rpx; font-weight: 600; }
.slogan { margin-top: 42rpx; color: #102557; font-size: 33rpx; font-weight: 800; }