選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

routerUtil.ts 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import BaseService from "@/utils/baseService";
  2. import { routingPermission } from "@/api/common.js";
  3. import { ElMessage } from "element-plus"; //提示
  4. import { progressBarStore } from "@/store/progressBarStore";
  5. import { SM4Util } from "@/utils/sm4";
  6. const sm4 = new SM4Util();
  7. export const sm4Key =
  8. "5dc11f854ceca1473e1a5075ed16eb226b4543a9a05fe50f7fba40f898099ce34abba69a07a20509f315f94d808a4d0e988935588858f65a";
  9. /**
  10. * 请求获取相应的权限信息
  11. * @param params
  12. */
  13. export function goPage(params: type, router) {
  14. // 可以在组件中的任意位置访问 `store` 变量 ✨
  15. setTimeout(() => {
  16. const store = progressBarStore();
  17. store.show = true;
  18. store.progress = 30;
  19. }, 0);
  20. //userw/rbac/permsbyopenidandmenuid
  21. BaseService.post('/userw/rbac/permsByOpenIdAndMenuId', { menuId: params.id }).then(
  22. (res: any) => {
  23. if (res && res.code === 0) {
  24. let bizContent = res.data
  25. let data = bizContent.data || [];
  26. router.push({
  27. path: params.url ?? params.link,
  28. query: {
  29. jurisdiction: sm4.encryptData_CBC(data, sm4Key), // RSA加密有长度限制,故换成sm4加密
  30. },
  31. });
  32. } else {
  33. ElMessage.error(res.message);
  34. }
  35. }
  36. );
  37. }
  38. export function IsPermission(router, code) {
  39. let codeArr = "";
  40. if (sessionStorage.getItem(router.path)) {
  41. codeArr = sessionStorage.getItem(router.path);
  42. } else {
  43. try {
  44. codeArr = sm4.decryptData_CBC(router.query.jurisdiction, sm4Key);
  45. sessionStorage.setItem(router.path, codeArr);
  46. console.log("权限标识", codeArr);
  47. } catch (error) {
  48. console.error("解密失败:", error.message);
  49. }
  50. }
  51. if (codeArr) {
  52. return codeArr.indexOf(code) !== -1;
  53. } else {
  54. return false;
  55. }
  56. }