uniapp.api.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. export function toast(options) {
  2. uni.showToast({
  3. icon: options.icon || 'none',
  4. mask: options.mask || true,
  5. title: options.title || 'title'
  6. })
  7. }
  8. toast.prototype.success = (message) => toast({ icon: 'success', title: message })
  9. toast.prototype.error = (message) => toast({ icon: 'error', title: message })
  10. const install = (Vue, options = {}) => {
  11. const prefix = options.prefix || '/pages/views/'
  12. /* tabbar 切换 */
  13. const switchTab = (url, success, fail) => {
  14. uni.switchTab({
  15. url: `/pages/tabBar/${url}/${url}`,
  16. success: success,
  17. fail: fail
  18. })
  19. }
  20. /* 保留当前页面跳转 */
  21. const navigateTo = (url, success, fail) => {
  22. uni.navigateTo({
  23. url: `${prefix}${url}`,
  24. success: success,
  25. fail: fail
  26. })
  27. }
  28. /* 关闭当前页面跳转 */
  29. const redirectTo = (url, success, fail) => {
  30. uni.redirectTo({
  31. url: `${prefix}${url}`,
  32. success: success,
  33. fail: fail
  34. })
  35. }
  36. /* 关闭所有页面跳转 */
  37. const reLaunchTo = (url, success, fail) => {
  38. uni.reLaunch({
  39. url: `${prefix}${url}`,
  40. success: success,
  41. fail: fail
  42. })
  43. }
  44. /* 关闭当前页面,返回上一页面或多级页面 */
  45. const navigateBack = (delta, success, fail) => {
  46. uni.navigateBack({
  47. delta: delta || 1,
  48. success: success,
  49. fail: fail
  50. })
  51. }
  52. /* 设置页面刷新标识 */
  53. const addRefreshType = (mark = '') => {
  54. uni.setStorageSync(`REFRESH_TYPE_${mark.toUpperCase()}`, true)
  55. }
  56. /* 获取页面刷新标识并判断是否需要刷新当前页面 */
  57. const checkRefreshType = (mark = '') => {
  58. const key = `REFRESH_TYPE_${mark.toUpperCase()}`
  59. const type = uni.getStorageSync(key)
  60. uni.removeStorageSync(key)
  61. return type
  62. }
  63. Vue.prototype.$toast = (message) => toast({ title: message })
  64. Vue.prototype.$toast.success = (message) => toast({ icon: 'success', title: message })
  65. Vue.prototype.$toast.error = (message) => toast({ icon: 'error', title: message })
  66. Vue.prototype.$router = {
  67. switchTab,
  68. navigateTo,
  69. redirectTo,
  70. reLaunchTo,
  71. navigateBack,
  72. addRefreshType,
  73. checkRefreshType
  74. }
  75. }
  76. export default install