wkw 1 week ago
parent
commit
6f48a1a8ae
1 changed files with 75 additions and 54 deletions
  1. 75 54
      src/pages/trade/index.vue

+ 75 - 54
src/pages/trade/index.vue

@@ -12,7 +12,7 @@
         </view>
       </view>
       <view class="home-code">
-        <view class="trade-border-box"> STT{{ (Number(gameList[2]?.prev_bonus) || 0).toFixed(6) }}</view>
+        <view class="trade-border-box"> STT {{ (Number(gameList[2]?.prev_bonus) || 0).toFixed(6) }}</view>
         <view class="trade-border-num"
           >≈¥{{ ((Number(gameList[2]?.prev_bonus) || 0) * 7.2).toFixed(2) }}</view
         >
@@ -20,7 +20,7 @@
       <view class="trade-img-box">
         <image src="@/static/image/trade/money-box.png" mode="aspectFit" />
       </view>
-      <view class="card-item" style="width: 100%;">
+      <view class="card-item">
         <view class="trade-process" :class="bgClass">
           <view
             :class="
@@ -42,7 +42,7 @@
         </view>
         <view class="trade-time-box" v-if="gameDetail">
           <view class="time-title">
-            距离 <text>{{ gameDetail.title }}赛程 竞赛结束 </text>还有
+            距离 <text>{{ gameDetail.title }}赛程 竞赛{{gameCheck == '2'?'开始':'结束'}} </text>还有
           </view>
           <up-count-down
             :time="
@@ -89,45 +89,48 @@
         </view>
       </view>
       <view class="game-play-name">赛程名次</view>
-      <view class="game-list">
-        <view class="game-list-item" v-for="(item, index) in gameRankList" :key="index">
-          <view class="game-item-left">
-            <view class="game-order-index">
-              <image
-                src="@/static/image/trade/one.png"
-                v-if="index == 0"
-                mode="scaleToFill"
-              />
-              <image
-                src="@/static/image/trade/two.png"
-                v-if="index == 1"
-                mode="scaleToFill"
-              />
-              <image
-                src="@/static/image/trade/three.png"
-                v-if="index == 2"
-                mode="scaleToFill"
-              />
-              <text v-if="index != 0 && index != 1 && index != 2">{{
-                index + 1
-              }}</text>
-            </view>
-            <view class="game-order-num">
-              <view class="game-num-txt">
-                <view>{{`${item.address.slice(0, 4)}...${item.address.slice(-4)}` }}</view>
-                <view class="game-num-num">{{ gameDetail?.title }}</view>
-              </view>
-              <view class="game-num-txt" v-if="item.is_self && item.is_prize && gameCheck == 0">
-                <view class="game-item-btn" @click="awardFun(item)">{{item.is_receive?'已领取':'领取'}}</view>
+      <scroll-view style="height: 600px;" :scroll-y="true" refresher-enabled="true" refresher-background="#rgba(0,0,0,0)"
+				:refresher-triggered="triggered" @refresherrefresh="onRefresh">
+        <view class="game-list">
+          <view class="game-list-item" v-for="(item, index) in gameRankList" :key="index">
+            <view class="game-item-left">
+              <view class="game-order-index">
+                <image
+                  src="@/static/image/trade/one.png"
+                  v-if="index == 0"
+                  mode="scaleToFill"
+                />
+                <image
+                  src="@/static/image/trade/two.png"
+                  v-if="index == 1"
+                  mode="scaleToFill"
+                />
+                <image
+                  src="@/static/image/trade/three.png"
+                  v-if="index == 2"
+                  mode="scaleToFill"
+                />
+                <text v-if="index != 0 && index != 1 && index != 2">{{
+                  index + 1
+                }}</text>
               </view>
