You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB

5 months ago
  1. import { config } from '@/config'
  2. /**
  3. * 动态设置浏览器标题
  4. * @param title
  5. */
  6. export const setDocumentTitle = (title) => {
  7. document.title = title || config.title;
  8. };
  9. /**
  10. * 处理await成功失败信息
  11. * 参考https://juejin.cn/post/6844903767129718791
  12. * @param {*} promise
  13. */
  14. export function awaitWrap(promise) {
  15. return promise
  16. .then((data) => [null, data])
  17. .catch((err) => [err, null]);
  18. }
  19. /*
  20. * 第一种方法
  21. * @param paramName
  22. * 用来获取url中的某个参数
  23. */
  24. export const getQueryParamByKey = (paramName) => {
  25. let url = document.location.toString();
  26. // 如果url中有特殊字符则需要进行一下解码
  27. url = decodeURI(url);
  28. const arrObj = url.split('?');
  29. if (arrObj.length > 1) {
  30. const arrPara = arrObj[1].split('&');
  31. let arr;
  32. for (let i = 0; i < arrPara.length; i++) {
  33. arr = arrPara[i].split('=');
  34. if (arr != null && arr[0] == paramName) {
  35. return decodeURIComponent(arr[1]);
  36. }
  37. }
  38. return '';
  39. } else {
  40. return '';
  41. }
  42. };
  43. /*
  44. * 用来获取url中的所有参数
  45. * let url = 'http://192.168.1.122:9020/?appId=wxf4b72971eacba4d6&loginScene=1#/'
  46. */
  47. export const getQueryParams = (url = document.location.toString()) => {
  48. // 如果url中有特殊字符则需要进行一下解码
  49. url = decodeURI(url);
  50. const arr1 = url.split('?');
  51. const obj = {};
  52. if (arr1.length > 1) {
  53. const index = arr1[1].indexOf('#');
  54. arr1[1] = index == -1 ? arr1[1] : arr1[1].slice(0, index);
  55. const arr2 = arr1[1].split('&');
  56. for (let i = 0; i < arr2.length; i++) {
  57. const curArr = arr2[i].split('=');
  58. obj[curArr[0]] = decodeURIComponent(curArr[1]);
  59. }
  60. }
  61. return obj;
  62. };