소스 검색

优化类型

Michael Wang 3 년 전
부모
커밋
33a4aa4f9a

+ 2 - 2
src/api/allAnalysisPage.ts

@@ -1,5 +1,5 @@
 import { httpApp } from "@/plugins/axiosApp";
-import { SASPaperResponse, SasCourse } from "@/types";
+import { SasCourse, SASPaper, ServerPageResponse } from "@/types";
 
 /** 试卷特征数分页查询 */
 export function getSasPaperList(params: {
@@ -8,7 +8,7 @@ export function getSasPaperList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: SASPaperResponse }>(
+  return httpApp.post<any, ServerPageResponse<SASPaper>>(
     "/api/ess/sasPaper/page",
     params
   );

+ 2 - 2
src/api/courseManagementPage.ts

@@ -1,7 +1,7 @@
 import { httpApp } from "@/plugins/axiosApp";
 import { responseToFile } from "@/utils/utils";
 import qs from "qs";
-import { CourseResponse, ImportResponse } from "@/types";
+import { Course, ImportResponse, ServerPageResponse } from "@/types";
 
 /** 科目分页查询 */
 export function getCourseList(params: {
@@ -13,7 +13,7 @@ export function getCourseList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: CourseResponse }>(
+  return httpApp.post<any, ServerPageResponse<Course>>(
     "/api/ess/course/page",
     params
   );

+ 3 - 3
src/api/paperAnalysisPage.ts

@@ -1,10 +1,10 @@
 import { httpApp } from "@/plugins/axiosApp";
 import {
-  SASQuestion,
-  SASPaper,
+  ImportResponse,
   Paper,
+  SASPaper,
+  SASQuestion,
   SASQuestionGroup,
-  ImportResponse,
 } from "@/types";
 
 /** 试卷查询 */

+ 2 - 2
src/api/paperManagementPage.ts

@@ -1,5 +1,5 @@
 import { httpApp } from "@/plugins/axiosApp";
-import { PaperResponse } from "@/types";
+import { Paper, ServerPageResponse } from "@/types";
 
 /** 试卷分页查询 */
 export function getPaperList(params: {
@@ -10,7 +10,7 @@ export function getPaperList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: PaperResponse }>(
+  return httpApp.post<any, ServerPageResponse<Paper>>(
     "/api/ess/paper/list",
     params
   );

+ 2 - 2
src/api/projectManagementPage.ts

@@ -1,6 +1,6 @@
 import { httpApp } from "@/plugins/axiosApp";
+import { Project, ServerPageResponse } from "@/types";
 import { responseToFile } from "@/utils/utils";
-import { ProjectResponse } from "@/types";
 
 /** 项目分页查询 */
 export function getProjectList(params: {
@@ -11,7 +11,7 @@ export function getProjectList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: ProjectResponse }>(
+  return httpApp.post<any, ServerPageResponse<Project>>(
     "/api/ess/project/page",
     params
   );

+ 2 - 2
src/api/projectParamsManagementPage.ts

@@ -1,6 +1,6 @@
 import { httpApp } from "@/plugins/axiosApp";
 import { responseToFile } from "@/utils/utils";
-import { ProjectCourseResponse, ImportResponse } from "@/types";
+import { ImportResponse, ProjectCourse, ServerPageResponse } from "@/types";
 
 /** 科目分页查询 */
 export function getProjectCourseList(params: {
@@ -10,7 +10,7 @@ export function getProjectCourseList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: ProjectCourseResponse }>(
+  return httpApp.post<any, ServerPageResponse<ProjectCourse>>(
     "/api/ess/projectCourse/list",
     params
   );

+ 2 - 2
src/api/rootOrgPage.ts

@@ -1,5 +1,5 @@
 import { httpApp } from "@/plugins/axiosApp";
-import { RootOrgResponse } from "@/types";
+import { RootOrg, ServerPageResponse } from "@/types";
 
 /** 顶级机构分页查询 */
 export function getRootOrgList(params: {
@@ -9,7 +9,7 @@ export function getRootOrgList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: RootOrgResponse }>(
+  return httpApp.post<any, ServerPageResponse<RootOrg>>(
     "/api/ess/root/org/page",
     params
   );

+ 2 - 2
src/api/subOrgPage.ts

@@ -1,7 +1,7 @@
 import { httpApp } from "@/plugins/axiosApp";
+import { ImportResponse, ServerPageResponse, SubOrg } from "@/types";
 import { responseToFile } from "@/utils/utils";
 import QueryString from "qs";
-import { SubOrgResponse, ImportResponse } from "@/types";
 
 /** 机构分页查询 */
 export function getSubOrgList(params: {
@@ -12,7 +12,7 @@ export function getSubOrgList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: SubOrgResponse }>(
+  return httpApp.post<any, ServerPageResponse<SubOrg>>(
     "/api/ess/org/page",
     params
   );

+ 8 - 3
src/api/userManagementPage.ts

@@ -1,8 +1,13 @@
 import { httpApp } from "@/plugins/axiosApp";
-import { Course_Type, Privilege_Type } from "@/types";
+import {
+  Course_Type,
+  ImportResponse,
+  Privilege_Type,
+  ServerPageResponse,
+  User,
+} from "@/types";
 import { responseToFile } from "@/utils/utils";
 import QueryString from "qs";
-import { UserResponse, ImportResponse } from "@/types";
 
 /** 用户分页查询 */
 export function getUserList(params: {
@@ -15,7 +20,7 @@ export function getUserList(params: {
   pageNo?: number;
   pageSize?: number;
 }) {
-  return httpApp.post<any, { data: UserResponse }>(
+  return httpApp.post<any, ServerPageResponse<User>>(
     "/api/ess/user/page",
     params
   );

+ 3 - 3
src/features/projectDataManagement/ProjectDataManagement.vue

@@ -27,8 +27,8 @@
 
     <div class="tw-bg-white tw-p-5 tw-rounded-xl">
       <a-radio-group
-        :options="[...plainOptions]"
         v-model:value="dataSourceChannel"
+        :options="[...plainOptions]"
       />
       <div class="tw-mb-5"></div>
       <a-form v-if="dataSourceChannel === '数据上传'">
@@ -137,7 +137,7 @@ async function handleTestServer() {
     return;
   }
   try {
-    const res = await httpApp.post(
+    const res = await httpApp.post<any, { data: string }>(
       "/api/ess/task/sync/test",
       QueryString.stringify({
         domain,
@@ -184,7 +184,7 @@ const deboundcedFunc = debounce(fetchExamsFromOtherServer, 5000);
 watch(
   () => [domain],
   () => {
-    deboundcedFunc();
+    void deboundcedFunc();
   }
 );
 

+ 15 - 37
src/types/index.ts

@@ -1,9 +1,3 @@
-export interface Pagination {
-  pageNo: number;
-  pageSize: number;
-  totalElements: number;
-}
-
 export interface Role {
   roleId: number;
   roleCode: "ORG_ADMIN" | "SUPER_ADMIN" | "ROOT_ORG_ADMIN" | "COURSE_ADMIN";
@@ -14,6 +8,21 @@ export type Course_Type = "PUBLIC" | "MAJOR";
 
 export type Privilege_Type = "COURSE" | "ORG";
 
+export interface ServerPageResponse<T> {
+  data: {
+    content: T[];
+    pageNo: number;
+    pageSize: number;
+    totalElements: number;
+  };
+}
+
+// export type ServerResponse<T> = ServerResponseI<T>;
+// HOW?
+// I is optional, default any
+// T is ServerResponse<T>
+// type AxiosPostFuncInner<I = any,Y> = ;
+
 export interface Course {
   code: string;
   createTime: string;
@@ -33,10 +42,6 @@ export interface Course {
   updater: string;
 }
 
-export interface CourseResponse extends Pagination {
-  content: Course[];
-}
-
 export interface ProjectCourse {
   courseCode: string;
   courseId: number;
@@ -52,10 +57,6 @@ export interface ProjectCourse {
   totalScoreLine: number;
 }
 
-export interface ProjectCourseResponse extends Pagination {
-  content: ProjectCourse[];
-}
-
 // 科目成绩(总分)频率分布-科目成绩占初试总分权重
 export interface SasCourse {
   courseCode: string;
@@ -109,10 +110,6 @@ export interface Paper {
   totalCount: number;
 }
 
-export interface PaperResponse extends Pagination {
-  content: Paper[];
-}
-
 // 整体分析-试卷特征量数
 export interface SASPaper {
   allRange: number;
@@ -156,10 +153,6 @@ export interface Project {
   updater: string;
 }
 
-export interface ProjectResponse extends Pagination {
-  content: Project[];
-}
-
 interface LevelDetail {
   questionCount: number;
   fullScore: number;
@@ -308,10 +301,6 @@ export interface User {
   password: string; // FE add
 }
 
-export interface UserResponse extends Pagination {
-  content: User[];
-}
-
 export interface RootOrg {
   code: string;
   domainName: string;
@@ -321,10 +310,6 @@ export interface RootOrg {
   updateTime: string;
 }
 
-export interface RootOrgResponse extends Pagination {
-  content: RootOrg[];
-}
-
 export interface SubOrg {
   code: string;
   createTime: string;
@@ -341,13 +326,6 @@ export interface SubOrg {
   updateTimeStr: string;
   updater: string;
 }
-export interface SubOrgResponse extends Pagination {
-  content: SubOrg[];
-}
-
-export interface SASPaperResponse extends Pagination {
-  content: SASPaper[];
-}
 
 export interface ImportResponse {
   data: {