绿满眶商城微信小程序-uniapp
peng
昨天 d50a3ed44e2edab2a7a661c43491c3aa42c57794
用户行为分享基础埋点
23个文件已修改
1个文件已添加
878 ■■■■■ 已修改文件
api/userAction.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/coupon/couponCenter.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/coupon/myCoupon.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/payment/payOrder.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/payment/success.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/commodity-square/commoditySquare.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cusbar/cart/cartList.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cusbar/video/video.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/health/healthVideo.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/kitchen/KitchenVideo.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/mine/activity/detail.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/mine/activity/reportActivity.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/afterSales/afterSales.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/afterSales/afterSalesDetail.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/afterSales/afterSalesSelect.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/fillorder.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/myOrder.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/orderDetail.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/prize/PrizeDetail/PrizeDetail.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/goods.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/index/home.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/user/my.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/video/video-goods-detail-swiper.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/video/video-goods-detail.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/userAction.js
New file
@@ -0,0 +1,33 @@
/**
 * 活动相关API
 */
import { http, Method } from "@/utils/request.js";
import api from "@/config/api.js";
/**
 * 获取会话id
 *
 * @param params
 */
 export function getSessionId() {
  return http.request({
    url: "/lmk/action-record/sessionId",
    method: Method.GET,
    needToken: true
  });
}
/**
 * 插入用户行为
 *
 * @param params
 */
 export function userAction(data) {
  return http.request({
    url: "/lmk/action-record",
    method: Method.POST,
    needToken: true,
    data:data
  });
}
pages/cart/coupon/couponCenter.vue
@@ -54,6 +54,7 @@
    import {
        getAllCoupons
    } from "@/api/promotions.js";
    import { getSessionId, userAction } from "@/api/userAction.js";
    export default {
        data() {
            return {
@@ -65,10 +66,45 @@
                    pageSize: 10,
                },
                storeId: "", //店铺 id,
                couponData: ""
                couponData: "",
        sendOnShow:false,
                  pageSessionNo:"",
                  actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"COUPON_CENTER",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"LIST"
                    }
            };
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
          getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
          })
        },
        onLoad(option) {
            this.actionParam.pageParams = JSON.stringify(option)
            this.storeId = option.storeId;
            this.getCoupon();
        },
pages/cart/coupon/myCoupon.vue
@@ -126,6 +126,7 @@
import '@/components/uview-components/uview-ui';
import { getMemberCoupons } from "@/api/members.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  data() {
@@ -171,10 +172,44 @@
        },
      ],
      couponList: [], //优惠券列表
      pageSessionNo:"",
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"MY_COUPON",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"LIST"
        }
    };
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
    this.navList[this.tabCurrentIndex].params.pageNumber = 1;
    this.navList[this.tabCurrentIndex].dataList = [];
    this.getData();
pages/cart/payment/payOrder.vue
@@ -46,6 +46,7 @@
    import '@/components/uview-components/uview-ui'
    import * as API_Trade from "@/api/trade";
    import {payCallback} from '@/api/members'
    import { getSessionId, userAction } from "@/api/userAction.js";
    export default {
        data() {
            return {
@@ -71,12 +72,45 @@
                walletValue: 0.0,
                // 支付倒计时
                autoCancel: 0,
                pageSessionNo:"",
                actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"PAY_ORDER",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"DETAIL"
                    }
            
            };
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
        getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
        })
        },
        onLoad(val) {
            this.routerVal = val;
            this.actionParam.pageParams = JSON.stringify(val)
            //初始化参数
            // #ifdef APP-PLUS
            this.paymentType = "APP";
pages/cart/payment/success.vue
@@ -54,6 +54,7 @@
</template>
<script>
// import goodsRecommend from "@/pages/cart/m-goods-recommend/index.vue";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  data() {
    return {
@@ -64,6 +65,16 @@
      payPrice: 0,
      goodsList: [],
      activeColor: this.$mainColor,
      pageSessionNo:"",
      actionParam:{
              sessionId:'',
              actionType:"PAGE",
              joinType:"SELF",
              pageCode:"PAY_SUCCESS",
              pageParams:"{}",
              pageStatus:"JOIN",
              pageType:"DETAIL"
          }
    };
  },
  // components: {
