Merge branch 'develop' into 'sit'
语音回答接口 See merge request K17_AITS/tra-app!153
This commit is contained in:
+183
-179
@@ -1,248 +1,252 @@
|
||||
import {
|
||||
get_base_url
|
||||
get_base_url,
|
||||
REQUES_ERROR_CODES,
|
||||
goto_login_fun
|
||||
} from '@/api/request'
|
||||
import {
|
||||
getToken
|
||||
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 = {};
|
||||
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) => {
|
||||
if (token)
|
||||
header['summary'] = token
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url: `${base_url}${url}`,
|
||||
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) {
|
||||
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'));
|
||||
}
|
||||
});
|
||||
reject(new Error('Upload failed'));
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
export const getPreviewFileUrl = (id) => {
|
||||
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) {
|
||||
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));
|
||||
}
|
||||
});
|
||||
},
|
||||
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}`,
|
||||
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,
|
||||
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'));
|
||||
}
|
||||
});
|
||||
success(result) {
|
||||
try {
|
||||
const res = JSON.parse(result.data);
|
||||
if (res.rtnCode === '0000') {
|
||||
resolve(result);
|
||||
} else if (REQUES_ERROR_CODES['NO_LOGIN'].includes(res.rtnCode)) {
|
||||
goto_login_fun()
|
||||
} else {
|
||||
reject(new Error(res.message));
|
||||
}
|
||||
} catch (error) {
|
||||
reject(new Error('Failed to parse response'));
|
||||
}
|
||||
},
|
||||
fail(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}`,
|
||||
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'));
|
||||
}
|
||||
});
|
||||
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 token = getToken();
|
||||
const header = {
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
};
|
||||
if (token)
|
||||
header['summary'] = token
|
||||
};
|
||||
if (token)
|
||||
header['summary'] = token
|
||||
let baseUrl = get_base_url(url);
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.downloadFile({
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.downloadFile({
|
||||
url: `${baseUrl}${url}`,
|
||||
header,
|
||||
header,
|
||||
success(result) {
|
||||
console.log(result)
|
||||
resolve(result)
|
||||
},
|
||||
fail(error) {
|
||||
},
|
||||
fail(error) {
|
||||
console.log(error)
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export function getAudioByText(data) {
|
||||
const token = getToken();
|
||||
const token = getToken();
|
||||
const header = {
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
};
|
||||
if (token)
|
||||
header['summary'] = token
|
||||
};
|
||||
if (token)
|
||||
header['summary'] = token
|
||||
let baseUrl = get_base_url();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${baseUrl}/trastudy/traStdyInfo/readContent`,
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${baseUrl}/trastudy/traStdyInfo/readContent`,
|
||||
header,
|
||||
method:"POST",
|
||||
method: "POST",
|
||||
data,
|
||||
responseType: "arraybuffer",
|
||||
success(result) {
|
||||
if(result.statusCode === 200){
|
||||
if (result.statusCode === 200) {
|
||||
resolve(result.data)
|
||||
}else{
|
||||
} else {
|
||||
reject(new Error(result))
|
||||
}
|
||||
},
|
||||
fail(error) {
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
},
|
||||
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,
|
||||
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) {
|
||||
success(result) {
|
||||
resolve(result)
|
||||
},
|
||||
fail(error) {
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
},
|
||||
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'){
|
||||
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})
|
||||
} else {
|
||||
reject({
|
||||
error: result.data.message
|
||||
})
|
||||
}
|
||||
},
|
||||
fail(error) {
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
},
|
||||
fail(error) {
|
||||
reject(new Error(error));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -256,7 +256,7 @@
|
||||
// 未完成且未达上限,继续请求
|
||||
if (requestCount.value < 15) {
|
||||
// 这里用定时器延迟下次请求
|
||||
timerId.value = setTimeout(fetchData, 2000);
|
||||
timerId.value = setTimeout(fetchData, 5000);
|
||||
} else {
|
||||
console.log('已达到最大请求次数,停止等待');
|
||||
requestCount.value = 0;
|
||||
@@ -281,7 +281,7 @@
|
||||
console.error('请求失败', err);
|
||||
// 请求失败也计入次数,避免无限重试
|
||||
if (requestCount.value < 15) {
|
||||
timerId.value = setTimeout(fetchData, 2000);
|
||||
timerId.value = setTimeout(fetchData, 5000);
|
||||
} else {
|
||||
// 失败次数达上限,重置计数器
|
||||
requestCount.value = 0;
|
||||
|
||||
@@ -65,13 +65,13 @@
|
||||
};
|
||||
const swipeActionClick = (click_item) => {
|
||||
const index = click_item['name'];
|
||||
const item = data_list[index];
|
||||
const item = data_list.value[index];
|
||||
common.show('提示', '确认删除吗?').then((res) => {
|
||||
if (!res) return;
|
||||
common.loading();
|
||||
deleteTraPersonalCollectionById({ collectId: item.collectId })
|
||||
.then(() => {
|
||||
data_list.splice(index, 1); // 从列表移除
|
||||
data_list.value.splice(index, 1); // 从列表移除
|
||||
total.value -= 1; // 更新下总数
|
||||
})
|
||||
.finally(() => {
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
{ immediate: true }
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
const updateData = (item) => {
|
||||
// 这里是收藏记录,如果是取消收藏,那就得重新刷新列表
|
||||
if (item.collectionId === null) {
|
||||
|
||||
@@ -236,15 +236,12 @@
|
||||
questionNumber.value++;
|
||||
}, 200);
|
||||
});
|
||||
} else {
|
||||
console.log('为什么不跳转2', judgeResultStatus);
|
||||
console.log('为什么不跳转3', topic.qnsTyp !== 'ES');
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
// 单选和判断需要清除已点击的按钮
|
||||
if(['JD', 'SN'].includes(topic.qnsTyp)) {
|
||||
if (['JD', 'SN'].includes(topic.qnsTyp)) {
|
||||
topic.my_answer = [];
|
||||
}
|
||||
common.hideLoading();
|
||||
@@ -480,7 +477,6 @@
|
||||
onShow(() => {});
|
||||
onHide(() => {});
|
||||
onUnload(() => {
|
||||
|
||||
const pages = getCurrentPages();
|
||||
if (pages.length >= 2) {
|
||||
const prevPage = pages[pages.length - 2];
|
||||
|
||||
Reference in New Issue
Block a user