lsc 3 年 前
コミット
23063138c4
2 ファイル変更47 行追加38 行削除
  1. 6 3
      src/components/blockly.vue
  2. 41 35
      src/components/function.vue

+ 6 - 3
src/components/blockly.vue

@@ -65,6 +65,7 @@ export default {
   data() {
     return {
       that: this,
+      workspace:null,
     };
   },
 
@@ -72,6 +73,7 @@ export default {
     // 代码生成器
     myUpdateFunction(event) {
       var code = Blockly.JavaScript.workspaceToCode(this.workspace);
+      return code
     },
     // 获取blockly工作区中的code和xml结构
     getBlockData() {
@@ -92,7 +94,8 @@ export default {
     //下一步
     go() {
       //update修改   function state里的参数
-      this.$store.commit("update", ["function", 1]);
+      var a = this.myUpdateFunction()
+      this.$store.commit("update", ["function", a]);
       this.$router.push("./function");
     },
   },
@@ -131,7 +134,7 @@ export default {
     };
 
     Blockly.JavaScript.iot_lcd_screeninit = function (block) {
-      var _code = "";
+      var _code = "screen=1;";
       return _code;
     };
 
@@ -155,7 +158,7 @@ export default {
     };
 
     Blockly.JavaScript.iot_lcd_faceinit = function (block) {
-      var _code = "";
+      var _code = "face=1;";
       return _code;
     };
   },

+ 41 - 35
src/components/function.vue

@@ -17,7 +17,7 @@
           ></video>
           <canvas
             ref="canvasDOM"
-           width="265"
+            width="265"
             height="212"
             class="kuang"
             v-show="isCamera"
@@ -106,39 +106,44 @@ export default {
           // 实时拍照效果
           _this.$refs["video"].play();
 
-          const video = this.videoEl;
-          const canvas = this.canvasEL;
-          const canvasContext = canvas.getContext("2d");
-          let tracker = new window.tracking.ObjectTracker("face");
+          if (_this.$store.state.function.indexOf("face=1;") != -1) {
+            // this.$message.error("摄像头开启失败,请检查摄像头是否可用!");
 
-          // video.pause();
-          // video.src = "";
-          tracker.setInitialScale(4);
-          tracker.setStepSize(2);
-          tracker.setEdgesDensity(0.1);
-          window.tracking.track("#video_cam", tracker, { camera: true });
-          tracker.on("track", function (event) {
-            const { autoCaptureTrackTraking } = _this;
-            canvasContext.clearRect(0, 0, canvas.width, canvas.height);
-            event.data.forEach(function ({ x, y, width, height }) {
-              canvasContext.strokeStyle = "#FFFF";
-              canvasContext.strokeRect(x+10, y-30, width - 20, height);
-              canvasContext.font = "11px Helvetica";
-              canvasContext.fillStyle = "#fff";
-            });
+            const video = this.videoEl;
+            const canvas = this.canvasEL;
+            const canvasContext = canvas.getContext("2d");
+            let tracker = new window.tracking.ObjectTracker("face");
+
+            // video.pause();
+            // video.src = "";
+            tracker.setInitialScale(4);
+            tracker.setStepSize(2);
+            tracker.setEdgesDensity(0.1);
+            window.tracking.track("#video_cam", tracker, { camera: true });
+            tracker.on("track", function (event) {
+              const { autoCaptureTrackTraking } = _this;
+              canvasContext.clearRect(0, 0, canvas.width, canvas.height);
+              event.data.forEach(function ({ x, y, width, height }) {
+                canvasContext.strokeStyle = "#FFFF";
+                canvasContext.strokeRect(x + 10, y - 30, width - 20, height);
+                canvasContext.font = "11px Helvetica";
+                canvasContext.fillStyle = "#fff";
+              });
 
-            if (!(event.data.length == 0) && _this.count <= 10) {
-              if (_this.count < 0) _this.count = 0;
-              _this.count += 1;
-              if (_this.count > 10) {
-                _this.isdetected = "已检测到人脸";
+              if (!(event.data.length == 0) && _this.count <= 10) {
+                if (_this.count < 0) _this.count = 0;
+                _this.count += 1;
+                if (_this.count > 10) {
+                  _this.isdetected = "已检测到人脸";
+                }
+              } else {
+                _this.count -= 1;
+                if (_this.count < 0)
+                  _this.isdetected = "请您保持脸部在画面中央";
+                //this.isdetected = '已检测到人脸,正在登录'
               }
-            } else {
-              _this.count -= 1;
-              if (_this.count < 0) _this.isdetected = "请您保持脸部在画面中央";
-              //this.isdetected = '已检测到人脸,正在登录'
-            }
-          });
+            });
+          }
         })
         .catch((error) => {
           // console.error("摄像头开启失败,请检查摄像头是否可用!");
@@ -200,9 +205,10 @@ export default {
     // _s1.type = "text/javascript";
     // document.head.appendChild(_s1);
     // console.log(this.$store.state.function);
-    // if (this.$store.state.function == 1) {
-    //   this.$message.error("摄像头开启失败,请检查摄像头是否可用!");
-    // }
+    if (this.$store.state.function.indexOf("screen=1;") != -1) {
+      // this.$message.error("摄像头开启失败,请检查摄像头是否可用!");
+      this.callCamera();
+    }
     this.videoEl = this.$refs.video;
     this.canvasEL = this.$refs.canvasDOM;
   },
@@ -331,7 +337,7 @@ body {
 .face {
   position: absolute;
   z-index: 1;
-    padding: 26.5px 0;
+  padding: 26.5px 0;
 }
 
 .kuang {