Files
Web_AUTS_New_Prod/docs/寻址与索引.md

132 lines
5.3 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.
# AUTS 寻址与索引(前后端快速定位)
> 目标:后续同步修改前后端时,能快速定位“页面/路由 → 调用的 API → 后端 Controller/Action → 鉴权/配置”。
## 1. 仓库组成
- 后端ASP.NET Core Web API项目WebAPIServer
- PC 前端Vue3 + TypeScript目录auts_new.client
- 移动端前端Vue3目录auts_new_mobile.client
## 2. 后端寻址WebAPIServer
### 2.1 入口与全局中间件
- 入口WebAPIServer/Program.cs
- 路由映射:`app.MapControllers()`
- CORS策略名 `Vue3`,当前配置为 `AllowAnyOrigin/AnyHeader/AnyMethod`
- 鉴权JWT Bearer`AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(...)`
### 2.2 路由约定
所有 Controller 都使用:
- 路由模板:`api/[controller]/[action]`
- 因此实际 URL 形如:`/api/Login/Login``/api/TestLogs/GetTestSummaryTable`
### 2.3 Token 与鉴权要点
- 需要鉴权的 Action 会标注 `[Authorize()]`
- JWT 配置来自WebAPIServer/appsettings.json`JwT:SecretKey/Issuer/Audience`
- 登录成功后后端返回 `AccessToken`(见 `LoginController.Login`
### 2.4 API 索引(按 Controller
#### LoginController/api/Login/{action}
- `POST Login`:登录,返回 `ResLoginData`(含 `AccessToken/IsAdmin/ID/UserName/Auths`
- `POST TokenXuQi`:续期(需 `[Authorize]`
- `POST LogRecord`:记录登录信息(需 `[Authorize]`
- `GET GetCaptcha`:验证码(当前返回固定 `CaptchaText = "1111"` + base64 图)
#### TestLogsController/api/TestLogs/{action}
- `POST GetLogListBySN`:按 SN 查询多步骤测试日志(需 `[Authorize]`
- `POST GetTestSummaryTableExcel`:导出测试总表 Excel`[Authorize]`
- `POST GetTestSummaryTable`:分页查询测试总表 + 统计 passCount/passRate
#### DataHandleController/api/DataHandle/{action}
- `POST R_InfoCommon`:通用查询(带 MemoryCache`[Authorize]`
- `POST CUD_InfoCommon`:通用增删改(需 `[Authorize]`
- `POST NNN`:简单 hello无鉴权
- `POST III`:看起来是实验/未完成接口(返回 null
#### UsersController/api/Users/{action}
(均需 `[Authorize]`
- `POST GetUserInfo`获取用户信息All/Single
- `POST AddUser`:新增用户
- `POST EditUser`:修改用户
- `POST DelUser`:删除(逻辑删除 IsValid=false
- `POST ResetPassWord`:重置密码为指定明文(服务端双 MD5
- `POST NewPassWord`:重置密码为 123456服务端双 MD5
#### CompanyController/api/Company/{action}
- `POST GetCompanyInfo`:获取公司信息(需 `[Authorize]`
#### ValuesController/api/Values/{action}
- `GET GetAll_WebApiMethod`:从 `StaticData.scope` 取变量
- `POST UpdateData`:触发 `StaticData.GetWebAPIMethod()` 刷新
> 备注Controllers 目录里还有 `WeatherForecastController`、`TestLogsController` 等;如需要我可以把所有 action 完整拉平为表格(含 HttpVerb
## 3. 移动端前端寻址auts_new_mobile.client
### 3.1 路由表
路由文件auts_new_mobile.client/src/router/index.js
- `/`:按 localStorage 是否有 `token` 动态跳转到 `/home``/login`
- `/login`:登录
- `/home`主页requiresAuth
- `/user`个人中心requiresAuth
- `/usermanage`用户管理requiresAuth且用户名必须是 Admin 或 MomoWen
- `/loginlog`用户日志requiresAuth
- `/dbmanage`数据库管理requiresAuth
- `/inputcolorbox`数据导入requiresAuth
- `/stationlog`:站位日志/数据导入requiresAuth
- `/testlog`测试数据requiresAuth
### 3.2 鉴权守卫
- 路由 meta `requiresAuth` + localStorage `token`
- 特权页面:`/usermanage`(以及守卫中出现的 `/scopemanage`,但移动端路由表里目前未定义该 path
### 3.3 当前编辑页面定位
- 当前页auts_new_mobile.client/src/pages/testlog/index.vue
- 该页的后端关联点大概率在 `TestLogsController`(如 GetTestSummaryTable / GetLogListBySN / 导出 Excel
## 4. PC 端前端寻址auts_new.client
### 4.1 路由聚合方式
路由入口auts_new.client/src/router/index.ts
-`src/router/modules/**` 动态导入模块路由
- 默认路由:`/login``/``/dashboard/base`
### 4.2 已识别的模块路由
- 仪表盘:首页/统计报表
- `/dashboard/base`:首页
- `/dashboard/detail`:统计报表
- 用户中心:
- `/permission/users`:用户管理
- `/permission/character`:权限管理
- `/permission/user`:个人中心
> 注意PC 端部分模块(如 result/user 模块)目前在源码中被注释掉,实际生效以 modules 目录内容为准。
## 5. 后续同步修改前后端的推荐对齐点(准备清单)
- Token前端存储 key当前移动端用 localStorage `token/username`)应与后端返回字段 `AccessToken` 映射一致
- API BaseUrl前端 axios 基础配置位置(移动端通常在 `src/axios.js`PC 端在 `src/api`/请求封装)
- 鉴权 header后端使用标准 Bearer 头即可(`Authorization: Bearer <token>`),如前端用了自定义 `token` 头需要对齐
- TestLog 页面:优先确认它调用的具体 actionGetTestSummaryTable / ExportExcel / GetLogListBySN后再做字段联调