appointment.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. const app = getApp();
  2. import productApi from '../../api/product'
  3. import storeApi from '../../api/store'
  4. import createTimeApi from '../../utils/date'
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. peopleNum: 1,
  11. activeTab: 0,
  12. shopInfo: {},
  13. shopId: 0,
  14. storeName:'',
  15. productId: 0,
  16. productImg: '',
  17. productName: '',
  18. price: 0,
  19. tabs: [],
  20. orderTime: "",
  21. orderTimeHeight: 0,
  22. days: [],
  23. },
  24. /**
  25. * 生命周期函数--监听页面加载
  26. */
  27. onLoad: async function (options) {
  28. var shopId = options.shopId;
  29. var productId = options.productId
  30. var productImg = options.productImg;
  31. var productName = options.productName;
  32. var price = options.price;
  33. this.setData({
  34. shopId,
  35. productId,
  36. productImg,
  37. productName,
  38. price
  39. })
  40. },
  41. checkAuth: async function () {
  42. console.log(this)
  43. const isAuth = await app.isAuth()
  44. if (!isAuth) {
  45. wx.redirectTo({
  46. url: '/pages/prompt/prompt?page=' + this.route,
  47. })
  48. }
  49. },
  50. onSlideChangeEnd: function (e) {
  51. var that = this;
  52. that.setData({
  53. activeTab: e.detail.index
  54. })
  55. },
  56. createTimeList: async function () {
  57. var storeId = this.data.shopId;
  58. var price = this.data.price;
  59. var shopInfo = await storeApi.getStoreById(storeId);
  60. var openTime = shopInfo.info.openTime;
  61. var closeTime = shopInfo.info.closeTime;
  62. var date = await storeApi.getStoreAppointTime(storeId);
  63. var days = date.date;
  64. console.log(days)
  65. const tabs = createTimeApi.createTimeList(openTime, closeTime, days, price);
  66. console.log(tabs)
  67. this.setData({
  68. storeName:shopInfo.info.storeName,
  69. days,
  70. tabs
  71. })
  72. },
  73. getOrderTime: function (e) {
  74. // var date = document.getElementById("orderDate");
  75. // console.log(date.target)
  76. // console.log(e.currentTarget)
  77. //选中日期的下标
  78. var i = this.data.activeTab;
  79. //选中时间的下标
  80. var index = e.currentTarget.dataset.i;
  81. //获取选中的日期
  82. var date = this.data.days[i];
  83. var time = e.currentTarget.dataset.time;
  84. var oTime = date + '/' + time;
  85. //设置选中的样式
  86. var tabs = this.data.tabs;
  87. var list = tabs[i].list;
  88. //先清空其他选中的样式
  89. list.forEach(function (item, i, array) {
  90. item.checked = false;
  91. })
  92. if (list[index].inTime) {
  93. list[index].checked = true;
  94. this.data.tabs[i].list = list;
  95. }
  96. this.setData({
  97. orderTime: oTime,
  98. tabs
  99. })
  100. },
  101. addPeopleNum: function (e) {
  102. var num = e.currentTarget.dataset.num;
  103. var maxNum = 9;
  104. if (num < maxNum) {
  105. num++;
  106. }
  107. this.setData({
  108. peopleNum: num
  109. })
  110. },
  111. reducePeopleNum: function (e) {
  112. var num = e.currentTarget.dataset.num;
  113. if (num > 1) {
  114. num--;
  115. }
  116. this.setData({
  117. peopleNum: num
  118. })
  119. },
  120. /**
  121. * 生命周期函数--监听页面初次渲染完成
  122. */
  123. onReady: function () {
  124. },
  125. /**
  126. * 生命周期函数--监听页面显示
  127. */
  128. onShow: async function () {
  129. this.createTimeList();
  130. },
  131. /**
  132. * 生命周期函数--监听页面隐藏
  133. */
  134. onHide: function () {
  135. },
  136. /**
  137. * 生命周期函数--监听页面卸载
  138. */
  139. onUnload: function () {
  140. },
  141. /**
  142. * 页面相关事件处理函数--监听用户下拉动作
  143. */
  144. onPullDownRefresh: function () {
  145. },
  146. /**
  147. * 页面上拉触底事件的处理函数
  148. */
  149. onReachBottom: function () {
  150. },
  151. /**
  152. * 用户点击右上角分享
  153. */
  154. onShareAppMessage: function () {
  155. },
  156. //动态生成产品的父盒子高度
  157. /* getOrderHeight: function () {
  158. var activeTab = this.data.activeTab;
  159. var orderTimeHeight = (this.data.tabs[activeTab].list.length) / 5 * 130;
  160. this.setData({
  161. orderTimeHeight
  162. })
  163. }, */
  164. })