人生啊人生 3 months ago
parent
commit
3056e42fda

+ 18 - 0
user_web/src/components/QvSimulation/QvSimulationMain.vue

@@ -47,6 +47,19 @@ QvComRes.find().resJson["mp4_qv"] = new URL("./assets/mp4/qv.mp4", import.meta.u
 QvComRes.find().resJson["mp4_demo"] = new URL("./assets/mp4/demo.mp4", import.meta.url).href;
 
 
+// 定义发射给父组件的方法
+const emits = defineEmits([
+    'callbackProcessUpdate',
+])
+
+/**
+ * 每次进入流程回调
+ * db
+ */
+const callbackProcessUpdateEvent = (db) => {
+    emits('callbackProcessUpdate', db);
+}
+
 watch(
     () => QvMyThreeWorldStore().loadSuccess,
     (newVal, oldVal) => {
@@ -148,6 +161,11 @@ const ProcessInit = () => {
     QvEvent.find().qvProcessEventStoreOpenUiCallback = function(openBool) {
         QvProcessEventStore().obj.openUi = openBool;
     }
+
+    // 每次进入流程进行回调
+    QvEvent.find().callbackProcessUpdateEvent = function(res) {
+        callbackProcessUpdateEvent(res);
+    }
     
 }
 

+ 9 - 0
user_web/src/components/QvSimulation/QvThreeWorldEvent/js/QvEvent.js

@@ -34,6 +34,11 @@ export class QvEvent {
          */
         this.qvProcessEventStoreOpenUiCallback = null;
 
+        /**
+         * 每次进入流程进行回调
+         */
+        this.callbackProcessUpdateEvent = null;
+
         /**
          * 记录当前的事件名字
          */
@@ -106,6 +111,10 @@ export class QvEvent {
         console.log(
             "根据不同的类型,切换对应的3d逻辑", type
         );
+
+        if (typeof thisClass.callbackProcessUpdateEvent == 'function') {
+            thisClass.callbackProcessUpdateEvent(type);
+        }
         
         // 进入新的流程,默认没有完成
         this.eventName = type;

+ 29 - 7
user_web/src/view/student/trainChapter/trainChapter.vue

@@ -9,7 +9,11 @@
         <div v-if="state.hasRead && state.showCnt" class="chapter-box">
             <NavMenus :back-confirm="state.lastChapterNum != maxChapterNum"></NavMenus>
             <div class="chapter-content">
-                <div class="menu-box" :class="{ fold: state.menuFold }">
+                <!-- 原始 -->
+                <!-- <div class="menu-box" :class="{ fold: state.menuFold }"> -->
+                <!-- 新增新的三维逻辑,控制该UI什么时候显示 -->
+                <div v-show="menuBoxOpen == true"
+                class="menu-box" :class="{ fold: state.menuFold }">
                     <div class="menu-title">{{ state.chapterTree[state.currentStep]?.name ?? '' }}</div>
                     <div class="menu-list">
                         <el-scrollbar :max-height="state.menuListHeight">
@@ -117,6 +121,7 @@
                 <div v-if="threeWorldLoadType == 'qv'">
                     <QvSimulationMain
                     v-show="QvSimulationMainLook == true"
+                    @callbackProcessUpdate="callbackProcessUpdateQvEvent"
                     ></QvSimulationMain>
 
                     <CarSimulationMain
@@ -197,6 +202,8 @@ let stepTipsBool = ref(true);
  * 如果完成任务了,则显示 stepTipsBool 的UI
  */
 let stepThreeWorld = ref(false);
+// 控制左侧UI .menu-box 是否展示
+let menuBoxOpen = ref(true);
 
 /**
  * 用于控制应该加载哪个三维场景
@@ -457,12 +464,12 @@ watch(
             if (idx > -1) state.activeSecondMenu = idx;
         }
 
-        console.log(
-            "更新到新的流程 state.currentChapter ===>",
-            state.currentChapter,
-            state.currentChapter.type,
-            state.currentChapter.threeDimensionalConfig
-        );
+        // console.log(
+        //     "更新到新的流程 state.currentChapter ===>",
+        //     state.currentChapter,
+        //     state.currentChapter.type,
+        //     state.currentChapter.threeDimensionalConfig
+        // );
 
         /**
          * 后面新增其他三维逻辑进行控制展示
@@ -477,10 +484,13 @@ watch(
              */
             if (state.currentChapter.type == 30) {
                 stepTipsBool.value = false;
+
             }
             // 不是三维的时候,则显示上一步,下一步操作
             else if (state.currentChapter.type == 10) {
                 stepTipsBool.value = true;
+                menuBoxOpen.value = true;
+                stepThreeWorld.value = false;
             }
         }
         
@@ -782,6 +792,18 @@ const callbackChuanGongZuoFuQvEvent = (bool : any) => {
 
 }
 
+/**
+ * QV仿真每次进入新逻辑
+ */
+const callbackProcessUpdateQvEvent = (db : any) => {
+    console.log( "callbackProcessUpdateQvEvent ===>", db );
+
+    if (db == 'QV下井实验') {
+        menuBoxOpen.value = false;
+    }
+
+}
+
 </script>
 <style lang="scss" scoped>
 .chapter-container {