Ver Fonte

调整 TCourseMemberStatus 与 readme匹配

visuddhinanda há 2 anos atrás
pai
commit
dbd8df0b55
1 ficheiros alterados com 53 adições e 8 exclusões
  1. 53 8
      dashboard/src/components/api/Course.ts

+ 53 - 8
dashboard/src/components/api/Course.ts

@@ -1,6 +1,6 @@
 import { IStudio } from "../auth/Studio";
 import { IStudio } from "../auth/Studio";
 import { IUser } from "../auth/User";
 import { IUser } from "../auth/User";
-import { IUserRequest, TRole } from "./Auth";
+import { TRole } from "./Auth";
 
 
 export interface ICourseListApiResponse {
 export interface ICourseListApiResponse {
   article: string;
   article: string;
@@ -48,9 +48,10 @@ export interface ICourseDataResponse {
   cover: string; //封面图片文件名
   cover: string; //封面图片文件名
   cover_url?: string[]; //封面图片文件名
   cover_url?: string[]; //封面图片文件名
   member_count: number;
   member_count: number;
-  join: TCourseJoinMode;
+  join: TCourseJoinMode; //报名方式
   request_exp: TCourseExpRequest;
   request_exp: TCourseExpRequest;
   my_status: TCourseMemberStatus;
   my_status: TCourseMemberStatus;
+  my_status_id: string;
   count_progressing?: number;
   count_progressing?: number;
   created_at: string; //创建时间
   created_at: string; //创建时间
   updated_at: string; //修改时间
   updated_at: string; //修改时间
@@ -91,13 +92,56 @@ export interface ICourseNumberResponse {
 }
 }
 
 
 export type TCourseMemberStatus =
 export type TCourseMemberStatus =
+  | "none" /*无*/
   | "normal" /*开放课程直接加入*/
   | "normal" /*开放课程直接加入*/
-  | "invited" /**管理员已经邀请学生加入 */
-  | "sign_up" /**学生已经报名 管理员尚未审核 */
-  | "accepted" /**已经接受 */
-  | "rejected" /**已经拒绝 */
+  | "joined" /*开放课程已经加入*/
+  | "applied" /**学生已经报名 管理员尚未审核 */
+  | "canceled" /**学生取消报名 */
+  | "agreed" /**学生/助教已经接受邀请 */
+  | "disagreed" /**学生/助教已经拒绝邀请 */
   | "left" /**学生自己退出 */
   | "left" /**学生自己退出 */
-  | "blocked"; /**学生被管理员屏蔽 */
+  | "invited" /**管理员已经邀请学生加入 */
+  | "revoked" /**管理员撤销邀请 */
+  | "accepted" /**已经被管理员录取 */
+  | "rejected" /**报名已经被管理员拒绝 */
+  | "blocked"; /**被管理员清退 */
+
+export type TCourseMemberAction =
+  | "join" /*加入自学课程*/
+  | "apply" /**学生报名 */
+  | "cancel" /**学生取消报名 */
+  | "agree" /**学生/助教接受邀请 */
+  | "disagree" /**学生/助教拒绝邀请 */
+  | "leave" /**学生/助教自己退出 */
+  | "invite" /**管理员邀请学生加入 */
+  | "revoke" /**管理员撤销邀请 */
+  | "accept" /**管理员录取 */
+  | "reject" /**管理员拒绝 */
+  | "block"; /**管理员清退 */
+
+interface IActionMap {
+  action: TCourseMemberAction;
+  status: TCourseMemberStatus;
+}
+export const actionMap = (action: TCourseMemberAction) => {
+  const data: IActionMap[] = [
+    { action: "join", status: "joined" },
+    { action: "apply", status: "applied" },
+    { action: "cancel", status: "canceled" },
+    { action: "agree", status: "agreed" },
+    { action: "disagree", status: "disagreed" },
+    { action: "leave", status: "left" },
+    { action: "invite", status: "invited" },
+    { action: "revoke", status: "revoked" },
+    { action: "accept", status: "accepted" },
+    { action: "reject", status: "rejected" },
+    { action: "block", status: "blocked" },
+  ];
+
+  const current = data.find((value) => value.action === action);
+  return current?.status;
+};
+
 export interface ICourseMemberData {
 export interface ICourseMemberData {
   id?: string;
   id?: string;
   user_id: string;
   user_id: string;
@@ -105,7 +149,8 @@ export interface ICourseMemberData {
   channel_id?: string;
   channel_id?: string;
   role?: string;
   role?: string;
   operating?: "invite" | "sign_up";
   operating?: "invite" | "sign_up";
-  user?: IUserRequest;
+  user?: IUser;
+  editor?: IUser;
   status?: TCourseMemberStatus;
   status?: TCourseMemberStatus;
   created_at?: string;
   created_at?: string;
   updated_at?: string;
   updated_at?: string;