Browse Source

接口字段类型声明文件分模块

Liu.Yang5 2 years ago
parent
commit
b97a3a4a00
94 changed files with 1735 additions and 3606 deletions
  1. 66 0
      src/api/api-types/exam.d.ts
  2. 127 0
      src/api/api-types/expert.d.ts
  3. 56 0
      src/api/api-types/forceCheck.d.ts
  4. 362 0
      src/api/api-types/marking.d.ts
  5. 38 0
      src/api/api-types/message.d.ts
  6. 125 0
      src/api/api-types/question.d.ts
  7. 38 0
      src/api/api-types/role.d.ts
  8. 614 0
      src/api/api-types/statistics.d.ts
  9. 64 0
      src/api/api-types/subject.d.ts
  10. 138 0
      src/api/api-types/system.d.ts
  11. 14 1621
      src/api/api.d.ts
  12. 2 1
      src/api/check.ts
  13. 2 1
      src/api/exam.ts
  14. 2 1
      src/api/expert.ts
  15. 1 1
      src/api/index.ts
  16. 2 1
      src/api/marking.ts
  17. 2 1
      src/api/message.ts
  18. 2 1
      src/api/question.ts
  19. 2 1
      src/api/role.ts
  20. 2 1
      src/api/statistics.ts
  21. 2 1
      src/api/subject.ts
  22. 2 1
      src/api/system.ts
  23. 2 1
      src/api/user.ts
  24. 1 1
      src/components/shared/MarkHistoryList.vue
  25. 1 1
      src/components/shared/RemarkListModal.vue
  26. 1 1
      src/components/shared/ScoringPanelWithConfirm.vue
  27. 1 1
      src/components/shared/message/MessageList.vue
  28. 1 1
      src/components/shared/message/MessageSend.vue
  29. 1 1
      src/hooks/useFetch.ts
  30. 1 1
      src/hooks/useMessageLoop.ts
  31. 1 1
      src/hooks/useOptions.ts
  32. 1 1
      src/hooks/useTable.ts
  33. 1 1
      src/hooks/useTableCheck.ts
  34. 1 1
      src/modules/admin-data/export/index.vue
  35. 1 1
      src/modules/admin-data/marking/index.vue
  36. 1 1
      src/modules/admin-data/paper/components/rf.vue
  37. 1 1
      src/modules/admin-data/paper/components/sample.vue
  38. 1 1
      src/modules/admin-data/task-setting/components/MarkerSetting.vue
  39. 1 1
      src/modules/admin-data/task-setting/index.vue
  40. 1 1
      src/modules/admin-exam/edit-exam/index.vue
  41. 1 1
      src/modules/admin-exam/manage/index.vue
  42. 1 1
      src/modules/admin-role/manage/index.vue
  43. 1 1
      src/modules/admin-role/setting/index.vue
  44. 1 1
      src/modules/admin-subject/edit-main-question/index.vue
  45. 1 1
      src/modules/admin-subject/manage/index.vue
  46. 1 1
      src/modules/admin-subject/struct/index.vue
  47. 1 1
      src/modules/admin-user/bulk-add-user/index.vue
  48. 1 1
      src/modules/admin-user/edit-user/index.vue
  49. 1 1
      src/modules/admin-user/manage/hooks/useUserManageFilter.ts
  50. 1 1
      src/modules/analysis/group-monitoring-detail/index.vue
  51. 1 1
      src/modules/analysis/group-monitoring/hooks/useFormFilter.ts
  52. 1 1
      src/modules/analysis/group-monitoring/index.vue
  53. 1 1
      src/modules/analysis/marking-progress/components/GroupProgress.vue
  54. 1 1
      src/modules/analysis/marking-progress/components/TotalProgress.vue
  55. 1 1
      src/modules/analysis/monitoring/index.vue
  56. 1 1
      src/modules/analysis/personnel-statistics/components/SetWorkload.vue
  57. 1 1
      src/modules/analysis/personnel-statistics/components/StatisticsGroup.vue
  58. 1 1
      src/modules/analysis/personnel-statistics/components/StatisticsPersonnel.vue
  59. 1 1
      src/modules/analysis/personnel-statistics/hooks/useStatisticsFilter.ts
  60. 1 1
      src/modules/analysis/personnel-statistics/index.vue
  61. 1 1
      src/modules/analysis/statistics/index.vue
  62. 1 1
      src/modules/analysis/view-marked-detail/index.vue
  63. 1 1
      src/modules/bootstrap/login/index.vue
  64. 1 1
      src/modules/expert/assess/index.vue
  65. 1 1
      src/modules/expert/expert/index.vue
  66. 1 1
      src/modules/expert/sample/index.vue
  67. 1 1
      src/modules/expert/standard/index.vue
  68. 1 1
      src/modules/expert/training/index.vue
  69. 1 1
      src/modules/marking/arbitration/index.vue
  70. 1 1
      src/modules/marking/assess/index.vue
  71. 1 1
      src/modules/marking/inquiry-result/index.vue
  72. 1 1
      src/modules/marking/inquiry/index.vue
  73. 1 1
      src/modules/marking/mark/index.vue
  74. 1 1
      src/modules/marking/problem/index.vue
  75. 1 1
      src/modules/marking/repeat/index.vue
  76. 1 1
      src/modules/marking/similar/index.vue
  77. 1 1
      src/modules/marking/statistics/index.vue
  78. 1 1
      src/modules/marking/submit-similar/index.vue
  79. 1 1
      src/modules/marking/training-record/index.vue
  80. 1 1
      src/modules/marking/view-sample/index.vue
  81. 1 1
      src/modules/monitor/system-check/index.vue
  82. 1 1
      src/modules/monitor/training-monitoring-detail/index.vue
  83. 1 1
      src/modules/monitor/training-monitoring/hooks/useFormFilter.ts
  84. 1 1
      src/modules/monitor/training-monitoring/index.vue
  85. 1 1
      src/modules/quality/ending-check/components/EndCheck.vue
  86. 1 1
      src/modules/quality/ending-check/components/SubjectProgress.vue
  87. 1 1
      src/modules/quality/self-check-detail/index.vue
  88. 1 1
      src/modules/quality/self-check/index.vue
  89. 1 1
      src/modules/quality/spot-check/index.vue
  90. 1 1
      src/modules/quality/subjective-check/index.vue
  91. 1 1
      src/plugins/request/plugin.ts
  92. 1 1
      src/store/layout.ts
  93. 1 1
      src/store/main.ts
  94. 0 1903
      types/api.d.ts

+ 66 - 0
src/api/api-types/exam.d.ts

@@ -0,0 +1,66 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 考试管理 */
+export namespace Exam {
+  /** 删除考试 */
+  type DeleteExam = BaseDefine<{ id: number }>
+
+  /** 获取考试信息 */
+  type GetExamInfo = BaseDefine<{ id: number }, Required<BaseExamInfo>>
+
+  /** 查询考试列表 */
+  type GetExamList = BaseDefine<
+    MultipleQuery<{
+      /** 考试状态 */
+      enable?: boolean
+      /** 考试名称 */
+      name?: string
+    }>,
+    MultipleResult<{
+      /** 考试状态 */
+      enable: boolean
+      /** 考试ID */
+      id: number
+      /** 考试名称 */
+      name: string
+      /** 更新时间 */
+      updateTime: string
+    }>
+  >
+  interface BaseExamInfo {
+    id?: number
+    /** 问题卷允许打回 */
+    doubtReject: boolean
+    /** 评卷模式 */
+    markingMode: MarkMode
+    /** 在线评卷时长 */
+    maxMarkingDuration: number
+    /** 自动回收任务(分钟) */
+    maxTaskRecover: number
+    /** 考试名称 */
+    name: string
+    /** 抽查卷允许打回 */
+    spotCheckReject: boolean
+    /** 用户姓名收集 */
+    userNameCollect: boolean
+    enable: boolean
+  }
+
+  /** 新增/修改考试 */
+  type SaveExamInfo = BaseDefine<Partial<BaseExamInfo>>
+
+  /** 启用/禁用考试 */
+  type ToggleEnableExam = BaseDefine<{ ids: number[]; enable: boolean }>
+  export interface ApiMap {
+    /** 删除考试 */
+    deleteExam: DeleteExam
+    /** 获取考试信息 */
+    getExamInfo: GetExamInfo
+    /** 查询考试列表 */
+    getExamList: GetExamList
+    /** 新增/修改考试 */
+    saveExamInfo: SaveExamInfo
+    /** 启用/禁用考试 */
+    toggleEnableExam: ToggleEnableExam
+  }
+}

+ 127 - 0
src/api/api-types/expert.d.ts

@@ -0,0 +1,127 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 专家卷浏览 */
+
+export namespace Expert {
+  interface SamplePaperListItem {
+    createName: string
+    createTime: string
+    fileName: string
+    filePath: string
+    id: number
+    mainNumber: number
+    paperType: string
+    score: number
+    secretNumber: number
+    type: string
+  }
+  type GetSampleList = BaseDefine<
+    MultipleQuery<{ mainNumber?: number; paperType: 'SAMPLE_A' | 'SAMPLE_B' }>,
+    MultipleResult<SamplePaperListItem>
+  >
+
+  interface RfSampleListItem {
+    createName: string
+    createTime: string
+    filePath: string
+    id: number
+    mainName: string
+    mainNumber: number
+    score: number
+    scoreLevel: string
+    secretNumber: number
+  }
+
+  type GetRfSampleList = BaseDefine<MultipleQuery<{ mainNumber?: number }>, MultipleResult<RfSampleListItem>>
+
+  type UpdateMarkScore = BaseDefine<{ id?: number; scores: number[] }>
+
+  interface StandardListItem {
+    createName: string
+    createTime: string
+    fileName: string
+    filePath: string
+    id: number
+    mainNumber: number
+    score: number
+    secretNumber: number
+    taskId: number
+  }
+
+  type GetStandardList = BaseDefine<
+    MultipleQuery<{
+      mainNumber?: number
+      dispensed: boolean | ''
+      scoreStart?: number | string
+      scoreEnd?: number | string
+    }>,
+    MultipleResult<StandardListItem>
+  >
+
+  type TransformStandardToSample = BaseDefine<{ id?: number }>
+
+  interface ExpertAssessListItem {
+    createName: string
+    createTime: string
+    filePath: string
+    forceGroupNumber: number
+    id: number
+    mainName: string
+    mainNumber: number
+    score: number
+    secretNumber: number
+  }
+
+  type GetExpertAssessList = BaseDefine<
+    MultipleQuery<{
+      mainNumber?: number
+      forceGroupNumber?: number
+    }>,
+    MultipleResult<ExpertAssessListItem>
+  >
+
+  interface ExpertPickListItem {
+    createName: string
+    createTime: string
+    filePath: string
+    forceGroupNumber: number
+    id: number
+    mainName: string
+    mainNumber: number
+    role: string
+    roleName: string
+    score: number
+    secretNumber: number
+  }
+
+  type GetExpertPickList = BaseDefine<
+    MultipleQuery<{
+      mainNumber?: number
+      forceGroupNumber?: number
+      paperType: ExpertPickType
+      role: Exclude<ROLE, 'ADMIN'>
+    }>,
+    MultipleResult<ExpertPickListItem>
+  >
+
+  type DeletePaper = BaseDefine<{ id?: number }>
+
+  export interface ApiMap {
+    /** AB培训卷 */
+    getSampleList: GetSampleList
+    /** RF卷 */
+    getRfSampleList: GetRfSampleList
+    /** 修改分数 */
+    updateMarkScore: UpdateMarkScore
+    /** 获取标准卷 */
+    getStandardList: GetStandardList
+    /** 标准卷转样卷 */
+    transformStandardToSample: TransformStandardToSample
+    /** 强制考核卷列表 */
+    getExpertAssessList: GetExpertAssessList
+    /** 专家挑选卷 */
+    getExpertPickList: GetExpertPickList
+    /** 删除 */
+    deletePaper: DeletePaper
+  }
+}

+ 56 - 0
src/api/api-types/forceCheck.d.ts

@@ -0,0 +1,56 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 强制考核接口 */
+export namespace ForceCheck {
+  /** 分发考核卷 */
+  type HandOutForceCheck = BaseDefine<{
+    forceGroupNumber?: number
+    mainNumber?: number
+    markerIds: number[]
+    subjectCode: string
+  }>
+  /** 获取考核卷组 */
+  interface ForceCheckGroup {
+    createTime: string
+    creatorId: number
+    examId: number
+    forceGroupNumber: number
+    id: number
+    mainNumber: number
+    subjectCode: string
+    updateTime: string
+    updaterId: number
+  }
+  type GetForceCheckGroupList = BaseDefine<{ mainNumber?: number; subjectCode: string }, ForceCheckGroup[]>
+  /** 获取分发进度 */
+  interface HandOutProgress {
+    /** 已评量 */
+    finishCount: number
+    /** 强制卷组号 */
+    forceGroupNumber: number
+    /** 大题 */
+    mainQuestion: string
+    /** 评卷员 */
+    marker: string
+    /** 小组号 */
+    markingGroupNumber: number
+    /** 未评量 */
+    pendingCount: number
+    /** 科目 */
+    subject: string
+    /** 总量 */
+    totalCount: number
+  }
+  type GetHandOutProgressList = BaseDefine<
+    { mainNumber?: number; subjectCode: string; forceGroupNumber?: number },
+    HandOutProgress[]
+  >
+  export interface ApiMap {
+    /** 分发考核卷 */
+    handOutForceCheck: HandOutForceCheck
+    /** 获取考核卷组 */
+    getForceCheckGroupList: GetForceCheckGroupList
+    /** 获取分发进度 */
+    getHandOutProgressList: GetHandOutProgressList
+  }
+}

+ 362 - 0
src/api/api-types/marking.d.ts

@@ -0,0 +1,362 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 评卷相关 */
+export namespace Marking {
+  /** 自定义查询 - 抽查 */
+
+  // 查询参数
+  interface CustomQuery {
+    /** 是否包含仲裁 */
+    arbitration?: boolean
+    /** 是否已抽查 */
+    checked?: boolean
+    /** 大题号 */
+    mainNumber?: number
+    /** 评卷员id */
+    markerId?: number
+    /** 小组号 */
+    markingGroupNumber?: number
+    /** 分数截止 */
+    scoreEnd?: number
+    /** 分数开始 */
+    scoreStart?: number
+    /** 科目代码 */
+    subjectCode?: string
+    /** 时间截止 */
+    timeEnd?: string
+    /** 时间开始 */
+    timeStart?: string
+    /** 密号 */
+    secretNumber?: string
+  }
+
+  /** 自定义抽查任务列表 */
+  interface CustomQueryTask {
+    customCheckNumber: number
+    examNumber: string
+    filePath: string
+    mainNumber: number
+    markTime: string
+    markerName: string
+    headerScore: number
+    markerScore: number
+    secretNumber: string
+    taskId: number
+  }
+  type GetCustomQueryTasks = BaseDefine<MultipleQuery<CustomQuery>, MultipleResult<CustomQueryTask>>
+
+  type SetCustomQueryConfig = BaseDefine<{ name: string; params: CustomQuery }>
+
+  type GetCustomQueryConfigList = BaseDefine<{ name: string }, { name: string; params: CustomQuery }[]>
+
+  /** 自定义查询 - 浏览 */
+  type ViewCustomQuery = BaseDefine<{ taskId: number }>
+
+  /** 自定义查询 - 修改卷型 */
+  type UpdateCustomPaperType = BaseDefine<{
+    taskId?: number
+    paperType: ExpertPickType
+    forceGroupNumber?: number
+  }>
+
+  /** 自定义查询 - 修改分数 */
+  type UpdateCustomPaperScore = BaseDefine<{
+    taskId?: number
+    scores: number[]
+  }>
+
+  type GetMarkingStandard = BaseDefine<null, { examId: number; mainNumber: number; subjectCode: string; url: string }>
+
+  interface Question {
+    intervalScore: number
+    subNumber: string
+    totalScore: number
+  }
+  interface Task {
+    /** 大题号 */
+    mainNumber: number
+    /** 大题名称 */
+    mainTitle: string
+    /** 小题列表 */
+    questionList: Question[]
+    /** 密号 */
+    secretNumber: string
+    /** 科目代码 */
+    subjectCode: string
+    /** 任务ID */
+    taskId: number
+    /** 任务类型 */
+    taskType: TaskType
+    /** 最小阅卷时长 */
+    minMarkTime: number
+    /** 试卷 path */
+    url: string
+  }
+
+  type GetMarkingTask = BaseDefine<null, Task[]>
+
+  /** 清除评卷任务缓存 */
+  type ClearCachedTasks = BaseDefine
+
+  interface MarkStatus {
+    markedCount: number
+    personCount: number
+    problemCount: number
+    totalCount: number
+  }
+
+  type GetMarkStatus = BaseDefine<null, MarkStatus>
+
+  interface SubmitMark {
+    markScore: number
+    markScores: number[]
+    spentTime: number
+    taskId: number
+    problem: boolean
+    problemType?: ProblemType
+  }
+
+  type SubmitMarkTask = BaseDefine<SubmitMark, MarkStatus>
+
+  interface HistoryTask {
+    mainNumber: number
+    mainTitle: number
+    markScore: number
+    markTime: string
+    markerScores: number[]
+    questionList: Question[]
+    secretNumber: string
+    subjectCode: string
+    taskId: number
+    taskType: string
+    url: string
+  }
+
+  type GetMarkHistory = BaseDefine<null, HistoryTask[]>
+
+  interface ProblemListParams {
+    mainNumber?: number
+    problemType: ProblemType | ''
+    status: '' | 'INITIAL' | 'PROCESSED'
+  }
+
+  interface ProblemListItem {
+    createTime: string
+    examNumber: string
+    filePath: string
+    headerName: number
+    headerScore: number
+    headerScores: number[]
+    id: number
+    mainNumber: number
+    mainName: string
+    markerName: string
+    markerRatio: string
+    markerScore: number
+    objectiveScore: number
+    problemSolveType: string
+    problemType: string
+    secretNumber: string
+    solveTime: string
+    taskId: number
+  }
+
+  type GetProblemHistory = BaseDefine<MultipleQuery<ProblemListParams>, MultipleResult<ProblemListItem>>
+
+  type MarkProblemPaper = BaseDefine<{ id?: number; scores: number[] }>
+
+  interface MarkScoreHistory {
+    id: number
+    markScore: number
+    markerName: string
+    scoreLevel: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5'
+    markTime: string
+    secretNumber: string
+    status: string
+    taskId: number
+    url: string
+  }
+
+  type GetMarkScoreHistoryListWithTask = BaseDefine<{ taskId: number | string }, MarkScoreHistory[]>
+
+  type RejectMarkHistory = BaseDefine<{ description: string; id: number; reason: string }>
+
+  interface ArbitrationListItem {
+    chiefName: string
+    chiefRatio: string
+    chiefScore: number
+    deputyName: string
+    deputyRatio: string
+    deputyScore: number
+    filePath: string
+    groupLeaderName: string
+    groupLeaderRatio: string
+    groupLeaderScore: number
+    id: number
+    mainName: string
+    mainNumber: number
+    markerName: string
+    markerRatio: string
+    markerScore: number
+    objectiveScore: number
+    secretNumber: string
+    status: string
+    taskId: number
+    teamLeaderName: string
+    teamLeaderRatio: string
+    teamLeaderScore: number
+  }
+
+  type GetArbitrationList = BaseDefine<
+    MultipleQuery<{ mainNumber?: number; status: ArbitrationStatus | '' }>,
+    MultipleResult<ArbitrationListItem>
+  >
+
+  type MarkArbitrationPaper = BaseDefine<{ id?: number; scores: number[] }>
+
+  type ViewArbitrationPaper = BaseDefine<{ id?: number }>
+
+  interface ReMarkPaperListItem {
+    confirm: string
+    confirmScore: number
+    filePath: string
+    id: number
+    mainNumber: number
+    mainName: string
+    markerName: string
+    markerScore: number
+    reMarkTime: string
+    secretNumber: string
+    taskId: number
+  }
+
+  type GetReMarkPaperList = BaseDefine<
+    MultipleQuery<{ mainNumber?: number; confirm: boolean }>,
+    MultipleResult<ReMarkPaperListItem>
+  >
+
+  type MarkReMarkPaper = BaseDefine<{ id?: number; scores: number[] }>
+
+  type ConfirmReMarkPaper = BaseDefine<{ id?: number }>
+
+  interface TrainingRecord {
+    examId: number
+    markScore: number
+    score: number
+    secretNumber: string
+    subjectCode: string
+    taskId: number
+    taskType: string
+    url: string
+  }
+
+  type ViewTrainingRecord = BaseDefine<null, TrainingRecord[]>
+
+  interface SamplePaper {
+    description: string
+    examId: number
+    id: number
+    mainNumber: number
+    mainTitle: string
+    markTime: string
+    markerName: string
+    score: number
+    secretNumber: number
+    subjectCode: string
+    url: string
+  }
+
+  type ViewSamplePaper = BaseDefine<null, SamplePaper[]>
+
+  interface SamePaperListItem {
+    examNumber: string
+    filePath: string
+    id: number
+    mainNumber: number
+    markerName: string
+    sameExamNumber: string
+    sameFilePath: string
+    sameSecretNumber: string
+    secretNumber: number
+    status: 'INITIAL' | 'NOT_SAME' | 'SAME'
+    taskId: number
+  }
+
+  type GetSimilarPaperList = BaseDefine<
+    MultipleQuery<{
+      mainNumber?: number
+      status: 'INITIAL' | 'NOT_SAME' | 'SAME'
+    }>,
+    MultipleResult<SamePaperListItem>
+  >
+
+  type ConfirmIsSimilar = BaseDefine<{ id?: number; same: boolean }>
+
+  type ExportSimilarPaper = BaseDefine<
+    MultipleQuery<{
+      mainNumber?: number
+      status: 'INITIAL' | 'NOT_SAME' | 'SAME'
+    }>
+  >
+
+  type SubmitSimilarPaper = BaseDefine<{ sameTaskId: number | string; taskId: number | string }>
+
+  export interface ApiMap {
+    /** 自定义查询 - 抽查 */
+    getCustomQueryTasks: GetCustomQueryTasks
+    /** 自定义查询 - 保存为快捷查询 */
+    setCustomQueryConfig: SetCustomQueryConfig
+    /** 自定义查询 - 获取快捷查询列表 */
+    getCustomQueryConfigList: GetCustomQueryConfigList
+    /** 自定义查询 - 浏览 */
+    viewCustomQuery: ViewCustomQuery
+    /** 自定义查询 - 修改卷型 */
+    updateCustomPaperType: UpdateCustomPaperType
+    /** 自定义查询 - 修改分数 */
+    updateCustomPaperScore: UpdateCustomPaperScore
+    /** 查看评分标准 */
+    getMarkingStandard: GetMarkingStandard
+    /** 获取评卷任务 */
+    getMarkingTask: GetMarkingTask
+    /** 清除评卷任务缓存 */
+    clearCachedTasks: ClearCachedTasks
+    /** 获取评卷进度 */
+    getMarkStatus: GetMarkStatus
+    /** 提交评卷任务 */
+    submitMarkTask: SubmitMarkTask
+    /** 获取回评历史 */
+    getMarkHistory: GetMarkHistory
+    /** 问题卷列表 */
+    getProblemHistory: GetProblemHistory
+    /** 问题卷打分 */
+    markProblemPaper: MarkProblemPaper
+    /** 通过taskId 查询给分记录 */
+    getMarkScoreHistoryListWithTask: GetMarkScoreHistoryListWithTask
+    /** 打回 */
+    rejectMarkHistory: RejectMarkHistory
+    /** 仲裁卷列表 */
+    getArbitrationList: GetArbitrationList
+    /** 仲裁卷打分 */
+    markArbitrationPaper: MarkArbitrationPaper
+    /** 仲裁卷浏览 */
+    viewArbitrationPaper: ViewArbitrationPaper
+    /** 重评卷列表 */
+    getReMarkPaperList: GetReMarkPaperList
+    /** 重评卷打分 */
+    markReMarkPaper: MarkReMarkPaper
+    /** 重评卷确认 */
+    confirmReMarkPaper: ConfirmReMarkPaper
+    /** 查看培训记录 */
+    viewTrainingRecord: ViewTrainingRecord
+    /** 查看样卷 */
+    viewSamplePaper: ViewSamplePaper
+    /** 雷同卷列表 */
+    getSimilarPaperList: GetSimilarPaperList
+    /** 是否雷同 */
+    confirmIsSimilar: ConfirmIsSimilar
+    /** 导出雷同 */
+    exportSimilarPaper: ExportSimilarPaper
+    /** 提交雷同卷 */
+    submitSimilarPaper: SubmitSimilarPaper
+  }
+}

