// 统计Ross 用户 import Vue from 'vue' import { includeList } from './router.config.js' // 配置信息 // 参数 const defaultParams = { accessClient: 1, // 来源 0 网站 1 小程序 pagePath: '', //页面路径 accessDuration: 0, //浏览时长初始值为 0 pageType: '', //页面类型 pageLabel: '', //页面标签 userId: 0, //用户Id productId: 0, //商品Id shopId: 0, //供应商Id behaviorType: 1 // 统计类型 } const cmSrsMixins = { data() { return { handleProsId: '', handleShopId: '', handleProsKey: '', handleShopKey: '', showRossHtml: false, isDisabled: true, advertisement:{},// 弹窗广告信息 popUpParams: { shopId: '', productId: '', infoId: '', keyword: '' }, } }, methods: { checkedIsRossSet() { if (this.handleProsId || this.handleShopId || this.handleProsKey || this.handleShopKey) { this.popUpParams.shopId = this.handleShopId this.popUpParams.productId = this.handleProsId this.popUpParams.keyword = this.handleProsKey ? this.handleProsKey : '' || this.handleShopKey ? this.handleShopKey : '' uni.setStorageSync('behaviorType', 2) this.setingSysParams() if (!this.hasLogin) { this.userInformationIsClick() } } else { this.setingSysParams() } }, // 接口参数设置 async setingSysParams() { const sysParams = Object.assign({}, defaultParams) const userSync = uni.getStorageSync('userInfo') const route = this.getPath() const pageData = this.isIncludeType(route.path) // 协销不记录 if (userSync.userIdentity === 1) return // 参数设置 sysParams.userId = userSync.userId ? userSync.userId : 0 sysParams.openId = userSync.openId ? userSync.openId : '' sysParams.pagePath = route.fullPath sysParams.pageType = pageData ? pageData.pageType : '' sysParams.behaviorType = uni.getStorageSync('behaviorType') ? uni.getStorageSync('behaviorType') : 1 // 根据path获取不同的参数 if (route.path === '/pages/supplier/user/my-shop') { sysParams.shopId = route.query.shopId ? route.query.shopId : 0 } if (route.path === '/pages/goods/product') { sysParams.productId = route.query.id ? route.query.id : 0 sysParams.pageLabel = uni.getStorageSync('productLabel') } else { sysParams.pageLabel = uni.getStorageSync('pageLabel') ? uni.getStorageSync('pageLabel') : pageData.pageLabel } console.log('记录路径:', sysParams.pagePath, '标签:', sysParams.pageLabel) // 统计接口调用 this.userRecordStatistics(sysParams) console.log('---用户行为轨迹记录成功---') }, async userRecordStatistics(params) { // 上送 try{ await this.UserService.userRecordStatistics(params) console.log('---用户行为轨迹记录成功---') uni.removeStorageSync('pageLabel') uni.removeStorageSync('behaviorType') }catch(e){ console.log('---用户行为轨迹记录失败---') } }, async userInformationIsClick() { // 查看用户是否有过弹框游客当天是否有过弹框 try { const res = await this.UserService.userInformationIsClick(this.popUpParams) if (res.data) { this.getUserPopUpInfo() setTimeout(() => { this.showRossHtml = true }, 5000) } } catch (error) { console.log('查询失败~') } }, async getUserPopUpInfo() { // 获取供应商广告弹窗信息 try { const res = await this.UserService.getUserPopUpInfo(this.popUpParams) const data = res.data this.advertisement = data this.consultParams.shopProductId = data.shopProductId } catch (error) { console.log('获取失败~') } }, isIncludeType(url) { // 校验返回页面类型 if (!url) return false return includeList.find(item => url === item.url) }, getPath() { // 获取路径 const pages = getCurrentPages() const len = pages.length const page = pages[len - 1] const route = { path: '/' + page.route, fullPath: page.$page.fullPath, query: page.options, meta: {} } return route } } } export default cmSrsMixins