Changpeng Duan 4 년 전
부모
커밋
b0ab5dfe4b

+ 6 - 0
.idea/sasslintPlugin.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SassLintProjectComponent">
+    <option name="nodeInterpreter" value="" />
+  </component>
+</project>

+ 1 - 1
.idea/watcherTasks.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ProjectTasksOptions">
-    <TaskOptions isEnabled="true">
+    <TaskOptions isEnabled="false">
       <option name="arguments" value="$FileName$:$FileNameWithoutExtension$.css" />
       <option name="checkSyntaxErrors" value="true" />
       <option name="description" />

+ 2 - 0
v2tv/package.json

@@ -31,6 +31,8 @@
     "@vue/cli-plugin-vuex": "~4.4.0",
     "@vue/cli-service": "~4.4.0",
     "axios": "^0.18.0",
+    "node-sass": "^5.0.0",
+    "sass-loader": "^10.1.1",
     "vue-cli-plugin-axios": "0.0.4",
     "vue-template-compiler": "^2.6.11"
   },

+ 23 - 10
v2tv/src/Global.js

@@ -118,6 +118,19 @@ globalcurrent = function () {
     let thisdata = year + seperator1 + month + seperator1 + strDate;
     return thisdata;
 };
+globalcurrentByCN = function () {
+    let date = new Date();
+    let month = date.getMonth() + 1;
+    let strDate = date.getDate();
+    if (month >= 1 && month <= 9) {
+        month = "0" + month;
+    }
+    if (strDate >= 0 && strDate <= 9) {
+        strDate = "0" + strDate;
+    }
+    let thisdata = month + '月' + strDate + '日';
+    return thisdata;
+}
 
 // 校验内容长度
 globalValid = function (data, mins, maxs, text, that) {
@@ -375,25 +388,25 @@ turnStdToOption = function (data) {
 numberToWeekdays = function (val) {
     switch (parseInt(val)) {
         case 1:
-            return '星期一';
+            return '一';
             break;
         case 2:
-            return '星期二';
+            return '二';
             break;
         case 3:
-            return '星期三';
+            return '三';
             break;
         case 4:
-            return '星期四';
+            return '四';
             break;
         case 5:
-            return '星期五';
+            return '五';
             break;
         case 6:
-            return '星期六';
+            return '六';
             break;
         case 0:
-            return '星期天';
+            return '周日';
             break;
     }
 };
@@ -401,11 +414,11 @@ numberToWeekdays = function (val) {
 // 随机背景
 RandomBg = function () {
     let bgClassNum = parseInt(Math.random() * 4) + 1;
-    return 'bgStyle' + bgClassNum + '  pages';
+    return 'bgStyle' + 1 + '  pages';
 };
-RandomBg2 =function(){
+RandomBg2 = function () {
     let bgClassNum = parseInt(Math.random() * 4) + 1;
-    return 'bg2Style' + bgClassNum + '  pages';
+    return 'bg2Style' + 1 + '  pages';
 };
 
 // 运动强度

+ 1 - 1
v2tv/src/Mock/index.js

@@ -386,7 +386,7 @@ if (t == 1) {
     }
 
     // 0: 下课 团课/私教/PK 的排名
-    let LessonClass = 1;
+    let LessonClass = 0;
     let LessonDp = 1;
     // 1:团课/私教
     // 2:竞技课2PK

+ 36 - 0
v2tv/src/assets/css/bg.scss

@@ -0,0 +1,36 @@
+@mixin bg {
+  background-color: #333;
+  background-repeat: no-repeat;
+  background-position: top center;
+  background-size: 100% 100%;
+}
+
+.bgStyle1 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}
+
+.bgStyle2 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}
+
+.bgStyle3 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}
+
+.bgStyle4 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}
+
+.bg2Style1 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}
+
+.bg2Style2 {
+  background: url("../../src/assets/imgs/bg/bg1.png");
+  @include bg;
+}

BIN
v2tv/src/assets/font/Artifakt.ttf


BIN
v2tv/src/assets/imgs/bg/bg1.png


+ 26 - 0
v2tv/src/assets/imgs/headside/logo.svg

@@ -0,0 +1,26 @@
+<svg id="logo" xmlns="http://www.w3.org/2000/svg" width="135.471" height="29.566" viewBox="0 0 135.471 29.566">
+    <path id="路径_13" data-name="路径 13"
+          d="M26.348-79.016l-4.673,1.869,0,0a.675.675,0,0,1-.237.045.679.679,0,0,1-.678-.678.674.674,0,0,1,.125-.391h0a1.7,1.7,0,0,0,.024-.562,1.716,1.716,0,0,0-1.561-1.486c-.848-.062-1.777,1.23-1.76,1.181A18.768,18.768,0,0,1,3.353-72.535a18.925,18.925,0,0,1-2.786-.206,11.753,11.753,0,0,0,5.879,1.568,11.782,11.782,0,0,0,3.7-.594.4.4,0,0,1,.128-.041l.034-.011v.007l.025,0a.457.457,0,0,1,.53.3.505.505,0,0,1-.007.326A40.1,40.1,0,0,0,7.2-68.763c-6.22,4.613-8.931,11.5-6.056,15.374S11.2-49.651,17.191-54.561a16.961,16.961,0,0,0,2.471-2.465C21.952-59.6,22.79-62.71,21.5-64.175c-1.272-1.44-4.18-1.015-6.921.861,1.9-.866,3.428-.921,4.1-.082.748.935-.531,3.557-3.261,5.612C13.575-56.4,11.175-55.613,9.8-55.861c0,.011,0,.021,0,.032a3.7,3.7,0,0,1-2.624-1.355c-1.873-2.525.21-8.139,5.218-11.853a24.461,24.461,0,0,1,5.53-3.253c1.791-.628,3.688-1.177,5.679-1.777a11.332,11.332,0,0,0,2.148-.768c1.4-1.117,1.449-4.273.59-4.181"
+          transform="translate(0 80.227)" fill="#e85297"/>
+    <path id="路径_14" data-name="路径 14"
+          d="M65.885-37.767a6.527,6.527,0,0,0,2.569,3.121A7.341,7.341,0,0,0,72.526-33.5a9.414,9.414,0,0,0,4.49-1.157,10.789,10.789,0,0,0,3.666-3.109,9.9,9.9,0,0,0,1.9-4.29,7.68,7.68,0,0,0-.39-4.278,6.621,6.621,0,0,0-2.569-3.121A7.362,7.362,0,0,0,75.539-50.6a9.5,9.5,0,0,0-4.476,1.145A10.8,10.8,0,0,0,67.4-46.347a9.9,9.9,0,0,0-1.9,4.29,7.7,7.7,0,0,0,.388,4.29M70.8-44.154a5.4,5.4,0,0,1,1.785-1.519,4.61,4.61,0,0,1,2.181-.554,3.587,3.587,0,0,1,2,.554,3.207,3.207,0,0,1,1.262,1.519,3.754,3.754,0,0,1,.185,2.1,4.812,4.812,0,0,1-.923,2.1,5.358,5.358,0,0,1-1.8,1.518,4.612,4.612,0,0,1-2.195.566,3.533,3.533,0,0,1-1.983-.566,3.325,3.325,0,0,1-1.25-1.518,3.712,3.712,0,0,1-.2-2.1,4.79,4.79,0,0,1,.935-2.1"
+          transform="translate(-39.437 61.519)" fill="#d8d8d8"/>
+    <path id="路径_15" data-name="路径 15"
+          d="M136.507-43.636a8.683,8.683,0,0,0,.123-2.748,5.029,5.029,0,0,0-.829-2.061,4.756,4.756,0,0,0-1.871-1.615,5.922,5.922,0,0,0-2.565-.542,7.12,7.12,0,0,0-2.849.59,7.9,7.9,0,0,0-2.477,1.687,7.1,7.1,0,0,0-1.06,1.3,7.6,7.6,0,0,0-.735,1.507,10.623,10.623,0,0,0-.488,1.88l-.106.6-1.622,9.207h4.4l.792-4.495h3.961l-.792,4.495h4.4l1.622-9.207Zm-8.354-.012a4.29,4.29,0,0,1,.446-1.434,2.379,2.379,0,0,1,.861-.856,2.215,2.215,0,0,1,1.141-.325,1.792,1.792,0,0,1,.987.277,1.488,1.488,0,0,1,.565.759,3.784,3.784,0,0,1-.037,1.579l-.28,1.591h-3.962Z"
+          transform="translate(-74.968 61.519)" fill="#d8d8d8"/>
+    <path id="路径_16" data-name="路径 16"
+          d="M170.479-37.523a1.2,1.2,0,0,1-.24-.687,6.465,6.465,0,0,1,.135-1.313l.093-.53,1.7-9.665h-4.4l-1.629,9.243-.106.6a8.645,8.645,0,0,0-.013,4.037q.8,2.495,3.858,2.567h.915l3.209.082.557-3.9-1.25.061c-.755,0-2.568-.165-2.838-.494"
+          transform="translate(-102.61 60.961)" fill="#d8d8d8"/>
+    <path id="路径_17" data-name="路径 17"
+          d="M226.062-37.767a6.527,6.527,0,0,0,2.569,3.121A7.341,7.341,0,0,0,232.7-33.5a9.415,9.415,0,0,0,4.49-1.157,10.789,10.789,0,0,0,3.666-3.109,9.9,9.9,0,0,0,1.9-4.29,7.677,7.677,0,0,0-.39-4.278,6.619,6.619,0,0,0-2.569-3.121,7.363,7.363,0,0,0-4.085-1.145,9.5,9.5,0,0,0-4.476,1.145,10.8,10.8,0,0,0-3.666,3.109,9.9,9.9,0,0,0-1.9,4.29,7.7,7.7,0,0,0,.388,4.29m4.918-6.387a5.4,5.4,0,0,1,1.784-1.519,4.612,4.612,0,0,1,2.181-.554,3.588,3.588,0,0,1,2,.554,3.209,3.209,0,0,1,1.262,1.519,3.753,3.753,0,0,1,.185,2.1,4.813,4.813,0,0,1-.924,2.1,5.358,5.358,0,0,1-1.8,1.518,4.612,4.612,0,0,1-2.195.566,3.533,3.533,0,0,1-1.983-.566,3.323,3.323,0,0,1-1.25-1.518,3.712,3.712,0,0,1-.2-2.1,4.789,4.789,0,0,1,.935-2.1"
+          transform="translate(-140.332 61.519)" fill="#d8d8d8"/>
+    <path id="路径_18" data-name="路径 18"
+          d="M273.966-39.968a8.623,8.623,0,0,0-.221,1.935,4.447,4.447,0,0,0,.29,1.55,4.337,4.337,0,0,0,.771,1.31,5.764,5.764,0,0,0,2.255,1.61,8.1,8.1,0,0,0,3.04.541,10.011,10.011,0,0,0,3.1-.493,9.659,9.659,0,0,0,2.778-1.418,7.94,7.94,0,0,0,2.074-2.163,8.823,8.823,0,0,0,1.092-2.872l.126-.6L291.2-49.75h-5.232l-2.06,9.795-.088.42a2.647,2.647,0,0,1-.976,1.574,2.9,2.9,0,0,1-1.835.613,2.24,2.24,0,0,1-1.143-.289,1.468,1.468,0,0,1-.7-.745,2.945,2.945,0,0,1,.03-1.574l2.06-9.795h-5.232l-1.931,9.182Z"
+          transform="translate(-170.774 60.982)" fill="#d8d8d8"/>
+    <path id="路径_19" data-name="路径 19"
+          d="M331.74-45.374l4.632.088.743-4.461H323.372l-.743,4.461,4.728-.088-2.13,12.087h4.383Z"
+          transform="translate(-201.644 60.979)" fill="#d8d8d8"/>
+    <path id="路径_20" data-name="路径 20"
+          d="M196.18-37.523a1.2,1.2,0,0,1-.24-.687,6.47,6.47,0,0,1,.135-1.313l.093-.53,1.7-9.665h-4.4l-1.629,9.243-.106.6a8.644,8.644,0,0,0-.013,4.037q.8,2.495,3.858,2.567h.915l3.209.082.557-3.9-1.25.061c-.755,0-2.568-.165-2.838-.494"
+          transform="translate(-118.84 60.961)" fill="#d8d8d8"/>
+</svg>

