Ver código fonte

日常开发

林旭祥 5 dias atrás
pai
commit
10951c72e0

+ 3 - 1
src/components/ReportWindow/index.vue

@@ -32,7 +32,8 @@
                   <div class="lable">成绩
                   </div>
                   <i></i>
-                  <div class="value">{{ reportDetails.result }}</div>
+                  <div class="value" v-if="timeProjectList.includes(type)">{{ proxy?.$utils.runTime(reportDetails.result, false, false) }}</div>
+                  <div class="value" v-else>{{ reportDetails.result }}</div>
                 </div>
                 <div class="item">
                   <div class="lable">得分
@@ -143,6 +144,7 @@ const { proxy } = getCurrentInstance() as any;
 const emit = defineEmits(['returnData']);
 const router = useRouter();
 const echartsRef = ref(null);
+const timeProjectList = ['basketballv1','run50','run60','run70','run100','run200','run400','run800','run1000','runa800','runa1000','runwb800','runwb1000', 'run15x4', 'run50x8', 'run10x4'];
 const data = reactive<any>({
   reportWindow: {
     show: false,

+ 3 - 3
src/utils/dataDictionary.ts

@@ -24,14 +24,14 @@ let data = {
     runa1000: '脚环1000米',
     runwb800: '手环800米',
     runwb1000: '手环1000米',
+    run15x4: '15x4往返跑',
+    run50x8: '50x8往返跑',
+    run10x4: '10x4往返跑',
     skiprope: '蓝牙跳绳',
     heartbeat: '心率监测',
     bmi: 'BMI',
     sitforbend: '坐位体前屈',
     vitalcap: '肺活量',
-    run15x4: '15x4往返跑',
-    run50x8: '50x8往返跑',
-    run10x4: '10x4往返跑',
     swim100: '游泳100米',
     swim200: '游泳200米',
     football: '足球',

+ 10 - 3
src/views/analysis/components/run.vue

@@ -29,10 +29,10 @@
         </video>
       </div>
     </div>
-    <div class="column" style="display: none;">
+    <div class="column" v-if="video">
       <div class="column-title">示范视频</div>
       <div>
-        <video src="" poster="" :controls="true">
+        <video :src="video" :poster="video + '?x-oss-process=video/snapshot,t_100,f_jpg,w_0,h_0,ar_auto'" :controls="true">
           您的浏览器不支持 video 标签。
         </video>
       </div>
@@ -60,8 +60,9 @@ const data = reactive<any>({
   strideList: [],
   stepsList: [],
   fullAvgRateList: [],
+  video: ""
 });
-const { details, query, typeList, speedList, strideList, stepsList, fullAvgRateList } = toRefs(data);
+const { details, query, typeList, speedList, strideList, stepsList, fullAvgRateList, video } = toRefs(data);
 
 //速度曲线
 const speedChart = () => {
@@ -304,6 +305,12 @@ onBeforeMount(() => {
   // if (['runa800', 'runa1000', 'runwb800', 'runwb1000'].includes(query.value.exam_name)) {
 	// 	getInitialize();
 	// }
+  if (['run800', 'run1000', 'runa800', 'runa1000', 'runwb800', 'runwb1000'].includes(query.value.exam_name)) {
+			video.value = "http://aiexam-data.oss-cn-shenzhen.aliyuncs.com/midexam/samples/run800.mp4";
+	}
+	if (['run50', 'run60', 'run70', 'run100', 'run200', 'run400'].includes(query.value.exam_name)) {
+			video.value = "http://aiexam-data.oss-cn-shenzhen.aliyuncs.com/midexam/samples/run50.mp4";
+	}
 })
 
 onMounted(() => {

+ 22 - 11
src/views/analysis/detail.vue

@@ -17,8 +17,10 @@
             <strong>{{ details.score }}</strong><span>分</span>
           </div>
           <div class="score">
-            <i>成绩</i><strong>{{ details.result }}</strong>
-            <span>{{ details.unit }}</span>
+            <i>成绩</i>
+            <strong v-if="timeProjectList.includes(query.exam_name)">{{ proxy?.$utils.runTime(details.result, false, false) }}</strong>
+            <strong v-else>{{ details.result }}</strong>
+            <span v-if="!timeProjectList.includes(query.exam_name)">{{ details.unit }}</span>
           </div>
           <div class="ranking">
             <i>排名</i> <strong>{{ details.area_rank }}</strong><span>/{{ details.area_totals }}</span>
@@ -29,7 +31,7 @@
             <img v-if="query.exam_name == 'jump'" src="@/assets/images/analysis/jump.png" />
             <img v-if="['run800', 'runa800'].includes(query.exam_name)" src="@/assets/images/analysis/run800.png" />
             <img
-              v-if="['run50', 'run60', 'run100', 'run200', 'run400', 'run1000', 'runa1000', 'run15x4', 'run50x8'].includes(query.exam_name)"
+              v-if="['run50', 'run60', 'run100', 'run200', 'run400', 'run1000', 'runa1000', 'run15x4', 'run50x8', 'run10x4'].includes(query.exam_name)"
               src="@/assets/images/analysis/run1000.png" />
             <img v-if="query.exam_name == 'basketball' ||
               query.exam_name == 'basketballv1'
@@ -104,16 +106,24 @@
           <i class="branchA scoreType">成绩</i>
           <i class="branchB scoreType" :style="{
             left: (details.std.scores[0] / details.std.scores[3]) * 100 + '%',
-          }">{{ details.std.values[0] }}</i>
+          }">
+          {{ timeProjectList.includes(query.exam_name)?proxy?.$utils.runTime(details.std.values[0], false, false):details.std.values[0] }}
+          </i>
           <i class="branchC scoreType" :style="{
             left: (details.std.scores[1] / details.std.scores[3]) * 100 + '%',
-          }">{{ details.std.values[1] }}</i>
+          }">
+          {{ timeProjectList.includes(query.exam_name)?proxy?.$utils.runTime(details.std.values[1], false, false):details.std.values[1] }}
+        </i>
           <i class="branchD scoreType" :style="{
             left: (details.std.scores[2] / details.std.scores[3]) * 100 + '%',
-          }">{{ details.std.values[2] }}</i>
+          }">
+          {{ timeProjectList.includes(query.exam_name)?proxy?.$utils.runTime(details.std.values[2], false, false):details.std.values[2] }}
+        </i>
           <i class="branchE scoreType" :style="{
             left: (details.std.scores[3] / details.std.scores[3]) * 100 + '%',
-          }">{{ details.std.values[3] }}</i>
+          }">
+          {{ timeProjectList.includes(query.exam_name)?proxy?.$utils.runTime(details.std.values[3], false, false):details.std.values[3] }}
+        </i>
         </div>
         <div v-if="JSON.stringify(details.std) != '{}' && details.std?.scores != undefined">
           <i class="branchA">分数</i>