+ 38 - 0
src/api/api-types/message.d.ts

@@ -0,0 +1,38 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 消息接口 */
+
+export namespace Message {
+  interface BaseMessageResponse {
+    id: number
+    content: string
+    receiveUserId: number
+    receiveUserName: string
+    sendTime: string
+    sendUserId: number
+    sendUserName: string
+    unReadCount: number
+  }
+  /** 历史消息 */
+  type GetMessageHistory = BaseDefine<{ sendUserId: number }, BaseMessageResponse[]>
+  /** 消息列表 */
+  type GetMessageList = BaseDefine<null, BaseMessageResponse[]>
+  /** 发送/回复消息 */
+  type SendMessage = BaseDefine<{ content: string; receiveUserIds: number[] }>
+  /** 未读消息 - 最新5条 */
+  type GetUnReadMessage = BaseDefine<null, { newCount: number; messages: BaseMessageResponse[] }>
+  /** 已读 */
+  type HandleReadMessage = BaseDefine<{ id: number }>
+  export interface ApiMap {
+    /** 历史消息 */
+    getMessageHistory: GetMessageHistory
+    /** 消息列表 */
+    getMessageList: GetMessageList
+    /** 发送/回复消息 */
+    sendMessage: SendMessage
+    /** 未读消息 - 最新5条 */
+    getUnReadMessage: GetUnReadMessage
+    /** 已读 */
+    handleReadMessage: HandleReadMessage
+  }
+}

+ 125 - 0
src/api/api-types/question.d.ts

@@ -0,0 +1,125 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 题目管理 */
+export namespace Question {
+  /** 删除小题 */
+  type DeleteSubQuestion = BaseDefine<{
+    id: number
+  }>
+
+  /** 编辑小题 */
+  type EditSubQuestion = BaseDefine<{
+    id?: number
+    /** 小题间隔分 */
+    intervalScore?: number
+  }>
+
+  /** 小题列表信息 */
+  interface SubQuestionInfo {
+    id: number
+    intervalScore: number
+    mainNumber: number
+    mainTitle: string
+    subNumber: number
+    totalScore: number
+  }
+
+  /** 获取小题列表 */
+  type GetSubQuestionList = BaseDefine<{ subjectCode: string }, SubQuestionInfo[]>
+
+  interface MainQuestionListItem {
+    createTime: string
+    creatorId: number
+    examId: number
+    groupNumber: number
+    id: number
+    levelRange: number[]
+    mainNumber: number
+    minMarkTime: number
+    remarkNumber: number
+    remarkType: string
+    standardRate: number
+    selfRate: number
+    subjectCode: string
+    systemRate: number
+    title: string
+    totalScore: number
+    updateTime: string
+    updaterId: number
+  }
+
+  /** 获取大题列表 */
+  type GetMainQuestionList = BaseDefine<{ subjectCode: string }, MainQuestionListItem[]>
+
+  interface SubQuestionStruct {
+    intervalScore: number
+    score: number
+    subNumber: number
+    totalScore: number
+  }
+  /** 获取大题评卷结构 */
+  type GetQuestionStruct = BaseDefine<
+    { mainNumber?: number },
+    { mainNumber: number; mainTitle: string; questionList: SubQuestionStruct[] }
+  >
+
+  /** 大题设置 (新增/编辑) */
+  interface MainQuestionMeta {
+    /** 大题号 */
+    mainNumber?: number
+    /** 大题名称 */
+    mainTitle: string
+    /** 分组数量 */
+    groupNumber?: number
+    /** 间隔分 */
+    intervalScore?: number
+    /** 最小阅卷时间 */
+    minMarkTime?: number
+    /** 小题数量 */
+    questionCount?: number
+    /** 小题满分 */
+    questionScore?: number
+    /** 回评数量 */
+    remarkNumber?: number
+    /** 标准卷频度 */
+    standardRate?: number
+    /** 自查卷频度 */
+    selfRate?: number
+    /** 系统抽查频度 */
+    systemRate?: number
+    /** 起始题号 */
+    startNumber: number
+    /** 档次比例 */
+    levelRange: number[]
+    /** 回评方式,可用值:TIME,QUANTITY */
+    remarkType: RemarkType
+    /** 科目代码 */
+    subjectCode: string
+    /** 成绩表对应题目类型,可用值:WRITING,TRANSLATION */
+    category?: QuestionCategory
+  }
+
+  /** 新增大题 */
+  type AddMainQuestion = BaseDefine<MainQuestionMeta>
+
+  /** 大题设置 */
+  type EditMainQuestion = BaseDefine<MainQuestionMeta>
+
+  /** 获取大题信息 */
+  type GetMainQuestionInfo = BaseDefine<
+    { mainNumber: number; subjectCode: string },
+    MainQuestionMeta & { examId: number }
+  >
+
+  export interface ApiMap {
+    deleteSubQuestion: DeleteSubQuestion
+    editSubQuestion: EditSubQuestion
+    getSubQuestionList: GetSubQuestionList
+    addMainQuestion: AddMainQuestion
+    editMainQuestion: EditMainQuestion
+    getMainQuestionInfo: GetMainQuestionInfo
+    getMainQuestionList: GetMainQuestionList
+    /** 获取大题评卷结构 */
+    getQuestionStruct: GetQuestionStruct
+  }
+}

+ 38 - 0
src/api/api-types/role.d.ts

@@ -0,0 +1,38 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 角色管理 */
+export namespace Role {
+  /** role api  */
+  interface RawRole {
+    code: ROLE
+    roleName: string
+    updateTime: string
+    updaterName: string
+  }
+
+  type GetRoleList = BaseDefine<{ role?: ROLE }, RawRole[]>
+  type GetRolePrivilege = BaseDefine<
+    { role: ROLE },
+    {
+      code: string
+      hasPrivilege: boolean
+      id: number
+      name: string
+      nodeCode: string
+      nodeId: number
+      nodeName: string
+      parentId: number
+      parentNodeId: number
+    }[]
+  >
+
+  type SetRolePrivilege = BaseDefine<{ role: ROLE; privilegeIds: number[] }>
+
+  /** role api end */
+
+  export interface ApiMap {
+    getRoleList: GetRoleList
+    getRolePrivilege: GetRolePrivilege
+    setRolePrivilege: SetRolePrivilege
+  }
+}

+ 614 - 0
src/api/api-types/statistics.d.ts

@@ -0,0 +1,614 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 监控分析 */
+export namespace Statistics {
+  interface BaseFilterOption {
+    subjectCode?: string
+    questionMainNumber?: number
+    markingGroupNumbers?: number[]
+  }
+
+  /** 质量统计-自查一致性分析 */
+  interface SelfCheckAnalysisReq {
+    /** 结束时间,格式:yyyyMMddHHmmss */
+    endTime: string
+    /** 小组号 */
+    markingGroupNumber?: number
+    /** 大题号 */
+    questionMainNumber?: number
+    /** 开始时间,格式:yyyyMMddHHmmss */
+    startTime: string
+    /** 科目代码 */
+    subjectCode: string
+  }
+  interface SelfCheckAnalysisResponse {
+    /** 平均离差 */
+    avgDiff: number
+    /** 自查份数 */
+    checkCount: number
+    /** 评卷员ID */
+    markerId: number
+    /** 评卷员名称 */
+    markerName: string
+  }
+
+  type SelfCheckAnalysis = BaseDefine<SelfCheckAnalysisReq, SelfCheckAnalysisResponse[]>
+
+  interface elfCheckAnalysisDiffListItemPaper {
+    diff: number
+    lastMarkScore: number
+    markScore: number
+    markTime: string
+    secretNumber: string
+    taskId: number
+  }
+
+  interface SelfCheckAnalysisDiffListItem {
+    diff: number
+    papers: elfCheckAnalysisDiffListItemPaper[]
+  }
+
+  type SelfCheckAnalysisDiffList = BaseDefine<
+    {
+      markerId?: number
+      questionMainNumber?: number
+      subjectCode: string
+    },
+    SelfCheckAnalysisDiffListItem[]
+  >
+
+  /** 质量分析 - 自查数据详情 */
+  interface SelfCheckDataDetail {
+    diff: number
+    filePath: string
+    mainName: string
+    mainNumber: number
+    markTime: string
+    markerName: string
+    markerScore: number
+    secretNumber: string
+    selfScore: number
+    taskId: number
+  }
+  type GetSelfCheckDataDetail = BaseDefine<
+    {
+      subjectCode: string
+      mainNumber: number | string
+      markingGroupNumber: number | string
+      startTime: string
+      endTime: string
+    },
+    SelfCheckDataDetail[]
+  >
+
+  /** 质量统计-自查数据打分 */
+  type MarkSelfCheckData = BaseDefine<{ taskId?: number; scores: number[] }>
+
+  /** 质量统计-自查数据打回 */
+  type RejectSelfCheckData = BaseDefine<{ id?: number; reason: string; description: string }>
+
+  /** 质量分析- 抽查情况统计 */
+  interface StatisticCheckInfo {
+    customCheckCount: number
+    customCheckReScoreCount: number
+    markerId: number
+    markerName: string
+    questionMainName: string
+    questionMainNumber: number
+    rejectCount: number
+    sysCheckCount: number
+    sysCheckReScoreCount: number
+  }
+
+  type StatisticCheckOverview = BaseDefine<
+    {
+      questionMainNumber?: number
+      subjectCode: string
+      markingGroupLeaderId?: number
+    },
+    StatisticCheckInfo[]
+  >
+  /** 质量统计-主观题校验列表 */
+  interface SubjectiveListItem {
+    filePath: string
+    headerName: string
+    headerScore: number
+    mainName: string
+    mainNumber: number
+    markerScore: number
+    secretNumber: number
+    status: string
+    taskId: number
+    updateTime: string
+  }
+
+  type GetSubjectiveCheckList = BaseDefine<
+    MultipleQuery<{
+      subjectCode: string
+      mainNumber?: number
+      checked?: boolean
+      rule: 'RULE1' | 'RULE2' | 'RULE3' | 'RULE4'
+    }>,
+    MultipleResult<SubjectiveListItem>
+  >
+
+  type SubjectiveCheckMark = BaseDefine<{ taskId?: number; scores: number[] }>
+
+  type SubjectiveCheckConfirm = BaseDefine<{ taskId?: number }>
+
+  /** 决策分析-评卷进度统计(整体) */
+  interface MarkProgressResponse {
+    /** 已完成数 */
+    finishCount: number
+    /** 完成比率 */
+    finishRate: number
+    /** 大题名称 */
+    questionMainName: string
+    /** 大题号 */
+    questionMainNumber: number
+    /** 预计耗时(秒) */
+    takeTime: number
+    /** 试卷总量 */
+    totalPaper: number
+  }
+
+  type GetMarkProgress = BaseDefine<{ subjectCode: string }, MarkProgressResponse[]>
+
+  /** 决策分析-评卷进度统计(按小组) */
+  interface MarkProgressByGroup {
+    dayFinishCount: number
+    dayFinishRate: number
+    finishCount: number
+    finishRate: number
+    markingGroupNumber: number
+  }
+
+  type GetMarkProgressByGroup = BaseDefine<{ subjectCode: string; questionMainNumber?: number }, MarkProgressByGroup[]>
+
+  /** 决策分析-评卷进度统计(按评卷员) */
+  interface MarkProgressByMarker {
+    dayFinishCounts: { count: number; date: string }[]
+    markerId: number
+    markerName: string
+    markingGroupNumber: number
+    totalFinishCount: number
+  }
+  type GetMarkProgressByMarker = BaseDefine<
+    { subjectCode: string; questionMainNumber?: number; markingGroupNumbers?: number },
+    MarkProgressByMarker[]
+  >
+
+  type ExportMarkProgressByMarker = BaseDefine<{
+    subjectCode: string
+    questionMainNumber?: number
+    markingGroupNumber?: number
+  }>
+
+  /** 科目进度收尾 */
+  interface SubjectProgressEndInfo {
+    arbitrationPaperRate: number
+    checkPaperCount: number
+    checkPaperRate: number
+    finishCount: number
+    finishRate: number
+    questionMainName: string
+    questionMainNumber: number
+    subjectiveUnVerifyPaperCount: number
+    todoArbitrationPaperCount: number
+    todoProblemPaperCount: number
+    todoSamePaperCount: number
+    totalPaper: number
+  }
+
+  type SubjectProgressEnd = BaseDefine<{ subjectCode: string }, SubjectProgressEndInfo[]>
+
+  interface BaseParams {
+    subjectCode: string
+    questionMainNumber?: number
+    markingGroupNumber?: number
+  }
+
+  /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
+
+  interface UnMarkPaper {
+    markerId: number
+    markerName: string
+    questionMainName: string
+    questionMainNumber: number
+    secretNumber: string
+    taskId: number
+  }
+  type UnMarkPaperList = BaseDefine<MultipleQuery<BaseParams>, MultipleResult<UnMarkPaper>>
+  /** 质量统计-收尾检查-未处理雷同卷列表 */
+  interface UnProcessSimilar {
+    questionMainName: string
+    questionMainNumber: number
+    sameSecretNumber: string
+    secretNumber: string
+  }
+  type UnProcessSimilarList = BaseDefine<BaseParams, UnProcessSimilar[]>
+  /** 质量统计-收尾检查-未处理问题卷列表 */
+  interface UnProcessProblem {
+    questionMainName: string
+    questionMainNumber: number
+    secretNumber: string
+  }
+  type UnProcessProblemList = BaseDefine<BaseParams, UnProcessProblem[]>
+
+  type ChangeTaskMarker = BaseDefine<{ loginName: string; taskId?: number }>
+
+  /** 小组监控 */
+  interface GroupMonitor {
+    /** 已浏览自定义抽查卷数 */
+    customCheckCount: number
+    /** 已浏览问题卷数 */
+    problemCount: number
+    /** 已浏览系统抽查卷数 */
+    sysCheckCount: number
+    /** 组长 */
+    markingGroupLeader: string
+    /** 组长ID */
+    markingGroupLeaderId: string
+    /** 小组号 */
+    markingGroupNumber: number
+    /** 已给分自定义抽查卷数 */
+    customCheckReScoreCount: number
+    /** 已给分问题卷数 */
+    problemReScoreCount: number
+    /** 已给分系统抽查卷数 */
+    sysCheckReScoreCount: number
+    /** 已浏览试卷总数 */
+    totalCount: number
+    /** 已给分试卷总数 */
+    totalReScoreCount: number
+  }
+  type GetGroupMonitor = BaseDefine<BaseFilterOption, GroupMonitor[]>
+
+  /** 小组监控 - 抽查详情 */
+  interface GroupMonitorDetail {
+    filePath: string
+    headerRatio: string
+    headerScore: number
+    mainName: string
+    mainNumber: number
+    markTime: string
+    markerName: string
+    markerScore: number
+    objectiveScore: number
+    scoreLevel: string
+    secretNumber: string
+    taskId: number
+  }
+
+  type GetGroupMonitorDetail = BaseDefine<
+    MultipleQuery<{ operateType: 'VIEW' | 'MARK'; headerId: string | number }>,
+    MultipleResult<GroupMonitorDetail>
+  >
+
+  type MarkMonitorDetailTask = BaseDefine<{ taskId?: number; scores: number[] }>
+
+  /** 决策分析- 统计 */
+  interface StatisticItem {
+    markerId: number
+    markerName: string
+    value: number
+  }
+
+  type GetStatistics = BaseDefine<BaseFilterOption, Record<string, StatisticItem[]>>
+
+  /** 决策分析-监控统计(按小组) */
+  interface GetStatisticsByGroupParams {
+    endTime?: string
+    hasJudge?: boolean
+    markerId?: number
+    markingGroupNumbers?: number[]
+    questionMainNumber?: number
+    startTime?: string
+    subjectCode: string
+  }
+
+  interface GetStatisticsByGroupResponseItem {
+    /** 平均分 */
+    avg: number
+    /** 抽查改正量 */
+    checkCorrectCount: number
+    /** 抽查量 */
+    checkCount: number
+    /** 综合指数 */
+    integration: number
+    /** 评卷员ID */
+    markerId: number
+    /** 评卷员名称 */
+    markerName: string
+    /** 小组号 */
+    markingGroupNumber: number
+    /** 评卷份数 */
+    markingPaperCount: number
+    /** 评卷速度(n秒每个) */
+    markingRate: number
+    /** 评卷状态 */
+    markingStatus: string
+    /** 平均客主比 */
+    objSubAvgRate: number
+    /** 客主比(近N分钟) */
+    objSubRate: number
+    /** 客观平均分 */
+    objectiveAvg: number
+    /** 客观标准差 */
+    objectiveStd: number
+    /** 客观0分量 */
+    objectiveZero: number
+    /** 是否在线 */
+    online: boolean
+    /** 重评待确认量 */
+    reMarkConfirmCount: number
+    /** 重评量 */
+    reMarkCount: number
+    /** 最低分(近N分钟) */
+    scoreLow: number
+    /** 最高分(近N分钟) */
+    scoreTop: number
+    /** 方差 */
+    sd: number
+    /** 标准差 */
+    std: number
+    /** 相关系数 */
+    xyRelate: number
+    /** 评卷员明细统计列表 */
+    markerDetails: GetStatisticsByGroupResponseItem[] | null
+  }
+
+  type GetStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams, GetStatisticsByGroupResponseItem[]>
+
+  /** 决策分析-监控统计导出(按小组) */
+  type ExportStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams>
+
+  /** 培训监控 */
+  interface TrainingMonitorParams {
+    subjectCode: string
+    mainNumber?: number
+    markingGroupNumber?: number
+    markStage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
+    forceGroupNumber?: number
+  }
+  interface TrainingMonitorResponse {
+    /** 平均分 */
+    avg: number
+    /** 差异份数 */
+    diffCount: number
+    forceGroupMarkerId: number
+    /** 评卷员ID */
+    markerId: number
+    /** 评卷员名称 */
+    markerName: string
+    /** 打分列表 */
+    scoreList: number[]
+    /** 状态 */
+    stage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
+    /** 状态名称 */
+    status: string
+    /** 标准差 */
+    std: number
+    /** 相关系数 */
+    xyRelate: number
+  }
+  type GetTrainingMonitor = BaseDefine<TrainingMonitorParams, { data: TrainingMonitorResponse[]; header: number[] }>
+
+  interface MonitorDetail {
+    fileName: string
+    filePath: string
+    forceGroupNumber: number
+    group: string
+    mainNumber: number
+    markTime: string
+    markerName: string
+    markScore: number
+    score: number
+    secretNumber: string
+    taskId: number
+  }
+
+  /**培训监控 - 培训卷调卷详情 */
+  type GetTrainingMonitorDetail = BaseDefine<{ markerId: string; taskType: SamplePaperType }, MonitorDetail[]>
+
+  /**培训监控 - 强制考核卷调卷详情 */
+  type GetAssessMonitorDetail = BaseDefine<{ forceGroupMarkerId: string }, MonitorDetail[]>
+
+  /**培训监控 - 强制考核卷审核 */
+  type PutAssessMonitorPass = BaseDefine<{ forceGroupMarkerIds: number[]; pass: boolean }>
+
+  /**培训监控 - 培训卷审核 */
+  type PutSampleMonitorPass = BaseDefine<{ markerIds: number[]; markStage: SamplePaperType; pass: boolean }>
+
+  /** 个人统计 */
+  interface PersonalStatistic {
+    avg: number
+    markerId: number
+    markerName: string
+    markingPaperCount: number
+    markingRate: number
+    questionMainName: string
+    questionMainNumber: number
+  }
+  type GetPersonalStatistic = BaseDefine<{ startTime: string; endTime: string; markerId?: number }, PersonalStatistic>
+
+  /** 提取阅卷明细 */
+  interface PersonalMarkDetail {
+    filePath: string
+    mainName: string
+    mainNumber: number
+    markTime: string
+    markerName: string
+    markerRatio: string
+    markerScore: number
+    objectiveScore: number
+    secretNumber: string
+    status: string
+    taskId: number
+  }
+
+  type GetPersonalMarkDetail = BaseDefine<
+    MultipleQuery<{
+      markerId?: number | string
+      score?: number | string
+    }>,
+    MultipleResult<PersonalMarkDetail>
+  >
+
+  type UpdatePersonalMarkDetailScore = BaseDefine<{ taskId?: number; scores: number[] }>
+
+  interface SystemSpotListItem {
+    examNumber: string
+    filePath: string
+    id: number
+    mainNumber: number
+    markScore: number
+    markTime: string
+    markerName: string
+    secretNumber: number
+    status: string
+    taskId: number
+  }
+
+  type GetSystemSpotList = BaseDefine<
+    MultipleQuery<{
+      level: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5' | ''
+      status: 'INITIAL' | 'VIEWED' | 'GRADED' | 'REJECT'
+      mainNumber?: number
+    }>,
+    MultipleResult<SystemSpotListItem>
+  >
+
+  /** 系统抽查卷打分 */
+  type MarkSystemSpotPaper = BaseDefine<{ id?: number; scores: number[] }>
+
+  /** 系统抽查卷打回 */
+  type RejectSystemSpotPaper = BaseDefine<{ description: string; id: number; reason: string }>
+
+  /** 系统抽查卷浏览 */
+  type ViewSystemSpotPaper = BaseDefine<{ id?: number }>
+
+  interface StatisticByGroup {
+    subjectCode: string
+    questionMainNumber?: number
+    markingGroupNumber?: number
+    startTime: string
+    endTime: string
+  }
+
+  interface StatisticByMarker {
+    markerId?: number
+    endTime: string
+    startTime: string
+  }
+
+  interface StatisticInfo {
+    count: number
+    rate: number
+    scoreEnd: number
+    scoreStart: number
+  }
+
+  interface StatisticResult {
+    segmentsByAll: StatisticInfo[]
+    segmentsByGroup: StatisticInfo[]
+    segmentsByUser: StatisticInfo[]
+  }
+
+  /** 决策分析-监控统计-客观题分数分布(按小组) */
+  type GetStatisticObjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
+
+  /** 决策分析-监控统计-客观题分数分布(按评卷员) */
+  type GetStatisticObjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
+
+  /** 决策分析-监控统计-主观题分数分布(按小组) */
+  type GetStatisticSubjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
+
+  /** 决策分析-监控统计-主观题分数分布(按评卷员) */
+  type GetStatisticSubjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
+
+  interface ApiMap {
+    /** 质量统计-自查一致性分析 */
+    selfCheckAnalysis: SelfCheckAnalysis
+    /** 质量统计-自查一致性分析-离差列表 */
+    selfCheckAnalysisDiffList: SelfCheckAnalysisDiffList
+    /** 质量统计- 自查数据详情 */
+    getSelfCheckDataDetail: GetSelfCheckDataDetail
+    /** 质量统计-自查数据打分 */
+    markSelfCheckData: MarkSelfCheckData
+    /** 质量统计-自查数据打回 */
+    rejectSelfCheckData: RejectSelfCheckData
+    /** 质量统计-抽查情况统计 */
+    statisticCheckOverview: StatisticCheckOverview
+    /** 质量统计-主观题校验 */
+    getSubjectiveCheckList: GetSubjectiveCheckList
+    /** 质量统计-主观题校验打分 */
+    subjectiveCheckMark: SubjectiveCheckMark
+    /** 质量统计-主观题校验确认 */
+    subjectiveCheckConfirm: SubjectiveCheckConfirm
+    /** 决策分析-评卷进度统计(整体) */
+    getMarkProgress: GetMarkProgress
+    /** 决策分析-评卷进度统计(按小组) */
+    getMarkProgressByGroup: GetMarkProgressByGroup
+    /** 决策分析-评卷进度统计(按评卷员) */
+    getMarkProgressByMarker: GetMarkProgressByMarker
+    /** 决策分析-评卷进度统计导出(按评卷员) */
+    exportMarkProgressByMarker: ExportMarkProgressByMarker
+    /** 质量统计-科目进度收尾 */
+    subjectProgressEnd: SubjectProgressEnd
+    /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
+    unMarkPaperList: UnMarkPaperList
+    /** 质量统计-收尾检查-未处理雷同卷列表 */
+    unProcessSimilarList: UnProcessSimilarList
+    /** 质量统计-收尾检查-未处理问题卷列表 */
+    unProcessProblemList: UnProcessProblemList
+    /** 任务指定新评卷员 */
+    changeTaskMarker: ChangeTaskMarker
+    /** 决策分析-小组监控 */
+    getGroupMonitor: GetGroupMonitor
+    /** 决策分析-小组监控-抽查详情 */
+    getGroupMonitorDetail: GetGroupMonitorDetail
+    /** 决策分析-小组监控-抽查详情给分 */
+    markMonitorDetailTask: MarkMonitorDetailTask
+    /** 决策分析-监控统计(整体) */
+    getStatistics: GetStatistics
+
+    /** 决策分析-监控统计(按小组) */
+    getStatisticsByGroup: GetStatisticsByGroup
+    /** 决策分析-监控统计导出(按小组) */
+    exportStatisticsByGroup: ExportStatisticsByGroup
+    /** 决策分析-监控统计客观题&主观题分数分布 */
+    /**培训监控 */
+    getTrainingMonitor: GetTrainingMonitor
+    /**培训监控 - 培训卷调卷详情 */
+    getTrainingMonitorDetail: GetTrainingMonitorDetail
+    /**培训监控 - 强制考核卷调卷详情 */
+    getAssessMonitorDetail: GetAssessMonitorDetail
+    /**培训监控 - 强制考核卷审核 */
+    putAssessMonitorPass: PutAssessMonitorPass
+    /**培训监控 - 培训卷审核 */
+    putSampleMonitorPass: PutSampleMonitorPass
+    /** 个人统计 */
+    getPersonalStatistic: GetPersonalStatistic
+    /** 提取阅卷明细 */
+    getPersonalMarkDetail: GetPersonalMarkDetail
+    /** 提取阅卷明细 - 给分 */
+    updatePersonalMarkDetailScore: UpdatePersonalMarkDetailScore
+    /** 系统抽查卷 */
+    getSystemSpotList: GetSystemSpotList
+    /** 系统抽查卷打分 */
+    markSystemSpotPaper: MarkSystemSpotPaper
+    /** 系统抽查卷打回 */
+    rejectSystemSpotPaper: RejectSystemSpotPaper
+    /** 系统抽查卷浏览 */
+    viewSystemSpotPaper: ViewSystemSpotPaper
+    /** 决策分析-监控统计-客观题分数分布(按小组) */
+    getStatisticObjectiveByGroup: GetStatisticObjectiveByGroup
+    /** 决策分析-监控统计-客观题分数分布(按评卷员) */
+    getStatisticObjectiveByMarker: GetStatisticObjectiveByMarker
+    /** 决策分析-监控统计-主观题分数分布(按小组) */
+    getStatisticSubjectiveByGroup: GetStatisticSubjectiveByGroup
+    /** 决策分析-监控统计-主观题分数分布(按评卷员) */
+    getStatisticSubjectiveByMarker: GetStatisticSubjectiveByMarker
+  }
+}