+ 32 - 0
v2tv/src/assets/imgs/wait/CR.svg

@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="54"
+     viewBox="0 0 64 54">
+    <defs>
+        <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#d11122"/>
+            <stop offset="1" stop-color="#ff4b5a"/>
+        </linearGradient>
+        <linearGradient id="linear-gradient-2" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#d11122"/>
+            <stop offset="1" stop-color="#fcab4c"/>
+        </linearGradient>
+        <filter id="矩形_191" x="0" y="0" width="27" height="54" filterUnits="userSpaceOnUse">
+            <feOffset dy="3" input="SourceAlpha"/>
+            <feGaussianBlur stdDeviation="3" result="blur"/>
+            <feFlood flood-opacity="0.361"/>
+            <feComposite operator="in" in2="blur"/>
+            <feComposite in="SourceGraphic"/>
+        </filter>
+    </defs>
+    <g id="CR-i" transform="translate(9.262 5)">
+        <rect id="矩形_190" data-name="矩形 190" width="55" height="36" rx="7" transform="translate(-0.262 1)"
+              opacity="0.853" fill="url(#linear-gradient)"/>
+        <g transform="matrix(1, 0, 0, 1, -9.26, -5)" filter="url(#矩形_191)">
+            <rect id="矩形_191-2" data-name="矩形 191" width="9" height="36" rx="4.5" transform="translate(9 6)"
+                  opacity="0.853" fill="url(#linear-gradient-2)"/>
+        </g>
+        <text id="CR" transform="translate(30.738 27)" fill="#fff" font-size="25"
+              font-family="PingFangSC-Medium, PingFang SC" font-weight="500">
+            <tspan x="-17.788" y="0">CR</tspan>
+        </text>
+    </g>
+</svg>

+ 15 - 0
v2tv/src/assets/imgs/wait/litr.svg

@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="56.555" height="59"
+     viewBox="0 0 56.555 59">
+    <defs>
+        <linearGradient id="linear-gradient" y1="0.5" x2="1" y2="0.5" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-color="#fff" stop-opacity="0.588"/>
+            <stop offset="0.246" stop-color="#fff" stop-opacity="0.396"/>
+            <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+        </linearGradient>
+    </defs>
+    <g id="路径_152" data-name="路径 152" transform="translate(-22.445)" fill="url(#linear-gradient)">
+        <path d="M22.445,0H49.5C65.792,0,79,29.5,79,29.5S65.792,59,49.5,59H22.445Z" stroke="none"/>
+        <path d="M 23.444580078125 1 L 23.444580078125 58 L 49.5 58 C 52.98337936401367 58 56.63510131835938 56.52402114868164 60.35372924804688 53.61305999755859 C 63.40036010742188 51.2281494140625 66.48796081542969 47.88941955566406 69.53079223632813 43.68962097167969 C 74.04706573486328 37.45610809326172 77.12688446044922 31.14069938659668 77.898193359375 29.4998836517334 C 77.12876892089844 27.86222839355469 74.060546875 21.56817245483398 69.54959869384766 15.33636093139648 C 66.50479888916016 11.13000869750977 63.41497039794922 7.785758972167969 60.36592864990234 5.396499633789063 C 56.64303970336914 2.479198455810547 52.98720932006836 1 49.5 1 L 23.444580078125 1 M 22.444580078125 0 L 49.5 0 C 65.79240417480469 0 79 29.5 79 29.5 C 79 29.5 65.79240417480469 59 49.5 59 L 22.444580078125 59 L 22.444580078125 0 Z"
+              stroke="none" fill="rgba(255,255,255,0.18)"/>
+    </g>
+</svg>

+ 15 - 0
v2tv/src/assets/imgs/wait/monthsTitleBg.svg

@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="331" height="100"
+     viewBox="0 0 331 100">
+    <defs>
+        <linearGradient id="linear-gradient" y1="0.5" x2="0.995" y2="0.5" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-opacity="0.616"/>
+            <stop offset="0.493" stop-color="#d923d9"/>
+            <stop offset="1" stop-opacity="0.537"/>
+        </linearGradient>
+    </defs>
+    <g id="路径_177" data-name="路径 177" opacity="0.797" fill="url(#linear-gradient)">
+        <path d="M50,0H281c27.614,0,50,50,50,50s-22.386,50-50,50H50C22.386,100,0,50,0,50S22.386,0,50,0Z" stroke="none"/>
+        <path d="M 50 2 C 44.16696166992188 2 38.04208374023438 4.478866577148438 31.79562377929688 9.367729187011719 C 26.65505981445313 13.39104461669922 21.44232177734375 19.02763366699219 16.30230712890625 26.12086486816406 C 8.77325439453125 36.51102828979492 3.6026611328125 47.03916931152344 2.204803466796875 50.00000381469727 C 3.602752685546875 52.96100997924805 8.77325439453125 63.48897171020508 16.30230712890625 73.87913513183594 C 21.44232177734375 80.97236633300781 26.65505981445313 86.60895538330078 31.79562377929688 90.63227081298828 C 38.04208374023438 95.52113342285156 44.16696166992188 98 50 98 L 281 98 C 286.8330383300781 98 292.9579162597656 95.52113342285156 299.2043762207031 90.63227081298828 C 304.344970703125 86.60895538330078 309.5576782226563 80.97236633300781 314.6976928710938 73.87913513183594 C 322.2267456054688 63.48897171020508 327.3973388671875 52.96083068847656 328.7951965332031 49.99999618530273 C 327.3972473144531 47.03899002075195 322.2267456054688 36.51102828979492 314.6976928710938 26.12086486816406 C 309.5576782226563 19.02763366699219 304.344970703125 13.39104461669922 299.2043762207031 9.367729187011719 C 292.9579162597656 4.478866577148438 286.8330383300781 2 281 2 L 50 2 M 50 0 L 281 0 C 308.6142272949219 0 331 50 331 50 C 331 50 308.6142272949219 100 281 100 L 50 100 C 22.38577270507813 100 0 50 0 50 C 0 50 22.38577270507813 0 50 0 Z"
+              stroke="none" fill="rgba(255,255,255,0.53)"/>
+    </g>
+</svg>

BIN
v2tv/src/assets/imgs/wait/title.png


+ 15 - 0
v2tv/src/assets/imgs/wait/weeksTitleBg.svg

