272 lines
6.1 KiB
JavaScript
272 lines
6.1 KiB
JavaScript
import {
|
|
get_base_url,
|
|
REQUES_ERROR_CODES,
|
|
goto_login_fun
|
|
} from '@/api/request'
|
|
import {
|
|
getToken
|
|
} from '@/common/common.js'
|
|
import common from '@/common/common';
|
|
|
|
|
|
export const uploadFile = (file, data) => {
|
|
const url = '/traoss/tras3/upload';
|
|
const base_url = get_base_url(url);
|
|
const token = getToken();
|
|
const header = {};
|
|
console.log('file', file);
|
|
if (token)
|
|
header['summary'] = token
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: `${base_url}${url}`,
|
|
header: header,
|
|
filePath: file,
|
|
name: 'file',
|
|
formData: data,
|
|
success(result) {
|
|
try {
|
|
const res = JSON.parse(result.data);
|
|
if (res.rtnCode === '0000') {
|
|
resolve(res.body);
|
|
} else {
|
|
reject(new Error(res.msg));
|
|
}
|
|
} catch (error) {
|
|
reject(new Error('Failed to parse response'));
|
|
}
|
|
},
|
|
fail(error) {
|
|
console.log('error', error);
|
|
reject(new Error('Upload failed'));
|
|
}
|
|
});
|
|
});
|
|
};
|
|
export const getPreviewFileUrl = (id) => {
|
|
return get_base_url() + `/traoss/tras3/show/${id}`
|
|
}
|
|
// 对象存储下载 /traoss/tras3/show/{文件ID}
|
|
export function downloadFile(id) {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url();
|
|
|
|
return new Promise((resolve, reject) => {
|
|
uni.downloadFile({
|
|
url: `${baseUrl}/traoss/tras3/show/${id}`,
|
|
header,
|
|
success(result) {
|
|
resolve(result)
|
|
},
|
|
fail(error) {
|
|
reject(new Error(error));
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
// 上传音频 通用
|
|
export const commonUploadVoiceFile = (file, url, data = {}, fileKey = 'voice') => {
|
|
const base_url = get_base_url(url);
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "multipart/form-data; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: `${base_url}${url}`,
|
|
header: header,
|
|
filePath: file,
|
|
name: fileKey,
|
|
formData: data,
|
|
timeout: 60000,
|
|
success(result) {
|
|
try {
|
|
console.log(result)
|
|
const res = JSON.parse(result.data);
|
|
if (res.rtnCode === '0000') {
|
|
return resolve(res);
|
|
} else if (REQUES_ERROR_CODES['NO_LOGIN'].includes(res.rtnCode)) {
|
|
goto_login_fun()
|
|
return reject('NO_LOGIN');
|
|
} else if (res.rtnCode === '0004') {
|
|
return reject('N');
|
|
}
|
|
return reject('Other');
|
|
} catch (error) {
|
|
reject(new Error('Failed to parse response'));
|
|
}
|
|
},
|
|
fail(error) {
|
|
return reject('Other');
|
|
}
|
|
});
|
|
});
|
|
};
|
|
// 上传音频 翻译文本
|
|
export const uploadVoiceFile = (file) => {
|
|
const url = '/trastudy/traStdyInfo/audioTranscriptions';
|
|
const base_url = get_base_url(url);
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "multipart/form-data; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: `${base_url}${url}`,
|
|
header: header,
|
|
filePath: file,
|
|
name: 'voice',
|
|
success(result) {
|
|
try {
|
|
const res = JSON.parse(result.data);
|
|
if (res.rtnCode === '0000') {
|
|
resolve(result);
|
|
} else {
|
|
reject(new Error(res.message));
|
|
}
|
|
} catch (error) {
|
|
reject(new Error('Failed to parse response'));
|
|
}
|
|
},
|
|
fail(error) {
|
|
reject(new Error('Upload failed'));
|
|
}
|
|
});
|
|
});
|
|
};
|
|
// 获取音频 通用
|
|
export function downloadVoiceFile(url) {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url(url);
|
|
return new Promise((resolve, reject) => {
|
|
uni.downloadFile({
|
|
url: `${baseUrl}${url}`,
|
|
header,
|
|
timeout: 180000,
|
|
success(result) {
|
|
console.log(result)
|
|
resolve(result)
|
|
},
|
|
fail(error) {
|
|
console.log(error)
|
|
reject(new Error(error));
|
|
}
|
|
});
|
|
});
|
|
}
|
|
// 获取音频 通用参数
|
|
export function downloadVoiceParams(url) {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url(url);
|
|
return {
|
|
url: `${baseUrl}${url}`,
|
|
header,
|
|
timeout: 180000,
|
|
}
|
|
}
|
|
|
|
|
|
export function getAudioByText(data) {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url();
|
|
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: `${baseUrl}/trastudy/traStdyInfo/readContent`,
|
|
header,
|
|
method: "POST",
|
|
data,
|
|
responseType: "arraybuffer",
|
|
success(result) {
|
|
if (result.statusCode === 200) {
|
|
resolve(result.data)
|
|
} else {
|
|
reject(new Error(result))
|
|
}
|
|
},
|
|
fail(error) {
|
|
reject(new Error(error));
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
// 对象存储预览 /traoss/tras3/show/{文件ID}
|
|
export function previewFile(id, responseType = 'arraybuffer') {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url();
|
|
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: `${baseUrl}/traoss/tras3/show/${id}`,
|
|
header,
|
|
responseType,
|
|
success(result) {
|
|
resolve(result)
|
|
},
|
|
fail(error) {
|
|
reject(new Error(error));
|
|
}
|
|
});
|
|
});
|
|
}
|
|
// 缩略图预览 /traoss/tras3/getCacheThumbImage/{fileId}/{width}/{height}
|
|
export function previewCacheThumbImage(id, width = 30, height = 30) {
|
|
const token = getToken();
|
|
const header = {
|
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
};
|
|
if (token)
|
|
header['summary'] = token
|
|
let baseUrl = get_base_url();
|
|
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: `${baseUrl}/traoss/tras3/getCacheThumbImage/${id}/${width}/${height}`,
|
|
header,
|
|
success(result) {
|
|
if (result.data.rtnCode === '0000') {
|
|
let base64 = `data:image/png;base64,` + result.data.body
|
|
resolve(base64)
|
|
} else {
|
|
reject({
|
|
error: result.data.message
|
|
})
|
|
}
|
|
},
|
|
fail(error) {
|
|
reject(new Error(error));
|
|
}
|
|
});
|
|
});
|
|
} |