permission.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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/index1",
  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/common/repairReport/index",//报修申请
  18. "/pages/common/repairReport/record",//报修历史
  19. "/pages/common/evaluate/record",//服务评价
  20. "/pages/common/NFC/index",//NFC读取
  21. ];
  22. // 检查地址白名单
  23. function checkWhite(url) {
  24. const path = url.split("?")[0];
  25. return whiteList.indexOf(path) !== -1;
  26. }
  27. // 页面跳转验证拦截器
  28. let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
  29. list.forEach((item) => {
  30. uni.addInterceptor(item, {
  31. invoke(to) {
  32. // #ifdef APP-PLUS
  33. setting.formatSize(); //获取缓存大小
  34. // #endif
  35. if (getToken()) {
  36. if (to.url === loginPage) {
  37. uni.reLaunch({ url: "/pages/index" });
  38. }
  39. return true;
  40. } else {
  41. if (checkWhite(to.url)) {
  42. return true;
  43. }
  44. uni.reLaunch({ url: loginPage });
  45. return false;
  46. }
  47. },
  48. fail(err) {
  49. console.log(err);
  50. },
  51. });
  52. });