下载工作台
前端框架精通

精通毕业项目:商城后台全栈交付

试读上半部分 · 解锁后可读全文

第 16 章 · 精通毕业项目:商城后台全栈交付

本章目标:在 ch01~ch15 基础上,独立交付 示例商户后台 毕业作品(Vue 或 React 二选一);覆盖商品管理、订单列表、用户登录、权限菜单;技术栈含 TypeScript + UI 库 + Pinia/Zustand + axios + Vitest + Docker;按 5 天计划 实施并通过 100 分验收;完成答辩与简历项目描述。

学时建议:5 天 × 6~8 小时(合计 30~40 小时)

前置:完成本模块 ch01~ch15;建议同步复习 frontend-web ch16 业务规格。


16.1 项目背景与产品边界

贤紫优选商城 C 端面向消费者;商户后台供入驻商家管理商品、处理订单、查看经营数据。本毕业项目实现后台 MVP,与真实 OpenAPI 对齐或 MSW Mock 等价行为。

┌─────────────────────────────────────────┐
│           贤紫商户后台(本毕业项目)        │
├─────────┬─────────┬─────────┬───────────┤
│  登录   │ 权限菜单 │ 商品管理 │  订单列表  │
└─────────┴─────────┴─────────┴───────────┘
                    │
                    ▼
         API(ch13)/ MSW(联调前)
模块MVP 范围不做(加分可扩展)
登录账号密码、记住会话、退出扫码登录、MFA
权限菜单按角色显示菜单、路由守卫按钮级权限矩阵
商品管理列表、搜索、上架表单(ch12)批量导入、SKU 矩阵
订单列表分页、状态筛选、详情抽屉发货、退款流程
行业案例 · 贤紫优选商城:真实商户后台日活商家约 3200+;毕业项目规格对标 2024 Q4 商户端 MVP,评审通过作品可写入学习档案并作为 L2 前端方向 答辩素材。

16.2 技术栈清单(必选)

层级Vue 路线React 路线
语言TypeScriptTypeScript
框架Vue 3 + script setupReact 18
路由Vue Router 4React Router 6
状态PiniaZustand
UIElement PlusAnt Design 5
表单Element rules 或 VeeValidate + ZodReact Hook Form + Zod
HTTPaxios 封装(ch13)同左
测试Vitest + Vue Test UtilsVitest + RTL
构建Vite 5Vite 5
部署Docker + Nginx(ch15)同左
# Vue 脚手架参考
npm create vite@latest xianzi-admin-vue -- --template vue-ts
cd xianzi-admin-vue
npm install vue-router pinia element-plus axios zod
npm install -D vitest @vue/test-utils jsdom @vitest/coverage-v8

# React 脚手架参考
npm create vite@latest xianzi-admin-react -- --template react-ts
npm install react-router-dom zustand antd axios zod react-hook-form @hookform/resolvers
npm install -D vitest @testing-library/react @testing-library/user-event jsdom

统一要求strict: true;ESLint + Prettier;禁止 any 泛滥(评审扣分项)。


16.3 推荐目录结构

16.3.1 Vue 版

xianzi-admin-vue/
├── docker/
│   ├── nginx.conf
│   └── entrypoint.sh
├── public/
├── src/
│   ├── api/                 # ch13:auth, product, order
│   ├── assets/
│   ├── components/          # 通用:PageHeader, StatusTag
│   ├── composables/
│   ├── config/env.ts
│   ├── features/
│   │   ├── auth/            # LoginView
│   │   ├── product/         # List, Wizard(ch12)
│   │   └── order/           # OrderList, OrderDetail
│   ├── layouts/
│   │   └── AdminLayout.vue  # 侧栏 + 顶栏
│   ├── mocks/               # MSW handlers
│   ├── router/
│   │   ├── index.ts
│   │   └── guards.ts        # 登录与权限
│   ├── schemas/             # Zod 共享
│   ├── stores/
│   │   ├── auth.ts
│   │   └── app.ts
│   ├── styles/
│   ├── test/
│   ├── types/
│   ├── utils/
│   ├── App.vue
│   └── main.ts
├── Dockerfile
├── docker-compose.yml
├── .github/workflows/deploy.yml
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md

16.3.2 React 版

features//views 改为 pages/features//*.tsxstores/ 用 Zustand;layouts/AdminLayout.tsx;其余与 Vue 同构。

目录职责
features/按业务域垂直切片
api/无 UI 的 HTTP 函数
schemas/Zod,表单与测试共用
router/guards未登录 → /login;无权限 → 403

16.4 功能规格详解

16.4.1 用户登录

规格
页面/login,已登录访问则重定向 /
字段账号、密码;前端校验非空
成功存 Token(ch13),跳转首页
失败展示 ApiError.message
退出清 Token,跳登录

测试:ch14 登录表单 3 场景(校验、成功、错误)。

16.4.2 权限菜单

角色可见菜单
admin仪表盘、商品管理、订单管理、设置
operator商品管理、订单管理
viewer订单管理(只读)
  • 侧栏根据 user.role 过滤 menuConfig
  • 路由 meta.roles: string[]beforeEach 校验
  • 直接输入 URL 无权限 → 403 页
// router/meta 示例
{
  path: '/products',
  component: ProductList,
  meta: { roles: ['admin', 'operator'], title: '商品管理' },
}

16.4.3 商品管理

功能说明
列表表格:名称、SKU、价格、状态、操作
搜索按名称/SKU 关键词
新建跳转 /products/new 四步向导(ch12)
编辑/products/:id/edit(可简化为同向导带 id)
状态上架/下架切换(Mock PATCH)

16.4.4 订单列表

功能说明
列表订单号、状态、金额、下单时间
筛选状态下拉:全部/待付款/已支付/已发货/已完成
分页page、pageSize,与 ch13 API 一致
详情抽屉或侧滑:商品明细、收货地址

16.5 五天实施计划

Day 1          Day 2          Day 3          Day 4          Day 5
工程初始化      登录+布局       商品模块        订单+权限       测试+部署+文档
│              │              │              │              │
├─ Vite+TS     ├─ Login       ├─ List        ├─ OrderList   ├─ Vitest 补全
├─ Router      ├─ axios       ├─ Wizard      ├─ 路由守卫    ├─ Dockerfile
├─ UI 库       ├─ MSW         ├─ Zod schema  ├─ 403 页      ├─ CI workflow
└─ 目录骨架    └─ AdminLayout └─ Pinia草稿   └─ 联调真实API └─ README+答辩稿
交付物自检
D1仓库可 dev,空布局跑通npm run dev 无报错
D2登录进后台,侧栏占位Mock 登录成功
D3商品列表 + 上架向导提交ch12 四步完成
D4订单列表筛选分页;角色菜单换角色菜单变化
D5测试覆盖率达标;Docker 可访问100 分表自评 ≥ 80

每日建议节奏:上午实现核心路径,下午补测试与文档,晚间 code review 自查清单。


16.6 100 分验收表

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。