index.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. var util = require('../../utils/util.js');
  2. var app = getApp();
  3. Component({
  4. /**
  5. * 组件的属性列表
  6. */
  7. properties: {
  8. list: {
  9. type: Object,
  10. value: {},
  11. observer: function (t) {
  12. if(t.selectedTemplate=="imageNavigation") {
  13. let num = t.showType*2;
  14. let len = t.list.length;
  15. let number = Math.ceil(len/num);
  16. let isSwiper = false;
  17. if(number>1) {
  18. isSwiper = true;
  19. }
  20. let newlist = this.chunk(t.list, num);
  21. this.setData({ isSwiper, number, newlist })
  22. }
  23. }
  24. },
  25. skin: {
  26. type: Object
  27. },
  28. },
  29. /**
  30. * 组件的初始数据
  31. */
  32. data: {
  33. isSwiper: false,
  34. number: 0,
  35. newlist: [],
  36. current: 0,
  37. swiperHeight: 0
  38. },
  39. attached() {
  40. this.getCurH()
  41. },
  42. /**
  43. * 组件的方法列表
  44. */
  45. methods: {
  46. chunk: function(array, size) {
  47. var result = [];
  48. for (var x = 0; x < Math.ceil(array.length / size); x++) {
  49. var start = x * size;
  50. var end = start + size;
  51. result.push(array.slice(start, end));
  52. }
  53. return result;
  54. },
  55. getCurH() {
  56. let current = this.data.current;
  57. let that = this;
  58. const query = wx.createSelectorQuery().in(this);
  59. query.select('#nav_'+current).boundingClientRect(function (rect) {
  60. rect&&that.setData({ swiperHeight: rect.height })
  61. }).exec();
  62. },
  63. goDiysliderUrl: function(t) {
  64. let link = t.currentTarget.dataset.link;
  65. let needAuth = this.data.needAuth;
  66. if (Object.keys(link).length > 0) {
  67. let type = link.parents;
  68. if (util.checkRedirectTo(link.wap_url, needAuth)) {
  69. this.authModal();
  70. return;
  71. }
  72. switch(type) {
  73. case "WEBVIEW":
  74. let url = link.wap_url;
  75. url && wx.navigateTo({ url: '/lionfish_comshop/pages/web-view?url=' + encodeURIComponent(url) });
  76. break;
  77. case "MALL_LINK":
  78. url = link.wap_url;
  79. if (url.indexOf('lionfish_comshop/pages/index/index') != -1 || url.indexOf('lionfish_comshop/pages/order/shopCart') != -1 || url.indexOf('lionfish_comshop/pages/user/me') != -1 || url.indexOf('lionfish_comshop/pages/type/index') != -1) {
  80. url && wx.switchTab({ url })
  81. } else {
  82. url && wx.navigateTo({ url })
  83. }
  84. break;
  85. case "OTHER_APPLET":
  86. // 跳转小程序
  87. let appId = link.appid;
  88. let path = link.wap_url;
  89. appId && wx.navigateToMiniProgram({
  90. appId,
  91. path,
  92. extraData: {},
  93. envVersion: 'release',
  94. success(res) {},
  95. fail(error) { wx.showModal({ title: "提示", content: error.errMsg, showCancel: false }) }
  96. })
  97. break;
  98. case "CUSTOM_LINK":
  99. url = link.wap_url;
  100. if (url.indexOf('lionfish_comshop/pages/index/index') != -1 || url.indexOf('lionfish_comshop/pages/order/shopCart') != -1 || url.indexOf('lionfish_comshop/pages/user/me') != -1 || url.indexOf('lionfish_comshop/pages/type/index') != -1) {
  101. url && wx.switchTab({ url })
  102. } else {
  103. url && wx.navigateTo({ url })
  104. }
  105. break;
  106. case "GOODS_CATEGORY":
  107. //独立分类
  108. let cateId = link.id;
  109. app.globalData.typeCateId = cateId;
  110. wx.switchTab({
  111. url: '/lionfish_comshop/pages/type/index'
  112. })
  113. break;
  114. default:
  115. url = link.wap_url;
  116. url && wx.navigateTo({ url })
  117. break;
  118. }
  119. }
  120. },
  121. onCurrent(e) {
  122. this.setData({
  123. current: e.detail.current
  124. }, ()=>{
  125. this.getCurH()
  126. })
  127. }
  128. }
  129. })