霖雨寺
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
# 前端模块说明
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Vue 3
|
||||
- Vite
|
||||
- vue-router
|
||||
- Ant Design Vue
|
||||
- VueQuill
|
||||
|
||||
## 模块边界
|
||||
|
||||
- `src/main.ts`:Vue 应用入口,注册路由和 Ant Design Vue。
|
||||
- `src/config/app.ts`:前端应用配置,应用名默认“自在福田”,支持 `VITE_APP_NAME` 覆盖。
|
||||
- `src/router/index.ts`:路由表,按后端功能模块划分。
|
||||
- `src/layouts/AdminLayout.vue`:后台主布局。
|
||||
- `src/views/login/LoginPage.vue`:登录页,包含用户名、密码、验证码和友好错误提示。
|
||||
- `src/views/temples/TempleManagement.vue`:寺院管理页。
|
||||
- `src/views/products/ProductManagement.vue`:商品管理列表页,按当前寺院隔离。
|
||||
- `src/views/products/ProductDetail.vue`:商品新建和编辑页,按当前寺院隔离。
|
||||
- `src/views/orders/OrderManagement.vue`:订单管理页,按当前寺院隔离。
|
||||
- `src/views/rituals/RitualManagement.vue`:法事管理页,按当前寺院隔离。
|
||||
- `src/views/users/UserManagement.vue`:用户管理页。
|
||||
- `src/views/todos/TodoManagement.vue`:Todo 模块占位页。
|
||||
- `src/api/http.ts`:统一请求封装。
|
||||
- `src/api/auth.ts`:登录认证、验证码、当前用户和退出登录接口封装。
|
||||
- `src/api/users.ts`:用户接口封装。
|
||||
- `src/api/temples.ts`:寺院接口封装。
|
||||
- `src/api/products.ts`:商品接口封装。
|
||||
- `src/api/uploads.ts`:图片上传接口封装。
|
||||
- `src/api/orders.ts`:订单接口封装。
|
||||
- `src/api/payments.ts`:微信支付接口封装。
|
||||
- `src/api/rituals.ts`:法事接口封装。
|
||||
|
||||
## 路由约定
|
||||
|
||||
```text
|
||||
/login 静态登录页
|
||||
/temples 寺院管理
|
||||
/products 商品管理
|
||||
/products/create 新建商品
|
||||
/products/:productId/edit 编辑商品
|
||||
/orders 订单管理
|
||||
/ritual-services 法事管理
|
||||
/users 用户管理
|
||||
/todos Todo 管理占位页
|
||||
```
|
||||
|
||||
商品、订单、法事页面使用当前寺院上下文访问数据。当前寺院由后台顶部选择器维护,`src/api/http.ts` 会把 `currentTempleId` 写入请求头 `X-Temple-Id`。
|
||||
|
||||
后台页面通过路由守卫检查登录状态;认证令牌只存在后端设置的 HttpOnly Cookie 中,前端 localStorage 只缓存当前用户展示信息,不保存 token。
|
||||
|
||||
## 用户管理页面
|
||||
|
||||
用户管理页字段与后端用户模型保持一致:
|
||||
|
||||
```text
|
||||
注册时间、姓名、手机号、昵称、头像、是否管理员、总消费
|
||||
```
|
||||
|
||||
注册时间只展示,不在表单中编辑。
|
||||
|
||||
## 商品管理页面
|
||||
|
||||
商品列表只展示:
|
||||
|
||||
```text
|
||||
商品名称、简称、销量、首页展示、上架时间、开售时间、商品状态、修改删除操作
|
||||
```
|
||||
|
||||
商品新建和编辑打开独立页面,路由 `meta.module` 仍保持 `products`,让商品管理菜单在详情页高亮。商品详情编辑包含基础信息、商品描述、时间与展示、商品规格、商品详情、微信分享配置。商品封面和商品图片使用上传组件,上传后保存 OSS 返回的图片 URL。商品规格在表格中行编辑保存;商品详情使用 VueQuill 富文本编辑器,保存 HTML 内容。
|
||||
|
||||
## 依赖约定
|
||||
|
||||
- 新增前端依赖时只写入 `package.json`,由用户执行 `pnpm install`。
|
||||
- `node_modules` 不提交。
|
||||
|
||||
## 验证
|
||||
|
||||
安装依赖后优先执行:
|
||||
|
||||
```bash
|
||||
pnpm typecheck
|
||||
pnpm build
|
||||
```
|
||||
|
||||
## 修改记录
|
||||
|
||||
- 2026-07-22:用户管理页同步后端新用户模型,表格展示注册时间、姓名、手机号、昵称、头像、是否管理员、总消费,表单支持编辑除注册时间外的字段。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-22:前端应用名改为配置化,默认“自在福田”;后台主布局新增路由面包屑,面包屑来源为路由 `meta.title`。验证:`pnpm typecheck` 和 `pnpm build` 通过,构建仅保留 Ant Design Vue 首包体积提示。
|
||||
- 2026-07-22:用户管理页新增手机号查询栏,`src/api/users.ts` 支持向 `/users` 传递 `phone` 查询参数。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-22:新增寺院、商品、订单、法事前端模块,后台布局新增模块菜单和当前寺院选择器,隔离模块请求自动携带 `X-Temple-Id`。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:商品管理页同步新的商品详情模型;列表调整为商品名称、简称、销量、首页展示、上架时间、开售时间、商品状态和操作,编辑弹窗增加商品图片、时间展示、规格行编辑、详情编辑和微信分享配置。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:商品新建和编辑从列表弹窗调整为独立页面,新增 `/products/create` 和 `/products/:productId/edit` 路由,详情页保持商品管理菜单高亮。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:商品详情页将商品封面、商品图片改为上传组件,新增 `src/api/uploads.ts` 调用后端 `/uploads/images`,上传成功后保存 OSS 图片 URL。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:商品详情编辑器从内置 `contenteditable` 替换为 VueQuill,`package.json` 新增 `@vueup/vue-quill` 依赖并保存 HTML 内容。验证:待安装依赖后执行。
|
||||
- 2026-07-23:接入登录功能,登录页支持用户名、密码、服务端验证码、账号自动聚焦、账号实时 trim、密码显示/隐藏、提交 loading 和友好错误提示;新增 `src/api/auth.ts` 与路由登录守卫,退出登录调用后端失效会话。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:商品编辑基础信息新增商品描述字段,前端商品 API 类型和商品编辑表单同步 `description`。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
- 2026-07-23:订单管理页新增微信 JSAPI 预下单入口,新增 `src/api/payments.ts` 调用 `/payments/wechat/jsapi`,用于生成支付参数;实际微信调起仍需用户端页面和 openid。验证:`pnpm typecheck` 和 `pnpm build` 通过。
|
||||
Reference in New Issue
Block a user