home.vue 8.3 KB

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