|
@@ -3,9 +3,11 @@ import Snackbar from '@/plugins/snackbar'
|
|
import Confirm from '@/plugins/confirm'
|
|
import Confirm from '@/plugins/confirm'
|
|
import qs from 'qs'
|
|
import qs from 'qs'
|
|
import { config } from '@/config/axios/config'
|
|
import { config } from '@/config/axios/config'
|
|
|
|
+import { getSuffixAfterPrefix } from '@/utils/prefixUrl'
|
|
import { getCurrentLocaleLang } from '@/utils/lang'
|
|
import { getCurrentLocaleLang } from '@/utils/lang'
|
|
import { enterpriseRefreshToken, userRefreshToken } from '@/api/common'
|
|
import { enterpriseRefreshToken, userRefreshToken } from '@/api/common'
|
|
import { getToken, getRefreshToken, removeToken, setToken, setRefreshToken } from '@/utils/auth'
|
|
import { getToken, getRefreshToken, removeToken, setToken, setRefreshToken } from '@/utils/auth'
|
|
|
|
+import { rewardEventTrackClick } from '@/api/integral'
|
|
import errorCode from './errorCode'
|
|
import errorCode from './errorCode'
|
|
|
|
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
@@ -32,6 +34,14 @@ let requestList = []
|
|
let isRefreshToken = false
|
|
let isRefreshToken = false
|
|
// 请求白名单,无须token的接口
|
|
// 请求白名单,无须token的接口
|
|
const whiteList = ['/login', '/refresh-token']
|
|
const whiteList = ['/login', '/refresh-token']
|
|
|
|
+const RETURNED_API = '/admin-api/menduner/reward/event-track/click'
|
|
|
|
+
|
|
|
|
+// 规则配置跟踪列表
|
|
|
|
+const eventRules = localStorage.getItem('eventList')
|
|
|
|
+// 请求成功后触发
|
|
|
|
+const requestCompletionTrigger = (eventRules ? JSON.parse(eventRules) : []).filter(_e => _e.type === '0')
|
|
|
|
+// 点击触发
|
|
|
|
+const clickTrigger = (eventRules ? JSON.parse(eventRules) : []).filter(_e => _e.type === '1')
|
|
|
|
|
|
// 创建axios实例
|
|
// 创建axios实例
|
|
const service = axios.create({
|
|
const service = axios.create({
|
|
@@ -77,6 +87,13 @@ service.interceptors.request.use(
|
|
config.url = config.url + '?' + paramsStr
|
|
config.url = config.url + '?' + paramsStr
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 截取request url
|
|
|
|
+ const url = getSuffixAfterPrefix(config.url)
|
|
|
|
+ if (!url || !clickTrigger.length) return config
|
|
|
|
+ const _obj = clickTrigger.find(e => e.url === url)
|
|
|
|
+ if (_obj) {
|
|
|
|
+ rewardEventTrackClick(_obj.url)
|
|
|
|
+ }
|
|
return config
|
|
return config
|
|
},
|
|
},
|
|
(error) => {
|
|
(error) => {
|
|
@@ -89,6 +106,13 @@ service.interceptors.request.use(
|
|
// response 拦截器
|
|
// response 拦截器
|
|
service.interceptors.response.use(
|
|
service.interceptors.response.use(
|
|
async (response) => {
|
|
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}积分`)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|
|
let { data } = response
|
|
let { data } = response
|
|
const config = response.config
|
|
const config = response.config
|
|
@@ -172,9 +196,19 @@ service.interceptors.response.use(
|
|
Snackbar.error(msg)
|
|
Snackbar.error(msg)
|
|
}
|
|
}
|
|
return Promise.reject(msg)
|
|
return Promise.reject(msg)
|
|
- } else {
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 请求成功后触发获取积分
|
|
|
|
+ if (!requestCompletionTrigger.length) {
|
|
return data
|
|
return data
|
|
}
|
|
}
|
|
|
|
+ const _list = requestCompletionTrigger.filter(_e => {
|
|
|
|
+ return response.config.url.includes(_e.url)
|
|
|
|
+ })
|
|
|
|
+ if (_list.length) {
|
|
|
|
+ rewardEventTrackClick(_list.pop().url)
|
|
|
|
+ }
|
|
|
|
+ return data
|
|
},
|
|
},
|
|
(error) => {
|
|
(error) => {
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|