From 45fb650b1b800b2417a83b92131768f72c8a9faf Mon Sep 17 00:00:00 2001 From: zhangsir Date: Fri, 25 Oct 2024 17:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=A7=86=E9=A2=91=E7=9A=84?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/modules/courseFile.js | 5 + src/utils/xajax2.js | 233 ++++++++++++++++++++++++++++++++ src/views/course/Courseware.vue | 2 +- 3 files changed, 239 insertions(+), 1 deletion(-) create mode 100644 src/utils/xajax2.js diff --git a/src/api/modules/courseFile.js b/src/api/modules/courseFile.js index ee84dd57..3188addb 100644 --- a/src/api/modules/courseFile.js +++ b/src/api/modules/courseFile.js @@ -3,6 +3,7 @@ * 下载课件,一期是直接在新的窗口打开文件的地址就可以了。不采用流的方式下载 */ import ajax from '@/utils/xajax.js' +import ajax2 from '@/utils/xajax2.js' /** * 分页查询,课件的管理列表 @@ -49,6 +50,9 @@ const findList = function(data) { const saveUpload = function(data) { return ajax.post('/xboe/m/course/file/upload/save', data); } +const saveUpload2 = function(data) { + return ajax2.post('/xboe/m/course/file/upload/save', data); +} /** * 批量更新,上传时,一个一个上传,下面的列表的保存,使用此方法 @@ -85,6 +89,7 @@ const detail = function(id) { export default { pageList, saveUpload, + saveUpload2, batchUpdate, detail, delFile diff --git a/src/utils/xajax2.js b/src/utils/xajax2.js new file mode 100644 index 00000000..65bbce0f --- /dev/null +++ b/src/utils/xajax2.js @@ -0,0 +1,233 @@ +import axios from 'axios' +import qs from 'qs' +import { Notification, MessageBox, Message } from 'element-ui' +import store from '@/store' +import { getToken } from '@/utils/token' +import errorCode from '@/utils/errorCode' +/** + *request请求 axios.request(config) + *requestJson请求 axios.request(config) + *get请求 axios.get(url[, config]) + *post请求 axios.post(url[, data[, config]]) + *postJson请求 axios.post(url[, data[, config]]) + *put请求 axios.put(url[, data[, config]]) + *putJson请求 axios.put(url[, data[, config]]) + *patch请求 axios.patch(url[, data[, config]]) + *patchJson请求 axios.patch(url[, data[, config]]) + *delete请求 axios.delete(url[, config]) + */ + +//const ReLoginUrl="/login"; + +const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; + +const TokenName='XBOE-Access-Token'; +/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ +//只是用于发送json对象数据时使用post,put,patch +const jsonRequest=axios.create({ + headers:{'Content-Type':'application/json;charset=utf-8'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BASE_API, + //超时 + timeout: 60000, +}); +//发送json对象的拦截器 +jsonRequest.interceptors.request.use(config => { + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { + console.log(error) + Promise.reject(error) +}) + +// 响应拦截器 +jsonRequest.interceptors.response.use(res => { + + const code = res.data.status || 200; + if(code===200){ + return res.data + }else{ + if(code == 6001){ //针对于老系统的处理 + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code === 401){ + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code === 402){ + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code===403){ + var msg='当前操作没有权限'; + Message({message: msg, type: 'error'}); + return Promise.reject(new Error(msg)) + //return res.data; + }else if(code===302){ + location.href = ReLoginUrl; + }else{ + //Message({message: res.data.message, type: 'error'}); + //console.log('err:' + res.data.error); + //return Promise.reject(new Error(res.data.message)) + return res.data; + } + } + }, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + //location.href = this.webBaseUrl + ReLoginUrl; + } + else if (message.includes("Request failed with status code")) { + message = "系统接口" + message.substr(message.length - 3) + "异常"; + } + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } +) + +//用于普通的发送请求 +const formRequest=axios.create({ + headers:{'Content-Type':'application/x-www-form-urlencoded'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BASE_API, + //超时 + timeout: 10000, +}) +//发送json对象的拦截器 +formRequest.interceptors.request.use(config => { + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { + console.log(error) + Promise.reject(error) +}); +formRequest.interceptors.response.use(res => { + const code = res.data.status || 200; + if(code===200){ + return res.data + }else{ + if(code == 6001){ //针对于老系统的处理,因为老系统是字符串,所以这里不使用三等于号 + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code === 401){ + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code === 402){ + store.dispatch('LogOut').then(() => { + location.href = ReLoginUrl; + }) + }else if(code===403){ + var msg='当前操作没有权限'; + Message({message: msg, type: 'error'}); + return Promise.reject(new Error(msg)) + }else if(code===302){ + location.href = ReLoginUrl; + }else{ + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + //return Promise.reject(new Error(res.data.message)) + return res.data;//返回给用户做业务处理 + } + } + }, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "上传超时,请检查是否上传成功"; + //location.href = this.webBaseUrl + ReLoginUrl; + } + else if (message.includes("Request failed with status code")) { + message = "系统接口" + message.substr(message.length - 3) + "异常"; + } + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } +) + +//request请求 +const request=function(cfg){ + if(cfg.data){ + cfg.data=qs.stringify(cfg.data); + } +}; +//requestJson请求 +const requestJson=jsonRequest.request; +//get请求 +const get=formRequest.request; +//post请求 +const post=function(url,data,config){ + if(data){ + data=qs.stringify(data); + } + return formRequest.post(url,data,config); +} +//post请求 +const postForm=function(url,data,config){ + return formRequest.post(url,data,config); +} +//postJson请求 +const postJson=jsonRequest.post; +//put请求 +const put=function(url,data,config){ + if(data){ + data=qs.stringify(data); + } + return formRequest.put(url,data,config); +} +//putJson请求 +const putJson=jsonRequest.put; +//patch请求 +const patch=function(url,data,config){ + if(data){ + data=qs.stringify(data); + } + return formRequest.patch(url,data,config); +} +//patchJson请求 +const patchJson=jsonRequest.patch; +//delete请求 +const del=formRequest.delete; + + +export default { + request, + requestJson, + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del, + postForm +} diff --git a/src/views/course/Courseware.vue b/src/views/course/Courseware.vue index 57c8ef94..44fc049c 100644 --- a/src/views/course/Courseware.vue +++ b/src/views/course/Courseware.vue @@ -555,7 +555,7 @@ export default { // remark: 备注说明,可以为空,不填 }; //try { - coueseFile.saveUpload(data).then(res=>{ + coueseFile.saveUpload2(data).then(res=>{ if(res.status==200){ //console.log('上传文件成功:'+rs.result.displayName); res.result.device1 = true;