index.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import util from '../../../utils/util.js';
  2. import Dialog from '../../../components/dialog/dialog';
  3. const App = getApp()
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. countDownTime: false, // 倒计时日期
  10. task: {}, // 砍价任务详情
  11. active: {}, // 活动详情
  12. goods: {}, // 商品详情
  13. help_list: [], // 好友助力榜
  14. is_creater: false, // 是否为当前砍价任务的发起人
  15. is_cut: false, // 当前是否已砍
  16. setting: {}, // 砍价规则
  17. showBuyBtn: false, // 立即购买
  18. showShareBtn: false, // 邀请好友砍价
  19. showCatBtn: false, // 帮TA砍一刀
  20. showOtherBtn: false, // 查看其他砍价活动
  21. },
  22. /**
  23. * 生命周期函数--监听页面加载
  24. */
  25. onLoad(options) {
  26. let _this = this;
  27. // 砍价任务id
  28. _this.setData({
  29. task_id: options.task_id
  30. });
  31. },
  32. /**
  33. * 生命周期函数--监听页面显示
  34. */
  35. onShow() {
  36. let _this = this;
  37. // 获取砍价任务详情
  38. _this.getTaskDetail();
  39. },
  40. /**
  41. * 获取砍价任务详情
  42. */
  43. getTaskDetail() {
  44. let _this = this;
  45. App._get('bargain.task/detail', {
  46. task_id: _this.data.task_id
  47. }, (result) => {
  48. // 初始化页面数据
  49. _this._initData(result.data);
  50. });
  51. },
  52. /**
  53. * 初始化页面数据
  54. */
  55. _initData(data) {
  56. const app = this;
  57. // 初始化:显示操作按钮
  58. app._initShowBtn(data)
  59. // 记录页面数据
  60. app.setData(data)
  61. // 记录活动到期时间
  62. app.setData({
  63. countDownTime: data.active.end_time
  64. })
  65. },
  66. /**
  67. * 初始化:显示操作按钮
  68. */
  69. _initShowBtn(data) {
  70. let _this = this,
  71. // 立即购买
  72. showBuyBtn = data.is_creater && !data.task.is_buy && data.task.status && (!data.active.is_floor_buy || data.task.is_floor),
  73. // 帮砍一刀
  74. showCatBtn = !data.is_creater && !data.is_cut && !data.task.is_floor && data.task.status,
  75. // 邀请好友砍价
  76. showShareBtn = !showCatBtn && !data.task.is_floor && data.task.status,
  77. // 查看其他砍价活动
  78. showOtherBtn = !showBuyBtn && !showShareBtn && !showCatBtn;
  79. _this.setData({
  80. showBuyBtn,
  81. showShareBtn,
  82. showCatBtn,
  83. showOtherBtn,
  84. });
  85. },
  86. /**
  87. * 跳转到首页
  88. */
  89. onTargetHome(e) {
  90. wx.switchTab({
  91. url: '../../index/index',
  92. })
  93. },
  94. /**
  95. * 显示砍价规则
  96. */
  97. onToggleRules(e) {
  98. // 显示砍价规则
  99. let _this = this;
  100. Dialog({
  101. title: '砍价规则',
  102. message: _this.data.setting.bargain_rules,
  103. selector: '#zan-base-dialog',
  104. isScroll: true, // 滚动
  105. buttons: [{
  106. text: '关闭',
  107. color: 'red',
  108. type: 'cash'
  109. }]
  110. });
  111. },
  112. /**
  113. * 跳转到商品详情
  114. */
  115. onTargetGoods(e) {
  116. let _this = this;
  117. wx.navigateTo({
  118. url: `../goods/index?active_id=${_this.data.task.active_id}`,
  119. })
  120. },
  121. /**
  122. * 跳转到砍价首页
  123. */
  124. onTargetBargain(e) {
  125. wx.navigateTo({
  126. url: '../index/index',
  127. })
  128. },
  129. /**
  130. * 帮砍一刀
  131. */
  132. onHelpCut(e) {
  133. let _this = this;
  134. // 按钮禁用时不允许操作(防重复提交)
  135. if (_this.data.disabled == true) {
  136. return false;
  137. }
  138. // 设置按钮禁用
  139. _this.setData({
  140. disabled: true
  141. });
  142. // 提交到后端
  143. App._post_form('bargain.task/help_cut', {
  144. task_id: _this.data.task_id
  145. }, result => {
  146. App.showSuccess(result.msg, function () {
  147. wx.navigateBack();
  148. });
  149. // 获取砍价任务详情
  150. _this.getTaskDetail();
  151. }, false, () => {
  152. // 解除禁用
  153. _this.setData({
  154. disabled: false
  155. });
  156. });
  157. },
  158. /**
  159. * 立即购买
  160. */
  161. onCheckout(e) {
  162. let _this = this;
  163. // 跳转到结算台
  164. let option = util.urlEncode({
  165. order_type: 'bargain',
  166. task_id: _this.data.task.task_id,
  167. goods_sku_id: _this.data.task.spec_sku_id,
  168. });
  169. wx.navigateTo({
  170. url: `../../flow/checkout?${option}`
  171. });
  172. },
  173. /**
  174. * 分享当前页面
  175. */
  176. onShareAppMessage() {
  177. const _this = this;
  178. // 构建页面参数
  179. const params = App.getShareUrlParams({
  180. task_id: _this.data.task_id
  181. });
  182. return {
  183. title: _this.data.active.share_title,
  184. path: `/pages/bargain/task/index?${params}`
  185. };
  186. },
  187. /**
  188. * 分享到朋友圈
  189. * 本接口为 Beta 版本,暂只在 Android 平台支持,详见分享到朋友圈 (Beta)
  190. * https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html
  191. */
  192. onShareTimeline() {
  193. const _this = this;
  194. // 构建页面参数
  195. const params = App.getShareUrlParams({
  196. task_id: _this.data.task_id
  197. });
  198. return {
  199. title: _this.data.active.share_title,
  200. path: `/pages/bargain/task/index?${params}`
  201. };
  202. },
  203. })