Changpeng Duan il y a 4 ans
Parent
commit
4c65034e69

+ 43 - 28
v2tv/src/Mock/index.js

@@ -10,7 +10,7 @@ let worldDetail = function () {
         item.push({
             "id": "@guid",
             // "name": "@region",
-            Name: "赵沂",
+            Name: "赵沂",
             "Confirmed": "@integer(36844, 368449)",
             "Deaths": "@integer(1099, 10993)",
             "Recovered": "@integer(1986, 19865)",
@@ -141,10 +141,9 @@ let testStudent = function (num, team, mustbeTeamOne) {
             IsBreaking: 0,
             IsNewUser: 0,
             MaxHr: 80,
-            PowerPercent: "@integer(1, 100)",
+            PowerPercent: "@integer(10, 100)",
             // PowerPercent: "100",
-            // Name: "@cname",
-            Name: "赵沂明",
+            Name: "@cname",
             PkSucessnum: '1',//胜场数
             PkTotalnum: '1',//总场数
             PlanId: 60,
@@ -158,7 +157,7 @@ let testStudent = function (num, team, mustbeTeamOne) {
             UserMd5: "55661a861f8fae20dd505b2b4575dc0e",
             Weight: 50,
             // ActivePercent: "@integer(1, 200)",
-            ActivePercent: 100,
+            ActivePercent: "@integer(10, 100)",
             bmrMSjRmrcb: 66.00000000000001,
             FormatCk: "@integer(1, 999)",
             isAlive: true,
@@ -201,8 +200,8 @@ let getNewUser = function (code) {
         item.push({
             "SvId": "@guid",
             "UserId": "@integer(15253135600, 15253135699)",
-            "name": "测试人",
-            "Name": "测试人",
+            "name": "@cname",
+            "Name": "@cname",
             "Sex": 1,
             "Head": require('../static/img/testhead.png'),
 
@@ -221,7 +220,7 @@ let getRecordBreak = function (code) {
     let item = {
         "SvId": "@guid",
         "UserId": "@integer(15253135600, 15253135699)",
-        "UserName": "测试人",
+        "UserName": "@cname",
         "Cle": "@integer(200, 1000)",
         "Ck": "@integer(10, 100)",
         "CleUnit": "千卡",
@@ -240,11 +239,11 @@ let CalorieStatsQuery = function () {
     let Rs = [
         {
             Title: '本<s>周</s>场馆卡路里总消耗',
-            Result: [{'Values': "123456", Unite: '千卡'}],
+            Result: [{'Values': "234356", Unite: '千卡'}],
         },
         {
             Title: '本<s>月</s>场馆卡路里总消耗',
-            Result: [{'Values': "654321", Unite: '千卡'}],
+            Result: [{'Values': "644321", Unite: '千卡'}],
         }
     ];
     return {
@@ -259,17 +258,17 @@ let UserRankingQuery = function (num) {
     let item2 = [];
     for (var i = 0; i < num; i++) {
         item1.push({
-            // "UserName": "@cname",
-            UserName: "赵沂",
-            "Values": "@integer(1, 9999)",
+            "UserName": "@cname",
+            // UserName: "赵沂",
+            "Values": "@integer(1000, 9999)",
             "Head": require('../static/img/testhead.png')
         })
     }
     for (var i = 0; i < num; i++) {
         item2.push({
-            // "UserName": "@cname",
-            UserName: "赵沂",
-            "Values": "@float(1,9999,0,1)",
+            "UserName": "@cname",
+            // UserName: "赵沂",
+            "Values": "@float(10,99,1,1)",
             "Head": require('../static/img/testhead.png')
         })
     }
@@ -303,17 +302,17 @@ let testHerosRankingQuery = function (num) {
             "Style": "heros",
             "Result": [
                 {
-                    // "UserName": "@cname",
-                    UserName: "赵沂",
-                    "Sex": 1,
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
+                    "Sex": 2,
                     "Head": require('../static/img/testhead.png'),
                     "Values": "4744",
                     "Unite": "千卡",
                     "Message": ""
                 },
                 {
-                    // "UserName": "@cname",
-                    UserName: "赵沂",
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
                     "Sex": 1,
                     "Head": require('../static/img/testhead.png'),
                     "Values": "4034",
@@ -321,8 +320,8 @@ let testHerosRankingQuery = function (num) {
                     "Message": ""
                 },
                 {
-                    // "UserName": "@cname",
-                    UserName: "赵沂",
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
                     "Sex": 1,
                     "Head": require('../static/img/testhead.png'),
                     "Values": "2290",
@@ -336,17 +335,25 @@ let testHerosRankingQuery = function (num) {
             "Style": "tops",
             "Result": [
                 {
-                    // "UserName": "@cname",
-                    UserName: "赵沂",
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
                     "Sex": 1,
                     "Head": require('../static/img/testhead.png'),
                     "Values": "1022",
                     "Unite": "",
                     "Message": "打破了历史记录100000"
+                }, {
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
+                    "Sex": 2,
+                    "Head": require('../static/img/testhead.png'),
+                    "Values": "1022",
+                    "Unite": "",
+                    "Message": "打破了历史记录100000"
                 },
                 {
-                    // "UserName": "@cname",
-                    UserName: "赵沂明",
+                    "UserName": "@cname",
+                    // UserName: "赵沂",
                     "Sex": 1,
                     "Head": require('../static/img/testhead.png'),
                     "Values": "1020",
@@ -398,12 +405,14 @@ if (t == 1) {
     // 1:团课/私教
     // 2:竞技课2PK
     // 3:竞技课threepk
+
+    // 人数  1 3 5 9  11
     if (LessonClass == 1) {
         // 上团课
         Mock.mock(curheadapi + 'ClassStatQuery', 'post', getClassStat(1, 1));
         Mock.mock(Mockapi + 'ClassStatQuery', 'post', getClassStat(1, 1));
         Mock.mock(curheadapi + 'UserListInfo', 'post', testStudent(9, 1));//true
-        Mock.mock(Mockapi + 'UserListInfo', 'post', testStudent(30, 1)); //
+        Mock.mock(Mockapi + 'UserListInfo', 'post', testStudent(15, 1)); //
     } else if (LessonClass == 2) {
         // 上2队PK课
         Mock.mock(curheadapi + 'ClassStatQuery', 'post', getClassStat(1, 2));
@@ -416,11 +425,17 @@ if (t == 1) {
         Mock.mock(Mockapi + 'ClassStatQuery', 'post', getClassStat(1, 3));
         Mock.mock(curheadapi + 'UserListInfo', 'post', testStudent(8, 3,));
         Mock.mock(Mockapi + 'UserListInfo', 'post', testStudent(8, 3,));
+        Mock.mock(curheadapi + 'ClassUserRank', 'post', testStudent(8, 2));
+        Mock.mock(Mockapi + 'ClassUserRank', 'post', testStudent(8, 2));
     } else if (LessonClass == 0) {
         // 下课
         if (LessonDp == 0) {
+            Mock.mock(curheadapi + 'UserListInfo', 'post', testStudent(9, 1));//true
+            Mock.mock(Mockapi + 'UserListInfo', 'post', testStudent(15, 1)); //
             Mock.mock(curheadapi + 'ClassStatQuery', 'post', getClassStat(0, 0));
             Mock.mock(Mockapi + 'ClassStatQuery', 'post', getClassStat(0, 0));
+            Mock.mock(curheadapi + 'ClassUserRank', 'post', testStudent(16, 2));
+            Mock.mock(Mockapi + 'ClassUserRank', 'post', testStudent(16, 2));
         } else if (LessonDp == 1) {
             Mock.mock(curheadapi + 'ClassStatQuery', 'post', getClassStat(0, 1));
             Mock.mock(Mockapi + 'ClassStatQuery', 'post', getClassStat(0, 1));

BIN
v2tv/src/assets/imgs/3pkRank/3pkBg.png


BIN
v2tv/src/assets/imgs/3pkRank/blueTitle.png


BIN
v2tv/src/assets/imgs/3pkRank/bluerow.png


BIN
v2tv/src/assets/imgs/3pkRank/redTitle.png


BIN
v2tv/src/assets/imgs/3pkRank/redrow.png


BIN
v2tv/src/assets/imgs/3pkRank/yellowCube.png


BIN
v2tv/src/assets/imgs/3pkRank/yellowTitle.png


BIN
v2tv/src/assets/imgs/3pkRank/yellowrow.png


+ 21 - 0
v2tv/src/assets/imgs/pkRank/blueTitle.svg

@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="615" height="49"
+     viewBox="0 0 615 49">
+    <defs>
+        <linearGradient id="linear-gradient" x1="1" y1="0.454" x2="0.08" y2="0.5" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#4cbbfc"/>
+            <stop offset="0.142" stop-color="#41befc" stop-opacity="0.878"/>
+            <stop offset="1" stop-color="#00ceff" stop-opacity="0.133"/>
+        </linearGradient>
+        <linearGradient id="linear-gradient-2" y1="1" x2="1" y2="1" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#fff" stop-opacity="0"/>
+            <stop offset="0.522" stop-color="#fff"/>
+            <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+        </linearGradient>
+    </defs>
+    <g id="组_744" data-name="组 744" transform="translate(-1125 -124)">
+        <path id="路径_135" data-name="路径 135" d="M615,0H99.54L0,49H615Z" transform="translate(1125 124)"
+              fill="url(#linear-gradient)"/>
+        <rect id="矩形_193" data-name="矩形 193" width="410" height="2" transform="translate(1325 171)"
+              fill="url(#linear-gradient-2)"/>
+    </g>
+</svg>

+ 20 - 0
v2tv/src/assets/imgs/pkRank/redTitle.svg

@@ -0,0 +1,20 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="615.5" height="49"
+     viewBox="0 0 615.5 49">
+    <defs>
+        <linearGradient id="linear-gradient" y1="0.454" x2="0.92" y2="0.5" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#d11122"/>
+            <stop offset="1" stop-color="#d11122" stop-opacity="0.149"/>
+        </linearGradient>
+        <linearGradient id="linear-gradient-2" y1="1" x2="1" y2="1" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#fff" stop-opacity="0"/>
+            <stop offset="0.522" stop-color="#fff"/>
+            <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+        </linearGradient>
+    </defs>
+    <g id="组_743" data-name="组 743" transform="translate(-180 -124)">
+        <path id="路径_134" data-name="路径 134" d="M0,0H515.88L615.5,49H0Z" transform="translate(180 124)"
+              fill="url(#linear-gradient)"/>
+        <rect id="矩形_192" data-name="矩形 192" width="410" height="2" transform="translate(188 171)"
+              fill="url(#linear-gradient-2)"/>
+    </g>
+</svg>

+ 1 - 1
v2tv/src/components/Headside.vue

@@ -166,7 +166,7 @@ export default {
   float: left;
 
   img {
-    width: 1.6rem;
+    width: 1.4rem;
     float: left;
     margin-top: 0.2rem;
   }

+ 7 - 7
v2tv/src/components/pkstudent.vue

@@ -215,27 +215,27 @@ ul {
 }
 
 .blue .centerLi {
-  background: #028fe1;
+  background: linear-gradient(#007ec7 0%, #007dc6 33%, #4cbbfc 100%);
 }
 
 .violet .centerLi {
-  background: #6d26fa;
+  background: linear-gradient(#3500ac 0%, #4300ad 33%, #7766f8 100%);
 }
 
 .green .centerLi {
-  background: #059f00;
+  background: linear-gradient(#0ab105 0%, #0ab105 33%, #37e06b 100%);
 }
 
 .yellow .centerLi {
-  background: #dfb200;
+  background: linear-gradient(#ffb308 0%, #f5c600 33%, #ffe61f 100%);
 }
 
 .brown .centerLi {
-  background: #ea8813;
+  background: linear-gradient(#ff6200 0%, #ff6200 34.48%, #ff9d2b 100%);
 }
 
 .red .centerLi {
-  background: #cf1122;
+  background: linear-gradient(#d11122 0%, #d11122 48.28%, #ff3445 100%);
 }
 
 .slowJump {
@@ -370,7 +370,7 @@ ul {
       padding: 3% 1%;
       border-radius: 250rem;
       position: relative;
-      bottom: 0.4rem;
+      bottom: 0.45rem;
     }
   }
 

+ 109 - 18
v2tv/src/components/student.vue

@@ -78,22 +78,57 @@ export default {
   },
   props: ['students', 'studentsClassName'],
   watch: {
-    'studentsClassName': {
+    // 'studentsClassName': {
+    //   // 自动计算补全空白处
+    //   handler(newName, oldName) {
+    //     if (!newName) {
+    //       console.log('没有传入className');
+    //       // return false
+    //     }
+    //     let sum = 0;
+    //     let that = this;
+    //     sum = newName.length;
+    //     if (sum == 3) {
+    //       that.studentsFake = 1;
+    //     }
+    //     if (sum >= 5 && sum < 9) {
+    //       that.studentsFake = 9 - sum;
+    //     }
+    //     if (sum >= 10 && sum < 12) {
+    //       that.studentsFake = 12 - sum;
+    //     }
+    //     if (sum >= 13 && sum < 16) {
+    //       that.studentsFake = 16 - sum;
+    //     }
+    //     if (sum >= 16 && sum < 26) {
+    //       that.studentsFake = 25 - sum;
+    //     }
+    //     if (sum >= 26 && sum < 30) {
+    //       that.studentsFake = 30 - sum;
+    //     }
+    //     if (sum >= 30) {
+    //       that.studentsFake = 0
+    //     }
+    //     console.log('studentsFake',that.studentsFake);
+    //   },
+    //   deep: true,
+    //   immediate: true
+    // }
+    'students': {
       // 自动计算补全空白处
       handler(newName, oldName) {
         if (!newName) {
-          console.log('没有传入className');
-          // return false
+          console.log('没有传入学生数据');
         }
         let sum = 0;
         let that = this;
         sum = newName.length;
+        that.studentsFake = 0;
         if (sum == 3) {
           that.studentsFake = 1;
         }
         if (sum >= 5 && sum < 9) {
           that.studentsFake = 9 - sum;
-          console.log(that.studentsFake);
         }
         if (sum >= 10 && sum < 12) {
           that.studentsFake = 12 - sum;
@@ -110,6 +145,62 @@ export default {
         if (sum >= 30) {
           that.studentsFake = 0
         }
+
+        let numberClass = '';
+        let colorClass = '';
+        for (let i = 0; i < sum; i++) {
+          switch (true) {
+            case  parseInt(sum) == 1:
+              numberClass = 'max';
+              break;
+            case  parseInt(sum) == 2:
+              numberClass = 'two';
+              break;
+            case  parseInt(sum) <= 4 && parseInt(sum) > 2:
+              numberClass = 'three';
+              break;
+            case  parseInt(sum) <= 9 && parseInt(sum) > 4:
+              numberClass = 'five';
+              break;
+            case  parseInt(sum) <= 9 && parseInt(sum) > 6:
+              numberClass = 'nine';
+              break;
+            case parseInt(sum) <= 16 && parseInt(sum) > 9:
+              numberClass = 'sixteen';
+              break;
+            case parseInt(sum) <= 25 && parseInt(sum) > 16:
+              numberClass = 'twentyFive';
+              break;
+            case parseInt(sum) >= 26:
+              numberClass = 'twentyFive';
+              break;
+          }
+          let per = parseInt(newName[i].ActivePercent);
+          switch (true) {
+            case per >= 90:
+              colorClass = 'red';
+              break;
+            case per <= 89 && per > 79:
+              colorClass = 'brown';
+              break;
+            case per <= 79 && per > 69:
+              colorClass = 'yellow';
+              break;
+            case per <= 69 && per > 54:
+              colorClass = 'green';
+              break;
+            case per <= 54 && per > 39:
+              colorClass = 'violet';
+              break;
+            case per <= 39:
+              colorClass = 'blue';
+              break
+          }
+
+          newName[i].className = numberClass + ' ' + colorClass;
+          that.FakeclassName = numberClass + ' ' + colorClass;
+        }
+
       },
       deep: true,
       immediate: true
@@ -186,27 +277,27 @@ ul {
 }
 
 .blue .centerLi {
-  background: #028fe1;
+  background: linear-gradient(#007ec7 0%, #007dc6 33%, #4cbbfc 100%);
 }
 
 .violet .centerLi {
-  background: #6d26fa;
+  background: linear-gradient(#3500ac 0%, #4300ad 33%, #7766f8 100%);
 }
 
 .green .centerLi {
-  background: #059f00;
+  background: linear-gradient(#0ab105 0%, #0ab105 33%, #37e06b 100%);
 }
 
 .yellow .centerLi {
-  background: #dfb200;
+  background: linear-gradient(#ffb308 0%, #f5c600 33%, #ffe61f 100%);
 }
 
 .brown .centerLi {
-  background: #ea8813;
+  background: linear-gradient(#ff6200 0%, #ff6200 34.48%, #ff9d2b 100%);
 }
 
 .red .centerLi {
-  background: #cf1122;
+  background: linear-gradient(#d11122 0%, #d11122 48.28%, #ff3445 100%);
 }
 
 .slowJump {
@@ -341,7 +432,7 @@ ul {
       padding: 3% 1%;
       border-radius: 250rem;
       position: relative;
-      bottom: 0.4rem;
+      bottom: 0.45rem;
     }
   }
 
@@ -426,7 +517,7 @@ ul {
 
 .max {
   width: 12rem;
-  height: 5rem;
+  height: 5.1rem;
   margin-top: 2rem;
 
 }
@@ -506,8 +597,8 @@ ul {
 
 .five {
   width: 6.3rem;
-  height: 2.8rem;
-  margin-top: 0.3rem;
+  height: 2.9rem;
+  margin-top: 0.2rem;
 
   .lt span {
     margin-top: 10%;
@@ -565,8 +656,8 @@ ul {
 
 .sixteen {
   width: 4.7rem;
-  height: 2.15rem;
-  margin-top: 0.2rem;
+  height: 2.25rem;
+  margin-top: 0.1rem;
 
   .lt span {
     margin-top: 3%;
@@ -642,8 +733,8 @@ ul {
 
 .twentyFive {
   width: 3.75rem;
-  height: 1.8rem;
-  margin-top: 0.07rem;
+  height: 1.85rem;
+  margin-top: 0.03rem;
 
   .lt span {
     margin-top: 3%;

+ 7 - 7
v2tv/src/components/threestudent.vue

@@ -215,27 +215,27 @@ ul {
 }
 
 .blue .centerLi {
-  background: #028fe1;
+  background: linear-gradient(#007ec7 0%, #007dc6 33%, #4cbbfc 100%);
 }
 
 .violet .centerLi {
-  background: #6d26fa;
+  background: linear-gradient(#3500ac 0%, #4300ad 33%, #7766f8 100%);
 }
 
 .green .centerLi {
-  background: #059f00;
+  background: linear-gradient(#0ab105 0%, #0ab105 33%, #37e06b 100%);
 }
 
 .yellow .centerLi {
-  background: #dfb200;
+  background: linear-gradient(#ffb308 0%, #f5c600 33%, #ffe61f 100%);
 }
 
 .brown .centerLi {
-  background: #ea8813;
+  background: linear-gradient(#ff6200 0%, #ff6200 34.48%, #ff9d2b 100%);
 }
 
 .red .centerLi {
-  background: #cf1122;
+  background: linear-gradient(#d11122 0%, #d11122 48.28%, #ff3445 100%);
 }
 
 .slowJump {
@@ -370,7 +370,7 @@ ul {
       padding: 3% 1%;
       border-radius: 250rem;
       position: relative;
-      bottom: 0.4rem;
+      bottom: 0.45rem;
     }
   }
 

BIN
v2tv/src/static/sound/bell.wav


+ 388 - 164
v2tv/src/views/2pkRank.vue

@@ -1,36 +1,103 @@
 <template>
+  <!--  http://192.168.0.162:202/#/2pkrank-->
   <div class="content">
     <Headside></Headside>
-    <div class="pages" v-if="pages == 1">
+    <div class="pages pageSum" v-show="pages == 1">
       <div class="pageTitle">
       </div>
       <div class="pkResult">
         <div class="lt">
           <span class="level">
-            <img src="../assets/imgs/pkRank/trophy.png" alt="">
-                <h5>红队胜</h5>
-                <h5>第二名</h5>
+                <h5 class="winner" v-if="winner == 1">红队胜</h5>
+                <h5 class="loser" v-else>第二名</h5>
+                        <img src="../assets/imgs/pkRank/trophy.png" alt="">
           </span>
-
+          <span class="center">CK</span>
+          <span class="ckValue">
+            <em class="winner" v-if="winner == 1">217.9</em>
+            <em class="loser" v-else>217.9</em>
+          </span>
+          <div class="mvp">
+            <div class="head">
+              <img :src="redMvp.Head" alt="" v-if="redMvp.Head"
+                   :class="[{'boy':redMvp.Sex == 1},{'girl':redMvp.Sex == 2}]">
+              <img src="../static/img/people/flyhead.png" alt="" v-if="!redMvp.Head">
+              <div class="names">
+              <span>
+                  {{ redMvp.Name }}
+              </span>
+              </div>
+            </div>
+            <span class="mvpCode">最佳队员</span>
+          </div>
+          <div class="per">
+            人均卡路里 8392
+          </div>
+          <div class="teamName">
+            红队
+          </div>
         </div>
         <div class="rt">
-
+ <span class="level">
+                <h5 class="winner" v-if="winner == 2">蓝队胜</h5>
+                <h5 class="loser" v-else>第二名</h5>
+                        <img src="../assets/imgs/pkRank/trophy.png" alt="">
+          </span>
+          <span class="center">CK</span>
+          <span class="ckValue">
+            <em class="winner" v-if="winner == 2">217.9</em>
+            <em class="loser" v-else>217.9</em>
+          </span>
+          <div class="mvp">
+            <div class="head">
+              <img :src="blueMvp.Head" alt="" v-if="blueMvp.Head"
+                   :class="[{'boy':blueMvp.Sex == 1},{'girl':blueMvp.Sex == 2}]">
+              <img src="../static/img/people/flyhead.png" alt="" v-if="!blueMvp.Head">
+              <div class="names">
+              <span>
+                  {{ blueMvp.Name }}
+              </span>
+              </div>
+            </div>
+            <span class="mvpCode">最佳队员</span>
+          </div>
+          <div class="per">
+            人均卡路里 8392
+          </div>
+          <div class="teamName">
+            蓝队
+          </div>
         </div>
       </div>
     </div>
-    <div class="pages" v-if="pages == 2">
+    <div class="pages pageDetail" v-show="pages == 2">
       <div class="sumTitle">
         <div class="lt">
-          <img src="../assets/imgs/rank/fire.svg" alt="">
-          <h5>卡路里排名</h5>
-        </div>
-        <div class="rt">
-          <img src="../assets/imgs/rank/ck.svg" alt="">
-          <h5>CK排名</h5>
+          <div class="titleRow redRow">
+            <span class="rowName">红队</span>
+            <img v-show="winner == 1" src="../assets/imgs/pkRank/trophy.png" alt="">
+            <span class="rowValue">
+              <em>CK</em>
+              <s class="winnerSum" v-show="winner == 1">217.9</S>
+              <s class="loserSum" v-show="winner != 1">217.9</s>
+            </span>
+          </div>
         </div>
         <div class="md">
-          <span>本轮训练排名</span>
+          <img src="../assets/imgs/pk/vs.png" alt="">
         </div>
+        <div class="rt">
+          <div class="titleRow blueRow">
+            <span class="rowName">蓝队</span>
+            <img v-show="winner == 2" src="../assets/imgs/pkRank/trophy.png" alt="">
+            <span class="rowValue">
+              <em>CK</em>
+              <s class="winnerSum" v-show="winner == 2">217.9</S>
+              <s class="loserSum" v-show="winner != 2">217.9</s>
+            </span>
+          </div>
+        </div>
+
       </div>
       <div class="listContainer">
         <div class="lt">
@@ -42,7 +109,7 @@
             </div>
             <li v-for="(s,i) in students.CalSort" v-if="i <= 7"
                 :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
-              <div class="gary">
+              <div class="gary redrow">
                 <em>{{ i + 1 }}</em>
                 <div class="head">
                   <img :src="s.Head" alt="" v-if="s.Head" :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
@@ -72,7 +139,7 @@
             </div>
             <li v-for="(s,i) in students.CkSort" v-if="i <= 7"
                 :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
-              <div class="gary">
+              <div class="gary bluerow">
                 <em>{{ i + 1 }}</em>
                 <div class="head">
                   <img :src="s.Head" alt="" v-if="s.Head" :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
@@ -111,6 +178,9 @@ export default {
       pages: 1,
       eqSn: '30:9C:23:0C:8B:1E',
       pageStyle: RandomBg(),
+      redMvp: {},
+      blueMvp: {},
+      winner: 1,
       trueDate: true,//真实数据 true false
       autoJump: true,//开启自动跳走
       students: {
@@ -134,6 +204,15 @@ export default {
   mounted() {
     this.init();
     this.cardPlay();
+    let pages = 1;
+    // 五秒后翻页
+    this.rankTimer = setInterval(() => {
+      this.pages = 2;
+      if (pages == 1) {
+        this.cardPlay();
+        pages = 2;
+      }
+    }, 5000);
   },
   watch: {
     '$route': function (val) {
@@ -299,200 +378,345 @@ export default {
     height: 0.5rem;
   }
 
-  .sumTitle {
-    @include cube;
-    width: 80%;
-    height: 0.75rem;
-    margin-top: 0.7rem;
-    overflow: visible;
-
-    h5 {
-      float: left;
-      width: 80%;
-      margin: 0;
-      text-align: center;
-      color: #fff;
-      font-size: 0.5rem;
-      font-weight: normal;
-    }
+  .pageSum {
+    .pkResult {
+      @include cube;
+      width: 70%;
 
-    .lt {
-      width: 50%;
-      height: 0.75rem;
-      float: left;
-      background: url("../../src/assets/imgs/rank/redTitel.png");
-      background-repeat: no-repeat;
-      background-position: top center;
-      background-size: 100%;
-      border-radius: 250rem;
-
-      img {
-        width: 0.51rem;
+      .lt {
+        width: 5rem;
         float: left;
+        background: url("../assets/imgs/pkRank/redCube.png");
+        background-repeat: no-repeat;
+        background-position: top center;
+        background-size: 100%;
       }
-    }
 
-    .rt {
-      width: 50%;
-      height: 0.75rem;
-      float: right;
-      background: url("../../src/assets/imgs/rank/redTitel.png");
-      background-repeat: no-repeat;
-      background-position: top center;
-      background-size: 100%;
-      border-radius: 250rem;
-
-      img {
-        width: 0.8rem;
+      .rt {
+        width: 5rem;
         float: right;
+        background: url("../assets/imgs/pkRank/blueCube.png");
+        background-repeat: no-repeat;
+        background-position: top center;
+        background-size: 100%;
       }
 
-      h5 {
-        float: right;
+      .level {
+        @include cube;
+        color: white;
+        height: 1.7rem;
+
+        img {
+          position: relative;
+          width: 1rem;
+          bottom: 1rem;
+          float: left;
+        }
+
+        h5 {
+          @include cube;
+          margin: 0;
+          margin-top: 0.5rem;
+          font-size: 0.6rem;
+          font-weight: normal;
+
+          &.winner {
+            color: #FFEB50;
+          }
+        }
       }
-    }
 
-    .md {
-      position: relative;
-      width: 3rem;
-      height: 0.75rem;
-      margin: 0 auto;
-      background: url("../../src/assets/imgs/rank/titleBg.png");
-      background-repeat: no-repeat;
-      background-position: top center;
-      background-size: 100% 100%;
-
-      span {
+      .center {
         @include cube;
-        position: relative;
-        bottom: 0.65rem;
-        color: #fff;
-        text-align: center;
-        font-size: 0.35rem;
+        color: white;
+        font-size: 0.4rem;
       }
-    }
-  }
-}
 
-.listContainer {
-  @include cube;
-  width: 80%;
-  padding-top: 0.5rem;
+      .ckValue {
+        @include cube;
+        color: white;
 
-  .lt {
-    width: 47%;
-    float: left;
-  }
+        em {
+          font-style: normal;
+        }
+      }
 
-  .rt {
-    width: 47%;
-    float: right;
-  }
+      .mvp {
+        @include cube;
+        margin-top: 0.3rem;
 
-  .ltTitle {
-    @include cube;
+        .head {
+          @include cube;
+          height: 2rem;
+
+          img {
+            @include cube;
+            width: 2rem;
+            border-radius: 250rem;
 
-    span {
-      float: left;
-      color: #fff;
-      font-size: 0.3rem;
+            &.girl {
+              border: 0.05rem solid #EA26EA;
+            }
 
-      &:nth-child(1) {
-        margin-right: 1.5rem;
+            &.boy {
+              border: 0.05rem solid #39B6FF;
+            }
+          }
+        }
+
+        .mvpCode {
+          @include cube;
+          font-size: 0.4rem;
+          color: white;
+          margin-top: 0.2rem;
+        }
       }
 
-      &:last-child {
-        float: right;
+      .per {
+        @include cube;
+        font-size: 0.3rem;
+        color: white;
+        margin-top: 0.2rem;
+      }
+
+      .teamName {
+        margin-top: 0.3rem;
+        font-size: 0.5rem;
+        color: white;
       }
     }
   }
 
-  ul {
-    @include cube;
-
-    li {
+  .pageDetail {
+    .sumTitle {
       @include cube;
-      height: 0.7rem;
-      padding-top: 0.2rem;
+      width: 90%;
+      margin-top: 0.7rem;
+      overflow: visible;
 
-      .gary {
-        @include cube;
-        height: 0.6rem;
-        margin-bottom: 0.3rem;
-        background: url("../assets/imgs/rank/row.png");
-        background-repeat: no-repeat;
-        background-position: top center;
-        background-size: 100% 100%;
-        overflow: visible;
+      .lt {
+        width: 45%;
+        float: left;
       }
 
-      em {
-        width: 0.6rem;
-        height: 0.6rem;
+      .md {
+        width: 10%;
         float: left;
-        background: url("../assets/imgs/rank/rowTitle.png");
-        background-repeat: no-repeat;
-        background-position: top center;
-        background-size: 100% 100%;
-        text-align: left;
-        text-indent: 0.1rem;
-        font-size: 0.4rem;
-        font-weight: bold;
-        text-decoration: none;
-        font-style: normal;
-        color: white;
-        line-height: 0.6rem;
+
+        img {
+          @include cube;
+          width: 1.2rem;
+          position: relative;
+          bottom: 0.2rem;
+        }
       }
 
-      .head {
-        position: relative;
-        bottom: 0.4rem;
-        float: left;
-        margin-left: 0.3rem;
+      .rt {
+        width: 45%;
+        float: right;
+      }
+
+      .titleRow {
+        @include cube;
+        height: 0.7rem;
+        overflow: visible;
+
+        &.redRow {
+          background: url("../assets/imgs/pkRank/redTitle.svg");
+          background-repeat: no-repeat;
+          background-position: top center;
+          background-size: 100%;
+        }
+
+        &.blueRow {
+          background: url("../assets/imgs/pkRank/blueTitle.svg");
+          background-repeat: no-repeat;
+          background-position: top center;
+          background-size: 100%;
+
+          .rowName {
+            float: right;
+          }
+
+          .rowValue {
+            float: left;
+
+            em {
+              float: right;
+            }
+          }
+        }
+
+        .rowName {
+          font-size: 0.4rem;
+          float: left;
+          color: white;
+          padding: 0 0.3rem;
+        }
 
         img {
-          width: 0.6rem;
-          border-radius: 250rem;
+          position: relative;
+          bottom: 0.6rem;
+          width: 1rem;
+          float: left;
+        }
 
-          &.girl {
-            border: 0.05rem solid #EA26EA;
+        .rowValue {
+          float: right;
+          padding-right: 0.2rem;
+
+          em {
+            float: left;
+            color: white;
+            font-size: 0.4rem;
+            font-style: normal;
           }
 
-          &.boy {
-            border: 0.05rem solid #39B6FF;
+          s {
+            text-decoration: none;
+            float: right;
+            text-align: right;
+            font-size: 0.6rem;
+            color: white;
+            line-height: 0.5rem;
+            padding: 0 0.2rem;
+
+            &.winnerSum {
+              color: #FFEB50;
+            }
           }
         }
       }
+    }
+
+    .listContainer {
+      @include cube;
+      width: 80%;
 
-      .names {
+      .lt {
+        width: 47%;
         float: left;
-        color: white;
-        font-size: 0.3rem;
-        line-height: 0.6rem;
-        margin-left: 0.4rem;
       }
 
-      .glory {
-        float: left;
-        margin-left: 0.4rem;
+      .rt {
+        width: 47%;
+        float: right;
+      }
 
-        img {
-          float: right;
-          width: 0.6rem;
-          margin-left: 0.2rem;
-          margin-top: 0.1rem;
+      .ltTitle {
+        @include cube;
+
+        span {
+          float: left;
+          color: #fff;
+          font-size: 0.3rem;
+
+          &:nth-child(1) {
+            margin-right: 1.5rem;
+          }
+
+          &:last-child {
+            float: right;
+          }
         }
       }
 
-      .score {
-        float: right;
-        color: #FFE61F;
-        font-size: 0.3rem;
-        line-height: 0.6rem;
-        font-family: Arial;
-        font-weight: bold;
-        font-style: italic;
-        text-align: center;
+      ul {
+        @include cube;
+
+        li {
+          @include cube;
+          height: 0.7rem;
+          padding-top: 0.2rem;
+
+          .gary {
+            @include cube;
+            height: 0.6rem;
+            margin-bottom: 0.3rem;
+            background-repeat: no-repeat;
+            background-position: top center;
+            background-size: 100% 100%;
+            overflow: visible;
+
+            &.redrow {
+              background: url("../assets/imgs/3pkRank/redrow.png");
+            }
+
+            &.bluerow {
+              background: url("../assets/imgs/3pkRank/bluerow.png");
+            }
+
+          }
+
+          em {
+            width: 0.6rem;
+            height: 0.6rem;
+            float: left;
+            background: url("../assets/imgs/rank/rowTitle.png");
+            background-repeat: no-repeat;
+            background-position: top center;
+            background-size: 100% 100%;
+            text-align: left;
+            text-indent: 0.1rem;
+            font-size: 0.4rem;
+            font-weight: bold;
+            text-decoration: none;
+            font-style: normal;
+            color: white;
+            line-height: 0.6rem;
+          }
+
+          .head {
+            position: relative;
+            bottom: 0.4rem;
+            float: left;
+            margin-left: 0.3rem;
+
+            img {
+              width: 0.6rem;
+              border-radius: 250rem;
+
+              &.girl {
+                border: 0.05rem solid #EA26EA;
+              }
+
+              &.boy {
+                border: 0.05rem solid #39B6FF;
+              }
+            }
+          }
+
+          .names {
+            float: left;
+            color: white;
+            font-size: 0.3rem;
+            line-height: 0.6rem;
+            margin-left: 0.4rem;
+          }
+
+          .glory {
+            float: left;
+            margin-left: 0.4rem;
+
+            img {
+              float: right;
+              width: 0.6rem;
+              margin-left: 0.2rem;
+              margin-top: 0.1rem;
+            }
+          }
+
+          .score {
+            float: right;
+            color: #FFE61F;
+            font-size: 0.3rem;
+            line-height: 0.6rem;
+            font-family: Arial;
+            font-weight: bold;
+            font-style: italic;
+            text-align: center;
+          }
+        }
       }
     }
   }

+ 668 - 683
v2tv/src/views/3pkRank.vue

@@ -1,216 +1,296 @@
 <template>
-  <div :class="pageStyle">
+  <!--  http://192.168.0.162:202/#/2pkrank-->
+  <div class="content">
     <Headside></Headside>
-    <div class="tips">
-      {{ totalTime }}
-    </div>
-    <div class="rankContainer">
-      <div class="sumScore">
-        <div class="sumlt">
-          <img src="../assets/img/3pkRank/rank1.svg" alt="" class="rankIcon" v-if="red.rank == 1">
-          <img src="../assets/img/3pkRank/rank2.svg" alt="" class="rankIcon" v-if="red.rank == 2">
-          <img src="../assets/img/3pkRank/rank3.svg" alt="" class="rankIcon" v-if="red.rank == 3">
-          <span class="mineUniteName">
-                          <em>
-                            红队
-                        </em>
-                        <span class="sumCK">
-                            <em>{{ redSum }}</em><i>Ck</i>
-                        </span>
-                    </span>
-          <span class="flagContainer">
-                            <img src="../assets/img/2pkRank/flag.svg" alt="" v-if="red.rank == 1">
-                        </span>
-        </div>
-        <div class="pkIconContainer">
-          <img src="../assets/img/3pkRank/pk.svg" alt="" class="pkIcon">
-        </div>
-        <div class="summd">
-          <img src="../assets/img/3pkRank/rank1.svg" alt="" class="rankIcon" v-if="blue.rank == 1">
-          <img src="../assets/img/3pkRank/rank2.svg" alt="" class="rankIcon" v-if="blue.rank == 2">
-          <img src="../assets/img/3pkRank/rank3.svg" alt="" class="rankIcon" v-if="blue.rank == 3">
-          <span class="mineUniteName">
-
-                         <em>
-                            蓝队
-                        </em>
-
-                        <span class="sumCK">
-                            <em>{{ blueSum }}</em><i>Ck</i>
-                        </span>
-                    </span>
-          <span class="flagContainer">
-                            <img src="../assets/img/2pkRank/flag.svg" alt="" v-if="blue.rank == 1">
-                        </span>
-        </div>
-        <div class="pkIconContainer">
-          <img src="../assets/img/3pkRank/pk.svg" alt="" class="pkIcon">
-        </div>
-        <div class="sumrt">
-          <img src="../assets/img/3pkRank/rank1.svg" alt="" class="rankIcon" v-if="yellow.rank == 1">
-          <img src="../assets/img/3pkRank/rank2.svg" alt="" class="rankIcon" v-if="yellow.rank == 2">
-          <img src="../assets/img/3pkRank/rank3.svg" alt="" class="rankIcon" v-if="yellow.rank == 3">
-          <span class="mineUniteName">
-                        <em>
-                            黄队
-                        </em>
-                        <span class="sumCK">
-                            <em>{{ yellowSum }}</em><i>Ck</i>
-                        </span>
-                    </span>
-          <span class="flagContainer">
-                            <img src="../assets/img/2pkRank/flag.svg" alt="" v-if="yellow.rank == 1">
-                        </span>
-        </div>
+    <div class="pages pageSum" v-show="pages == 1">
+      <div class="pageTitle">
       </div>
-      <div class="list">
-        <div class="part">
-          <li v-for="(s,i) in students.redUnite" :class="[{'redUnite':true},{'mvpli':i == 0}]">
-            <div>
-              <div class="head">
-                <img :src="s.Head" class="headImg" v-if="s.Head">
-                <img src="../static/img/people/flyhead.png" class="headImg" alt="" v-if="!s.Head">
-                <img src="../assets/img/2pkRank/king.svg" class="king" alt="" v-if="red.rank == 1">
-              </div>
-              <div class="name">
-                {{ s.Name }}
-              </div>
-              <div class="CLEscore">
-                <!--                                <em>Cal</em>-->
-                <!--                                {{s.Cle|fmtInt}}-->
-                <em>胜率</em>
-                <span>{{ s.success }}%</span>
-              </div>
-              <div class="CKscore">
-                <em>CK</em>
-                {{ s.Ck|fmtFloat }}
-              </div>
-              <div class="record">
-                <img src="../assets/img/3pkRank/redMvp.svg" class="mvpImg" alt=""
-                     v-if="i == 0">
+      <div class="pkResult">
+        <div class="lt">
+          <span class="level">
+                <h5 class="loser">第二名</h5>
+          </span>
+          <span class="center">CK</span>
+          <span class="ckValue">
+            <em class="winner" v-if="winner == 1">217.9</em>
+            <em class="loser" v-else>217.9</em>
+          </span>
+          <div class="mvp">
+            <div class="head">
+              <img :src="redMvp.Head" alt="" v-if="redMvp.Head"
+                   :class="[{'boy':redMvp.Sex == 1},{'girl':redMvp.Sex == 2}]">
+              <img src="../static/img/people/flyhead.png" alt="" v-if="!redMvp.Head">
+              <div class="names">
+              <span>
+                  {{ redMvp.Name }}
+              </span>
               </div>
             </div>
-          </li>
+            <span class="mvpCode">最佳队员</span>
+          </div>
+          <div class="per">
+            人均卡路里 8392
+          </div>
+          <div class="teamName">
+            红队
+          </div>
         </div>
-        <div class="part">
-          <li v-for="(s,i) in students.blueUnite" :class="[{'blueUnite':true},{'mvpli':i == 0}]">
-            <div>
-              <div class="head">
-                <img :src="s.Head" class="headImg" v-if="s.Head">
-                <img src="../static/img/people/flyhead.png" class="headImg" alt="" v-if="!s.Head">
-                <img src="../assets/img/2pkRank/king.svg" class="king" alt="" v-if="blue.rank == 1">
-              </div>
-              <div class="name">
-                {{ s.Name }}
-              </div>
-              <div class="CLEscore">
-                <em>胜率</em>
-                <span>{{ s.success }}%</span>
-              </div>
-              <div class="CKscore">
-                <em>CK</em>
-                {{ s.Ck|fmtFloat }}
-              </div>
-              <div class="record">
-                <img src="../assets/img/3pkRank/blueMvp.svg" class="mvpImg" alt=""
-                     v-if="i == 0">
+        <div class="md">
+          <span class="level">
+                <h5 class="winner">黄队胜</h5>
+                  <img src="../assets/imgs/pkRank/trophy.png" alt="">
+          </span>
+          <span class="center">CK</span>
+          <span class="ckValue">
+            <em class="winner" v-if="winner == 1">217.9</em>
+            <em class="loser" v-else>217.9</em>
+          </span>
+          <div class="mvp">
+            <div class="head">
+              <img :src="redMvp.Head" alt="" v-if="redMvp.Head"
+                   :class="[{'boy':redMvp.Sex == 1},{'girl':redMvp.Sex == 2}]">
+              <img src="../static/img/people/flyhead.png" alt="" v-if="!redMvp.Head">
+              <div class="names">
+              <span>
+                  {{ redMvp.Name }}
+              </span>
               </div>
             </div>
-          </li>
+            <span class="mvpCode">最佳队员</span>
+          </div>
+          <div class="per">
+            人均卡路里 8392
+          </div>
+          <div class="teamName">
+            红队
+          </div>
         </div>
-        <div class="part">
-          <li v-for="(s,i) in students.yellowUnite" :class="[{'yellowUnite':true},{'mvpli':i == 0}]">
-            <div>
-              <div class="head">
-                <img :src="s.Head" class="headImg" v-if="s.Head">
-                <img src="../static/img/people/flyhead.png" class="headImg" alt="" v-if="!s.Head">
-                <img src="../assets/img/2pkRank/king.svg" class="king" alt="" v-if="yellow.rank == 1">
-              </div>
-              <div class="name">
-                {{ s.Name }}
-              </div>
-              <div class="CLEscore">
-                <em>胜率</em>
-                <span>{{ s.success }}%</span>
+        <div class="rt">
+ <span class="level">
+                <h5 class="loser">第三名</h5>
+          </span>
+          <span class="center">CK</span>
+          <span class="ckValue">
+            <em class="winner" v-if="winner == 2">217.9</em>
+            <em class="loser" v-else>217.9</em>
+          </span>
+          <div class="mvp">
+            <div class="head">
+              <img :src="blueMvp.Head" alt="" v-if="blueMvp.Head"
+                   :class="[{'boy':blueMvp.Sex == 1},{'girl':blueMvp.Sex == 2}]">
+              <img src="../static/img/people/flyhead.png" alt="" v-if="!blueMvp.Head">
+              <div class="names">
+              <span>
+                  {{ blueMvp.Name }}
+              </span>
               </div>
-              <div class="CKscore">
-                <em>CK</em>
-                {{ s.Ck|fmtFloat }}
+            </div>
+            <span class="mvpCode">最佳队员</span>
+          </div>
+          <div class="per">
+            人均卡路里 8392
+          </div>
+          <div class="teamName">
+            蓝队
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="pages pageDetail" v-show="pages == 2">
+      <div class="sumTitle">
+        <div class="lt">
+          <div class="titleRow redRow">
+            <span class="rowName">红队</span>
+            <img v-show="winner == 1" src="../assets/imgs/pkRank/trophy.png" alt="">
+            <span class="rowValue">
+              <em>CK</em>
+              <s class="winnerSum" v-show="winner == 1">217.9</S>
+              <s class="loserSum" v-show="winner != 1">217.9</s>
+            </span>
+          </div>
+        </div>
+        <div class="md">
+          <div class="titleRow blueRow">
+            <span class="rowName">蓝队</span>
+            <img v-show="winner == 2" src="../assets/imgs/pkRank/trophy.png" alt="">
+            <span class="rowValue">
+              <em>CK</em>
+              <s class="winnerSum" v-show="winner == 2">217.9</S>
+              <s class="loserSum" v-show="winner != 2">217.9</s>
+            </span>
+          </div>
+        </div>
+        <div class="rt">
+          <div class="titleRow yellowRow">
+            <span class="rowName">黄队</span>
+            <img v-show="winner == 3" src="../assets/imgs/pkRank/trophy.png" alt="">
+            <span class="rowValue">
+              <em>CK</em>
+              <s class="winnerSum" v-show="winner == 3">217.9</S>
+              <s class="loserSum" v-show="winner != 3">217.9</s>
+            </span>
+          </div>
+        </div>
+      </div>
+      <div class="vsSign">
+        <img class="ltvsSign" src="../assets/imgs/pk/vs.png" alt="">
+        <img class="rtvsSign" src="../assets/imgs/pk/vs.png" alt="">
+      </div>
+      <div class="listContainer">
+        <div class="lt">
+          <ul>
+            <div class="ltTitle">
+              <span>排名</span>
+              <span>成员</span>
+              <span>CK</span>
+            </div>
+            <li v-for="(s,i) in students.CalSort" v-if="i <= 7"
+                :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
+              <div class="gary redrow">
+                <em>{{ i + 1 }}</em>
+                <div class="head">
+                  <img :src="s.Head" alt="" v-if="s.Head" :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                  <img src="../static/img/people/flyhead.png" alt="" v-if="!s.Head"
+                       :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                </div>
+                <span class="names">{{ s.Name }}</span>
+                <span class="glory">
+                <img src="../assets/imgs/rank/cr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/mr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/pb.png" v-if="s.Sign == 1" alt="">
+              </span>
+                <span class="score">
+                                  {{ s.Ck|fmtFloat }}
+              </span>
               </div>
-              <div class="record">
-                <img src="../assets/img/3pkRank/yellowMvp.svg" class="mvpImg" alt=""
-                     v-if="i == 0">
+            </li>
+          </ul>
+        </div>
+        <div class="md">
+          <ul>
+            <div class="ltTitle">
+              <span>排名</span>
+              <span>成员</span>
+              <span>CK</span>
+            </div>
+            <li v-for="(s,i) in students.CalSort" v-if="i <= 7"
+                :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
+              <div class="gary bluerow">
+                <em>{{ i + 1 }}</em>
+                <div class="head">
+                  <img :src="s.Head" alt="" v-if="s.Head" :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                  <img src="../static/img/people/flyhead.png" alt="" v-if="!s.Head"
+                       :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                </div>
+                <span class="names">{{ s.Name }}</span>
+                <span class="glory">
+               <img src="../assets/imgs/rank/cr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/mr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/pb.png" v-if="s.Sign == 1" alt="">
+              </span>
+                <span class="score">
+                                  {{ s.Ck|fmtFloat }}
+              </span>
               </div>
+            </li>
+          </ul>
+        </div>
+
+        <div class="rt">
+          <ul>
+            <div class="ltTitle">
+              <span>排名</span>
+              <span>成员</span>
+              <span>CK</span>
             </div>
-          </li>
+            <li v-for="(s,i) in students.CkSort" v-if="i <= 7"
+                :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
+              <div class="gary yellowrow">
+                <em>{{ i + 1 }}</em>
+                <div class="head">
+                  <img :src="s.Head" alt="" v-if="s.Head" :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                  <img src="../static/img/people/flyhead.png" alt="" v-if="!s.Head"
+                       :class="[{'boy':s.Sex == 1},{'girl':s.Sex == 2}]">
+                </div>
+                <span class="names">{{ s.Name }}</span>
+                <span class="glory">
+                <img src="../assets/imgs/rank/cr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/mr.png" v-if="s.Sign == 1" alt="">
+                <img src="../assets/imgs/rank/pb.png" v-if="s.Sign == 1" alt="">
+              </span>
+                <span class="score">
+                                  {{ s.Ck|fmtFloat }}
+              </span>
+              </div>
+            </li>
+          </ul>
         </div>
       </div>
-
-      <!--blue-->
-      <!--yellow-->
+      <div class="icons">
+        <img src="../assets/imgs/rank/icons.svg" alt="">
+      </div>
     </div>
   </div>
 </template>
 
 <script>
 import Headside from '@/components/Headside'
-import '../libs/rem';
-import '../Global';
-import {
-  ClassUserRank,
-  AddPkInfo
-} from '@/api/getApiRes'
+import {ClassUserRank} from "@/api/getApiRes";
 
 let qs = require('qs');
 export default {
   data() {
     return {
+      pages: 2,
       eqSn: '30:9C:23:0C:8B:1E',
       pageStyle: RandomBg(),
+      redMvp: {},
+      blueMvp: {},
+      winner: 1,
       trueDate: true,//真实数据 true false
       autoJump: true,//开启自动跳走
       students: {
-        redUnite: [],
-        blueUnite: [],
-        yellowUnite: [],
-      },
-      red: {
-        rank: 0,
-      },
-      blue: {
-        rank: 0,
-      },
-      yellow: {
-        rank: 0,
+        CkSort: [],
+        CalSort: [],
       },
       rankTimer: null,
-      redSum: 0,
-      blueSum: 0,
-      yellowSum: 0,
-      totalTime: ''
+      totalTime: '',
+      Listate: [
+        {state: false},
+        {state: false},
+        {state: false},
+        {state: false},
+        {state: false},
+        {state: false},
+        {state: false},
+        {state: false},
+      ],
     }
   },
   mounted() {
-    let that = this;
-    if (this.trueDate) {
-      that.init();
-    } else {
-      let Rs = fakeNews(27, 3);
-      that.UniteBreak(Rs);
-    }
-
+    this.init();
+    this.cardPlay();
+    let pages = 1;
+    // 五秒后翻页
+    this.rankTimer = setInterval(() => {
+      this.pages = 2;
+      if (pages == 1) {
+        this.cardPlay();
+        pages = 2;
+      }
+    }, 5000);
   },
   watch: {
     '$route': function (val) {
-      let that = this;
-      if (val.path == '/3pkRank') {
+      if (val.path == '/rank') {
         if (this.trueDate) {
-          that.init();
+          this.init();
         } else {
-          let Rs = fakeNews(18, 3);
-          that.UniteBreak(Rs);
+          // this.rankTimer  = setInterval(() => {
+          this.students.CkSort = fakeNews(5);
+          this.students.CalSort = fakeNews(5);
+          // }, 5000);
         }
-
       } else {
         clearInterval(this.autoJump);
         clearInterval(this.rankTimer);
@@ -225,190 +305,6 @@ export default {
     init() {
       this.getClassUserRank();
     },
-    jumpWait(totalTime) {
-      // 倒计时60秒自动关闭
-      let that = this;
-      let clock = window.setInterval(() => {
-        totalTime--;
-        that.totalTime = totalTime;
-        if (parseInt(totalTime) <= 0) {
-          // 前往等待页面
-          that.$router.push({path: '/'});
-          // 计时器回收
-          clearInterval(clock);
-        }
-      }, 1000)
-    },
-    // 分队展示
-    UniteBreak(Rs, PlanId) {
-      let that = this;
-      that.students.redUnite = [];
-      that.students.blueUnite = [];
-      that.students.yellowUnite = [];
-      console.log(!Rs);
-
-      Rs.map(function (item, t) {
-        if (item.GroupNo == 1) {
-          that.students.redUnite.push(item);
-        }
-        if (item.GroupNo == 2) {
-          that.students.blueUnite.push(item);
-        }
-        if (item.GroupNo == 3) {
-          that.students.yellowUnite.push(item);
-        }
-      });
-
-
-      // 排序
-      that.students.redUnite = that.students.redUnite.sort(function (a, b) {
-        // return b.Cle - a.Cle;
-        return b.Ck - a.Ck;
-      });
-      that.students.blueUnite = that.students.blueUnite.sort(function (a, b) {
-        // return b.Cle - a.Cle;
-        return b.Ck - a.Ck;
-      });
-      that.students.yellowUnite = that.students.yellowUnite.sort(function (a, b) {
-        // return b.Cle - a.Cle;
-        return b.Ck - a.Ck;
-      });
-
-      that.calcSumCK(that.students, PlanId);
-
-    },
-    // 计算各队总分
-    calcSumCK(Rs, PlanId) {
-      let that = this;
-      let redSum = 0;
-      let blueSum = 0;
-      let yellowSum = 0;
-      Rs.redUnite.map(function (item, t) {
-        redSum += parseFloat(item.Ck);
-        that.successCalc(item);
-      });
-      Rs.blueUnite.map(function (item, t) {
-        blueSum += parseFloat(item.Ck);
-        that.successCalc(item);
-      });
-      Rs.yellowUnite.map(function (item, t) {
-        yellowSum += parseFloat(item.Ck);
-        that.successCalc(item);
-      });
-      that.redSum = redSum.toFixed(1);
-      that.blueSum = blueSum.toFixed(1);
-      that.yellowSum = yellowSum.toFixed(1);
-
-      // 获取人数 计算人均CK
-      // let redHuman = 0;
-      // let blueHuman = 0;
-      // let yellowHuman = 0;
-      // if (Rs.redUnite != '') {
-      //     redHuman = Rs.redUnite.length;
-      //     that.redSum = parseFloat(redSum / redHuman).toFixed(1);
-      // } else {
-      //     that.redSum = 0
-      // }
-      //
-      // if (Rs.blueUnite != '') {
-      //     blueHuman = Rs.blueUnite.length;
-      //     that.blueSum = parseFloat(blueSum / blueHuman).toFixed(1);
-      // } else {
-      //     that.blueSum = 0
-      // }
-      // if (Rs.yellowUnite != '') {
-      //     yellowHuman = Rs.yellowUnite.length;
-      //     that.yellowSum = parseFloat(yellowSum / yellowHuman).toFixed(1);
-      // } else {
-      //     that.yellowSum = 0
-      // }
-
-      let res = [
-        {name: "red", val: that.redSum},
-        {name: "blue", val: that.blueSum},
-        {name: "yellow", val: that.yellowSum},
-      ];
-      that.getUnitRank(res, PlanId, Rs);
-    },
-    getWhoWin(redUnite, blueUnite, yellowUnite, groupNo) {
-      let that = this;
-      if (groupNo == 1) {
-        redUnite.map(function (item, t) {
-          that.successCalc(item, 1);
-        });
-        blueUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-        yellowUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-      } else if (groupNo == 2) {
-        redUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-        blueUnite.map(function (item, t) {
-          that.successCalc(item, 1);
-        });
-        yellowUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-      } else if (groupNo == 3) {
-        redUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-        blueUnite.map(function (item, t) {
-          that.successCalc(item, 0);
-        });
-        yellowUnite.map(function (item, t) {
-          that.successCalc(item, 1);
-        });
-      }
-    },
-    // 插入胜率结果
-    successCalc(item, Victorl) {
-      // item.success = '胜' + (parseInt(item.PkSucessnum) + parseInt(Victorl)) + ' 总:' + (parseInt(item.PkTotalnum) + 1) + '结' + (parseFloat(parseInt(item.PkSucessnum) + parseInt(Victorl)) / (parseInt(item.PkTotalnum) + 1)) * 100
-
-      if (parseInt(item.PkTotalnum + Victorl) == 0) {
-        item.success = 0;
-      } else {
-        let res = (parseFloat(parseInt(item.PkSucessnum) + parseInt(Victorl)) / (parseInt(item.PkTotalnum) + 1)) * 100;
-        if (res >= 100) {
-          item.success = 100;
-        } else {
-          item.success = res.toFixed(1);
-        }
-      }
-    },
-    // 结果排序
-    getUnitRank(res, PlanId, Rs) {
-      let that = this;//这个that不要删
-      let sum = res.sort(function (a, b) {
-        return b.val - a.val;
-      });
-      sum.map(function (item, i) {
-        eval("that." + item['name'] + ".rank = i+1");
-      });
-
-      // 上报胜率结果
-
-      let groupNo = 0;
-      console.log('name' + sum[0].name);
-      switch (sum[0].name) {
-        case "red":
-          groupNo = 1;
-          break;
-        case "blue":
-          groupNo = 2;
-          break;
-        case "yellow":
-          groupNo = 3;
-          break
-      }
-      // 上报本场胜率
-      that.PostAddPkInfo(PlanId, groupNo);
-      // 计算本场胜率
-      that.getWhoWin(Rs.redUnite, Rs.blueUnite, Rs.yellowUnite, groupNo);
-    },
     getClassUserRank() {
       let that = this;
       let param = {
@@ -417,12 +313,8 @@ export default {
       let postdata = qs.stringify(param);
       ClassUserRank(postdata).then(res => {
         let json = res;
-        that.students.redUnite = [];
-        that.students.blueUnite = [];
-        that.students.yellowUnite = [];
         if (json.Code == 0) {
-          that.UniteBreak(json.Rs, json.Dp.PlanId);
-
+          console.log(json);
           let totalTime = 40;
           let Studenlength = 0;
           if (json.Rs) {
@@ -432,14 +324,25 @@ export default {
           if (Studenlength > 3) {
             totalTime = 60
           } else {
-            totalTime = 40;
+            totalTime = 40
+          }
+          // this.jumpWait(totalTime); //todo
+          let CkSort = json.Rs;
+          let CalSort = deepClone(json.Rs);
+          let Rs = json.Rs;
+          if (Rs != '') {
+            // 排序
+            that.students.CkSort = json.Rs.sort(function (a, b) {
+              return b.Ck - a.Ck;
+            });
+
+            that.students.CalSort = CalSort.sort(function (a, b) {
+              return b.Cle - a.Cle;
+            });
           }
-          this.jumpWait(totalTime);
-
-          // this.students.CkSort = json.Rs.CkSort;
-          // this.students.CalSort = json.Rs.CalSort;
         } else {
-          this.jumpWait(10);
+          this.students.CkSort = [];
+          this.students.CalSort = [];
           if (json.Code == '999') {
             // that.$router.push({path: '/'});
           } else {
@@ -449,29 +352,37 @@ export default {
         }
       })
     },
-    // 竞技课程结果上传
-    PostAddPkInfo(dpId, groupNo) {
-      console.log(dpId, groupNo);
-      // 如果是演示版不上报比赛结果
-      if (runVersion == 'test') {
-        return false
-      }
+    jumpWait(totalTime) {
+      // 倒计时60秒自动关闭
       let that = this;
-      let param = {
-        dpId: dpId,
-        groupNo: groupNo,
-      };
-      let postdata = qs.stringify(param);
-      AddPkInfo(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          console.log('竞技课程结果上传成功dpid:' + dpId + ' groupNo:' + groupNo);
-        } else {
-          console.log(json.Memo);
-          // that.$message.error(json.Memo);
+      clearInterval(clock);
+      let clock = window.setInterval(() => {
+        totalTime--;
+        that.totalTime = totalTime;
+        if (parseInt(totalTime) <= 0) {
+          // 前往等待页面
+          that.$router.push({path: '/'});
+          // 计时器回收
+          clearInterval(clock);
         }
+      }, 1000)
+    },
+    cardPlay() {
+      let that = this;
+      // 重置一下状态
+      that.Listate.map(function (t) {
+        t.state = false;
       })
-    }
+      let timeScope = 400;
+      let timeLong;
+      let row;
+      for (let i = 0; i < 8; i++) {
+        timeLong = parseInt(i * timeScope);
+        that.timer = setTimeout(() => {   //设置延迟执行
+          that.Listate[i].state = true;
+        }, timeLong)
+      }
+    },
   },
   filters: {
     fmtNum(val) {
@@ -494,7 +405,6 @@ export default {
         return '0'
       } else {
         return parseInt(val);
-        // return parseFloat(val).toFixed(3);
       }
     },
   },
@@ -504,355 +414,430 @@ export default {
 }
 </script>
 
-<style scoped>
-@import "../assets/css/bg.css";
-
-@font-face {
-  font-family: vista;
-  src: url('../assets/font/vista.otf');
-}
-
-* {
-  font-family: vista;
+<style lang="scss" scoped>
+@mixin bg {
+  height: 100%;
+  background-color: #333;
+  background-repeat: no-repeat;
+  background-position: top center;
+  background-size: 100% 100%;
 }
 
-.pages {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+@mixin cube {
   width: 100%;
   overflow: hidden;
   display: block;
   margin: 0 auto;
-  font-family: vista;
-  background: url("../assets/img/threepk/threepkbg.png");
-  background-position: top center;
-  background-repeat: no-repeat;
-  background-size: 100% 100%;
-  overflow-y: scroll;
 }
 
-.rankContainer {
-  width: 96%;
-  overflow: visible;
-  display: block;
-  margin: 0 auto;
-  overflow-y: scroll;
-}
+.content {
+  background: url("../../src/assets/imgs/3pkRank/3pkBg.png");
+  @include bg;
 
-.sumScore {
-  width: 90%;
-  overflow: visible;
-  display: block;
-  margin: 0 auto;
-  height: 1.4rem;
-  background-size: 100%;
-  background-position: top center;
-  background-repeat: no-repeat;
-}
+  .pageTitle {
+    background: url("../assets/imgs/pkRank/title.svg");
+    background-repeat: no-repeat;
+    background-position: top center;
+    background-size: 100% 100%;
+    @include cube;
+    width: 2rem;
+    height: 0.5rem;
+  }
 
-.pkIconContainer {
-  width: 20%;
-  float: left;
-}
+  .pageSum {
+    .pkResult {
+      @include cube;
+      width: 85%;
+
+      .lt {
+        width: 4rem;
+        float: left;
+        margin-top: 5%;
+        background: url("../assets/imgs/pkRank/redCube.png");
+        background-repeat: no-repeat;
+        background-position: top center;
+        background-size: 100%;
+      }
 
-.pkIconContainer img {
-  width: 1.5rem;
-  height: 1.5rem;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-}
+      .md {
+        width: 4rem;
+        float: left;
+        margin-left: 15%;
+        background: url("../assets/imgs/3pkRank/yellowCube.png");
+        background-repeat: no-repeat;
+        background-position: top center;
+        background-size: 100%;
+      }
 
-li {
-  width: 90%;
-  height: 0.8rem;
-  display: block;
-  margin: 0 auto;
-  overflow: hidden;
-  margin-bottom: 0.06rem;
-}
+      .rt {
+        width: 4rem;
+        float: right;
+        margin-top: 10%;
+        background: url("../assets/imgs/pkRank/blueCube.png");
+        background-repeat: no-repeat;
+        background-position: top center;
+        background-size: 100%;
+      }
 
-li .rows {
-  width: 100%;
-  height: 0.8rem;
-  /*background: #ee191d;*/
-  border-radius: 250rem;
-  overflow: visible;
-  display: block;
-  margin: 0 auto;
-  margin-top: 0.15rem;
-}
+      .level {
+        @include cube;
+        color: white;
+        height: 1.7rem;
 
-li .head {
-  width: 0.6rem;
-  height: 0.7rem;
-  float: left;
-  margin-left: 0.1rem;
-  margin-top: 0.07rem;
-  overflow: visible;
-}
+        img {
+          position: relative;
+          width: 1rem;
+          bottom: 1rem;
+          float: left;
+        }
 
-li .head .headImg {
-  width: 100%;
-  height: 0.6rem;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  border: 0.04rem solid #fff;
-  border-radius: 33rem;
-}
+        h5 {
+          @include cube;
+          margin: 0;
+          margin-top: 0.5rem;
+          font-size: 0.4rem;
+          font-weight: normal;
 
+          &.winner {
+            color: #FFEB50;
+          }
+        }
+      }
 
-li .name {
-  width: 1.2rem;
-  font-weight: normal;
-  font-size: 0.3rem;
-  text-align: left;
-  color: #fff;
-  float: left;
-  margin-left: 0.2rem;
-  line-height: 0.8rem;
-}
+      .center {
+        @include cube;
+        color: white;
+        font-size: 0.35rem;
+      }
 
-li .record {
-  position: relative;
-  top: -0.2rem;
-  float: right;
-  margin-right: 2%;
-  /*line-height: 0.8rem;*/
-}
+      .ckValue {
+        @include cube;
+        color: white;
+        height: 0.8rem;
+        line-height: 0.7rem;
 
-li .score {
-  font-weight: normal;
-  font-size: 0.4rem;
-  color: #fff;
-  float: right;
-  margin-right: 0.2rem;
-  line-height: 1rem;
-  text-align: right;
-  line-height: 0.8rem;
-}
+        em {
+          font-style: normal;
+          font-size: 0.5rem;
+        }
+      }
 
-li .score em {
-  font-size: 0.2rem;
-}
+      .mvp {
+        @include cube;
+        margin-top: 0.2rem;
 
-.sumlt {
-  width: 20%;
-  float: left;
-  color: #fff;
-  height: 1.2rem;
-  background: url("../assets/img/3pkRank/redtit.svg");
-  background-size: 100%;
-  background-position: top center;
-  background-repeat: no-repeat;
-  margin-top: 0.5rem;
-  overflow: visible;
-}
+        .head {
+          @include cube;
+          height: 1.6rem;
 
-.summd {
-  width: 20%;
-  float: left;
-  color: #fff;
-  height: 1.2rem;
-  background: url("../assets/img/3pkRank/bluetit.svg");
-  background-size: 100%;
-  background-position: top center;
-  background-repeat: no-repeat;
-  margin-top: 0.5rem;
-  overflow: visible;
-}
+          img {
+            @include cube;
+            width: 1.5rem;
+            border-radius: 250rem;
 
-.sumrt {
-  width: 20%;
-  float: left;
-  color: #fff;
-  height: 1.2rem;
-  background: url("../assets/img/3pkRank/yellowtit.svg");
-  background-size: 100%;
-  background-position: top center;
-  background-repeat: no-repeat;
-  margin-top: 0.5rem;
-  overflow: visible;
-}
+            &.girl {
+              border: 0.05rem solid #EA26EA;
+            }
 
-.sumCK {
-  float: right;
-  font-size: 0.3rem;
-  text-align: right;
-}
+            &.boy {
+              border: 0.05rem solid #39B6FF;
+            }
+          }
+        }
 
-.mineUniteName {
-  width: 69%;
-  height: 0.6rem;
-  overflow: visible;
-  display: block;
-  margin: 0 auto;
-  text-align: left;
-  font-size: 0.35rem;
-}
+        .mvpCode {
+          @include cube;
+          font-size: 0.3rem;
+          color: white;
+          margin-top: 0rem;
+        }
+      }
 
-.mineUniteName em {
-  float: left;
-}
+      .per {
+        @include cube;
+        font-size: 0.3rem;
+        color: white;
+        margin-top: 0.2rem;
+      }
 
-.sumCK em {
-  font-size: 0.35rem;
-}
+      .teamName {
+        margin-top: 0.3rem;
+        font-size: 0.5rem;
+        color: white;
+      }
+    }
+  }
 
-.sumCK i {
-  float: right;
-  font-size: 0.24rem;
-  margin-top: 0.1rem;
-}
+  .pageDetail {
+    .sumTitle {
+      @include cube;
+      width: 90%;
+      margin-top: 0.7rem;
+      overflow: visible;
 
-.flagContainer {
-  position: relative;
-  top: -1rem;
-  float: none;
-  right: -1.6rem;
-  display: inline-block;
-}
+      .lt {
+        width: 33.33%;
+        float: left;
+      }
 
-.flagContainer img {
-  width: 0.8rem;
-  height: 0.8rem;
-}
+      .md {
+        width: 33.33%;
+        float: left;
+      }
 
-.rankIcon {
-  position: relative;
-  float: left;
-  width: 0.3rem;
-  top: -0.1rem;
-  left: 0.3rem;
-}
+      .rt {
+        width: 33.33%;
+        float: right;
+      }
 
-.list {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-}
+      .titleRow {
+        @include cube;
+        width: 90%;
+        height: 0.7rem;
+        overflow: visible;
+
+        &.redRow {
+          background: url("../assets/imgs/3pkRank/redTitle.png");
+          background-repeat: no-repeat;
+          background-position: top center;
+          background-size: 100%;
+        }
 
-.list .part {
-  width: 33.333%;
-  height: 100%;
-  min-height: 1rem;
-  float: left;
-}
+        &.blueRow {
+          background: url("../assets/imgs/3pkRank/blueTitle.png");
+          background-repeat: no-repeat;
+          background-position: top center;
+          background-size: 100%;
+        }
 
+        &.yellowRow {
+          background: url("../assets/imgs/3pkRank/yellowTitle.png");
+          background-repeat: no-repeat;
+          background-position: top center;
+          background-size: 100%;
+        }
 
-li.redUnite {
-  width: 96%;
-  float: left;
-  background: rgba(207, 17, 34, 0.75);
-  color: #fff;
-  margin-bottom: 0.07rem;
-  overflow: hidden;
-}
+        .rowName {
+          font-size: 0.4rem;
+          float: left;
+          color: white;
+          padding: 0 0.3rem;
+        }
 
-li.blueUnite {
-  width: 96%;
-  margin: 0 auto;
-  margin-bottom: 0.05rem;
-  background: rgba(24, 15, 170, 0.75);
-  color: #fff;
-}
+        img {
+          position: relative;
+          bottom: 0.6rem;
+          width: 1rem;
+          float: left;
+        }
 
-li.yellowUnite {
-  width: 96%;
-  float: right;
-  background: rgba(228, 196, 25, 0.75);
-  color: #fff;
-}
+        .rowValue {
+          float: right;
+          padding-right: 0.2rem;
 
+          em {
+            float: left;
+            color: white;
+            font-size: 0.4rem;
+            font-style: normal;
+          }
 
-li .CLEscore {
-  width: 1.65rem;
-  float: left;
-  font-size: 0.4rem;
-  margin-left: 1%;
-  line-height: 0.8rem;
-  text-align: left;
-}
+          s {
+            text-decoration: none;
+            float: right;
+            text-align: right;
+            font-size: 0.6rem;
+            color: white;
+            line-height: 0.5rem;
+            padding: 0 0.2rem;
+
+            &.winnerSum {
+              color: #FFEB50;
+            }
+          }
+        }
+      }
+    }
 
-li .CLEscore em {
-  font-size: 0.3rem;
-  /*font-size: 0;*/
-}
+    .vsSign {
+      @include cube;
+      height: 1.3rem;
+      position: relative;
+      bottom: 1.3rem;
+
+      img {
+        position: absolute;
+        width: 1rem;
+        height: 0.9rem;
+        z-index: 444;
+      }
 
-li .CLEscore span {
-  padding-left: 0.1rem;
-  font-size: 0.3rem;
-  /*font-size: 12px;*/
-}
+      img:nth-child(1) {
 
-li .CKscore {
-  /*width: 1.6rem;*/
-  float: left;
-  font-size: 0.4rem;
-  margin-left: 2%;
-  line-height: 0.8rem;
-  text-align: left;
-}
+        float: left;
+        left: 32%;
+      }
 
-li .CKscore em {
-  font-size: 0.3rem;
-}
+      img:nth-child(2) {
+        float: right;
+        right: 33%;
+      }
+    }
 
-li .record img {
-  width: 0.7rem;
-  float: left;
-}
+    .listContainer {
+      @include cube;
+      width: 90%;
+      position: relative;
+      bottom: 1.5rem;
 
-li.mvpli {
-  padding-top: 0.15rem;
-  padding-bottom: 0.15rem;
-}
+      .lt {
+        width: 33.33%;
+        float: left;
+      }
 
-li.mvpli .CLEscore {
-  font-size: 0.4rem;
-}
+      .md {
+        width: 33.33%;
+        float: left;
+      }
 
-li.mvpli .CKscore {
-  font-size: 0.4rem;
-}
+      .rt {
+        width: 33.33%;
+        float: right;
+      }
 
-li.mvpli .head {
-  width: 0.7rem;
-  height: 0.8rem;
-}
+      .ltTitle {
+        @include cube;
+        width: 90%;
 
-li.mvpli .head img {
-  height: 0.7rem;
-  margin-top: -0.05rem;
-}
+        span {
+          float: left;
+          color: #fff;
+          font-size: 0.3rem;
 
-li.mvpli .name {
-  font-size: 0.3rem;
-}
+          &:nth-child(1) {
+            margin-right: 1.5rem;
+          }
 
-li .king {
-  width: 0.4rem;
-  height: 0.2rem;
-  float: left;
-  position: relative;
-  top: -0.7rem;
-  left: -0.1rem;
-}
+          &:last-child {
+            float: right;
+          }
+        }
+      }
+
+      ul {
+        @include cube;
+
+        li {
+          @include cube;
+          width: 90%;
+          height: 0.7rem;
+          padding-top: 0.2rem;
+
+          .gary {
+            @include cube;
+            height: 0.6rem;
+            margin-bottom: 0.3rem;
+            background-repeat: no-repeat;
+            background-position: top center;
+            background-size: 100% 100%;
+            overflow: visible;
+
+            &.redrow {
+              background: url("../assets/imgs/3pkRank/redrow.png");
+            }
+
+            &.bluerow {
+              background: url("../assets/imgs/3pkRank/bluerow.png");
+            }
+
+            &.yellowrow {
+              background: url("../assets/imgs/3pkRank/yellowrow.png");
+            }
+          }
+
+
+          em {
+            width: 0.6rem;
+            height: 0.6rem;
+            float: left;
+            background: url("../assets/imgs/rank/rowTitle.png");
+            background-repeat: no-repeat;
+            background-position: top center;
+            background-size: 100% 100%;
+            text-align: left;
+            text-indent: 0.1rem;
+            font-size: 0.4rem;
+            font-weight: bold;
+            text-decoration: none;
+            font-style: normal;
+            color: white;
+            line-height: 0.6rem;
+          }
+
+          .head {
+            position: relative;
+            bottom: 0.4rem;
+            float: left;
+            margin-left: 0.3rem;
+
+            img {
+              width: 0.6rem;
+              border-radius: 250rem;
 
-li.mvpli .head img.king {
-  top: -1rem;
+              &.girl {
+                border: 0.05rem solid #EA26EA;
+              }
+
+              &.boy {
+                border: 0.05rem solid #39B6FF;
+              }
+            }
+          }
+
+          .names {
+            float: left;
+            color: white;
+            font-size: 0.3rem;
+            line-height: 0.6rem;
+            margin-left: 0.4rem;
+          }
+
+          .glory {
+            float: left;
+            margin-left: 0.4rem;
+
+            img {
+              float: right;
+              width: 0.6rem;
+              margin-left: 0.2rem;
+              margin-top: 0.1rem;
+            }
+          }
+
+          .score {
+            float: right;
+            color: #FFE61F;
+            font-size: 0.3rem;
+            line-height: 0.6rem;
+            font-family: Arial;
+            font-weight: bold;
+            font-style: italic;
+            text-align: center;
+          }
+        }
+      }
+    }
+  }
 }
 
-.tips {
+.icons {
+  @include cube;
   position: absolute;
-  right: 3%;
-  top: 1rem;
-  font-size: 0.4rem;
-  color: #fff;
+  bottom: 0.2rem;
+
+  img {
+    @include cube;
+    width: 40%;
+  }
 }
-</style>
+</style>

+ 1 - 1
v2tv/src/views/Rank.vue

@@ -148,8 +148,8 @@ export default {
       let postdata = qs.stringify(param);
       ClassUserRank(postdata).then(res => {
         let json = res;
+        console.log(json);
         if (json.Code == 0) {
-          console.log(json);
           let totalTime = 40;
           let Studenlength = 0;
           if (json.Rs) {

+ 41 - 11
v2tv/src/views/Wait.vue

@@ -27,7 +27,7 @@
       </div>
       <div class="md">
         <h5 :class="[{'timeTitle weeksTitle':true},{ ' box animate__animated animate__flipInX': Listate[0].state }]">
-          
+          
         </h5>
         <span class="sub">
               场馆卡路里总消耗
@@ -69,7 +69,7 @@
         <div class="listTitle">
           <span>排名</span>
           <span>成员</span>
-          <span>CK</span>
+          <span>C K</span>
         </div>
         <ul>
           <li v-for="(s,i) in rt[3].Result" :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
@@ -148,7 +148,7 @@
         <div class="listTitle">
           <span>排名</span>
           <span>成员</span>
-          <span>CK</span>
+          <span>C K</span>
         </div>
         <ul>
           <li v-for="(s,i) in rt[1].Result" :class="[{ 'box animate__animated animate__flipInX': Listate[i].state }]">
@@ -165,9 +165,11 @@
         </ul>
       </div>
     </div>
-    <div class="icons">
+    <div class="icons" @click="playBell">
       <img src="../assets/imgs/wait/icons.svg" alt="">
     </div>
+    <audio class="success" src="../static/sound/bell.wav" autoplay="autoplay" v-if="bellState">
+    </audio>
   </div>
 </template>
 
@@ -183,6 +185,8 @@ import {
   UserRankingQuery
 } from '@/api/getApiRes'
 
+import audio from '../static/sound/bell.wav'
+
 let qs = require('qs');
 export default {
   data() {
@@ -190,6 +194,7 @@ export default {
       eqSn: '30:9C:23:0C:8B:1E',
       pageStyle: RandomBg2(),
       page: true,
+      bellState: false,
       pageTimer: null,
       waitTimer: null,
       Listate: [
@@ -217,13 +222,14 @@ export default {
     }
   },
   mounted() {
+
     this.init();
     if (this.pageTimer) {
       clearInterval(this.pageTimer);
     } else {
       this.timer = setInterval(() => {
         this.page = !this.page;
-        this.cardPlay();
+        // this.cardPlay();
       }, 10000)
     }
     this.cardPlay();
@@ -237,6 +243,7 @@ export default {
       let that = this;
       if (val.path == '/') {
         that.init();
+        this.cardPlay();
       } else {
         clearInterval(this.pageTimer);
         clearInterval(this.waitTimer);
@@ -244,6 +251,9 @@ export default {
     }
   },
   methods: {
+    playBell() {
+      this.bellState = !this.bellState
+    },
     init() {
       this.curgetClassStat();
       this.GetHerosRankingQuery();
@@ -377,6 +387,8 @@ export default {
         }
       })
     },
+    playSound() {
+    },
   },
   components: {
     Headside
@@ -449,7 +461,7 @@ $yellow: #FFEB50;
         font-size: 0.3rem;
         color: $font-color;
         overflow: visible;
-        border: 1px solid rgba(0, 0, 0, 0.7);
+        border: 0.01rem solid rgba(255, 255, 255, 0.1);
 
         .num {
           position: relative;
@@ -497,8 +509,9 @@ $yellow: #FFEB50;
         }
 
         em {
+          width: 0.95rem;
           float: right;
-          text-align: right;
+          text-align: left;
           font-style: normal;
           font-weight: bold;
           color: $yellow;
@@ -517,7 +530,7 @@ $yellow: #FFEB50;
       @include cube;
       width: 3rem;
       height: 1rem;
-      font-size: 0.4rem;
+      font-size: 0.5rem;
       text-align: center;
       line-height: 0.85rem;
       color: $font-color;
@@ -529,6 +542,8 @@ $yellow: #FFEB50;
       background-repeat: no-repeat;
       background-position: top center;
       background-size: 100%;
+      font-weight: bold;
+      letter-spacing: 0.05rem;
     }
 
     .monsTitle {
@@ -536,6 +551,8 @@ $yellow: #FFEB50;
       background-repeat: no-repeat;
       background-position: top center;
       background-size: 100%;
+      font-weight: bold;
+      letter-spacing: 0.05rem;
     }
 
     .sub {
@@ -550,6 +567,11 @@ $yellow: #FFEB50;
       height: 5rem;
       color: $font-color;
       font-size: 0.3rem;
+      box-shadow: #2b2b2b;
+      font-family: "Artifakt Element";
+      font-weight: bold;
+      font-style: italic;
+      text-shadow: 0px 3px 6px rgba(0, 0, 0, 0.47);
 
       h5 {
         height: 1.6rem;
@@ -592,6 +614,8 @@ $yellow: #FFEB50;
         justify-content: center;
         flex-grow: 1;
         height: 100%;
+        position: relative;
+        bottom: 0.1rem;
 
         li {
           width: 1.8rem;
@@ -711,18 +735,20 @@ $yellow: #FFEB50;
     text-align: center;
     font-size: 0.4rem;
     line-height: 0.5rem;
+    font-weight: bold;
+    letter-spacing: 0.05rem;
   }
 
   .listTitle {
     @include cube;
     width: 96%;
-    margin-top: 0.2rem;
+    margin-top: 0.3rem;
 
     span {
       float: left;
       text-align: left;
       color: $font-color;
-      font-size: 0.3rem;
+      font-size: 0.25rem;
 
       &:first-child {
         width: 2rem;
@@ -731,12 +757,16 @@ $yellow: #FFEB50;
       &:last-child {
         float: right;
         text-align: right;
-        margin-right: 0.2rem;
+        margin-right: 0.35rem;
       }
     }
   }
 }
 
+.rt .listTitle span:last-child {
+  margin-right: 0.6rem;
+}
+
 .icons {
   @include cube;
   width: 7rem;