This repository was archived by the owner on May 29, 2026. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathdrafts.ts
More file actions
74 lines (59 loc) · 2.03 KB
/
Copy pathdrafts.ts
File metadata and controls
74 lines (59 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import type { Image, PaginateResult } from '~/models/base'
import type {
DraftHistoryListItem,
DraftModel,
DraftRefType,
TypeSpecificData,
} from '~/models/draft'
import { request } from '~/utils/request'
export type DraftSortOrder = 'asc' | 'desc'
export interface GetDraftsParams {
page?: number
size?: number
refType?: DraftRefType
hasRef?: boolean
sort_by?: string
sort_order?: DraftSortOrder
}
export interface CreateDraftData {
refType: DraftRefType
refId?: string
title?: string
text?: string
contentFormat?: 'markdown' | 'lexical'
content?: string
images?: Image[]
meta?: Record<string, any>
typeSpecificData?: TypeSpecificData
}
export interface UpdateDraftData extends Partial<CreateDraftData> {}
export const draftsApi = {
// 获取草稿列表
getList: (params?: GetDraftsParams) =>
request.get<PaginateResult<DraftModel>>('/drafts', { params }),
// 获取单个草稿
getById: (id: string) => request.get<DraftModel>(`/drafts/${id}`),
// 根据引用获取草稿
getByRef: (refType: DraftRefType, refId: string) =>
request.get<DraftModel | null>(`/drafts/by-ref/${refType}/${refId}`),
// 获取新草稿列表(无关联的草稿)
getNewDrafts: (refType: DraftRefType) =>
request.get<DraftModel[]>(`/drafts/by-ref/${refType}/new`),
// 获取历史版本列表
getHistory: (id: string) =>
request.get<DraftHistoryListItem[]>(`/drafts/${id}/history`),
// 获取特定历史版本
getHistoryVersion: (id: string, version: number) =>
request.get<DraftModel>(`/drafts/${id}/history/${version}`),
// 创建草稿
create: (data: CreateDraftData) =>
request.post<DraftModel>('/drafts', { data }),
// 更新草稿
update: (id: string, data: UpdateDraftData) =>
request.put<DraftModel>(`/drafts/${id}`, { data }),
// 删除草稿
delete: (id: string) => request.delete<{ success: boolean }>(`/drafts/${id}`),
// 恢复到特定版本
restoreVersion: (id: string, version: number) =>
request.post<DraftModel>(`/drafts/${id}/restore/${version}`),
}