@@ -146,7 +156,7 @@
             '%',
         }">
           <div class="chengji">
-            <span>{{ details.result }}</span>
+            <span>{{ timeProjectList.includes(query.exam_name)?proxy?.$utils.runTime(details.result, false, false):details.result }}</span>
           </div>
           <div class="fenshu">
             <span>{{ details.score }}</span>
@@ -168,7 +178,7 @@
       " />
       <!--跑步-->
       <Run :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
-        ['run50', 'run60', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4', 'run50x8'].includes(query.exam_name)
+        ['run50', 'run60', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4', 'run50x8', 'run10x4'].includes(query.exam_name)
       " />
       <!--仰卧起坐-->
       <SitUp :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['situp'].includes(query.exam_name)
@@ -237,6 +247,7 @@ const { proxy } = getCurrentInstance() as any;
 const router = useRouter();
 const route = useRoute();
 const dic: any = dataDictionary;
+const timeProjectList = ['basketballv1','run50','run60','run70','run100','run200','run400','run800','run1000','runa800','runa1000','runwb800','runwb1000', 'run15x4', 'run50x8', 'run10x4'];
 const data = reactive<any>({
   query: {},
   details: {},
@@ -324,7 +335,7 @@ const getDetails = () => {
       details.value.result :
       Number(details.value.result).toFixed(2);
     details.value.result = proxy?.runTime(myTime)
-  } else if (['run50', 'run60', 'run70', 'run100', 'run200', 'run400', 'run15x4'].includes(query.value.exam_name)) {
+  } else if (['run50', 'run60', 'run70', 'run100', 'run200', 'run400', 'run15x4', 'run50x8', 'run10x4'].includes(query.value.exam_name)) {
     details.value.result =
       String(details.value.result).indexOf(".") == -1 ?
         details.value.result :
@@ -339,7 +350,7 @@ const getDetails = () => {
   }
 
   if (
-    ['runa800', 'runa1000', 'run50', 'run60', 'run70', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4']
+    ['runa800', 'runa1000', 'run50', 'run60', 'run70', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4', 'run50x8', 'run10x4']
       .includes(query.value.exam_name) &&
     details.value.result == 0
   ) {

+ 1 - 1
src/views/ranking/index.vue

@@ -194,7 +194,7 @@ const router = useRouter();
 const refSwiper = ref();
 const reportWindowRef = ref();
 const emit = defineEmits(['getClose']);
-const timeProjectList = ['basketballv1','run50','run60','run70','run100','run200','run400','run800','run1000','runa800','runa1000','runwb800','runwb1000'];
+const timeProjectList = ['basketballv1','run50','run60','run70','run100','run200','run400','run800','run1000','runa800','runa1000','runwb800','runwb1000', 'run15x4', 'run50x8', 'run10x4'];
 
 //父值
 const props = defineProps({