diff --git a/README.md b/README.md
index faee47d94b4c7063c05e655f9f2058b22094fe0c..305a57be785474aaaa93147866613d7b3c07560f 100644
--- a/README.md
+++ b/README.md
@@ -72,6 +72,7 @@ $yarn/cnpm/npm i && yarn/cnpm/npm run serve
|clipboard|yarn add / npm i / cnpm i clipboard |文字拷贝|
|lodash|yarn add / npm i / cnpm i lodash |实用工具库|
|wangeditor|yarn add / npm i / cnpm i wangeditor cos-js-sdk-v5 |富文本编辑|
+|axios|yarn add / npm i / cnpm i axios qs|ajax请求|
## 计划
@@ -120,6 +121,50 @@ $yarn/cnpm/npm i && yarn/cnpm/npm run serve
},
```
+### ajax请求示例
+
+> ajax请求使用了`axios`,在`src/tools/http.js`定义了axios的请求配置,里面注释掉的代码是平常项目里的一些操作。
+
+1. demo:
+
+```js
+
+
+
+
+
+
+
+```
+
## 提交规范
```bash
diff --git a/src/main.js b/src/main.js
index d2c40c04d5909f5e72701968bc5f4fecde1c074d..eb416091cafff1012a5a20b93304ea06ee6ccedd 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 0000000000000000000000000000000000000000..6ef438c12e4a51fa15464b5bc97df1a4e553c18f
--- /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 = 'your api urls';
+
+// 请求超时时间
+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
diff --git a/src/workerviews/WorkForm.vue b/src/workerviews/WorkForm.vue
index 9f739a15571f4abaec71466ea6d3a817648d92fb..8593afbf48360251b6b45618cef25ae80c5d9c26 100644
--- a/src/workerviews/WorkForm.vue
+++ b/src/workerviews/WorkForm.vue
@@ -6,14 +6,15 @@
搜索