From 74294ada5bb829cb2a256d90462d2c4d768cdc8a Mon Sep 17 00:00:00 2001 From: zhangyao Date: Wed, 19 Jul 2023 18:24:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=9A=80=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=95=B0=E6=8D=AE=E6=97=A5=E5=BF=97=E5=92=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 45 +++++++++++++++++++++++---- package.json | 1 + src/http/http.ts | 10 ++++++ src/views/ServiceList/ServiceList.vue | 6 ++-- 4 files changed, 54 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b32bb76..ed31640 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@vueuse/core": "^9.12.0", "animate.css": "^4.1.1", "axios": "^1.3.3", + "axios-retry": "^3.5.1", "core-js": "^3.8.3", "lottie-web": "^5.10.2", "pinia": "^2.0.30", @@ -1695,7 +1696,6 @@ "version": "7.20.13", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.13.tgz", "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -5209,6 +5209,26 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/axios-retry": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.5.1.tgz", + "integrity": "sha512-mQRJ4IyAUnYig14BQ4MnnNHHuH1cNH7NW4JxEUD6mNJwK6pwOY66wKLCwZ6Y0o3POpfStalqRC+J4+Hnn6Om7w==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/axios-retry/node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -15694,8 +15714,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -20692,7 +20711,6 @@ "version": "7.20.13", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.13.tgz", "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.11" } @@ -23388,6 +23406,22 @@ "proxy-from-env": "^1.1.0" } }, + "axios-retry": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.5.1.tgz", + "integrity": "sha512-mQRJ4IyAUnYig14BQ4MnnNHHuH1cNH7NW4JxEUD6mNJwK6pwOY66wKLCwZ6Y0o3POpfStalqRC+J4+Hnn6Om7w==", + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + }, + "dependencies": { + "is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -31194,8 +31228,7 @@ "regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { "version": "0.15.1", diff --git a/package.json b/package.json index 559a688..56def50 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@vueuse/core": "^9.12.0", "animate.css": "^4.1.1", "axios": "^1.3.3", + "axios-retry": "^3.5.1", "core-js": "^3.8.3", "lottie-web": "^5.10.2", "pinia": "^2.0.30", diff --git a/src/http/http.ts b/src/http/http.ts index bd49818..71968fd 100644 --- a/src/http/http.ts +++ b/src/http/http.ts @@ -2,6 +2,7 @@ import axios, { type AxiosResponse, AxiosInstance, InternalAxiosRequestConfig } import { addPrefixByRecursive } from '@/utils/utils' import { useRootStore } from '@/store/root' import type { RequestConfig, RequestInterceptors, CreateRequestConfig } from './types' +import axiosRetry from 'axios-retry' class Request { // axios 实例 @@ -13,6 +14,13 @@ class Request { constructor(config: CreateRequestConfig) { this.instance = axios.create(config) + axiosRetry(this.instance, { + retries: 3, + retryDelay: retryCount => { + // console.log('retryCount :>> ', retryCount) + return 3000 + } + }) //取消请求控制器Map this.abortControllerMap = new Map() this.interceptorsObj = config.interceptors @@ -49,6 +57,7 @@ class Request { this.instance .request(config) .then(res => { + console.log('axios获取数据 :>> ', res) // 如果为单个响应设置拦截器,使用单个响应的拦截器 if (config.interceptors?.responseInterceptors) { res = config.interceptors.responseInterceptors(res) @@ -57,6 +66,7 @@ class Request { resolve(res) }) .catch((err: any) => { + console.log('axios获取数据失败 :==>> ', err) reject(err) }) }) diff --git a/src/views/ServiceList/ServiceList.vue b/src/views/ServiceList/ServiceList.vue index a710445..8576b38 100644 --- a/src/views/ServiceList/ServiceList.vue +++ b/src/views/ServiceList/ServiceList.vue @@ -13,7 +13,7 @@ >
-
+
{{ switchLanguage(item, 'name') }}