绿满眶商城微信小程序-uniapp
zxl
13 小时以前 eabb18cf60273b25471509858b287474cea9b370
Merge remote-tracking branch 'origin/user_action' into send_coupon
7个文件已修改
156 ■■■■ 已修改文件
api/prize.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/payment/payOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/payment/success.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/myOrder.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/orderDetail.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/index/home.vue 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/user/my.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/prize.js
@@ -57,4 +57,17 @@
        method: Method.POST,
        needToken: true
    });
}
/**
 * 增加抽奖机会
 *
 * @param params
 */
export function addPrizeNum(data) {
    return http.request({
        url: `/lmk/prize/addPrizeNum`,
        method: Method.POST,
        needToken: true,
        data:data
    });
}
pages/cart/payment/payOrder.vue
@@ -160,7 +160,7 @@
                    paymentMethod +
                    "&payPrice=" +
                    this.cashierParams.price+
                    "&orderType="+this.orderType
                    "&orderType="+this.orderType +"&orderSn="+this.cashierParams.orderSns
                });
            },
            
pages/cart/payment/success.vue
@@ -55,6 +55,7 @@
<script>
// import goodsRecommend from "@/pages/cart/m-goods-recommend/index.vue";
import { getSessionId, userAction } from "@/api/userAction.js";
import {addPrizeNum} from '@/api/prize.js'
export default {
  data() {
    return {
@@ -123,7 +124,15 @@
    this.from = options.from || "";
    this.payPrice = options.payPrice || 0;
    this.orderType = options.orderType;
    let param = {
        addType:"USER_BUY_ORDER_NUM",
        extend:"",
    }
    let extend = {orderSn:options.orderSn}
    param.extend = JSON.stringify(extend)
    addPrizeNum(param);
    param.addType = "USER_BUY_SUM_PRICE"
    addPrizeNum(param);
  },
  methods: {
    checkOrder() {
pages/order/myOrder.vue
@@ -177,7 +177,7 @@
              </view>
                <view style="display: flex;justify-content: space-around;">
                    <view class="" @click="callPhone">
                         客服热线: 028-84472936
                         客服热线: 19980834650
                    </view>
                    <view class="" @click="copyToClipboard">
                         客服微信: meiyikuang
@@ -389,7 +389,7 @@
              param.sessionId = this.pageSessionNo
              userAction(param)
          }
      })
      })
    if(this.$options.filters.tipsToLogin()){
      if (!this.tabCurrentIndex) {
        this.initData(0);
@@ -444,7 +444,7 @@
              success(e) {
                  if(e.confirm){
                      uni.makePhoneCall({
                          phoneNumber:'028-84472936'
                          phoneNumber:'19980834650'
                      })
                  }
              }
@@ -714,14 +714,14 @@
     * 查看物流
     */
    navigateToLogistics(order) {
      uni.navigateTo({
        url:
          "/pages/mine/msgTips/packageMsg/logisticsDetail?order_sn=" + order.sn,
      });
      // uni.navigateTo({
      //   url:
      //     "/pages/mine/msgTips/packageMsg/logisticsDetail?order_sn=" + order.sn,
      //       `/pages/order/deliverDetail?order_sn=${order.sn}`,
      // });
      uni.navigateTo({
        url:
          `/pages/order/deliverDetail?order_sn=${order.sn}`,
      });
    },
  },
};
pages/order/orderDetail.vue
@@ -10,7 +10,7 @@
    </div>
    <!-- 物流信息 -->
    <view class="info-view logistics-view">
      <view class="logistics-List" v-if="logisticsList && logisticsList.traces && logisticsList.traces.length != 0 ">
      <view class="logistics-List" v-if="logisticsList && logisticsList.traces && logisticsList.traces.length != 0 && !(orderPackage && orderPackage.length)">
        <view class="logistics-List-title">
          {{ logisticsList.traces[logisticsList.traces.length - 1].AcceptStation }}
        </view>
@@ -408,9 +408,9 @@
    },
    // 获取物流信息
    loadLogistics(sn) {
      // getExpress(sn).then((res) => {
      //   this.logisticsList = res.data.result;
      // });
      getExpress(sn).then((res) => {
        this.logisticsList = res.data.result;
      });
    },
    // 分享当前拼团信息
