permission.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. "/pages/face/index",//人脸识别
  23. ];
  24. // 检查地址白名单
  25. function checkWhite(url) {
  26. const path = url.split("?")[0];
  27. return whiteList.indexOf(path) !== -1;
  28. }
  29. // 页面跳转验证拦截器
  30. let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
  31. list.forEach((item) => {
  32. uni.addInterceptor(item, {
  33. invoke(to) {
  34. // #ifdef APP-PLUS
  35. setting.formatSize(); //获取缓存大小
  36. // #endif
  37. if (getToken()) {
  38. if (to.url === loginPage) {
  39. uni.reLaunch({ url: "/pages/index" });
  40. }
  41. return true;
  42. } else {
  43. if (checkWhite(to.url)) {
  44. return true;
  45. }
  46. uni.reLaunch({ url: loginPage });
  47. return false;
  48. }
  49. },
  50. fail(err) {
  51. console.log(err);
  52. },
  53. });
  54. });