# 成源仓库管理 **Repository Path**: ybsrun/cy-wms ## Basic Information - **Project Name**: 成源仓库管理 - **Description**: 成源仓库管理 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-15 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 成源仓库管理系统 基于 **Nuxt 4 + SQLite (better-sqlite3)** 的小型仓库管理系统,适合 10 人左右的小团队内部使用。 ## 功能 - **数据看板**:SKU 总数、库存总价值、低库存预警、今日出入库量、近 7 天出入库趋势、最近出入库记录 - **商品管理**:商品编码/名称/规格/分类/单位/参考价/库存预警线/库位,增删改查、关键词与分类筛选、停用保护 - **库存查询**:实时库存、库位、库存价值、低库存筛选 - **入库管理**:新建入库单(多明细、单价)、单据详情,自动更新库存并写入流水 - **出库管理**:新建出库单(多明细)、库存充足校验(不足则拒绝)、单据详情,自动扣减库存并写入流水 - **库存流水**:近 30 天所有出入库记录,按商品 / 类型筛选,全程可追溯 - **用户认证**:账号密码登录(scrypt 哈希)、会话 Cookie、管理员 / 仓管员两种角色 ## 技术栈 | 层 | 选型 | |---|---| | 前端框架 | Nuxt 4 (Vue 3) | | 服务端 | Nitro(Nuxt 内置) | | 数据库 | SQLite(better-sqlite3,WAL 模式) | | ORM | 无(直接使用预编译 SQL,简单透明) | ## 快速开始 ```bash npm install npm run dev # 开发模式,默认 http://localhost:3000 ``` 生产部署: ```bash npm run build npm start # 启动生产服务,默认端口 3000 # 指定端口:PORT=8080 npm start # 指定数据库位置:WMS_DB_PATH=/data/wms.db npm start ``` ## 默认账号 | 角色 | 用户名 | 密码 | 权限 | |---|---|---|---| | 管理员 | admin | admin123 | 全部功能 | | 仓管员 | operator | 123456 | 全部功能(预留角色扩展) | > 首次启动会自动创建数据库(`data/wms.db`)并写入默认账号和 5 条示例商品,请上线前修改默认密码。 ## 项目结构 ``` ├── app/ │ ├── assets/css/main.css # 全局样式 │ ├── composables/useAuth.ts # 认证状态管理 │ ├── layouts/default.vue # 主布局(侧边栏 + 顶栏) │ └── pages/ # 页面:登录、看板、商品、库存、入库、出库、流水 ├── server/ │ ├── utils/db.ts # SQLite 连接、建表、种子数据、单号生成 │ ├── utils/auth.ts # 密码哈希、会话管理、鉴权 │ └── api/ # REST API │ ├── auth/ # 登录 / 登出 / 当前用户 │ ├── products/ # 商品 CRUD │ ├── stock/ # 库存查询 │ ├── inbound/ # 入库单 │ ├── outbound/ # 出库单 │ ├── movements/ # 库存流水 │ └── dashboard/ # 看板统计 └── data/ # SQLite 数据库文件(自动生成,已 gitignore) ``` ## 数据库表 - `users` 用户、`sessions` 登录会话 - `products` 商品档案、`stock` 库存(商品 1:1) - `inbound_orders` / `inbound_items` 入库单及明细 - `outbound_orders` / `outbound_items` 出库单及明细 - `stock_movements` 库存流水(出入库的审计轨迹) 出入库均在**事务**中完成:订单、明细、库存增减、流水四者保持一致;库存不足时出库会被拒绝。 ## 备份 SQLite 是单文件数据库,直接复制 `data/wms.db` 即可完成备份。建议用计划任务每日备份: ```bash # 示例:每日凌晨 2 点备份(Linux crontab) 0 2 * * * cp /path/to/成源仓库管理/data/wms.db /backup/wms-$(date +\%Y\%m\%d).db ``` ## 后续可扩展 - 供应商 / 客户档案 - 采购价与销售价分离、成本核算 - 盘点功能(库存调整单) - 导出 Excel / 打印单据 - 按角色细分权限(如仓管员只能看不能删)