-              <view class="game-num-txt" v-else>
-                <view>排名赢局</view>
-                <view class="game-num-num">{{ item.score }}</view>
+              <view class="game-order-num">
+                <view class="game-num-txt">
+                  <view>{{`${item.address.slice(0, 4)}...${item.address.slice(-4)}` }}</view>
+                  <view class="game-num-num">{{ gameDetail?.title }}</view>
+                </view>
+                <view class="game-num-txt" v-if="item.is_self && item.is_prize && gameCheck == 0">
+                  <view class="game-item-btn" @click="awardFun(item)">{{item.is_receive?'已领取':'领取'}}</view>
+                </view>
+                <view class="game-num-txt" v-else>
+                  <view>排名赢局</view>
+                  <view class="game-num-num">{{ item.score }}</view>
+                </view>
               </view>
             </view>
           </view>
         </view>
-      </view>
+      </scroll-view>
     </view>
     <view class="fix-box">
       <view class="fix-item" @click="openGamePopup(1)">赛程规则</view>
@@ -283,6 +286,7 @@ const STTbalance = ref(0);
 const entry_fee = ref(0);
 const wgt_price = ref(0);
 const privateKey = ref('');
+const triggered = ref(false);
 // const privateKey = "0x4553077da5d773773dad0511c6e5d33142ae2c1bd05a3a8a4a7becbc0d23d9b5";//H5
 
 const bgClass = computed(() => {
@@ -307,16 +311,17 @@ const getGameMatchList = async (type = true) => {
     gameList.value = res.data;
     if(type){
       gameDetail.value = res.data[1];
-      getGameRank();
+      getGameRank(res.data[1].id);
     }else{
       gameDetail.value = res.data[2];
     }
   }
 };
 // 查询游戏赛事排名
-const getGameRank = async () => {
+const getGameRank = async (id) => {
   let params = {
     dapp_id: 15,
+    match_id:id,
     address:walletAddress.value
   };
   let res = await matchRank(params);
@@ -328,7 +333,7 @@ const getGameRank = async () => {
 const selectGame = (value, item) => {
   gameCheck.value = value;
   gameDetail.value = item;
-  getGameRank();
+  getGameRank(item.id);
 };
 // 游戏规则弹出框
 const showGameMsg = ref(false);
@@ -434,7 +439,7 @@ const getClaimPrize = async () =>{
       icon: 'none',
       duration: 1000
     })
-    getGameRank()
+    getGameRank(gameDetail.value?.id)
   }
 }
 
@@ -464,20 +469,35 @@ const getsendSingleReward = async (prize_money) =>{
     });
   }
 }
-
-// onMounted(async () => {
-  
-// });
+// 下拉刷新
+const onRefresh = () => {
+  if (triggered.value) {
+    return
+  }
+  triggered.value = true;
+  setTimeout(() => {
+    getGameRank(gameDetail.value?.id);
+    triggered.value = false;
+  }, 1000)
+}
 </script>
   
   <style lang="scss" scoped>
+  ::v-deep .uni-scroll-view-refresh-inner{
+    background-color: transparent !important;
+  }
+  .card-item{
+    width: 100%;
+  }
 .home {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-y: auto;
+  height: 1100px;
+  overflow: hidden;
+  // position: absolute;
+  // top: 0;
+  // bottom: 0;
+  // right: 0;
+  // left: 0;
+  // overflow-y: auto;
   .fix-box {
     position: fixed;
     right: 0;
@@ -496,17 +516,16 @@ const getsendSingleReward = async (prize_money) =>{
   }
 }
 .content {
+   height: 1100px;
   display: flex;
   flex-direction: column;
   align-items: center;
   width: 100%;
-  min-height: 100%;
+  // min-height: 100%;
   padding: 32rpx;
-  // padding-top: 116rpx;
   padding-top: 168rpx;
   box-sizing: border-box;
   background-image: url("@/static/image/home/page-bg.jpg");
-  // background: url('../../static/image/home/page-bg.jpg');
   background-size: 100%;
   background-position: 0 0;
   background-repeat: no-repeat;
@@ -757,6 +776,8 @@ const getsendSingleReward = async (prize_money) =>{
   }
   .game-list {
     width: 100%;
+    height: 600px;
+    overflow: auto;
     .game-list-item {
       display: flex;
       justify-content: space-between;