2.6 KiB
2.6 KiB
name, description, metadata
| name | description | metadata | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| session-20260716-1 | 2026-07-16 第1次会话 — IconPicker 增加直接上传图片功能 |
|
2026-07-16 第1次会话
会话摘要
- IconPicker 增加上传按钮:前端图标选择器"已上传"标签页增加直接上传功能
- 修复 /view 端点 404:后端新增文件预览代理端点,每次请求实时向文件服务器获取 Token 并代理返回图片
关键操作
一、IconPicker 增加上传按钮
- 做了什么: 在 IconPicker.vue 的"已上传"标签页头部增加了「上传」按钮,点击后选择图片即自动上传到文件服务(fileType=icon),上传完成自动刷新列表并选中新图标
- 涉及文件:
mokee-gateway-web/src/components/IconPicker.vue - 结果: TypeScript 编译通过,IconPicker.vue 无类型错误
二、新增文件预览代理端点 GET /{id}/view
- 做了什么: 用户反馈上传图标后
<img>加载/zgapi/v1/admin/file/{id}/view返回 404,原因是文件迁至外部存储后该端点被移除。本次在 admin 后端重新实现该端点,每次请求自动向文件服务器获取 Token → 下载文件 → 返回给浏览器 - 涉及文件:
mokee-gateway-admin/.../config/WebMvcConfig.java— 新增fileServiceRestTemplateBeanmokee-gateway-admin/.../service/FileService.java— 新增view()方法签名mokee-gateway-admin/.../service/impl/FileServiceImpl.java— 实现核心逻辑:查元信息 → 获取 Token → RestTemplate 代理下载 → 写回 HttpServletResponsemokee-gateway-admin/.../controller/FileController.java— 新增GET /{id}/view端点
- 结果: Maven 编译通过,零错误
- 设计要点:
- 文件服务 URL 通过
@Value("${file.service.url:https://file.wg.zgitm.com}")注入,可配置 - Token 不使用缓存,每次请求实时获取(避免一次消费问题)
- 端点不受
UserContextInterceptor拦截(WebMvcConfig 中已排除/view路径) - 错误时返回纯文本状态(404/502/500),不依赖 JSON 响应结构
- 文件服务 URL 通过
重要信息
- 文件服务 URL:
VITE_FILE_SERVICE_URL环境变量,默认https://file.wg.zgitm.com - 上传 API:
POST {FILE_SERVICE}/api/upload,FormData 包含file+fileType - 上传 Token:
POST {FILE_SERVICE}/api/token,body:{ systemCode: 'gateway' } - 图标列表查询:
GET /zgapi/v1/admin/file/list?fileType=icon - 文件服务直写
sys_file表,admin 后端只做元信息查询
待处理
- 通知用户确认前端部署后功能正常