@@ -83,7 +94,31 @@
      }
    },
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onShow() {
      getSessionId().then(res=>{
          this.pageSessionNo = res.data.data
          if(this.pageSessionNo){
          let    param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    this.paymentMethod = options.paymentMethod || "";
    this.from = options.from || "";
    this.payPrice = options.payPrice || 0;
pages/commodity-square/commoditySquare.vue
@@ -100,6 +100,7 @@
<script>
    import TopBar from "@/components/TopBar.vue";
    import { getSessionId, userAction } from "@/api/userAction.js";
    import {
        getCategoryList,
        getGoodsList,
@@ -155,6 +156,17 @@
                    order: 'asc',
                    sort: 'goodsSort'
                },
                  pageSessionNo:"",
          sendOnShow:false,
                  actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"SHOPPING_SQUARE",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"LIST"
                    }
            }
        },
        methods: {
@@ -413,8 +425,32 @@
                console.log(this.maxPages)
            }
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
          getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
          })
        },
        async onLoad(options) {
            this.actionParam.pageParams = JSON.stringify(options)
        async onLoad() {
            await this.getCartList();
            // 获取状态栏高度
            const systemInfo = uni.getSystemInfoSync();
pages/cusbar/cart/cartList.vue
@@ -188,6 +188,7 @@
import '@/components/uview-components/uview-ui';
import * as API_Trade from "@/api/trade";
import { debounce } from "@/utils/tools.js";
import { getSessionId, userAction } from "@/api/userAction.js";
// import uniNumberBox from '@/components/uni-number-box'
export default {
  data() {
@@ -220,7 +221,18 @@
      checkout: false, //全选按钮
      WEIXIN_num: "", //购物车兼容微信步进器
      marginBottom: 0 ,// 底部安全区域
      windowHeight: 0 // 可使用屏幕高度
      windowHeight: 0 ,// 可使用屏幕高度
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"CART_LIST",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"DETAIL"
        }
    };
  },
@@ -235,10 +247,35 @@
  onPullDownRefresh(){
    this.getCardData();
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(options) {
          this.actionParam.pageParams = JSON.stringify(options)
  },
  /**
   * 初始化信息
   */
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
    this.deleteShow ? (this.deleteShow = false) : true;
    this.getCardData();
        // if (this.$refs.swiperAction) {
pages/cusbar/video/video.vue
@@ -213,6 +213,7 @@
import { getRecommendTag3 } from "@/api/video-tag.js";
import { getFileKey } from "@/utils/file.js";
import { getVideoGoodsList } from "@/api/goods.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  components: {MyTag},
@@ -267,7 +268,17 @@
      screenWidth: 375,
      gap: 10, // 图片间距
      windowHeight: 0,
      marginBottom: 0
      marginBottom: 0,
      pageSessionNo:"",
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"PUBLISH_VIDEO",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"LIST"
        }
    };
  },
  computed: {
@@ -288,7 +299,22 @@
      return (this.screenWidth - (this.gap * 4) - 20) / 3
    }
  },
  onLoad() {
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    // 获取屏幕宽度
    const systemInfo = uni.getSystemInfoSync()
    this.screenWidth = systemInfo.windowWidth
@@ -299,6 +325,14 @@
    this.getVideoGoodsByEs()
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
      this.initCOS()
    // 初始化推荐标签
    this.getRecommendTags()
pages/health/healthVideo.vue
@@ -264,6 +264,7 @@
import { silentLogin } from "@/api/connect.js";
import { getUserInfo } from "@/api/members";
import storage from "@/utils/storage.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  components: {TopBar},
  computed: {
@@ -353,10 +354,28 @@
        similarlyNomore: false, // 是否还有更多相似视频
        similaryVideoIndex: 0, // 相似视频的播放位置
        similarlyLoading: false, // 相似视频加载
        marginBottom: 0 // 底部安全区域
        marginBottom: 0 ,// 底部安全区域
          pageSessionNo:"",
          actionParam:{
                sessionId:'',
                actionType:"PAGE",
                joinType:"SELF",
                pageCode:"HEALTH_VIDEO",
                pageParams:"{}",
                pageStatus:"JOIN",
                pageType:"DETAIL"
            }
    }
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
      // const token = storage.getAccessToken();
      // if (! token) {
         //  this.wxSilentLogin(() => {
@@ -371,8 +390,18 @@
          this.totalHidenTime += duration
      }
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
      this.startHidenTime = Date.now()
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(option) {
      this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
@@ -392,12 +421,16 @@
        queryParam.shareType = shareType
        queryParam.source = source
        console.log('解析参数:', { shareType, videoId,source });
        this.actionParam.pageParams = JSON.stringify(params)
        this.actionParam.joinType = 'SHARE'
      }
      const token = storage.getAccessToken();
      if (! token) {
          this.wxSilentLogin(() => {
              // 判断是不是点击分享链接进来的
              if (option.userId && option.videoId) {
                  this.actionParam.pageParams = JSON.stringify(option)
                  this.actionParam.joinType = 'SCAN'
                    queryParam.videoId = option.videoId
                  // 保存分享点击记录
                  saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
pages/kitchen/KitchenVideo.vue
@@ -285,7 +285,7 @@
} from "@/api/collect.js";
import { saveShare, saveShareClickRecord } from "@/api/share.js";
import storage from "@/utils/storage.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  computed: {
    hasPlayTime() {
@@ -387,10 +387,28 @@
      similarlyNomore: false, // 是否还有更多相似视频
      similaryVideoIndex: 0, // 相似视频的播放位置
      similarlyLoading: false, // 相似视频加载
      marginBottom: 0 // 底部安全区域
      marginBottom: 0 ,// 底部安全区域
      pageSessionNo:"",
      actionParam:{
        sessionId:'',
        actionType:"PAGE",
        joinType:"SELF",
        pageCode:"KITCHEN_VIDEO",
        pageParams:"{}",
        pageStatus:"JOIN",
        pageType:"LIST"
        }
    }
  },
  onShow() {
      getSessionId().then(res=>{
              this.pageSessionNo = res.data.data
              if(this.pageSessionNo){
              let    param = this.actionParam;
                  param.sessionId = this.pageSessionNo
                  userAction(param)
              }
      })
    // this.showDrawer('showLeft')
    this.loadVideos()
    // 如果视频按下暂停后切换页面再回到页面时,只算暂停时间(因为暂停时间和离开页面时间是重复的,只算一个)
@@ -399,8 +417,18 @@
      this.totalHidenTime += duration
    }
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(option) {
        this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom;
@@ -429,12 +457,16 @@
            queryParam.shareType = shareType
            queryParam.source = source
            console.log('解析参数:', { shareType, videoId,source });
            this.actionParam.pageParams = JSON.stringify(params)
            this.actionParam.joinType = 'SHARE'
        }
        const token = storage.getAccessToken();
        if(!token){
            this.wxSilentLogin(() => {
                // 判断是不是点击分享链接进来的
                if (option.userId && option.videoId) {
                    this.actionParam.pageParams = JSON.stringify(option)
                    this.actionParam.joinType = 'SCAN'
                    queryParam.videoId = option.videoId
                    // 保存分享点击记录
                    saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
pages/mine/activity/detail.vue
@@ -75,6 +75,7 @@
        getActivityDetail,
        activityReport
    } from '@/api/activity.js';
    import { getSessionId, userAction } from "@/api/userAction.js";
    export default {
        data() {
            return {
@@ -103,9 +104,44 @@
                    collectType: '',
                    refId: '',
                },
                  pageSessionNo:"",
          sendOnShow:false,
                  actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"ACTIVITY_DETAIL",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"DETAIL"
                    }
            };
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
          getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
          })
        },
        onLoad(options) {
            this.actionParam.pageParams = JSON.stringify(options)
            // 接收 URL 参数
            if (options.id) {
                this.detailId = options.id;
pages/mine/activity/reportActivity.vue
@@ -55,6 +55,7 @@
    import TopBar from "@/components/TopBar.vue";
    import '@/components/uview-components/uview-ui';
    import {getActivityReportList} from '@/api/activity.js';
    import { getSessionId, userAction } from "@/api/userAction.js";
    export default {
        components: {TopBar},
        data() {
@@ -75,10 +76,44 @@
                },
                loading: false, // 是否正在加载
                noMore: false, // 是否没有更多数据
                total: 0 // 总数据量
                total: 0 ,// 总数据量
                  pageSessionNo:"",
                  actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"ACTIVITY_LIST",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"LIST"
                    }
            };
        },
        onLoad() {
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
          getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
          })
        },
        onLoad(options) {
            this.actionParam.pageParams = JSON.stringify(options)
            this.getActivityList();
        },
        methods: {
pages/order/afterSales/afterSales.vue
@@ -204,6 +204,7 @@
import { getAfterSaleList, cancelAfterSale } from "@/api/after-sale.js";
import { getOrderList } from "@/api/order.js";
import storage from "@/utils/storage";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
@@ -240,9 +241,44 @@
      },
      status: "loadmore",
      keywords: "", // 搜索订单sn
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"AFTER_SALE",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"LIST"
        }
    };
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    this.orderList = [];
    this.params.pageNumber = 1;
    if (options.orderSn) this.params.keywords = options.orderSn;
