- 支持一对多/多对一关系定义并生成到 Prisma schema - 简化流程:查询关联配置根据关系自动预填 - 修复 Handlebars 模板 HTML 转义导致的乱码问题 - 修复 controller 模板缺少 Prisma 导入的问题 - 新增页面模板 (page.hbs) 生成前端页面 - 添加 FindAllParams/PaginationQueryDto 索引签名修复类型兼容 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
2.1 KiB
Handlebars
73 lines
2.1 KiB
Handlebars
import type {
|
|
PaginatedResponse,
|
|
Create{{pascalCase name}}Dto,
|
|
Update{{pascalCase name}}Dto,
|
|
{{pascalCase name}}Response,
|
|
} from '@seclusion/shared';
|
|
|
|
import { API_ENDPOINTS } from '@/config/constants';
|
|
import { http } from '@/lib/http';
|
|
|
|
export interface Get{{pascalCase pluralName}}Params {
|
|
page?: number;
|
|
pageSize?: number;
|
|
{{#each queryFields}}
|
|
{{name}}?: string;
|
|
{{/each}}
|
|
}
|
|
|
|
const BASE_URL = API_ENDPOINTS.{{constantCase pluralName}};
|
|
|
|
export const {{camelCase name}}Service = {
|
|
// 获取{{chineseName}}列表
|
|
get{{pascalCase pluralName}}: (
|
|
params: Get{{pascalCase pluralName}}Params = {},
|
|
): Promise<PaginatedResponse<{{pascalCase name}}Response>> => {
|
|
return http.get<PaginatedResponse<{{pascalCase name}}Response>>(BASE_URL, { params });
|
|
},
|
|
|
|
{{#if softDelete}}
|
|
// 获取已删除的{{chineseName}}列表
|
|
getDeleted{{pascalCase pluralName}}: (
|
|
params: Get{{pascalCase pluralName}}Params = {},
|
|
): Promise<PaginatedResponse<{{pascalCase name}}Response>> => {
|
|
return http.get<PaginatedResponse<{{pascalCase name}}Response>>(
|
|
`${BASE_URL}/deleted`,
|
|
{ params },
|
|
);
|
|
},
|
|
|
|
{{/if}}
|
|
// 获取单个{{chineseName}}
|
|
get{{pascalCase name}}: (id: string): Promise<{{pascalCase name}}Response> => {
|
|
return http.get<{{pascalCase name}}Response>(`${BASE_URL}/${id}`);
|
|
},
|
|
|
|
// 创建{{chineseName}}
|
|
create{{pascalCase name}}: (
|
|
data: Create{{pascalCase name}}Dto,
|
|
): Promise<{{pascalCase name}}Response> => {
|
|
return http.post<{{pascalCase name}}Response>(BASE_URL, data);
|
|
},
|
|
|
|
// 更新{{chineseName}}
|
|
update{{pascalCase name}}: (
|
|
id: string,
|
|
data: Update{{pascalCase name}}Dto,
|
|
): Promise<{{pascalCase name}}Response> => {
|
|
return http.patch<{{pascalCase name}}Response>(`${BASE_URL}/${id}`, data);
|
|
},
|
|
|
|
// 删除{{chineseName}}
|
|
delete{{pascalCase name}}: (id: string): Promise<void> => {
|
|
return http.delete<void>(`${BASE_URL}/${id}`);
|
|
},
|
|
|
|
{{#if softDelete}}
|
|
// 恢复{{chineseName}}
|
|
restore{{pascalCase name}}: (id: string): Promise<{{pascalCase name}}Response> => {
|
|
return http.patch<{{pascalCase name}}Response>(`${BASE_URL}/${id}/restore`);
|
|
},
|
|
{{/if}}
|
|
};
|