Files
yunzerwebsiteallinone/backend/src/api/file.js
T
2026-08-27 23:02:17 +08:00

216 lines
4.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import request from "@/utils/request";
/**
* 获取用户分类
* @returns {Promise}
*/
export function getUserCate() {
return request({
url: `/backend/usercate`,
method: "get",
});
}
/**
* 获取所有文件
* @returns {Promise}
*/
export function getAllFiles() {
return request({
url: "/backend/allfiles",
method: "get",
});
}
/**
* 新建文件分组
* @param {Object} data 文件分组数据
* @returns {Promise}
*/
export function createFileCate(data) {
return request({
url: "/backend/createfilecate",
method: "post",
data,
});
}
/**
* 重命名文件分组
* @param {number|string} id 文件分组ID
* @param {Object} data 文件分组数据
* @returns {Promise}
*/
export function renameFileCate(id, data) {
return request({
url: `/backend/renamefilecate/${id}`,
method: "post",
data,
});
}
/**
* 删除文件分组
* @param {number|string} id 文件分组ID
* @returns {Promise}
*/
export function deleteFileCate(id) {
return request({
url: `/backend/deletefilecate/${id}`,
method: "delete",
});
}
/**
* 根据分类ID获取文件
* @param {number|string} id 分类ID
* @param {number} page 页码,默认1
* @param {number} pageSize 每页数量,默认24
* @param {string} keyword 搜索关键词,可选
* @returns {Promise}
*/
export function getCateFiles(id, page = 1, pageSize = 24, keyword = "") {
const params = {
page,
pageSize,
};
if (keyword) {
params.keyword = keyword;
}
return request({
url: `/backend/catefiles/${id}`,
method: "get",
params,
});
}
/**
* 根据ID获取文件
* @param {number|string} id 文件ID
* @returns {Promise}
*/
export function getFileById(id) {
return request({
url: `/backend/catefiles`,
method: "get",
});
}
/**
* 上传文件
* @param {FormData} formData 文件数据
* @param {Object} options 额外选项
* @param {string|number} [options.cate] 文件分组ID,0 为未分类
* @param {(e: { loaded: number; total?: number }) => void} [options.onUploadProgress] 上传进度
* @returns {Promise}
*/
export function uploadFile(formData, options = {}) {
// 0 表示「未分类」,不能用 truthy 判断
if (options.cate !== undefined && options.cate !== null && options.cate !== "") {
formData.append("cate", String(options.cate));
}
const config = {
url: "/backend/uploadfile",
method: "post",
data: formData,
// 上传大文件不设超时;勿手写 Content-Type(需浏览器生成 multipart boundary)
timeout: 0,
};
if (typeof options.onUploadProgress === "function") {
config.onUploadProgress = options.onUploadProgress;
}
return request(config);
}
/**
* 更新文件信息
* @param {number|string} id 文件ID
* @param {Object} fileData 更新的数据
* @returns {Promise}
*/
export function updateFile(id, fileData) {
return request({
url: `/backend/updatefile/${id}`,
method: "post",
data: fileData,
});
}
/**
* 删除文件
* @param {number|string} id 文件ID
* @returns {Promise}
*/
export function deleteFile(id) {
return request({
url: `/backend/deletefile/${id}`,
method: "delete",
});
}
/**
* 删除文件
* @param {number|string} id 文件ID
* @returns {Promise}
*/
export function deleteFilePermanently(id) {
return request({
url: `/backend/deleteFilePermanently/${id}`,
method: "delete",
});
}
/**
* 移动文件
* @param {number|string} id 文件ID
* @param {Object} fileData 更新的数据
* @returns {Promise}
*/
export function moveFile(id, cate) {
return request({
url: `/backend/movefile/${id}`,
method: "get",
params: { cate },
});
}
/**
* 批量删除文件
* @param {Array} ids 文件ID数组
* @returns {Promise}
*/
export function batchDeleteFiles(ids) {
return request({
url: "/backend/batchDeleteFiles",
method: "post",
data: { ids },
});
}
/**
* 批量彻底删除文件
* @param {Array} ids 文件ID数组
* @returns {Promise}
*/
export function batchDeleteFilesPermanently(ids) {
return request({
url: "/backend/batchDeleteFilesPermanently",
method: "post",
data: { ids },
});
}
/**
* 批量移动文件
* @param {Array} ids 文件ID数组
* @param {number} cate 目标分类ID
* @returns {Promise}
*/
export function batchMoveFiles(ids, cate) {
return request({
url: "/backend/batchMoveFiles",
method: "post",
data: { ids, cate },
});
}