jump.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. uni.navigateTo({
  17. url: data.url
  18. });
  19. break;
  20. case 'app_admin':
  21. if (data.$store.state.user.info.identity.is_admin == 1) {
  22. uni.navigateTo({
  23. url: data.url,
  24. });
  25. }
  26. break;
  27. case 'tel':
  28. if (data.params) {
  29. uni.makePhoneCall({
  30. phoneNumber: data.params[0].value
  31. });
  32. } else if (data.number) {
  33. uni.makePhoneCall({
  34. phoneNumber: data.number
  35. });
  36. }
  37. break;
  38. case 'web':
  39. uni.navigateTo({
  40. url: data.url
  41. });
  42. break;
  43. // #ifndef MP-TOUTIAO
  44. case 'app':
  45. if (data.url) {
  46. let originalPath = data.url.split('?')[1];
  47. uni.navigateToMiniProgram({
  48. appId: originalPath.slice(0, 25).split('=')[1],
  49. path: originalPath.slice(originalPath.indexOf('&') + 1, originalPath.length).split('=')[1]
  50. });
  51. } else if(data.appId) {
  52. uni.navigateToMiniProgram({
  53. appId: data.appId
  54. });
  55. }
  56. break;
  57. // #endif
  58. case 'clear_cache':
  59. clearStorage();
  60. break;
  61. case 'map':
  62. uni.openLocation({
  63. latitude: Number(data.latitude),
  64. longitude: Number(data.longitude),
  65. name: data.address
  66. });
  67. break;
  68. case 'reload':
  69. uni.redirectTo({
  70. url: this.$platDiff.routeWithOption()
  71. });
  72. break;
  73. }
  74. };
  75. export default jump;