pages/order/afterSales/afterSalesDetail.vue
@@ -108,6 +108,7 @@
import { upload } from "@/api/common.js";
import { checkBankno } from "@/utils/Foundation";
import storage from "@/utils/storage.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  component: {
    city,
@@ -169,13 +170,47 @@
        refundWay: "",
        serviceType: "", //申请类型
      },
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
                  sessionId:'',
                  actionType:"PAGE",
                  joinType:"SELF",
                  pageCode:"REFUND_ORDER",
                  pageParams:"{}",
                  pageStatus:"JOIN",
                  pageType:"DETAIL"
              }
    };
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
    onShow() {
        getSessionId().then(res=>{
                this.pageSessionNo = res.data.data
                if(this.pageSessionNo){
                let    param = this.actionParam;
                    param.sessionId = this.pageSessionNo
                    userAction(param)
                }
        })
    },
  /**
   * 判断当前内容并生成数据
   */
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    let navTitle = "申请售后";
    this.form.serviceType = "RETURN_GOODS";
    if (options.value == 1) {
pages/order/afterSales/afterSalesSelect.vue
@@ -58,15 +58,51 @@
import '@/components/uview-components/uview-ui'
import { getAfterSaleInfo } from "@/api/after-sale";
import storage from "@/utils/storage";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  data() {
    return {
      sn: "",
      sku: {}, //sku
      applyInfo:""
      applyInfo:"",
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"APPLY_SALE",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"LIST"
        }
    };
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    this.sn = options.sn;
    this.sku = storage.getAfterSaleData();
    // 查看当前商品是否支持退款退货
pages/order/fillorder.vue
@@ -400,9 +400,11 @@
import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
import invoices from "@/pages/order/invoice/setInvoice";
import { mapState } from "vuex";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  onLoad: function (val) {
    this.routerVal = val;
    this.actionParam.pageParams = JSON.stringify(val)
  },
  components: {
    invoices,
@@ -454,6 +456,17 @@
      storeAddress: "",
      originOrderData:"", // 原始订单数据
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
              sessionId:'',
              actionType:"PAGE",
              joinType:"SELF",
              pageCode:"FILL_ORDER",
              pageParams:"{}",
              pageStatus:"JOIN",
              pageType:"DETAIL"
          }
    };
  },
  watch: {
@@ -516,8 +529,28 @@
      return true; //阻止默认返回行为
    }
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  async onShow() {
      getSessionId().then(res=>{
          this.pageSessionNo = res.data.data
          if(this.pageSessionNo){
          let    param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
    // 判断是否存在写过备注信息的商品
    if (this.remark && this.remark.length > 0) {
      this.remarkFlag = true;
pages/order/myOrder.vue
@@ -241,6 +241,7 @@
import { getClearReason } from "@/api/after-sale.js";
import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
import {buyBack} from "@/api/trade.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  data() {
@@ -327,6 +328,16 @@
      reason: "", //取消原因
      cancelList: "", //取消列表
      rogShow: false, //显示是否收货
      pageSessionNo:"",
      actionParam:{
              sessionId:'',
              actionType:"PAGE",
              joinType:"SELF",
              pageCode:"ORDER_LIST",
              pageParams:"{}",
              pageStatus:"JOIN",
              pageType:"DETAIL"
          }
    };
  },
@@ -349,7 +360,28 @@
    }
    // this.loadData(this.status);
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onShow() {
      getSessionId().then(res=>{
          this.pageSessionNo = res.data.data
          if(this.pageSessionNo){
          let    param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
    if(this.$options.filters.tipsToLogin()){
      if (!this.tabCurrentIndex) {
        this.initData(0);
@@ -359,6 +391,7 @@
  },
  onLoad(options) {
      this.actionParam.pageParams = JSON.stringify(options)
    /**
     * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
     * 替换onLoad下代码即可
pages/order/orderDetail.vue
@@ -270,7 +270,7 @@
import shares from "@/pages/order/m-share/index.vue"; //分享
import { getClearReason } from "@/api/after-sale.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  components: {
    shares,
@@ -325,9 +325,43 @@
      orderPackage:"",
      //商品信息再来一单使用
      skuList:[],
      pageSessionNo:"",
      actionParam:{
              sessionId:'',
              actionType:"PAGE",
              joinType:"SELF",
              pageCode:"ORDER_DETAIL",
              pageParams:"{}",
              pageStatus:"JOIN",
              pageType:"DETAIL"
          }
    };
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onShow() {
      getSessionId().then(res=>{
          this.pageSessionNo = res.data.data
          if(this.pageSessionNo){
          let    param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
  },
  onLoad(options) {
    this.actionParam.pageParams = JSON.stringify(options)
    this.loadData(options.sn);
    this.sn = options.sn;
  },
pages/prize/PrizeDetail/PrizeDetail.vue
@@ -148,6 +148,8 @@
</template>
<script>
    import bgConfig from '@/pages/prize/PrizeDetail/prize-bgConfig.js'
    import { getSessionId, userAction } from "@/api/userAction.js";
    import {
        prizeInfo,
        prizeNum,
@@ -212,7 +214,17 @@
                shareTimelineAttempt: false,
                activityCover: '',
                activityName: '',
                couponId: ''
                couponId: '',
                pageSessionNo:"",
                actionParam:{
                    sessionId:'',
                    actionType:"PAGE",
                    joinType:"SELF",
                    pageCode:"PRIZE_DETAIL",
                    pageParams:"{}",
                    pageStatus:"JOIN",
                    pageType:"DETAIL"
                }
            };
        },
        computed: {
@@ -221,7 +233,32 @@
                return [...this.originalWinners]
            }
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
          getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
          })
        },
        async onLoad(option) {
            this.actionParam.pageParams = JSON.stringify(option)
            const pages = getCurrentPages()
            console.log('================pages ', pages)
            this.activityId = option.id
pages/product/goods.vue
@@ -305,6 +305,7 @@
import popups from "@/pages/product/popups/popups.vue"; //气泡框
import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index.vue"; //下架框
import setup from "./product/popup/popup";
import { getSessionId, userAction } from "@/api/userAction.js";
    import {
        getSTSToken
    } from '@/api/common.js'
@@ -444,6 +445,17 @@
      IMLink: "", // IM地址
      wholesaleList: [],
      takeDownFromSale: false, // 下架销售状态
      pageSessionNo:"",
    sendOnShow:false,
      actionParam:{
              sessionId:'',
              actionType:"PAGE",
              joinType:"SELF",
              pageCode:"GOODS_DETAILS",
              pageParams:"{}",
              pageStatus:"JOIN",
              pageType:"DETAIL"
          }
    };
  },
@@ -512,8 +524,11 @@
          queryParam.id = id;
          queryParam.goodsId = gooodsId;
          this.routerVal = queryParam;
          this.actionParam.pageParams = JSON.stringify(params)
          this.actionParam.joinType = 'SCAN'
      }else{
          this.routerVal = options;
          this.actionParam.pageParams = JSON.stringify(options)
      }
      console.log('打印信息')
       console.log(options)
@@ -527,7 +542,28 @@
    });
    // #endif
  },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  async onShow () {
      getSessionId().then(res=>{
          this.pageSessionNo = res.data.data
          if(this.pageSessionNo){
          let    param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
    this.goodsDetail = {};
    //如果有参数ids说明事分销短连接,需要获取参数
    if (this.routerVal.scene) {
pages/tabbar/index/home.vue
@@ -266,6 +266,7 @@
import { setPopupRedisTime, getPopupAcitivty } from '@/api/popup.js'
import { changeCollect } from "@/api/collect.js";
import { saveShare, saveShareClickRecord } from "@/api/share.js";
import { getSessionId, userAction } from "@/api/userAction.js";
import { silentLogin } from "@/api/connect.js";
import { getUserInfo } from "@/api/members";
import storage from "@/utils/storage.js";
@@ -368,10 +369,28 @@
            similarlyNomore: false, // 是否还有更多相似视频
            similaryVideoIndex: 0, // 相似视频的播放位置
            similarlyLoading: false, // 相似视频加载
            marginBottom: 0 // 底部安全区域
            marginBottom: 0 ,// 底部安全区域
            pageSessionNo:"",
            actionParam:{
                    sessionId:'',
                    actionType:"PAGE",
                    joinType:"SELF",
                    pageCode:"RECOMMEND_VIDEO",
                    pageParams:"{}",
                    pageStatus:"JOIN",
                    pageType:"LIST"
                }
        }
    },
    onShow() {
        getSessionId().then(res=>{
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
                userAction(param)
            }
        })
        this.openActivityPopup()
@@ -399,9 +418,19 @@
            this.totalHidenTime += duration
        }
    },
    onHide() {
        this.startHidenTime = Date.now()
    },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
    onLoad(option) {
        console.log('-----------分享出的数据---------->', option)
@@ -419,6 +448,9 @@
            const shareType = params.shareType;
            const videoId = params.videoId;
            queryParam.videoId = videoId
            this.actionParam.joinType = "SCAN";
            this.actionParam.pageParams = JSON.stringify(params);
            console.log('解析参数:', { shareType, videoId });
        }
        const token = storage.getAccessToken();
@@ -426,6 +458,8 @@
            this.wxSilentLogin(() => {
                // 判断是不是点击分享链接进来的
                if (option.userId && option.videoId) {
                    this.actionParam.joinType = "SHARE";
                    this.actionParam.pageParams = JSON.stringify(option);
                    queryParam.videoId = option.videoId
                    // 保存分享点击记录
                    saveShareClickRecord({ refId: option.videoId, shareUserId: option.userId })
pages/tabbar/user/my.vue
@@ -144,6 +144,7 @@
import { getUserWallet } from "@/api/members";
import configs from '@/config/config'
import storage from '@/utils/storage.js'
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  components: {
    tool
@@ -160,12 +161,44 @@
      couponNum: "",
      footNum: "",
      walletNum: "",
      pageSessionNo:"",
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"TBA_BAR_MY",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"DETAIL"
        }
    };
  },
  onLoad() {
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(options) {
      this.actionParam.pageParams = JSON.stringify(options)
      this.initCOS()
  },
  onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
    this.userInfo = this.$options.filters.isLogin() || {};
    if (this.$options.filters.isLogin("auth")) {
      this.getUserOrderNum();
pages/video/video-goods-detail-swiper.vue
@@ -293,6 +293,7 @@
import popups from "@/pages/product/popups/popups.vue"; //气泡框
import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index.vue"; //下架框
import setup from "@/pages/product/product/popup/popup.js";
import { getSessionId, userAction } from "@/api/userAction.js";
import { getGoodsDetail } from "@/api/video.js"
import {
@@ -439,6 +440,16 @@
            touchStartX: 0,
            touchEndX: 0,
            minSwipeDistance: 100, // 最小滑动距离,用于判断是否为有效滑动
              pageSessionNo:"",
              actionParam:{
                    sessionId:'',
                    actionType:"PAGE",
                    joinType:"SELF",
                    pageCode:"SWIPER_GOODS",
                    pageParams:"{}",
                    pageStatus:"JOIN",
                    pageType:"DETAIL"
                }
        };
    },
@@ -481,6 +492,8 @@
        this.productRefHeight = windowHeight - bottomHeight + "px";
    },
    async onLoad(options) {
        this.actionParam.pageParams = JSON.stringify(options)
        this.videoId = options.videoId;
        this.getGoodsList();
@@ -492,7 +505,28 @@
        });
        // #endif
    },
  onUnload() {
    let    param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
    async onShow() {
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let    param = this.actionParam;
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
        // this.goodsDetail = {};
        // debugger
        // //如果有参数ids说明事分销短连接,需要获取参数
pages/video/video-goods-detail.vue
@@ -31,6 +31,7 @@
    import {getGoodsDetail} from "@/api/video.js"
    import { buyBack } from "@/api/trade.js";
    import '@/components/uview-components/uview-ui';
    import { getSessionId, userAction } from "@/api/userAction.js";
    export default {
        computed: {
            totalMoney() {
@@ -45,11 +46,45 @@
        data() {
            return {
                videoId: '',
                goodsList: []
                goodsList: [],
                pageSessionNo:"",
                actionParam:{
                        sessionId:'',
                        actionType:"PAGE",
                        joinType:"SELF",
                        pageCode:"RECOMMEND_VIDEO_GOODS",
                        pageParams:"{}",
                        pageStatus:"JOIN",
                        pageType:"DETAIL"
                    }
            }
        },
    onUnload() {
      let    param = this.actionParam;
      if (this.sendOnShow)return
      param.pageStatus = "LEAVE"
      userAction(param)
    },
    onHide() {
      this.startHidenTime = Date.now()
      let    param = this.actionParam;
      this.sendOnShow = true;
      param.pageStatus = "LEAVE"
      userAction(param)
    },
        onShow() {
            getSessionId().then(res=>{
                this.pageSessionNo = res.data.data
                if(this.pageSessionNo){
                let    param = this.actionParam;
                    param.sessionId = this.pageSessionNo
                    userAction(param)
                }
            })
        },
        onLoad(option) {
            this.videoId = option.videoId;
            this.actionParam.pageParams = JSON.stringify(option)
            this.getGoodsList();
        },
        methods: {