blockItem.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. // pages/components/blockItem/blockItem.js
  2. const getTypeSn = require('../../../utils/util.js').getTypeSn;
  3. const parseAppjump = require('../../../utils/util.js').parseAppjump;
  4. const buyVGoods = require('../../../config.js').buyVGoods;
  5. let app = getApp()
  6. Component({
  7. /**
  8. * 组件的属性列表
  9. */
  10. properties: {
  11. item_data: {
  12. type: Object
  13. },
  14. summery: {
  15. type: Array
  16. },
  17. special_datas: {
  18. type: Object,
  19. value: {}
  20. },
  21. block_type: {
  22. type: String,
  23. value: ""
  24. }
  25. },
  26. ready() {
  27. if (!this.properties.special_datas || !(this.properties.special_datas).hasOwnProperty('fcodes')) {
  28. return;
  29. }
  30. const fcodes = this.properties.special_datas.fcodes;
  31. const goods_id = this.properties.item_data.data;
  32. const summery = this.properties.summery;
  33. let fcode = {};
  34. for (let item of summery) {
  35. if (item.goods_id == goods_id) {
  36. this.setData({
  37. goods: item
  38. })
  39. break;
  40. }
  41. }
  42. for (let item of fcodes) {
  43. if (item.goods_id == goods_id) {
  44. fcode = item;
  45. break;
  46. }
  47. }
  48. fcode.usable_time = (function (time) {
  49. let date = new Date(time * 1000);
  50. let year = date.getFullYear();
  51. let month = date.getMonth() + 1;
  52. let day = date.getDate();
  53. return `${year}.${month}.${day}`;
  54. })(fcode.usable_time);
  55. fcode.state = (function (state) {
  56. let bgColor = '';
  57. let title = '';
  58. switch (state) {
  59. case 0:
  60. bgColor = "#ffa82d";
  61. title = "可使用";
  62. break;
  63. case 1:
  64. bgColor = "#bfbfbf";
  65. title = "已用完";
  66. break;
  67. case 2:
  68. bgColor = "#bfbfbf";
  69. title = "已过期";
  70. break;
  71. case 3:
  72. bgColor = "#7e7e7e";
  73. title = '已锁定';
  74. break;
  75. }
  76. return {
  77. bgColor: bgColor,
  78. title: title
  79. }
  80. })(fcode.state);
  81. this.setData({
  82. fcode: fcode
  83. })
  84. },
  85. /**
  86. * 组件的初始数据
  87. */
  88. data: {
  89. imgShow: false,
  90. goods: {},
  91. fcode: {}
  92. },
  93. /**
  94. * 组件的方法列表
  95. */
  96. methods: {
  97. navigator(e) {
  98. const type = e.target.dataset.type || e.currentTarget.dataset.type;
  99. const target_data = e.target.dataset.target || e.currentTarget.dataset.target;
  100. const title = e.target.dataset.title || e.currentTarget.dataset.title;
  101. if (!type) return;
  102. switch (type)
  103. {
  104. case "url": {
  105. let attr = encodeURIComponent(`${target_data}`);
  106. let type_sn = getTypeSn(target_data)
  107. if (type_sn) {
  108. app.navigateto(`/pages/shareBonus/shareBonus?type_sn=${type_sn}`)
  109. break;
  110. }
  111. app.navigateto('/pages/webView/webView?url=' + attr)
  112. break;
  113. }
  114. case "special": {
  115. app.navigateto(`/pages/special/special?special_id=${target_data}&title=${title}`)
  116. break;
  117. }
  118. case "goods": {
  119. let page = `/pages/details/details?goods_id=${target_data}&title=商品详情`
  120. app.navigateto(page)
  121. break;
  122. }
  123. case "brand": {
  124. app.navigateto(`/pages/brand/brand?brand_id=${target_data}&title=${title}`)
  125. break;
  126. }
  127. case "keyword": {
  128. app.navigateto(`/pages/brand/brand?keyword=${target_data}&title=${title}`)
  129. break;
  130. }
  131. case "appjump":
  132. {
  133. //let url = 'xyzshop://www.xyzshops.com/DirectBuyVGoods?goods_id=6217&num=1';
  134. let url = target_data;
  135. const [prefix, params] = parseAppjump(url);
  136. if(prefix == 'xyzshop://www.xyzshops.com/DirectBuyVGoods') {
  137. let goods_id = params['goods_id'];
  138. let num = params['num'];
  139. buyVGoods(goods_id,num);
  140. }
  141. else if(prefix == 'xyzshop://www.xyzshops.com/NavigatePage')
  142. switch(params.page){
  143. case "oil" :
  144. wx.switchTab({
  145. url: '/pages/postage/postage'
  146. })
  147. break;
  148. case "phone" :
  149. app.navigateto('/pages/phoneCharges/phoneCharges')
  150. break;
  151. default:
  152. console.log(params.page + 'page找不到');
  153. }
  154. break;
  155. }
  156. default: {
  157. console.log(type + '类型找不到');
  158. }
  159. }
  160. },
  161. load(e) {
  162. this.setData({
  163. imgShow: true
  164. });
  165. }
  166. }
  167. })