permission.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { getToken } from "@/utils/auth";
  2. import setting from "@/plugins/setting.plugins";
  3. // 登录页面
  4. const loginPage = "/pages/login";
  5. // 页面白名单
  6. const whiteList = [
  7. "/pages/login",//登录
  8. "/pages/register",//注册
  9. "/pages/serveConfig",//服务器配置
  10. "/pages/serveConfigSelect",//服务器配置
  11. "/pages/common/textview/index",//浏览文本
  12. "/pages/common/webview/index",
  13. "/pages/business/mhxf/unitInfoCollection/index",//单位信息采集
  14. "/pages/common/invoicing/index",//开票管理
  15. "/pages/common/success/index",//成功
  16. "/pages/common/phoneVerify/index",//手机号验证
  17. "/pages/business/fireIot/repairReport/index",//报修申请
  18. "/pages/business/fireIot/repairReport/record",//报修历史
  19. "/pages/common/evaluate/record",//服务评价
  20. "/pages/common/NFC/index",//NFC读取
  21. "/pages/common/appMessage/details",//消息详情
  22. ];
  23. // 检查地址白名单
  24. function checkWhite(url) {
  25. const path = url.split("?")[0];
  26. return whiteList.indexOf(path) !== -1;
  27. }
  28. // 页面跳转验证拦截器
  29. let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
  30. list.forEach((item) => {
  31. uni.addInterceptor(item, {
  32. invoke(to) {
  33. // #ifdef APP-PLUS
  34. setting.formatSize(); //获取缓存大小
  35. // #endif
  36. if (getToken()) {
  37. if (to.url === loginPage) {
  38. uni.reLaunch({ url: "/pages/index" });
  39. }
  40. return true;
  41. } else {
  42. if (checkWhite(to.url)) {
  43. return true;
  44. }
  45. uni.reLaunch({ url: loginPage });
  46. return false;
  47. }
  48. },
  49. fail(err) {
  50. console.log(err);
  51. },
  52. });
  53. });