mixin.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { urlDecode } from '@/utils/util'
  2. export default {
  3. data() {
  4. return {}
  5. },
  6. methods: {
  7. /**
  8. * link对象点击事件
  9. * 支持tabBar页面
  10. */
  11. onLink(linkObj) {
  12. if (!linkObj) return false
  13. // 跳转到指定页面
  14. if (linkObj.type === 'PAGE') {
  15. this.$navTo(linkObj.param.path, linkObj.param.query)
  16. }
  17. // 跳转到自定义路径
  18. if (linkObj.type === 'CUSTOM') {
  19. this.$navTo(linkObj.param.path, urlDecode(linkObj.param.queryStr))
  20. }
  21. // 跳转到微信小程序
  22. // #ifdef MP-WEIXIN
  23. if (linkObj.type === 'MP-WEIXIN') {
  24. uni.navigateToMiniProgram({
  25. appId: linkObj.param.appId,
  26. path: linkObj.param.path
  27. })
  28. }
  29. // #endif
  30. // 跳转到H5外部链接
  31. if (linkObj.type === 'URL') {
  32. // #ifdef H5
  33. window.open(linkObj.param.url)
  34. // #endif
  35. // #ifdef APP-PLUS
  36. plus.runtime.openWeb(linkObj.param.url)
  37. // #endif
  38. // #ifdef MP
  39. uni.setClipboardData({
  40. data: linkObj.param.url,
  41. success: () => this.$toast('链接已复制'),
  42. fail: ({ errMsg }) => this.$toast('复制失败 ' + errMsg)
  43. })
  44. // #endif
  45. }
  46. return true
  47. }
  48. },
  49. }