显示精选审核提交失败原因
统一素材精选审核提交资格判断 在素材菜单显示不可提交和后端拒绝原因 将编辑器业务拒绝映射为 400 并保留中文原因 补充精选审核原因展示测试和文档口径
This commit is contained in:
@@ -288,6 +288,82 @@ export function getSelectableAssets(assets: EditorAsset[]) {
|
||||
return assets.filter((asset) => asset.sourceKind === 'uploaded');
|
||||
}
|
||||
|
||||
export type AssetShowcaseSubmissionState = {
|
||||
canSubmit: boolean;
|
||||
label: string;
|
||||
reason: string | null;
|
||||
};
|
||||
|
||||
function normalizeAssetShowcaseReason(value: string | null | undefined) {
|
||||
return value?.trim() || null;
|
||||
}
|
||||
|
||||
export function resolveAssetShowcaseSubmissionState(
|
||||
asset: EditorAsset,
|
||||
): AssetShowcaseSubmissionState {
|
||||
const reviewStatus = asset.showcaseReviewStatus ?? null;
|
||||
|
||||
if (reviewStatus === 'pending') {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label: '精选审核中',
|
||||
reason: '素材正在审核中,请等待审核结果',
|
||||
};
|
||||
}
|
||||
|
||||
if (reviewStatus === 'approved') {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label:
|
||||
asset.showcaseDisplayEnabled === false
|
||||
? '已入选精选,暂未展示'
|
||||
: '已入选精选',
|
||||
reason:
|
||||
asset.showcaseDisplayEnabled === false
|
||||
? '素材已通过审核,运营后台开启展示后才会出现在前台'
|
||||
: '素材已经入选精选',
|
||||
};
|
||||
}
|
||||
|
||||
if (reviewStatus === 'rejected') {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label: '精选未通过',
|
||||
reason: '该素材审核未通过,不能重复提交',
|
||||
};
|
||||
}
|
||||
|
||||
if (asset.sourceType !== 'generated') {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label: '提交精选审核',
|
||||
reason: '只有生成素材可以提交精选审核',
|
||||
};
|
||||
}
|
||||
|
||||
if (!asset.persisted) {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label: '提交精选审核',
|
||||
reason: '素材保存完成后才能提交精选审核',
|
||||
};
|
||||
}
|
||||
|
||||
if (!asset.src.trim()) {
|
||||
return {
|
||||
canSubmit: false,
|
||||
label: '提交精选审核',
|
||||
reason: '没有媒体内容的素材不能提交精选审核',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
canSubmit: true,
|
||||
label: '提交精选审核',
|
||||
reason: normalizeAssetShowcaseReason(asset.showcaseSubmitError),
|
||||
};
|
||||
}
|
||||
|
||||
export function areAllSelectableAssetsSelected(
|
||||
selectableAssets: EditorAsset[],
|
||||
selectedAssetIds: Set<string>,
|
||||
|
||||
Reference in New Issue
Block a user