Files
airz-uniapp/README.md
T
hujun 4a69357606 feat: add account profile, search, help and security features
1. add default avatar and multiple notification icons
2. update finance archive note and add form styles
3. add new pages: edit-profile, security, password, change-phone, search, help
4. refactor navigation action layout to support multiple actions
5. add search button to home page
6. add security code component and account service APIs
7. add help and search content services
8. update message notice to use svg icons
9. update asset section in finance assessment
10. update manifest appid and pack options
2026-09-21 15:04:59 +08:00

9.7 KiB
Raw Blame History

AI 融资移动端

基于 uni-app x、Vue 3、UTS 的移动端原型,包含 25 个页面。使用 HBuilderX(VDOM 模式)开发,已验证 5.24 和 5.26 的本地编译;本项目没有独立的 npm 构建入口。

本地运行

在 HBuilderX 中导入当前目录,选择“运行 → 运行到浏览器”。共享请求配置位于 services/api.uts,账户、融资的接口模拟实现分别位于对应分包的 services/,没有连接真实短信、贷款申请或 AI 服务。

也可使用 HBuilderX CLI。以下 PowerShell 命令中的安装路径应按本机环境调整;在项目根目录执行:

$hbuilderCli = 'D:\Develop\HBuilderX\cli.exe'
$projectPath = (Get-Location).Path
& $hbuilderCli open
& $hbuilderCli launch web --project $projectPath --compile false --continue-on-error false

各平台编译

以下命令仅本地编译,不上传、不发布:

& $hbuilderCli launch mp-weixin --project $projectPath --compile true --continue-on-error false
& $hbuilderCli launch app-android --project $projectPath --compile true --continue-on-error false
& $hbuilderCli launch app-ios --project $projectPath --iosTarget simulator --compile true --continue-on-error false

产物位于 unpackage/dist/dev/ 对应平台目录。Android 命令可检查 Kotlin/class 编译;Windows 上 iOS 命令只检查当前编译链生成的源码产物,不代表已完成 Xcode 构建或生成 IPA。

运行微信小程序需配置自己的 AppID,并开启微信开发者工具服务端口。Android 真机运行需启用 USB 调试;iOS 真机运行需相应签名环境。正式发行还需配置应用图标、签名、真实接口及平台要求的资料,并完成真机测试。

跨端维护约定

  • 页面尺寸和安全区计算集中在 services/layout.uts。新增页面应复用这里的逻辑,并检查小屏、横屏、键盘弹出及底部安全区。
  • 微信小程序首页在右侧预留胶囊区域与 8px 间距;公共页面标题采用左右对称的安全留白,始终按屏幕中心定位。获取胶囊失败时按 104px 避让。产品分享入口在小程序端放在内容区,App 和 Web 仍保留在标题栏右侧。导航不新增顶部空行,顶部按状态栏和安全区计算。
  • 首页右上角依次为搜索、消息通知;微信端两个按钮与胶囊等高、顶部对齐,按钮组向左展开,左侧 Logo 对齐胶囊的垂直中心;其他端仍在导航栏内居中。AI 助手保留首页横幅及快捷入口。
  • 原生样式遵循 uni-app x 支持范围。仅 Web/小程序支持的样式用条件编译隔离;修改 UTS 类型后应重新验证 Android 编译。
  • 首页及跨包共用的轻量位图位于 static/mobile/,专属大图位于各分包的 static/,原始图片保留在 static/images/ 与 static/icons-generated/。箭头继续使用 static/icons/ 下的 SVG。
  • 底栏使用 static/mobile/navigation/ 的专用位图,由现有高清图标按可见边界裁切、等高居中得到。更换素材时保持一致的图案高度和画布留白,避免仅统一图片元素尺寸却出现视觉错位。
  • 微信打包忽略原始图片目录和未使用的 static/logo.png,规则位于 manifest.json 的 mp-weixin.packOptions.ignore。新增资源要检查引用与排除规则,最终包体以微信开发者工具结果为准。
  • API 地址目前为空,表示模拟模式。接入后端时需补齐环境配置、认证、错误契约及真实业务校验,再进行联调。

当前前端交互

个人与企业评估分别保存本机草稿;选图仅供本机预览,资料上传和数据查询尚未接入。课程章节进度、消息已读与体验签到均保存在当前设备,不代表服务器账户数据。

个人中心顶部的头像、昵称、手机号区域统一进入修改资料;账户安全独立提供修改密码、验证码重设密码及换绑手机号。昵称和头像按当前手机号隔离保存在本机,头像使用 500KB 以内的 JPG / PNG / WebP 数据,不保存会失效的临时路径,不修改融资档案的实名信息。真实账户认证尚未接入,修改密码和换绑手机号不会在本机模拟成功,也不保存密码、验证码或其散列。安全接口成功后清除当前会话并要求重新登录;验证码计时仅在服务端发送成功后启动。

