Drsakura 46a963e23d feat(header): 顶栏时钟可切时区 + 汇率计算器;工作台移除运行日期
1) 工作台
   - 删掉欢迎区右侧的「运行日期」卡片,含 luxury.css 里对应样式与窄屏残留

2) 顶栏时钟(仿小满 CRM)
   - 新增 TimeZoneClock:时钟图标 +「东八区:北京,上海 ⌄」+ 大号时间(20px 等宽,
     tabular-nums 保证秒位不跳动),下方小字带日期
   - 点整块展开时区列表,23 个时区由西向东排列,每行右侧实时显示该地时间与 UTC 偏移
   - 时区用 IANA 名(Europe/London 等)而非写死偏移,夏令时自动正确;
     打开列表会自动滚到当前选中项;选择记 localStorage('happy.clockZone')
   - 新增 src/timezones.js 集中时区表与格式化工具

3) 顶栏汇率计算器
   - 新增 FxCalculator:计算器图标点开浮层,默认 USD→CNY
   - 左右两侧各带可搜索的币种下拉(币种来自接口返回的全部币种,常用币种排前),
     中间一键互换;任一框输入另一框实时反算;显示主汇率与倒数汇率
   - 换币种时锁住所改那一侧的数字(与 Google 换算一致)
   - 金额按数量级自动取精度(USD→VND 与 CNY→USD 都不出现一堆无意义的零)
   - 新增 src/currencies.js(币种中文名 + 排序 + 交叉汇率与格式化)

4) 后端汇率接口
   - 新增 /api/fx/rates:以 USD 为基准返回全量汇率,前端据此算任意币种交叉汇率
   - 主源 open.er-api.com(166 币种),备源 frankfurter.app(欧洲央行);
     内存 + 落盘缓存 1 小时,并发请求只发一次网络
   - 网络不可用时依次回退「上次成功的数据」→「内置离线汇率表」,
     并在响应里用 source/warning 标注,前端明确提示数据来源

5) 顶栏排布
   - 时钟变宽后中等屏会溢出,新增 ≤1440px 断点收紧留白/品牌区/搜索框;
     搜索框允许收缩;1280/1100/980/700 各档实测无横向溢出
   - 移动端(≤680px)汇率浮层改用固定定位铺满两侧,避免左侧被裁

6) .gitignore
   - backend/data/ 整体忽略(trade.db、fx-cache.json 等全是运行时产物)
2026-09-10 17:44:36 +08:00

外贸供应链管理系统

一个专为外贸企业设计的供应链与客户管理系统。

功能模块

业务管理

  • 工作台 - 数据汇总、日程提醒、节日显示
  • 供应商价格管理 - 继承 SKU Manager 完整功能
  • 产品管理 - SKU/SPU 两层管理、包装参数、阶梯价格
  • PI合同管理 - 合同解析、价格历史追踪

客户管理

  • 客户管理 - 客户信息、联系人、跟进记录
  • 新客开发 - 自动获客、AI 智能分析
  • 商机管理 - 销售管道、成交预测
  • 订单管理 - 订单跟踪、备注跟进

技术栈

后端

  • Node.js + Express
  • SQLite + better-sqlite3-multiple-ciphers
  • 加密存储(SQLCipher)

前端

  • React 18
  • React Router
  • Vite
  • 原生 CSS

快速开始

安装依赖

# 后端
cd backend
npm install

# 前端
cd frontend
npm install

启动开发环境

# 启动后端服务器(终端1)
cd backend
npm start

# 启动前端开发服务器(终端2)
cd frontend
npm run dev

访问系统

默认账号

  • 用户名: admin
  • 密码: admin123

⚠️ 首次登录后请立即修改密码!

项目结构

trade-management-system/
├── backend/              # 后端
│   ├── db/              # 数据库
│   │   ├── schema.sql   # 数据库结构
│   │   └── db.js        # 数据库连接
│   ├── lib/             # 工具库
│   ├── routes/          # API 路由
│   ├── data/            # 数据存储目录
│   ├── uploads/         # 上传文件
│   ├── server.js        # 服务器入口
│   └── package.json
├── frontend/            # 前端
│   ├── src/
│   │   ├── components/  # 组件
│   │   ├── pages/       # 页面
│   │   ├── services/    # API 服务
│   │   ├── styles/      # 样式
│   │   ├── App.jsx      # 主应用
│   │   └── main.jsx     # 入口文件
│   ├── index.html
│   ├── vite.config.js
│   └── package.json
├── docs/                # 文档
└── README.md

数据库

使用 SQLite + SQLCipher 加密存储:

  • 数据库文件: backend/data/trade.db
  • 自动初始化表结构
  • 支持备份和迁移

开发计划

Phase 1:基础框架 ✅

  • 项目结构搭建
  • 数据库设计
  • 前后端基础框架
  • 工作台页面

Phase 2:供应商与产品管理

  • 迁移 SKU Manager 功能
  • 阶梯价格管理
  • 合同解析引擎
  • 产品图片管理

Phase 3:客户 CRM

  • 客户详细页面
  • 联系人管理
  • 商机管道视图
  • 跟进活动时间线

Phase 4:订单管理

  • 订单创建和编辑
  • 订单状态流转
  • 订单备注系统
  • PDF 导出

Phase 5:自动获客

  • 集成 GoodJob 获客引擎
  • 数据源适配
  • AI 智能分析
  • 线索转化

许可证

私有项目

作者

Wayne

S
Description
No description provided
Readme AGPL-3.0
656 KiB
Languages
JavaScript 83.5%
CSS 16.3%