+ 64 - 0
src/api/api-types/subject.d.ts

@@ -0,0 +1,64 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** 科目管理 */
+export namespace Subject {
+  /** 删除科目 */
+  type DeleteSubject = BaseDefine<{ id: number }>
+
+  interface BaseSubjectInfo {
+    /** 科目代码 */
+    code: string
+    /** 科目名称 */
+    name: string
+    /** 启用/禁用 */
+    enable: boolean
+  }
+
+  interface SubjectInfo extends BaseSubjectInfo {
+    /** 科目ID */
+    id: number
+    /** 考试ID */
+    examId: number
+    /** 考试名称 */
+    examName: string
+    /** 客观分 */
+    objectiveScore: number
+    /** 主观分 */
+    subjectiveScore: number
+    /** 试卷总分 */
+    totalScore: number
+  }
+
+  /** 获取科目信息 */
+  type GetSubjectInfo = BaseDefine<{ id: number }, SubjectInfo>
+
+  /** 查询科目列表 */
+  type GetSubjectList = BaseDefine<
+    MultipleQuery<{
+      /** 科目代码 */
+      code?: string
+      /** 科目名称 */
+      name?: string
+      /** 启用/禁用 */
+      enable?: boolean
+    }>,
+    MultipleResult<SubjectInfo>
+  >
+  /** 新增/修改科目 */
+  type SaveSubjectInfo = BaseDefine<BaseSubjectInfo & { id?: number }>
+
+  /** 启用/禁用科目 */
+  type ToggleEnableSubject = BaseDefine<{ ids: number[]; enable: boolean }>
+  export interface ApiMap {
+    /** 删除考试 */
+    deleteSubject: DeleteSubject
+    /** 获取考试信息 */
+    getSubjectInfo: GetSubjectInfo
+    /** 查询考试列表 */
+    getSubjectList: GetSubjectList
+    /** 新增/修改考试 */
+    saveSubjectInfo: SaveSubjectInfo
+    /** 启用/禁用科目 */
+    toggleEnableSubject: ToggleEnableSubject
+  }
+}

+ 138 - 0
src/api/api-types/system.d.ts

@@ -0,0 +1,138 @@
+import { BaseDefine, MultipleQuery, MultipleResult } from './base'
+
+/** meta data  基础数据导入配置 */
+export namespace System {
+  /** 评卷数据导入 */
+  interface MarkingDataImport {
+    dayNumber?: number
+    file?: File
+    mainNumber?: number
+    separator: string
+    subjectCode: string
+  }
+
+  type ImportMarkingData = BaseDefine<MarkingDataImport>
+
+  /** 获取导入文件路径 */
+  type GetImportFilePath = BaseDefine<
+    {
+      filePathType: 'SLICE' | 'SAMPLE_A' | 'SAMPLE_B' | 'RF' | 'MARK_STANDARD'
+      mainNumber?: number
+      subjectCode: string
+    },
+    { rfPath: string; sampleAPath: string; sampleBPath: string; markStandardPath: string }
+  >
+
+  interface SamplePaperImport {
+    file?: File
+    /** 大题号 */
+    mainNumber?: number
+    /** 试卷类型 */
+    paperType?: SamplePaperType
+    /** 试卷密码前缀 */
+    prefix: string
+    /** 分隔符 */
+    separator: string
+    /** 科目代码 */
+    subjectCode: string
+  }
+
+  type ImportSamplePaper = BaseDefine<SamplePaperImport>
+
+  interface RfPaperImport {
+    file?: File
+    /** 试卷密码前缀 */
+    prefix: string
+    /** 大题号 */
+    mainNumber?: number
+    /** 科目代码 */
+    subjectCode: string
+    /** 分隔符 */
+    separator: string
+  }
+
+  type ImportRfPaper = BaseDefine<RfPaperImport>
+
+  interface ScoreListItem {
+    /** 作文评卷员代码 */
+    compositionMarker: string
+    /** 作文雷同标记 */
+    compositionSame: string
+    /** 作文分 */
+    compositionScore: string
+    /** 作文评卷标志 */
+    compositionTag: string
+    /** 准考证号 */
+    examNumber: string
+    id: number
+    /** 科目代码 */
+    subjectCode: string
+    /** 主观分 */
+    subjectScore: string
+    /** 翻译评卷员代码 */
+    translateMarker: string
+    /** 翻译雷同标记 */
+    translateSame: string
+    /** 翻译分 */
+    translateScore: string
+    /** 翻译评卷标志 */
+    translateTag: string
+  }
+
+  type GetCetScoreList = BaseDefine<MultipleQuery<{ subjectCode: string }>, MultipleResult<ScoreListItem>>
+
+  type ExportCetScoreList = BaseDefine<{ subjectCode: string }, null>
+
+  /** 任务设置 - 按评卷员设置 */
+  type MarkerSetCount = BaseDefine<{ markDayCount?: number; markTotalCount?: number; userId: number[] }>
+
+  /** 任务设置 - 按小组追加 */
+  type MarkGroupUpdateCount = BaseDefine<{
+    markCount?: number
+    markingGroupNumber?: number
+    mainNumber?: number
+    subjectCode?: string
+  }>
+
+  /** 任务设置-获取任务计划 */
+  interface TaskDetail {
+    finishCount: number
+    markCount: number
+    markingGroupNumber: number
+  }
+  type GetTaskDetail = BaseDefine<
+    {
+      mainNumber?: number
+      markingGroupNumber?: number
+      subjectCode?: string
+    },
+    TaskDetail[]
+  >
+  /** 任务设置-获取剩余任务 */
+  type GetUnMarkTasks = BaseDefine<
+    {
+      mainNumber?: number
+      markingGroupNumber?: number
+      subjectCode?: string
+    },
+    {
+      unmarkCount: 0
+    }
+  >
+  export interface ApiMap {
+    importMarkingData: ImportMarkingData
+    getImportFilePath: GetImportFilePath
+    importSamplePaper: ImportSamplePaper
+    importRfPaper: ImportRfPaper
+    getCetScoreList: GetCetScoreList
+    exportCetScoreList: ExportCetScoreList
+    /** 任务设置 - 按评卷员设置 */
+    markerSetCount: MarkerSetCount
+    /** 任务设置 - 按小组追加 */
+    markGroupUpdateCount: MarkGroupUpdateCount
+    /** 任务设置-获取任务计划 */
+    getTaskDetail: GetTaskDetail
+    /** 任务设置-获取剩余任务 */
+    getUnMarkTasks: GetUnMarkTasks
+  }
+}

+ 14 - 1621
src/api/api.d.ts

@@ -1,7 +1,17 @@
 import type { AxiosRequestConfig } from 'axios'
-import type { BaseDefine, MultipleQuery, MultipleResult, BaseMultiplePageQuery } from '@/api/api-modules/base'
-import { User } from './api-modules/user'
-export { MultipleQuery, MultipleResult, BaseMultiplePageQuery, User }
+import type { BaseDefine, MultipleQuery, MultipleResult, BaseMultiplePageQuery } from './api-types/base'
+import { User } from './api-types/user'
+import { Role } from './api-types/role'
+import { Exam } from './api-types/exam'
+import { Subject } from './api-types/subject'
+import { Statistics } from './api-types/statistics'
+import { Question } from './api-types/question'
+import { Marking } from './api-types/marking'
+import { System } from './api-types/system'
+import { Message } from './api-types/message'
+import { ForceCheck } from './api-types/forceCheck'
+import { Expert } from './api-types/expert'
+
 export type ApiMap = User.ApiMap &
   Role.ApiMap &
   Exam.ApiMap &
@@ -15,6 +25,7 @@ export type ApiMap = User.ApiMap &
   Expert.ApiMap
 
 export type ApiKeys = keyof ApiMap
