import { get_base_url } 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 = {}; 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) { reject(new Error('Upload failed')); } }); }); }; // 对象存储下载 /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 // console.log(`${base_url}${url}`) return new Promise((resolve, reject) => { uni.uploadFile({ url: `${base_url}${url}`, header: header, filePath: file, name: fileKey, formData: data, success(result) { try { const res = JSON.parse(result.data); // console.log(res) if (res.rtnCode === '0000') { resolve(result); } else { reject(new Error(res.message)); } } catch (error) { reject(new Error('Failed to parse response')); } }, fail(error) { console.log(error) reject(new Error('Upload failed')); } }); }); }; // 上传音频 翻译文本 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(); return new Promise((resolve, reject) => { uni.downloadFile({ url: `${baseUrl}${url}`, header, success(result) { console.log(result) resolve(result) }, fail(error) { console.log(error) reject(new Error(error)); } }); }); } 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)); } }); }); }