- 新增试卷管理 Tab:列表展示、启用状态、题数/总分/通过分、目标权限标签、复制直链 - 新增试卷编辑弹窗:标题、描述、阅卷模式、通过分数、启用开关 - 目标权限多选、前置身份开关 + 判断方式(ANY/ALL)+ 权限多选 - 题目编辑:五种题型、上下移、删除、信息题、选答题、生死题、自动批复 - 选择题选项增删改、默认选项、正确选项、多选计分模式、选项得分/扣分 - 填空/简答作答字数上限与标准答案 - 查重开关与通过邮件配置(标题/正文/补充说明/附带邀请码) - 保存前校验:标题、题目、权限、通过分、邮件必填项 - 公开端审核类型改名 Public 前缀,避免与后台同名冲突 - 补充中英文 locale 共 37 个键
This commit is contained in:
1 parent
8d73689356
commit
7b3a5212e6
5 files changed
+1534
-201
No files matched your search
@@ -564,32 +564,32 @@ export function skinSitePublicMapServers(): Promise<SkinSiteResponse<SkinSitePub
|
||||
export type SkinSiteReviewQuestionType = 'SINGLE' | 'MULTIPLE' | 'TRUE_FALSE' | 'FILL' | 'ESSAY'
|
||||
export type SkinSiteReviewResult = 'PENDING' | 'PASSED' | 'REJECTED'
|
||||
|
||||
export interface SkinSiteReviewOption {
|
||||
export interface SkinSiteReviewPublicOption {
|
||||
id: string
|
||||
description: string
|
||||
correct?: boolean
|
||||
defaultSelected?: boolean
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewQuestion {
|
||||
export interface SkinSiteReviewPublicQuestion {
|
||||
id: string
|
||||
type: SkinSiteReviewQuestionType
|
||||
type: SkinSiteReviewPublicQuestionType
|
||||
title: string
|
||||
annotation?: string | null
|
||||
score?: number
|
||||
optional?: boolean
|
||||
fatal?: boolean
|
||||
options?: SkinSiteReviewOption[]
|
||||
options?: SkinSiteReviewPublicOption[]
|
||||
answer?: string | null
|
||||
maxLength?: number | null
|
||||
informationQuestion?: boolean
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewPaper {
|
||||
export interface SkinSiteReviewPublicPaper {
|
||||
id: string
|
||||
title: string
|
||||
description?: string
|
||||
questions: SkinSiteReviewQuestion[]
|
||||
questions: SkinSiteReviewPublicQuestion[]
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
@@ -1039,6 +1039,42 @@ export function skinSiteAdminUserFrequencyLimit(
|
||||
|
||||
export type SkinSiteReviewMode = 'AUTO' | 'MANUAL'
|
||||
|
||||
export type SkinSiteReviewQuestionType = 'SINGLE' | 'MULTIPLE' | 'TRUE_FALSE' | 'FILL' | 'ESSAY'
|
||||
|
||||
export interface SkinSiteReviewOption {
|
||||
id: string
|
||||
description: string
|
||||
correct: boolean
|
||||
defaultSelected: boolean
|
||||
score: number
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewQuestion {
|
||||
id: string
|
||||
type: SkinSiteReviewQuestionType
|
||||
title: string
|
||||
annotation?: string | null
|
||||
score: number
|
||||
optional: boolean
|
||||
fatal: boolean
|
||||
autoReview: boolean
|
||||
options: SkinSiteReviewOption[]
|
||||
answer?: string | null
|
||||
maxLength?: number | null
|
||||
informationQuestion?: boolean
|
||||
informationAlias?: string | null
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewPaper {
|
||||
id: string
|
||||
title: string
|
||||
annotation?: string | null
|
||||
mode: SkinSiteReviewMode
|
||||
passScore: number
|
||||
version: number
|
||||
questions: SkinSiteReviewQuestion[]
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewAnswer {
|
||||
id: string
|
||||
questionId?: string
|
||||
@@ -1069,6 +1105,7 @@ export interface SkinSiteReviewSubmission {
|
||||
createdAt: number
|
||||
reviewedAt?: number | null
|
||||
answers: SkinSiteReviewAnswer[]
|
||||
paper: SkinSiteReviewPaper
|
||||
decisionHistory?: Array<{
|
||||
previousResult: SkinSiteReviewResult
|
||||
result: SkinSiteReviewResult
|
||||
@@ -1789,3 +1826,79 @@ export function skinSiteWikiUpdateSettings(
|
||||
body: settings,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export interface SkinSiteReviewPaperSummary {
|
||||
id: string
|
||||
enabled: boolean
|
||||
title: string
|
||||
annotation?: string | null
|
||||
mode: SkinSiteReviewMode
|
||||
passScore: number
|
||||
targetPermissions: string[]
|
||||
version: number
|
||||
questionCount: number
|
||||
totalScore: number
|
||||
updatedAt: number
|
||||
prerequisiteMode: 'ANY' | 'ALL'
|
||||
prerequisitePermissions: string[]
|
||||
eligible: boolean
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewMailConfig {
|
||||
enabled: boolean
|
||||
subject: string
|
||||
message: string
|
||||
includeInviteCode: boolean
|
||||
extraText: string
|
||||
}
|
||||
|
||||
export interface SkinSiteReviewConfigData {
|
||||
preventDuplicate?: boolean
|
||||
mail?: SkinSiteReviewMailConfig
|
||||
id: string
|
||||
enabled: boolean
|
||||
title: string
|
||||
annotation?: string | null
|
||||
mode: SkinSiteReviewMode
|
||||
passScore: number
|
||||
targetPermissions: string[]
|
||||
version: number
|
||||
questions: SkinSiteReviewQuestion[]
|
||||
updatedAt: number
|
||||
prerequisiteMode: 'ANY' | 'ALL'
|
||||
prerequisitePermissions: string[]
|
||||
}
|
||||
|
||||
export function skinSiteReviewPaperList(): Promise<
|
||||
SkinSiteResponse<SkinSiteReviewPaperSummary[]>
|
||||
> {
|
||||
return skinSiteRequest<SkinSiteReviewPaperSummary[]>('review/admin/papers')
|
||||
}
|
||||
|
||||
export function skinSiteReviewPaperAdmin(
|
||||
paperId: string,
|
||||
): Promise<SkinSiteResponse<SkinSiteReviewConfigData>> {
|
||||
return skinSiteRequest<SkinSiteReviewConfigData>(
|
||||
'review/admin/papers/' + encodeURIComponent(paperId),
|
||||
)
|
||||
}
|
||||
|
||||
export function skinSiteCreateReviewPaperAdmin(
|
||||
data: SkinSiteReviewConfigData,
|
||||
): Promise<SkinSiteResponse<SkinSiteReviewConfigData>> {
|
||||
return skinSiteRequest<SkinSiteReviewConfigData>('review/admin/papers', {
|
||||
method: 'POST',
|
||||
body: data,
|
||||
})
|
||||
}
|
||||
|
||||
export function skinSiteUpdateReviewPaperAdmin(
|
||||
paperId: string,
|
||||
data: SkinSiteReviewConfigData,
|
||||
): Promise<SkinSiteResponse<SkinSiteReviewConfigData>> {
|
||||
return skinSiteRequest<SkinSiteReviewConfigData>(
|
||||
'review/admin/papers/' + encodeURIComponent(paperId),
|
||||
{ method: 'PUT', body: data },
|
||||
)
|
||||
}
|
||||
Reference in new issue
Block a user