mixin.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // import {request} from '@/common/js/request'
  2. export default{
  3. data() {
  4. return {
  5. page: 0, // 页码
  6. pageNum: 6, // 每页加载数据量
  7. loadingType: 1, // 加载类型。0 加载前;1 加载中;2 没有更多
  8. isLoading: false, // 刷新数据
  9. loaded: false, // 加载完毕
  10. }
  11. },
  12. methods: {
  13. /**
  14. * 打印日志,方便调试
  15. *
  16. * @param {Object} data 数据
  17. */
  18. log(data) {
  19. console.log(JSON.parse(JSON.stringify(data)))
  20. },
  21. /**
  22. * navigatorTo 跳转页面
  23. *
  24. * @param {String} url
  25. * @param {Object} options 可选参数
  26. * @param {Boolean} options.login 是否检测登录
  27. */
  28. navTo(url, options={}) {
  29. this.$util.throttle(() => {
  30. if (!url) {
  31. return;
  32. }
  33. // 如果需要登陆,并且未登陆,则跳转到登陆界面
  34. if ((~url.indexOf('login=1') || options.login) && !this.$store.getters.hasLogin){
  35. url = '/pages/auth/login';
  36. }
  37. // 跳转到指定 url 地址
  38. uni.navigateTo({
  39. url
  40. })
  41. }, 300)
  42. },
  43. /**
  44. * $request云函数请求 TODO 芋艿:需要改成自己的
  45. * @param {String} module
  46. * @param {String} operation
  47. * @param {Boolean} data 请求参数
  48. * @param {Boolean} ext 附加参数
  49. * @param {Boolean} ext.showLoading 是否显示loading状态,默认不显示
  50. * @param {Boolean} ext.hideLoading 是否关闭loading状态,默认关闭
  51. * @param {Boolean} ext.login 未登录拦截
  52. * @param {Boolean} ext.setLoaded 加载完成是设置页面加载完毕
  53. */
  54. $request(module, operation, data={}, ext={}){
  55. if(ext.login && !this.$util.isLogin()){
  56. return;
  57. }
  58. if(ext.showLoading){
  59. this.isLoading = true;
  60. }
  61. return new Promise((resolve, reject)=> {
  62. request(module, operation, data, ext).then(result => {
  63. if(ext.hideLoading !== false){
  64. this.isLoading = false;
  65. }
  66. setTimeout(()=>{
  67. if(this.setLoaded !== false){
  68. this.loaded = true;
  69. }
  70. }, 100)
  71. this.$refs.confirmBtn && this.$refs.confirmBtn.stop();
  72. resolve(result);
  73. }).catch((err) => {
  74. reject(err);
  75. })
  76. })
  77. },
  78. imageOnLoad(data, key){ // TODO 芋艿:需要改成自己的
  79. setTimeout(()=>{
  80. this.$set(data, 'loaded', true);
  81. }, 100)
  82. },
  83. showPopup(key){ // TODO 芋艿:需要改成自己的
  84. this.$util.throttle(()=>{
  85. this.$refs[key].open();
  86. }, 200)
  87. },
  88. hidePopup(key){ // TODO 芋艿:需要改成自己的
  89. this.$refs[key].close();
  90. },
  91. stopPrevent(){}, // TODO 芋艿:需要改成自己的
  92. },
  93. }