home.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <template>
  2. <view class="mybody bgclF8 df fdc">
  3. <TopMenu ref="TopMenu" v-on:onTopSYClick="onTopSYClick" v-on:onTopQXZBClick="onTopQXZBClick" v-on:onLoginClick="showPage(0)"
  4. v-on:onTopXXYSYClick="onTopXXYSYClick" v-on:onTopMenuIconClick="onTopMenuIconClick" v-on:onClick_return="onClick_return"></TopMenu>
  5. <view class="content homeContent">
  6. <Login ref="Login" v-show="bShow[0]" v-on:onLogin="onLogin"></Login>
  7. <SYJJ ref="SYJJ" v-show="bShow[1]" v-on:onClick_Btn1="onClick_SYJJ_btn1"></SYJJ>
  8. <XXLC ref="XXLC" v-show="bShow[2]"></XXLC>
  9. <KSXX ref="KSXX" v-show="bShow[3]" v-on:on2thTitleClick="on2thKSXXClick"></KSXX>
  10. <image v-show="bShow[4]" class="homeBG" mode="aspectFill" src="../assets/home/homeBG.png"></image>
  11. <QXZB ref="QXZB" v-show="bShow[5]"></QXZB>
  12. <XXYSY ref="XXYSY" v-show="bShow[6]" v-on:onClick_KSRZ="onClick_KSRZ"></XXYSY>
  13. <YLRZ ref="YLRZ" v-show="bShow[7]"></YLRZ>
  14. <SYJJ2 ref="SYJJ2" v-show="bShow[8]"></SYJJ2>
  15. <manager ref="manager" v-show="bShow[9]"></manager>
  16. <simulation ref="simulation" v-show="bShow[10]"></simulation>
  17. <simulationLibrary ref="simulationLibrary" v-show="bShow[11]"></simulationLibrary>
  18. </view>
  19. <!-- 左侧导航栏永远保持在最上层 -->
  20. <LeftMenu ref="LeftMenu" v-on:onLeftMenuClick="onLeftMenuClick"></LeftMenu>
  21. </view>
  22. </template>
  23. <script>
  24. import LeftMenu from '../components/leftMenu.vue'
  25. import TopMenu from '../components/topMenu.vue'
  26. import Login from '../components/login/login.vue'
  27. import manager from '../components/manager/Index.vue'
  28. import simulation from "../components/home/simulation.vue"
  29. import simulationLibrary from "../components/home/simulationLibrary.vue"
  30. //一级页面
  31. import KSXX from '../components/startLearning/startLearning.vue' //开始学习
  32. import SYJJ from '../components/introductionToTheExperiment/introductionToTheExperiment.vue' //实验简介
  33. import XXLC from '../components/learningProcess/learningProcess.vue' //学习流程
  34. //二级页面
  35. //开始学习
  36. import QXZB from '../components/startLearning/preludePreparation/preludePreparation.vue' //前序准备
  37. import XXYSY from '../components/startLearning/learningAndExperiment/learningAndExperiment.vue' //学习与实验
  38. import YLRZ from '../components/startLearning/learningAndExperiment/ksxx_xxysy_ylrz/ksxx_xxysy_ylrz.vue' //原理认知
  39. //实验简介的详情页
  40. import SYJJ2 from '../components/introductionToTheExperiment/syjj_second.vue' //实验简介的详情页
  41. export default {
  42. components: {
  43. LeftMenu,
  44. TopMenu,
  45. Login,
  46. SYJJ,
  47. XXLC,
  48. KSXX,
  49. QXZB,
  50. XXYSY,
  51. YLRZ,
  52. SYJJ2,
  53. manager,
  54. simulation,
  55. simulationLibrary
  56. },
  57. data() {
  58. return {
  59. curShowPage: 4,
  60. //这里记录当前需要显示哪个页面。每新添加一个页面,都需要在这里注册。
  61. bShow: [
  62. false, //0登录
  63. false, //1实验简介一级页面
  64. false, //2学习流程一级页面
  65. false, //3开始学习一级页面
  66. true, //4首页
  67. false, //5开始学习-前序准备
  68. false, //6开始学习-学习与实验
  69. false, //7开始学习-学习与实验-原理认知
  70. false, //8实验简介的详情页
  71. false, //9后台
  72. false, //虚拟仿真1号摄影棚
  73. false, //虚拟仿真库
  74. ],
  75. // bShowLogin: true, //登录
  76. // bShowSYJJ: false, //实验简介一级页面
  77. // bShowXXLC: false, //学习流程一级页面
  78. // bShowSL: false, //开始学习一级页面
  79. checkedIndex_SYJJ: 0, //实验简介选中标题索引值
  80. }
  81. },
  82. methods: {
  83. onTopSYClick(index) {
  84. console.log("点击了首页标题", index, myData_QXZB_SYQY.length);
  85. let pageIndex = -1;
  86. switch (index) {
  87. case 0: //实验简介
  88. pageIndex = 1;
  89. // this.$refs.SYJJ.initData();
  90. break;
  91. case 1: //学习流程
  92. pageIndex = 2;
  93. // this.$refs.XXLC.initData();
  94. break;
  95. case 2: //开始学习
  96. pageIndex = 3;
  97. this.$refs.KSXX.initData();
  98. break;
  99. case 4:
  100. break;
  101. default:
  102. console.log("选中状态为home:", state);
  103. }
  104. this.showPage(pageIndex);
  105. },
  106. onLogin: function() {
  107. console.log("登陆成功home");
  108. this.$refs.TopMenu.switchLoginState(true);
  109. this.showPage(4);
  110. },
  111. showPage(index) {
  112. this.curShowPage = index;
  113. for (let i = 0; i < this.bShow.length; i++) {
  114. if (i == index) {
  115. this.bShow[i] = true;
  116. } else {
  117. this.bShow[i] = false;
  118. }
  119. }
  120. // console.log("显示页面", index, this.bShow, this.bShow.length);
  121. this.$forceUpdate();
  122. },
  123. //2级开始学习标题点击事件
  124. on2thKSXXClick(data) {
  125. // console.log("2级点击",data);
  126. let lineIndex = data.indexOf("-");
  127. let type = data.substr(0, lineIndex)
  128. let index = data.substr(lineIndex + 1, data.length - 1)
  129. console.log("2级点击home---", type, index);
  130. //前序准备
  131. if (type == "QXZB") {
  132. this.showPage(5)
  133. this.$refs.TopMenu.switchMiddleState(topMenuS.QXZB);
  134. this.$refs.QXZB.onTopQXZBClick(index);
  135. this.$refs.TopMenu.checkedIndexQXZB = index;
  136. }
  137. //学习与实验
  138. else if (type == "XXYSY") {
  139. this.showPage(6)
  140. this.$refs.TopMenu.switchMiddleState(topMenuS.XXYSY);
  141. this.$refs.XXYSY.onTopXXYSYClick(index);
  142. this.$refs.TopMenu.checkedIndexXXYSY = index;
  143. } else {
  144. console.log("2级点击---", lineIndex, type, index);
  145. }
  146. },
  147. //顶部前序准备小标题点击事件
  148. onTopQXZBClick(index) {
  149. // console.log("顶部点击home",index);
  150. this.$refs.QXZB.onTopQXZBClick(index);
  151. },
  152. //顶部学习与实验小标题点击事件
  153. onTopXXYSYClick(index) {
  154. // console.log("顶部点击home",index);
  155. this.$refs.XXYSY.onTopXXYSYClick(index);
  156. },
  157. //左侧导航点击事件
  158. onLeftMenuClick(indexArr) {
  159. debugger;
  160. let targetPage = -1;
  161. let topMiddleState = '';
  162. switch (indexArr[0]) {
  163. case 0: //首页
  164. if (indexArr[1] == 0) {
  165. targetPage = 10;
  166. topMiddleState = topMenuS.home_1;
  167. } else if (indexArr[1] == 1) {
  168. targetPage = 11;
  169. topMiddleState = topMenuS.home_2;
  170. } else if (indexArr[1] == 2) {
  171. } else if (indexArr[1] == 3) {
  172. } else {
  173. targetPage = 4;
  174. topMiddleState = topMenuS.SY;
  175. }
  176. break;
  177. case 1: //实验简介
  178. targetPage = 8;
  179. topMiddleState = topMenuS.SYJJ;
  180. this.$refs.SYJJ2.showPage(indexArr[1]);
  181. this.$refs.TopMenu.switchState_syjj(indexArr[1]);
  182. // this.$forceUpdate();
  183. break;
  184. case 2: //学习流程
  185. break;
  186. case 3: //开始学习
  187. if (indexArr[1] == 0) {
  188. targetPage = 5;
  189. topMiddleState = topMenuS.QXZB;
  190. } else if (indexArr[1] == 1) {
  191. targetPage = 6;
  192. topMiddleState = topMenuS.XXYSY;
  193. }
  194. break;
  195. case 4:
  196. targetPage = 9;
  197. topMiddleState = topMenuS.manager;
  198. break;
  199. default:
  200. console.log("展示页面home:", this.curShowPage);
  201. }
  202. this.showPage(targetPage);
  203. this.$refs.TopMenu.switchMiddleState(topMiddleState);
  204. console.log("左侧导航点击home", indexArr);
  205. },
  206. //顶部导航左上角icon点击事件
  207. onTopMenuIconClick() {
  208. let indexArr = [];
  209. switch (this.curShowPage) {
  210. case 0: //登录
  211. indexArr = [-1, -1];
  212. break;
  213. case 1: //实验简介1级
  214. indexArr = [1, -1];
  215. break;
  216. case 2: //学习流程1级
  217. indexArr = [2, -1];
  218. break;
  219. case 3: //开始学习1级
  220. indexArr = [3, -1];
  221. break;
  222. case 4: //首页
  223. indexArr = [0, -1];
  224. break;
  225. case 5: //开始学习-前序准备
  226. indexArr = [3, 0];
  227. break;
  228. case 6: //开始学习-学习与实验
  229. indexArr = [3, 1];
  230. break;
  231. case 7: //开始学习-学习与实验-原理认知
  232. indexArr = [3, 1];
  233. break;
  234. case 8: //实验简介2级
  235. indexArr = [1, this.checkedIndex_SYJJ];
  236. break;
  237. default:
  238. console.log("展示页面home:", this.curShowPage);
  239. }
  240. this.$refs.LeftMenu.show(indexArr);
  241. },
  242. //开始学习-学习与实验-开始认知按钮
  243. onClick_KSRZ() {
  244. this.showPage(7);
  245. this.$refs.TopMenu.switchMiddleState(topMenuS.YLRZ);
  246. // this.$refs.TopMenu.switchRightState(2);
  247. },
  248. //原理认知-返回上一层:返回到开始学习-学习与实验的展开页
  249. onClick_return(type) {
  250. switch (type) {
  251. case 3: //原理认知-返回上一层:返回到开始学习-学习与实验的展开页
  252. this.showPage(3);
  253. this.$refs.KSXX.switchSecondTitle(1);
  254. break;
  255. case 4: //实验简介-返回上一层:返回到实验简介的展开页
  256. this.showPage(1);
  257. break;
  258. default:
  259. console.log("返回类型", type);
  260. }
  261. },
  262. //实验简介按钮点击
  263. onClick_SYJJ_btn1(index) {
  264. this.showPage(8);
  265. this.checkedIndex_SYJJ = index;
  266. this.$refs.SYJJ2.showPage(index);
  267. this.$refs.TopMenu.switchMiddleState(topMenuS.SYJJ);
  268. this.$refs.TopMenu.switchState_syjj(index);
  269. this.$forceUpdate();
  270. }
  271. }
  272. }
  273. </script>
  274. <style lang="scss">
  275. .homeBG {
  276. width: 100%;
  277. height: 100%;
  278. }
  279. .homeContent {
  280. margin-top: px2vw(120);
  281. }
  282. </style>