林旭祥 1 månad sedan
förälder
incheckning
59f16d3676

+ 0 - 1
src/components/FaceWindow/index.vue

@@ -1,5 +1,4 @@
 <template>
-
   <div>
     <!-- <Transition :enter-active-class="proxy?.animate.mask.enter" :leave-active-class="proxy?.animate.mask.leave">
       <div class="mask" v-show="faceState"></div>

+ 64 - 0
src/components/MultipleItemRanking/index.vue

@@ -0,0 +1,64 @@
+<template>
+  <div>
+    <Transition :enter-active-class="proxy?.animate.face.enter" :leave-active-class="proxy?.animate.face.right">
+      <div class="mask" v-show="windowState">
+        <div class="rankingBox">
+          <div class="top">
+            <div class="two">
+              <div class="userInfo">
+                <i class="pai"></i>
+                <div class="touxiang">
+
+                </div>
+                <div class="name">
+
+                </div>
+              </div>
+              <div class="score"></div>
+            </div>
+            <div class="one"></div>
+            <div class="three"></div>
+          </div>
+          <div class="bottom"></div>
+        </div>
+      </div>
+    </Transition>
+  </div>
+
+</template>
+<script setup lang="ts">
+const { proxy } = getCurrentInstance() as any;
+
+const data = reactive<any>({
+  windowState: false,//窗口状态
+});
+
+const { windowState } = toRefs(data);
+
+//打开
+const open = () => {
+  windowState.value = true;
+};
+
+//关闭
+const close = (data?: any) => {
+  windowState.value = false;
+};
+
+//暴露给父组件用
+defineExpose({
+  open,
+  close
+})
+</script>
+<style lang="scss" scoped>
+.mask {
+  position: fixed;
+  height: 100vh;
+  width: 100vw;
+  top: 0;
+  left: 0;
+  background: rgba(0, 0, 0, 0.3);
+  z-index: 998;
+}
+</style>

+ 23 - 33
src/views/train/multiple.vue

@@ -2,41 +2,25 @@
   <div>
     <Header @confirmExit="confirmExit" @setMusic="setMusic"></Header>
     <Transition :enter-active-class="proxy?.animate.dialog.enter" :leave-active-class="proxy?.animate.dialog.leave">
-      <div
-        class="time"
+      <div class="time"
         :class="{ 'time1': styleType == 1, 'time2': styleType == 2, 'time3': styleType == 3, 'time4': styleType == 4, }"
-        v-show="(needStart && [42].includes(examState)) || (['jumprope', 'jumpingjack', 'highknees', 'situp'].includes(parameter.project) && [42].includes(examState))"
-      >
+        v-show="(needStart && [42].includes(examState)) || (['jumprope', 'jumpingjack', 'highknees', 'situp'].includes(parameter.project) && [42].includes(examState))">
         {{
           time.countdownNum
         }}
       </div>
     </Transition>
     <div class="main">
-      <div
-        class="testBox"
-        :class="{ 'testBox1': styleType == 1, 'testBox2': styleType == 2, 'testBox3': styleType == 3, 'testBox4': styleType == 4 }"
-      >
-        <div
-          class="ul"
+      <div class="testBox"
+        :class="{ 'testBox1': styleType == 1, 'testBox2': styleType == 2, 'testBox3': styleType == 3, 'testBox4': styleType == 4 }">
+        <div class="ul"
           :class="{ 'overlap': (examState == 43 && time.ready) || [42].includes(examState) || (showTestAgain && ![41].includes(examState)), 'ready': [41].includes(examState), 'hands': parameter.gesture }"
