功能优化

This commit is contained in:
2025-11-16 19:35:55 +08:00
parent c2bd94cfad
commit bdbe74cebb
53 changed files with 8235 additions and 107 deletions

View File

@@ -0,0 +1,174 @@
/**
* 素材库 API 服务
* 对应后端 tik 模块的文件管理接口
*/
import http from './http'
import { API_BASE } from '@gold/config/api'
// 统一使用 /api/tik 前缀,与 tikhub 保持一致
const BASE_URL = `${API_BASE.APP}/api/tik/file`
/**
* 素材库 API 服务
*/
export const MaterialService = {
/**
* 分页查询文件列表
* @param {Object} params - 查询参数
* @param {number} params.pageNo - 页码
* @param {number} params.pageSize - 每页数量
* @param {string} params.fileCategory - 文件分类video/generate/audio/mix/voice
* @param {string} params.fileName - 文件名(模糊查询)
* @param {string} params.fileType - 文件类型
* @param {number} params.groupId - 分组编号
* @param {Array} params.createTime - 创建时间范围 [开始时间, 结束时间]
* @returns {Promise}
*/
getFilePage(params) {
return http.get(`${BASE_URL}/page`, { params })
},
/**
* 上传文件
* @param {FormData} formData - 文件表单数据
* @param {string} fileCategory - 文件分类video/generate/audio/mix/voice
* @returns {Promise}
*/
uploadFile(file, fileCategory) {
const formData = new FormData()
formData.append('file', file)
formData.append('fileCategory', fileCategory)
return http.post(`${BASE_URL}/upload`, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
},
/**
* 删除文件(批量)
* @param {Array<number>} fileIds - 文件编号列表
* @returns {Promise}
*/
deleteFiles(fileIds) {
// 根据后端接口,使用 delete-batch 接口
return http.delete(`${BASE_URL}/delete-batch`, {
params: { ids: fileIds.join(',') }
})
},
/**
* 获取视频播放URL
* @param {number} fileId - 文件编号
* @returns {Promise}
*/
getVideoPlayUrl(fileId) {
return http.get(`${BASE_URL}/video/play-url`, {
params: { id: fileId }
})
},
/**
* 获取音频播放URL
* @param {number} fileId - 文件编号
* @returns {Promise}
*/
getAudioPlayUrl(fileId) {
return http.get(`${BASE_URL}/audio/play-url`, {
params: { id: fileId }
})
},
/**
* 获取预览URL
* @param {number} fileId - 文件编号
* @param {string} type - 预览类型thumbnail/cover
* @returns {Promise}
*/
getPreviewUrl(fileId, type = 'thumbnail') {
return http.get(`${BASE_URL}/preview-url`, {
params: { id: fileId, type }
})
}
}
/**
* 素材分组 API 服务
*/
const GROUP_BASE_URL = `${API_BASE.APP}/api/tik/file/group`
export const MaterialGroupService = {
/**
* 创建分组
* @param {Object} data - 分组数据
* @param {string} data.name - 分组名称
* @param {string} data.description - 分组描述
* @param {number} data.sort - 排序
* @param {string} data.icon - 分组图标
* @param {number} data.parentId - 父分组编号
* @returns {Promise}
*/
createGroup(data) {
return http.post(`${GROUP_BASE_URL}/create`, data)
},
/**
* 更新分组
* @param {Object} data - 分组数据
* @param {number} data.id - 分组编号
* @param {string} data.name - 分组名称
* @param {string} data.description - 分组描述
* @param {number} data.sort - 排序
* @param {string} data.icon - 分组图标
* @param {number} data.parentId - 父分组编号
* @returns {Promise}
*/
updateGroup(data) {
return http.put(`${GROUP_BASE_URL}/update`, data)
},
/**
* 删除分组
* @param {number} groupId - 分组编号
* @returns {Promise}
*/
deleteGroup(groupId) {
return http.delete(`${GROUP_BASE_URL}/delete`, {
params: { id: groupId }
})
},
/**
* 查询分组列表
* @returns {Promise}
*/
getGroupList() {
return http.get(`${GROUP_BASE_URL}/list`)
},
/**
* 将文件添加到分组
* @param {Object} data - 请求数据
* @param {Array<number>} data.fileIds - 文件编号列表
* @param {Array<number>} data.groupIds - 分组编号列表
* @returns {Promise}
*/
addFilesToGroups(data) {
return http.post(`${GROUP_BASE_URL}/add-files`, data)
},
/**
* 从分组移除文件
* @param {Object} data - 请求数据
* @param {Array<number>} data.fileIds - 文件编号列表
* @param {Array<number>} data.groupIds - 分组编号列表
* @returns {Promise}
*/
removeFilesFromGroups(data) {
return http.post(`${GROUP_BASE_URL}/remove-files`, data)
}
}
export default MaterialService

View File

@@ -0,0 +1,49 @@
/**
* 测试 API 服务
* 用于测试升级会员和创建OSS目录
*/
import http from './http'
import { API_BASE } from '@gold/config/api'
const BASE_URL = `${API_BASE.APP}/api/tik/test`
/**
* 测试 API 服务
*/
export const TestService = {
/**
* 升级会员
* @param {Object} params - 参数
* @param {number} params.vipLevel - VIP等级
* @param {number} params.totalStorage - 总存储空间(字节)
* @param {number} params.totalQuota - 总配额(积分/额度)
* @returns {Promise}
*/
upgradeVip(params = {}) {
return http.post(`${BASE_URL}/upgrade-vip`, null, { params })
},
/**
* 初始化OSS目录
* @returns {Promise}
*/
initOss() {
return http.post(`${BASE_URL}/init-oss`)
},
/**
* 一键测试(升级会员 + 初始化OSS
* @param {Object} params - 参数
* @param {number} params.vipLevel - VIP等级
* @param {number} params.totalStorage - 总存储空间(字节)
* @param {number} params.totalQuota - 总配额(积分/额度)
* @returns {Promise}
*/
testAll(params = {}) {
return http.post(`${BASE_URL}/test-all`, null, { params })
}
}
export default TestService