index.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. Vue.use(VueRouter)
  4. const routes = [
  5. {
  6. path: '*',
  7. redirect: '/404'
  8. },
  9. {
  10. path: '/loan',
  11. redirect: '/'
  12. },
  13. {
  14. path: '/404',
  15. name: '404',
  16. component: () => import(/* webpackChunkName: "pageNotFound" */ '../page/404')
  17. },
  18. {
  19. path: '/', // 我的申请记录
  20. name: 'Loan',
  21. component: () => import(/* webpackChunkName: "loan_home" */ '../views/loan/home'),
  22. meta: {
  23. isUseCache: false,
  24. keepAlive: true
  25. }
  26. },
  27. {
  28. path: '/loan/explain/:orderProductId', // 贷款介绍
  29. name: 'loanExplain',
  30. component: () => import(/* webpackChunkName: "loan_goods" */ '../views/loan/explain'),
  31. props: true
  32. },
  33. {
  34. path: '/loan/apply/:orderProductId', // 基本信息填写
  35. name: 'loanApply',
  36. component: () => import(/* webpackChunkName: "loan_apply" */ '../views/loan/apply'),
  37. meta: {
  38. isUseCache: false,
  39. keepAlive: true
  40. },
  41. props: true
  42. },
  43. {
  44. path: '/loan/detail/:id', // 进度查询:贷款详情页
  45. name: 'loanDetail',
  46. component: () => import(/* webpackChunkName: "loan_detail" */ '../views/loan/detail'),
  47. props: true
  48. },
  49. {
  50. path: '/loan/attest/:id', // 上传资料
  51. name: 'loanAttest',
  52. component: () => import(/* webpackChunkName: "loan_attest" */ '../views/loan/attest'),
  53. props: true
  54. },
  55. {
  56. path: '/loan/bespeak/:id', // 预约现场办理时间
  57. name: 'loanBespeak',
  58. component: () => import(/* webpackChunkName: "loan_bespeak" */ '../views/loan/bespeak'),
  59. props: true
  60. },
  61. {
  62. path: '/loan/privacy', // 隐私协议
  63. name: 'loanPrivacy',
  64. component: () => import(/* webpackChunkName: "loan_privacy" */ '../views/loan/privacy')
  65. },
  66. {
  67. path: '/loan/agreement', // 协议
  68. name: 'loanAgreement',
  69. component: () => import(/* webpackChunkName: "loan_agreement" */ '../views/loan/agreement')
  70. },
  71. {
  72. path: '/loan/help', // 还款助手
  73. name: 'loanHelp',
  74. component: () => import(/* webpackChunkName: "loan_help" */ '../views/loan/help')
  75. },
  76. {
  77. path: '/loan/about', // 了解我们
  78. name: 'loanAbout',
  79. component: () => import(/* webpackChunkName: "loan_about" */ '../views/loan/about')
  80. },
  81. {
  82. path: '/partner', // 我的销售
  83. component: () => import(/* webpackChunkName: "partner_home" */ '../views/partner/home'),
  84. children: [
  85. {
  86. path: '', // 推广
  87. name: 'partnerMarketing',
  88. component: () => import(/* webpackChunkName: "partner_marketing" */ '../views/partner/marketing'),
  89. meta: {
  90. isUseCache: false,
  91. keepAlive: true
  92. }
  93. },
  94. {
  95. path: 'mine', // 我的
  96. name: 'partnerMine',
  97. component: () => import(/* webpackChunkName: "partner_mine" */ '../views/partner/mine')
  98. }
  99. ]
  100. },
  101. {
  102. path: '/partner/goods', // 贷款产品
  103. name: 'partnerGoods',
  104. component: () => import(/* webpackChunkName: "partner_goods" */ '../views/partner/goods'),
  105. meta: {
  106. isUseCache: false,
  107. keepAlive: true
  108. }
  109. },
  110. {
  111. path: '/partner/sale', // 放款总额
  112. name: 'partnerSale',
  113. component: () => import(/* webpackChunkName: "partner_sale" */ '../views/partner/sale'),
  114. meta: {
  115. isUseCache: false,
  116. keepAlive: true
  117. }
  118. },
  119. {
  120. path: '/partner/wallet', // 我的钱包
  121. name: 'partnerWallet',
  122. component: () => import(/* webpackChunkName: "partner_wallet" */ '../views/partner/wallet'),
  123. meta: {
  124. isUseCache: false,
  125. keepAlive: true
  126. }
  127. },
  128. {
  129. path: '/partner/business', // 我的合伙人
  130. name: 'partnerBusiness',
  131. component: () => import(/* webpackChunkName: "partner_business" */ '../views/partner/business'),
  132. meta: {
  133. isUseCache: false,
  134. keepAlive: true
  135. }
  136. },
  137. {
  138. path: '/partner/login', // 登录
  139. name: 'partnerLogin',
  140. component: () => import(/* webpackChunkName: "partner_login" */ '../views/partner/login')
  141. },
  142. {
  143. path: '/partner/explain', // 成为合伙人-介绍
  144. name: 'partnerExplain',
  145. component: () => import(/* webpackChunkName: "partner_explain" */ '../views/partner/explain')
  146. },
  147. {
  148. path: '/partner/join', // 成为合伙人-申请资料填写
  149. name: 'partnerJoin',
  150. component: () => import(/* webpackChunkName: "partner_join" */ '../views/partner/join'),
  151. meta: {
  152. isUseCache: false,
  153. keepAlive: true
  154. },
  155. props: true
  156. },
  157. {
  158. path: '/partner/detail', // 申请进度
  159. name: 'partnerDetail',
  160. component: () => import(/* webpackChunkName: "partner_detail" */ '../views/partner/detail')
  161. },
  162. {
  163. path: '/partner/compact', // 签约
  164. name: 'partnerCompact',
  165. component: () => import(/* webpackChunkName: "partner_compact" */ '../views/partner/compact')
  166. },
  167. {
  168. path: '/partner/privacy', // 隐私协议
  169. name: 'partnerPrivacy',
  170. component: () => import(/* webpackChunkName: "partner_privacy" */ '../views/partner/privacy')
  171. },
  172. {
  173. path: '/partner/agreement', // 协议
  174. name: 'partnerAgreement',
  175. component: () => import(/* webpackChunkName: "partner_agreement" */ '../views/partner/agreement')
  176. }
  177. ]
  178. const router = new VueRouter({
  179. mode: 'history',
  180. routes,
  181. scrollBehavior (to, from, savedPosition) {
  182. // keep-alive 返回缓存页面后记录浏览位置
  183. if (savedPosition && to.meta.keepAlive) {
  184. return savedPosition
  185. }
  186. // 异步滚动操作
  187. return new Promise((resolve) => {
  188. setTimeout(() => {
  189. resolve({ x: 0, y: 1 })
  190. }, 0)
  191. })
  192. }
  193. })
  194. export default router