index.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import Vue from "vue";
  2. import Router from "vue-router";
  3. import * as namespace from "../view/namespace.js";
  4. // import BookCity from '../view/book-city.vue'
  5. // import BookStock from '../view/book-stock.vue'
  6. // import BookShelf from '../view/book-shelf.vue'
  7. // import BookRecent from '../view/book-recent.vue'
  8. // import BookDetail from '../view/book-detail.vue'
  9. // import BookCatalog from '../view/book-catalog.vue'
  10. // import Pay from '../view/pay.vue'
  11. // import Rank from '../view/rank.vue'
  12. // import Person from '../view/person.vue'
  13. // import Reader from '../view/reader.vue'
  14. // import Subscribe from '../view/subscribe.vue'
  15. // import RecordOrder from '../view/record-order.vue'
  16. // import RecordOrderBook from '../view/record-order-book.vue'
  17. // import RecordRecharge from '../view/record-recharge.vue'
  18. // import Undertheshelf from '../view/under-the-shelf.vue'
  19. const BookCity = () => import("../view/book-city.vue");
  20. const BookStock = () => import("../view/book-stock.vue");
  21. const BookShelf = () => import("../view/book-shelf.vue");
  22. const BookRecent = () => import("../view/book-recent.vue");
  23. const BookExclusive = () => import("../view/book_exclusive.vue");
  24. const BookDetail = () => import("../view/book-detail.vue");
  25. const BookCatalog = () => import("../view/book-catalog.vue");
  26. const BookRecommend = () => import("../view/book-recommend.vue");
  27. const Pay = () => import("../view/pay.vue");
  28. const adPay = () => import("../view/ad_pay.vue");
  29. const Help = () => import("../view/help.vue");
  30. const Rank = () => import("../view/rank.vue");
  31. const Rank2 = () => import("../view/rank_2.vue");
  32. const Person = () => import("../view/person.vue");
  33. const Reader = () => import("../view/reader.vue");
  34. const Subscribe = () => import("../view/subscribe.vue");
  35. const RecordOrder = () => import("../view/record-order.vue");
  36. const RecordOrderBook = () => import("../view/record-order-book.vue");
  37. const RecordRecharge = () => import("../view/record-recharge.vue");
  38. const RecordGift = () => import("../view/record-gift.vue");
  39. const RecordSign = () => import("../view/record-sign.vue");
  40. const Undertheshelf = () => import("../view/under-the-shelf.vue");
  41. const HelpPayQrcode = () => import("../view/help-pay-qrcode.vue");
  42. const HelpPay = () => import("../view/help-pay.vue");
  43. const BookShare = () => import("../view/book-share.vue");
  44. const HelpShareQrcode = () => import("../view/help-share-qrcode.vue");
  45. const Report = () => import("../view/report-page.vue");
  46. const PhoneBinding = () => import("../view/phone-binding.vue");
  47. const FakeBookDetail = () => import("../view/fake-book-detail.vue");
  48. const RecordSend = () => import("../view/record-send.vue");
  49. const Sign = () => import("../view/sign.vue");
  50. const BookLimitFree = () => import("../view/book-limit-free.vue");
  51. const Coupon = () => import("../view/my_coupon.vue");
  52. // import test from '../view/test.vue'
  53. Vue.use(Router);
  54. /**
  55. routes:[
  56. [namespace,components,children]
  57. ]
  58. children:[
  59. [namespace,components,children]
  60. ]
  61. */
  62. function generateRoute(routes) {
  63. return routes.map(val => {
  64. const route = {
  65. path: val[0].path,
  66. name: val[0].name,
  67. component: val[1],
  68. };
  69. if (val[0].meta) route.meta = val[0].meta;
  70. if (val[0].redirect) route.redirect = val[0].redirect;
  71. if (val[0].alias) route.alias = val[0].alias;
  72. if (val[2]) route.children = generateRoute(val[2]);
  73. return route;
  74. });
  75. }
  76. let behavior = "user";
  77. addEventListener("popstate", function() {
  78. //我的事件要在vue-router事件之前绑定
  79. behavior = "browser";
  80. });
  81. const router = new Router({
  82. mode: "history",
  83. routes: generateRoute([
  84. [namespace.Pay, Pay],
  85. [namespace.adPay, adPay],
  86. [namespace.Rank, Rank2],
  87. [namespace.BookExclusive, BookExclusive],
  88. // [namespace.Help, Help,
  89. [namespace.Reader, Reader],
  90. [namespace.Person, Person],
  91. [namespace.Subscribe, Subscribe],
  92. [namespace.BookCity, BookCity],
  93. [namespace.BookStock, BookStock],
  94. [namespace.BookShelf, BookShelf],
  95. [namespace.BookRecent, BookRecent],
  96. [namespace.BookDetail, BookDetail],
  97. [namespace.BookCatalog, BookCatalog],
  98. [namespace.BookRecommend, BookRecommend],
  99. [namespace.RecordOrder, RecordOrder],
  100. [namespace.RecordOrderBook, RecordOrderBook],
  101. [namespace.RecordGift, RecordGift],
  102. [namespace.RecordRecharge, RecordRecharge],
  103. [namespace.RecordSign, RecordSign],
  104. [namespace.RecordSend, RecordSend],
  105. [namespace.Undertheshelf, Undertheshelf],
  106. [namespace.Sign, Sign],
  107. [namespace.Coupon,Coupon],
  108. [namespace.HelpPayQrcode, HelpPayQrcode],
  109. [namespace.HelpPay, HelpPay],
  110. [namespace.BookShare, BookShare],
  111. [namespace.HelpShareQrcode, HelpShareQrcode],
  112. [namespace.Report, Report],
  113. [namespace.PhoneBinding, PhoneBinding],
  114. [namespace.FakeBookDetail, FakeBookDetail],
  115. [namespace.BookLimitFree, BookLimitFree]
  116. ]),
  117. scrollBehavior(to, from, savedPosition) {
  118. if (savedPosition) {
  119. return savedPosition;
  120. } else {
  121. return { x: 0, y: 0 };
  122. }
  123. }
  124. });
  125. router.beforeEach((to, from, next) => {
  126. window.prevPage = from.fullPath;
  127. window.nextPage = to.fullPath;
  128. to.meta ? (to.meta.behavior = behavior) : (to.meta = { behavior });
  129. behavior = "user";
  130. next();
  131. });
  132. router.afterEach(function(router, from) {
  133. if (process.env.NODE_ENV !== "development") {
  134. window.MtaH5.pgv();
  135. window._hmt.push(["_trackPageview", router.fullPath + "#" + from.name]);
  136. }
  137. });
  138. export default router;