后台审核改用后端批量接口 (#67)
依赖 app-server PR #164。 ## 改动 - 低价审核、用户反馈仅勾选待审核记录 - 批量操作改为单次请求后端 `/bulk/approve` 或 `/bulk/reject` - 按后端逐条结果展示成功/失败;失败项保留勾选,方便重试 - 采纳/拒绝所需的统一金币、原因、内部备注和用户回复保持原有校验与二次确认 ## 验证 - `npm run build` - `git diff --check` --------- Co-authored-by: linkeyu <798648091@qq.com> Reviewed-on: #67 Co-authored-by: linkeyu <linkeyu@wonderable.ai> Co-committed-by: linkeyu <linkeyu@wonderable.ai>
This commit was merged in pull request #67.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
export interface BulkReviewItemResult {
|
||||
id: number;
|
||||
ok: boolean;
|
||||
status: string | null;
|
||||
error: string | null;
|
||||
}
|
||||
|
||||
export interface BulkReviewResult {
|
||||
total: number;
|
||||
success: number;
|
||||
failed: number;
|
||||
items: BulkReviewItemResult[];
|
||||
}
|
||||
|
||||
export const BULK_REVIEW_MAX = 50;
|
||||
|
||||
export function failedReviewIds(result: BulkReviewResult): number[] {
|
||||
return result.items.filter((item) => !item.ok).map((item) => item.id);
|
||||
}
|
||||
|
||||
export function bulkFailureReasonText(result: BulkReviewResult): string {
|
||||
const reasons = Array.from(
|
||||
new Set(
|
||||
result.items
|
||||
.filter((item) => !item.ok)
|
||||
.map((item) => item.error?.trim())
|
||||
.filter((reason): reason is string => Boolean(reason)),
|
||||
),
|
||||
);
|
||||
if (!reasons.length) return '';
|
||||
const visible = reasons.slice(0, 3);
|
||||
return `;原因:${visible.join(';')}${reasons.length > visible.length ? ';…' : ''}`;
|
||||
}
|
||||
Reference in New Issue
Block a user