From f49b4d3ab1d0c248ee5b803b1b5e6fbce70e90e2 Mon Sep 17 00:00:00 2001 From: zhaofang <752743406@qq.com> Date: Wed, 14 Sep 2022 13:52:44 +0800 Subject: [PATCH] =?UTF-8?q?ajax=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ajax.js | 179 +++++++++++++++++++++++ src/api/modules/guide.js | 23 --- src/api/modules/place.js | 26 ---- src/api/phase2/guide.js | 24 +++ src/api/{modules => phase2}/note.js | 22 +-- src/api/phase2/place.js | 28 ++++ src/api/phase2/stat.js | 13 +- src/api/{modules => phase2}/userhobby.js | 14 +- src/components/Course/myNote.vue | 2 +- src/components/UcHeader/Index.vue | 2 +- src/views/Index.vue | 2 +- src/views/homepage/Index.vue | 22 +++ src/views/portal/article/Detail.vue | 2 +- src/views/portal/article/Index.vue | 2 +- src/views/portal/case/Detail.vue | 2 +- src/views/portal/case/Index.vue | 2 +- src/views/portal/course/Index.vue | 2 +- src/views/portal/qa/Answer.vue | 2 +- src/views/portal/qa/Detail.vue | 2 +- src/views/portal/qa/Index.vue | 2 +- src/views/study/coursenew.vue | 2 - src/views/user/Setting.vue | 28 ++-- 22 files changed, 305 insertions(+), 98 deletions(-) create mode 100644 src/api/ajax.js delete mode 100644 src/api/modules/guide.js delete mode 100644 src/api/modules/place.js create mode 100644 src/api/phase2/guide.js rename src/api/{modules => phase2}/note.js (57%) create mode 100644 src/api/phase2/place.js rename src/api/{modules => phase2}/userhobby.js (57%) diff --git a/src/api/ajax.js b/src/api/ajax.js new file mode 100644 index 00000000..780cccf1 --- /dev/null +++ b/src/api/ajax.js @@ -0,0 +1,179 @@ +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=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 +/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ +//只是用于发送json对象数据时使用post,put,patch +//用于普通的发送请求 +const formRequest=axios.create({ + // headers:{'Content-Type':'application/x-www-form-urlencoded'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + // baseURL: process.env.VUE_APP_CESOURCE_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 === 401){ + store.dispatch('LogOut').then(() => { + location.href = this.webBaseUrl + ReLoginUrl; + }) + }else if(code===403){ + var msg='当前操作没有权限'; + Message({message: msg, type: 'error'}); + return Promise.reject(new Error(msg)) + }else{ + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + return res.data + } + } + }, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "后端接口连接异常"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + } + 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=formRequest.request; + +/** + * get请求 ,只有url + */ +const get = function(baseURL,url){ + return request({ + baseURL, + url: url, + method: 'get', + headers:{'Content-Type':'application/x-www-form-urlencoded'} + }) +} + +/** + * post请求 + * @param {Object} url + * @param {Object} postData + */ +const post=function(baseURL,url,postData){ + if(postData){ + postData=qs.stringify(postData); + } + return request({ + baseURL, + url: url, + method: 'post', + data:postData, + headers:{'Content-Type':'application/x-www-form-urlencoded'} + }) +} +//post请求 +const postForm=function(baseURL,url,data){ + return request({ + baseURL, + url, + data, + method: 'post', + headers:{'Content-Type':'application/x-www-form-urlencoded'} + }); + } +// const postJson=jsonRequest.post; + +const postJson=function(baseURL,url,postData){ + return request({ + baseURL, + url: url, + method: 'post', + data:postData, + headers:{'Content-Type':'application/json;charset=utf-8'}, + }) +} + +/** + * put请求 + */ +const put=function(baseURL,url,data){ + if(data){ + data=qs.stringify(data); + } + return request({ + baseURL, + url: url, + method: 'put', + data:data, + headers:{'Content-Type':'application/x-www-form-urlencoded'} + }) +} + +const putJson=function(baseURL,url,data){ + return request({ + baseURL, + url: url, + method: 'put', + data:data, + headers:{'Content-Type':'application/json;charset=utf-8'}, + }) +} + + + +export default { + request, + get, + post, + postJson, + put, + putJson, +} diff --git a/src/api/modules/guide.js b/src/api/modules/guide.js deleted file mode 100644 index fd633239..00000000 --- a/src/api/modules/guide.js +++ /dev/null @@ -1,23 +0,0 @@ -// import ajax from '@/utils/xajax.js' -import ajax from '../cesource/index.js'; - - -/** - * 显示提取,一次性 - * */ -const list=function (){ - return ajax.get('/xboe/subgroup/m/guide/list'); -} - -/** - * 保存或编辑 - * */ -const save=function (data){ - return ajax.postJson('/xboe/subgroup/m/guide/save',data); -} - - -export default { - list, - save -} diff --git a/src/api/modules/place.js b/src/api/modules/place.js deleted file mode 100644 index f8af0892..00000000 --- a/src/api/modules/place.js +++ /dev/null @@ -1,26 +0,0 @@ -// import ajax from '@/utils/xajax.js' -import ajax from '../cesource/index.js'; - - -/** - * 添加或编辑 - * @param 参数见设计文档 - * */ -const saveOrUpdate=function (data){ - return ajax.postJson('/xboe/subgroup/m/pageplace/saveOrUpdate',data); -} - -/** - * 根据key获取资源信息 - * */ - -const detail=function (key){ - return ajax.get('/xboe/subgroup/m/pageplace/detail-key?key='+key); -} - - - -export default { - saveOrUpdate, - detail -} diff --git a/src/api/phase2/guide.js b/src/api/phase2/guide.js new file mode 100644 index 00000000..4dc45bd1 --- /dev/null +++ b/src/api/phase2/guide.js @@ -0,0 +1,24 @@ +// import ajax from '@/utils/xajax.js' +import ajax from '../ajax'; +const baseURL = process.env.VUE_APP_CESOURCE_BASE_API; + + +/** + * 显示提取,一次性 + * */ +const list=function (){ + return ajax.get(baseURL,'/xboe/subgroup/m/guide/list'); +} + +/** + * 保存或编辑 + * */ +const save=function (data){ + return ajax.postJson(baseURL,'/xboe/subgroup/m/guide/save',data); +} + + +export default { + list, + save +} diff --git a/src/api/modules/note.js b/src/api/phase2/note.js similarity index 57% rename from src/api/modules/note.js rename to src/api/phase2/note.js index a7e1f0f0..526756ae 100644 --- a/src/api/modules/note.js +++ b/src/api/phase2/note.js @@ -1,5 +1,7 @@ // import ajax from '@/utils/xajax.js' -import ajax from '../cesource/index.js'; +// import ajax from '../cesource/index.js'; +import ajax from '../ajax'; +const baseURL = process.env.VUE_APP_CESOURCE_BASE_API; /** @@ -7,21 +9,21 @@ import ajax from '../cesource/index.js'; * @param 参数见设计文档 * */ const save=function (data){ - return ajax.postJson('/xboe/subgroup/m/noteinfo/save',data); + return ajax.postJson(baseURL,'/xboe/subgroup/m/noteinfo/save',data); } /** * 详情 * */ const detail=function (id){ - return ajax.get('/xboe/subgroup/m/noteinfo/detail?id='+id); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/detail?id='+id); } /** * 删除笔记 * */ const del=function (id){ - return ajax.get('/xboe/subgroup/m/noteinfo/delete?id='+id); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/delete?id='+id); } /** @@ -34,28 +36,28 @@ const del=function (id){ * } * */ const coursePage=function (query){ - return ajax.post('/xboe/subgroup/m/noteinfo/course',query); + return ajax.post(baseURL,'/xboe/subgroup/m/noteinfo/course',query); } /** * 查询我的指定课程笔记 * */ const myCourse=function (courseId){ - return ajax.get('/xboe/subgroup/m/noteinfo/mycourse?courseId='+courseId); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/mycourse?courseId='+courseId); } /** * 查询笔记的修改历史 * */ const history=function (noteId){ - return ajax.get('/xboe/subgroup/m/noteinfo/modify/history?noteId='+noteId); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/modify/history?noteId='+noteId); } /** * 分页查询我发布的,收藏的,点赞的笔记 弃用 * */ const pagelist=function (query){ - return ajax.get('/xboe/subgroup/m/noteinfo/pagelist',query); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/pagelist',query); } /** @@ -66,14 +68,14 @@ const pagelist=function (query){ * courseId 课程id * */ const query=function (data){ - return ajax.post('/xboe/subgroup/m/noteinfo/query',data); + return ajax.post(baseURL,'/xboe/subgroup/m/noteinfo/query',data); } /** * 课程列表 应该是当前用户记过笔记的课程 * */ const course=function (){ - return ajax.get('/xboe/subgroup/m/noteinfo/course'); + return ajax.get(baseURL,'/xboe/subgroup/m/noteinfo/course'); } export default { diff --git a/src/api/phase2/place.js b/src/api/phase2/place.js new file mode 100644 index 00000000..8e3314d2 --- /dev/null +++ b/src/api/phase2/place.js @@ -0,0 +1,28 @@ +// import ajax from '@/utils/xajax.js' +// import ajax from '../cesource/index.js'; +import ajax from '../ajax' +const baseURL = process.env.VUE_APP_CESOURCE_BASE_API; + + +/** + * 添加或编辑 + * @param 参数见设计文档 + * */ +const saveOrUpdate=function (data){ + return ajax.postJson(baseURL,'/xboe/subgroup/m/pageplace/saveOrUpdate',data); +} + +/** + * 根据key获取资源信息 + * */ + +const detail=function (key){ + return ajax.get(baseURL,'/xboe/subgroup/m/pageplace/detail-key?key='+key); +} + + + +export default { + saveOrUpdate, + detail +} diff --git a/src/api/phase2/stat.js b/src/api/phase2/stat.js index b1ce3be6..8619b9b2 100644 --- a/src/api/phase2/stat.js +++ b/src/api/phase2/stat.js @@ -1,6 +1,7 @@ /**文章模块的相关处理*/ -import ajax from '@/utils/xajax.js' - +// import ajax from '@/utils/xajax.js' +import ajax from '../ajax' +const baseURL = process.env.VUE_APP_STAT_BASE_API; /** * 发送事件,具体事件参考后台管理的事件查看 *参数如下: @@ -19,7 +20,7 @@ import ajax from '@/utils/xajax.js' * */ const sendEvent = function(data) { - return ajax.get('/xboe/m/stat/event/send'); + return ajax.get(baseURL,'/xboe/m/stat/event/send'); } /** @@ -28,7 +29,7 @@ const sendEvent = function(data) { * @param {Object} data 参数 []数组,10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数,空数组 返回用户的全部类型统计。 */ const userTotal = function(aid,data) { - return ajax.postJson('/xboe/m/stat/user/total/'+aid,data); + return ajax.postJson(baseURL,'/xboe/m/stat/user/total/'+aid,data); } /** @@ -43,7 +44,7 @@ const userTotal = function(aid,data) { } data */ const userDynamicList = function(data) { - return ajax.post('/xboe/m/stat/userdynamic/list',data); + return ajax.post(baseURL,'/xboe/m/stat/userdynamic/list',data); } /** @@ -52,7 +53,7 @@ const userDynamicList = function(data) { * @param {Integer} days 整数,最近几天的记录 */ const userCoinList = function(aid,days) { - return ajax.get('xboe/m/stat/usercoinrecord/list?aid='+aid+'&days='+days); + return ajax.get(baseURL,'xboe/m/stat/usercoinrecord/list?aid='+aid+'&days='+days); } export default { diff --git a/src/api/modules/userhobby.js b/src/api/phase2/userhobby.js similarity index 57% rename from src/api/modules/userhobby.js rename to src/api/phase2/userhobby.js index ca1fbf70..7c9661ac 100644 --- a/src/api/modules/userhobby.js +++ b/src/api/phase2/userhobby.js @@ -1,5 +1,7 @@ // import ajax from '@/utils/xajax.js' -import ajax from '../cesource/index.js' +// import ajax from '../cesource/index.js' +import ajax from '../ajax'; +const baseURL = process.env.VUE_APP_CESOURCE_BASE_API; /** @@ -11,7 +13,7 @@ import ajax from '../cesource/index.js' * } * */ const save=function (data){ - return ajax.postJson('/xboe/subgroup/m/userhobby/save',data); + return ajax.postJson(baseURL,'/xboe/subgroup/m/userhobby/save',data); } /** @@ -19,14 +21,14 @@ const save=function (data){ * 参数:下面那个接口的返回值直接传 * */ const list=function (data){ - return ajax.postJson('/xboe/subgroup/m/userhobby/list',data); + return ajax.postJson(baseURL,'/xboe/subgroup/m/userhobby/list',data); } /** * 获取用户兴趣关联的id * */ const info=function (){ - return ajax.get('/xboe/subgroup/m/userhobby/info'); + return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/info'); } /** @@ -34,14 +36,14 @@ const info=function (){ * 参数是上一个接口 info查出来的返回值 * */ const update=function (data){ - return ajax.postJson('/xboe/subgroup/m/userhobby/update',data); + return ajax.postJson(baseURL,'/xboe/subgroup/m/userhobby/update',data); } /** * 删除 * */ const del=function (id){ - return ajax.get('/xboe/subgroup/m/userhobby/delete?id='+id); + return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/delete?id='+id); } export default { diff --git a/src/components/Course/myNote.vue b/src/components/Course/myNote.vue index 27ac72b4..603e1f7f 100644 --- a/src/components/Course/myNote.vue +++ b/src/components/Course/myNote.vue @@ -73,7 +73,7 @@