-          v-for="(items, indexs) in testListArr "
-          :key="indexs"
-        >
-          <MultipleItem
-            :ref="(el: any) => { multipleItemRef(el, item.itemNumber, item.area) }"
-            v-for="(item, index) in items"
-            :query="parameter"
-            :area="item.area"
-            :key="index"
-            @returnData="returnData"
-            @getChooseStudent="getChooseStudent"
-            :examState="examState"
-            :needStart="needStart"
-            :styleType="styleType"
+          v-for="(items, indexs) in testListArr" :key="indexs">
+          <MultipleItem :ref="(el: any) => { multipleItemRef(el, item.itemNumber, item.area) }"
+            v-for="(item, index) in items" :query="parameter" :area="item.area" :key="index" @returnData="returnData"
+            @getChooseStudent="getChooseStudent" :examState="examState" :needStart="needStart" :styleType="styleType"
             :parentTrainWsMethod="{ initWs, examEnds, openOneTest, startFace, stopFace, faceConfirmOnly, startOneTest, finishOneTest, closeOneTest, suspendFaceRecognitionChannels, resumeFaceRecognitionChannels }"
-            :parentSpeechMethod="{ initSpeech, speckText, playMusic, controlMusic, speckCancel, chineseNumber }"
-          />
+            :parentSpeechMethod="{ initSpeech, speckText, playMusic, controlMusic, speckCancel, chineseNumber }" />
         </div>
       </div>
     </div>
@@ -50,13 +34,15 @@
       </template>
       <template v-else>
         <template v-if="examState == 43">
-          <div class="btn startBtn" @click="getReady" v-if="['jumprope', 'jumpingjack', 'highknees', 'situp'].includes(parameter.project)">
+          <!-- <div class="btn startBtn" @click="getReady" v-if="['jumprope', 'jumpingjack', 'highknees', 'situp'].includes(parameter.project)">
             开始测试
           </div>
-          <div class="btn startBtn" @click="getStartOneTest" v-else>开始测试</div>
+          <div class="btn startBtn" @click="getStartOneTest" v-else>开始测试</div> -->
+          <div class="btn startBtn" @click="getStartOneTest">开始测试</div>
         </template>
       </template>
-      <div class="btn" :class="{ testRecordBtn: showReportList }" @click="getTestRecord" v-if="![43, 42].includes(examState)">
+      <div class="btn" :class="{ testRecordBtn: showReportList }" @click="getTestRecord"
+        v-if="![43, 42].includes(examState)">
         {{ showReportList ? '关闭记录' : '测试记录' }}
       </div>
       <div class="btn exitBtn" @click="confirmExit">退 出</div>
@@ -306,7 +292,7 @@ const confirmExit = () => {
     .then(() => {
       getExit();
     })
-    .finally(() => {});
+    .finally(() => { });
 };
 
 /**
@@ -619,7 +605,7 @@ const getDevice = async () => {
     startDevice({ deviceid: deviceid });
   } else {
     proxy?.$modal.msgError(`缺少设备信息请重新登录!`);
-    await proxy?.$http.common.logout({}).then((res: any) => {});
+    await proxy?.$http.common.logout({}).then((res: any) => { });
     proxy?.$modal?.closeLoading();
     //清空缓存
     // localStorage.clear();
@@ -932,8 +918,8 @@ onBeforeMount(() => {
     styleType.value = 4;
   }
   //需要开始按钮的项目
-  let myList = ['jumprope', 'jumpingjack', 'highknees', 'situp'];
-  if (myList.includes(project) && styleType.value == 3) {
+  let myList = ['situp', 'jumprope', 'jumpingjack', 'highknees', 'verticaljump', 'pullup', 'sidepullup', 'squat', 'jumpleftright', 'crossjump', 'kneeupclap'];
+  if (myList.includes(project)) {
     needStart.value = true;
   }
   //加载音乐
@@ -1315,6 +1301,7 @@ $waiPadding: 6.51rem;
     }
 
     .disable {
+
       .userInfo,
       .score {
         opacity: 0.5;
@@ -1322,6 +1309,7 @@ $waiPadding: 6.51rem;
     }
 
     .wait {
+
       .userInfo,
       .score {
         opacity: 0.5;
@@ -1930,6 +1918,7 @@ $waiPadding: 6.51rem;
     }
 
     .disable {
+
       .userInfo,
       .score {
         opacity: 0.5;
@@ -1937,6 +1926,7 @@ $waiPadding: 6.51rem;
     }
 
     .wait {
+
       .userInfo,
       .score {
         opacity: 0.5;