ThreeWorldEventMainQingXiCheAndQv.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. <script setup>
  2. import { watch } from "vue";
  3. import { CommonVal } from "@/components/ChengGuangYuanJing/store/CommonVal.js";
  4. import { QingXiCheAndQvMyThreeWorldStore } from "./store/QingXiCheAndQvMyThreeWorldStore.js";
  5. import ThreeWorldQingXiCheAndQv from "./ThreeWorldQingXiCheAndQv.vue";
  6. import { QingXiCheAndQvThreeWorldEventMain } from "./js/QingXiCheAndQvThreeWorldEventMain.js";
  7. import { QingXiCheAndQvCarEvent } from "./js/QingXiCheAndQvCarEvent.js";
  8. import { QingXiCheAndQvCarEventClick } from "./js/QingXiCheAndQvCarEventClick.js";
  9. import { QingXiCheAndQvComHighlightLayer } from "./js/QingXiCheAndQvComHighlightLayer.js";
  10. import { QingXiCheAndQvThreeWorldCamera } from "./js/QingXiCheAndQvThreeWorldCamera.js";
  11. import { WindowTxtStore } from "@/components/WindowQingXiCheAndQv/store/WindowTxtStore.js";
  12. import { WindowVideoStore } from "@/components/WindowQingXiCheAndQv/store/WindowVideoStore.js";
  13. import { WindowCountdownStore } from "@/components/WindowQingXiCheAndQv/store/WindowCountdownStore.js";
  14. import { ComMusic } from "../../utils/common/ComMusic.js";
  15. import { QingXiCheAndQvComRes } from "./js/QingXiCheAndQvComRes.js";
  16. import { WindowEvent } from "../WindowQingXiCheAndQv/js/WindowEvent.js";
  17. import { WindowVideoRemoveColorStore } from "@/components/WindowQingXiCheAndQv/store/WindowVideoRemoveColorStore.js";
  18. import { QingXiCheAndQvComClipPlaneMeshEvent } from "./js/QingXiCheAndQvComClipPlaneMeshEvent.js";
  19. import { QingXiCheAdnQvCarEventStep } from "./js/QingXiCheAdnQvCarEventStep.js";
  20. import { QingXiCheAndQvProcessEventStore } from "./event/store/QingXiCheAndQvProcessEventStore.js";
  21. /**
  22. * 平时开发3d代码逻辑可以写这里
  23. * 更多的代码逻辑,建议用面向对象的方式去开发
  24. * 不然后面的逻辑会越来越复杂
  25. */
  26. /**
  27. * 举个例子,我们oss文件上传了,编辑器打包后的代码
  28. * 地址为 https://**.com/3dmodel/index.html
  29. *
  30. * 我们将对应的项目的3d模型,在了同域的地址是
  31. * https://**.com/自定义目录1/自定义目录2/model/
  32. *
  33. */
  34. // // 拼接出进入3d场景的地址,用于后续发布
  35. // let threeWorldUrl = "https://**.com/3dmodel/index.html#/main?id=zidingyi&user=zidingyi"
  36. // + '&commonconfig=https://**.com/自定义目录1/自定义目录2/model/'
  37. // + '&commonmodel=https://**.com/自定义目录1/自定义目录2/model/';
  38. // /**
  39. // * 本地开发调试固定地址
  40. // */
  41. // let threeWorldUrl = "3dMain/index.html#/main?id=zidingyi";
  42. // let commonconfig = "http://localhost:5173/3dMain/model_water_car_3/";
  43. // let commonmodel = "http://localhost:5173/3dMain/model_water_car_3/";
  44. // let threeWorldUrl = "3dMain/index.html#/main?id=zidingyi_lu_cun&user=zidingyi"
  45. // + '&commonconfig=' + commonconfig
  46. // + '&commonmodel=' + commonmodel;
  47. // let commonconfig = "https://www.3dyzt.com/waterMaintenance/3dMain/model_water_car_3/";
  48. // let commonmodel = "https://www.3dyzt.com/waterMaintenance/3dMain/model_water_car_3/";
  49. // let threeWorldUrl = "3dMain/index.html#/main?id=zidingyi_lu_cun&user=zidingyi"
  50. // + '&commonconfig=' + commonconfig
  51. // + '&commonmodel=' + commonmodel;
  52. // let hostUrl = import.meta.env.VITE_THREE_WORLD_URL;
  53. // let commonconfig = hostUrl + "/3dMain/model_water_car_6/";
  54. // let commonmodel = hostUrl + "/3dMain/model_water_car_6/";
  55. // let threeWorldUrl = "3dMain/index.html#/main?id=zidingyi_lu_cun&user=zidingyi"
  56. // + '&commonconfig=' + commonconfig
  57. // + '&commonmodel=' + commonmodel;
  58. let hostUrl = import.meta.env.VITE_THREE_WORLD_URL;
  59. let commonconfig = hostUrl + "/3dMain/model_water_car_7/";
  60. let commonmodel = hostUrl + "/3dMain/model_water_car_7/";
  61. let threeWorldUrl = "3dMain/index.html#/main?id=zidingyi_lu_cun&user=zidingyi"
  62. + '&commonconfig=' + commonconfig
  63. + '&commonmodel=' + commonmodel;
  64. /**
  65. * 回调加载百分比
  66. */
  67. const callbackLoadPercentageEvent = (json) => {
  68. // console.log("回调加载百分比", json);
  69. let loadPercentage = parseFloat(json["loadPercentage"]);
  70. if (loadPercentage == null || loadPercentage == undefined || loadPercentage < 0) {
  71. loadPercentage = 0;
  72. }
  73. QingXiCheAndQvMyThreeWorldStore().loadPercentage = loadPercentage;
  74. // 加载小于百分比
  75. if (loadPercentage < 100) {
  76. // ##############################【这里只做控制】隐藏其他按钮界面等
  77. CommonVal().loadSuccess = false;
  78. return;
  79. }
  80. }
  81. /**
  82. * 回调加载完成
  83. */
  84. const callbackLoadEndEvent = (json) => {
  85. // console.log("回调加载完成", json);
  86. QingXiCheAndQvMyThreeWorldStore().loadPercentage = 100;
  87. // 此时是显示角色的界面
  88. if (json["roleChoiceOpenBool"] === true) {
  89. // ############################## 隐藏其他按钮界面等
  90. CommonVal().loadSuccess = false;
  91. return;
  92. }
  93. // ############################## 这个时候,是真正的进入3d画面了,才显示其他按钮界面等
  94. CommonVal().loadSuccess = true;
  95. // 初始化操作3d的类对象,后续代码在这里面操作
  96. QingXiCheAndQvThreeWorldEventMain.find().initObj(
  97. CommonVal().obj.CommonValQingXiCheAndQv,
  98. CommonVal().obj.CommonValQingXiCheAndQv.objIframe,
  99. CommonVal().obj.CommonValQingXiCheAndQv.objIframe.ChengGuangYuanJing.CommonVal.find().objScene,
  100. CommonVal().obj.CommonValQingXiCheAndQv.objIframe.BABYLON
  101. );
  102. QingXiCheAndQvComHighlightLayer.find().init(
  103. QingXiCheAndQvThreeWorldEventMain.find()
  104. );
  105. QingXiCheAndQvThreeWorldCamera.find().initObj(
  106. CommonVal().obj.CommonValQingXiCheAndQv,
  107. CommonVal().obj.CommonValQingXiCheAndQv.objIframe,
  108. CommonVal().obj.CommonValQingXiCheAndQv.objIframe.ChengGuangYuanJing.CommonVal.find().objScene,
  109. CommonVal().obj.CommonValQingXiCheAndQv.objIframe.BABYLON
  110. );
  111. QingXiCheAndQvThreeWorldCamera.find().addConfig();
  112. QingXiCheAndQvCarEvent.find().objThreeWorldEventMain = QingXiCheAndQvThreeWorldEventMain.find();
  113. QingXiCheAndQvCarEventClick.find().objThreeWorldEventMain = QingXiCheAndQvThreeWorldEventMain.find();
  114. QingXiCheAndQvCarEventClick.find().QingXiCheAndQvProcessEventStore = QingXiCheAndQvProcessEventStore();
  115. QingXiCheAndQvComClipPlaneMeshEvent.find().objThreeWorldEventMain = QingXiCheAndQvThreeWorldEventMain.find();
  116. QingXiCheAndQvComClipPlaneMeshEvent.find().updateConfig();
  117. QingXiCheAdnQvCarEventStep.find().objThreeWorldEventMain = QingXiCheAndQvThreeWorldEventMain.find();
  118. // 新增被操作的 Store
  119. QingXiCheAndQvCarEvent.find().ComStore["WindowTxtStore"] = WindowTxtStore;
  120. QingXiCheAndQvCarEvent.find().ComStore["WindowVideoStore"] = WindowVideoStore;
  121. QingXiCheAndQvCarEvent.find().ComStore["WindowCountdownStore"] = WindowCountdownStore;
  122. WindowEvent.find().ComStore["WindowTxtStore"] = WindowTxtStore;
  123. WindowEvent.find().ComStore["WindowVideoStore"] = WindowVideoStore;
  124. WindowEvent.find().ComStore["WindowCountdownStore"] = WindowCountdownStore;
  125. WindowEvent.find().ComStore["WindowVideoRemoveColorStore"] = WindowVideoRemoveColorStore;
  126. configMusicEvent();
  127. configVideoEvent();
  128. setTimeout(function() {
  129. QingXiCheAndQvCarEvent.find().evnetInit_1();
  130. // QingXiCheAndQvThreeWorldEventMain.find().toFlyModel();
  131. QingXiCheAndQvThreeWorldEventMain.find().groundNoRemove();
  132. // QingXiCheAndQvThreeWorldEventMain.find().eyeNameLook("实验");
  133. // 自动触发模拟点击,解决加载完成后,在点击下,重新设置了材质,感觉会有问题
  134. CommonVal().obj.CommonValQingXiCheAndQv.objIframe.ChengGuangYuanJing.CommonVal.find().screenClickNumEvent();
  135. }, 1000);
  136. // }, 300);
  137. }
  138. /**
  139. * 配置用到的声音文件
  140. */
  141. const configMusicEvent = () => {
  142. ComMusic.find().codeJson["lightningOne"] = new URL("../../assets/res/music/lightningOne.mp3", import.meta.url).href;
  143. ComMusic.find().codeJson["lightningTwo"] = new URL("../../assets/res/music/lightningTwo.mp3", import.meta.url).href;
  144. ComMusic.find().codeJson["lightningThree"] = new URL("../../assets/res/music/lightningThree.mp3", import.meta.url).href;
  145. // ComMusic.find().play("lightningThree");
  146. }
  147. /**
  148. * 配置用到的视频地址文件 等其他文件
  149. */
  150. const configVideoEvent = () => {
  151. QingXiCheAndQvCarEvent.find().videoJson["02"] = new URL("../../assets/res/video/02.mp4", import.meta.url).href;
  152. QingXiCheAndQvCarEvent.find().videoJson["03"] = new URL("../../assets/res/video/03.mp4", import.meta.url).href;
  153. QingXiCheAndQvCarEvent.find().videoJson["04"] = new URL("../../assets/res/video/04.mp4", import.meta.url).href;
  154. QingXiCheAndQvCarEvent.find().videoJson["videw_liu_cheng_1"] = new URL("../../assets/res/video/videw_liu_cheng_1.mp4", import.meta.url).href;
  155. QingXiCheAndQvCarEvent.find().videoJson["videw_liu_cheng_2"] = new URL("../../assets/res/video/videw_liu_cheng_2.mp4", import.meta.url).href;
  156. QingXiCheAndQvComRes.find().resJson["img_shuang"] = new URL("../../assets/res/img/texture/shuang_shan.jpg", import.meta.url).href;
  157. // 打开车辆双闪,同时开启工作双闪灯
  158. QingXiCheAndQvComRes.find().resJson["QingXiChe_01"] = new URL("../../assets/res/mp4/01.mp4", import.meta.url).href;
  159. // 按下取力器开关
  160. QingXiCheAndQvComRes.find().resJson["QingXiChe_02"] = new URL("../../assets/res/mp4/02.mp4", import.meta.url).href;
  161. // 从水管固定座上拧下高压水管
  162. QingXiCheAndQvComRes.find().resJson["QingXiChe_03"] = new URL("../../assets/res/mp4/03.mp4", import.meta.url).href;
  163. // 确认手刹已拉起,档位是空档,然后发动车辆
  164. QingXiCheAndQvComRes.find().resJson["QingXiChe_04"] = new URL("../../assets/res/mp4/04.mp4", import.meta.url).href;
  165. // 取出高压水管并放入布管器内
  166. QingXiCheAndQvComRes.find().resJson["QingXiChe_05"] = new URL("../../assets/res/mp4/05.mp4", import.meta.url).href;
  167. // 在触屏操作面板上将管长清零
  168. QingXiCheAndQvComRes.find().resJson["QingXiChe_06"] = new URL("../../assets/res/mp4/06.mp4", import.meta.url).href;
  169. // 拆卸高压喷头放入喷头机箱内
  170. QingXiCheAndQvComRes.find().resJson["QingXiChe_07"] = new URL("../../assets/res/mp4/07.mp4", import.meta.url).href;
  171. // 关闭车辆双闪和工作双闪箭头灯
  172. QingXiCheAndQvComRes.find().resJson["QingXiChe_08"] = new URL("../../assets/res/mp4/08.mp4", import.meta.url).href;
  173. // 关闭取力器开关
  174. QingXiCheAndQvComRes.find().resJson["QingXiChe_09"] = new URL("../../assets/res/mp4/09.mp4", import.meta.url).href;
  175. // 将车辆正常熄火,恭喜你完成全部操作
  176. QingXiCheAndQvComRes.find().resJson["QingXiChe_10"] = new URL("../../assets/res/mp4/10.mp4", import.meta.url).href;
  177. // 调整卷筒器到合适位置
  178. QingXiCheAndQvComRes.find().resJson["QingXiChe_11"] = new URL("../../assets/res/mp4/11.mp4", import.meta.url).href;
  179. // 至触摸屏关闭冲水开关
  180. QingXiCheAndQvComRes.find().resJson["QingXiChe_12"] = new URL("../../assets/res/mp4/12.mp4", import.meta.url).href;
  181. // 打开车门进入驾驶室
  182. QingXiCheAndQvComRes.find().resJson["QingXiChe_13"] = new URL("../../assets/res/mp4/13.mp4", import.meta.url).href;
  183. // 疏通管道后减小油门到初始状态
  184. QingXiCheAndQvComRes.find().resJson["QingXiChe_14"] = new URL("../../assets/res/mp4/14.mp4", import.meta.url).href;
  185. // 踩下车辆离合器5秒
  186. QingXiCheAndQvComRes.find().resJson["QingXiChe_15"] = new URL("../../assets/res/mp4/15.mp4", import.meta.url).href;
  187. // 在施工范围放置警示标识
  188. QingXiCheAndQvComRes.find().resJson["QingXiChe_16"] = new URL("../../assets/res/mp4/16.mp4", import.meta.url).href;
  189. // 套上高压水管护管器
  190. QingXiCheAndQvComRes.find().resJson["QingXiChe_17"] = new URL("../../assets/res/mp4/17.mp4", import.meta.url).href;
  191. // 将高压水管放入待施工的管道内
  192. QingXiCheAndQvComRes.find().resJson["QingXiChe_18"] = new URL("../../assets/res/mp4/18.mp4", import.meta.url).href;
  193. // 回到驾驶室踩下车辆离合器5秒
  194. QingXiCheAndQvComRes.find().resJson["QingXiChe_19"] = new URL("../../assets/res/mp4/19.mp4", import.meta.url).href;
  195. // 安装合适的高压喷头
  196. QingXiCheAndQvComRes.find().resJson["QingXiChe_20"] = new URL("../../assets/res/mp4/20.mp4", import.meta.url).href;
  197. // 在安全的情况开启冲水开关
  198. QingXiCheAndQvComRes.find().resJson["QingXiChe_21"] = new URL("../../assets/res/mp4/21.mp4", import.meta.url).href;
  199. // 缓慢抬起离合器
  200. QingXiCheAndQvComRes.find().resJson["QingXiChe_22"] = new URL("../../assets/res/mp4/22.mp4", import.meta.url).href;
  201. // 下车确定安全灯显示是否正常
  202. QingXiCheAndQvComRes.find().resJson["QingXiChe_23"] = new URL("../../assets/res/mp4/23.mp4", import.meta.url).href;
  203. // 根据现场工况调节冲水压力
  204. QingXiCheAndQvComRes.find().resJson["QingXiChe_24"] = new URL("../../assets/res/mp4/24.mp4", import.meta.url).href;
  205. // 带压收回高压水管
  206. QingXiCheAndQvComRes.find().resJson["QingXiChe_25"] = new URL("../../assets/res/mp4/25.mp4", import.meta.url).href;
  207. // 将高压水管拧到水管固定座
  208. QingXiCheAndQvComRes.find().resJson["QingXiChe_26"] = new URL("../../assets/res/mp4/26.mp4", import.meta.url).href;
  209. // QingXiCheAndQvComRes.find().resJson["QingXiChe_01"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  210. // QingXiCheAndQvComRes.find().resJson["QingXiChe_02"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  211. // QingXiCheAndQvComRes.find().resJson["QingXiChe_03"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  212. // QingXiCheAndQvComRes.find().resJson["QingXiChe_04"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  213. // QingXiCheAndQvComRes.find().resJson["QingXiChe_05"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  214. // QingXiCheAndQvComRes.find().resJson["QingXiChe_06"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  215. // QingXiCheAndQvComRes.find().resJson["QingXiChe_07"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  216. // QingXiCheAndQvComRes.find().resJson["QingXiChe_08"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  217. // QingXiCheAndQvComRes.find().resJson["QingXiChe_09"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  218. // QingXiCheAndQvComRes.find().resJson["QingXiChe_10"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  219. // QingXiCheAndQvComRes.find().resJson["QingXiChe_11"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  220. // QingXiCheAndQvComRes.find().resJson["QingXiChe_12"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  221. // QingXiCheAndQvComRes.find().resJson["QingXiChe_13"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  222. // QingXiCheAndQvComRes.find().resJson["QingXiChe_14"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  223. // QingXiCheAndQvComRes.find().resJson["QingXiChe_15"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  224. // QingXiCheAndQvComRes.find().resJson["QingXiChe_16"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  225. // QingXiCheAndQvComRes.find().resJson["QingXiChe_17"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  226. // QingXiCheAndQvComRes.find().resJson["QingXiChe_18"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  227. // QingXiCheAndQvComRes.find().resJson["QingXiChe_19"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  228. // QingXiCheAndQvComRes.find().resJson["QingXiChe_20"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  229. // QingXiCheAndQvComRes.find().resJson["QingXiChe_21"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  230. // QingXiCheAndQvComRes.find().resJson["QingXiChe_22"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  231. // QingXiCheAndQvComRes.find().resJson["QingXiChe_23"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  232. // QingXiCheAndQvComRes.find().resJson["QingXiChe_24"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  233. // QingXiCheAndQvComRes.find().resJson["QingXiChe_25"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  234. // QingXiCheAndQvComRes.find().resJson["QingXiChe_26"] = new URL("../../assets/res/mp4/demo/01.mp4", import.meta.url).href;
  235. }
  236. /**
  237. * 回调距离范围内
  238. */
  239. const callbackDistanceYesEvent = (json) => {
  240. // console.log("回调距离范围内", json);
  241. }
  242. /**
  243. * 回调距离范围外
  244. */
  245. const callbackDistanceNoEvent = (json) => {
  246. // console.log("回调距离范围外", json);
  247. }
  248. /**
  249. * 回调视角切换完成
  250. */
  251. const callbackCameraVisualAngleJsonToLookEvent = (json) => {
  252. console.log("视角触发完成", json);
  253. let objIframeEdit = CommonVal().obj.CommonValQingXiCheAndQv;
  254. if (json.name == '绕车1') {
  255. objIframeEdit.cameraVisualAngleGetListNameGpsTo("绕车2");
  256. }
  257. if (json.name == '绕车2') {
  258. objIframeEdit.cameraVisualAngleGetListNameGpsTo("绕车3");
  259. }
  260. if (json.name == '绕车3') {
  261. objIframeEdit.cameraVisualAngleGetListNameGpsTo("绕车4");
  262. }
  263. if (json.name == '绕车4') {
  264. objIframeEdit.cameraVisualAngleGetListNameGpsTo("绕车5");
  265. }
  266. if (json.name == '绕车5') {
  267. objIframeEdit.cameraVisualAngleGetListNameGpsTo("绕车6");
  268. }
  269. if (json.name == '绕车6') {
  270. objIframeEdit.cameraVisualAngleGetListNameGpsTo("清洗车-开门");
  271. }
  272. if (json.name == '调整坐姿') {
  273. objIframeEdit.cameraVisualAngleGetListNameGpsTo("手握方向盘");
  274. }
  275. if (json.name == '手握方向盘') {
  276. // objIframeEdit.cameraVisualAngleGetListNameGpsTo("踩下离合器踏板");
  277. objIframeEdit.cameraVisualAngleGetListNameGpsTo("清洗车踩离合5秒");
  278. }
  279. if (json.name == '回到驾驶室踩下车辆离合器5秒1') {
  280. QingXiCheAdnQvCarEventStep.find().animationAllTypeUpdate('清洗车_打开左门', function() {
  281. objIframeEdit.cameraVisualAngleGetListNameGpsTo("回到驾驶室踩下车辆离合器5秒2");
  282. });
  283. }
  284. if (json.name == '清洗车流程完成') {
  285. QingXiCheAndQvCarEventClick.find().closeCarMen(function() {});
  286. }
  287. if (json.name == '清洗车打开车门') {
  288. objIframeEdit.cameraVisualAngleGetListNameGpsTo("清洗车进入副驾驶1");
  289. }
  290. if (json.name == '清洗车进入副驾驶1') {
  291. objIframeEdit.cameraVisualAngleGetListNameGpsTo("清洗车进入副驾驶2");
  292. }
  293. if (json.name == '清洗车下车_1') {
  294. objIframeEdit.cameraVisualAngleGetListNameGpsTo("清洗车下车_2");
  295. }
  296. }
  297. </script>
  298. <template>
  299. <div class="ThreeWorldEventMain">
  300. <ThreeWorldQingXiCheAndQv
  301. :iframeId="'CommonValQingXiCheAndQv'"
  302. :url="threeWorldUrl"
  303. @callbackLoadPercentage="callbackLoadPercentageEvent"
  304. @callbackLoadEnd="callbackLoadEndEvent"
  305. @callbackDistanceYes="callbackDistanceYesEvent"
  306. @callbackDistanceNo="callbackDistanceNoEvent"
  307. @callbackCameraVisualAngleJsonToLook="callbackCameraVisualAngleJsonToLookEvent"
  308. ></ThreeWorldQingXiCheAndQv>
  309. <img class="mengBan" src="../../assets/res/img/com/meng_ban.webp" />
  310. </div>
  311. </template>
  312. <style lang="less" scoped>
  313. .ThreeWorldEventMain * {
  314. -moz-user-select: none;
  315. -webkit-user-select: none;
  316. -ms-user-select: none;
  317. -khtml-user-select: none;
  318. user-select: none;
  319. }
  320. .ThreeWorldEventMain {
  321. position: fixed;
  322. top: 0px;
  323. left: 0px;
  324. width: 100%;
  325. height: 100%;
  326. z-index: 0;
  327. .mengBan {
  328. position: fixed;
  329. top: 0px;
  330. left: 0px;
  331. width: 100%;
  332. height: 100%;
  333. z-index: 1000;
  334. /* 注意这里必须是被允许穿透点击的,否则堆叠高于了 canvas,则会出现无法点击到canvas了。加了这个即可解决这个问题 */
  335. pointer-events: none;
  336. opacity: 0.3;
  337. }
  338. }
  339. </style>