提交代码
This commit is contained in:
18
frontend/src/api/aggregate.ts
Normal file
18
frontend/src/api/aggregate.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import request from './request';
|
||||
|
||||
export interface AggregateRequest {
|
||||
srcDir: string;
|
||||
dstDir: string;
|
||||
mode: 'copy' | 'move';
|
||||
}
|
||||
|
||||
export interface AggregateResponse {
|
||||
taskId: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动音频文件汇聚任务
|
||||
*/
|
||||
export function startAggregate(params: AggregateRequest): Promise<AggregateResponse> {
|
||||
return request.post('/api/aggregate/start', params);
|
||||
}
|
||||
18
frontend/src/api/convert.ts
Normal file
18
frontend/src/api/convert.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import request from './request';
|
||||
|
||||
export interface ConvertRequest {
|
||||
srcDir: string;
|
||||
dstDir: string;
|
||||
mode: 'copy' | 'move';
|
||||
}
|
||||
|
||||
export interface ConvertResponse {
|
||||
taskId: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动音频格式智能处理(转码)任务
|
||||
*/
|
||||
export function startConvert(params: ConvertRequest): Promise<ConvertResponse> {
|
||||
return request.post('/api/convert/start', params);
|
||||
}
|
||||
21
frontend/src/api/dedup.ts
Normal file
21
frontend/src/api/dedup.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import request from './request';
|
||||
|
||||
export interface DedupRequest {
|
||||
libraryDir: string;
|
||||
trashDir: string;
|
||||
useMd5: boolean;
|
||||
useMetadata: boolean;
|
||||
mode: 'copy' | 'move';
|
||||
}
|
||||
|
||||
export interface DedupResponse {
|
||||
taskId: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动音乐去重任务
|
||||
*/
|
||||
export function startDedup(params: DedupRequest): Promise<DedupResponse> {
|
||||
return request.post('/api/dedup/start', params);
|
||||
}
|
||||
|
||||
18
frontend/src/api/progress.ts
Normal file
18
frontend/src/api/progress.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import request from './request';
|
||||
|
||||
export interface ProgressMessage {
|
||||
taskId: string;
|
||||
type: string;
|
||||
total: number;
|
||||
processed: number;
|
||||
success: number;
|
||||
failed: number;
|
||||
currentFile: string;
|
||||
message: string;
|
||||
completed: boolean;
|
||||
}
|
||||
|
||||
export function getProgress(taskId: string): Promise<ProgressMessage | null> {
|
||||
return request.get(`/api/progress/${taskId}`);
|
||||
}
|
||||
|
||||
36
frontend/src/api/request.ts
Normal file
36
frontend/src/api/request.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import axios from 'axios';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
const request = axios.create({
|
||||
baseURL: 'http://localhost:8080',
|
||||
timeout: 30000,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
|
||||
// 响应拦截器:统一处理 Result<T> 格式
|
||||
request.interceptors.response.use(
|
||||
(response) => {
|
||||
const result = response.data;
|
||||
// 如果后端返回的是 Result<T> 格式
|
||||
if (result && typeof result === 'object' && 'code' in result) {
|
||||
if (result.code === 0) {
|
||||
// 成功,直接返回 data
|
||||
return result.data;
|
||||
} else {
|
||||
// 失败,显示错误信息并 reject
|
||||
ElMessage.error(result.message || '请求失败');
|
||||
return Promise.reject(new Error(result.message || '请求失败'));
|
||||
}
|
||||
}
|
||||
// 如果不是 Result 格式,直接返回
|
||||
return result;
|
||||
},
|
||||
(error) => {
|
||||
ElMessage.error(error.message || '网络错误');
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
|
||||
export default request;
|
||||
20
frontend/src/api/zhconvert.ts
Normal file
20
frontend/src/api/zhconvert.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import request from './request';
|
||||
|
||||
export interface ZhConvertRequest {
|
||||
scanDir: string;
|
||||
outputDir?: string;
|
||||
threshold: number;
|
||||
mode: 'preview' | 'execute';
|
||||
}
|
||||
|
||||
export interface ZhConvertResponse {
|
||||
taskId: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动音乐元数据繁体转简体任务
|
||||
*/
|
||||
export function startZhConvert(params: ZhConvertRequest): Promise<ZhConvertResponse> {
|
||||
return request.post('/api/zhconvert/start', params);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user