router.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // router.js
  2. import { RouterMount, createRouter, runtimeQuit } from '@/js_sdk/hhyang-uni-simple-router/uni-simple-router';
  3. import tools from "@/service/tools";
  4. import {userWxAppletLogin} from '@/api/user.js'
  5. const router = createRouter({
  6. platform: process.env.VUE_APP_PLATFORM,
  7. routerErrorEach:({type,level,...args})=>{
  8. // console.log({type,level,...args})
  9. // #ifdef APP-PLUS
  10. if(type===3){
  11. router.$lockStatus=false;
  12. tools.onBackPress()
  13. }
  14. // #endif
  15. },
  16. routes: [...ROUTES]
  17. });
  18. //全局路由前置守卫
  19. router.beforeEach((to, from, next) => {
  20. if(to.query.shopCode){
  21. uni.setStorageSync("invite_code", to.query.shopCode);
  22. }
  23. if(to.query.memberCode){
  24. uni.setStorageSync("memberCode", to.query.memberCode);
  25. }
  26. let isWeiXin = tools.isWx();
  27. if(isWeiXin){
  28. let userToken = uni.getStorageSync('token')
  29. if(userToken){
  30. next();
  31. }else{
  32. const href = window.location.href;
  33. if (href.indexOf('?code=') > -1 || href.indexOf('&code=') > -1){
  34. const urlArr = href.split('?')
  35. const rightUrlArr = urlArr[1].split('#/')
  36. const queryObj = {}
  37. rightUrlArr[0].split('&').map((item) => {
  38. const splitStr = item.split('=')
  39. return {
  40. key: splitStr[0],
  41. value: splitStr[1],
  42. }
  43. }).forEach((item) => {
  44. queryObj[item.key] = item.value
  45. })
  46. if(urlArr.length>=3){
  47. rightUrlArr[1]= "?"+urlArr[2]
  48. }
  49. let from = {
  50. code: queryObj.code,
  51. wx_type:1,
  52. invite_code:uni.getStorageSync("invite_code"),
  53. memberCode:uni.getStorageSync("memberCode"),
  54. }
  55. userWxAppletLogin(from).then((res)=>{
  56. if (res.code === 1) {
  57. uni.setStorageSync('token',res.data.token)
  58. uni.setStorageSync('m_id',res.data.m_id)
  59. next(to.path)
  60. } else {
  61. tools.error(res.msg);
  62. }
  63. })
  64. }else{
  65. uni.removeStorageSync('token')
  66. uni.removeStorageSync('m_id')
  67. tools.wxLogin();
  68. }
  69. }
  70. }else{
  71. next()
  72. }
  73. });
  74. // 全局路由后置守卫
  75. router.afterEach((to, from) => {
  76. // console.log('后置守卫to------', to)
  77. })
  78. export {
  79. router,
  80. RouterMount
  81. }