林旭祥 7 mesiacov pred
rodič
commit
1bdab5b13c

+ 1 - 1
src/components/MultipleItem/index.vue

@@ -13,7 +13,7 @@
         <div class="name" :class="{ 'name2': faceCheckStu.student_id }">
           {{ faceCheckStu.student_id ? faceCheckStu.name : area ? "虚位以待" : "未启用" }}
         </div>
-        <div class="ctrlBox" v-if="examState == 43 && handcontroller && ctrl == area">
+        <div class="ctrlBox" v-if="props.examState == 43 && examState == 43 && handcontroller && ctrl == area">
           <img src="@/assets/images/test/jushou.png" />
           <div class="lable">
             请举左手开始

+ 21 - 18
src/utils/handWs.ts

@@ -37,6 +37,9 @@ export const handWs = (callback: any) => {
   });
 };
 
+/**
+ * 发送消息
+ */
 export const sendMessage = (type: string, data: any, callback?: () => void) => {
   if (socketHand.connected) {
     callback = callback || function () {};
@@ -45,54 +48,54 @@ export const sendMessage = (type: string, data: any, callback?: () => void) => {
 };
 
 /**
- * 开始连接手势
+ * 开始连接登录
  */
-export const startHand = (data?: any, callback?: any) => {
+export const startLogin = (data?: any, callback?: any) => {
   sendMessage(
-    'handcontroller',
+    'fe_get_qrlogin',
     {
-      hctrl_name: `handcontroller_${data}`,
-      cmd: 'open_handcontroller'
+      deviceid: deviceid ? deviceid : ''
     },
     () => {}
   );
 };
 
 /**
- * 关闭连接手势
+ * 开始连接设备信息
  */
-export const closeHand = (data?: any, callback?: any) => {
+export const startDevice = (data?: any, callback?: any) => {
   sendMessage(
-    'handcontroller',
+    'fe_device_init',
     {
-      hctrl_name: `handcontroller_${data}`,
-      cmd: 'terminate_handcontroller'
+      data: data
     },
     () => {}
   );
 };
 
 /**
- * 开始连接登录
+ * 开始连接手势
  */
-export const startLogin = (data?: any, callback?: any) => {
+export const startHand = (data?: any, callback?: any) => {
   sendMessage(
-    'fe_get_qrlogin',
+    'handcontroller',
     {
-      deviceid: deviceid ? deviceid : ''
+      hctrl_name: `handcontroller_${data}`,
+      cmd: 'open_handcontroller'
     },
     () => {}
   );
 };
 
 /**
- * 开始连接设备信息
+ * 关闭连接手势
  */
-export const startDevice = (data?: any, callback?: any) => {
+export const closeHand = (data?: any, callback?: any) => {
   sendMessage(
-    'fe_device_init',
+    'handcontroller',
     {
-      data: data
+      hctrl_name: `handcontroller_${data}`,
+      cmd: 'terminate_handcontroller'
     },
     () => {}
   );

+ 43 - 26
src/views/gesture/index.vue

@@ -32,9 +32,10 @@ const data = reactive<any>({
   mySwiper: {},
   projectList: [],
   timerManager: {},
-  device_info: {}
+  device_info: {},
+  listenWs: false,//是否监听手势
 });
-const { mySwiper, projectList, timerManager, device_info } = toRefs(data);
+const { mySwiper, projectList, timerManager, device_info, listenWs } = toRefs(data);
 
 /**
  * 清空定时任务
@@ -142,29 +143,40 @@ const confirm = (myProject?: any) => {
 /**
  * 退出
 */
-const getLogout = () => {
-  proxy?.$modal.prompt('请输入密码', 'password').then((e: any) => {
-    // console.log("e", e)
-    if (e.action == 'confirm' && e.value) {
-      let params = {
-        password: e.value
-      };
-      proxy?.$http.common.checkPassword(params).then((res: any) => {
-        if (res.status === 200 || res.status === 1) {
-          proxy?.$http.common.logout({}).then((res: any) => {
-          });
-          proxy?.$modal?.closeLoading()
-          //清空缓存
-          localStorage.clear();
-          //跳转
-          router.push({ path: '/login/qrcode' });
-        } else {
-          proxy?.$modal.msgError(res.message);
-        }
-      });
-    }
-  }).finally(() => {
-  });
+const getLogout = async () => {
+  if (import.meta.env.DEV) {
+    proxy?.$modal.msgSuccess('测试环境免密退出');
+    await proxy?.$http.common.logout({}).then((res: any) => {
+    });
+    proxy?.$modal?.closeLoading()
+    //清空缓存
+    localStorage.clear();
+    //跳转
+    router.push({ path: '/login/qrcode' });
+  } else {
+    proxy?.$modal.prompt('请输入密码', 'password').then((e: any) => {
+      // console.log("e", e)
+      if (e.action == 'confirm' && e.value) {
+        let params = {
+          password: e.value
+        };
+        proxy?.$http.common.checkPassword(params).then(async (res: any) => {
+          if (res.status === 200 || res.status === 1) {
+            await proxy?.$http.common.logout({}).then((res: any) => {
+            });
+            proxy?.$modal?.closeLoading()
+            //清空缓存
+            localStorage.clear();
+            //跳转
+            router.push({ path: '/login/qrcode' });
+          } else {
+            proxy?.$modal.msgError(res.message);
+          }
+        });
+      }
+    }).finally(() => {
+    });
+  }
 };
 
 /**
@@ -188,10 +200,14 @@ onBeforeMount(() => {
   handWs((e: any) => {
     //发送设备
     if (e?.wksid) {
-      console.log("111", e)
+      console.log("e.wksid", e.wksid)
+      listenWs.value = true;
       let deviceid = localStorage.getItem("deviceid");
       startDevice({ deviceid: deviceid })
     }
+    if (listenWs.value == false) {
+      return false;
+    }
     //接收参数
     if (e?.device_info) {
       console.log("222", e)
@@ -225,6 +241,7 @@ onMounted(() => {
   getTips();
 })
 onBeforeUnmount(() => {
+  listenWs.value = false;
   getClearTimer();
 })
 </script>

+ 16 - 6
src/views/login/qrcode.vue

@@ -30,9 +30,10 @@ const route = useRoute();
 
 const data = reactive<any>({
   erweima: '',
-  sid: ''
+  sid: '',
+  listenWs: false,//是否监听手势
 });
-const { erweima, sid } = toRefs(data);
+const { erweima, sid, listenWs } = toRefs(data);
 
 /**
  * 手势
@@ -40,13 +41,18 @@ const { erweima, sid } = toRefs(data);
 const getHandWs = () => {
   //加载手势WS
   handWs((e: any) => {
-    console.log("eeee", e)
     //发送设备
     if (e?.wksid) {
       console.log("e.wksid", e.wksid)
-      sid.value = e.wksid
-      getErweima()
-      startLogin()
+      listenWs.value = true;
+      sid.value = e.wksid;
+      //登录码
+      getErweima();
+      //连接登录
+      startLogin();
+    }
+    if (listenWs.value == false) {
+      return false;
     }
     //获取信息
     if (e?.data?.token) {
@@ -103,6 +109,10 @@ const getMobile = () => {
 onMounted(() => {
   getHandWs();
 })
+
+onBeforeUnmount(() => {
+  listenWs.value = false;
+})
 </script>
 
 <style lang="scss" scoped>

+ 10 - 1
src/views/train/multiple.vue

@@ -92,8 +92,9 @@ const data = reactive<any>({
   showReportList: false,//显示隐藏测试记录
   exit: 0,//退出响应次数
   sid: null,//WS的id
+  listenWs: false,//是否监听手势
 });
-const { timerManager, parameter, time, userInfo, examState, needStart, showTestAgain, testList, multipleItemRefList, styleType, showReportList, exit, sid } = toRefs(data);
+const { timerManager, parameter, time, userInfo, examState, needStart, showTestAgain, testList, multipleItemRefList, styleType, showReportList, exit, sid, listenWs } = toRefs(data);
 
 /**
  * 创建组件实例
@@ -556,6 +557,13 @@ const getAddTestList = (num: number) => {
 */
 const initHand = () => {
   handWs((e: any) => {
+    if (e?.wksid) {
+      console.log("e.wksid", e.wksid)
+      listenWs.value = true;
+    }
+    if (listenWs.value == false) {
+      return false;
+    }
     //左滑动
     if (e?.data?.result == "next_item") {
     }
@@ -748,6 +756,7 @@ onMounted(() => {
 })
 
 onBeforeUnmount(() => {
+  listenWs.value = false;
   getExit();
 })
 </script>

+ 10 - 1
src/views/train/test.vue

@@ -148,8 +148,9 @@ const data = reactive<any>({
   readyState: true,//倒计时按钮状态
   exit: 0,//退出响应次数
   sid: null,//WS的id
+  listenWs: false,//是否监听手势
 });
-const { timerManager, parameter, time, userInfo, examState, resultId, faceCheckStu, currentResultObj, unit, backReason, backReasonStr, needStart, showTestAgain, readyState, exit, sid } = toRefs(data);
+const { timerManager, parameter, time, userInfo, examState, resultId, faceCheckStu, currentResultObj, unit, backReason, backReasonStr, needStart, showTestAgain, readyState, exit, sid, listenWs } = toRefs(data);
 
 /**
  * 接收消息
@@ -694,6 +695,13 @@ const getReady = () => {
 */
 const initHand = () => {
   handWs((e: any) => {
+    if (e?.wksid) {
+      console.log("e.wksid", e.wksid)
+      listenWs.value = true;
+    }
+    if (listenWs.value == false) {
+      return false;
+    }
     //左滑动
     if (e?.data?.result == "next_item") {
     }
@@ -876,6 +884,7 @@ onBeforeMount(() => {
 })
 
 onBeforeUnmount(() => {
+  listenWs.value = false;
   getExit();
 })
 </script>