|
@@ -6,6 +6,7 @@ import { config } from '@/config/axios/config'
|
|
|
import { getCurrentLocaleLang } from '@/utils/lang'
|
|
|
import { enterpriseRefreshToken, userRefreshToken } from '@/api/common'
|
|
|
import { getToken, getRefreshToken, removeToken, setToken, setRefreshToken } from '@/utils/auth'
|
|
|
+import { rewardEventTrackClick } from '@/api/integral'
|
|
|
import errorCode from './errorCode'
|
|
|
|
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
@@ -32,6 +33,11 @@ let requestList = []
|
|
|
let isRefreshToken = false
|
|
|
// 请求白名单,无须token的接口
|
|
|
const whiteList = ['/login', '/refresh-token']
|
|
|
+const RETURNED_API = '/admin-api/menduner/reward/event-track/click'
|
|
|
+
|
|
|
+// 规则配置跟踪列表
|
|
|
+const eventRules = localStorage.getItem('eventList')
|
|
|
+const eventList = (eventRules ? JSON.parse(eventRules) : []).filter(_e => _e.type === '0')
|
|
|
|
|
|
// 创建axios实例
|
|
|
const service = axios.create({
|
|
@@ -89,6 +95,11 @@ service.interceptors.request.use(
|
|
|
// response 拦截器
|
|
|
service.interceptors.response.use(
|
|
|
async (response) => {
|
|
|
+ if (response.config.url.includes(RETURNED_API)) {
|
|
|
+ const { match, title, point } = response.data.data
|
|
|
+ if (match) Snackbar.success(`恭喜您${title}获得${point}积分`)
|
|
|
+ return
|
|
|
+ }
|
|
|
const { t } = useI18n()
|
|
|
let { data } = response
|
|
|
const config = response.config
|
|
@@ -172,9 +183,19 @@ service.interceptors.response.use(
|
|
|
Snackbar.error(msg)
|
|
|
}
|
|
|
return Promise.reject(msg)
|
|
|
- } else {
|
|
|
+ }
|
|
|
+
|
|
|
+ // 请求成功后触发获取积分
|
|
|
+ if (!eventList.length) {
|
|
|
return data
|
|
|
}
|
|
|
+ const _list = eventList.filter(_e => {
|
|
|
+ return response.config.url.includes(_e.url)
|
|
|
+ })
|
|
|
+ if (_list.length) {
|
|
|
+ rewardEventTrackClick(_list.pop().url)
|
|
|
+ }
|
|
|
+ return data
|
|
|
},
|
|
|
(error) => {
|
|
|
const { t } = useI18n()
|