账户接口集中在 packages/account/services/account.uts,请求携带当前会话的 Authorization: Bearer <token>;后端需根据 token 确定账户,校验验证码用途与有效期、限制发送频率并完成旧会话撤销。预留:

  • PUT /account/profile:nickname、avatar(图片 data URL 或空字符串);昵称 2–20 字符。当前本地缓存用于个人中心回显,后续应接入服务端资料读取和持久头像存储。
  • POST /account/security/sms-code:purpose(password / phone-current / phone-new)与 newPhone(仅新号码验证传入);当前号码从认证账户读取。
  • PUT /account/password:verification(password / sms)、oldPassword 或 code、newPassword。新密码为 8–32 位可打印 ASCII,需含字母和数字,不允许空格。
  • PUT /account/phone:newPhone、currentCode、newCode;后端验证两组验证码及新号码占用情况。

资产与负债包含 creditLoanCount(信用贷款笔数)、totalDebtBalance(欠款总余额)、monthlyLoanPayment(贷款月还款金额)、creditCardCount(银行信用卡张数)、creditCardTotalLimit(总额度)、creditCardUsedLimit(已使用总额度)、house / car(有 / 无)。金额以元计,最多两位小数,数量为非负整数;保持原来的可跳过规则,填满八项后计为档案已完善。旧草稿的房车选项自动映射,新数字字段留空,不从旧存款区间或信用卡状态猜测金额;旧字段保留在草稿中以免丢失历史输入。

新闻与课程的数据定义位于 packages/content/services/content.uts,产品定义位于 packages/finance/services/finance.uts。产品列表与详情共用 ID;预留 GET /matches(items 数组)及 GET /products/:id(单个产品),字段见 FinanceProduct,其中 amount 为万元数值、rate 为年化百分比数值。申请入口目前仅引导准备资料,不向金融机构提交申请。

首页搜索进入内容分包的 search/search,支持全部、新闻、融资课堂筛选及对应详情跳转。搜索服务位于 packages/content/services/search.uts,当前匹配本地标题、简介、分类和正文;空格分隔的多个关键词需同时命中。预留 GET /content/search,参数为 keyword 与 type(all / news / lesson),返回 { items: ContentSearchResult[] },每项包含 id、type、title、summary、category、meta、image。后端接入时需同步接入新闻和课程详情的数据源,确保返回的 ID 可查询详情。

页面与分包

“帮助与反馈”从个人中心进入内容分包的 help/help,按账户使用、融资评估、资料与隐私分组展示可展开的问答,不跳转 AI 助手。数据与客服接入点位于 packages/content/services/help.uts;预留 GET /help/faqs 返回 { items: HelpQuestion[] }。联系客服当前只展示暂未开放提示,不发起客服会话或提交反馈。

pages/ 只保留 home/home.uvue,也是唯一主包页面。页面注册统一维护在 pages.json 的 pages 和 subPackages,分包内的 path 相对于 root。

目录 内容 页面数
pages/home 首页 1
packages/finance 融资入口、评估、确认、分析、报告、匹配、产品、助手、档案 9
packages/account 启动引导、登录、个人中心、修改资料、账户安全、修改密码、更换手机号、积分、消息 9
packages/content 搜索、帮助与反馈、新闻、文章、融资课堂、课程详情 6

当前各模块体积较小,优先保持完整业务链;普通内容统一一个包。新增功能先放入所属分包,再根据微信编译产物大小决定是否细分。单包以 2 MiB 为保守预算,需预留增长空间,最终体积以微信开发者工具为准。

2026-09-20 使用 HBuilderX 5.26 本地微信开发编译,按 packOptions.ignore 排除原始素材后统计:主包约 887 KiB,融资包 378 KiB,账户包 148 KiB,内容包 355 KiB。此为磁盘产物统计,不等同于开发者工具上传后的压缩体积。

  • 分包页面使用完整绝对路由 /packages/<模块>/<页面>/<页面>,包含路由比较和携带参数的跳转;主包首页仍为 /pages/home/home。
  • 微信按 subPackages 下载分包。Android、iOS 使用相同目录、页面注册和路由编译为应用,不将小程序按需下载机制等同于 App 热更新。
  • 保留现有自绘 BottomNav,新闻、消息、我的允许在分包中;不配置要求页面留在主包的原生 tabBar。底栏切换使用 reLaunch,详情使用 navigateTo / navigateBack。
  • 冷启动首页通过 services/launch.uts 只触发一次账户引导,之后按登录状态进入首页或登录;直接打开分包页面和正常返回首页不会重复触发引导。
  • components/ 与 services/ 只保留共享组件、布局、请求、会话和跨包草稿。主包或其他分包不得 import 某个分包的专属模块;分包间只通过路由与共享服务交互。
  • 仅某个分包使用的图片放在该包 static/;首页也使用的插图及通用图标保留在根 static/,避免分包资源被主包引用。

参考:uni-app x 页面与分包配置。