jump.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /* #ifndef MP-TOUTIAO */
  2. import { push } from './formId.js';
  3. /* #endif */
  4. import { clearStorage } from './cache.js';
  5. const jump = function(data) {
  6. /* #ifndef MP-TOUTIAO */
  7. if (data.form) push(data.e.detail.formId);
  8. /* #endif */
  9. switch (data.open_type) {
  10. case 'redirect':
  11. uni.redirectTo({
  12. url: data.url
  13. });
  14. break;
  15. case 'navigate':
  16. console.log(data.url);
  17. uni.navigateTo({
  18. url: data.url
  19. });
  20. break;
  21. case 'app_admin':
  22. if (data.$store.state.user.info.identity.is_admin == 1) {
  23. uni.navigateTo({
  24. url: data.url,
  25. });
  26. }
  27. break;
  28. case 'tel':
  29. if (data.params) {
  30. uni.makePhoneCall({
  31. phoneNumber: data.params[0].value
  32. });
  33. } else if (data.number) {
  34. uni.makePhoneCall({
  35. phoneNumber: data.number
  36. });
  37. }
  38. break;
  39. case 'web':
  40. uni.navigateTo({
  41. url: data.url
  42. });
  43. break;
  44. // #ifndef MP-TOUTIAO
  45. case 'app':
  46. if (data.url) {
  47. let originalPath = data.url.split('?')[1];
  48. uni.navigateToMiniProgram({
  49. appId: originalPath.slice(0, 25).split('=')[1],
  50. path: originalPath.slice(originalPath.indexOf('&') + 1, originalPath.length).split('=')[1],
  51. success(res) {
  52. console.log(res);
  53. },
  54. fail(res) {
  55. console.log(res);
  56. }
  57. });
  58. } else if(data.appId) {
  59. uni.navigateToMiniProgram({
  60. appId: data.appId,
  61. success(res) {
  62. console.log(res);
  63. },
  64. fail(res) {
  65. console.log(res);
  66. }
  67. });
  68. }
  69. break;
  70. // #endif
  71. case 'clear_cache':
  72. clearStorage();
  73. break;
  74. case 'map':
  75. uni.openLocation({
  76. latitude: Number(data.latitude),
  77. longitude: Number(data.longitude),
  78. name: data.address,
  79. success: function () {
  80. console.log('success');
  81. }
  82. });
  83. break;
  84. case 'reload':
  85. uni.redirectTo({
  86. url: this.$platDiff.routeWithOption()
  87. });
  88. break;
  89. }
  90. };
  91. export default jump;