本次提交实现了完整的客户拜访业务系统: 1. 新增对象存储上传服务,支持S3兼容协议的RustFS存储 2. 完善客户拜访实体与数据库表结构,补充全业务字段 3. 开发拜访台账与记录的前后端接口,包含增删改查、批量创建、状态流转等能力 4. 新增拜访表单页面与路由,支持父级菜单补全面包屑 5. 新增勘察列表页预填客户ID跳转逻辑 6. 补充UI设计文档与页面截图 7. 调整日志中间件跳过上传路由,优化RBAC权限配置
29 lines
930 B
TypeScript
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 };
|
|
}
|
|
}
|
|
}
|