Files
ReelShortWeb/README.md
T
Vicky 44c2c46a68 chore(web): 收口前几轮后台改动(品牌 / 媒资上传 / 轮播图 / 类型管理 / 操作日志 / App 用户)
为什么:这些改动在前几轮就已完成并在 :3005 验证过,但一直留在工作区没有入库。
下一步 3-4 的四个页面依赖其中的公共样式入口(src/styles/business/index.css)与
api/admin 的公共类型(PageResult 等),如果不先收口,新页面的提交就会夹带旧改动,
既说不清 diff 边界,也让 index.css 这类多轮共用的文件长期处于半提交状态。

本提交只做归档,不改行为:
- 品牌与接口基址改成 FruitShorts / 短剧服务(.env.*、README、vite 代理)
- 去掉前端 mock 数据目录(src/data、src/permissions、stores/auth),改为走真实接口
- 新增 api/admin 下的接口封装与 src/utils/uploader.ts(媒资分片直传)
- 新增/改造:轮播图管理、类型管理、操作日志、App 用户管理、后台布局与公共样式
2026-10-15 13:28:01 +08:00

74 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FruitShorts 内容管理后台
短剧内容管理后台。界面与工程结构基于 [vue-element-plus-admin](https://element-plus-admin-doc.cn/),在其上接入了短剧、剧集、App 用户、角色、菜单和管理员页面,数据全部来自 Java 后端服务。
界面名称由 `VITE_APP_TITLE` 控制(`.env.base` 及 dev / test / pro 三个环境文件),当前值为 `FruitShorts`,同时作用于浏览器标题、侧边栏品牌与登录页。
后端工程在同级目录 `../FruitServer`,接口与启动方式见 [../FruitServer/README.md](../FruitServer/README.md)。
## 环境
- Node.js 18 或更高版本
- pnpm 8 或更高版本
- 已启动的后端服务(默认 `http://127.0.0.1:8080`)
## 开始
先启动后端(见 `../FruitServer/README.md`),再启动前端:
```sh
pnpm install
pnpm dev
```
开发服务地址是 http://localhost:3005 。`vite.config.mts` 已把 `/admin` 代理到 `http://127.0.0.1:8080`、`/files` 代理到后端本地媒资目录,因此前端不需要额外配置跨域。
演示账号(密码均为 `admin123`,由后端 `sql/data.sql` 初始化):
| 账号 | 角色 | 说明 |
| -------------------- | ---------- | ------------------------------ |
| `admin` | 超级管理员 | 拥有全部菜单与操作权限 |
| `content.editor01` | 内容运营 | 只能看到内容管理,且无审核权限 |
| `content.reviewer01` | 审核专员 | 可审核发布 |
| `data.analyst01` | 数据分析师 | 只读内容数据 |
用不同账号登录可以直观看到菜单与按钮随权限变化。
## 命令
| 命令 | 作用 |
| ----------------- | ------------ |
| `pnpm dev` | 启动开发服务 |
| `pnpm build:dev` | 构建开发包 |
| `pnpm build:test` | 构建测试包 |
| `pnpm build:pro` | 构建生产包 |
| `pnpm serve:pro` | 预览生产包 |
## 页面
登录后菜单包括:
- 工作台:短剧总数、累计播放量、待审核数、已上线数与最近更新
- 内容管理:短剧管理(含封面分片上传、提交审核/通过/驳回/上线/下线)、剧集管理(含视频分片上传、自动读取时长、播放顺序调整)、轮播图管理(含图片上传、跳转配置、排序与上下线)、类型管理(短剧类型的增删改)
- 用户管理 → App 用户:按 uid / 昵称 / 手机号 / 邮箱检索 C 端用户,查看资料、观看流水与处置记录,支持封禁 / 限制 / 解封(处置后该用户全部会话立即失效)
- 后台管理:角色权限配置、管理员用户列表、菜单管理、角色分类、系统设置
- 后台管理 → 操作日志:查看后台写操作的请求与响应、操作人、耗时
左侧菜单由后端 `GET /admin/auth/menus` 下发,属于服务端动态路由;在菜单管理页改动菜单后,重新登录即可看到新的菜单结构。
## 目录
框架原有代码保持 vue-element-plus-admin 的结构。本项目新增的业务代码:
- `src/api/admin/`:管理端接口封装(短剧、剧集、角色、菜单、管理员、配置)
- `src/views/common/DashboardView.vue`
- `src/views/contentManagement/`
- `src/views/permission/`、`src/views/permission/composables/`
- `src/views/userManagement/`、`src/views/userManagement/composables/`
- `src/views/systemManagement/`
- `src/stores/rbac.js`:基于登录下发权限码的按钮级权限判断
- `src/utils/status.js`、`src/utils/format.js`
- `src/styles/business/`
路由写在 `src/router/index.ts` 的 `asyncRouterMap`(服务端动态路由不可用时的兜底)。