林旭祥 7 miesięcy temu
rodzic
commit
efc0e65ece

+ 9 - 0
src/api/module/common.ts

@@ -158,6 +158,15 @@ export default {
     });
   },
 
+  //密码校验
+  checkPassword: (data: any) => {
+    return req({
+      url: '/device/config/check_password',
+      method: 'post',
+      data: data
+    });
+  },
+
   //测试手势
   cmdtest: (data: any) => {
     return req({

+ 12 - 0
src/assets/styles/index.scss

@@ -69,9 +69,21 @@ ul li {
     display: flex;
     align-items: center;
     justify-content: center;
+    flex-direction: column;
     font-size: 2.3rem;
     color: #1a293a;
   }
+  .el-message-box__message {
+    font-size: 1.5rem;
+  }
+  .el-message-box__input {
+    width: 60%;
+
+    .el-input {
+      height: 5.5vh;
+      font-size: 1.6rem;
+    }
+  }
   .btn-custom-cancel {
     color: #1a293a;
     padding: 3.5% 12%;

+ 7 - 1
src/plugins/modal.ts

@@ -68,7 +68,13 @@ export default {
     return ElMessageBox.prompt(content, '系统提示', {
       confirmButtonText: '确 定',
       cancelButtonText: '取 消',
-      type: 'warning'
+      type: 'warning',
+      center: true,
+      customClass: 'messageBoxClass',
+      confirmButtonClass: 'btn-custom-confirm',
+      cancelButtonClass: 'btn-custom-cancel',
+      inputPattern: /[^ \f\n\r\t\v]/,
+      inputErrorMessage: '不能为空'
     });
   },
   // 打开遮罩层

+ 47 - 1
src/views/gesture/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="gesture">
-    <Header :showClose="false" :showTool="false"></Header>
+    <Header :showTool="false" @confirmExit="getLogout"></Header>
     <div class="menu">
       <swiper v-if="projectList.length" :slides-per-view="5" :space-between="0" :initialSlide="2" :loop="true"
         :centeredSlides="true" :modules="[Navigation]" @swiper="onSwiper">
@@ -15,6 +15,13 @@
       </swiper>
     </div>
     <OptionWindow ref="optionWindowRef" :projectList="projectList" />
+
+    <div style=" width: 100%; color: #ffffff; font-size:1.5rem; text-align: center; position:fixed; bottom: 10px; ">
+      模拟发送手势:
+      <div @click="getCmdtest(1)">1、左滑动</div>
+      <div @click="getCmdtest(2)">2、举左手</div>
+      <div @click="getCmdtest(3)">3、双手胸前交叉</div>
+    </div>
   </div>
 </template>
 
@@ -130,6 +137,45 @@ const getHandWs = () => {
   });
 };
 
+/**
+ * 模拟发送手势
+*/
+const getCmdtest = (data: any) => {
+  let params = {
+    hctrl_name: `handcontroller_${device_info.value.handcontroller_id}`,
+    cmd: data
+  };
+  proxy?.$http.common.cmdtest(params).then((res: any) => {
+  });
+};
+
+/**
+ * 退出
+*/
+const getLogout = () => {
+  proxy?.$modal.prompt("请输入密码").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' });
+        } else {
+          proxy?.$modal.msgError(res.message);
+        }
+      });
+    }
+  }).finally(() => {
+  });
+};
 
 onBeforeMount(() => {
   //加载设备WS

+ 21 - 2
src/views/home/index.vue

@@ -15,7 +15,7 @@
           </div>
         </div>
         <div class="right-bottom">
-          <div class="li" @click="getJump('/competition', '竞赛')"><img src="@/assets/images/home/competition.png" />
+          <div class="li" @click="getJump('/gesture', '竞赛')"><img src="@/assets/images/home/competition.png" />
           </div>
           <div class="li" @click="getJump('/course', '课程')"><img src="@/assets/images/home/course.png" />
           </div>
@@ -38,7 +38,26 @@ const getJump = (url: string, name: string) => {
     proxy?.$modal.msgWarning(`正在开发,敬请期待!`);
     return false;
   }
-  router.push({ path: url });
+  if (url == '/set') {
+    proxy?.$modal.prompt("请输入密码").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) {
+            router.push({ path: url });
+          } else {
+            proxy?.$modal.msgError(res.message);
+          }
+        });
+      }
+    }).finally(() => {
+    });
+  } else {
+    router.push({ path: url });
+  }
 };
 
 onMounted(() => {

+ 2 - 19
src/views/set/index.vue

@@ -18,20 +18,14 @@
           </div>
         </div>
       </div>
-      <div class="li" @click="getGesture">
+      <!-- <div class="li" @click="getGesture">
         <div class="liBox">
           <div class="pic"><img src="@/assets/images/common/set2.png"></div>
           <div class="name">
             手势项目
           </div>
         </div>
-      </div>
-    </div>
-    <div style=" color: #ffffff; font-size:1.5rem; text-align: center;">
-      发送手势:
-      <div @click="getCmdtest(1)">1、左滑动</div>
-      <div @click="getCmdtest(2)">2、举左手</div>
-      <div @click="getCmdtest(3)">3、双手胸前交叉</div>
+      </div> -->
     </div>
   </div>
 </template>
@@ -62,17 +56,6 @@ const getLogout = () => {
   });
 };
 
-
-// 手势
-const getCmdtest = (data: any) => {
-  let params = {
-    hctrl_name: 'handcontroller_2',
-    cmd: data
-  };
-  proxy?.$http.common.cmdtest(params).then((res: any) => {
-  });
-};
-
 /**
  * 返回
 */