snack-mall/admin-snack/README.md

4.4 KiB
Raw Blame History

Admin Snack — 零食商城管理后台

基于 Vue 3 + Vite 6 + TypeScript 5 + Element Plus 的现代化电商管理后台。

技术栈

类别 技术
框架 Vue 3.5 (Composition API + <script setup>)
语言 TypeScript 5
构建 Vite 6
路由 Vue Router 4
状态 Pinia 2 + 持久化
UI 库 Element Plus 2.9
工具类 UnoCSS辅助
图表 ECharts 5 + vue-echarts
HTTP Axios
工具 dayjs、lodash-es、mitt、nprogress、VueUse
代码规范 ESLint 9 + Prettier 3
Node 要求 ≥ 20

快速开始

# 1. 安装依赖
npm install

# 2. 启动开发服务器
npm run dev
# 访问 http://localhost:5173

# 3. 生产构建
npm run build:prod

# 4. 类型检查
npm run type-check

# 5. 代码格式化
npm run format

默认账号

用户名admin
密  码123456

目录结构

admin-snack/
├── public/                      # 不经 vite 处理的静态资源
│   └── favicon.svg
├── src/
│   ├── api/                     # 接口请求层(按业务模块划分)
│   │   ├── auth.ts
│   │   ├── dashboard.ts
│   │   ├── product.ts
│   │   ├── order.ts
│   │   └── ...
│   ├── assets/                  # 静态资源
│   ├── components/              # 公共组件
│   │   ├── common/
│   │   └── business/
│   ├── hooks/                   # 组合式函数
│   ├── layouts/                 # 布局
│   │   ├── BasicLayout.vue      # 主框架(侧边栏+顶栏+内容区)
│   │   └── components/
│   │       ├── SideMenu.vue
│   │       └── NavBreadcrumb.vue
│   ├── permission.ts            # 路由守卫
│   ├── router/                  # 路由
│   │   ├── index.ts             # 基础路由
│   │   └── async-routes.ts      # 业务路由(按权限动态挂载)
│   ├── stores/                  # Pinia
│   │   ├── index.ts
│   │   └── modules/
│   │       ├── user.ts          # 用户/管理员
│   │       └── app.ts           # 应用全局
│   ├── styles/                  # 全局样式
│   │   ├── variables.scss       # 设计系统令牌
│   │   ├── reset.scss
│   │   ├── element.scss         # Element Plus 主题覆盖
│   │   ├── transitions.scss
│   │   └── index.scss
│   ├── types/                   # TS 类型
│   │   ├── api.ts
│   │   └── auth.ts
│   ├── utils/                   # 工具
│   │   ├── request.ts           # axios 封装
│   │   ├── date.ts              # dayjs 封装
│   │   ├── dict.ts              # 业务字典
│   │   └── bus.ts               # mitt 事件总线
│   ├── views/                   # 页面
│   │   ├── login/index.vue
│   │   ├── dashboard/index.vue
│   │   ├── product/
│   │   ├── order/
│   │   ├── user/
│   │   ├── coupon/
│   │   ├── seckill/
│   │   ├── notice/
│   │   ├── chat/
│   │   └── error/404.vue
│   ├── App.vue
│   └── main.ts
├── .env.development             # 开发环境变量
├── .env.test                    # 测试环境变量
├── .env.production              # 生产环境变量
├── eslint.config.js
├── .prettierrc.json
├── index.html
├── package.json
├── tsconfig.json
├── tsconfig.node.json
├── uno.config.ts
└── vite.config.ts

设计系统

风格 Minimalism · Data-Dense Dashboard
主色 #1E40AF(深蓝)/ #3B82F6(亮蓝)
辅色 #60A5FA
状态色 success #10B981 / warning #F59E0B / danger #EF4444
字体 系统字体栈PingFang SC / Microsoft YaHei
圆角 卡片 10px、按钮 6px、输入框 10px
阴影 三档sm / md / lg
背景 页面 #F8FAFC、卡片 #FFFFFF

后端联调

.env.development 中配置:

VITE_API_BASE_URL=http://localhost:8080

vite.config.ts 已配置 /api/uploads 路径代理到后端 server-snack 项目。

浏览器支持

现代浏览器 + ES2020Chrome 90+, Edge 90+, Firefox 90+, Safari 14+