提交代码

This commit is contained in:
liu
2026-01-29 18:26:02 +08:00
parent 981b4ecf42
commit 7531b6c466
47 changed files with 7257 additions and 16 deletions

View 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);
}

View 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
View 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);
}

View 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}`);
}

View 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;

View 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);
}