@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="331" height="100"
+     viewBox="0 0 331 100">
+    <defs>
+        <linearGradient id="linear-gradient" y1="0.5" x2="0.995" y2="0.5" gradientUnits="objectBoundingBox">
+            <stop offset="0" stop-opacity="0.616"/>
+            <stop offset="0.493" stop-color="#4cbbfc"/>
+            <stop offset="1" stop-opacity="0.537"/>
+        </linearGradient>
+    </defs>
+    <g id="路径_177" data-name="路径 177" opacity="0.797" fill="url(#linear-gradient)">
+        <path d="M50,0H281c27.614,0,50,50,50,50s-22.386,50-50,50H50C22.386,100,0,50,0,50S22.386,0,50,0Z" stroke="none"/>
+        <path d="M 50 2 C 44.16696166992188 2 38.04208374023438 4.478866577148438 31.79562377929688 9.367729187011719 C 26.65505981445313 13.39104461669922 21.44232177734375 19.02763366699219 16.30230712890625 26.12086486816406 C 8.77325439453125 36.51102828979492 3.6026611328125 47.03916931152344 2.204803466796875 50.00000381469727 C 3.602752685546875 52.96100997924805 8.77325439453125 63.48897171020508 16.30230712890625 73.87913513183594 C 21.44232177734375 80.97236633300781 26.65505981445313 86.60895538330078 31.79562377929688 90.63227081298828 C 38.04208374023438 95.52113342285156 44.16696166992188 98 50 98 L 281 98 C 286.8330383300781 98 292.9579162597656 95.52113342285156 299.2043762207031 90.63227081298828 C 304.344970703125 86.60895538330078 309.5576782226563 80.97236633300781 314.6976928710938 73.87913513183594 C 322.2267456054688 63.48897171020508 327.3973388671875 52.96083068847656 328.7951965332031 49.99999618530273 C 327.3972473144531 47.03899002075195 322.2267456054688 36.51102828979492 314.6976928710938 26.12086486816406 C 309.5576782226563 19.02763366699219 304.344970703125 13.39104461669922 299.2043762207031 9.367729187011719 C 292.9579162597656 4.478866577148438 286.8330383300781 2 281 2 L 50 2 M 50 0 L 281 0 C 308.6142272949219 0 331 50 331 50 C 331 50 308.6142272949219 100 281 100 L 50 100 C 22.38577270507813 100 0 50 0 50 C 0 50 22.38577270507813 0 50 0 Z"
+              stroke="none" fill="rgba(255,255,255,0.53)"/>
+    </g>
+</svg>

+ 53 - 95
v2tv/src/components/Headside.vue

@@ -1,16 +1,15 @@
 <template>
-  <div class="headerContainer dv1">
-    <div class="lt" @click="showfullScreen()">
-      <em> {{ nowWeeks }}</em> <span>  {{ nowDay }}</span>
+  <div class="headerContainer">
+    <div class="lt">
+      <img @click="showConsole()" src="../assets/imgs/headside/logo.svg" alt="">
     </div>
     <div class="rt">
-      {{ nowTime }}
-      <span @click="showUuid()">版本:{{ version }}</span>
-      <img @click="showConsole()" src="../static/img/blue.svg"/>
-      <img src="../static/img/wifi.svg"/>
+      <p @click="showUuid()">版本{{ version }}</p>
+      <span>{{ nowTime }}</span>
+      <span>{{ nowWeeks }}</span>
+      <span>{{ nowDay }}</span>
     </div>
 
-
     <el-dialog
         title=""
         :visible.sync="dialogVisible"
@@ -22,13 +21,13 @@
       <div id='qrcode' class="qrcode" ref="qrCodeUrl">
       </div>
       <table>
-        <th>
-            <td>版本</td>
-            <td>热点IP</td>
-        </th>
         <tr>
-          <td>{{currunVersion}}</td>
-          <td>{{curheadapi}}</td>
+          <td>版本</td>
+          <td>热点IP</td>
+        </tr>
+        <tr>
+          <td>{{ currunVersion }}</td>
+          <td>{{ curheadapi }}</td>
         </tr>
       </table>
       <span slot="footer" class="dialog-footer">
