import type { PageParam, PageResult } from '@vben/request';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace AftersalesProblemApi {
|
/** 售后问题 */
|
export interface Problem {
|
id?: number;
|
no?: string;
|
title?: string;
|
sourceTicketId?: number;
|
sourceTicketNo?: string;
|
customerId?: number;
|
customerName?: string;
|
itemId?: number;
|
itemCode?: string;
|
itemName?: string;
|
batchId?: number;
|
batchCode?: string;
|
issueType?: number;
|
issueCategory?: string;
|
severityLevel?: number;
|
description?: string;
|
/** 根因分类: 1-设计 2-物料 3-工艺 4-装配 5-运输 6-包装 7-使用 8-软件 9-其他 */
|
rootCauseCategory?: number;
|
rootCause?: string;
|
solution?: string;
|
/** 状态: 0-草稿 1-已发布 2-已停用 */
|
status?: number;
|
ownerUserId?: number;
|
ownerUserName?: string;
|
publishTime?: string;
|
remark?: string;
|
creator?: string;
|
createTime?: string;
|
updater?: string;
|
updateTime?: string;
|
/** 附件 blobId 列表(保存时传入) */
|
blobIds?: number[];
|
/** 附件列表(详情返回) */
|
attachmentList?: { id: number; name?: string; url?: string }[];
|
}
|
}
|
|
/** 新增售后问题(草稿) */
|
export function createProblem(data: AftersalesProblemApi.Problem) {
|
return requestClient.post<number>('/aftersales/problem/create', data);
|
}
|
|
/** 更新售后问题(仅草稿) */
|
export function updateProblem(data: AftersalesProblemApi.Problem) {
|
return requestClient.put<boolean>('/aftersales/problem/update', data);
|
}
|
|
/** 删除售后问题(仅草稿) */
|
export function deleteProblem(id: number) {
|
return requestClient.delete<boolean>('/aftersales/problem/delete', {
|
params: { id },
|
});
|
}
|
|
/** 获取售后问题详情 */
|
export function getProblem(id: number) {
|
return requestClient.get<AftersalesProblemApi.Problem>(
|
`/aftersales/problem/get?id=${id}`,
|
);
|
}
|
|
/** 分页查询售后问题 */
|
export function getProblemPage(params: PageParam) {
|
return requestClient.get<PageResult<AftersalesProblemApi.Problem>>(
|
'/aftersales/problem/page',
|
{ params },
|
);
|
}
|
|
/** 发布问题(草稿/停用 -> 已发布) */
|
export function publishProblem(id: number) {
|
return requestClient.put<boolean>('/aftersales/problem/publish', null, {
|
params: { id },
|
});
|
}
|
|
/** 停用问题(已发布 -> 停用) */
|
export function disableProblem(id: number) {
|
return requestClient.put<boolean>('/aftersales/problem/disable', null, {
|
params: { id },
|
});
|
}
|
|
/** 参考检索(新工单受理,只返回已发布) */
|
export function referenceProblem(params: {
|
itemId?: number;
|
issueCategory?: string;
|
issueType?: number;
|
rootCauseCategory?: number;
|
keyword?: string;
|
}) {
|
return requestClient.get<AftersalesProblemApi.Problem[]>(
|
'/aftersales/problem/reference',
|
{ params },
|
);
|
}
|