From 9313e8f67bc9865c516065cbb778d6b273882155 Mon Sep 17 00:00:00 2001
From: Flex <q1406482700@163.com>
Date: 星期三, 23 四月 2025 13:44:43 +0800
Subject: [PATCH] 添加人脸校验

---
 easegen-front/src/views/chooseTemplate/index.vue |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/easegen-front/src/views/chooseTemplate/index.vue b/easegen-front/src/views/chooseTemplate/index.vue
index 5a3ece2..37c604d 100644
--- a/easegen-front/src/views/chooseTemplate/index.vue
+++ b/easegen-front/src/views/chooseTemplate/index.vue
@@ -628,7 +628,8 @@
 <script lang="ts" setup>
 import { ref, reactive, onMounted } from 'vue'
 import draggable from 'vuedraggable'
-
+//寮曞叆浜鸿劯璇嗗埆鏂规硶
+import { useFaceDetection } from '@/utils/HaveFace'
 import Vue3DraggableResizable from 'vue3-draggable-resizable'
 import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'
 import { config } from '@/config/axios/config'
@@ -687,6 +688,10 @@
 const message = useMessage()
 const isEditing = ref(false)
 const inputRef = ref(null)
+//褰撳墠鏄惁瀛樺湪浜鸿劯
+const IsHaveFace = ref(false)
+//褰撳墠鏄惁瀹屾垚ppt浜鸿劯鏍¢獙
+const IsEndCheckFace = ref(true)
 // 鍒囨崲鍒扮紪杈戞ā寮�
 const toggleEdit = () => {
   isEditing.value = true
@@ -1015,6 +1020,18 @@
   }
   return selectPPT.value?.pictureUrl || ''
 })
+//ppt浜鸿劯鏍¢獙鏂规硶
+const PPtIsHaveFace = async ()=>{
+  IsEndCheckFace.value = false
+  //娣诲姞ppt涓汉鑴告牎楠�
+  //鍚戝師濮媝pt娣诲姞鏁版嵁锛岀敤浣滃悗缁璸pt涓槸鍚﹀寘鍚汉鑴哥殑鏁版嵁鏍¢獙鍘熷鏁版嵁
+  const InitPpt = PPTArr.value.map( (item)=>{
+      return item.innerPicture.src
+  } )
+  const { detectFacesInImages } = useFaceDetection()
+  IsHaveFace.value = await detectFacesInImages(InitPpt)
+  IsEndCheckFace.value = true
+}
 // 鎵撳紑鏅鸿兘璁茬寮圭獥
 const openScriptRewriter = () => {
   if (!selectPPT.value?.pptRemark && !currentImageUrl.value) {
@@ -1180,6 +1197,10 @@
         console.log('selectPPT.value', selectPPT.value)
         showLeftList.value = true
         clearInterval(schedulePPTTimer.value)
+
+        //ppt浜鸿劯鏍¢獙
+        PPtIsHaveFace()
+
         //杞淇濆瓨璇剧▼
         /**
          * 鍚庣鏁版嵁搴撳帇鍔涜繃澶э紝鏆傛椂鍋滄瀹氭椂淇濆瓨
@@ -1463,6 +1484,19 @@
     return false
   }
 
+
+  
+
+  //浜鸿劯鏍¢獙
+  while(!IsEndCheckFace.value){} //涓�涓┖寰幆锛屼富瑕佷负浜嗛伩鍏嶆瀬绔儏鍐典笅褰撶敤鎴风偣鍑讳繚瀛樻寜閽垨鑰呰棰戝悎鎴愭寜閽椂锛屼汉鑴告牎楠屾湭瀹屾垚鐨勯棶棰�
+
+  if( IsHaveFace.value ){
+    message.warning('褰撳墠ppt涓瓨鍦ㄤ汉鑴稿厓绱狅紝涓烘柟渚垮悗缁棰戠敓鎴愶紝璇峰幓闄よ鍏冪礌')
+    return
+  }
+
+
+
   //淇濆瓨璇剧▼
   let saveSubmitForm = {
     accountId: courseInfo.value.accountId,
@@ -1647,6 +1681,8 @@
       for (let i = 0; i < PPTArr.value.length; i++) {
         const item = PPTArr.value[i]
         console.log(item)
+        console.log( "瀹藉害", item.width )
+        console.log( "楂樺害", item.height )
         // 鏍¢獙鑳屾櫙瀹介珮
         if (!item.width || !item.height) {
           message.warning('鑳屾櫙灏哄鏃犳晥锛岃妫�鏌ュ楂樿缃紝鎴栬�呴噸鏂伴�夋嫨妯℃澘')

--
Gitblit v1.9.3