Files
shanxia2.0/web-admin/src/api/doclib.ts
T

85 lines
2.6 KiB
TypeScript

import request from '@/utils/http'
export type DoclibScope = 'mine' | 'shared' | 'all'
export interface DoclibPerson {
id: string
name: string
deptName: string
}
export interface DoclibFolder {
id: string
name: string
scope: DoclibScope
folderId: string
fullPath: string
ownerId: string
canManage: boolean
count: number
children: DoclibFolder[]
}
export interface DoclibDocument {
id: string
name: string
folderId: string
folderPath: string
size: number
contentType: string
ownerId: string
ownerName: string
createTime: string
updateTime: string
canManage: boolean
shares: DoclibPerson[]
}
const base = '/web/doclib'
export const fetchDoclibTree = () =>
request.get<{ nodes: DoclibFolder[]; isSuperAdmin: boolean; maxUploadBytes: number }>({
url: `${base}/tree`
})
export const fetchDoclibFiles = (params: {
scope: DoclibScope
folderId: string
keyword: string
page: number
pageSize: number
}) => request.get<{ list: DoclibDocument[]; total: number }>({ url: `${base}/files`, params })
export const fetchDoclibFile = (id: string) =>
request.get<DoclibDocument>({ url: `${base}/files/${encodeURIComponent(id)}` })
export const createDoclibFolder = (data: { name: string; parentId: string }) =>
request.post<DoclibFolder>({ url: `${base}/folders`, data })
export const renameDoclibFolder = (id: string, name: string) =>
request.put<DoclibFolder>({ url: `${base}/folders/${encodeURIComponent(id)}`, data: { name } })
export const deleteDoclibFolder = (id: string) =>
request.delete({ url: `${base}/folders/${encodeURIComponent(id)}` })
export const uploadDoclibFile = (file: File, folderId: string) => {
const data = new FormData()
data.append('file', file)
data.append('folderId', folderId)
return request.post<DoclibDocument>({
url: `${base}/upload`,
data,
timeout: 300000,
showErrorMessage: false
})
}
export const saveDoclibShares = (id: string, userIds: string[]) =>
request.put<DoclibDocument>({
url: `${base}/files/${encodeURIComponent(id)}/shares`,
data: { userIds }
})
export const saveDoclibBatchShares = (ids: string[], userIds: string[]) =>
request.post<DoclibDocument[]>({
url: `${base}/files/batch-shares`,
data: { ids, userIds }
})
export const deleteDoclibFiles = (ids: string[]) =>
request.post({ url: `${base}/files/batch-delete`, data: { ids } })
export const downloadDoclibFile = (id: string) =>
request.get<Blob>({
url: `${base}/files/${encodeURIComponent(id)}/download`,
responseType: 'blob',
timeout: 300000
})
export const fetchDoclibUsers = (keyword = '') =>
request.get<DoclibPerson[]>({ url: `${base}/users`, params: { keyword } })