46a963e23da0afcb8f633df28e92c41080be6f6b
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 等全是运行时产物)
外贸供应链管理系统
一个专为外贸企业设计的供应链与客户管理系统。
功能模块
业务管理
- 工作台 - 数据汇总、日程提醒、节日显示
- 供应商价格管理 - 继承 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
访问系统
- 前端开发地址: http://127.0.0.1:5300
- 后端 API 地址: http://127.0.0.1:4300
默认账号
- 用户名:
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
Languages
JavaScript
83.5%
CSS
16.3%