# xshop **Repository Path**: belovedLYC/xshop ## Basic Information - **Project Name**: xshop - **Description**: 基于v3+ts的前后端分离轻量在线购物商城 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: http://1.12.229.67:3000 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-11 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🛒 在线购物商城

基于 Vue 3 + TypeScript + Vite + Element Plus + Pinia 构建的现代化在线购物商城全栈前端项目

包含用户端(C端)和管理后台(B端)双端系统

## ✨ 特性 - 🚀 **最新技术栈**:Vue 3.3+、TypeScript 5.3+、Vite 7+、Element Plus 2.4+、Pinia 2.1+ - 🏪 **双端架构**:前台购物商城 + 后台管理系统,独立部署也可合并运行 - 💬 **实时通信**:WebSocket 实现客服聊天、消息推送、订单实时通知 - 🔐 **权限管理**:基于角色的菜单权限、按钮权限控制 - 📊 **数据可视化**:ECharts 图表展示销售数据、用户统计 - 🎨 **主题定制**:支持暗色/亮色模式切换、主题色自定义 - 📱 **响应式设计**:适配桌面端、平板端 - 🧩 **组件自动导入**:自动导入 Vue、VueRouter、Pinia、Element Plus 等常用 API - 🎯 **TypeScript**:完整的类型定义,提供更好的开发体验 - 🌍 **多环境支持**:开发、测试、生产环境配置 ## 📦 技术栈 | 类别 | 技术 | | ---------------- | -------------------------- | | **框架** | Vue 3.3+ (Composition API) | | **语言** | TypeScript 5.3+ | | **构建工具** | Vite 7+ | | **状态管理** | Pinia 2.1+ | | **路由** | Vue Router 4.2+ | | **UI 框架** | Element Plus 2.4+ | | **CSS 预处理器** | Sass/SCSS | | **HTTP 客户端** | Axios 1.6+ | | **实时通信** | WebSocket (原生 API) | | **图表** | ECharts | | **工具库** | @vueuse/core, dayjs | ## 📁 项目结构 ``` x-online-shopping-mall/ ├── 📁 src/ # 前台 - 用户端(C端) │ ├── api/ # API 接口封装 │ ├── assets/ # 静态资源(图片、样式) │ ├── components/ # 公共组件 │ ├── constants/ # 常量定义 │ ├── directives/ # 自定义指令 │ ├── router/ # 路由配置 │ ├── store/ # Pinia 状态管理 │ │ ├── user.ts # 用户状态 │ │ ├── chat.ts # 聊天/WebSocket 状态 │ │ └── cart.ts # 购物车状态 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ │ ├── websocket.ts # WebSocket 封装 │ │ └── format.ts # 日期/时间格式化 │ ├── views/ # 页面视图 │ │ ├── home/ # 首页 │ │ ├── product/ # 商品详情 │ │ ├── cart/ # 购物车 │ │ ├── order/ # 订单 │ │ ├── user/ # 用户中心 │ │ └── chat/ # 客服聊天 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 │ ├── 📁 admin/src/ # 后台 - 管理端(B端) │ ├── api/ # API 接口封装 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ │ ├── ProTable/ # 高级表格组件 │ │ └── Upload/ # 图片上传组件 │ ├── layouts/ # 布局组件 │ │ ├── components/ # 布局子组件 │ │ │ └── Header/ # 顶部导航 │ │ │ └── components/ │ │ │ └── Message.vue # 消息通知组件 │ ├── routers/ # 路由配置 │ ├── stores/ # Pinia 状态管理 │ │ └── modules/ │ │ ├── message.ts # 消息/WebSocket 状态 │ │ └── auth.ts # 认证状态 │ ├── utils/ # 工具函数 │ │ ├── websocket.ts # WebSocket 封装 │ │ └── format.ts # 日期/时间格式化 │ ├── views/ # 页面视图 │ │ ├── dashboard/ # 数据看板 │ │ ├── dataScreen/ # 数据大屏 │ │ ├── product/ # 商品管理 │ │ ├── order/ # 订单管理 │ │ ├── user/ # 用户管理 │ │ ├── message/ # 消息管理 │ │ │ └── chat/ # 客服聊天 │ │ └── marketing/ # 营销管理 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 │ ├── 📁 .vscode/ # VSCode 配置 ├── 📁 vite/ # Vite 插件配置 ├── .env # 环境变量 ├── .env.development # 开发环境变量 ├── .env.production # 生产环境变量 ├── .env.test # 测试环境变量 ├── vite.config.ts # Vite 配置 ├── tsconfig.json # TypeScript 配置 ├── package.json # 项目依赖 └── README.md # 项目文档 ``` ## 🚀 快速开始 ### 环境要求 - Node.js >= 18.0.0 - npm >= 9.0.0 或 pnpm >= 8.0.0 ### 安装依赖 ```bash npm install # 或 pnpm install ``` ### 开发环境 ```bash # 启动前台(用户端)- 端口 3000 npm run dev # 访问前台:http://localhost:3000 # 访问后台:http://localhost:3000/admin ``` ### 构建 ```bash # 测试环境构建 npm run build:test # 生产环境构建 npm run build:prod # 预览构建结果 npm run preview ``` ### 代码规范 ```bash # ESLint 检查 npm run lint # Prettier 格式化 npm run format # Stylelint 样式检查 npm run lint:stylelint # TypeScript 类型检查 npm run type-check ``` ## 🌍 环境变量 项目支持多环境配置,通过不同的 `.env` 文件管理: | 文件 | 说明 | | ------------------ | ------------ | | `.env` | 公共环境变量 | | `.env.development` | 开发环境 | | `.env.test` | 测试环境 | | `.env.production` | 生产环境 | ### 主要环境变量 ```bash # 应用标题 VITE_APP_TITLE=在线购物商城 # 端口号 VITE_PORT=3000 # API 基础路径 VITE_API_BASE_URL=/api # API 目标地址 VITE_API_TARGET_URL=http://localhost:8080 # WebSocket 地址 VITE_WS_URL=ws://localhost:8080 # 是否删除 console VITE_DROP_CONSOLE=false # 是否开启 Gzip 压缩 VITE_BUILD_GZIP=false ``` ## 📝 Git 提交规范 项目使用 Commitlint 规范 Git 提交信息,格式如下: ``` : ``` **Type 类型:** | 类型 | 说明 | | ---------- | -------------------------------- | | `feat` | 新功能 | | `fix` | 修复 bug | | `docs` | 文档更新 | | `style` | 代码格式(不影响代码运行的变动) | | `refactor` | 重构 | | `perf` | 性能优化 | | `test` | 增加测试 | | `chore` | 构建过程或辅助工具的变动 | | `revert` | 回退 | | `build` | 打包 | **示例:** ```bash git commit -m "feat: 添加用户登录功能" git commit -m "fix: 修复购物车数量显示错误" git commit -m "refactor: 优化商品列表查询性能" ``` ## 🛠️ 核心功能模块 ### 前台(C端) | 模块 | 功能 | | ------------ | ---------------------------------------- | | **首页** | 商品分类、轮播图、热销商品、新品推荐 | | **商品** | 商品列表、商品详情、规格选择、商品评价 | | **购物车** | 添加商品、数量修改、批量结算 | | **订单** | 下单、支付、订单列表、订单详情、物流跟踪 | | **用户中心** | 个人信息、地址管理、我的订单、我的收藏 | | **客服聊天** | WebSocket 实时客服对话 | ### 后台(B端) | 模块 | 功能 | | ------------ | ---------------------------- | | **数据中心** | 数据看板、数据大屏 | | **商品管理** | 商品列表、商品分类、SKU 管理 | | **订单管理** | 订单列表、退款管理 | | **用户管理** | 用户列表、会员等级、用户详情 | | **营销管理** | 优惠券管理、轮播图管理 | | **消息管理** | 客服会话、工单列表、公告管理 | | **系统设置** | 主题设置、布局配置 | ## 💬 WebSocket 实时通信 项目使用原生 WebSocket 实现实时通信功能: - **前台**:用户与客服实时对话 - **后台**:全局消息通知、实时推送新消息提醒 WebSocket 封装在 `src/utils/websocket.ts` 和 `admin/src/utils/websocket.ts`,支持: - 自动重连(指数退避算法) - 心跳保活 - 连接状态监听 - 断线恢复 ## 💡 VSCode 推荐插件 项目已配置推荐插件列表(`.vscode/extensions.json`): - Vue Language Features (Volar) - TypeScript Vue Plugin (Volar) - ESLint - Prettier - Stylelint - EditorConfig ## 📄 许可证 [MIT](LICENSE) --- ⭐ 如果这个项目对你有帮助,请给它一个星标!