Browse Source

axios封装

sunChengjie 1 year ago
parent
commit
f407cf7fe1
7 changed files with 72 additions and 4 deletions
  1. 2 1
      .eslintrc.js
  2. 1 0
      package.json
  3. 1 0
      src/api/index.js
  4. 4 1
      src/components/back.vue
  5. 2 1
      src/main.js
  6. 33 0
      src/utils/request.js
  7. 29 1
      yarn.lock

+ 2 - 1
.eslintrc.js

@@ -24,6 +24,7 @@ module.exports = {
     // allow async-await
     'generator-star-spacing': 'off',
     // allow debugger during development
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    "no-tabs": ["error", { allowIndentationTabs: true }]
   }
 }

+ 1 - 0
package.json

@@ -14,6 +14,7 @@
     "build": "node build/build.js"
   },
   "dependencies": {
+    "axios": "1.5.0",
     "clipboard": "^2.0.8",
     "jquery": "^3.6.0",
     "jsbarcode": "^3.11.5",

+ 1 - 0
src/api/index.js

@@ -0,0 +1 @@
+import request from '../utils/request';

+ 4 - 1
src/components/back.vue

@@ -14,13 +14,16 @@
     methods:{
       onClickLeft(){
         this.$router.back()
+      },
+      onabort() {
+        this.$attrs.transform()
       }
     }
   };
 </script>
 
 <style lang="less" scoped>
-  /deep/ .van-nav-bar__content{
+/deep/ .van-nav-bar__content{
     .van-nav-bar__title{
       font-size: 16px;
     }

+ 2 - 1
src/main.js

@@ -16,8 +16,9 @@ import Vant from 'vant'
 import clipboard from 'clipboard'
 import 'vant/lib/index.css'
 import wx from 'weixin-js-sdk'
+import request from "@/utils/request" 
+Vue.prototype.$axios = request
 Vue.prototype.$wx= wx
-
 Vue.component('tabbar',tabbar)
 Vue.component('banner',banner)
 Vue.component('back',back)

+ 33 - 0
src/utils/request.js

@@ -0,0 +1,33 @@
+// api/request.js  
+import axios from 'axios';  
+// 创建请求实例  
+const instance = axios.create({  
+  baseURL: 'process.env.VUE_APP_BASE_API', // 设置接口基础路径  
+  timeout: 5000 // 设置请求超时时间  
+});  
+
+// 设置请求拦截器  
+instance.interceptors.request.use(  
+  config => {  
+    // 在请求发送前进行一些操作,如设置请求头、处理请求参数等  
+    return config;  
+  },  
+  error => {  
+    // 对请求错误进行处理  
+    return Promise.reject(error);  
+  }  
+);  
+
+// 设置响应拦截器  
+instance.interceptors.response.use(  
+  response => {  
+    // 对接口返回的数据进行处理,如统一处理错误码、格式化数据等  
+    return response.data;  
+  },  
+  error => {  
+    // 对响应错误进行处理  
+    return Promise.reject(error);  
+  }  
+);  
+
+export default instance;

+ 29 - 1
yarn.lock

@@ -709,6 +709,15 @@ aws4@^1.8.0:
   resolved "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
   integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
 
+axios@1.5.0:
+  version "1.5.0"
+  resolved "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
+  integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
+  dependencies:
+    follow-redirects "^1.15.0"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
 babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
   version "6.26.0"
   resolved "https://registry.npmmirror.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -2322,7 +2331,7 @@ colors@~1.1.2:
   resolved "https://registry.npmmirror.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
   integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==
 
-combined-stream@^1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
   version "1.0.8"
   resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -4214,6 +4223,11 @@ follow-redirects@^1.0.0:
   resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
   integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
 
+follow-redirects@^1.15.0:
+  version "1.15.5"
+  resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
+  integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
+
 for-each@^0.3.3:
   version "0.3.3"
   resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -4246,6 +4260,15 @@ forever-agent@~0.6.1:
   resolved "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
   integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
 
+form-data@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 form-data@~2.3.2:
   version "2.3.3"
   resolved "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -8449,6 +8472,11 @@ proxy-agent@2.0.0:
     pac-proxy-agent "1"
     socks-proxy-agent "2"
 
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
 prr@~1.0.1:
   version "1.0.1"
   resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"