@@ -48,23 +47,25 @@ export default {
     return {
       dialogVisible: false,
       lastClickTime: 0,
-      count:0,
+      count: 0,
       eqSn: localStorage.eqSn,
       nowWeeks: '',
       nowDay: '',
       nowTime: '',
       version: '',
-      currunVersion:runVersion,
-      curheadapi:headapi,
+      currunVersion: runVersion,
+      curheadapi: headapi,
     }
   },
   mounted() {
     this.nowtimer = setInterval(() => {
       let date = new Date();
       let h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
-      let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
+      // let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
+      let m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes();
       let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
-      this.nowTime = h + m + s;
+      // this.nowTime = h + m + s;
+      this.nowTime = h + m;
       this.nowDayFunc();
       // 获取版本号
       this.version = localStorage.version;
@@ -79,8 +80,8 @@ export default {
   methods: {
     // 手动开启输出控制台
     showConsole() {
-        let vconDom = document.getElementById('__vconsole');
-        this.toggleClass(vconDom,'show')
+      let vconDom = document.getElementById('__vconsole');
+      this.toggleClass(vconDom, 'show')
     },
     hasClass(obj, cls) {
       return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
@@ -88,10 +89,10 @@ export default {
     addClass(obj, cls) {
       if (!this.hasClass(obj, cls)) obj.className += " " + cls;
     },
-    toggleClass(obj,cls){
-      if(this.hasClass(obj,cls)){
+    toggleClass(obj, cls) {
+      if (this.hasClass(obj, cls)) {
         this.removeClass(obj, cls);
-      }else{
+      } else {
         this.addClass(obj, cls);
       }
     },
@@ -118,7 +119,7 @@ export default {
       let days = new Date().getDay();
       let wd = numberToWeekdays(days);
       this.nowWeeks = wd;
-      this.nowDay = globalcurrent();
+      this.nowDay = globalcurrentByCN();
     },
     // 获取当前版本
     getCurVersion() {
@@ -149,91 +150,48 @@ export default {
 }
 </script>
 
-<style scoped>
-.headerContainer {
-  height: 4%;
+<style lang="scss" scoped>
+@mixin cube {
+  width: 98%;
   overflow: hidden;
   display: block;
   margin: 0 auto;
-  margin-top: 1%;
-  padding: 2%;
-  background: url("../static/img/logo.svg");
-  background-position: top center;
-  background-repeat: no-repeat;
-  background-size: 14%;
 }
 
-* {
-  font-family: vista;
+.headerContainer {
+  @include cube
 }
 
 .lt {
-  width: 40%;
   float: left;
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.4rem;
-  text-align: left;
-  color: #fff;
-  line-height: 20%;
+
+  img {
+    width: 1.6rem;
+    float: left;
+    margin-top: 0.2rem;
+  }
 }
 
 .rt {
-  width: 40%;
   float: right;
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.4rem;
-  text-align: right;
   color: #fff;
-  line-height: 20%;
-  padding-right: 14%;
-}
-
-.rt img {
-  position: absolute;
-  top: 4%;
-  right: 9%;
-  padding: 0;
-  margin: 0;
-  float: right;
-  width: 0.4rem;
-  height: 0.4rem;
-}
 
-.rt img:nth-child(2) {
-  right: 12%;
-}
-
-em {
-  float: left;
-  font-style: normal;
-  margin-right: 0.5rem;
-}
-
-.rt span {
-  position: absolute;
-  top: 4%;
-  right: 2%;
-  float: right;
-  color: #fff;
-  font-size: 0.2rem;
-  text-align: center;
-  background: rgba(0, 0, 0, 0.35);
-  width: 1.2rem;
-  height: 0.4rem;
-  line-height: 0.4rem;
-  cursor: pointer;
-}
+  span {
+    float: right;
+    font-size: 0.3rem;
+    line-height: 0.4rem;
+    margin-right: 0.2rem;
+    margin-top: 0.2rem;
+  }
 
-#qrcode {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
+  p {
+    float: right;
+    margin: 0;
+    margin-top: 0.2rem;
+    text-align: right;
+    font-size: 0.27rem;
+    line-height: 0.4rem;
+  }
 }
 
-.eqSnText {
-  font-size: 0.4rem;
-}
-</style>
+</style>

+ 3 - 3
v2tv/src/views/Index.vue

@@ -33,7 +33,7 @@ export default {
         clmurl: '/',
       }],
       editableTabsValue: '1',
-      curVersion: '1.0.1',
+      curVersion: '2.0',
       isPad: true,// pad 展示版本
       ClentHeight: document.documentElement.clientHeight + 'px'
     }
@@ -41,7 +41,7 @@ export default {
   mounted() {
     //浏览器默认的
     localStorage.eqSn = '30:9C:23:0C:8B:1E';
-    localStorage.version = '1.1.0';
+    localStorage.version = '2.0';
     this.getCurVersion();
 
   },
@@ -51,7 +51,7 @@ export default {
       let that = this;
       //浏览器默认的
       localStorage.eqSn = '30:9C:23:0C:8B:1E';
-      localStorage.version = '1.1.0';
+      localStorage.version = '2.0';
 
       if (window.plus) {
         plusReady();

+ 3 - 2
v2tv/src/views/Main.vue

@@ -363,8 +363,9 @@ export default {
 }
 </script>
 
-<style scoped>
-@import "../assets/css/bg.css";
+<style lang="scss" scoped>
+//@import "../assets/css/bg.css";
+@import "../assets/css/bg.scss";
 
 * {
   font-family: vista;

+ 247 - 832
v2tv/src/views/Wait.vue

@@ -1,109 +1,80 @@
 <template>
   <div :class="pageStyle">
     <Headside></Headside>
-    <div class="rankContainer">
-      <div class="lt">
-        <div class="recordMain">
-          <el-carousel :interval="30000" height="100%">
-            <el-carousel-item v-for="rs in recordMain">
-              <div>
-                <h5 v-html="rs.Title"></h5>
-                <div class="sumContainer">
-                  <div class="sum">
-                    <s>{{ rs.Result[0].Unite }}</s>
-                    <sumNumber :cur-number="rs.Result[0].Values"></sumNumber>
-                  </div>
-                  <span class="sumBg"></span>
-                </div>
-              </div>
-            </el-carousel-item>
-          </el-carousel>
-        </div>
-        <div class="bottom">
-          <el-carousel :interval="15000" height="100%">
-            <el-carousel-item v-for="Rs in bottom">
-              <div class="topOne" v-if="Rs.Style == 'tops'">
-                <h5>{{ Rs.Title }}</h5>
-                <ul>
-                  <li v-for="(tops,i) in Rs.Result">
-                    <div class="dgCenter">
-                      <div class="dghead">
-                        <img :id="'circle_'+i"
-                             v-bind:src="tops.Head" alt="" v-if="tops.Head">
-                        <img :id="'circle_'+i"
-                             v-bind:src="require('../static/img/people/flyhead.png')" alt=""
-                             v-if="!tops.Head">
-                        <img src="../static/img/wait/boy.png" class="sex" v-if="tops.Sex == 1"/>
-                        <img src="../static/img/wait/girl.png" class="sex" v-if="tops.Sex == 2"/>
-                        <s>{{ tops.UserName }}</s>
-                      </div>
-                      <div class="score">
-                        <em>{{ tops.Values }}</em>
-                        <span>
-                                                    {{ tops.Message }}
-                                                </span>
-                      </div>
-                    </div>
-                  </li>
-                  <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有新成果哟~</span>
-                </ul>
-              </div>
-              <div class="heros" v-if="Rs.Style == 'heros'">
-                <h5>{{ Rs.Title }}</h5>
-                <ul>
-                  <li v-for="(hero,i) in Rs.Result">
-                    <img :id="'circle_'+i"
-                         v-bind:src="hero.Head" alt="" v-if="hero.Head">
-                    <img :id="'circle_'+i"
-                         v-bind:src="require('../static/img/people/flyhead.png')"
-                         alt="" v-if="!hero.Head">
-                    <img src="../static/img/wait/boy.png" class="sex" v-if="hero.Sex == 1"/>
-                    <img src="../static/img/wait/girl.png" class="sex" v-if="hero.Sex == 2"/>
-                    <div>
-                      <em :id="'red_'+i">No.{{ i + 1 }}</em> {{ hero.UserName }}
-                    </div>
-                    <span>{{ hero.Values }} {{ hero.Unite }}</span>
-                  </li>
-                  <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有人突破记录哟~</span>
-                </ul>
-              </div>
-            </el-carousel-item>
-          </el-carousel>
-        </div>
-      </div>
-      <div class="rt">
-        <el-carousel :interval="15000" height="100%">
-          <el-carousel-item v-for="Rs in rt">
-            <h5>{{ Rs.Title }}</h5>
+    <el-carousel :interval="300000000" height="100%">
+      <el-carousel-item>
+        <div class="container">
+          <div class="lt lists">
+            <div class="partTitle">
+              卡路里排名
+            </div>
+            <div class="listTitle">
+              <span>排名</span>
+              <span>成员</span>
+              <span>卡路里</span>
+            </div>
             <ul>
-              <li v-for="s in Rs.Result" v-if="Rs.Result">
-                <img :src="s.Head" alt="" v-if="s.Head">
-                <img v-bind:src="require('../static/img/people/flyhead.png')" alt="" v-if="!s.Head">
-                <em>{{ s.UserName }}</em>
-                <s>{{ s.Values }}</s>
+              <li v-for="(s,i) in 8">
+                <div class="num">{{ i + 1 }}</div>
+                <img class="headImg" v-bind:src="require('../static/img/people/flyhead.png')" alt="学生头像">
+                <span>王仪涵</span>
+                <img class="crIcon" v-bind:src="require('../assets/imgs/wait/CR.svg')" alt="">
+                <em>23.1</em>
               </li>
-              <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有排行记录哟~</span>
             </ul>
-          </el-carousel-item>
-        </el-carousel>
-      </div>
-    </div>
-    <el-dialog
-        title="提示"
-        :visible.sync="dialogVisible"
-        width="30%"
-    >
-      <span>{{ dialogText }}</span>
-      <span slot="footer" class="dialog-footer">
-    <el-button type="primary" @click="dialogVisible = false">知道了</el-button>
-  </span>
-    </el-dialog>
+          </div>
+          <div class="md">
+            <h5 class="timeTitle weeksTitle">
+              本周
+            </h5>
+            <span class="sub">
+              场馆卡路里总消耗
+            </span>
+            <div class="sumCalc">
+              <h5>123456</h5>
+              <em>Kcal</em>
+            </div>
+            <div class="person">
+              <!--               hero-->
+              <!--               best-->
+            </div>
+          </div>
+          <div class="rt lists">
+            <div class="partTitle">
+              CK排名
+            </div>
+            <div class="listTitle">
+              <span>排名</span>
+              <span>成员</span>
+              <span>CK</span>
+            </div>
+            <ul>
+              <li v-for="(s,i) in 8">
+                <div class="num">{{ i + 1 }}</div>
+                <img class="headImg" v-bind:src="require('../static/img/people/flyhead.png')" alt="学生头像">
+                <span>王仪涵</span>
+                <img class="crIcon" v-bind:src="require('../assets/imgs/wait/CR.svg')" alt="">
+                <em>23.1</em>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </el-carousel-item>
+      <!--      <el-carousel-item>-->
+      <!--        <div class="container">-->
+      <!--          <div class="lt"></div>-->
+      <!--          <div class="md"></div>-->
+      <!--          <div class="rt"></div>-->
+      <!--        </div>-->
+      <!--      </el-carousel-item>-->
+    </el-carousel>
   </div>
 </template>
 
 <script>
 import Headside from '@/components/Headside'
-import sumNumber from '@/components/sumNumber'
+import '../libs/rem';
+import '../Global'
 import {
   getHello,
   getClassStat,
@@ -111,791 +82,235 @@ import {
   CalorieStatsQuery,
   UserRankingQuery
 } from '@/api/getApiRes'
-import '../libs/rem';
-import '../Global'
-
-// 测试模式 localStorage.eqSn = "8e501b0bde9ce600"
 
-let qs = require('qs');
 export default {
   data() {
     return {
       eqSn: '30:9C:23:0C:8B:1E',
       pageStyle: RandomBg2(),
-      trueDate: true,//真实数据 true false
-      autoplayStatus: false,// false
-      dialogVisible: false,// false
-      dialogText: '',// false
-      fakeNums: 8,//
-      unite: '卡路里',
-      topMsg: '',
-      students: [],
-      studentsLimit: [],
-      showType: 2,//1 单人
-      curIndex: false,//1 单人
-      waitTimer: null,//null
-      test:
-          {
-            Title: '本<s style="font-size: 0.7rem;color: red">周</s>场馆卡路里总消耗',
-            Title2: '本<s style="font-size: 0.7rem;color: red">月</s>场馆卡路里总消耗',
-            Result: [{'Values': 0, Unite: '千卡'}],
-          },
-      recordMain: [],
-      bottom: {},
-      rt: [],
     }
   },
-  mounted() {
-    if (this.trueDate) {
-      this.init();
-    } else {
-      this.students = this.fakeNews();
-      this.studentsLimit = this.fakeNewsLimit();
-      this.topMsg = this.students[0];
-      this.bottom = [
-        {
-          "Title": "本周消耗卡路里英雄榜",
-          "Style": "heros",
-          "Result": [
-            {
-              "UserName": "段长鹏",
-              "Sex": 1,
-              "Head": "",
-              "Values": "4744",
-              "Unite": "千卡",
-              "Message": ""
-            },
-            {
-              "UserName": "贾雨奇",
-              "Sex": 1,
-              "Head": "http://192.168.0.2/flyhead.png",
-              "Values": "4034",
-              "Unite": "千卡",
-              "Message": ""
-            },
-            {
-              "UserName": "郑伟",
-              "Sex": 1,
-              "Head": "http://192.168.0.2/flyhead.png",
-              "Values": "2290",
-              "Unite": "千卡",
-              "Message": ""
-            }
-          ]
-        },
-        {
-          "Title": "单次CK值(新个人记录)",
-          "Style": "tops",
-          "Result": [
-            {
-              "UserName": "郑伟",
-              "Sex": 1,
-              "Head": "",
-              "Values": "1022",
-              "Unite": "",
-              "Message": "打破了历史记录100000"
-            },
-            {
-              "UserName": "郑伟",
-              "Sex": 1,
-              "Head": "http://192.168.0.2/flyhead.png",
-              "Values": "1020",
-              "Unite": "",
-              "Message": "打破了历史记录100000"
-            }
-          ]
-        }
-      ];
-      this.rt = [
-        {
-          Title: '月度CK值排行',
-          Result: this.fakeNews(),
-        },
-        {
-          Title: '月度卡路里值排行',
-          Result: this.fakeNews(),
-        }
-      ];
-      this.recordMain = [
-        {
-          Title: '本<s>周</s>场馆卡路里总消耗',
-          Result: [{'Values': 0, Unite: '千卡'}],
-        },
-        {
-          Title: '本<s>周</s>场馆卡路里总消耗',
-          Result: [{'Values': 0, Unite: '千卡'}],
-        }
-      ]
-    }
-  },
-  watch: {
-    '$route': function (val) {
-      let that = this;
-      if (val.path == '/') {
-        this.autoplayStatus = false;
-        if (this.trueDate) {
-          that.init();
-        } else {
-          this.students = this.fakeNews();
-          this.topMsg = this.students[0];
-        }
-      } else {
-        clearInterval(this.waitTimer);
-      }
-    }
-  },
-  beforeDestroy() {
-    clearInterval(this.waitTimer);
-    this.waitTimer = null;
-  },
-  methods: {
-    init() {
-      this.waitTimer = setInterval(() => {
-        // this.$router.push({path: '/main'});
-
-        this.curgetClassStat();
-        this.GetHerosRankingQuery();
-        this.GetCalorieStatsQuery();
-        this.GetUserRankingQuery();
-      }, 1000);
-
-    },
-    fakeNews() {
-      let item = [];
-      for (var i = 0; i < 7; i++) {
-        item.push(
-            {
-              "hubId": 0,
-              "deviceId": 22756,
-              "calorie": 96.5,
-              "Values ": 96.5,
-              "heartRate": i * 5,
-              "step": i * 40,
-              "userName": "杨东艳",
-              "userNmae": "杨东艳",
-              "UserName": "杨东艳",
-              "name": "杨东艳",
-              "updateTime": 1604568915582,
-              "ActivePercent": i * 5,
-              "ck": 115.9 - i,
-              "head": 'flyhead.png'
-            }
-        )
-      }
-      return item;
-    },
-    fakeNewsLimit() {
-      let item = [];
-      for (var i = 0; i < 3; i++) {
-        item.push(
-            {
-              "hubId": 0,
-              "deviceId": 22756,
-              "calorie": 999.5,
-              "heartRate": i * 5,
-              "step": i * 40,
-              "userName": "杨东艳",
-              "userNmae": "杨东艳",
-              "name": "杨东艳",
-              "updateTime": 1604568915582,
-              "ActivePercent": i * 5,
-              "ck": i + 115.1,
-              "sex": 1,
-              "head": 'flyhead.png'
-            }
-        )
-      }
-      return item;
-    },
-    GetgetUserList() {
-      let that = this;
-      let param = {
-        eqSn: localStorage.eqSn,
-        token: localStorage.token,
-      };
-      let postdata = qs.stringify(param);
-      getHello(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          that.topMsg = json.Rs[0];
-          that.students = json.Rs;
-          that.$message.error(json.Memo);
-        }
-      }).catch(function (err) {
-        console.log(err);
-      });
-    },
-    GetHerosRankingQuery() {
-      let that = this;
-      let param = {
-        eqSn: localStorage.eqSn,
-        dispNum: 3
-      };
-      let postdata = qs.stringify(param);
-      HerosRankingQuery(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          that.bottom = json.Rs;
-        } else {
-          if (json.Code == 4002) {
-          } else {
-            that.$message.error(json.Memo);
-          }
-        }
-      })
-    },
-    GetUserRankingQuery() {
-      let that = this;
-      let param = {
-        eqSn: localStorage.eqSn,
-        dispNum: 8
-      };
-      let postdata = qs.stringify(param);
-      UserRankingQuery(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          that.rt = json.Rs;
-        } else {
-          if (json.Code == 4002) {
-          } else {
-            that.$message.error(json.Memo);
-          }
-        }
-      })
-    },
-    GetCalorieStatsQuery() {
-      let that = this;
-      let param = {
-        eqSn: localStorage.eqSn,
-      };
-      let postdata = qs.stringify(param);
-      CalorieStatsQuery(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          that.recordMain = json.Rs;
-        } else {
-          that.recordMain = [
-            {
-              Title: '',
-              Result: [{'Values': '', Unite: ''}],
-            },
-            {
-              Title: '',
-              Result: [{'Values': '', Unite: ''}],
-            }
-          ];
-          if (json.Code == 4002) {
-            that.dialogVisible = true;
-            that.dialogText = json.Memo;
-          } else {
-            that.$message.error(json.Memo);
-          }
-
-        }
-      })
-    },
-    curgetClassStat() {
-      let that = this;
-      let param = {
-        token: localStorage.token,
-        eqSn: localStorage.eqSn
-      };
-      let postdata = qs.stringify(param);
-      getClassStat(postdata).then(res => {
-        let json = res;
-        if (json.Code == 0) {
-          // alert(JSON.stringify(json.ClassOn));
-          // alert("alert:"+json.ClassOn);
-          // 上课了
-          if (json.ClassOn == 1) {
-            // 0: 下课 团课/私教 排名
-            // 1:团课/私教 todo
-            // 2:竞技课2PK
-            // 3:竞技课threepk
-            switch (parseInt(json.dp)) {
-              case 0:
-                that.$router.push({path: '/rank'});
-                break;
-              case 1:
-                that.$router.push({path: '/main'});
-                break;
-              case 2:
-                that.$router.push({path: '/pk'});
-                break;
-              case 3:
-                that.$router.push({path: '/threepk'});
-                break;
-            }
-          }
-        } else {
-
-          // that.$message.error(json.Memo);
-        }
-      })
-    },
-  },
   components: {
-    Headside, sumNumber
+    Headside
   }
 }
 </script>
 
-<style scoped>
-@import "../assets/css/bg.css";
-
-.pages {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  width: 100%;
-  overflow: hidden;
-  overflow-y: scroll;
-  display: block;
-  margin: 0 auto;
-  /*transform: scale(1,5);*/
-  /*-ms-transform: scale(1,5); !* IE 9 *!*/
-  /*-webkit-transform: scale(0.8,0.8); !* Safari and Chrome *!*/
-}
-
-/*/deep/ .el-carousel__item--card {*/
-/*width: auto !important;*/
-/*}*/
-/*/deep/ .el-carousel__item {*/
-/*width: auto !important;*/
-/*}*/
-/*/deep/ .el-carousel__item--card.is-active {*/
-/*z-index: 2;*/
-/*position: absolute;*/
-/*left: 50%;*/
-/*transform: translate(-50%, 0px) !important;*/
-/*}*/
-
-
-.rankContainer {
-  width: 90%;
-  height: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  overflow-y: scroll;
-}
-
-.rankContainer .lt {
-  width: 60%;
-  height: 100%;
-  float: left;
-}
-
-.rankContainer .rt {
-  width: 40%;
-  height: 100%;
-  float: right;
-}
-
-.recordMain {
-  height: 6rem;
-  /*height: 100%;*/
-  overflow: hidden;
-}
-
-.rankContainer .lt .recordMain h5 {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.75rem;
-  text-align: left;
-  color: #fff;
-  margin: 0 auto;
-  margin-top: 5%;
-}
-
-.recordMain h5 s {
-  font-size: 0.8rem;
-}
-
-.rankContainer .sum {
-  position: relative;
-  top: 0.8rem;
-  width: 100%;
-  height: 35%;
-  overflow: visible;
-  display: block;
-  margin: 0 auto;
-  text-align: center;
-  z-index: 666;
-}
-
-.sumBg {
-  position: relative;
-  bottom: 2rem;
-  width: 100%;
-  height: 3rem;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  /*background: url("../static/img/pingtai.png") bottom center;*/
-  /*background: url("../static/img/black.png") bottom center;*/
-  background-size: 100% 100%;
-  background-repeat: no-repeat;
-}
-
-.sum em {
-  width: 7.2rem;
-  float: right;
-  font-weight: 900;
-  font-family: vista;
-  font-weight: 900;
-  font-size: 2rem;
-  text-align: center;
-  color: #fff;
-  font-style: normal;
-  /*text-shadow: #E85297 5px 0 0, #E85297 0 5px 0, #E85297 -5px 0 0, #E85297 0 -5px 0;*/
-  text-shadow: #000 5px 0 0, #000 0 5px 0, #000 -5px 0 0, #000 0 -5px 0;
-}
-
-.sum s {
-  position: relative;
-  bottom: -2rem;
-  width: 2rem;
-  float: right;
-  font-style: normal;
-  font-family: vista;
-  font-weight: normal;
-  font-size: 44px;
-  text-align: center;
-  color: #fff;
-  text-decoration: none;
-}
-
-.sumContainer {
-  width: 100%;
-  /*height: 4rem;*/
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-}
-
-.topOne {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-}
-
-.topOne h5 {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.4rem;
-  text-align: left;
-  color: #fff;
-  margin: 1% 0;
-}
-
-ul, li {
-  list-style: none;
-  margin: 0;
-  padding: 0;
-}
-
-.topOne ul {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  padding-left: 2px;
-  padding-top: 0.1rem;
-  padding-bottom: 0.1rem;
-}
-
-.topOne li {
-  width: 30%;
-  float: left;
-  margin-left: 0.05rem;
-}
-
-.topOne .dgCenter {
-  width: 93%;
-  overflow: hidden;
-  float: left;
-  border-radius: 5px;
-  background: rgba(0.0 .0 .0 .1);
-  box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);
-  padding-top: 0.1rem;
-  padding-bottom: 0.1rem;
-}
-
-.dgCenter .dghead {
-  width: 40%;
-  float: left;
-}
-
-.dghead img {
-  width: 1rem;
-  height: 1rem;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  padding: 0;
-  border-radius: 33rem;
-  border: 2px solid #fff;
-}
-
-.dghead s {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  font-weight: normal;
-  font-size: 0.3rem;
-  text-align: center;
-  color: #fff;
-  font-style: normal;
-  text-decoration: none;
-  margin-top: 0.2rem;
-}
+<style lang="scss" scoped>
+@import "../assets/css/bg.scss";
 
-.score {
-  width: 60%;
-  float: right;
+@font-face {
+  font-family: Artifakt;
+  src: url('../assets/font/Artifakt.ttf');
 }
 
-.score em {
+$font-color: white;
+@mixin cube {
   width: 100%;
   overflow: hidden;
   display: block;
   margin: 0 auto;
-  font-family: vista;
-  font-weight: bold;
-  font-size: 0.7rem;
-  text-align: center;
-  color: #fff;
-  font-style: normal;
-  height: 1.4rem;
-  line-height: 1.4rem;
 }
 
-.score span {
+.pages {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
   width: 100%;
   overflow: hidden;
+  overflow-y: scroll;
   display: block;
   margin: 0 auto;
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.2rem;
-  color: #fff;
-  text-align: center;
-}
-
-.rt {
-  padding-top: 0.6rem;
-}
-
-.rt h5 {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 36px;
-  text-align: center;
-  color: #fff;
-  margin: 0;
-  margin-bottom: 0.3rem;
-  text-indent: 0.2rem;
-}
-
-.rt ul {
-  width: 80%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  padding-top: 3px;
-  padding-bottom: 3px;
-}
-
-.rt li {
-  width: 80%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  margin-bottom: 0.1rem;
-  padding: 0.1rem 4%;
-  /*background: rgba(0, 0, 0, 0.1);*/
-  border-radius: 5px;
-  /*box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);*/
-}
-
-.rt li img {
-  width: 0.6rem;
-  height: 0.6rem;
-  filter: drop-shadow(0px 0px 6px #bf00ff);
-  border: 2px solid #fff;
-  float: left;
-  border-radius: 33rem;
-  margin-right: 3%;
-}
-
-.rt li em {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.35rem;
-  text-align: center;
-  color: #fff;
-  font-style: normal;
-  float: left;
-  height: 0.6rem;
-  line-height: 0.6rem;
-}
-
-.rt li s {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.35rem;
-  text-align: right;
-  color: #fff;
-  text-decoration: none;
-  height: 0.6rem;
-  line-height: 0.6rem;
-  float: right;
 }
 
-.heros > h5 {
-  font-family: vista;
-  font-weight: normal;
-  font-size: 0.35rem;
-  text-align: left;
-  color: #fff;
-  margin: 1% 0;
-}
-
-.heros ul {
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  padding-left: 0px;
-  padding-top: 6px;
-  padding-bottom: 6px;
+/deep/ .el-carousel {
+  height: 100%;
 }
 
-.heros li {
-  width: 2.5rem;
-  height: 2.35rem;
-  float: left;
-  border-radius: 5px;
-  background: rgba(0.0 .0 .0 .1);
-  box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);
-  padding-top: 0.2rem;
-  padding-bottom: 0.2rem;
-  color: #fff;
-  font-size: 0.3rem;
-  text-align: center;
-  margin-right: 5%;
-  margin-left: 0.05rem;
-}
+.container {
+  @include cube;
+  width: 96%;
 
-.heros li > img {
-  width: 1.2rem;
-  height: 1.2rem;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  margin-bottom: 0.2rem;
-  border-radius: 100%;
-  border: 2px solid #fff;
-}
+  .lt {
+    width: 30%;
+    float: left;
+  }
 
-.heros li > img.sex {
-  position: relative;
-  top: -1.5rem;
-  right: 0.55rem;
-  width: 0.4rem;
-  height: 0.4rem;
-  overflow: hidden;
-  float: right;
-  border: none;
+  .lists {
+    ul {
+      @include cube;
+      padding-top: 0.1rem;
+
+      li {
+        @include cube;
+        width: 98%;
+        margin-bottom: 0.3rem;
+        border-top-right-radius: 30px;
+        border-bottom-right-radius: 30px;
+        background: rgba(255, 255, 255, 0.15);
+        height: 0.65rem;
+        font-size: 0.3rem;
+        color: $font-color;
+        overflow: visible;
+
+        .num {
+          position: relative;
+          left: -0.1rem;
+          width: 0.9rem;
+          height: 0.65rem;
+          float: left;
+          background: url("../assets/imgs/wait/litr.svg");
+          background-size: 100% 100%;
+          background-position: left center;
+          line-height: 0.65rem;
+          font-size: 0.45rem;
+          font-weight: bold;
+          text-align: left;
+          text-indent: 0.2rem;
+        }
 
-}
+        .headImg {
+          position: relative;
+          top: -0.02rem;
+          height: 0.65rem;
+          float: left;
+          border: 2px solid #39B6FF;
+          border-radius: 250px;
+        }
 
-.topOne li .dghead img.sex {
-  position: relative;
-  top: -1.05rem;
-  right: 0;
-  width: 0.4rem;
-  height: 0.4rem;
-  overflow: hidden;
-  float: right;
-  border: none;
+        .girl {
+          border: 2px solid #EA26EA;
+        }
 
-}
+        span {
+          width: 1.5rem;
+          float: left;
+          text-align: center;
+          line-height: 0.65rem;
+        }
 
-.heros li em {
-  font-family: vista;
-  font-weight: bold;
-  font-size: 30px;
-  text-align: center;
-  font-style: normal;
-}
+        .crIcon {
+          width: 0.75rem;
+          margin-top: 0.05rem;
+          float: left;
+        }
 
-.heros li em#red_0 {
-  color: #FA5114;
-}
+        em {
+          float: right;
+          text-align: right;
+          font-style: normal;
+          font-weight: bold;
+          color: #FFE61F;
+          line-height: 0.65rem;
+          margin-right: 0.2rem;
+        }
+      }
+    }
+  }
 
-.heros li em#red_1 {
-  color: #FA981F;
-}
+  .md {
+    width: 40%;
+    float: left;
+
+    .timeTitle {
+      @include cube;
+      width: 3rem;
+      height: 1rem;
+      font-size: 0.4rem;
+      text-align: center;
+      line-height: 0.85rem;
+      color: $font-color;
+      margin-top: 0.5rem;
+    }
 
-.heros li em#red_2 {
-  color: #FFE13C;
-}
+    .weeksTitle {
+      background: url("../assets/imgs/wait/weeksTitleBg.svg");
+      background-repeat: no-repeat;
+      background-position: top center;
+      background-size: 100%;
+    }
 
-.heros li #circle_0 {
-  border: 2px solid #FA5114;
-}
+    .sub {
+      @include cube;
+      color: $font-color;
+      font-size: 0.3rem;
+    }
 
-.heros li #circle_1 {
-  border: 2px solid #FA981F;
+    .sumCalc {
+      @include cube;
+      width: 80%;
+      height: 5rem;
+      color: $font-color;
+      font-size: 0.3rem;
+
+      h5 {
+        height: 1.6rem;
+        line-height: 2rem;
+        margin: 0;
+        margin-top: 2rem;
+        font-size: 1.5rem;
+        padding: 0;
+        text-align: center;
+        font-family: Artifakt;
+      }
 
-}
+      em {
+        @include cube;
+        float: right;
+        text-align: right;
+        font-size: 0.3rem;
+        color: $font-color;
+        font-style: normal;
+        font-weight: bold;
+        margin-right: 0.3rem;
+      }
+    }
+  }
 
-.heros li #circle_2 {
-  border: 2px solid #FFE13C;
+  .rt {
+    float: right;
+    width: 30%;
+  }
 
-}
+  .partTitle {
+    @include cube;
+    background: url("../assets/imgs/wait/title.png");
+    width: 80%;
+    height: 0.5rem;
+    background-repeat: no-repeat;
+    background-size: 100% 100%;
+    margin-top: 1rem;
+    color: $font-color;
+    text-align: center;
+    font-size: 0.4rem;
+    line-height: 0.5rem;
+  }
 
-.heros li div {
-  position: relative;
-  top: -0.7rem;
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-  text-align: center;
-}
+  .listTitle {
+    @include cube;
+    width: 96%;
+    margin-top: 0.2rem;
 
-.heros li span {
-  position: relative;
-  top: -0.67rem;
-  width: 100%;
-  overflow: hidden;
-  display: block;
-  margin: 0 auto;
-}
+    span {
+      float: left;
+      text-align: left;
+      color: $font-color;
+      font-size: 0.3rem;
 
-.bottom {
-  position: relative;
-  width: 100%;
-  height: 4rem;
-  padding-top: 0.1rem;
-  bottom: 0.2rem;
-}
+      &:first-child {
+        width: 2rem;
+      }
 
-/deep/ .el-carousel__indicators--horizontal {
-  display: none;
-}
+      &:last-child {
+        float: right;
+        text-align: right;
+        margin-right: 0.2rem;
+      }
+    }
+  }
 
-/deep/ .el-carousel {
-  height: 100%;
 }
 
-/deep/ .el-carousel__container {
-
-}
-</style>
+</style>

+ 901 - 0
v2tv/src/views/Wait2.vue

@@ -0,0 +1,901 @@
+<template>
+  <div :class="pageStyle">
+    <Headside></Headside>
+    <div class="rankContainer">
+      <div class="lt">
+        <div class="recordMain">
+          <el-carousel :interval="30000" height="100%">
+            <el-carousel-item v-for="rs in recordMain">
+              <div>
+                <h5 v-html="rs.Title"></h5>
+                <div class="sumContainer">
+                  <div class="sum">
+                    <s>{{ rs.Result[0].Unite }}</s>
+                    <sumNumber :cur-number="rs.Result[0].Values"></sumNumber>
+                  </div>
+                  <span class="sumBg"></span>
+                </div>
+              </div>
+            </el-carousel-item>
+          </el-carousel>
+        </div>
+        <div class="bottom">
+          <el-carousel :interval="15000" height="100%">
+            <el-carousel-item v-for="Rs in bottom">
+              <div class="topOne" v-if="Rs.Style == 'tops'">
+                <h5>{{ Rs.Title }}</h5>
+                <ul>
+                  <li v-for="(tops,i) in Rs.Result">
+                    <div class="dgCenter">
+                      <div class="dghead">
+                        <img :id="'circle_'+i"
+                             v-bind:src="tops.Head" alt="" v-if="tops.Head">
+                        <img :id="'circle_'+i"
+                             v-bind:src="require('../static/img/people/flyhead.png')" alt=""
+                             v-if="!tops.Head">
+                        <img src="../static/img/wait/boy.png" class="sex" v-if="tops.Sex == 1"/>
+                        <img src="../static/img/wait/girl.png" class="sex" v-if="tops.Sex == 2"/>
+                        <s>{{ tops.UserName }}</s>
+                      </div>
+                      <div class="score">
+                        <em>{{ tops.Values }}</em>
+                        <span>
+                                                    {{ tops.Message }}
+                                                </span>
+                      </div>
+                    </div>
+                  </li>
+                  <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有新成果哟~</span>
+                </ul>
+              </div>
+              <div class="heros" v-if="Rs.Style == 'heros'">
+                <h5>{{ Rs.Title }}</h5>
+                <ul>
+                  <li v-for="(hero,i) in Rs.Result">
+                    <img :id="'circle_'+i"
+                         v-bind:src="hero.Head" alt="" v-if="hero.Head">
+                    <img :id="'circle_'+i"
+                         v-bind:src="require('../static/img/people/flyhead.png')"
+                         alt="" v-if="!hero.Head">
+                    <img src="../static/img/wait/boy.png" class="sex" v-if="hero.Sex == 1"/>
+                    <img src="../static/img/wait/girl.png" class="sex" v-if="hero.Sex == 2"/>
+                    <div>
+                      <em :id="'red_'+i">No.{{ i + 1 }}</em> {{ hero.UserName }}
+                    </div>
+                    <span>{{ hero.Values }} {{ hero.Unite }}</span>
+                  </li>
+                  <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有人突破记录哟~</span>
+                </ul>
+              </div>
+            </el-carousel-item>
+          </el-carousel>
+        </div>
+      </div>
+      <div class="rt">
+        <el-carousel :interval="15000" height="100%">
+          <el-carousel-item v-for="Rs in rt">
+            <h5>{{ Rs.Title }}</h5>
+            <ul>
+              <li v-for="s in Rs.Result" v-if="Rs.Result">
+                <img :src="s.Head" alt="" v-if="s.Head">
+                <img v-bind:src="require('../static/img/people/flyhead.png')" alt="" v-if="!s.Head">
+                <em>{{ s.UserName }}</em>
+                <s>{{ s.Values }}</s>
+              </li>
+              <span style="font-size: 0.4rem;color: #fff" v-if="Rs.Result == ''">还没有排行记录哟~</span>
+            </ul>
+          </el-carousel-item>
+        </el-carousel>
+      </div>
+    </div>
+    <el-dialog
+        title="提示"
+        :visible.sync="dialogVisible"
+        width="30%"
+    >
+      <span>{{ dialogText }}</span>
+      <span slot="footer" class="dialog-footer">
+    <el-button type="primary" @click="dialogVisible = false">知道了</el-button>
+  </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import Headside from '@/components/Headside'
+import sumNumber from '@/components/sumNumber'
+import {
+  getHello,
+  getClassStat,
+  HerosRankingQuery,
+  CalorieStatsQuery,
+  UserRankingQuery
+} from '@/api/getApiRes'
+import '../libs/rem';
+import '../Global'
+
+// 测试模式 localStorage.eqSn = "8e501b0bde9ce600"
+
+let qs = require('qs');
+export default {
+  data() {
+    return {
+      eqSn: '30:9C:23:0C:8B:1E',
+      pageStyle: RandomBg2(),
+      trueDate: true,//真实数据 true false
+      autoplayStatus: false,// false
+      dialogVisible: false,// false
+      dialogText: '',// false
+      fakeNums: 8,//
+      unite: '卡路里',
+      topMsg: '',
+      students: [],
+      studentsLimit: [],
+      showType: 2,//1 单人
+      curIndex: false,//1 单人
+      waitTimer: null,//null
+      test:
+          {
+            Title: '本<s style="font-size: 0.7rem;color: red">周</s>场馆卡路里总消耗',
+            Title2: '本<s style="font-size: 0.7rem;color: red">月</s>场馆卡路里总消耗',
+            Result: [{'Values': 0, Unite: '千卡'}],
+          },
+      recordMain: [],
+      bottom: {},
+      rt: [],
+    }
+  },
+  mounted() {
+    if (this.trueDate) {
+      this.init();
+    } else {
+      this.students = this.fakeNews();
+      this.studentsLimit = this.fakeNewsLimit();
+      this.topMsg = this.students[0];
+      this.bottom = [
+        {
+          "Title": "本周消耗卡路里英雄榜",
+          "Style": "heros",
+          "Result": [
+            {
+              "UserName": "段长鹏",
+              "Sex": 1,
+              "Head": "",
+              "Values": "4744",
+              "Unite": "千卡",
+              "Message": ""
+            },
+            {
+              "UserName": "贾雨奇",
+              "Sex": 1,
+              "Head": "http://192.168.0.2/flyhead.png",
+              "Values": "4034",
+              "Unite": "千卡",
+              "Message": ""
+            },
+            {
+              "UserName": "郑伟",
+              "Sex": 1,
+              "Head": "http://192.168.0.2/flyhead.png",
+              "Values": "2290",
+              "Unite": "千卡",
+              "Message": ""
+            }
+          ]
+        },
+        {
+          "Title": "单次CK值(新个人记录)",
+          "Style": "tops",
+          "Result": [
+            {
+              "UserName": "郑伟",
+              "Sex": 1,
+              "Head": "",
+              "Values": "1022",
+              "Unite": "",
+              "Message": "打破了历史记录100000"
+            },
+            {
+              "UserName": "郑伟",
+              "Sex": 1,
+              "Head": "http://192.168.0.2/flyhead.png",
+              "Values": "1020",
+              "Unite": "",
+              "Message": "打破了历史记录100000"
+            }
+          ]
+        }
+      ];
+      this.rt = [
+        {
+          Title: '月度CK值排行',
+          Result: this.fakeNews(),
+        },
+        {
+          Title: '月度卡路里值排行',
+          Result: this.fakeNews(),
+        }
+      ];
+      this.recordMain = [
+        {
+          Title: '本<s>周</s>场馆卡路里总消耗',
+          Result: [{'Values': 0, Unite: '千卡'}],
+        },
+        {
+          Title: '本<s>周</s>场馆卡路里总消耗',
+          Result: [{'Values': 0, Unite: '千卡'}],
+        }
+      ]
+    }
+  },
+  watch: {
+    '$route': function (val) {
+      let that = this;
+      if (val.path == '/') {
+        this.autoplayStatus = false;
+        if (this.trueDate) {
+          that.init();
+        } else {
+          this.students = this.fakeNews();
+          this.topMsg = this.students[0];
+        }
+      } else {
+        clearInterval(this.waitTimer);
+      }
+    }
+  },
+  beforeDestroy() {
+    clearInterval(this.waitTimer);
+    this.waitTimer = null;
+  },
+  methods: {
+    init() {
+      this.waitTimer = setInterval(() => {
+        // this.$router.push({path: '/main'});
+
+        this.curgetClassStat();
+        this.GetHerosRankingQuery();
+        this.GetCalorieStatsQuery();
+        this.GetUserRankingQuery();
+      }, 1000);
+
+    },
+    fakeNews() {
+      let item = [];
+      for (var i = 0; i < 7; i++) {
+        item.push(
+            {
+              "hubId": 0,
+              "deviceId": 22756,
+              "calorie": 96.5,
+              "Values ": 96.5,
+              "heartRate": i * 5,
+              "step": i * 40,
+              "userName": "杨东艳",
+              "userNmae": "杨东艳",
+              "UserName": "杨东艳",
+              "name": "杨东艳",
+              "updateTime": 1604568915582,
+              "ActivePercent": i * 5,
+              "ck": 115.9 - i,
+              "head": 'flyhead.png'
+            }
+        )
+      }
+      return item;
+    },
+    fakeNewsLimit() {
+      let item = [];
+      for (var i = 0; i < 3; i++) {
+        item.push(
+            {
+              "hubId": 0,
+              "deviceId": 22756,
+              "calorie": 999.5,
+              "heartRate": i * 5,
+              "step": i * 40,
+              "userName": "杨东艳",
+              "userNmae": "杨东艳",
+              "name": "杨东艳",
+              "updateTime": 1604568915582,
+              "ActivePercent": i * 5,
+              "ck": i + 115.1,
+              "sex": 1,
+              "head": 'flyhead.png'
+            }
+        )
+      }
+      return item;
+    },
+    GetgetUserList() {
+      let that = this;
+      let param = {
+        eqSn: localStorage.eqSn,
+        token: localStorage.token,
+      };
+      let postdata = qs.stringify(param);
+      getHello(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.topMsg = json.Rs[0];
+          that.students = json.Rs;
+          that.$message.error(json.Memo);
+        }
+      }).catch(function (err) {
+        console.log(err);
+      });
+    },
+    GetHerosRankingQuery() {
+      let that = this;
+      let param = {
+        eqSn: localStorage.eqSn,
+        dispNum: 3
+      };
+      let postdata = qs.stringify(param);
+      HerosRankingQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.bottom = json.Rs;
+        } else {
+          if (json.Code == 4002) {
+          } else {
+            that.$message.error(json.Memo);
+          }
+        }
+      })
+    },
+    GetUserRankingQuery() {
+      let that = this;
+      let param = {
+        eqSn: localStorage.eqSn,
+        dispNum: 8
+      };
+      let postdata = qs.stringify(param);
+      UserRankingQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.rt = json.Rs;
+        } else {
+          if (json.Code == 4002) {
+          } else {
+            that.$message.error(json.Memo);
+          }
+        }
+      })
+    },
+    GetCalorieStatsQuery() {
+      let that = this;
+      let param = {
+        eqSn: localStorage.eqSn,
+      };
+      let postdata = qs.stringify(param);
+      CalorieStatsQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.recordMain = json.Rs;
+        } else {
+          that.recordMain = [
+            {
+              Title: '',
+              Result: [{'Values': '', Unite: ''}],
+            },
+            {
+              Title: '',
+              Result: [{'Values': '', Unite: ''}],
+            }
+          ];
+          if (json.Code == 4002) {
+            that.dialogVisible = true;
+            that.dialogText = json.Memo;
+          } else {
+            that.$message.error(json.Memo);
+          }
+
+        }
+      })
+    },
+    curgetClassStat() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        eqSn: localStorage.eqSn
+      };
+      let postdata = qs.stringify(param);
+      getClassStat(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // alert(JSON.stringify(json.ClassOn));
+          // alert("alert:"+json.ClassOn);
+          // 上课了
+          if (json.ClassOn == 1) {
+            // 0: 下课 团课/私教 排名
+            // 1:团课/私教 todo
+            // 2:竞技课2PK
+            // 3:竞技课threepk
+            switch (parseInt(json.dp)) {
+              case 0:
+                that.$router.push({path: '/rank'});
+                break;
+              case 1:
+                that.$router.push({path: '/main'});
+                break;
+              case 2:
+                that.$router.push({path: '/pk'});
+                break;
+              case 3:
+                that.$router.push({path: '/threepk'});
+                break;
+            }
+          }
+        } else {
+
+          // that.$message.error(json.Memo);
+        }
+      })
+    },
+  },
+  components: {
+    Headside, sumNumber
+  }
+}
+</script>
+
+<style scoped>
+@import "../assets/css/bg.css";
+
+.pages {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  width: 100%;
+  overflow: hidden;
+  overflow-y: scroll;
+  display: block;
+  margin: 0 auto;
+  /*transform: scale(1,5);*/
+  /*-ms-transform: scale(1,5); !* IE 9 *!*/
+  /*-webkit-transform: scale(0.8,0.8); !* Safari and Chrome *!*/
+}
+
+/*/deep/ .el-carousel__item--card {*/
+/*width: auto !important;*/
+/*}*/
+/*/deep/ .el-carousel__item {*/
+/*width: auto !important;*/
+/*}*/
+/*/deep/ .el-carousel__item--card.is-active {*/
+/*z-index: 2;*/
+/*position: absolute;*/
+/*left: 50%;*/
+/*transform: translate(-50%, 0px) !important;*/
+/*}*/
+
+
+.rankContainer {
+  width: 90%;
+  height: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  overflow-y: scroll;
+}
+
+.rankContainer .lt {
+  width: 60%;
+  height: 100%;
+  float: left;
+}
+
+.rankContainer .rt {
+  width: 40%;
+  height: 100%;
+  float: right;
+}
+
+.recordMain {
+  height: 6rem;
+  /*height: 100%;*/
+  overflow: hidden;
+}
+
+.rankContainer .lt .recordMain h5 {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.75rem;
+  text-align: left;
+  color: #fff;
+  margin: 0 auto;
+  margin-top: 5%;
+}
+
+.recordMain h5 s {
+  font-size: 0.8rem;
+}
+
+.rankContainer .sum {
+  position: relative;
+  top: 0.8rem;
+  width: 100%;
+  height: 35%;
+  overflow: visible;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+  z-index: 666;
+}
+
+.sumBg {
+  position: relative;
+  bottom: 2rem;
+  width: 100%;
+  height: 3rem;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  /*background: url("../static/img/pingtai.png") bottom center;*/
+  /*background: url("../static/img/black.png") bottom center;*/
+  background-size: 100% 100%;
+  background-repeat: no-repeat;
+}
+
+.sum em {
+  width: 7.2rem;
+  float: right;
+  font-weight: 900;
+  font-family: vista;
+  font-weight: 900;
+  font-size: 2rem;
+  text-align: center;
+  color: #fff;
+  font-style: normal;
+  /*text-shadow: #E85297 5px 0 0, #E85297 0 5px 0, #E85297 -5px 0 0, #E85297 0 -5px 0;*/
+  text-shadow: #000 5px 0 0, #000 0 5px 0, #000 -5px 0 0, #000 0 -5px 0;
+}
+
+.sum s {
+  position: relative;
+  bottom: -2rem;
+  width: 2rem;
+  float: right;
+  font-style: normal;
+  font-family: vista;
+  font-weight: normal;
+  font-size: 44px;
+  text-align: center;
+  color: #fff;
+  text-decoration: none;
+}
+
+.sumContainer {
+  width: 100%;
+  /*height: 4rem;*/
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
+
+.topOne {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
+
+.topOne h5 {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.4rem;
+  text-align: left;
+  color: #fff;
+  margin: 1% 0;
+}
+
+ul, li {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+.topOne ul {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-left: 2px;
+  padding-top: 0.1rem;
+  padding-bottom: 0.1rem;
+}
+
+.topOne li {
+  width: 30%;
+  float: left;
+  margin-left: 0.05rem;
+}
+
+.topOne .dgCenter {
+  width: 93%;
+  overflow: hidden;
+  float: left;
+  border-radius: 5px;
+  background: rgba(0.0 .0 .0 .1);
+  box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);
+  padding-top: 0.1rem;
+  padding-bottom: 0.1rem;
+}
+
+.dgCenter .dghead {
+  width: 40%;
+  float: left;
+}
+
+.dghead img {
+  width: 1rem;
+  height: 1rem;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding: 0;
+  border-radius: 33rem;
+  border: 2px solid #fff;
+}
+
+.dghead s {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  font-weight: normal;
+  font-size: 0.3rem;
+  text-align: center;
+  color: #fff;
+  font-style: normal;
+  text-decoration: none;
+  margin-top: 0.2rem;
+}
+
+.score {
+  width: 60%;
+  float: right;
+}
+
+.score em {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  font-family: vista;
+  font-weight: bold;
+  font-size: 0.7rem;
+  text-align: center;
+  color: #fff;
+  font-style: normal;
+  height: 1.4rem;
+  line-height: 1.4rem;
+}
+
+.score span {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.2rem;
+  color: #fff;
+  text-align: center;
+}
+
+.rt {
+  padding-top: 0.6rem;
+}
+
+.rt h5 {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 36px;
+  text-align: center;
+  color: #fff;
+  margin: 0;
+  margin-bottom: 0.3rem;
+  text-indent: 0.2rem;
+}
+
+.rt ul {
+  width: 80%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+
+.rt li {
+  width: 80%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  margin-bottom: 0.1rem;
+  padding: 0.1rem 4%;
+  /*background: rgba(0, 0, 0, 0.1);*/
+  border-radius: 5px;
+  /*box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);*/
+}
+
+.rt li img {
+  width: 0.6rem;
+  height: 0.6rem;
+  filter: drop-shadow(0px 0px 6px #bf00ff);
+  border: 2px solid #fff;
+  float: left;
+  border-radius: 33rem;
+  margin-right: 3%;
+}
+
+.rt li em {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.35rem;
+  text-align: center;
+  color: #fff;
+  font-style: normal;
+  float: left;
+  height: 0.6rem;
+  line-height: 0.6rem;
+}
+
+.rt li s {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.35rem;
+  text-align: right;
+  color: #fff;
+  text-decoration: none;
+  height: 0.6rem;
+  line-height: 0.6rem;
+  float: right;
+}
+
+.heros > h5 {
+  font-family: vista;
+  font-weight: normal;
+  font-size: 0.35rem;
+  text-align: left;
+  color: #fff;
+  margin: 1% 0;
+}
+
+.heros ul {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-left: 0px;
+  padding-top: 6px;
+  padding-bottom: 6px;
+}
+
+.heros li {
+  width: 2.5rem;
+  height: 2.35rem;
+  float: left;
+  border-radius: 5px;
+  background: rgba(0.0 .0 .0 .1);
+  box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);
+  padding-top: 0.2rem;
+  padding-bottom: 0.2rem;
+  color: #fff;
+  font-size: 0.3rem;
+  text-align: center;
+  margin-right: 5%;
+  margin-left: 0.05rem;
+}
+
+.heros li > img {
+  width: 1.2rem;
+  height: 1.2rem;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  margin-bottom: 0.2rem;
+  border-radius: 100%;
+  border: 2px solid #fff;
+}
+
+.heros li > img.sex {
+  position: relative;
+  top: -1.5rem;
+  right: 0.55rem;
+  width: 0.4rem;
+  height: 0.4rem;
+  overflow: hidden;
+  float: right;
+  border: none;
+
+}
+
+.topOne li .dghead img.sex {
+  position: relative;
+  top: -1.05rem;
+  right: 0;
+  width: 0.4rem;
+  height: 0.4rem;
+  overflow: hidden;
+  float: right;
+  border: none;
+
+}
+
+.heros li em {
+  font-family: vista;
+  font-weight: bold;
+  font-size: 30px;
+  text-align: center;
+  font-style: normal;
+}
+
+.heros li em#red_0 {
+  color: #FA5114;
+}
+
+.heros li em#red_1 {
+  color: #FA981F;
+}
+
+.heros li em#red_2 {
+  color: #FFE13C;
+}
+
+.heros li #circle_0 {
+  border: 2px solid #FA5114;
+}
+
+.heros li #circle_1 {
+  border: 2px solid #FA981F;
+
+}
+
+.heros li #circle_2 {
+  border: 2px solid #FFE13C;
+
+}
+
+.heros li div {
+  position: relative;
+  top: -0.7rem;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+}
+
+.heros li span {
+  position: relative;
+  top: -0.67rem;
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
+
+.bottom {
+  position: relative;
+  width: 100%;
+  height: 4rem;
+  padding-top: 0.1rem;
+  bottom: 0.2rem;
+}
+
+/deep/ .el-carousel__indicators--horizontal {
+  display: none;
+}
+
+/deep/ .el-carousel {
+  height: 100%;
+}
+
+/deep/ .el-carousel__container {
+
+}
+</style>

+ 1 - 1
v2tv/vue.config.js

@@ -17,7 +17,7 @@ module.exports = {
     },
     lintOnSave: false,
     devServer: {
-        port: 8083, // 端口
+        port: 202, // 端口
         proxy: {
             '/api': {
                 // target: 'http://192.168.0.105:8080/',//小飞龙的