85 lines
2.6 KiB
TypeScript
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 } })
|