### 本项目是一个功能完善的在线资产拍卖系统,采用前后端分离架构,实现了完整的拍卖交易流程。
技术栈:
- 前端:Vue 2.6.14 + Element UI 2.15.14 + Vue Router 3.5.1 + Vuex 3.6.2 + Axios 1.7.9 + Swiper 9.4.1 + Moment.js 2.30.1
- 后端:Node.js + Express 4.17.1 + Sequelize 5.22.4 + JWT 9.0.2 + 七牛云存储 7.14.0
- 数据库:MySQL 5.7+
- 工具:PM2进程管理、Nodemon热更新、node-schedule定时任务
核心功能模块:
1. 用户系统:用户注册登录、个人资料管理、密码修改、角色权限管理(普通用户/管理员)
2. 资产管理:资产发布、资产列表、资产详情、分类浏览、首页推荐、资产审核(待审核/拒绝/通过)
3. 竞价系统:实时出价、竞价记录、出价历史查询、自动更新当前价格、最高价显示
4. 订单系统:购物车管理、订单生成、在线支付、订单状态管理(待支付/支付成功/已发货/已完成/已取消/有争议)、订单查询
5. 定时任务:自动检测拍卖结束时间,自动生成订单(有出价时)、自动更新资产状态(成交/流拍)
6. 管理员后台:用户管理、资产审核、订单管理、数据统计
前端特色功能:
- 响应式设计,适配多种设备
- Swiper轮播图,提升用户体验
- Element UI组件库,界面美观易用
- 路由权限控制,保护管理页面
- JWT Token自动刷新,保持登录状态
- 实时竞价价格更新
- 购物车批量管理
- 订单支付流程
后端技术亮点:
- RESTful API设计,前后端完全分离
- JWT身份认证,保障系统安全(有效期10天)
- 密码MD5+SALT加密存储
- 七牛云对象存储,支持图片上传和管理(5MB限制)
- Sequelize ORM,数据库操作便捷高效
- 定时任务调度(node-schedule),自动处理拍卖结束逻辑
- PM2进程管理,支持自动化部署
- 统一Result响应格式,优雅处理错误
- 支持本地文件上传和七牛云OSS两种存储方式
- Babel ES6+转译,代码现代化
数据库设计(5张核心表):
1. users表:用户信息(id, nickname, password, email, role, phone, register_time, last_login, avatar_url, is_deleted)
2. assets表:资产信息(id, title, asset_images, description, start_price, current_price, start_time, end_time, status, category, user_id等)
3. bids表:出价记录(id, asset_id, user_id, bid_amount, bid_time, remark)
4. orders表:订单信息(id, user_id, asset_id, order_status, payment_method, order_amount等)
5. cart表:购物车(id, user_id, asset_id, quantity, add_time, status)
资产状态流转:
- 0:待审核 → 1:审核拒绝 → 2:审核通过 → 3:流拍 / 4:成交
- 拍卖到期后自动判断:有出价生成订单并设为"成交",无出价则设为"流拍"
订单状态流转:
- 0:待支付 → 1:支付成功 → 2:已发货 → 3:已完成
- 或:0:待支付 → 4:已取消 / 5:有争议
前端页面结构(17个路由):
- 首页、资产详情、商品列表
- 登录、注册、联系我们
- 个人资料、修改密码
- 购物车、我的出价、我的产品
- 用户管理(管理员)、产品管理(管理员)、产品审核(管理员)
- 我的订单、支付页面、订单管理(管理员)
环境要求:
- Node.js 16.0.0+
- MySQL 5.7+
- npm 3.0.0+
- yarn(前端依赖管理)
安装步骤:
1. 克隆项目代码
2. 安装依赖:
- 前端:cd asset-auction-system && yarn install
- 后端:cd asset-auction-system-server && npm install
3. 配置数据库连接(src/db/dbConfig.js)
4. 初始化数据库表结构(已有5张表:users、assets、bids、orders、cart)
5. 配置七牛云存储(可选,用于图片上传)
6. 启动后端服务:cd asset-auction-system-server && npm start(端口2080)
或使用nodemon热更新:npm run nodemon-start
或使用PM2部署:pm2 start pm2.config.json
7. 启动前端服务:cd asset-auction-system && yarn serve(端口9800)
8. 访问系统,注册账号开始使用
测试账号:
- 普通用户:812190146@qq.com / 123456
- 管理员:root@qq.com / 666666
部署说明:
- 前端生产构建:yarn build(输出到dist目录)
- 后端支持一键部署:npm run deploy
- PM2配置文件:pm2.config.json(包含进程管理和日志配置)
- 支持 nodemon 热更新开发模式
适用场景:
- 资产拍卖平台
- 艺术品交易网站
- 珍藏品拍卖
- 二手商品拍卖
- 企业资产处置平台
- 在线竞价系统
- 拍卖类电商平台
项目优势:
1. 代码结构清晰,模块划分合理(MVC分层:models、router、service)
2. 完整的CRUD功能,前后端都有完善的错误处理
3. 真实的拍卖业务逻辑,包含定时任务自动处理
4. 支持文件上传和云存储(七牛云)
5. 权限控制完善(路由守卫 + JWT中间件)
6. 适合学习和二次开发

基于Vue2和Node.js开发的资产拍卖系统
项目简介
基于Vue2+Node.js+Express开发的全功能资产拍卖系统,包含完整的用户管理、资产管理、竞价系统、订单管理等功能模块,支持商品发布、实时竞价、购物车、在线支付等核心业务流程,适用于各类资产拍卖和商品交易平台。