依旧金几钱啊

#coding

对于广府人来说,结婚买金是绕不过去的一道坎。三金五金的,长辈们念叨了多少年,终于轮到我了。金饰这东西,明面上是饰物,实际上是一笔不小的开销——所以哪怕再嫌麻烦,也得认真比价。

这次要买金,我盘算着去香港深圳水贝各看一圈。香港金行卷码,水贝货多价实,两边各有各的香。但真正到了比价这一步,才发现事情没那么简单:

  • 货币不一样:香港用港币,内地用人民币,中间隔着实时汇率。
  • 计重单位不一样:香港金行用的是司马两,1 两 = 37.429 克;内地水贝玩的是。两边的"金价"根本不是一个坐标系。

于是问题来了:香港报的"HK$ 每两",跟水贝报的"¥ 每克",到底哪个便宜?每次掏出手机按计算器,汇率、单位、工费一堆变量,按得头大,还容易算错。

所以干脆写了个小工具:BuyGold,专门干这个事。MIT 开源,也可以在线直接用


项目介绍

BuyGold 是一个香港金饰比价计算器,核心就一句话——把"港币/克/司马两/人民币"这些乱七八糟的坐标系,统一到一张表里,让你一眼看出哪家便宜。

名字是"买金结婚用",标题那句 "依旧金几钱啊" 是句粤语,大概就是"今天金价几多钱"的意思,算是给这个项目点个题。


核心功能

1. 实时汇率 + 手动覆盖

自动拉取 HKD ↔ CNY 实时汇率,双向显示。支持手动覆盖——实际金行给的牌价往往跟网上汇率有出入,按实际填进去更准。

汇率来源:主源 open.er-api.com,备源 frankfurter.app,缓存 5 分钟。标注了仅供参,实际以银行牌价为准。

2. 四个联动的单价

¥/克、HK/克、¥/两、HK/克、¥/两、HK/两,四个单价框任填一个,其余自动换算。这是整个工具的灵魂——你只需要把金行报价输进任意一个框,剩下的它自己算。

3. 克 ↔ 司马两换算

输入克数自动得出两数,反过来也行。换算系数可自定义——默认香港金行的司马两 1 两 = 37.429 克,注意这跟内地一斤 500 克、1 两 = 50 克的市场两不是一回事,别搞混了。

4. 工费计算

香港买金最容易被"工费"绕晕,这里支持四种方式:

计费方式 说明
按克 每克多少工费
按两 每两多少工费
按件 一口价工费
按比例 金价的百分比(佣金)

货币单位 HKD / CNY 可选。

5. 价格明细

金价小计 + 工费小计 = 总价,同时显示人民币和港币两栏。多行比较时,最便宜的一行自动标绿,谁是显眼包一目了然。

6. 本地持久化

所有录入存浏览器 localStorage,刷新不丢。桌面端表格视图 / 移动端卡片视图自动切换,去金铺现场拿手机也能用。


技术架构

层级 技术选型
框架 Next.js 14 (App Router)
语言 TypeScript
样式 Tailwind CSS

纯前端应用,无后端无数据库,汇率走公共 API,数据全在浏览器本地。部署到 Vercel 静态托管即用——符合"工具就该轻量、打开就用"的定位。


快速开始

git clone https://github.com/pzweuj/BuyGold.git
cd BuyGold
npm install
npm run dev      # 开发模式 → http://localhost:3000

或者直接上在线版本,不用装任何东西。


个人评价

这个工具不大,但解决了我一个很具体的痛点:跨币种、跨单位的金价比价。以前是掏出手机怼计算器,现在是把报价往表里一塞,谁便宜谁贵呼之欲出。

技术上没有花活,就是 Next.js + Tailwind 的一个小单页,但"小而够用"正是它最舒服的状态——这也是我自己写工具的一贯取舍:不为炫技加复杂度,只为把那一件事做顺。

希望它能帮到同样在备婚、准备去香港水贝比金价的街坊。也提前祝自己买到心仪的金器,嘿嘿。