Skip to content

FF14Search — 综合查询工具

项目简介

FF14Search 是一个专为《最终幻想14》玩家打造的综合性游戏数据查询工具,基于 UniApp 开发,主要面向微信小程序和 QQ 小程序,同时支持 H5。

这个项目起初只是想在手机上查道具价格少折腾几步,后来功能越堆越多,从最基础的道具搜索一路长到了配装器和战绩查询,逐渐演变成了相对完整的游戏辅助工具。


核心功能

道具搜索与详情

支持中文模糊搜索和精确匹配,查询结果来自 Garland Tools 的中文数据库。道具详情页会展示:

  • 基础属性与稀有度
  • 获取途径(商店、成就奖励、副本掉落等)
  • 可装备职业与等级需求
  • 升级链(武器/防具强化路径)
  • 坐骑/鱼类等特殊道具信息

市价查询

对接 Universalis 开放 API,展示服务器实时市场挂单价、近期成交记录与价格趋势。用户可在个人设置中固定默认服务器,后续查询自动使用偏好服务器。

零式战绩

通过角色名 + 服务器查询玩家的零式副本进度与战绩数据,方便在组队前了解成员的打本经历。

配装器(Gearing)

这是迭代最多、也是最有意思的模块。从 ffxiv-gearing 移植了核心配装逻辑,在 UniApp 环境下重新实现了:

  • 全职业配装构建与属性计算
  • 魔晶石镶嵌收益计算(含溢出提示)
  • 食物 / 爆发药加成模拟
  • ShareCode 编解码(Base62 BigInt,v5 格式)
  • 一键分享 / 导入配装

配装数据初期纯本地存储,后来引入了后端服务,实现云端持久化和公开分享(见 配装广场后端设计)。


技术栈

选型
框架UniApp 3 + Vue 3.5
语言TypeScript
状态管理Pinia
UI 组件uni-ui + uv-ui
构建工具Vite 5
数据缓存UniApp Storage(7天 TTL)

架构概览

分包策略

小程序对主包体积有严格限制(2MB),功能越堆越多后必须拆分。目前按功能领域划分了以下分包:

分包主要内容说明
master道具详情页、升级链组件Garland 详细数据相关
universalis市价详情页、Universalis API 模块独立 Store 管理用户偏好
gearing配装器完整功能(4个页面)含计算逻辑、数据与 Pinia Store
utilities副本招募(Remote Party Finder)等工具周期性更新的副本数据

关于分包工程化的实践细节,可以看这篇文章:UniApp 分包设计实践

数据流

用户输入关键词

data-indexer(本地全文索引)

命中本地缓存? ── 是 ──→ 直接渲染
    ↓ 否
远程 API 请求(Garland / Universalis)

写入 Storage 缓存(7天 TTL)

渲染结果

游戏基础数据(道具列表、职业信息等)在首次启动时批量拉取并本地建立索引,后续搜索全在本地完成,无需频繁请求远端。

设计系统

v5 版本做了一次比较彻底的 UI 重构,引入了 --ff-* CSS 变量令牌体系,统一了深色 / 浅色主题下的颜色、间距和排版。详情见 为小程序搭一套设计令牌系统


数据来源

这两个数据源都是 FF14 社区的公益项目,质量高且更新及时,省去了自己维护数据的大量工作。