瀏覽代碼

获取积分snackbar展示

Xiao_123 11 月之前
父節點
當前提交
d3ee7e3a19
共有 2 個文件被更改,包括 24 次插入6 次删除
  1. 3 5
      src/config/axios/service.js
  2. 21 1
      src/utils/prefixUrl.js

+ 3 - 5
src/config/axios/service.js

@@ -3,7 +3,7 @@ import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
 import qs from 'qs'
 import { config } from '@/config/axios/config'
-import { getSuffixAfterPrefix } from '@/utils/prefixUrl'
+import { getSuffixAfterPrefix, showNextAction } from '@/utils/prefixUrl'
 import { getCurrentLocaleLang } from '@/utils/lang'
 import { enterpriseRefreshToken, userRefreshToken } from '@/api/common'
 import { getToken, getRefreshToken, removeToken, setToken, setRefreshToken } from '@/utils/auth'
@@ -107,10 +107,8 @@ service.interceptors.request.use(
 service.interceptors.response.use(
   async (response) => {
     if (response.config.url.includes(RETURNED_API)) {
-      console.log(response.data.data, '积分获取data')
-      if (!response.data.data) return
-      const { match, title, point } = response.data.data
-      if (match) Snackbar.success(`恭喜您${title}获得${point}积分`)
+      if (!response.data.data || !response.data.data.length) return
+      showNextAction(response.data.data)
       return
     }
     const { t } = useI18n()

+ 21 - 1
src/utils/prefixUrl.js

@@ -1,5 +1,6 @@
-const prefixList = ['/app-api', '/admin-api']
+import Snackbar from '@/plugins/snackbar'
 
+const prefixList = ['/app-api', '/admin-api']
 export const getSuffixAfterPrefix = (str) => {
   const matchingPrefix = prefixList.find(prefix => str.startsWith(prefix))
   if (matchingPrefix) {
@@ -12,4 +13,23 @@ export const getSuffixAfterPrefix = (str) => {
     else return matchUrl
   }
   return undefined
+}
+
+
+
+// 展示积分
+export function showNextAction(actions, currentIndex = 0) {
+  if (currentIndex < actions.length) {
+    const action = actions[currentIndex]
+    if (action.match) {
+      Snackbar.success(`恭喜您${action.title}获得${action.point}积分`)
+      setTimeout(() => {
+        showNextAction(actions, currentIndex + 1)
+      }, 3000)
+    } else {
+      setTimeout(() => {
+        showNextAction(actions, currentIndex + 1)
+      }, 0)
+    }
+  }
 }