+export { MultipleQuery, MultipleResult, BaseMultiplePageQuery }
 
 export type DefineApiModule<M extends object> = {
   [k in keyof M]: string | (AxiosRequestConfig & { url: string })
@@ -29,1621 +40,3 @@ export type ExtractApiResponse<T extends ApiKeys> = ApiMap[T] extends BaseDefine
 export type ExtractMultipleApiResponse<T extends ApiKeys> = ExtractApiResponse<T> extends MultipleResult<infer R>
   ? R
   : never
-
-/** 专家卷浏览 */
-
-export namespace Expert {
-  interface SamplePaperListItem {
-    createName: string
-    createTime: string
-    fileName: string
-    filePath: string
-    id: number
-    mainNumber: number
-    paperType: string
-    score: number
-    secretNumber: number
-    type: string
-  }
-  type GetSampleList = BaseDefine<
-    MultipleQuery<{ mainNumber?: number; paperType: 'SAMPLE_A' | 'SAMPLE_B' }>,
-    MultipleResult<SamplePaperListItem>
-  >
-
-  interface RfSampleListItem {
-    createName: string
-    createTime: string
-    filePath: string
-    id: number
-    mainName: string
-    mainNumber: number
-    score: number
-    scoreLevel: string
-    secretNumber: number
-  }
-
-  type GetRfSampleList = BaseDefine<MultipleQuery<{ mainNumber?: number }>, MultipleResult<RfSampleListItem>>
-
-  type UpdateMarkScore = BaseDefine<{ id?: number; scores: number[] }>
-
-  interface StandardListItem {
-    createName: string
-    createTime: string
-    fileName: string
-    filePath: string
-    id: number
-    mainNumber: number
-    score: number
-    secretNumber: number
-    taskId: number
-  }
-
-  type GetStandardList = BaseDefine<
-    MultipleQuery<{
-      mainNumber?: number
-      dispensed: boolean | ''
-      scoreStart?: number | string
-      scoreEnd?: number | string
-    }>,
-    MultipleResult<StandardListItem>
-  >
-
-  type TransformStandardToSample = BaseDefine<{ id?: number }>
-
-  interface ExpertAssessListItem {
-    createName: string
-    createTime: string
-    filePath: string
-    forceGroupNumber: number
-    id: number
-    mainName: string
-    mainNumber: number
-    score: number
-    secretNumber: number
-  }
-
-  type GetExpertAssessList = BaseDefine<
-    MultipleQuery<{
-      mainNumber?: number
-      forceGroupNumber?: number
-    }>,
-    MultipleResult<ExpertAssessListItem>
-  >
-
-  interface ExpertPickListItem {
-    createName: string
-    createTime: string
-    filePath: string
-    forceGroupNumber: number
-    id: number
-    mainName: string
-    mainNumber: number
-    role: string
-    roleName: string
-    score: number
-    secretNumber: number
-  }
-
-  type GetExpertPickList = BaseDefine<
-    MultipleQuery<{
-      mainNumber?: number
-      forceGroupNumber?: number
-      paperType: ExpertPickType
-      role: Exclude<ROLE, 'ADMIN'>
-    }>,
-    MultipleResult<ExpertPickListItem>
-  >
-
-  type DeletePaper = BaseDefine<{ id?: number }>
-
-  export interface ApiMap {
-    /** AB培训卷 */
-    getSampleList: GetSampleList
-    /** RF卷 */
-    getRfSampleList: GetRfSampleList
-    /** 修改分数 */
-    updateMarkScore: UpdateMarkScore
-    /** 获取标准卷 */
-    getStandardList: GetStandardList
-    /** 标准卷转样卷 */
-    transformStandardToSample: TransformStandardToSample
-    /** 强制考核卷列表 */
-    getExpertAssessList: GetExpertAssessList
-    /** 专家挑选卷 */
-    getExpertPickList: GetExpertPickList
-    /** 删除 */
-    deletePaper: DeletePaper
-  }
-}
-
-/** 强制考核接口 */
-export namespace ForceCheck {
-  /** 分发考核卷 */
-  type HandOutForceCheck = BaseDefine<{
-    forceGroupNumber?: number
-    mainNumber?: number
-    markerIds: number[]
-    subjectCode: string
-  }>
-  /** 获取考核卷组 */
-  interface ForceCheckGroup {
-    createTime: string
-    creatorId: number
-    examId: number
-    forceGroupNumber: number
-    id: number
-    mainNumber: number
-    subjectCode: string
-    updateTime: string
-    updaterId: number
-  }
-  type GetForceCheckGroupList = BaseDefine<{ mainNumber?: number; subjectCode: string }, ForceCheckGroup[]>
-  /** 获取分发进度 */
-  interface HandOutProgress {
-    /** 已评量 */
-    finishCount: number
-    /** 强制卷组号 */
-    forceGroupNumber: number
-    /** 大题 */
-    mainQuestion: string
-    /** 评卷员 */
-    marker: string
-    /** 小组号 */
-    markingGroupNumber: number
-    /** 未评量 */
-    pendingCount: number
-    /** 科目 */
-    subject: string
-    /** 总量 */
-    totalCount: number
-  }
-  type GetHandOutProgressList = BaseDefine<
-    { mainNumber?: number; subjectCode: string; forceGroupNumber?: number },
-    HandOutProgress[]
-  >
-  export interface ApiMap {
-    /** 分发考核卷 */
-    handOutForceCheck: HandOutForceCheck
-    /** 获取考核卷组 */
-    getForceCheckGroupList: GetForceCheckGroupList
-    /** 获取分发进度 */
-    getHandOutProgressList: GetHandOutProgressList
-  }
-}
-
-/** 消息接口 */
-
-export namespace Message {
-  interface BaseMessageResponse {
-    id: number
-    content: string
-    receiveUserId: number
-    receiveUserName: string
-    sendTime: string
-    sendUserId: number
-    sendUserName: string
-    unReadCount: number
-  }
-  /** 历史消息 */
-  type GetMessageHistory = BaseDefine<{ sendUserId: number }, BaseMessageResponse[]>
-  /** 消息列表 */
-  type GetMessageList = BaseDefine<null, BaseMessageResponse[]>
-  /** 发送/回复消息 */
-  type SendMessage = BaseDefine<{ content: string; receiveUserIds: number[] }>
-  /** 未读消息 - 最新5条 */
-  type GetUnReadMessage = BaseDefine<null, { newCount: number; messages: BaseMessageResponse[] }>
-  /** 已读 */
-  type HandleReadMessage = BaseDefine<{ id: number }>
-  export interface ApiMap {
-    /** 历史消息 */
-    getMessageHistory: GetMessageHistory
-    /** 消息列表 */
-    getMessageList: GetMessageList
-    /** 发送/回复消息 */
-    sendMessage: SendMessage
-    /** 未读消息 - 最新5条 */
-    getUnReadMessage: GetUnReadMessage
-    /** 已读 */
-    handleReadMessage: HandleReadMessage
-  }
-}
-
-/** meta data  基础数据导入配置 */
-export namespace System {
-  /** 评卷数据导入 */
-  interface MarkingDataImport {
-    dayNumber?: number
-    file?: File
-    mainNumber?: number
-    separator: string
-    subjectCode: string
-  }
-
-  type ImportMarkingData = BaseDefine<MarkingDataImport>
-
-  /** 获取导入文件路径 */
-  type GetImportFilePath = BaseDefine<
-    {
-      filePathType: 'SLICE' | 'SAMPLE_A' | 'SAMPLE_B' | 'RF' | 'MARK_STANDARD'
-      mainNumber?: number
-      subjectCode: string
-    },
-    { rfPath: string; sampleAPath: string; sampleBPath: string; markStandardPath: string }
-  >
-
-  interface SamplePaperImport {
-    file?: File
-    /** 大题号 */
-    mainNumber?: number
-    /** 试卷类型 */
-    paperType?: SamplePaperType
-    /** 试卷密码前缀 */
-    prefix: string
-    /** 分隔符 */
-    separator: string
-    /** 科目代码 */
-    subjectCode: string
-  }
-
-  type ImportSamplePaper = BaseDefine<SamplePaperImport>
-
-  interface RfPaperImport {
-    file?: File
-    /** 试卷密码前缀 */
-    prefix: string
-    /** 大题号 */
-    mainNumber?: number
-    /** 科目代码 */
-    subjectCode: string
-    /** 分隔符 */
-    separator: string
-  }
-
-  type ImportRfPaper = BaseDefine<RfPaperImport>
-
-  interface ScoreListItem {
-    /** 作文评卷员代码 */
-    compositionMarker: string
-    /** 作文雷同标记 */
-    compositionSame: string
-    /** 作文分 */
-    compositionScore: string
-    /** 作文评卷标志 */
-    compositionTag: string
-    /** 准考证号 */
-    examNumber: string
-    id: number
-    /** 科目代码 */
-    subjectCode: string
-    /** 主观分 */
-    subjectScore: string
-    /** 翻译评卷员代码 */
-    translateMarker: string
-    /** 翻译雷同标记 */
-    translateSame: string
-    /** 翻译分 */
-    translateScore: string
-    /** 翻译评卷标志 */
-    translateTag: string
-  }
-
-  type GetCetScoreList = BaseDefine<MultipleQuery<{ subjectCode: string }>, MultipleResult<ScoreListItem>>
-
-  type ExportCetScoreList = BaseDefine<{ subjectCode: string }, null>
-
-  /** 任务设置 - 按评卷员设置 */
-  type MarkerSetCount = BaseDefine<{ markDayCount?: number; markTotalCount?: number; userId: number[] }>
-
-  /** 任务设置 - 按小组追加 */
-  type MarkGroupUpdateCount = BaseDefine<{
-    markCount?: number
-    markingGroupNumber?: number
-    mainNumber?: number
-    subjectCode?: string
-  }>
-
-  /** 任务设置-获取任务计划 */
-  interface TaskDetail {
-    finishCount: number
-    markCount: number
-    markingGroupNumber: number
-  }
-  type GetTaskDetail = BaseDefine<
-    {
-      mainNumber?: number
-      markingGroupNumber?: number
-      subjectCode?: string
-    },
-    TaskDetail[]
-  >
-  /** 任务设置-获取剩余任务 */
-  type GetUnMarkTasks = BaseDefine<
-    {
-      mainNumber?: number
-      markingGroupNumber?: number
-      subjectCode?: string
-    },
-    {
-      unmarkCount: 0
-    }
-  >
-  export interface ApiMap {
-    importMarkingData: ImportMarkingData
-    getImportFilePath: GetImportFilePath
-    importSamplePaper: ImportSamplePaper
-    importRfPaper: ImportRfPaper
-    getCetScoreList: GetCetScoreList
-    exportCetScoreList: ExportCetScoreList
-    /** 任务设置 - 按评卷员设置 */
-    markerSetCount: MarkerSetCount
-    /** 任务设置 - 按小组追加 */
-    markGroupUpdateCount: MarkGroupUpdateCount
-    /** 任务设置-获取任务计划 */
-    getTaskDetail: GetTaskDetail
-    /** 任务设置-获取剩余任务 */
-    getUnMarkTasks: GetUnMarkTasks
-  }
-}
-
-/** 评卷相关 */
-export namespace Marking {
-  /** 自定义查询 - 抽查 */
-
-  // 查询参数
-  interface CustomQuery {
-    /** 是否包含仲裁 */
-    arbitration?: boolean
-    /** 是否已抽查 */
-    checked?: boolean
-    /** 大题号 */
-    mainNumber?: number
-    /** 评卷员id */
-    markerId?: number
-    /** 小组号 */
-    markingGroupNumber?: number
-    /** 分数截止 */
-    scoreEnd?: number
-    /** 分数开始 */
-    scoreStart?: number
-    /** 科目代码 */
-    subjectCode?: string
-    /** 时间截止 */
-    timeEnd?: string
-    /** 时间开始 */
-    timeStart?: string
-    /** 密号 */
-    secretNumber?: string
-  }
-
-  /** 自定义抽查任务列表 */
-  interface CustomQueryTask {
-    customCheckNumber: number
-    examNumber: string
-    filePath: string
-    mainNumber: number
-    markTime: string
-    markerName: string
-    headerScore: number
-    markerScore: number
-    secretNumber: string
-    taskId: number
-  }
-  type GetCustomQueryTasks = BaseDefine<MultipleQuery<CustomQuery>, MultipleResult<CustomQueryTask>>
-
-  type SetCustomQueryConfig = BaseDefine<{ name: string; params: CustomQuery }>
-
-  type GetCustomQueryConfigList = BaseDefine<{ name: string }, { name: string; params: CustomQuery }[]>
-
-  /** 自定义查询 - 浏览 */
-  type ViewCustomQuery = BaseDefine<{ taskId: number }>
-
-  /** 自定义查询 - 修改卷型 */
-  type UpdateCustomPaperType = BaseDefine<{
-    taskId?: number
-    paperType: ExpertPickType
-    forceGroupNumber?: number
-  }>
-
-  /** 自定义查询 - 修改分数 */
-  type UpdateCustomPaperScore = BaseDefine<{
-    taskId?: number
-    scores: number[]
-  }>
-
-  type GetMarkingStandard = BaseDefine<null, { examId: number; mainNumber: number; subjectCode: string; url: string }>
-
-  interface Question {
-    intervalScore: number
-    subNumber: string
-    totalScore: number
-  }
-  interface Task {
-    /** 大题号 */
-    mainNumber: number
-    /** 大题名称 */
-    mainTitle: string
-    /** 小题列表 */
-    questionList: Question[]
-    /** 密号 */
-    secretNumber: string
-    /** 科目代码 */
-    subjectCode: string
-    /** 任务ID */
-    taskId: number
-    /** 任务类型 */
-    taskType: TaskType
-    /** 最小阅卷时长 */
-    minMarkTime: number
-    /** 试卷 path */
-    url: string
-  }
-
-  type GetMarkingTask = BaseDefine<null, Task[]>
-
-  /** 清除评卷任务缓存 */
-  type ClearCachedTasks = BaseDefine
-
-  interface MarkStatus {
-    markedCount: number
-    personCount: number
-    problemCount: number
-    totalCount: number
-  }
-
-  type GetMarkStatus = BaseDefine<null, MarkStatus>
-
-  interface SubmitMark {
-    markScore: number
-    markScores: number[]
-    spentTime: number
-    taskId: number
-    problem: boolean
-    problemType?: ProblemType
-  }
-
-  type SubmitMarkTask = BaseDefine<SubmitMark, MarkStatus>
-
-  interface HistoryTask {
-    mainNumber: number
-    mainTitle: number
-    markScore: number
-    markTime: string
-    markerScores: number[]
-    questionList: Question[]
-    secretNumber: string
-    subjectCode: string
-    taskId: number
-    taskType: string
-    url: string
-  }
-
-  type GetMarkHistory = BaseDefine<null, HistoryTask[]>
-
-  interface ProblemListParams {
-    mainNumber?: number
-    problemType: ProblemType | ''
-    status: '' | 'INITIAL' | 'PROCESSED'
-  }
-
-  interface ProblemListItem {
-    createTime: string
-    examNumber: string
-    filePath: string
-    headerName: number
-    headerScore: number
-    headerScores: number[]
-    id: number
-    mainNumber: number
-    mainName: string
-    markerName: string
-    markerRatio: string
-    markerScore: number
-    objectiveScore: number
-    problemSolveType: string
-    problemType: string
-    secretNumber: string
-    solveTime: string
-    taskId: number
-  }
-
-  type GetProblemHistory = BaseDefine<MultipleQuery<ProblemListParams>, MultipleResult<ProblemListItem>>
-
-  type MarkProblemPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-  interface MarkScoreHistory {
-    id: number
-    markScore: number
-    markerName: string
-    scoreLevel: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5'
-    markTime: string
-    secretNumber: string
-    status: string
-    taskId: number
-    url: string
-  }
-
-  type GetMarkScoreHistoryListWithTask = BaseDefine<{ taskId: number | string }, MarkScoreHistory[]>
-
-  type RejectMarkHistory = BaseDefine<{ description: string; id: number; reason: string }>
-
-  interface ArbitrationListItem {
-    chiefName: string
-    chiefRatio: string
-    chiefScore: number
-    deputyName: string
-    deputyRatio: string
-    deputyScore: number
-    filePath: string
-    groupLeaderName: string
-    groupLeaderRatio: string
-    groupLeaderScore: number
-    id: number
-    mainName: string
-    mainNumber: number
-    markerName: string
-    markerRatio: string
-    markerScore: number
-    objectiveScore: number
-    secretNumber: string
-    status: string
-    taskId: number
-    teamLeaderName: string
-    teamLeaderRatio: string
-    teamLeaderScore: number
-  }
-
-  type GetArbitrationList = BaseDefine<
-    MultipleQuery<{ mainNumber?: number; status: ArbitrationStatus | '' }>,
-    MultipleResult<ArbitrationListItem>
-  >
-
-  type MarkArbitrationPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-  type ViewArbitrationPaper = BaseDefine<{ id?: number }>
-
-  interface ReMarkPaperListItem {
-    confirm: string
-    confirmScore: number
-    filePath: string
-    id: number
-    mainNumber: number
-    mainName: string
-    markerName: string
-    markerScore: number
-    reMarkTime: string
-    secretNumber: string
-    taskId: number
-  }
-
-  type GetReMarkPaperList = BaseDefine<
-    MultipleQuery<{ mainNumber?: number; confirm: boolean }>,
-    MultipleResult<ReMarkPaperListItem>
-  >
-
-  type MarkReMarkPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-  type ConfirmReMarkPaper = BaseDefine<{ id?: number }>
-
-  interface TrainingRecord {
-    examId: number
-    markScore: number
-    score: number
-    secretNumber: string
-    subjectCode: string
-    taskId: number
-    taskType: string
-    url: string
-  }
-
-  type ViewTrainingRecord = BaseDefine<null, TrainingRecord[]>
-
-  interface SamplePaper {
-    description: string
-    examId: number
-    id: number
-    mainNumber: number
-    mainTitle: string
-    markTime: string
-    markerName: string
-    score: number
-    secretNumber: number
-    subjectCode: string
-    url: string
-  }
-
-  type ViewSamplePaper = BaseDefine<null, SamplePaper[]>
-
-  interface SamePaperListItem {
-    examNumber: string
-    filePath: string
-    id: number
-    mainNumber: number
-    markerName: string
-    sameExamNumber: string
-    sameFilePath: string
-    sameSecretNumber: string
-    secretNumber: number
-    status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-    taskId: number
-  }
-
-  type GetSimilarPaperList = BaseDefine<
-    MultipleQuery<{
-      mainNumber?: number
-      status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-    }>,
-    MultipleResult<SamePaperListItem>
-  >
-
-  type ConfirmIsSimilar = BaseDefine<{ id?: number; same: boolean }>
-
-  type ExportSimilarPaper = BaseDefine<
-    MultipleQuery<{
-      mainNumber?: number
-      status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-    }>
-  >
-
-  type SubmitSimilarPaper = BaseDefine<{ sameTaskId: number | string; taskId: number | string }>
-
-  export interface ApiMap {
-    /** 自定义查询 - 抽查 */
-    getCustomQueryTasks: GetCustomQueryTasks
-    /** 自定义查询 - 保存为快捷查询 */
-    setCustomQueryConfig: SetCustomQueryConfig
-    /** 自定义查询 - 获取快捷查询列表 */
-    getCustomQueryConfigList: GetCustomQueryConfigList
-    /** 自定义查询 - 浏览 */
-    viewCustomQuery: ViewCustomQuery
-    /** 自定义查询 - 修改卷型 */
-    updateCustomPaperType: UpdateCustomPaperType
-    /** 自定义查询 - 修改分数 */
-    updateCustomPaperScore: UpdateCustomPaperScore
-    /** 查看评分标准 */
-    getMarkingStandard: GetMarkingStandard
-    /** 获取评卷任务 */
-    getMarkingTask: GetMarkingTask
-    /** 清除评卷任务缓存 */
-    clearCachedTasks: ClearCachedTasks
-    /** 获取评卷进度 */
-    getMarkStatus: GetMarkStatus
-    /** 提交评卷任务 */
-    submitMarkTask: SubmitMarkTask
-    /** 获取回评历史 */
-    getMarkHistory: GetMarkHistory
-    /** 问题卷列表 */
-    getProblemHistory: GetProblemHistory
-    /** 问题卷打分 */
-    markProblemPaper: MarkProblemPaper
-    /** 通过taskId 查询给分记录 */
-    getMarkScoreHistoryListWithTask: GetMarkScoreHistoryListWithTask
-    /** 打回 */
-    rejectMarkHistory: RejectMarkHistory
-    /** 仲裁卷列表 */
-    getArbitrationList: GetArbitrationList
-    /** 仲裁卷打分 */
-    markArbitrationPaper: MarkArbitrationPaper
-    /** 仲裁卷浏览 */
-    viewArbitrationPaper: ViewArbitrationPaper
-    /** 重评卷列表 */
-    getReMarkPaperList: GetReMarkPaperList
-    /** 重评卷打分 */
-    markReMarkPaper: MarkReMarkPaper
-    /** 重评卷确认 */
-    confirmReMarkPaper: ConfirmReMarkPaper
-    /** 查看培训记录 */
-    viewTrainingRecord: ViewTrainingRecord
-    /** 查看样卷 */
-    viewSamplePaper: ViewSamplePaper
-    /** 雷同卷列表 */
-    getSimilarPaperList: GetSimilarPaperList
-    /** 是否雷同 */
-    confirmIsSimilar: ConfirmIsSimilar
-    /** 导出雷同 */
-    exportSimilarPaper: ExportSimilarPaper
-    /** 提交雷同卷 */
-    submitSimilarPaper: SubmitSimilarPaper
-  }
-}
-
-/** 题目管理 */
-export namespace Question {
-  /** 删除小题 */
-  type DeleteSubQuestion = BaseDefine<{
-    id: number
-  }>
-
-  /** 编辑小题 */
-  type EditSubQuestion = BaseDefine<{
-    id?: number
-    /** 小题间隔分 */
-    intervalScore?: number
-  }>
-
-  /** 小题列表信息 */
-  interface SubQuestionInfo {
-    id: number
-    intervalScore: number
-    mainNumber: number
-    mainTitle: string
-    subNumber: number
-    totalScore: number
-  }
-
-  /** 获取小题列表 */
-  type GetSubQuestionList = BaseDefine<{ subjectCode: string }, SubQuestionInfo[]>
-
-  interface MainQuestionListItem {
-    createTime: string
-    creatorId: number
-    examId: number
-    groupNumber: number
-    id: number
-    levelRange: number[]
-    mainNumber: number
-    minMarkTime: number
-    remarkNumber: number
-    remarkType: string
-    standardRate: number
-    selfRate: number
-    subjectCode: string
-    systemRate: number
-    title: string
-    totalScore: number
-    updateTime: string
-    updaterId: number
-  }
-
-  /** 获取大题列表 */
-  type GetMainQuestionList = BaseDefine<{ subjectCode: string }, MainQuestionListItem[]>
-
-  interface SubQuestionStruct {
-    intervalScore: number
-    score: number
-    subNumber: number
-    totalScore: number
-  }
-  /** 获取大题评卷结构 */
-  type GetQuestionStruct = BaseDefine<
-    { mainNumber?: number },
-    { mainNumber: number; mainTitle: string; questionList: SubQuestionStruct[] }
-  >
-
-  /** 大题设置 (新增/编辑) */
-  interface MainQuestionMeta {
-    /** 大题号 */
-    mainNumber?: number
-    /** 大题名称 */
-    mainTitle: string
-    /** 分组数量 */
-    groupNumber?: number
-    /** 间隔分 */
-    intervalScore?: number
-    /** 最小阅卷时间 */
-    minMarkTime?: number
-    /** 小题数量 */
-    questionCount?: number
-    /** 小题满分 */
-    questionScore?: number
-    /** 回评数量 */
-    remarkNumber?: number
-    /** 标准卷频度 */
-    standardRate?: number
-    /** 自查卷频度 */
-    selfRate?: number
-    /** 系统抽查频度 */
-    systemRate?: number
-    /** 起始题号 */
-    startNumber: number
-    /** 档次比例 */
-    levelRange: number[]
-    /** 回评方式,可用值:TIME,QUANTITY */
-    remarkType: RemarkType
-    /** 科目代码 */
-    subjectCode: string
-    /** 成绩表对应题目类型,可用值:WRITING,TRANSLATION */
-    category?: QuestionCategory
-  }
-
-  /** 新增大题 */
-  type AddMainQuestion = BaseDefine<MainQuestionMeta>
-
-  /** 大题设置 */
-  type EditMainQuestion = BaseDefine<MainQuestionMeta>
-
-  /** 获取大题信息 */
-  type GetMainQuestionInfo = BaseDefine<
-    { mainNumber: number; subjectCode: string },
-    MainQuestionMeta & { examId: number }
-  >
-
-  export interface ApiMap {
-    deleteSubQuestion: DeleteSubQuestion
-    editSubQuestion: EditSubQuestion
-    getSubQuestionList: GetSubQuestionList
-    addMainQuestion: AddMainQuestion
-    editMainQuestion: EditMainQuestion
-    getMainQuestionInfo: GetMainQuestionInfo
-    getMainQuestionList: GetMainQuestionList
-    /** 获取大题评卷结构 */
-    getQuestionStruct: GetQuestionStruct
-  }
-}
-
-/** 科目管理 */
-export namespace Subject {
-  /** 删除科目 */
-  type DeleteSubject = BaseDefine<{ id: number }>
-
-  interface BaseSubjectInfo {
-    /** 科目代码 */
-    code: string
-    /** 科目名称 */
-    name: string
-    /** 启用/禁用 */
-    enable: boolean
-  }
-
-  interface SubjectInfo extends BaseSubjectInfo {
-    /** 科目ID */
-    id: number
-    /** 考试ID */
-    examId: number
-    /** 考试名称 */
-    examName: string
-    /** 客观分 */
-    objectiveScore: number
-    /** 主观分 */
-    subjectiveScore: number
-    /** 试卷总分 */
-    totalScore: number
-  }
-
-  /** 获取科目信息 */
-  type GetSubjectInfo = BaseDefine<{ id: number }, SubjectInfo>
-
-  /** 查询科目列表 */
-  type GetSubjectList = BaseDefine<
-    MultipleQuery<{
-      /** 科目代码 */
-      code?: string
-      /** 科目名称 */
-      name?: string
-      /** 启用/禁用 */
-      enable?: boolean
-    }>,
-    MultipleResult<SubjectInfo>
-  >
-  /** 新增/修改科目 */
-  type SaveSubjectInfo = BaseDefine<BaseSubjectInfo & { id?: number }>
-
-  /** 启用/禁用科目 */
-  type ToggleEnableSubject = BaseDefine<{ ids: number[]; enable: boolean }>
-  export interface ApiMap {
-    /** 删除考试 */
-    deleteSubject: DeleteSubject
-    /** 获取考试信息 */
-    getSubjectInfo: GetSubjectInfo
-    /** 查询考试列表 */
-    getSubjectList: GetSubjectList
-    /** 新增/修改考试 */
-    saveSubjectInfo: SaveSubjectInfo
-    /** 启用/禁用科目 */
-    toggleEnableSubject: ToggleEnableSubject
-  }
-}
-
-/** 考试管理 */
-export namespace Exam {
-  /** 删除考试 */
-  type DeleteExam = BaseDefine<{ id: number }>
-
-  /** 获取考试信息 */
-  type GetExamInfo = BaseDefine<{ id: number }, Required<BaseExamInfo>>
-
-  /** 查询考试列表 */
-  type GetExamList = BaseDefine<
-    MultipleQuery<{
-      /** 考试状态 */
-      enable?: boolean
-      /** 考试名称 */
-      name?: string
-    }>,
-    MultipleResult<{
-      /** 考试状态 */
-      enable: boolean
-      /** 考试ID */
-      id: number
-      /** 考试名称 */
-      name: string
-      /** 更新时间 */
-      updateTime: string
-    }>
-  >
-  interface BaseExamInfo {
-    id?: number
-    /** 问题卷允许打回 */
-    doubtReject: boolean
-    /** 评卷模式 */
-    markingMode: MarkMode
-    /** 在线评卷时长 */
-    maxMarkingDuration: number
-    /** 自动回收任务(分钟) */
-    maxTaskRecover: number
-    /** 考试名称 */
-    name: string
-    /** 抽查卷允许打回 */
-    spotCheckReject: boolean
-    /** 用户姓名收集 */
-    userNameCollect: boolean
-    enable: boolean
-  }
-
-  /** 新增/修改考试 */
-  type SaveExamInfo = BaseDefine<Partial<BaseExamInfo>>
-
-  /** 启用/禁用考试 */
-  type ToggleEnableExam = BaseDefine<{ ids: number[]; enable: boolean }>
-  export interface ApiMap {
-    /** 删除考试 */
-    deleteExam: DeleteExam
-    /** 获取考试信息 */
-    getExamInfo: GetExamInfo
-    /** 查询考试列表 */
-    getExamList: GetExamList
-    /** 新增/修改考试 */
-    saveExamInfo: SaveExamInfo
-    /** 启用/禁用考试 */
-    toggleEnableExam: ToggleEnableExam
-  }
-}
-
-/** 角色管理 */
-export namespace Role {
-  /** role api  */
-  interface RawRole {
-    code: ROLE
-    roleName: string
-    updateTime: string
-    updaterName: string
-  }
-
-  type GetRoleList = BaseDefine<{ role?: ROLE }, RawRole[]>
-  type GetRolePrivilege = BaseDefine<
-    { role: ROLE },
-    {
-      code: string
-      hasPrivilege: boolean
-      id: number
-      name: string
-      nodeCode: string
-      nodeId: number
-      nodeName: string
-      parentId: number
-      parentNodeId: number
-    }[]
-  >
-
-  type SetRolePrivilege = BaseDefine<{ role: ROLE; privilegeIds: number[] }>
-
-  /** role api end */
-
-  export interface ApiMap {
-    getRoleList: GetRoleList
-    getRolePrivilege: GetRolePrivilege
-    setRolePrivilege: SetRolePrivilege
-  }
-}
-
-/** 监控分析 */
-export namespace Statistics {
-  interface BaseFilterOption {
-    subjectCode?: string
-    questionMainNumber?: number
-    markingGroupNumbers?: number[]
-  }
-
-  /** 质量统计-自查一致性分析 */
-  interface SelfCheckAnalysisReq {
-    /** 结束时间,格式:yyyyMMddHHmmss */
-    endTime: string
-    /** 小组号 */
-    markingGroupNumber?: number
-    /** 大题号 */
-    questionMainNumber?: number
-    /** 开始时间,格式:yyyyMMddHHmmss */
-    startTime: string
-    /** 科目代码 */
-    subjectCode: string
-  }
-  interface SelfCheckAnalysisResponse {
-    /** 平均离差 */
-    avgDiff: number
-    /** 自查份数 */
-    checkCount: number
-    /** 评卷员ID */
-    markerId: number
-    /** 评卷员名称 */
-    markerName: string
-  }
-
-  type SelfCheckAnalysis = BaseDefine<SelfCheckAnalysisReq, SelfCheckAnalysisResponse[]>
-
-  interface elfCheckAnalysisDiffListItemPaper {
-    diff: number
-    lastMarkScore: number
-    markScore: number
-    markTime: string
-    secretNumber: string
-    taskId: number
-  }
-
-  interface SelfCheckAnalysisDiffListItem {
-    diff: number
-    papers: elfCheckAnalysisDiffListItemPaper[]
-  }
-
-  type SelfCheckAnalysisDiffList = BaseDefine<
-    {
-      markerId?: number
-      questionMainNumber?: number
-      subjectCode: string
-    },
-    SelfCheckAnalysisDiffListItem[]
-  >
-
-  /** 质量分析 - 自查数据详情 */
-  interface SelfCheckDataDetail {
-    diff: number
-    filePath: string
-    mainName: string
-    mainNumber: number
-    markTime: string
-    markerName: string
-    markerScore: number
-    secretNumber: string
-    selfScore: number
-    taskId: number
-  }
-  type GetSelfCheckDataDetail = BaseDefine<
-    {
-      subjectCode: string
-      mainNumber: number | string
-      markingGroupNumber: number | string
-      startTime: string
-      endTime: string
-    },
-    SelfCheckDataDetail[]
-  >
-
-  /** 质量统计-自查数据打分 */
-  type MarkSelfCheckData = BaseDefine<{ taskId?: number; scores: number[] }>
-
-  /** 质量统计-自查数据打回 */
-  type RejectSelfCheckData = BaseDefine<{ id?: number; reason: string; description: string }>
-
-  /** 质量分析- 抽查情况统计 */
-  interface StatisticCheckInfo {
-    customCheckCount: number
-    customCheckReScoreCount: number
-    markerId: number
-    markerName: string
-    questionMainName: string
-    questionMainNumber: number
-    rejectCount: number
-    sysCheckCount: number
-    sysCheckReScoreCount: number
-  }
-
-  type StatisticCheckOverview = BaseDefine<
-    {
-      questionMainNumber?: number
-      subjectCode: string
-      markingGroupLeaderId?: number
-    },
-    StatisticCheckInfo[]
-  >
-  /** 质量统计-主观题校验列表 */
-  interface SubjectiveListItem {
-    filePath: string
-    headerName: string
-    headerScore: number
-    mainName: string
-    mainNumber: number
-    markerScore: number
-    secretNumber: number
-    status: string
-    taskId: number
-    updateTime: string
-  }
-
-  type GetSubjectiveCheckList = BaseDefine<
-    MultipleQuery<{
-      subjectCode: string
-      mainNumber?: number
-      checked?: boolean
-      rule: 'RULE1' | 'RULE2' | 'RULE3' | 'RULE4'
-    }>,
-    MultipleResult<SubjectiveListItem>
-  >
-
-  type SubjectiveCheckMark = BaseDefine<{ taskId?: number; scores: number[] }>
-
-  type SubjectiveCheckConfirm = BaseDefine<{ taskId?: number }>
-
-  /** 决策分析-评卷进度统计(整体) */
-  interface MarkProgressResponse {
-    /** 已完成数 */
-    finishCount: number
-    /** 完成比率 */
-    finishRate: number
-    /** 大题名称 */
-    questionMainName: string
-    /** 大题号 */
-    questionMainNumber: number
-    /** 预计耗时(秒) */
-    takeTime: number
-    /** 试卷总量 */
-    totalPaper: number
-  }
-
-  type GetMarkProgress = BaseDefine<{ subjectCode: string }, MarkProgressResponse[]>
-
-  /** 决策分析-评卷进度统计(按小组) */
-  interface MarkProgressByGroup {
-    dayFinishCount: number
-    dayFinishRate: number
-    finishCount: number
-    finishRate: number
-    markingGroupNumber: number
-  }
-
-  type GetMarkProgressByGroup = BaseDefine<{ subjectCode: string; questionMainNumber?: number }, MarkProgressByGroup[]>
-
-  /** 决策分析-评卷进度统计(按评卷员) */
-  interface MarkProgressByMarker {
-    dayFinishCounts: { count: number; date: string }[]
-    markerId: number
-    markerName: string
-    markingGroupNumber: number
-    totalFinishCount: number
-  }
-  type GetMarkProgressByMarker = BaseDefine<
-    { subjectCode: string; questionMainNumber?: number; markingGroupNumbers?: number },
-    MarkProgressByMarker[]
-  >
-
-  type ExportMarkProgressByMarker = BaseDefine<{
-    subjectCode: string
-    questionMainNumber?: number
-    markingGroupNumber?: number
-  }>
-
-  /** 科目进度收尾 */
-  interface SubjectProgressEndInfo {
-    arbitrationPaperRate: number
-    checkPaperCount: number
-    checkPaperRate: number
-    finishCount: number
-    finishRate: number
-    questionMainName: string
-    questionMainNumber: number
-    subjectiveUnVerifyPaperCount: number
-    todoArbitrationPaperCount: number
-    todoProblemPaperCount: number
-    todoSamePaperCount: number
-    totalPaper: number
-  }
-
-  type SubjectProgressEnd = BaseDefine<{ subjectCode: string }, SubjectProgressEndInfo[]>
-
-  interface BaseParams {
-    subjectCode: string
-    questionMainNumber?: number
-    markingGroupNumber?: number
-  }
-
-  /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
-
-  interface UnMarkPaper {
-    markerId: number
-    markerName: string
-    questionMainName: string
-    questionMainNumber: number
-    secretNumber: string
-    taskId: number
-  }
-  type UnMarkPaperList = BaseDefine<MultipleQuery<BaseParams>, MultipleResult<UnMarkPaper>>
-  /** 质量统计-收尾检查-未处理雷同卷列表 */
-  interface UnProcessSimilar {
-    questionMainName: string
-    questionMainNumber: number
-    sameSecretNumber: string
-    secretNumber: string
-  }
-  type UnProcessSimilarList = BaseDefine<BaseParams, UnProcessSimilar[]>
-  /** 质量统计-收尾检查-未处理问题卷列表 */
-  interface UnProcessProblem {
-    questionMainName: string
-    questionMainNumber: number
-    secretNumber: string
-  }
-  type UnProcessProblemList = BaseDefine<BaseParams, UnProcessProblem[]>
-
-  type ChangeTaskMarker = BaseDefine<{ loginName: string; taskId?: number }>
-
-  /** 小组监控 */
-  interface GroupMonitor {
-    /** 已浏览自定义抽查卷数 */
-    customCheckCount: number
-    /** 已浏览问题卷数 */
-    problemCount: number
-    /** 已浏览系统抽查卷数 */
-    sysCheckCount: number
-    /** 组长 */
-    markingGroupLeader: string
-    /** 组长ID */
-    markingGroupLeaderId: string
-    /** 小组号 */
-    markingGroupNumber: number
-    /** 已给分自定义抽查卷数 */
-    customCheckReScoreCount: number
-    /** 已给分问题卷数 */
-    problemReScoreCount: number
-    /** 已给分系统抽查卷数 */
-    sysCheckReScoreCount: number
-    /** 已浏览试卷总数 */
-    totalCount: number
-    /** 已给分试卷总数 */
-    totalReScoreCount: number
-  }
-  type GetGroupMonitor = BaseDefine<BaseFilterOption, GroupMonitor[]>
-
-  /** 小组监控 - 抽查详情 */
-  interface GroupMonitorDetail {
-    filePath: string
-    headerRatio: string
-    headerScore: number
-    mainName: string
-    mainNumber: number
-    markTime: string
-    markerName: string
-    markerScore: number
-    objectiveScore: number
-    scoreLevel: string
-    secretNumber: string
-    taskId: number
-  }
-
-  type GetGroupMonitorDetail = BaseDefine<
-    MultipleQuery<{ operateType: 'VIEW' | 'MARK'; headerId: string | number }>,
-    MultipleResult<GroupMonitorDetail>
-  >
-
-  type MarkMonitorDetailTask = BaseDefine<{ taskId?: number; scores: number[] }>
-
-  /** 决策分析- 统计 */
-  interface StatisticItem {
-    markerId: number
-    markerName: string
-    value: number
-  }
-
-  type GetStatistics = BaseDefine<BaseFilterOption, Record<string, StatisticItem[]>>
-
-  /** 决策分析-监控统计(按小组) */
-  interface GetStatisticsByGroupParams {
-    endTime?: string
-    hasJudge?: boolean
-    markerId?: number
-    markingGroupNumbers?: number[]
-    questionMainNumber?: number
-    startTime?: string
-    subjectCode: string
-  }
-
-  interface GetStatisticsByGroupResponseItem {
-    /** 平均分 */
-    avg: number
-    /** 抽查改正量 */
-    checkCorrectCount: number
-    /** 抽查量 */
-    checkCount: number
-    /** 综合指数 */
-    integration: number
-    /** 评卷员ID */
-    markerId: number
-    /** 评卷员名称 */
-    markerName: string
-    /** 小组号 */
-    markingGroupNumber: number
-    /** 评卷份数 */
-    markingPaperCount: number
-    /** 评卷速度(n秒每个) */
-    markingRate: number
-    /** 评卷状态 */
-    markingStatus: string
-    /** 平均客主比 */
-    objSubAvgRate: number
-    /** 客主比(近N分钟) */
-    objSubRate: number
-    /** 客观平均分 */
-    objectiveAvg: number
-    /** 客观标准差 */
-    objectiveStd: number
-    /** 客观0分量 */
-    objectiveZero: number
-    /** 是否在线 */
-    online: boolean
-    /** 重评待确认量 */
-    reMarkConfirmCount: number
-    /** 重评量 */
-    reMarkCount: number
-    /** 最低分(近N分钟) */
-    scoreLow: number
-    /** 最高分(近N分钟) */
-    scoreTop: number
-    /** 方差 */
-    sd: number
-    /** 标准差 */
-    std: number
-    /** 相关系数 */
-    xyRelate: number
-    /** 评卷员明细统计列表 */
-    markerDetails: GetStatisticsByGroupResponseItem[] | null
-  }
-
-  type GetStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams, GetStatisticsByGroupResponseItem[]>
-
-  /** 决策分析-监控统计导出(按小组) */
-  type ExportStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams>
-
-  /** 培训监控 */
-  interface TrainingMonitorParams {
-    subjectCode: string
-    mainNumber?: number
-    markingGroupNumber?: number
-    markStage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
-    forceGroupNumber?: number
-  }
-  interface TrainingMonitorResponse {
-    /** 平均分 */
-    avg: number
-    /** 差异份数 */
-    diffCount: number
-    forceGroupMarkerId: number
-    /** 评卷员ID */
-    markerId: number
-    /** 评卷员名称 */
-    markerName: string
-    /** 打分列表 */
-    scoreList: number[]
-    /** 状态 */
-    stage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
-    /** 状态名称 */
-    status: string
-    /** 标准差 */
-    std: number
-    /** 相关系数 */
-    xyRelate: number
-  }
-  type GetTrainingMonitor = BaseDefine<TrainingMonitorParams, { data: TrainingMonitorResponse[]; header: number[] }>
-
-  interface MonitorDetail {
-    fileName: string
-    filePath: string
-    forceGroupNumber: number
-    group: string
-    mainNumber: number
-    markTime: string
-    markerName: string
-    markScore: number
-    score: number
-    secretNumber: string
-    taskId: number
-  }
-
-  /**培训监控 - 培训卷调卷详情 */
-  type GetTrainingMonitorDetail = BaseDefine<{ markerId: string; taskType: SamplePaperType }, MonitorDetail[]>
-
-  /**培训监控 - 强制考核卷调卷详情 */
-  type GetAssessMonitorDetail = BaseDefine<{ forceGroupMarkerId: string }, MonitorDetail[]>
-
-  /**培训监控 - 强制考核卷审核 */
-  type PutAssessMonitorPass = BaseDefine<{ forceGroupMarkerIds: number[]; pass: boolean }>
-
-  /**培训监控 - 培训卷审核 */
-  type PutSampleMonitorPass = BaseDefine<{ markerIds: number[]; markStage: SamplePaperType; pass: boolean }>
-
-  /** 个人统计 */
-  interface PersonalStatistic {
-    avg: number
-    markerId: number
-    markerName: string
-    markingPaperCount: number
-    markingRate: number
-    questionMainName: string
-    questionMainNumber: number
-  }
-  type GetPersonalStatistic = BaseDefine<{ startTime: string; endTime: string; markerId?: number }, PersonalStatistic>
-
-  /** 提取阅卷明细 */
-  interface PersonalMarkDetail {
-    filePath: string
-    mainName: string
-    mainNumber: number
-    markTime: string
-    markerName: string
-    markerRatio: string
-    markerScore: number
-    objectiveScore: number
-    secretNumber: string
-    status: string
-    taskId: number
-  }
-
-  type GetPersonalMarkDetail = BaseDefine<
-    MultipleQuery<{
-      markerId?: number | string
-      score?: number | string
-    }>,
-    MultipleResult<PersonalMarkDetail>
-  >
-
-  type UpdatePersonalMarkDetailScore = BaseDefine<{ taskId?: number; scores: number[] }>
-
-  interface SystemSpotListItem {
-    examNumber: string
-    filePath: string
-    id: number
-    mainNumber: number
-    markScore: number
-    markTime: string
-    markerName: string
-    secretNumber: number
-    status: string
-    taskId: number
-  }
-
-  type GetSystemSpotList = BaseDefine<
-    MultipleQuery<{
-      level: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5' | ''
-      status: 'INITIAL' | 'VIEWED' | 'GRADED' | 'REJECT'
-      mainNumber?: number
-    }>,
-    MultipleResult<SystemSpotListItem>
-  >
-
-  /** 系统抽查卷打分 */
-  type MarkSystemSpotPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-  /** 系统抽查卷打回 */
-  type RejectSystemSpotPaper = BaseDefine<{ description: string; id: number; reason: string }>
-
-  /** 系统抽查卷浏览 */
-  type ViewSystemSpotPaper = BaseDefine<{ id?: number }>
-
-  interface StatisticByGroup {
-    subjectCode: string
-    questionMainNumber?: number
-    markingGroupNumber?: number
-    startTime: string
-    endTime: string
-  }
-
-  interface StatisticByMarker {
-    markerId?: number
-    endTime: string
-    startTime: string
-  }
-
-  interface StatisticInfo {
-    count: number
-    rate: number
-    scoreEnd: number
-    scoreStart: number
-  }
-
-  interface StatisticResult {
-    segmentsByAll: StatisticInfo[]
-    segmentsByGroup: StatisticInfo[]
-    segmentsByUser: StatisticInfo[]
-  }
-
-  /** 决策分析-监控统计-客观题分数分布(按小组) */
-  type GetStatisticObjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
-
-  /** 决策分析-监控统计-客观题分数分布(按评卷员) */
-  type GetStatisticObjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
-
-  /** 决策分析-监控统计-主观题分数分布(按小组) */
-  type GetStatisticSubjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
-
-  /** 决策分析-监控统计-主观题分数分布(按评卷员) */
-  type GetStatisticSubjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
-
-  interface ApiMap {
-    /** 质量统计-自查一致性分析 */
-    selfCheckAnalysis: SelfCheckAnalysis
-    /** 质量统计-自查一致性分析-离差列表 */
-    selfCheckAnalysisDiffList: SelfCheckAnalysisDiffList
-    /** 质量统计- 自查数据详情 */
-    getSelfCheckDataDetail: GetSelfCheckDataDetail
-    /** 质量统计-自查数据打分 */
-    markSelfCheckData: MarkSelfCheckData
-    /** 质量统计-自查数据打回 */
-    rejectSelfCheckData: RejectSelfCheckData
-    /** 质量统计-抽查情况统计 */
-    statisticCheckOverview: StatisticCheckOverview
-    /** 质量统计-主观题校验 */
-    getSubjectiveCheckList: GetSubjectiveCheckList
-    /** 质量统计-主观题校验打分 */
-    subjectiveCheckMark: SubjectiveCheckMark
-    /** 质量统计-主观题校验确认 */
-    subjectiveCheckConfirm: SubjectiveCheckConfirm
-    /** 决策分析-评卷进度统计(整体) */
-    getMarkProgress: GetMarkProgress
-    /** 决策分析-评卷进度统计(按小组) */
-    getMarkProgressByGroup: GetMarkProgressByGroup
-    /** 决策分析-评卷进度统计(按评卷员) */
-    getMarkProgressByMarker: GetMarkProgressByMarker
-    /** 决策分析-评卷进度统计导出(按评卷员) */
-    exportMarkProgressByMarker: ExportMarkProgressByMarker
-    /** 质量统计-科目进度收尾 */
-    subjectProgressEnd: SubjectProgressEnd
-    /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
-    unMarkPaperList: UnMarkPaperList
-    /** 质量统计-收尾检查-未处理雷同卷列表 */
-    unProcessSimilarList: UnProcessSimilarList
-    /** 质量统计-收尾检查-未处理问题卷列表 */
-    unProcessProblemList: UnProcessProblemList
-    /** 任务指定新评卷员 */
-    changeTaskMarker: ChangeTaskMarker
-    /** 决策分析-小组监控 */
-    getGroupMonitor: GetGroupMonitor
-    /** 决策分析-小组监控-抽查详情 */
-    getGroupMonitorDetail: GetGroupMonitorDetail
-    /** 决策分析-小组监控-抽查详情给分 */
-    markMonitorDetailTask: MarkMonitorDetailTask
-    /** 决策分析-监控统计(整体) */
-    getStatistics: GetStatistics
-
-    /** 决策分析-监控统计(按小组) */
-    getStatisticsByGroup: GetStatisticsByGroup
-    /** 决策分析-监控统计导出(按小组) */
-    exportStatisticsByGroup: ExportStatisticsByGroup
-    /** 决策分析-监控统计客观题&主观题分数分布 */
-    /**培训监控 */
-    getTrainingMonitor: GetTrainingMonitor
-    /**培训监控 - 培训卷调卷详情 */
-    getTrainingMonitorDetail: GetTrainingMonitorDetail
-    /**培训监控 - 强制考核卷调卷详情 */
-    getAssessMonitorDetail: GetAssessMonitorDetail
-    /**培训监控 - 强制考核卷审核 */
-    putAssessMonitorPass: PutAssessMonitorPass
-    /**培训监控 - 培训卷审核 */
-    putSampleMonitorPass: PutSampleMonitorPass
-    /** 个人统计 */
-    getPersonalStatistic: GetPersonalStatistic
-    /** 提取阅卷明细 */
-    getPersonalMarkDetail: GetPersonalMarkDetail
-    /** 提取阅卷明细 - 给分 */
-    updatePersonalMarkDetailScore: UpdatePersonalMarkDetailScore
-    /** 系统抽查卷 */
-    getSystemSpotList: GetSystemSpotList
-    /** 系统抽查卷打分 */
-    markSystemSpotPaper: MarkSystemSpotPaper
-    /** 系统抽查卷打回 */
-    rejectSystemSpotPaper: RejectSystemSpotPaper
-    /** 系统抽查卷浏览 */
-    viewSystemSpotPaper: ViewSystemSpotPaper
-    /** 决策分析-监控统计-客观题分数分布(按小组) */
-    getStatisticObjectiveByGroup: GetStatisticObjectiveByGroup
-    /** 决策分析-监控统计-客观题分数分布(按评卷员) */
-    getStatisticObjectiveByMarker: GetStatisticObjectiveByMarker
-    /** 决策分析-监控统计-主观题分数分布(按小组) */
-    getStatisticSubjectiveByGroup: GetStatisticSubjectiveByGroup
-    /** 决策分析-监控统计-主观题分数分布(按评卷员) */
-    getStatisticSubjectiveByMarker: GetStatisticSubjectiveByMarker
-  }
-}

+ 2 - 1
src/api/check.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, ForceCheck } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { ForceCheck } from '@/api/api-types/forceCheck'
 
 const ForceCheckApi: DefineApiModule<ForceCheck.ApiMap> = {
   /** 获取考核组 */

+ 2 - 1
src/api/exam.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Exam } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Exam } from '@/api/api-types/exam'
 
 const ExamApi: DefineApiModule<Exam.ApiMap> = {
   /** 删除考试 */

+ 2 - 1
src/api/expert.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Expert } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Expert } from '@/api/api-types/expert'
 
 const ExpertApi: DefineApiModule<Expert.ApiMap> = {
   /** AB培训卷 */

+ 1 - 1
src/api/index.ts

@@ -1,4 +1,4 @@
-import { DefineApiModule, ApiMap } from 'api-type'
+import { DefineApiModule, ApiMap } from '@/api/api'
 
 const apiModules = import.meta.glob<Record<'default', object>>('./*.ts', { eager: true })
 

+ 2 - 1
src/api/marking.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Marking } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Marking } from '@/api/api-types/marking'
 
 const MarkingApi: DefineApiModule<Marking.ApiMap> = {
   /** 自定义查询 - 抽查 */

+ 2 - 1
src/api/message.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Message } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Message } from '@/api/api-types/message'
 
 const MessageApi: DefineApiModule<Message.ApiMap> = {
   /** 历史消息 */

+ 2 - 1
src/api/question.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Question } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Question } from '@/api/api-types/question'
 
 const QuestionApi: DefineApiModule<Question.ApiMap> = {
   deleteSubQuestion: '/api/question/sub/delete',

+ 2 - 1
src/api/role.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Role } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Role } from '@/api/api-types/role'
 
 const RoleApi: DefineApiModule<Role.ApiMap> = {
   /** 获取角色列表 */

+ 2 - 1
src/api/statistics.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Statistics } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Statistics } from '@/api/api-types/statistics'
 
 const StatisticsApi: DefineApiModule<Statistics.ApiMap> = {
   /** 质量统计-自查一致性分析 */

+ 2 - 1
src/api/subject.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, Subject } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { Subject } from '@/api/api-types/subject'
 
 const SubjectApi: DefineApiModule<Subject.ApiMap> = {
   /** 删除科目 */

+ 2 - 1
src/api/system.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, System } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { System } from '@/api/api-types/system'
 
 const SystemApi: DefineApiModule<System.ApiMap> = {
   /** 评卷数据导入 */

+ 2 - 1
src/api/user.ts

@@ -1,4 +1,5 @@
-import { DefineApiModule, User } from 'api-type'
+import { DefineApiModule } from '@/api/api'
+import { User } from './api-types/user'
 
 const UserApi: DefineApiModule<User.ApiMap> = {
   /** 登录 */

+ 1 - 1
src/components/shared/MarkHistoryList.vue

@@ -16,7 +16,7 @@ import BaseTable from '@/components/element/BaseTable.vue'
 import useVModel from '@/hooks/useVModel'
 import useFetch from '@/hooks/useFetch'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 const props = withDefaults(

+ 1 - 1
src/components/shared/RemarkListModal.vue

@@ -43,7 +43,7 @@ import BaseTable from '@/components/element/BaseTable.vue'
 import ConfirmButton from '../common/ConfirmButton.vue'
 
 import type { EpTableColumn } from 'global-type'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 type HistoryTask = ExtractArrayValue<ExtractApiResponse<'getMarkHistory'>>
 

+ 1 - 1
src/components/shared/ScoringPanelWithConfirm.vue

@@ -36,7 +36,7 @@ import BaseDialog from '@/components/element/BaseDialog.vue'
 import useVModel from '@/hooks/useVModel'
 import useVW from '@/hooks/useVW'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const props = defineProps<{
   /** 显示隐藏 */

+ 1 - 1
src/components/shared/message/MessageList.vue

@@ -54,7 +54,7 @@ import useFetch from '@/hooks/useFetch'
 import MessageHistory from '@/components/shared/message/MessageHistory.vue'
 import ImagePreview from '../ImagePreview.vue'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 type MessageType = ExtractArrayValue<ExtractApiResponse<'getMessageList'>>
 

+ 1 - 1
src/components/shared/message/MessageSend.vue

@@ -58,7 +58,7 @@ import ImagePreview from '../ImagePreview.vue'
 import useFetch from '@/hooks/useFetch'
 import useVModel from '@/hooks/useVModel'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 type MarkerItem = ExtractArrayValue<ExtractApiResponse<'getUserGroup'>['chiffGroup']>
 type TreeNode = ExtractArrayValue<ExtractApiResponse<'getUserGroup'>['markerGroup']> & { label: string }

+ 1 - 1
src/hooks/useFetch.ts

@@ -3,7 +3,7 @@ import type { Ref, ShallowRef } from 'vue'
 import api from '@/api'
 import request from '@/plugins/request'
 import type { AxiosRequestConfig, Method } from 'axios'
-import type { ApiKeys, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ApiKeys, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 interface ReturnType<K extends ApiKeys> {
   loading: Ref<boolean>

+ 1 - 1
src/hooks/useMessageLoop.ts

@@ -4,7 +4,7 @@ import uesFetch from '@/hooks/useFetch'
 import useMainStore from '@/store/main'
 
 import type { EffectScope, ShallowRef } from 'vue'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const useMessageLoop = () => {
   const mainStore = useMainStore()

+ 1 - 1
src/hooks/useOptions.ts

@@ -1,6 +1,6 @@
 import { reactive, computed, watch, ref, unref, isRef, nextTick } from 'vue'
 import useFetch from '@/hooks/useFetch'
-import { ExtractApiResponse } from 'api-type'
+import { ExtractApiResponse } from '@/api/api'
 import type { Ref } from 'vue'
 
 export interface DataModel {

+ 1 - 1
src/hooks/useTable.ts

@@ -10,7 +10,7 @@ import type {
   ExtractApiParams,
   ExtractApiResponse,
   ExtractMultipleApiResponse,
-} from 'api-type'
+} from '@/api/api'
 import type { PaginationProps } from 'element-plus'
 import type { InstanceTable, InstanceElTable } from 'global-type'
 

+ 1 - 1
src/hooks/useTableCheck.ts

@@ -3,7 +3,7 @@ import { isDefine } from '@/utils/common'
 
 import type { Ref, ShallowRef, UnwrapRef } from 'vue'
 import type { InstanceTable } from 'global-type'
-import type { MultipleResult } from 'api-type'
+import type { MultipleResult } from '@/api/api'
 
 type ArrayObjectType = Array<Record<string, any>>
 

+ 1 - 1
src/modules/admin-data/export/index.vue

@@ -35,7 +35,7 @@ import useOptions from '@/hooks/useOptions'
 import useFetch from '@/hooks/useFetch'
 import useVW from '@/hooks/useVW'
 
-import type { ExtractMultipleApiParams } from 'api-type'
+import type { ExtractMultipleApiParams } from '@/api/api'
 import type { EpFormItem, EpTableColumn } from 'global-type'
 
 const model = reactive<ExtractMultipleApiParams<'getCetScoreList'>>({

+ 1 - 1
src/modules/admin-data/marking/index.vue

@@ -59,7 +59,7 @@ import useUploadFile from '@/hooks/useUploadFile'
 import useVW from '@/hooks/useVW'
 
 import type { FormGroup, EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const { fetch: getImportFilePath, result: filePath } = useFetch('getImportFilePath')
 

+ 1 - 1
src/modules/admin-data/paper/components/rf.vue

@@ -55,7 +55,7 @@ import useUploadFile from '@/hooks/useUploadFile'
 import useVW from '@/hooks/useVW'
 
 import type { FormGroup, EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const showProgress = ref(false)
 

+ 1 - 1
src/modules/admin-data/paper/components/sample.vue

@@ -55,7 +55,7 @@ import useUploadFile from '@/hooks/useUploadFile'
 import useVW from '@/hooks/useVW'
 
 import type { FormGroup, EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const showProgress = ref(false)
 

+ 1 - 1
src/modules/admin-data/task-setting/components/MarkerSetting.vue

@@ -9,7 +9,7 @@ import useFetch from '@/hooks/useFetch'
 import BaseTable from '@/components/element/BaseTable.vue'
 
 import type { EpTableColumn } from 'global-type'
-import type { ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse } from '@/api/api'
 
 const props = defineProps<{
   mainNumber?: number

+ 1 - 1
src/modules/admin-data/task-setting/index.vue

@@ -40,7 +40,7 @@ import BaseForm from '@/components/element/BaseForm.vue'
 import GroupSetting from './components/GroupSetting.vue'
 import MarkerSetting from './components/MarkerSetting.vue'
 
-import type { ExtractApiParams, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractMultipleApiResponse } from '@/api/api'
 import type { EpFormRules, EpFormItem } from 'global-type'
 
 type FormParams = ExtractApiParams<'markerSetCount'> &

+ 1 - 1
src/modules/admin-exam/edit-exam/index.vue

@@ -23,7 +23,7 @@ import useVW from '@/hooks/useVW'
 import { TrueOrFalse, StatusMap } from '@/constants/dicts'
 
 import type { EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const props = defineProps<{ id?: string | number }>()
 

+ 1 - 1
src/modules/admin-exam/manage/index.vue

@@ -51,7 +51,7 @@ import useVW from '@/hooks/useVW'
 import { StatusMap } from '@/constants/dicts'
 
 import type { EpFormItem, EpTableColumn } from 'global-type'
-import type { ExtractMultipleApiParams, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractMultipleApiParams, ExtractMultipleApiResponse } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/admin-role/manage/index.vue

@@ -26,7 +26,7 @@ import BaseTable from '@/components/element/BaseTable.vue'
 import { ROLE_OPTION } from '@/constants/dicts'
 import useFetch from '@/hooks/useFetch'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 const { push } = useRouter()

+ 1 - 1
src/modules/admin-role/setting/index.vue

@@ -23,7 +23,7 @@ import useFetch from '@/hooks/useFetch'
 import useMainLayoutStore from '@/store/layout'
 import BaseSelect from '@/components/element/BaseSelect.vue'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 type MenuItem = MainLayoutStore.MenuItem
 

+ 1 - 1
src/modules/admin-subject/edit-main-question/index.vue

@@ -62,7 +62,7 @@ import useFetch from '@/hooks/useFetch'
 import useForm from '@/hooks/useForm'
 import useVW from '@/hooks/useVW'
 
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 import type { EpFormItem, EpFormRules, FormGroup } from 'global-type'
 
 const { back } = useRouter()

+ 1 - 1
src/modules/admin-subject/manage/index.vue

@@ -67,7 +67,7 @@ import useVW from '@/hooks/useVW'
 import { StatusMap } from '@/constants/dicts'
 
 import type { EpFormItem, EpFormRules, EpTableColumn } from 'global-type'
-import type { ExtractApiParams, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractMultipleApiResponse } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/admin-subject/struct/index.vue

@@ -59,7 +59,7 @@ import useForm from '@/hooks/useForm'
 import useVW from '@/hooks/useVW'
 
 import type { EpTableColumn, EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const { back, push } = useRouter()
 

+ 1 - 1
src/modules/admin-user/bulk-add-user/index.vue

@@ -24,7 +24,7 @@ import useOptions, { DataModel } from '@/hooks/useOptions'
 import useMainStore from '@/store/main'
 import { StatusMap, ROLE_OPTION } from '@/constants/dicts'
 
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 import type { EpFormItem, EpFormRules, FormGroup } from 'global-type'
 
 const { back } = useRouter()

+ 1 - 1
src/modules/admin-user/edit-user/index.vue

@@ -24,7 +24,7 @@ import useOptions from '@/hooks/useOptions'
 import useMainStore from '@/store/main'
 import { StatusMap, ROLE_OPTION } from '@/constants/dicts'
 
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 import type { EpFormItem, EpFormRules } from 'global-type'
 
 const props = defineProps<{ id?: string | number }>()

+ 1 - 1
src/modules/admin-user/manage/hooks/useUserManageFilter.ts

@@ -4,7 +4,7 @@ import useForm from '@/hooks/useForm'
 import useOptions, { DataModel } from '@/hooks/useOptions'
 
 import type { EpFormItem, InstanceForm, EpFormRows } from 'global-type'
-import type { ExtractMultipleApiParams } from 'api-type'
+import type { ExtractMultipleApiParams } from '@/api/api'
 
 const useUserManageFilter = () => {
   const { elFormRef, formRef, defineColumn, _ } = useForm()

+ 1 - 1
src/modules/analysis/group-monitoring-detail/index.vue

@@ -75,7 +75,7 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
 import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
 import SvgIcon from '@/components/common/SvgIcon.vue'
 
-import type { ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 const { back } = useRouter()

+ 1 - 1
src/modules/analysis/group-monitoring/hooks/useFormFilter.ts

@@ -4,7 +4,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
 import type { EpFormItem } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const useFormFilter = () => {
   const { formRef, elFormRef, defineColumn, _ } = useForm()

+ 1 - 1
src/modules/analysis/group-monitoring/index.vue

@@ -26,7 +26,7 @@ import useVW from '@/hooks/useVW'
 import useFormFilter from './hooks/useFormFilter'
 
 import type { EpTableColumn } from 'global-type'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/analysis/marking-progress/components/GroupProgress.vue

@@ -23,7 +23,7 @@ import useVW from '@/hooks/useVW'
 import useMainStore from '@/store/main'
 
 import type { EpFormItem, EpTableColumn } from 'global-type'
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 const mainStore = useMainStore()
 

+ 1 - 1
src/modules/analysis/marking-progress/components/TotalProgress.vue

@@ -58,7 +58,7 @@ import useVueECharts from '@/hooks/useVueECharts'
 import { usePX } from '@/hooks/useVW'
 
 import type { EChartsOption } from 'echarts'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpFormItem, EpTableColumn } from 'global-type'
 
 const { provideInitOption } = useVueECharts()

+ 1 - 1
src/modules/analysis/monitoring/index.vue

@@ -71,7 +71,7 @@ import ConfirmButton from '@/components/common/ConfirmButton.vue'
 import Empty from '@/components/common/Empty.vue'
 
 import type { EpTableColumn, EpFormItem, EpTableProps } from 'global-type'
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/analysis/personnel-statistics/components/SetWorkload.vue

@@ -31,7 +31,7 @@ import useFetch from '@/hooks/useFetch'
 import ConfirmButton from '@/components/common/ConfirmButton.vue'
 
 import type { EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 const props = defineProps<{ data?: ExtractArrayValue<ExtractApiResponse<'getStatisticsByGroup'>> }>()
 

+ 1 - 1
src/modules/analysis/personnel-statistics/components/StatisticsGroup.vue

@@ -31,7 +31,7 @@ import useFetch from '@/hooks/useFetch'
 import useTableCheck from '@/hooks/useTableCheck'
 
 import type { EChartsOption } from 'echarts'
-import type { ExtractApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractApiResponse, ExtractApiParams } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 const props = defineProps<{

+ 1 - 1
src/modules/analysis/personnel-statistics/components/StatisticsPersonnel.vue

@@ -56,7 +56,7 @@ import useFetch from '@/hooks/useFetch'
 import useTableCheck from '@/hooks/useTableCheck'
 
 import type { EChartsOption } from 'echarts'
-import type { ExtractApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractApiResponse, ExtractApiParams } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 import type { PopoverInstance } from 'element-plus'
 

+ 1 - 1
src/modules/analysis/personnel-statistics/hooks/useStatisticsFilter.ts

@@ -5,7 +5,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
 import type { EpFormItem, EpFormRows } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 type FormMode = Omit<
   ExtractApiParams<'getStatisticsByGroup'>,

+ 1 - 1
src/modules/analysis/personnel-statistics/index.vue

@@ -31,7 +31,7 @@ import useStatisticsFilter from './hooks/useStatisticsFilter'
 import StatisticsGroup from './components/StatisticsGroup.vue'
 import StatisticsPersonnel from './components/StatisticsPersonnel.vue'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const { model, fetchModel, items, onOptionInit } = useStatisticsFilter()
 

+ 1 - 1
src/modules/analysis/statistics/index.vue

@@ -48,7 +48,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
 import type { EpTableColumn, EpFormItem } from 'global-type'
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/analysis/view-marked-detail/index.vue

@@ -84,7 +84,7 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
 import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getPersonalMarkDetail'> & { index: number }

+ 1 - 1
src/modules/bootstrap/login/index.vue

@@ -30,7 +30,7 @@ import useForm from '@/hooks/useForm'
 import { sessionStorage } from '@/plugins/storage'
 
 import type { EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 
 const { replace } = useRouter()
 

+ 1 - 1
src/modules/expert/assess/index.vue

@@ -73,7 +73,7 @@ import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getExpertAssessList'> & { index: number }

+ 1 - 1
src/modules/expert/expert/index.vue

@@ -74,7 +74,7 @@ import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getExpertPickList'> & { index: number }

+ 1 - 1
src/modules/expert/sample/index.vue

@@ -75,7 +75,7 @@ import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getRfSampleList'> & { index: number }

+ 1 - 1
src/modules/expert/standard/index.vue

@@ -56,7 +56,7 @@ import MarkHeader from '@/components/shared/MarkHeader.vue'
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getStandardList'> & { index: number }

+ 1 - 1
src/modules/expert/training/index.vue

@@ -62,7 +62,7 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
 import SvgIcon from '@/components/common/SvgIcon.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getSampleList'> & { index: number }

+ 1 - 1
src/modules/marking/arbitration/index.vue

@@ -72,7 +72,7 @@ import RightButton from '@/components/shared/RightButton.vue'
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getArbitrationList'> & { index: number }

+ 1 - 1
src/modules/marking/assess/index.vue

@@ -58,7 +58,7 @@ import useFetch from '@/hooks/useFetch'
 import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { FormGroup, EpFormItem, EpFormRules, EpTableColumn } from 'global-type'
 
 const markerIds = ref()

+ 1 - 1
src/modules/marking/inquiry-result/index.vue

@@ -96,7 +96,7 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
 import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn, EpFormItem } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getCustomQueryTasks'> & { index: number }

+ 1 - 1
src/modules/marking/inquiry/index.vue

@@ -41,7 +41,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
 import type { EpFormItem, EpFormRules } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const { push } = useRouter()
 

+ 1 - 1
src/modules/marking/mark/index.vue

@@ -87,7 +87,7 @@ import SampleAStatus from '@/assets/images/status-sample-a.png'
 import SampleBStatus from '@/assets/images/status-sample-b.png'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance } from 'global-type'
 const { push, replace } = useRouter()
 

+ 1 - 1
src/modules/marking/problem/index.vue

@@ -76,7 +76,7 @@ import RightButton from '@/components/shared/RightButton.vue'
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getProblemHistory'> & { index: number }

+ 1 - 1
src/modules/marking/repeat/index.vue

@@ -78,7 +78,7 @@ import RightButton from '@/components/shared/RightButton.vue'
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getReMarkPaperList'> & { index: number }

+ 1 - 1
src/modules/marking/similar/index.vue

@@ -58,7 +58,7 @@ import RightButton from '@/components/shared/RightButton.vue'
 import MarkHeader from '@/components/shared/MarkHeader.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getSimilarPaperList'> & { index: number }

+ 1 - 1
src/modules/marking/statistics/index.vue

@@ -27,7 +27,7 @@ import useFetch from '@/hooks/useFetch'
 import useMainStore from '@/store/main'
 
 import type { EpFormItem, EpTableColumn } from 'global-type'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 const mainStore = useMainStore()
 

+ 1 - 1
src/modules/marking/submit-similar/index.vue

@@ -41,7 +41,7 @@ import useTableCheck from '@/hooks/useTableCheck'
 import BaseTable from '@/components/element/BaseTable.vue'
 import ConfirmButton from '@/components/common/ConfirmButton.vue'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 const props = defineProps<{

+ 1 - 1
src/modules/marking/training-record/index.vue

@@ -46,7 +46,7 @@ import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
 import RightButton from '@/components/shared/RightButton.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn } from 'global-type'
 
 type RowType = ExtractArrayValue<ExtractApiResponse<'viewTrainingRecord'>> & { index: number }

+ 1 - 1
src/modules/marking/view-sample/index.vue

@@ -42,7 +42,7 @@ import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
 import RightButton from '@/components/shared/RightButton.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn } from 'global-type'
 
 type RowType = ExtractArrayValue<ExtractApiResponse<'viewSamplePaper'>> & { index: number }

+ 1 - 1
src/modules/monitor/system-check/index.vue

@@ -81,7 +81,7 @@ import ScoringPanelWithConfirm from '@/components/shared/ScoringPanelWithConfirm
 import ImagePreview from '@/components/shared/ImagePreview.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getSystemSpotList'> & { index: number }

+ 1 - 1
src/modules/monitor/training-monitoring-detail/index.vue

@@ -60,7 +60,7 @@ import SvgIcon from '@/components/common/SvgIcon.vue'
 import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn } from 'global-type'
 
 type RowType = ExtractApiResponse<'getTrainingMonitorDetail'> & { index: number }

+ 1 - 1
src/modules/monitor/training-monitoring/hooks/useFormFilter.ts

@@ -5,7 +5,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 
 import type { EpFormItem } from 'global-type'
-import type { ExtractApiParams } from 'api-type'
+import type { ExtractApiParams } from '@/api/api'
 
 const useFormFilter = () => {
   const { formRef, elFormRef, defineColumn, _ } = useForm()

+ 1 - 1
src/modules/monitor/training-monitoring/index.vue

@@ -43,7 +43,7 @@ import useFetch from '@/hooks/useFetch'
 import useSection from '@/hooks/useSection'
 import useFormFilter from './hooks/useFormFilter'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpTableColumn } from 'global-type'
 
 type TableDataType = ExtractArrayValue<ExtractApiResponse<'getTrainingMonitor'>['data']>

+ 1 - 1
src/modules/quality/ending-check/components/EndCheck.vue

@@ -60,7 +60,7 @@ import useOptions from '@/hooks/useOptions'
 import useVW from '@/hooks/useVW'
 import useForm from '@/hooks/useForm'
 
-import type { ExtractApiParams, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractMultipleApiResponse } from '@/api/api'
 import type { EpFormItem, EpTableColumn, EpFormRules } from 'global-type'
 
 const mainStore = useMainStore()

+ 1 - 1
src/modules/quality/ending-check/components/SubjectProgress.vue

@@ -19,7 +19,7 @@ import VueECharts from 'vue-echarts'
 import BaseTable from '@/components/element/BaseTable.vue'
 
 import type { EChartsOption } from 'echarts'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { EpTableColumn, InstanceTable } from 'global-type'
 
 type SubjectProgress = ExtractArrayValue<ExtractApiResponse<'subjectProgressEnd'>>

+ 1 - 1
src/modules/quality/self-check-detail/index.vue

@@ -72,7 +72,7 @@ import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
 import SendBackMark from '@/components/shared/SendBackMark.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 import type { MarkHeaderInstance, EpTableColumn } from 'global-type'
 
 type RowType = ExtractApiResponse<'getSelfCheckDataDetail'> & { index: number }

+ 1 - 1
src/modules/quality/self-check/index.vue

@@ -49,7 +49,7 @@ import useVW from '@/hooks/useVW'
 import useOptions from '@/hooks/useOptions'
 import useTableCheck from '@/hooks/useTableCheck'
 
-import type { ExtractApiParams, ExtractApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse } from '@/api/api'
 import type { EpFormItem, EpTableColumn } from 'global-type'
 
 type FormModel = Omit<ExtractApiParams<'selfCheckAnalysis'>, 'startTime' | 'endTime'>

+ 1 - 1
src/modules/quality/spot-check/index.vue

@@ -27,7 +27,7 @@ import useFetch from '@/hooks/useFetch'
 import useVW from '@/hooks/useVW'
 import useMainStore from '@/store/main'
 
-import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from 'api-type'
+import type { ExtractApiParams, ExtractApiResponse, ExtractMultipleApiResponse } from '@/api/api'
 import type { EpFormItem, EpTableColumn } from 'global-type'
 
 const model = reactive<ExtractApiParams<'statisticCheckOverview'>>({

+ 1 - 1
src/modules/quality/subjective-check/index.vue

@@ -87,7 +87,7 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
 import SvgIcon from '@/components/common/SvgIcon.vue'
 
 import type { SetImgBgOption } from '@/hooks/useSetImgBg'
-import type { ExtractMultipleApiResponse, ExtractApiParams } from 'api-type'
+import type { ExtractMultipleApiResponse, ExtractApiParams } from '@/api/api'
 import type { MarkHeaderInstance, EpFormItem, EpTableColumn } from 'global-type'
 
 type RowType = ExtractMultipleApiResponse<'getSubjectiveCheckList'> & { index: number }

+ 1 - 1
src/plugins/request/plugin.ts

@@ -1,7 +1,7 @@
 import { SHA1, enc } from 'crypto-js'
 import { sessionStorage } from '@/plugins/storage'
 import type { Method, AxiosRequestConfig } from 'axios'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 interface SignTokenParams {
   url?: string

+ 1 - 1
src/store/layout.ts

@@ -3,7 +3,7 @@ import router from '@/router'
 import useFetch from '@/hooks/useFetch'
 
 import type { RouteRecordRaw } from 'vue-router'
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 
 export function getMenuRotes() {
   function getMenuInfo(route: RouteRecordRaw): MainLayoutStore.MenuItem {

+ 1 - 1
src/store/main.ts

@@ -2,7 +2,7 @@ import { defineStore } from 'pinia'
 import { sessionStorage } from '@/plugins/storage'
 import useFetch from '@/hooks/useFetch'
 
-import type { ExtractApiResponse } from 'api-type'
+import type { ExtractApiResponse } from '@/api/api'
 interface MainStoreState {
   bootstrapTime: number
   loginSuccessTime: number

+ 0 - 1903
types/api.d.ts

@@ -1,1903 +0,0 @@
-declare module 'api-type' {
-  import type { AxiosRequestConfig } from 'axios'
-  export type BaseMultiplePageQuery = { pageNumber: number; pageSize: number }
-  type BaseMultiplePageResult = {
-    pageCount: number
-    pageNumber: number
-    pageSize: number
-    totalCount: number
-  }
-
-  export type MultipleQuery<T extends object> = BaseMultiplePageQuery & T
-  export type MultipleResult<T> = BaseMultiplePageResult & { result: T[] }
-
-  type BaseDefine<P = null, R = null, O = null> = {
-    params: P
-    result: R
-  }
-
-  export type ApiMap = User.ApiMap &
-    Role.ApiMap &
-    Exam.ApiMap &
-    Subject.ApiMap &
-    Statistics.ApiMap &
-    Question.ApiMap &
-    Marking.ApiMap &
-    System.ApiMap &
-    Message.ApiMap &
-    ForceCheck.ApiMap &
-    Expert.ApiMap
-
-  export type ApiKeys = keyof ApiMap
-
-  export type DefineApiModule<M extends object> = {
-    [k in keyof M]: string | (AxiosRequestConfig & { url: string })
-  }
-
-  export type ExtractApiParams<T extends ApiKeys> = ApiMap[T] extends BaseDefine<infer P, any> ? P : never
-
-  export type ExtractMultipleApiParams<T extends ApiKeys> = ExtractApiParams<T> extends MultipleQuery<infer P>
-    ? P
-    : never
-
-  export type ExtractApiResponse<T extends ApiKeys> = ApiMap[T] extends BaseDefine<any, infer R> ? R : never
-
-  export type ExtractMultipleApiResponse<T extends ApiKeys> = ExtractApiResponse<T> extends MultipleResult<infer R>
-    ? R
-    : never
-
-  /** 专家卷浏览 */
-
-  export namespace Expert {
-    interface SamplePaperListItem {
-      createName: string
-      createTime: string
-      fileName: string
-      filePath: string
-      id: number
-      mainNumber: number
-      paperType: string
-      score: number
-      secretNumber: number
-      type: string
-    }
-    type GetSampleList = BaseDefine<
-      MultipleQuery<{ mainNumber?: number; paperType: 'SAMPLE_A' | 'SAMPLE_B' }>,
-      MultipleResult<SamplePaperListItem>
-    >
-
-    interface RfSampleListItem {
-      createName: string
-      createTime: string
-      filePath: string
-      id: number
-      mainName: string
-      mainNumber: number
-      score: number
-      scoreLevel: string
-      secretNumber: number
-    }
-
-    type GetRfSampleList = BaseDefine<MultipleQuery<{ mainNumber?: number }>, MultipleResult<RfSampleListItem>>
-
-    type UpdateMarkScore = BaseDefine<{ id?: number; scores: number[] }>
-
-    interface StandardListItem {
-      createName: string
-      createTime: string
-      fileName: string
-      filePath: string
-      id: number
-      mainNumber: number
-      score: number
-      secretNumber: number
-      taskId: number
-    }
-
-    type GetStandardList = BaseDefine<
-      MultipleQuery<{
-        mainNumber?: number
-        dispensed: boolean | ''
-        scoreStart?: number | string
-        scoreEnd?: number | string
-      }>,
-      MultipleResult<StandardListItem>
-    >
-
-    type TransformStandardToSample = BaseDefine<{ id?: number }>
-
-    interface ExpertAssessListItem {
-      createName: string
-      createTime: string
-      filePath: string
-      forceGroupNumber: number
-      id: number
-      mainName: string
-      mainNumber: number
-      score: number
-      secretNumber: number
-    }
-
-    type GetExpertAssessList = BaseDefine<
-      MultipleQuery<{
-        mainNumber?: number
-        forceGroupNumber?: number
-      }>,
-      MultipleResult<ExpertAssessListItem>
-    >
-
-    interface ExpertPickListItem {
-      createName: string
-      createTime: string
-      filePath: string
-      forceGroupNumber: number
-      id: number
-      mainName: string
-      mainNumber: number
-      role: string
-      roleName: string
-      score: number
-      secretNumber: number
-    }
-
-    type GetExpertPickList = BaseDefine<
-      MultipleQuery<{
-        mainNumber?: number
-        forceGroupNumber?: number
-        paperType: ExpertPickType
-        role: Exclude<ROLE, 'ADMIN'>
-      }>,
-      MultipleResult<ExpertPickListItem>
-    >
-
-    type DeletePaper = BaseDefine<{ id?: number }>
-
-    export interface ApiMap {
-      /** AB培训卷 */
-      getSampleList: GetSampleList
-      /** RF卷 */
-      getRfSampleList: GetRfSampleList
-      /** 修改分数 */
-      updateMarkScore: UpdateMarkScore
-      /** 获取标准卷 */
-      getStandardList: GetStandardList
-      /** 标准卷转样卷 */
-      transformStandardToSample: TransformStandardToSample
-      /** 强制考核卷列表 */
-      getExpertAssessList: GetExpertAssessList
-      /** 专家挑选卷 */
-      getExpertPickList: GetExpertPickList
-      /** 删除 */
-      deletePaper: DeletePaper
-    }
-  }
-
-  /** 强制考核接口 */
-  export namespace ForceCheck {
-    /** 分发考核卷 */
-    type HandOutForceCheck = BaseDefine<{
-      forceGroupNumber?: number
-      mainNumber?: number
-      markerIds: number[]
-      subjectCode: string
-    }>
-    /** 获取考核卷组 */
-    interface ForceCheckGroup {
-      createTime: string
-      creatorId: number
-      examId: number
-      forceGroupNumber: number
-      id: number
-      mainNumber: number
-      subjectCode: string
-      updateTime: string
-      updaterId: number
-    }
-    type GetForceCheckGroupList = BaseDefine<{ mainNumber?: number; subjectCode: string }, ForceCheckGroup[]>
-    /** 获取分发进度 */
-    interface HandOutProgress {
-      /** 已评量 */
-      finishCount: number
-      /** 强制卷组号 */
-      forceGroupNumber: number
-      /** 大题 */
-      mainQuestion: string
-      /** 评卷员 */
-      marker: string
-      /** 小组号 */
-      markingGroupNumber: number
-      /** 未评量 */
-      pendingCount: number
-      /** 科目 */
-      subject: string
-      /** 总量 */
-      totalCount: number
-    }
-    type GetHandOutProgressList = BaseDefine<
-      { mainNumber?: number; subjectCode: string; forceGroupNumber?: number },
-      HandOutProgress[]
-    >
-    export interface ApiMap {
-      /** 分发考核卷 */
-      handOutForceCheck: HandOutForceCheck
-      /** 获取考核卷组 */
-      getForceCheckGroupList: GetForceCheckGroupList
-      /** 获取分发进度 */
-      getHandOutProgressList: GetHandOutProgressList
-    }
-  }
-
-  /** 消息接口 */
-
-  export namespace Message {
-    interface BaseMessageResponse {
-      id: number
-      content: string
-      receiveUserId: number
-      receiveUserName: string
-      sendTime: string
-      sendUserId: number
-      sendUserName: string
-      unReadCount: number
-    }
-    /** 历史消息 */
-    type GetMessageHistory = BaseDefine<{ sendUserId: number }, BaseMessageResponse[]>
-    /** 消息列表 */
-    type GetMessageList = BaseDefine<null, BaseMessageResponse[]>
-    /** 发送/回复消息 */
-    type SendMessage = BaseDefine<{ content: string; receiveUserIds: number[] }>
-    /** 未读消息 - 最新5条 */
-    type GetUnReadMessage = BaseDefine<null, { newCount: number; messages: BaseMessageResponse[] }>
-    /** 已读 */
-    type HandleReadMessage = BaseDefine<{ id: number }>
-    export interface ApiMap {
-      /** 历史消息 */
-      getMessageHistory: GetMessageHistory
-      /** 消息列表 */
-      getMessageList: GetMessageList
-      /** 发送/回复消息 */
-      sendMessage: SendMessage
-      /** 未读消息 - 最新5条 */
-      getUnReadMessage: GetUnReadMessage
-      /** 已读 */
-      handleReadMessage: HandleReadMessage
-    }
-  }
-
-  /** meta data  基础数据导入配置 */
-  export namespace System {
-    /** 评卷数据导入 */
-    interface MarkingDataImport {
-      dayNumber?: number
-      file?: File
-      mainNumber?: number
-      separator: string
-      subjectCode: string
-    }
-
-    type ImportMarkingData = BaseDefine<MarkingDataImport>
-
-    /** 获取导入文件路径 */
-    type GetImportFilePath = BaseDefine<
-      {
-        filePathType: 'SLICE' | 'SAMPLE_A' | 'SAMPLE_B' | 'RF' | 'MARK_STANDARD'
-        mainNumber?: number
-        subjectCode: string
-      },
-      { rfPath: string; sampleAPath: string; sampleBPath: string; markStandardPath: string }
-    >
-
-    interface SamplePaperImport {
-      file?: File
-      /** 大题号 */
-      mainNumber?: number
-      /** 试卷类型 */
-      paperType?: SamplePaperType
-      /** 试卷密码前缀 */
-      prefix: string
-      /** 分隔符 */
-      separator: string
-      /** 科目代码 */
-      subjectCode: string
-    }
-
-    type ImportSamplePaper = BaseDefine<SamplePaperImport>
-
-    interface RfPaperImport {
-      file?: File
-      /** 试卷密码前缀 */
-      prefix: string
-      /** 大题号 */
-      mainNumber?: number
-      /** 科目代码 */
-      subjectCode: string
-      /** 分隔符 */
-      separator: string
-    }
-
-    type ImportRfPaper = BaseDefine<RfPaperImport>
-
-    interface ScoreListItem {
-      /** 作文评卷员代码 */
-      compositionMarker: string
-      /** 作文雷同标记 */
-      compositionSame: string
-      /** 作文分 */
-      compositionScore: string
-      /** 作文评卷标志 */
-      compositionTag: string
-      /** 准考证号 */
-      examNumber: string
-      id: number
-      /** 科目代码 */
-      subjectCode: string
-      /** 主观分 */
-      subjectScore: string
-      /** 翻译评卷员代码 */
-      translateMarker: string
-      /** 翻译雷同标记 */
-      translateSame: string
-      /** 翻译分 */
-      translateScore: string
-      /** 翻译评卷标志 */
-      translateTag: string
-    }
-
-    type GetCetScoreList = BaseDefine<MultipleQuery<{ subjectCode: string }>, MultipleResult<ScoreListItem>>
-
-    type ExportCetScoreList = BaseDefine<{ subjectCode: string }, null>
-
-    /** 任务设置 - 按评卷员设置 */
-    type MarkerSetCount = BaseDefine<{ markDayCount?: number; markTotalCount?: number; userId: number[] }>
-
-    /** 任务设置 - 按小组追加 */
-    type MarkGroupUpdateCount = BaseDefine<{
-      markCount?: number
-      markingGroupNumber?: number
-      mainNumber?: number
-      subjectCode?: string
-    }>
-
-    /** 任务设置-获取任务计划 */
-    interface TaskDetail {
-      finishCount: number
-      markCount: number
-      markingGroupNumber: number
-    }
-    type GetTaskDetail = BaseDefine<
-      {
-        mainNumber?: number
-        markingGroupNumber?: number
-        subjectCode?: string
-      },
-      TaskDetail[]
-    >
-    /** 任务设置-获取剩余任务 */
-    type GetUnMarkTasks = BaseDefine<
-      {
-        mainNumber?: number
-        markingGroupNumber?: number
-        subjectCode?: string
-      },
-      {
-        unmarkCount: 0
-      }
-    >
-    export interface ApiMap {
-      importMarkingData: ImportMarkingData
-      getImportFilePath: GetImportFilePath
-      importSamplePaper: ImportSamplePaper
-      importRfPaper: ImportRfPaper
-      getCetScoreList: GetCetScoreList
-      exportCetScoreList: ExportCetScoreList
-      /** 任务设置 - 按评卷员设置 */
-      markerSetCount: MarkerSetCount
-      /** 任务设置 - 按小组追加 */
-      markGroupUpdateCount: MarkGroupUpdateCount
-      /** 任务设置-获取任务计划 */
-      getTaskDetail: GetTaskDetail
-      /** 任务设置-获取剩余任务 */
-      getUnMarkTasks: GetUnMarkTasks
-    }
-  }
-
-  /** 评卷相关 */
-  export namespace Marking {
-    /** 自定义查询 - 抽查 */
-
-    // 查询参数
-    interface CustomQuery {
-      /** 是否包含仲裁 */
-      arbitration?: boolean
-      /** 是否已抽查 */
-      checked?: boolean
-      /** 大题号 */
-      mainNumber?: number
-      /** 评卷员id */
-      markerId?: number
-      /** 小组号 */
-      markingGroupNumber?: number
-      /** 分数截止 */
-      scoreEnd?: number
-      /** 分数开始 */
-      scoreStart?: number
-      /** 科目代码 */
-      subjectCode?: string
-      /** 时间截止 */
-      timeEnd?: string
-      /** 时间开始 */
-      timeStart?: string
-      /** 密号 */
-      secretNumber?: string
-    }
-
-    /** 自定义抽查任务列表 */
-    interface CustomQueryTask {
-      customCheckNumber: number
-      examNumber: string
-      filePath: string
-      mainNumber: number
-      markTime: string
-      markerName: string
-      headerScore: number
-      markerScore: number
-      secretNumber: string
-      taskId: number
-    }
-    type GetCustomQueryTasks = BaseDefine<MultipleQuery<CustomQuery>, MultipleResult<CustomQueryTask>>
-
-    type SetCustomQueryConfig = BaseDefine<{ name: string; params: CustomQuery }>
-
-    type GetCustomQueryConfigList = BaseDefine<{ name: string }, { name: string; params: CustomQuery }[]>
-
-    /** 自定义查询 - 浏览 */
-    type ViewCustomQuery = BaseDefine<{ taskId: number }>
-
-    /** 自定义查询 - 修改卷型 */
-    type UpdateCustomPaperType = BaseDefine<{
-      taskId?: number
-      paperType: ExpertPickType
-      forceGroupNumber?: number
-    }>
-
-    /** 自定义查询 - 修改分数 */
-    type UpdateCustomPaperScore = BaseDefine<{
-      taskId?: number
-      scores: number[]
-    }>
-
-    type GetMarkingStandard = BaseDefine<null, { examId: number; mainNumber: number; subjectCode: string; url: string }>
-
-    interface Question {
-      intervalScore: number
-      subNumber: string
-      totalScore: number
-    }
-    interface Task {
-      /** 大题号 */
-      mainNumber: number
-      /** 大题名称 */
-      mainTitle: string
-      /** 小题列表 */
-      questionList: Question[]
-      /** 密号 */
-      secretNumber: string
-      /** 科目代码 */
-      subjectCode: string
-      /** 任务ID */
-      taskId: number
-      /** 任务类型 */
-      taskType: TaskType
-      /** 最小阅卷时长 */
-      minMarkTime: number
-      /** 试卷 path */
-      url: string
-    }
-
-    type GetMarkingTask = BaseDefine<null, Task[]>
-
-    /** 清除评卷任务缓存 */
-    type ClearCachedTasks = BaseDefine
-
-    interface MarkStatus {
-      markedCount: number
-      personCount: number
-      problemCount: number
-      totalCount: number
-    }
-
-    type GetMarkStatus = BaseDefine<null, MarkStatus>
-
-    interface SubmitMark {
-      markScore: number
-      markScores: number[]
-      spentTime: number
-      taskId: number
-      problem: boolean
-      problemType?: ProblemType
-    }
-
-    type SubmitMarkTask = BaseDefine<SubmitMark, MarkStatus>
-
-    interface HistoryTask {
-      mainNumber: number
-      mainTitle: number
-      markScore: number
-      markTime: string
-      markerScores: number[]
-      questionList: Question[]
-      secretNumber: string
-      subjectCode: string
-      taskId: number
-      taskType: string
-      url: string
-    }
-
-    type GetMarkHistory = BaseDefine<null, HistoryTask[]>
-
-    interface ProblemListParams {
-      mainNumber?: number
-      problemType: ProblemType | ''
-      status: '' | 'INITIAL' | 'PROCESSED'
-    }
-
-    interface ProblemListItem {
-      createTime: string
-      examNumber: string
-      filePath: string
-      headerName: number
-      headerScore: number
-      headerScores: number[]
-      id: number
-      mainNumber: number
-      mainName: string
-      markerName: string
-      markerRatio: string
-      markerScore: number
-      objectiveScore: number
-      problemSolveType: string
-      problemType: string
-      secretNumber: string
-      solveTime: string
-      taskId: number
-    }
-
-    type GetProblemHistory = BaseDefine<MultipleQuery<ProblemListParams>, MultipleResult<ProblemListItem>>
-
-    type MarkProblemPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-    interface MarkScoreHistory {
-      id: number
-      markScore: number
-      markerName: string
-      scoreLevel: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5'
-      markTime: string
-      secretNumber: string
-      status: string
-      taskId: number
-      url: string
-    }
-
-    type GetMarkScoreHistoryListWithTask = BaseDefine<{ taskId: number | string }, MarkScoreHistory[]>
-
-    type RejectMarkHistory = BaseDefine<{ description: string; id: number; reason: string }>
-
-    interface ArbitrationListItem {
-      chiefName: string
-      chiefRatio: string
-      chiefScore: number
-      deputyName: string
-      deputyRatio: string
-      deputyScore: number
-      filePath: string
-      groupLeaderName: string
-      groupLeaderRatio: string
-      groupLeaderScore: number
-      id: number
-      mainName: string
-      mainNumber: number
-      markerName: string
-      markerRatio: string
-      markerScore: number
-      objectiveScore: number
-      secretNumber: string
-      status: string
-      taskId: number
-      teamLeaderName: string
-      teamLeaderRatio: string
-      teamLeaderScore: number
-    }
-
-    type GetArbitrationList = BaseDefine<
-      MultipleQuery<{ mainNumber?: number; status: ArbitrationStatus | '' }>,
-      MultipleResult<ArbitrationListItem>
-    >
-
-    type MarkArbitrationPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-    type ViewArbitrationPaper = BaseDefine<{ id?: number }>
-
-    interface ReMarkPaperListItem {
-      confirm: string
-      confirmScore: number
-      filePath: string
-      id: number
-      mainNumber: number
-      mainName: string
-      markerName: string
-      markerScore: number
-      reMarkTime: string
-      secretNumber: string
-      taskId: number
-    }
-
-    type GetReMarkPaperList = BaseDefine<
-      MultipleQuery<{ mainNumber?: number; confirm: boolean }>,
-      MultipleResult<ReMarkPaperListItem>
-    >
-
-    type MarkReMarkPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-    type ConfirmReMarkPaper = BaseDefine<{ id?: number }>
-
-    interface TrainingRecord {
-      examId: number
-      markScore: number
-      score: number
-      secretNumber: string
-      subjectCode: string
-      taskId: number
-      taskType: string
-      url: string
-    }
-
-    type ViewTrainingRecord = BaseDefine<null, TrainingRecord[]>
-
-    interface SamplePaper {
-      description: string
-      examId: number
-      id: number
-      mainNumber: number
-      mainTitle: string
-      markTime: string
-      markerName: string
-      score: number
-      secretNumber: number
-      subjectCode: string
-      url: string
-    }
-
-    type ViewSamplePaper = BaseDefine<null, SamplePaper[]>
-
-    interface SamePaperListItem {
-      examNumber: string
-      filePath: string
-      id: number
-      mainNumber: number
-      markerName: string
-      sameExamNumber: string
-      sameFilePath: string
-      sameSecretNumber: string
-      secretNumber: number
-      status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-      taskId: number
-    }
-
-    type GetSimilarPaperList = BaseDefine<
-      MultipleQuery<{
-        mainNumber?: number
-        status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-      }>,
-      MultipleResult<SamePaperListItem>
-    >
-
-    type ConfirmIsSimilar = BaseDefine<{ id?: number; same: boolean }>
-
-    type ExportSimilarPaper = BaseDefine<
-      MultipleQuery<{
-        mainNumber?: number
-        status: 'INITIAL' | 'NOT_SAME' | 'SAME'
-      }>
-    >
-
-    type SubmitSimilarPaper = BaseDefine<{ sameTaskId: number | string; taskId: number | string }>
-
-    export interface ApiMap {
-      /** 自定义查询 - 抽查 */
-      getCustomQueryTasks: GetCustomQueryTasks
-      /** 自定义查询 - 保存为快捷查询 */
-      setCustomQueryConfig: SetCustomQueryConfig
-      /** 自定义查询 - 获取快捷查询列表 */
-      getCustomQueryConfigList: GetCustomQueryConfigList
-      /** 自定义查询 - 浏览 */
-      viewCustomQuery: ViewCustomQuery
-      /** 自定义查询 - 修改卷型 */
-      updateCustomPaperType: UpdateCustomPaperType
-      /** 自定义查询 - 修改分数 */
-      updateCustomPaperScore: UpdateCustomPaperScore
-      /** 查看评分标准 */
-      getMarkingStandard: GetMarkingStandard
-      /** 获取评卷任务 */
-      getMarkingTask: GetMarkingTask
-      /** 清除评卷任务缓存 */
-      clearCachedTasks: ClearCachedTasks
-      /** 获取评卷进度 */
-      getMarkStatus: GetMarkStatus
-      /** 提交评卷任务 */
-      submitMarkTask: SubmitMarkTask
-      /** 获取回评历史 */
-      getMarkHistory: GetMarkHistory
-      /** 问题卷列表 */
-      getProblemHistory: GetProblemHistory
-      /** 问题卷打分 */
-      markProblemPaper: MarkProblemPaper
-      /** 通过taskId 查询给分记录 */
-      getMarkScoreHistoryListWithTask: GetMarkScoreHistoryListWithTask
-      /** 打回 */
-      rejectMarkHistory: RejectMarkHistory
-      /** 仲裁卷列表 */
-      getArbitrationList: GetArbitrationList
-      /** 仲裁卷打分 */
-      markArbitrationPaper: MarkArbitrationPaper
-      /** 仲裁卷浏览 */
-      viewArbitrationPaper: ViewArbitrationPaper
-      /** 重评卷列表 */
-      getReMarkPaperList: GetReMarkPaperList
-      /** 重评卷打分 */
-      markReMarkPaper: MarkReMarkPaper
-      /** 重评卷确认 */
-      confirmReMarkPaper: ConfirmReMarkPaper
-      /** 查看培训记录 */
-      viewTrainingRecord: ViewTrainingRecord
-      /** 查看样卷 */
-      viewSamplePaper: ViewSamplePaper
-      /** 雷同卷列表 */
-      getSimilarPaperList: GetSimilarPaperList
-      /** 是否雷同 */
-      confirmIsSimilar: ConfirmIsSimilar
-      /** 导出雷同 */
-      exportSimilarPaper: ExportSimilarPaper
-      /** 提交雷同卷 */
-      submitSimilarPaper: SubmitSimilarPaper
-    }
-  }
-
-  /** 题目管理 */
-  export namespace Question {
-    /** 删除小题 */
-    type DeleteSubQuestion = BaseDefine<{
-      id: number
-    }>
-
-    /** 编辑小题 */
-    type EditSubQuestion = BaseDefine<{
-      id?: number
-      /** 小题间隔分 */
-      intervalScore?: number
-    }>
-
-    /** 小题列表信息 */
-    interface SubQuestionInfo {
-      id: number
-      intervalScore: number
-      mainNumber: number
-      mainTitle: string
-      subNumber: number
-      totalScore: number
-    }
-
-    /** 获取小题列表 */
-    type GetSubQuestionList = BaseDefine<{ subjectCode: string }, SubQuestionInfo[]>
-
-    interface MainQuestionListItem {
-      createTime: string
-      creatorId: number
-      examId: number
-      groupNumber: number
-      id: number
-      levelRange: number[]
-      mainNumber: number
-      minMarkTime: number
-      remarkNumber: number
-      remarkType: string
-      standardRate: number
-      selfRate: number
-      subjectCode: string
-      systemRate: number
-      title: string
-      totalScore: number
-      updateTime: string
-      updaterId: number
-    }
-
-    /** 获取大题列表 */
-    type GetMainQuestionList = BaseDefine<{ subjectCode: string }, MainQuestionListItem[]>
-
-    interface SubQuestionStruct {
-      intervalScore: number
-      score: number
-      subNumber: number
-      totalScore: number
-    }
-    /** 获取大题评卷结构 */
-    type GetQuestionStruct = BaseDefine<
-      { mainNumber?: number },
-      { mainNumber: number; mainTitle: string; questionList: SubQuestionStruct[] }
-    >
-
-    /** 大题设置 (新增/编辑) */
-    interface MainQuestionMeta {
-      /** 大题号 */
-      mainNumber?: number
-      /** 大题名称 */
-      mainTitle: string
-      /** 分组数量 */
-      groupNumber?: number
-      /** 间隔分 */
-      intervalScore?: number
-      /** 最小阅卷时间 */
-      minMarkTime?: number
-      /** 小题数量 */
-      questionCount?: number
-      /** 小题满分 */
-      questionScore?: number
-      /** 回评数量 */
-      remarkNumber?: number
-      /** 标准卷频度 */
-      standardRate?: number
-      /** 自查卷频度 */
-      selfRate?: number
-      /** 系统抽查频度 */
-      systemRate?: number
-      /** 起始题号 */
-      startNumber: number
-      /** 档次比例 */
-      levelRange: number[]
-      /** 回评方式,可用值:TIME,QUANTITY */
-      remarkType: RemarkType
-      /** 科目代码 */
-      subjectCode: string
-      /** 成绩表对应题目类型,可用值:WRITING,TRANSLATION */
-      category?: QuestionCategory
-    }
-
-    /** 新增大题 */
-    type AddMainQuestion = BaseDefine<MainQuestionMeta>
-
-    /** 大题设置 */
-    type EditMainQuestion = BaseDefine<MainQuestionMeta>
-
-    /** 获取大题信息 */
-    type GetMainQuestionInfo = BaseDefine<
-      { mainNumber: number; subjectCode: string },
-      MainQuestionMeta & { examId: number }
-    >
-
-    export interface ApiMap {
-      deleteSubQuestion: DeleteSubQuestion
-      editSubQuestion: EditSubQuestion
-      getSubQuestionList: GetSubQuestionList
-      addMainQuestion: AddMainQuestion
-      editMainQuestion: EditMainQuestion
-      getMainQuestionInfo: GetMainQuestionInfo
-      getMainQuestionList: GetMainQuestionList
-      /** 获取大题评卷结构 */
-      getQuestionStruct: GetQuestionStruct
-    }
-  }
-
-  /** 科目管理 */
-  export namespace Subject {
-    /** 删除科目 */
-    type DeleteSubject = BaseDefine<{ id: number }>
-
-    interface BaseSubjectInfo {
-      /** 科目代码 */
-      code: string
-      /** 科目名称 */
-      name: string
-      /** 启用/禁用 */
-      enable: boolean
-    }
-
-    interface SubjectInfo extends BaseSubjectInfo {
-      /** 科目ID */
-      id: number
-      /** 考试ID */
-      examId: number
-      /** 考试名称 */
-      examName: string
-      /** 客观分 */
-      objectiveScore: number
-      /** 主观分 */
-      subjectiveScore: number
-      /** 试卷总分 */
-      totalScore: number
-    }
-
-    /** 获取科目信息 */
-    type GetSubjectInfo = BaseDefine<{ id: number }, SubjectInfo>
-
-    /** 查询科目列表 */
-    type GetSubjectList = BaseDefine<
-      MultipleQuery<{
-        /** 科目代码 */
-        code?: string
-        /** 科目名称 */
-        name?: string
-        /** 启用/禁用 */
-        enable?: boolean
-      }>,
-      MultipleResult<SubjectInfo>
-    >
-    /** 新增/修改科目 */
-    type SaveSubjectInfo = BaseDefine<BaseSubjectInfo & { id?: number }>
-
-    /** 启用/禁用科目 */
-    type ToggleEnableSubject = BaseDefine<{ ids: number[]; enable: boolean }>
-    export interface ApiMap {
-      /** 删除考试 */
-      deleteSubject: DeleteSubject
-      /** 获取考试信息 */
-      getSubjectInfo: GetSubjectInfo
-      /** 查询考试列表 */
-      getSubjectList: GetSubjectList
-      /** 新增/修改考试 */
-      saveSubjectInfo: SaveSubjectInfo
-      /** 启用/禁用科目 */
-      toggleEnableSubject: ToggleEnableSubject
-    }
-  }
-
-  /** 考试管理 */
-  export namespace Exam {
-    /** 删除考试 */
-    type DeleteExam = BaseDefine<{ id: number }>
-
-    /** 获取考试信息 */
-    type GetExamInfo = BaseDefine<{ id: number }, Required<BaseExamInfo>>
-
-    /** 查询考试列表 */
-    type GetExamList = BaseDefine<
-      MultipleQuery<{
-        /** 考试状态 */
-        enable?: boolean
-        /** 考试名称 */
-        name?: string
-      }>,
-      MultipleResult<{
-        /** 考试状态 */
-        enable: boolean
-        /** 考试ID */
-        id: number
-        /** 考试名称 */
-        name: string
-        /** 更新时间 */
-        updateTime: string
-      }>
-    >
-    interface BaseExamInfo {
-      id?: number
-      /** 问题卷允许打回 */
-      doubtReject: boolean
-      /** 评卷模式 */
-      markingMode: MarkMode
-      /** 在线评卷时长 */
-      maxMarkingDuration: number
-      /** 自动回收任务(分钟) */
-      maxTaskRecover: number
-      /** 考试名称 */
-      name: string
-      /** 抽查卷允许打回 */
-      spotCheckReject: boolean
-      /** 用户姓名收集 */
-      userNameCollect: boolean
-      enable: boolean
-    }
-
-    /** 新增/修改考试 */
-    type SaveExamInfo = BaseDefine<Partial<BaseExamInfo>>
-
-    /** 启用/禁用考试 */
-    type ToggleEnableExam = BaseDefine<{ ids: number[]; enable: boolean }>
-    export interface ApiMap {
-      /** 删除考试 */
-      deleteExam: DeleteExam
-      /** 获取考试信息 */
-      getExamInfo: GetExamInfo
-      /** 查询考试列表 */
-      getExamList: GetExamList
-      /** 新增/修改考试 */
-      saveExamInfo: SaveExamInfo
-      /** 启用/禁用考试 */
-      toggleEnableExam: ToggleEnableExam
-    }
-  }
-
-  /** 用户管理 & 登录 */
-  export namespace User {
-    /** >>> user api <<< */
-    /** 用户登录 */
-    interface LoginResponse {
-      accessToken: string
-      activeTime: string
-      allowIP: string[]
-      denyIP: string[]
-      identity: string
-      secret: string
-      sessionId: string
-      /** 名称 */
-      name: string
-      /** 角色 */
-      role: ROLE
-      /** 用户ID */
-      id: number
-      /** 考试批次ID */
-      examId: number
-      /** 大题ID */
-      mainNumber: number
-      /** 评卷员状态 */
-      stage: STAGE
-      /** 科目代码 */
-      subjectCode: string
-      /** needRealName */
-      needRealName: boolean
-    }
-    type UserLogin = BaseDefine<
-      {
-        loginName: string
-        password: string
-      },
-      LoginResponse
-    >
-
-    /** 导出用户 */
-    type ExportUser = BaseDefine<{
-      enable?: boolean
-      role?: ROLE
-      loginName?: string
-      name?: string
-      mainNumber?: number
-      subjectCode?: string
-    }>
-
-    interface BaseUserInfo {
-      examId?: number
-      examName?: string
-      loginName: string
-      mainNumber?: number
-      markingGroupNumber?: number
-      name?: string
-      role: ROLE
-      subjectCode: string
-      enable: boolean
-    }
-
-    interface ResponseUserInfo extends BaseUserInfo {
-      id: number
-      createTime: string
-      groupId: number
-      subjectName: string
-      roleName: string
-      updateTime: string
-      updaterName: string
-    }
-
-    /** 新增修改用户信息 */
-    type SaveUserInfo = BaseDefine<
-      BaseUserInfo & {
-        id?: number
-        password: string
-      }
-    >
-
-    /** 批量创建用户 */
-    type BulkSaveUser = BaseDefine<{
-      /** 启用/禁用 */
-      enable: boolean
-      /** 账号位数 */
-      loginNameLength: number
-      /** 大题ID */
-      mainNumber?: number
-      /** 分组账号数量 */
-      markingGroupAccounts?: number
-      /** 小组号 */
-      markingGroupNumber?: number
-      /** 密码 */
-      password: string
-      /** 自定义前缀 */
-      prefix: string
-      /** 角色 */
-      role: ROLE
-      /** 起始数 */
-      start?: number
-      /** 科目代码 */
-      subjectCode: string
-    }>
-
-    /** 查询用户信息 */
-    type GetUserInfo = BaseDefine<
-      {
-        id: number
-      },
-      ResponseUserInfo
-    >
-    /** 查询当前用户信息 */
-    type GetMyUserInfo = BaseDefine<null, ResponseUserInfo>
-    /** 查询用户列表 */
-    type GetUserList = BaseDefine<
-      MultipleQuery<{
-        enable?: boolean
-        role?: ROLE
-        loginName?: string
-        name?: string
-        mainNumber?: number
-        subjectCode?: string
-      }>,
-      MultipleResult<ResponseUserInfo>
-    >
-    /** 修改用户密码 */
-    type UpdateUserPwd = BaseDefine<{ password: string }>
-    /** 修改用户姓名 */
-    type UpdateUserName = BaseDefine<{ name: string }>
-    /** 重置指定用户密码 */
-    type ResetUsersPwd = BaseDefine<{ userIds: number[] }>
-    /** 启用/禁用用户 */
-    type ToggleEnableUsers = BaseDefine<{ ids: number[]; enable: boolean }>
-
-    interface PrivilegeInfo {
-      code: string
-      id: number
-      name: string
-      nodeCode: string
-      nodeId: string
-      nodeName: string
-      parentId: number
-      parentNodeId: string
-      privilegeType: string
-      privilegeUri: string
-    }
-    /** 获取当前用户菜单 */
-    type GetUserPrivilege = BaseDefine<null, PrivilegeInfo[]>
-
-    /** 超管选择考试 */
-    type CheckExam = BaseDefine<{ examId: number }>
-
-    /** 获取评卷员Tree */
-    interface Marker {
-      createTime: string
-      enable: boolean
-      examId: number
-      examName: string
-      id: number
-      loginName: string
-      mainNumber: number
-      markingGroupNumber: number
-      name: string
-      role: string
-      roleName: string
-      subjectCode: string
-      updateTime: string
-      updaterName: string
-    }
-
-    type GetMarkerTree = BaseDefine<
-      { subjectCode: string; mainNumber?: number; name: string },
-      { markers: Marker[]; markingGroupNumber: number }[]
-    >
-
-    type GetMarkerList = BaseDefine<{ subjectCode: string; mainNumber?: number; markingGroupNumber?: number }, Marker[]>
-
-    interface UserInfo {
-      config: string
-      createTime: string
-      enable: boolean
-      examId: number
-      examName: string
-      id: number
-      loginName: string
-      mainNumber: number
-      markDayCount: number
-      markTotalCount: number
-      markingGroupNumber: number
-      name: string
-      role: string
-      roleName: string
-      subjectCode: string
-      subjectName: string
-      updateTime: string
-      updaterName: string
-    }
-
-    type GetUserGroup = BaseDefine<
-      null,
-      {
-        /** 大组长 */
-        chiffGroup: UserInfo[]
-        /** 小组长 */
-        deputyGroup: UserInfo[]
-        /** 评卷小组 */
-        markerGroup: {
-          markingGroupNumber: number
-          markers: UserInfo[]
-        }[]
-      }
-    >
-
-    /** >>> user api end <<< */
-    export interface ApiMap {
-      userLogin: UserLogin
-      userLogout: null
-      exportUser: ExportUser
-      downloadUserTemplate: null
-      saveUserInfo: SaveUserInfo
-      getUserInfo: GetUserInfo
-      getMyUserInfo: GetMyUserInfo
-      getUserList: GetUserList
-      updateUserPwd: UpdateUserPwd
-      resetUsersPwd: ResetUsersPwd
-      toggleEnableUsers: ToggleEnableUsers
-      checkExam: CheckExam
-      bulkSaveUser: BulkSaveUser
-      updateUserName: UpdateUserName
-      getUserPrivilege: GetUserPrivilege
-      getMarkerTree: GetMarkerTree
-      getMarkerList: GetMarkerList
-      /** 用户分组 - 发消息 */
-      getUserGroup: GetUserGroup
-    }
-  }
-
-  /** 角色管理 */
-  export namespace Role {
-    /** role api  */
-    interface RawRole {
-      code: ROLE
-      roleName: string
-      updateTime: string
-      updaterName: string
-    }
-
-    type GetRoleList = BaseDefine<{ role?: ROLE }, RawRole[]>
-    type GetRolePrivilege = BaseDefine<
-      { role: ROLE },
-      {
-        code: string
-        hasPrivilege: boolean
-        id: number
-        name: string
-        nodeCode: string
-        nodeId: number
-        nodeName: string
-        parentId: number
-        parentNodeId: number
-      }[]
-    >
-
-    type SetRolePrivilege = BaseDefine<{ role: ROLE; privilegeIds: number[] }>
-
-    /** role api end */
-
-    export interface ApiMap {
-      getRoleList: GetRoleList
-      getRolePrivilege: GetRolePrivilege
-      setRolePrivilege: SetRolePrivilege
-    }
-  }
-
-  /** 监控分析 */
-  export namespace Statistics {
-    interface BaseFilterOption {
-      subjectCode?: string
-      questionMainNumber?: number
-      markingGroupNumbers?: number[]
-    }
-
-    /** 质量统计-自查一致性分析 */
-    interface SelfCheckAnalysisReq {
-      /** 结束时间,格式:yyyyMMddHHmmss */
-      endTime: string
-      /** 小组号 */
-      markingGroupNumber?: number
-      /** 大题号 */
-      questionMainNumber?: number
-      /** 开始时间,格式:yyyyMMddHHmmss */
-      startTime: string
-      /** 科目代码 */
-      subjectCode: string
-    }
-    interface SelfCheckAnalysisResponse {
-      /** 平均离差 */
-      avgDiff: number
-      /** 自查份数 */
-      checkCount: number
-      /** 评卷员ID */
-      markerId: number
-      /** 评卷员名称 */
-      markerName: string
-    }
-
-    type SelfCheckAnalysis = BaseDefine<SelfCheckAnalysisReq, SelfCheckAnalysisResponse[]>
-
-    interface elfCheckAnalysisDiffListItemPaper {
-      diff: number
-      lastMarkScore: number
-      markScore: number
-      markTime: string
-      secretNumber: string
-      taskId: number
-    }
-
-    interface SelfCheckAnalysisDiffListItem {
-      diff: number
-      papers: elfCheckAnalysisDiffListItemPaper[]
-    }
-
-    type SelfCheckAnalysisDiffList = BaseDefine<
-      {
-        markerId?: number
-        questionMainNumber?: number
-        subjectCode: string
-      },
-      SelfCheckAnalysisDiffListItem[]
-    >
-
-    /** 质量分析 - 自查数据详情 */
-    interface SelfCheckDataDetail {
-      diff: number
-      filePath: string
-      mainName: string
-      mainNumber: number
-      markTime: string
-      markerName: string
-      markerScore: number
-      secretNumber: string
-      selfScore: number
-      taskId: number
-    }
-    type GetSelfCheckDataDetail = BaseDefine<
-      {
-        subjectCode: string
-        mainNumber: number | string
-        markingGroupNumber: number | string
-        startTime: string
-        endTime: string
-      },
-      SelfCheckDataDetail[]
-    >
-
-    /** 质量统计-自查数据打分 */
-    type MarkSelfCheckData = BaseDefine<{ taskId?: number; scores: number[] }>
-
-    /** 质量统计-自查数据打回 */
-    type RejectSelfCheckData = BaseDefine<{ id?: number; reason: string; description: string }>
-
-    /** 质量分析- 抽查情况统计 */
-    interface StatisticCheckInfo {
-      customCheckCount: number
-      customCheckReScoreCount: number
-      markerId: number
-      markerName: string
-      questionMainName: string
-      questionMainNumber: number
-      rejectCount: number
-      sysCheckCount: number
-      sysCheckReScoreCount: number
-    }
-
-    type StatisticCheckOverview = BaseDefine<
-      {
-        questionMainNumber?: number
-        subjectCode: string
-        markingGroupLeaderId?: number
-      },
-      StatisticCheckInfo[]
-    >
-    /** 质量统计-主观题校验列表 */
-    interface SubjectiveListItem {
-      filePath: string
-      headerName: string
-      headerScore: number
-      mainName: string
-      mainNumber: number
-      markerScore: number
-      secretNumber: number
-      status: string
-      taskId: number
-      updateTime: string
-    }
-
-    type GetSubjectiveCheckList = BaseDefine<
-      MultipleQuery<{
-        subjectCode: string
-        mainNumber?: number
-        checked?: boolean
-        rule: 'RULE1' | 'RULE2' | 'RULE3' | 'RULE4'
-      }>,
-      MultipleResult<SubjectiveListItem>
-    >
-
-    type SubjectiveCheckMark = BaseDefine<{ taskId?: number; scores: number[] }>
-
-    type SubjectiveCheckConfirm = BaseDefine<{ taskId?: number }>
-
-    /** 决策分析-评卷进度统计(整体) */
-    interface MarkProgressResponse {
-      /** 已完成数 */
-      finishCount: number
-      /** 完成比率 */
-      finishRate: number
-      /** 大题名称 */
-      questionMainName: string
-      /** 大题号 */
-      questionMainNumber: number
-      /** 预计耗时(秒) */
-      takeTime: number
-      /** 试卷总量 */
-      totalPaper: number
-    }
-
-    type GetMarkProgress = BaseDefine<{ subjectCode: string }, MarkProgressResponse[]>
-
-    /** 决策分析-评卷进度统计(按小组) */
-    interface MarkProgressByGroup {
-      dayFinishCount: number
-      dayFinishRate: number
-      finishCount: number
-      finishRate: number
-      markingGroupNumber: number
-    }
-
-    type GetMarkProgressByGroup = BaseDefine<
-      { subjectCode: string; questionMainNumber?: number },
-      MarkProgressByGroup[]
-    >
-
-    /** 决策分析-评卷进度统计(按评卷员) */
-    interface MarkProgressByMarker {
-      dayFinishCounts: { count: number; date: string }[]
-      markerId: number
-      markerName: string
-      markingGroupNumber: number
-      totalFinishCount: number
-    }
-    type GetMarkProgressByMarker = BaseDefine<
-      { subjectCode: string; questionMainNumber?: number; markingGroupNumbers?: number },
-      MarkProgressByMarker[]
-    >
-
-    type ExportMarkProgressByMarker = BaseDefine<{
-      subjectCode: string
-      questionMainNumber?: number
-      markingGroupNumber?: number
-    }>
-
-    /** 科目进度收尾 */
-    interface SubjectProgressEndInfo {
-      arbitrationPaperRate: number
-      checkPaperCount: number
-      checkPaperRate: number
-      finishCount: number
-      finishRate: number
-      questionMainName: string
-      questionMainNumber: number
-      subjectiveUnVerifyPaperCount: number
-      todoArbitrationPaperCount: number
-      todoProblemPaperCount: number
-      todoSamePaperCount: number
-      totalPaper: number
-    }
-
-    type SubjectProgressEnd = BaseDefine<{ subjectCode: string }, SubjectProgressEndInfo[]>
-
-    interface BaseParams {
-      subjectCode: string
-      questionMainNumber?: number
-      markingGroupNumber?: number
-    }
-
-    /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
-
-    interface UnMarkPaper {
-      markerId: number
-      markerName: string
-      questionMainName: string
-      questionMainNumber: number
-      secretNumber: string
-      taskId: number
-    }
-    type UnMarkPaperList = BaseDefine<MultipleQuery<BaseParams>, MultipleResult<UnMarkPaper>>
-    /** 质量统计-收尾检查-未处理雷同卷列表 */
-    interface UnProcessSimilar {
-      questionMainName: string
-      questionMainNumber: number
-      sameSecretNumber: string
-      secretNumber: string
-    }
-    type UnProcessSimilarList = BaseDefine<BaseParams, UnProcessSimilar[]>
-    /** 质量统计-收尾检查-未处理问题卷列表 */
-    interface UnProcessProblem {
-      questionMainName: string
-      questionMainNumber: number
-      secretNumber: string
-    }
-    type UnProcessProblemList = BaseDefine<BaseParams, UnProcessProblem[]>
-
-    type ChangeTaskMarker = BaseDefine<{ loginName: string; taskId?: number }>
-
-    /** 小组监控 */
-    interface GroupMonitor {
-      /** 已浏览自定义抽查卷数 */
-      customCheckCount: number
-      /** 已浏览问题卷数 */
-      problemCount: number
-      /** 已浏览系统抽查卷数 */
-      sysCheckCount: number
-      /** 组长 */
-      markingGroupLeader: string
-      /** 组长ID */
-      markingGroupLeaderId: string
-      /** 小组号 */
-      markingGroupNumber: number
-      /** 已给分自定义抽查卷数 */
-      customCheckReScoreCount: number
-      /** 已给分问题卷数 */
-      problemReScoreCount: number
-      /** 已给分系统抽查卷数 */
-      sysCheckReScoreCount: number
-      /** 已浏览试卷总数 */
-      totalCount: number
-      /** 已给分试卷总数 */
-      totalReScoreCount: number
-    }
-    type GetGroupMonitor = BaseDefine<BaseFilterOption, GroupMonitor[]>
-
-    /** 小组监控 - 抽查详情 */
-    interface GroupMonitorDetail {
-      filePath: string
-      headerRatio: string
-      headerScore: number
-      mainName: string
-      mainNumber: number
-      markTime: string
-      markerName: string
-      markerScore: number
-      objectiveScore: number
-      scoreLevel: string
-      secretNumber: string
-      taskId: number
-    }
-
-    type GetGroupMonitorDetail = BaseDefine<
-      MultipleQuery<{ operateType: 'VIEW' | 'MARK'; headerId: string | number }>,
-      MultipleResult<GroupMonitorDetail>
-    >
-
-    type MarkMonitorDetailTask = BaseDefine<{ taskId?: number; scores: number[] }>
-
-    /** 决策分析- 统计 */
-    interface StatisticItem {
-      markerId: number
-      markerName: string
-      value: number
-    }
-
-    type GetStatistics = BaseDefine<BaseFilterOption, Record<string, StatisticItem[]>>
-
-    /** 决策分析-监控统计(按小组) */
-    interface GetStatisticsByGroupParams {
-      endTime?: string
-      hasJudge?: boolean
-      markerId?: number
-      markingGroupNumbers?: number[]
-      questionMainNumber?: number
-      startTime?: string
-      subjectCode: string
-    }
-
-    interface GetStatisticsByGroupResponseItem {
-      /** 平均分 */
-      avg: number
-      /** 抽查改正量 */
-      checkCorrectCount: number
-      /** 抽查量 */
-      checkCount: number
-      /** 综合指数 */
-      integration: number
-      /** 评卷员ID */
-      markerId: number
-      /** 评卷员名称 */
-      markerName: string
-      /** 小组号 */
-      markingGroupNumber: number
-      /** 评卷份数 */
-      markingPaperCount: number
-      /** 评卷速度(n秒每个) */
-      markingRate: number
-      /** 评卷状态 */
-      markingStatus: string
-      /** 平均客主比 */
-      objSubAvgRate: number
-      /** 客主比(近N分钟) */
-      objSubRate: number
-      /** 客观平均分 */
-      objectiveAvg: number
-      /** 客观标准差 */
-      objectiveStd: number
-      /** 客观0分量 */
-      objectiveZero: number
-      /** 是否在线 */
-      online: boolean
-      /** 重评待确认量 */
-      reMarkConfirmCount: number
-      /** 重评量 */
-      reMarkCount: number
-      /** 最低分(近N分钟) */
-      scoreLow: number
-      /** 最高分(近N分钟) */
-      scoreTop: number
-      /** 方差 */
-      sd: number
-      /** 标准差 */
-      std: number
-      /** 相关系数 */
-      xyRelate: number
-      /** 评卷员明细统计列表 */
-      markerDetails: GetStatisticsByGroupResponseItem[] | null
-    }
-
-    type GetStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams, GetStatisticsByGroupResponseItem[]>
-
-    /** 决策分析-监控统计导出(按小组) */
-    type ExportStatisticsByGroup = BaseDefine<GetStatisticsByGroupParams>
-
-    /** 培训监控 */
-    interface TrainingMonitorParams {
-      subjectCode: string
-      mainNumber?: number
-      markingGroupNumber?: number
-      markStage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
-      forceGroupNumber?: number
-    }
-    interface TrainingMonitorResponse {
-      /** 平均分 */
-      avg: number
-      /** 差异份数 */
-      diffCount: number
-      forceGroupMarkerId: number
-      /** 评卷员ID */
-      markerId: number
-      /** 评卷员名称 */
-      markerName: string
-      /** 打分列表 */
-      scoreList: number[]
-      /** 状态 */
-      stage: 'SAMPLE_A' | 'SAMPLE_B' | 'FORCE'
-      /** 状态名称 */
-      status: string
-      /** 标准差 */
-      std: number
-      /** 相关系数 */
-      xyRelate: number
-    }
-    type GetTrainingMonitor = BaseDefine<TrainingMonitorParams, { data: TrainingMonitorResponse[]; header: number[] }>
-
-    interface MonitorDetail {
-      fileName: string
-      filePath: string
-      forceGroupNumber: number
-      group: string
-      mainNumber: number
-      markTime: string
-      markerName: string
-      markScore: number
-      score: number
-      secretNumber: string
-      taskId: number
-    }
-
-    /**培训监控 - 培训卷调卷详情 */
-    type GetTrainingMonitorDetail = BaseDefine<{ markerId: string; taskType: SamplePaperType }, MonitorDetail[]>
-
-    /**培训监控 - 强制考核卷调卷详情 */
-    type GetAssessMonitorDetail = BaseDefine<{ forceGroupMarkerId: string }, MonitorDetail[]>
-
-    /**培训监控 - 强制考核卷审核 */
-    type PutAssessMonitorPass = BaseDefine<{ forceGroupMarkerIds: number[]; pass: boolean }>
-
-    /**培训监控 - 培训卷审核 */
-    type PutSampleMonitorPass = BaseDefine<{ markerIds: number[]; markStage: SamplePaperType; pass: boolean }>
-
-    /** 个人统计 */
-    interface PersonalStatistic {
-      avg: number
-      markerId: number
-      markerName: string
-      markingPaperCount: number
-      markingRate: number
-      questionMainName: string
-      questionMainNumber: number
-    }
-    type GetPersonalStatistic = BaseDefine<{ startTime: string; endTime: string; markerId?: number }, PersonalStatistic>
-
-    /** 提取阅卷明细 */
-    interface PersonalMarkDetail {
-      filePath: string
-      mainName: string
-      mainNumber: number
-      markTime: string
-      markerName: string
-      markerRatio: string
-      markerScore: number
-      objectiveScore: number
-      secretNumber: string
-      status: string
-      taskId: number
-    }
-
-    type GetPersonalMarkDetail = BaseDefine<
-      MultipleQuery<{
-        markerId?: number | string
-        score?: number | string
-      }>,
-      MultipleResult<PersonalMarkDetail>
-    >
-
-    type UpdatePersonalMarkDetailScore = BaseDefine<{ taskId?: number; scores: number[] }>
-
-    interface SystemSpotListItem {
-      examNumber: string
-      filePath: string
-      id: number
-      mainNumber: number
-      markScore: number
-      markTime: string
-      markerName: string
-      secretNumber: number
-      status: string
-      taskId: number
-    }
-
-    type GetSystemSpotList = BaseDefine<
-      MultipleQuery<{
-        level: 'LEVEL_1' | 'LEVEL_2' | 'LEVEL_3' | 'LEVEL_4' | 'LEVEL_5' | ''
-        status: 'INITIAL' | 'VIEWED' | 'GRADED' | 'REJECT'
-        mainNumber?: number
-      }>,
-      MultipleResult<SystemSpotListItem>
-    >
-
-    /** 系统抽查卷打分 */
-    type MarkSystemSpotPaper = BaseDefine<{ id?: number; scores: number[] }>
-
-    /** 系统抽查卷打回 */
-    type RejectSystemSpotPaper = BaseDefine<{ description: string; id: number; reason: string }>
-
-    /** 系统抽查卷浏览 */
-    type ViewSystemSpotPaper = BaseDefine<{ id?: number }>
-
-    interface StatisticByGroup {
-      subjectCode: string
-      questionMainNumber?: number
-      markingGroupNumber?: number
-      startTime: string
-      endTime: string
-    }
-
-    interface StatisticByMarker {
-      markerId?: number
-      endTime: string
-      startTime: string
-    }
-
-    interface StatisticInfo {
-      count: number
-      rate: number
-      scoreEnd: number
-      scoreStart: number
-    }
-
-    interface StatisticResult {
-      segmentsByAll: StatisticInfo[]
-      segmentsByGroup: StatisticInfo[]
-      segmentsByUser: StatisticInfo[]
-    }
-
-    /** 决策分析-监控统计-客观题分数分布(按小组) */
-    type GetStatisticObjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
-
-    /** 决策分析-监控统计-客观题分数分布(按评卷员) */
-    type GetStatisticObjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
-
-    /** 决策分析-监控统计-主观题分数分布(按小组) */
-    type GetStatisticSubjectiveByGroup = BaseDefine<StatisticByGroup, StatisticResult>
-
-    /** 决策分析-监控统计-主观题分数分布(按评卷员) */
-    type GetStatisticSubjectiveByMarker = BaseDefine<StatisticByMarker, StatisticResult>
-
-    interface ApiMap {
-      /** 质量统计-自查一致性分析 */
-      selfCheckAnalysis: SelfCheckAnalysis
-      /** 质量统计-自查一致性分析-离差列表 */
-      selfCheckAnalysisDiffList: SelfCheckAnalysisDiffList
-      /** 质量统计- 自查数据详情 */
-      getSelfCheckDataDetail: GetSelfCheckDataDetail
-      /** 质量统计-自查数据打分 */
-      markSelfCheckData: MarkSelfCheckData
-      /** 质量统计-自查数据打回 */
-      rejectSelfCheckData: RejectSelfCheckData
-      /** 质量统计-抽查情况统计 */
-      statisticCheckOverview: StatisticCheckOverview
-      /** 质量统计-主观题校验 */
-      getSubjectiveCheckList: GetSubjectiveCheckList
-      /** 质量统计-主观题校验打分 */
-      subjectiveCheckMark: SubjectiveCheckMark
-      /** 质量统计-主观题校验确认 */
-      subjectiveCheckConfirm: SubjectiveCheckConfirm
-      /** 决策分析-评卷进度统计(整体) */
-      getMarkProgress: GetMarkProgress
-      /** 决策分析-评卷进度统计(按小组) */
-      getMarkProgressByGroup: GetMarkProgressByGroup
-      /** 决策分析-评卷进度统计(按评卷员) */
-      getMarkProgressByMarker: GetMarkProgressByMarker
-      /** 决策分析-评卷进度统计导出(按评卷员) */
-      exportMarkProgressByMarker: ExportMarkProgressByMarker
-      /** 质量统计-科目进度收尾 */
-      subjectProgressEnd: SubjectProgressEnd
-      /** 质量统计-收尾检查-评卷员未评卷列表(分页) */
-      unMarkPaperList: UnMarkPaperList
-      /** 质量统计-收尾检查-未处理雷同卷列表 */
-      unProcessSimilarList: UnProcessSimilarList
-      /** 质量统计-收尾检查-未处理问题卷列表 */
-      unProcessProblemList: UnProcessProblemList
-      /** 任务指定新评卷员 */
-      changeTaskMarker: ChangeTaskMarker
-      /** 决策分析-小组监控 */
-      getGroupMonitor: GetGroupMonitor
-      /** 决策分析-小组监控-抽查详情 */
-      getGroupMonitorDetail: GetGroupMonitorDetail
-      /** 决策分析-小组监控-抽查详情给分 */
-      markMonitorDetailTask: MarkMonitorDetailTask
-      /** 决策分析-监控统计(整体) */
-      getStatistics: GetStatistics
-
-      /** 决策分析-监控统计(按小组) */
-      getStatisticsByGroup: GetStatisticsByGroup
-      /** 决策分析-监控统计导出(按小组) */
-      exportStatisticsByGroup: ExportStatisticsByGroup
-      /** 决策分析-监控统计客观题&主观题分数分布 */
-      /**培训监控 */
-      getTrainingMonitor: GetTrainingMonitor
-      /**培训监控 - 培训卷调卷详情 */
-      getTrainingMonitorDetail: GetTrainingMonitorDetail
-      /**培训监控 - 强制考核卷调卷详情 */
-      getAssessMonitorDetail: GetAssessMonitorDetail
-      /**培训监控 - 强制考核卷审核 */
-      putAssessMonitorPass: PutAssessMonitorPass
-      /**培训监控 - 培训卷审核 */
-      putSampleMonitorPass: PutSampleMonitorPass
-      /** 个人统计 */
-      getPersonalStatistic: GetPersonalStatistic
-      /** 提取阅卷明细 */
-      getPersonalMarkDetail: GetPersonalMarkDetail
-      /** 提取阅卷明细 - 给分 */
-      updatePersonalMarkDetailScore: UpdatePersonalMarkDetailScore
-      /** 系统抽查卷 */
-      getSystemSpotList: GetSystemSpotList
-      /** 系统抽查卷打分 */
-      markSystemSpotPaper: MarkSystemSpotPaper
-      /** 系统抽查卷打回 */
-      rejectSystemSpotPaper: RejectSystemSpotPaper
-      /** 系统抽查卷浏览 */
-      viewSystemSpotPaper: ViewSystemSpotPaper
-      /** 决策分析-监控统计-客观题分数分布(按小组) */
-      getStatisticObjectiveByGroup: GetStatisticObjectiveByGroup
-      /** 决策分析-监控统计-客观题分数分布(按评卷员) */
-      getStatisticObjectiveByMarker: GetStatisticObjectiveByMarker
-      /** 决策分析-监控统计-主观题分数分布(按小组) */
-      getStatisticSubjectiveByGroup: GetStatisticSubjectiveByGroup
-      /** 决策分析-监控统计-主观题分数分布(按评卷员) */
-      getStatisticSubjectiveByMarker: GetStatisticSubjectiveByMarker
-    }
-  }
-}