Files
smart_grid_iot/server/src/controller/upload.controller.ts
T
andyesfly 1c83e09fa1 feat: 完成客户拜访模块全功能开发
本次提交实现了完整的客户拜访业务系统:
1.  新增对象存储上传服务,支持S3兼容协议的RustFS存储
2.  完善客户拜访实体与数据库表结构,补充全业务字段
3.  开发拜访台账与记录的前后端接口,包含增删改查、批量创建、状态流转等能力
4.  新增拜访表单页面与路由,支持父级菜单补全面包屑
5.  新增勘察列表页预填客户ID跳转逻辑
6.  补充UI设计文档与页面截图
7.  调整日志中间件跳过上传路由,优化RBAC权限配置
2026-09-14 11:42:10 +08:00

29 lines
930 B
TypeScript

import { Controller, Post, Inject, Files } from "@midwayjs/core";
import { Context } from "@midwayjs/koa";
import { UploadFileInfo } from "@midwayjs/upload";
import { UploadService } from "../service/upload.service";
@Controller("/api/upload")
export class UploadController {
@Inject()
ctx!: Context;
@Inject()
uploadService!: UploadService;
// 上传现场照片,返回对象 key(用于持久化)与预签名 URL(用于即时预览)
@Post("/image")
async uploadImage(@Files() files: UploadFileInfo<string>[]) {
const file = files && files[0];
if (!file) {
return { code: 400, message: "请选择要上传的图片", data: null };
}
try {
const data = await this.uploadService.uploadFile(file);
return { code: 200, message: "上传成功", data };
} catch (err: any) {
return { code: 500, message: `图片上传失败:${err?.message || "对象存储不可用"}`, data: null };
}
}
}