Files
airz-uniapp/pages/archive/archive.uvue
T
hujun b0ee4f9d7e refactor: 重构移动端页面布局与资源路径,优化打包配置
1. 新增layout.uts统一管理页面尺寸与安全区计算
2. 修正图片资源路径到static/mobile目录
3. 调整App.vue与AppIcon组件样式适配多端
4. 为微信小程序配置打包忽略规则减少包体积
5. 修复API请求错误抛出类型,完善类型定义
6. 补充README文档说明项目运行与维护规范
7. 优化多个页面的样式与生命周期逻辑
2026-09-15 16:16:55 +08:00

42 lines
3.1 KiB
Plaintext

<template>
<view class="page" :style="pageStyle()">
<AppHeader title="我的融资档案" />
<view class="archive-content">
<view class="completion"><view class="completion-head"><text class="completion-title">档案完整度 75%</text><text class="completion-score">75%</text></view><text class="completion-desc">完善信息可获得更精准的融资方案</text><view class="progress-track"><view class="progress-bar"></view></view></view>
<view class="archive-list"><view class="archive-row" v-for="item in archiveItems" :key="item.name" @click="edit(item.name)"><view class="archive-icon"><AppIcon :name="item.icon" :size="40" /></view><text class="archive-name">{{ item.name }}</text><text :class="item.done ? 'state done' : 'state pending'">{{ item.done ? '已完善' : '待完善' }}</text><AppIcon name="chevron-right" :size="28" muted /></view></view>
<button class="primary-button complete-button" @click="complete">完善档案</button>
</view>
</view>
</template>
<script setup lang="uts">
import { usePageLayout } from '@/services/layout.uts'
const { pageStyle } = usePageLayout()
import AppHeader from '@/components/AppHeader.uvue'
import AppIcon from '@/components/AppIcon.uvue'
type ArchiveItem = { icon: string, name: string, done: boolean }
const archiveItems: ArchiveItem[] = [{ icon: 'file-text', name: '基本信息', done: true }, { icon: 'income', name: '经营 / 收入信息', done: true }, { icon: 'asset', name: '资产 / 负债信息', done: true }, { icon: 'authorization', name: '资料授权', done: false }]
const edit = (name: string) => { uni.showToast({ title: '编辑' + name, icon: 'none' }) }
const complete = () => { uni.navigateTo({ url: '/pages/assessment/assessment' }) }
</script>
<style>
.archive-content { padding: 26rpx 28rpx; }
.completion { padding: 30rpx; border-radius: 18rpx; background: linear-gradient(140deg, #e9f3ff, #f8fbff); border: 1rpx solid #dce9fa; }
.completion-head { flex-direction: row; justify-content: space-between; align-items: center; }
.completion-title { font-size: 30rpx; font-weight: 800; }
.completion-score { color: #0868f7; font-size: 27rpx; font-weight: 800; }
.completion-desc { color: #748196; font-size: 22rpx; margin-top: 12rpx; }
.progress-track { height: 15rpx; border-radius: 8rpx; background-color: #dce8f6; margin-top: 24rpx; overflow: hidden; }
.progress-bar { width: 75%; height: 15rpx; border-radius: 8rpx; background-color: #0868f7; }
.archive-list { margin-top: 24rpx; background-color: #fff; border: 1rpx solid #e5ecf5; border-radius: 18rpx; padding: 0 24rpx; }
.archive-row { height: 110rpx; flex-direction: row; align-items: center; border-bottom: 1rpx solid #edf1f6; }
.archive-icon { width: 54rpx; height: 54rpx; border-radius: 17rpx; background-color: #e8f2ff; color: #0868f7; align-items: center; justify-content: center; font-size: 21rpx; font-weight: 800; margin-right: 17rpx; }
.archive-name { flex: 1; font-size: 25rpx; }
.state { font-size: 22rpx; margin-right: 14rpx; }
.done { color: #11aa76; }
.pending { color: #ff7917; }
.chevron { color: #a7b2c1; font-size: 36rpx; }
.complete-button { margin-top: 34rpx; }
</style>