pages/tabbar/index/home.vue
@@ -265,14 +265,15 @@
import { mapState, mapMutations } from 'vuex'
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 { saveShare, saveShareClickRecord} from "@/api/share.js";
import { getSessionId, userAction,userShare  } from "@/api/userAction.js";
import { silentLogin } from "@/api/connect.js";
import { getUserInfo } from "@/api/members";
import storage from "@/utils/storage.js";
import TopBar from "@/components/TopBar.vue";
import { nextTick } from "vue";
import { getVideoCover } from "@/api/common.js"
import {addPrizeNum} from '@/api/prize.js'
export default {
    components: { TopBar, ActivityPopup },
    computed: {
@@ -371,6 +372,7 @@
            similarlyLoading: false, // 相似视频加载
            marginBottom: 0 ,// 底部安全区域
            pageSessionNo:"",
            shareId:"",
            actionParam:{
                    sessionId:'',
                    actionType:"PAGE",
@@ -379,15 +381,22 @@
                    pageParams:"{}",
                    pageStatus:"JOIN",
                    pageType:"LIST"
                }
                },
                shareParam:{
                    pageCode:"RECOMMEND_VIDEO",
                    shareOption:"{}",
                    pageType:"LIST"
                },
        }
    },
    onShow() {
        getSessionId().then(res=>{
            console.log('res',JSON.stringify(res))
            this.pageSessionNo = res.data.data
            if(this.pageSessionNo){
            let    param = this.actionParam;
                param.sessionId = this.pageSessionNo
            let    param = Object.assign({},this.actionParam);
            this.actionParam.sessionId = this.pageSessionNo
            param.sessionId = this.pageSessionNo
                userAction(param)
            }
        })
@@ -419,14 +428,14 @@
        }
    },
  onUnload() {
    let    param = this.actionParam;
    let    param = Object.assign({},this.actionParam);
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param = this.actionParam;
    let    param = Object.assign({},this.actionParam);
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
@@ -503,13 +512,45 @@
        //     }
        // })
        console.log(videoInfo)
        return {
            title: videoInfo.title,
            path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
            imageUrl: videoInfo.coverUrl
        }
        // 保存分享记录
        // 返回一个Promise
        return new Promise((resolve) => {
                    this.shareId = '';
                    this.shareParam.shareOption = JSON.stringify({
                        id:this.activityId
                    })
                    userShare(this.shareParam).then(res => {
                      this.shareId = res.data.data;
                      let param = {
                          addType:"SHARE_GOODS_VIDEO",
                          extend:"",
                      }
                      let extend = {shareId:this.shareId}
                      param.extend = JSON.stringify(extend)
                      addPrizeNum(param);
                      // 当获取到shareId后,再resolve分享配置
                      resolve({
                        title: videoInfo.title,
                        path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}&shareId=${this.shareId}`,
                        imageUrl: videoInfo.coverUrl,
                        success(e) {
                          console.log("分享成功", e);
                        },
                        fail(e) {
                          console.log('分享失败', e);
                        }
                      });
                    }).catch(err => {
                      // 处理错误情况,例如使用默认参数
                      console.error('获取分享ID失败', err);
                      resolve({
                            title: videoInfo.title,
                            path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
                            imageUrl: videoInfo.coverUrl
                      });
                    });
        });
    },
    methods: {
        async openActivityPopup() {
pages/tabbar/user/my.vue
@@ -205,17 +205,6 @@
      } catch (e) {
        console.error('存储失败:', e);
      }
    }else{
      shareStoreId = uni.getStorageSync('shareStoreId');
      shareStoreId = uni.getStorageSync('shareTime');
      console.log('从缓存读取参数:', { shareStoreId, shareTime });
      // this.bindMemberAndStore(shareStoreId, shareTime)
      if (shareStoreId && shareTime) {
        console.log('检测到有效参数,调用后端接口');
        this.bindMemberAndStore(shareStoreId, shareTime);
      } else {
        console.log('无有效参数,执行正常逻辑');
      }
    }
    this.initCOS()
    },
@@ -246,6 +235,7 @@
            userAction(param)
        }
      })
    this.userInfo = this.$options.filters.isLogin() || {};
    if (this.$options.filters.isLogin("auth")) {
      this.getUserOrderNum();
@@ -254,6 +244,16 @@
      this.couponNum = 0;
      this.footNum = 0;
    }
    let shareStoreId = uni.getStorageSync('shareStoreId');
    let shareTime = uni.getStorageSync('shareTime');
    console.log('从缓存读取参数:', { shareStoreId, shareTime });
    if (shareStoreId && shareTime) {
      console.log('检测到有效参数,调用后端接口');
      this.bindMemberAndStore(shareStoreId, shareTime);
    } else {
      console.log('无有效参数,执行正常逻辑');
    }
  },
  onPullDownRefresh() {
    this.getUserOrderNum();
@@ -270,6 +270,23 @@
  mounted() { },
  methods: {
      // 解析URL参数
      parseUrlParams(url) {
          const params = {};
          // 处理可能存在的hash(如果有的话)
          const cleanUrl = url.split('#')[0];
          const queryStr = cleanUrl.split('?')[1] || '';
          queryStr.split('&').forEach(pair => {
              const [key, value] = pair.split('=');
              if (key) {
                  // 如果值存在,则解码,否则设为空字符串
                  params[key] = value ? decodeURIComponent(value) : '';
              }
          });
          return params;
      },
    async bindMemberAndStore(shareStoreId, shareTime){
      let form ={
        shareStoreId: shareStoreId,