From d94136f16f5031b229078c42fb166085e39dcdb9 Mon Sep 17 00:00:00 2001 From: yanlitian <2564217790@qq.com> Date: Wed, 15 Jul 2020 14:18:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E8=A1=A8=E5=8D=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/workerviews/WorkForm.vue | 31 +++++++++++++++++++++++++++---- yarn.lock | 5 +++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/workerviews/WorkForm.vue b/src/workerviews/WorkForm.vue index 9f739a1..8593afb 100644 --- a/src/workerviews/WorkForm.vue +++ b/src/workerviews/WorkForm.vue @@ -6,14 +6,15 @@ 搜索
- + @@ -24,7 +25,29 @@ +``` + ## 提交规范 ```bash diff --git a/src/main.js b/src/main.js index d2c40c0..eb41609 100644 --- a/src/main.js +++ b/src/main.js @@ -9,6 +9,7 @@ import VCharts from 'v-charts'; import { message } from 'ant-design-vue'; import './assets/iconfont.css'; import * as lodash from "lodash"; +import http from './tools/http'; Vue.config.productionTip = false Vue.use(Antd); @@ -18,6 +19,8 @@ Vue.use(VCharts) Vue.prototype.$baseLodash = lodash; //注入全局属性$msg Vue.prototype.$msg = message; +// ajax请求 +Vue.prototype.$http = http; message.config({ duration: 2,// 持续时间 diff --git a/src/tools/http.js b/src/tools/http.js new file mode 100644 index 0000000..60b3291 --- /dev/null +++ b/src/tools/http.js @@ -0,0 +1,141 @@ +/**axios封装 + * 请求拦截、相应拦截、错误统一处理 + */ +import axios from 'axios'; +import QS from 'qs'; +// import store from '../store/index' + +//默认地址 +axios.defaults.baseURL = 'https://b2r-shop.yyk2c.com/api/2.0/'; + +// 请求超时时间 +axios.defaults.timeout = 10000; + +// post请求头 +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; + +// 请求拦截器 +axios.interceptors.request.use( + config => { + // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了 + // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断 + // const tempToken = store.state.tempToken; + // const token = store.state.token; + // const scope = store.state.scope; + // // if (!tempToken) { + // // window.location.href = 'https://b2r-shop.yyk2c.com/ShopJwtAuth/Auth' + // // } + // token && (config.headers.Authorization = token) && (config.headers.scope = scope); + return config; + }, + error => { + return Promise.error(error); + }) + +// 响应拦截器 +axios.interceptors.response.use( + response => { + if (response.status === 200) { + return Promise.resolve(response); + } else { + return Promise.reject(response); + } + }, + // 服务器状态码不是200的情况 + error => { + if (error.response.status) { + // switch (error.response.status) { + // // 401: 未登录 + // // 未登录则跳转登录页面,并携带当前页面的路径 + // // 在登录成功后返回当前页面,这一步需要在登录页操作。 + // case 401: + // router.replace({ + // path: '/login', + // query: { redirect: router.currentRoute.fullPath } + // }); + // break; + // // 403 token过期 + // // 登录过期对用户进行提示 + // // 清除本地token和清空vuex中token对象 + // // 跳转登录页面 + // case 403: + // window.console.log('登录过期,请重新登录'); + // // Toast({ + // // message: '登录过期,请重新登录', + // // duration: 1000, + // // forbidClick: true + // // }); + // // 清除token + // localStorage.removeItem('token'); + // // store.commit('loginSuccess', null); + // // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 + // setTimeout(() => { + // router.replace({ + // path: '/login', + // query: { + // redirect: router.currentRoute.fullPath + // } + // }); + // }, 1000); + // break; + // // 404请求不存在 + // case 404: + // // Toast({ + // // message: '网络请求不存在', + // // duration: 1500, + // // forbidClick: true + // // }); + // window.console.log('网络请求不存在'); + // break; + // // 其他错误,直接抛出错误提示 + // default: + // // Toast({ + // // message: error.response.data.message, + // // duration: 1500, + // // forbidClick: true + // // }); + // window.console.log(error.response.data.message); + // } + return Promise.reject(error.response); + } + } +); +/** + * get方法,对应get请求 + * @param {String} url [请求的url地址] + * @param {Object} params [请求时携带的参数] + */ +function get(url, params) { + return new Promise((resolve, reject) => { + axios.get(url, { + params: params + }) + .then(res => { + resolve(res.data); + }) + .catch(err => { + reject(err.data) + }) + }); +} +/** + * post方法,对应post请求 + * @param {String} url [请求的url地址] + * @param {Object} params [请求时携带的参数] + */ +function post(url, params) { + return new Promise((resolve, reject) => { + axios.post(url, QS.stringify(params)) + .then(res => { + resolve(res.data); + }) + .catch(err => { + reject(err.data) + }) + }); +} + +export default { + get, + post +} \ No newline at end of file -- Gitee From 4435b35cd82bf73e4179f32f1ee225d927bf412f Mon Sep 17 00:00:00 2001 From: mrdotyan <2564217790@qq.com> Date: Thu, 6 Aug 2020 17:33:31 +0800 Subject: [PATCH 3/3] update src/tools/http.js. --- src/tools/http.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/http.js b/src/tools/http.js index 60b3291..6ef438c 100644 --- a/src/tools/http.js +++ b/src/tools/http.js @@ -6,7 +6,7 @@ import QS from 'qs'; // import store from '../store/index' //默认地址 -axios.defaults.baseURL = 'https://b2r-shop.yyk2c.com/api/2.0/'; +axios.defaults.baseURL = 'your api urls'; // 请求超时时间 axios.defaults.timeout = 10000; -- Gitee