index.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. Vue.use(VueRouter)
  4. const _import = require('./import-' + process.env.NODE_ENV)
  5. const routes = [
  6. // {
  7. // path: '*',
  8. // redirect: '/404'
  9. // },
  10. {
  11. path: '/loan',
  12. redirect: '/'
  13. },
  14. {
  15. path: '/404',
  16. name: '404',
  17. component: _import('page/404/index')
  18. },
  19. {
  20. path: '/', // 我的申请记录
  21. name: 'Loan',
  22. component: _import('views/loan/home/index'),
  23. meta: {
  24. isUseCache: false,
  25. keepAlive: true
  26. }
  27. },
  28. {
  29. path: '/loan/register', // 注册
  30. name: 'loanRegister',
  31. component: _import('views/loan/register/index'),
  32. meta: {
  33. isUseCache: false,
  34. keepAlive: true
  35. }
  36. },
  37. {
  38. path: '/loan/mall', // 商城入口
  39. component: _import('views/loan/mall/index'),
  40. children: [
  41. {
  42. path: '', // 销售
  43. name: 'loanIndex',
  44. component: _import('views/loan/index/index'),
  45. meta: {
  46. isUseCache: false,
  47. keepAlive: true
  48. }
  49. },
  50. {
  51. path: '/loan/calculator', // 贷款工具
  52. name: 'loanCalculator',
  53. component: _import('views/loan/calculator/index'),
  54. meta: {
  55. isUseCache: false,
  56. keepAlive: true
  57. }
  58. },
  59. {
  60. path: '/loan/mine', // 我的
  61. name: 'loanMine',
  62. component: _import('views/loan/mine/index'),
  63. meta: {
  64. isUseCache: false,
  65. keepAlive: true
  66. }
  67. }
  68. ]
  69. },
  70. {
  71. path: '/loan/media/:id', // 销售页顶部banner,轮播图详情
  72. name: 'loanMedia',
  73. component: _import('views/loan/media/index'),
  74. props: (route) => ({
  75. id: route.params.id
  76. })
  77. },
  78. {
  79. path: '/loan/recommend', // 贷款计算器推荐产品
  80. name: 'loanRecommend',
  81. component: _import('views/loan/recommend/index'),
  82. meta: {
  83. isUseCache: false,
  84. keepAlive: true
  85. }
  86. },
  87. {
  88. path: '/loan/invite', // 邀请记录
  89. name: 'loanInvite',
  90. component: _import('views/loan/invite/index')
  91. },
  92. {
  93. path: '/loan/coupon', // 优惠券
  94. name: 'loanCoupon',
  95. component: _import('views/loan/coupon/index'),
  96. meta: {
  97. isUseCache: false,
  98. keepAlive: true
  99. }
  100. },
  101. {
  102. path: '/loan/explain/:orderProductId', // 贷款介绍(自己看到、其它人看到)
  103. name: 'loanExplain',
  104. component: _import('views/loan/explain/index'),
  105. props: (route) => ({
  106. orderProductId: route.params.orderProductId,
  107. partnerId: route.query.partnerId, // 合伙人ID
  108. partnerName: route.query.partnerName, // 合伙人名字
  109. partnerImgUrl: route.query.partnerImgUrl, // 合伙人头像
  110. recommendedUser: route.query.recommendedUser ? JSON.parse(decodeURIComponent(route.query.recommendedUser)) : {} // 推荐人信息
  111. })
  112. },
  113. {
  114. path: '/loan/apply/:orderProductId', // 基本信息填写
  115. name: 'loanApply',
  116. component: _import('views/loan/apply/index'),
  117. meta: {
  118. isUseCache: false,
  119. keepAlive: true
  120. },
  121. props: (route) => ({
  122. orderProductId: route.params.orderProductId,
  123. partnerId: route.query.partnerId,
  124. RId: route.query.RId // 妥妥推荐人ID
  125. })
  126. },
  127. {
  128. path: '/loan/detail/:id', // 进度查询:贷款详情页
  129. name: 'loanDetail',
  130. component: _import('views/loan/detail/index'),
  131. props: true
  132. },
  133. {
  134. path: '/loan/attest/:id', // 上传资料
  135. name: 'loanAttest',
  136. component: _import('views/loan/attest/index'),
  137. props: true
  138. },
  139. {
  140. path: '/loan/bespeak/:id', // 预约现场办理时间
  141. name: 'loanBespeak',
  142. component: _import('views/loan/bespeak/index'),
  143. props: true
  144. },
  145. {
  146. path: '/loan/privacy', // 隐私协议
  147. name: 'loanPrivacy',
  148. component: _import('views/loan/privacy/index')
  149. },
  150. {
  151. path: '/loan/agreement', // 协议
  152. name: 'loanAgreement',
  153. component: _import('views/loan/agreement/index')
  154. },
  155. {
  156. path: '/loan/vipAgreement', // 会员协议
  157. name: 'loanVipAgreement',
  158. component: _import('views/loan/vipAgreement/index')
  159. },
  160. {
  161. path: '/partner', // 我的销售
  162. component: _import('views/partner/home/index'),
  163. children: [
  164. {
  165. path: '', // 推广
  166. component: _import('views/partner/marketing/index'),
  167. children: [
  168. {
  169. path: '', // 客户
  170. name: 'partnerCustomer',
  171. component: _import('views/partner/customer/index'),
  172. meta: {
  173. isUseCache: false,
  174. keepAlive: true
  175. }
  176. },
  177. {
  178. path: 'business', // 合伙人
  179. name: 'partnerAll',
  180. component: _import('views/partner/all/index'),
  181. meta: {
  182. isUseCache: false,
  183. keepAlive: true
  184. }
  185. }
  186. ]
  187. },
  188. {
  189. path: 'mine', // 我的
  190. name: 'partnerMine',
  191. component: _import('views/partner/mine/index'),
  192. meta: {
  193. isUseCache: false,
  194. keepAlive: true
  195. }
  196. }
  197. ]
  198. },
  199. {
  200. path: '/partner/goods', // 贷款产品
  201. name: 'partnerGoods',
  202. component: _import('views/partner/goods/index'),
  203. meta: {
  204. isUseCache: false,
  205. keepAlive: true
  206. },
  207. props: (route) => ({
  208. partnerId: route.query.partnerId,
  209. partnerName: route.query.partnerName,
  210. partnerImgUrl: route.query.partnerImgUrl
  211. })
  212. },
  213. {
  214. path: '/partner/track/:id', // 客户申请贷款详情
  215. name: 'partnerTrack',
  216. component: _import('views/partner/track/index'),
  217. props: true
  218. },
  219. {
  220. path: '/partner/sale', // 放款总额
  221. name: 'partnerSale',
  222. component: _import('views/partner/sale/index'),
  223. meta: {
  224. isUseCache: false,
  225. keepAlive: true
  226. },
  227. props: (route) => ({
  228. id: route.query.id
  229. })
  230. },
  231. {
  232. path: '/partner/wallet', // 我的钱包
  233. name: 'partnerWallet',
  234. component: _import('views/partner/wallet/index'),
  235. meta: {
  236. isUseCache: false,
  237. keepAlive: true
  238. }
  239. },
  240. {
  241. path: '/partner/login', // 登录
  242. name: 'partnerLogin',
  243. component: _import('views/partner/login/index')
  244. },
  245. {
  246. path: '/partner/explain', // 成为合伙人-介绍
  247. name: 'partnerExplain',
  248. component: _import('views/partner/explain/index'),
  249. props: (route) => ({
  250. inviteCode: route.query.inviteCode
  251. })
  252. },
  253. {
  254. path: '/partner/join', // 成为合伙人-申请资料填写
  255. name: 'partnerJoin',
  256. component: _import('views/partner/join/index'),
  257. meta: {
  258. isUseCache: false,
  259. keepAlive: true
  260. },
  261. props: (route) => ({
  262. inviteCode: route.query.inviteCode
  263. })
  264. },
  265. {
  266. path: '/partner/detail/:id', // 申请进度
  267. name: 'partnerDetail',
  268. component: _import('views/partner/detail/index'),
  269. props: true
  270. },
  271. {
  272. path: '/partner/compact', // 签约
  273. name: 'partnerCompact',
  274. component: _import('views/partner/compact/index'),
  275. props: (route) => ({
  276. id: route.query.id
  277. })
  278. },
  279. {
  280. path: '/partner/agreement', // 协议
  281. name: 'partnerAgreement',
  282. component: _import('views/partner/agreement/index'),
  283. props: (route) => ({
  284. YYMMDD: route.query.YYMMDD,
  285. compactAddress: route.query.compactAddress
  286. })
  287. }
  288. ]
  289. const router = new VueRouter({
  290. mode: 'history',
  291. routes,
  292. scrollBehavior (to, from, savedPosition) {
  293. if (to.hash) {
  294. return {
  295. selector: to.hash
  296. }
  297. }
  298. // keep-alive 返回缓存页面后记录浏览位置
  299. if (savedPosition && to.meta.keepAlive) {
  300. return savedPosition
  301. }
  302. // 异步滚动操作
  303. return new Promise((resolve) => {
  304. setTimeout(() => {
  305. resolve({ x: 0, y: 1 })
  306. }, 0)
  307. })
  308. }
  309. })
  310. export default router