diff --git a/src/api/common.js b/src/api/common.js index 02bddfcb..3fd4c96e 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -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)); + } + }); }); -} +} \ No newline at end of file diff --git a/src/pages/examination/result.vue b/src/pages/examination/result.vue index 5eed5cc7..438b232e 100644 --- a/src/pages/examination/result.vue +++ b/src/pages/examination/result.vue @@ -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; diff --git a/src/pages/favorites/components/favoritesCourse.vue b/src/pages/favorites/components/favoritesCourse.vue index 8a240617..5a90ada4 100644 --- a/src/pages/favorites/components/favoritesCourse.vue +++ b/src/pages/favorites/components/favoritesCourse.vue @@ -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(() => { diff --git a/src/pages/favorites/components/favoritesTask.vue b/src/pages/favorites/components/favoritesTask.vue index a8f98688..4182f43a 100644 --- a/src/pages/favorites/components/favoritesTask.vue +++ b/src/pages/favorites/components/favoritesTask.vue @@ -115,7 +115,7 @@ { immediate: true } ); }); - + const updateData = (item) => { // 这里是收藏记录,如果是取消收藏,那就得重新刷新列表 if (item.collectionId === null) { diff --git a/src/pages/wrongQuestionRecord/correct.vue b/src/pages/wrongQuestionRecord/correct.vue index ea05d3a9..84fe1ffc 100644 --- a/src/pages/wrongQuestionRecord/correct.vue +++ b/src/pages/wrongQuestionRecord/correct.vue @@ -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];