to.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. function isObj(obj) {
  2. let array = Object.keys(obj);
  3. if (array.length === 0) { //如果数组array的长度为0 ,则返回为true,说明data对象为空
  4. return false;
  5. }
  6. return true;
  7. };
  8. export const to = (url = "", data = {}, type = 'navigateTo', oNexit = "/pages/home/index") => {
  9. if (!url) {
  10. let pages = getCurrentPages(); // 获取当前页面栈的实例
  11. if (pages.length === 1) {
  12. // 没有上一页就跳转oNexit
  13. uni.reLaunch({
  14. url: oNexit
  15. })
  16. return;
  17. }
  18. uni.navigateBack()
  19. return;
  20. };
  21. if (isObj(data)) {
  22. // #ifdef MP
  23. const route_data = encodeURIComponent(JSON.stringify(data))
  24. // #endif
  25. // #ifndef MP
  26. const route_data = JSON.stringify(data)
  27. // #endif
  28. if (type === 'navigateTo') {
  29. uni.navigateTo({
  30. url: `${url}?data=${route_data}`
  31. })
  32. } else if (type === 'redirectTo') {
  33. uni.redirectTo({
  34. url: `${url}?data=${route_data}`
  35. })
  36. } else {
  37. uni.reLaunch({
  38. url: `${url}?data=${route_data}`
  39. })
  40. }
  41. } else {
  42. if (type === 'navigateTo') {
  43. uni.navigateTo({
  44. url: `${url}`
  45. })
  46. } else if (type === 'redirectTo') {
  47. uni.redirectTo({
  48. url: `${url}`
  49. })
  50. } else {
  51. uni.reLaunch({
  52. url: `${url}`
  53. })
  54. }
  55. }
  56. }