index.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. // pages/reserve/index.js
  2. import moment, { parseTwoDigitYear } from '../../utils/moment.min';
  3. moment.locale('en', {
  4. longDateFormat: {
  5. l: "YYYY-MM-DD",
  6. L: "YYYY-MM-DD HH:mm:ss",
  7. },
  8. })
  9. const app = getApp()
  10. Page({
  11. /**
  12. * 页面的初始数据
  13. */
  14. data: {
  15. height: app.globalData.height * 2 + 25,
  16. windowHeight: app.globalData.windowHeight,
  17. navbarData: {
  18. name: '报餐'
  19. },
  20. restaurant: '当前餐厅',
  21. today: '',
  22. // 点餐
  23. currentTab: 0,
  24. // 早餐,午餐,晚餐
  25. infoTab: 0,
  26. // 餐列表
  27. breakfastList: [],
  28. lunchList: [],
  29. dinnerList: [],
  30. // 餐数量
  31. oneStepper: 0,
  32. twoStepper: 0,
  33. thrStepper: 0,
  34. // 选餐表单
  35. form: {
  36. breakfast: { reserve: 0, list: [], },
  37. lunch: { reserve: 0, list: [], },
  38. dinner: { reserve: 0, list: [], },
  39. },
  40. },
  41. // 选择日期
  42. bindDateChange: function (e) {
  43. console.log('picker发送选择改变,携带值为', e.detail.value)
  44. this.setData({ today: e.detail.value })
  45. },
  46. // 禁止左右滑动
  47. stopTab: function (e) {
  48. return false
  49. },
  50. //点击切换
  51. clickTab: function (e) {
  52. var that = this;
  53. if (this.data.currentTab === e.target.dataset.current) {
  54. return false;
  55. } else {
  56. that.setData({
  57. currentTab: e.target.dataset.current
  58. })
  59. }
  60. },
  61. // 点击选择餐食
  62. infoClickTab: function (e) {
  63. var that = this;
  64. let data = e.target.dataset.current;
  65. if (this.data.infoTab === data) return false;
  66. else that.setData({ infoTab: data });
  67. },
  68. // 选择餐数量
  69. // 早餐,午餐,晚餐
  70. oneChange: function (e) {
  71. if (this.data.infoTab == 0) this.setData({ oneStepper: e.detail })
  72. else if (this.data.infoTab == 1) this.setData({ twoStepper: e.detail })
  73. else if (this.data.infoTab == 2) this.setData({ thrStepper: e.detail })
  74. },
  75. // 增加
  76. onePlus: function (e) {
  77. console.log('增加');
  78. let data = e.target.dataset.data;
  79. let type = this.data.infoTab;
  80. if (type == 0) {//早餐
  81. var meal = this.data.form.breakfast;
  82. // 计算卡路里
  83. let reserve = meal.reserve + data.reserve;
  84. this.setData({ 'form.breakfast.reserve': reserve })
  85. } else if (type == 1) {//午餐
  86. var meal = this.data.form.lunch;
  87. // 计算卡路里
  88. let reserve = meal.reserve + data.reserve;
  89. this.setData({ 'form.lunch.reserve': reserve })
  90. } else if (type == 2) {//晚餐
  91. var meal = this.data.form.dinner;
  92. // 计算卡路里
  93. let reserve = meal.reserve + data.reserve;
  94. this.setData({ 'form.dinner.reserve': reserve })
  95. }
  96. // 查询下标
  97. let res = meal.list.findIndex(i => i.id === data.id);
  98. // 查询数据
  99. let arr = meal.list.find(i => i.id === data.id);
  100. if (arr) {//已有值
  101. let qwe = { ...arr, num: arr.num + 1 } //id: arr.id, title: arr.title
  102. meal.list.splice(res, 1, qwe)
  103. } else {//没有值
  104. let arr = { ...data, num: 1 } //id: data.id, title: data.title
  105. meal.list.push(arr)
  106. }
  107. },
  108. // 减少
  109. oneMinus: function (e) {
  110. console.log('减少');
  111. let data = e.target.dataset.data;
  112. let type = this.data.infoTab;
  113. if (type == 0) {//早餐
  114. var meal = this.data.form.breakfast;
  115. // 计算减少卡路里
  116. let reserve = meal.reserve - data.reserve;
  117. this.setData({ 'form.breakfast.reserve': reserve })
  118. } else if (type == 1) {//午餐
  119. var meal = this.data.form.lunch;
  120. // 计算减少卡路里
  121. let reserve = meal.reserve - data.reserve;
  122. this.setData({ 'form.lunch.reserve': reserve })
  123. } else if (type == 2) {//晚餐
  124. var meal = this.data.form.dinner;
  125. // 计算减少卡路里
  126. let reserve = meal.reserve - data.reserve;
  127. this.setData({ 'form.dinner.reserve': reserve })
  128. }
  129. // 查询下标
  130. let res = meal.list.findIndex(i => i.id === data.id);
  131. // 查询数据
  132. let arr = meal.list.find(i => i.id === data.id);
  133. if (arr) {
  134. let qwe = { id: arr.id, title: arr.title, num: arr.num - 1 }
  135. meal.list.splice(res, 1, qwe)
  136. }
  137. },
  138. // 提交
  139. onSubmit: function () {
  140. console.log(this.data.form);
  141. console.log(app.globalData.userInfo)
  142. const data = JSON.parse(JSON.stringify(this.data.form))
  143. if (app.globalData.userInfo.openid) data.openid =app.globalData.userInfo.openid;
  144. if (this.data.today) data.date = this.data.today
  145. wx.request({
  146. url: `${app.globalData.publicUrl}/api/st/dining/order`,
  147. method: "post",
  148. header: {
  149. 'x-tenant': app.globalData.tenant
  150. },
  151. data,
  152. success: res => {
  153. console.log(res)
  154. },
  155. error: err => {
  156. wx.showToast({
  157. title: err.msg,
  158. icon: 'error'
  159. })
  160. }
  161. })
  162. wx.showToast({
  163. title: '完成点餐',
  164. })
  165. },
  166. /**
  167. * 生命周期函数--监听页面加载
  168. */
  169. onLoad: function (options) {
  170. this.searchDate();
  171. },
  172. // 查询时间
  173. searchDate: function () {
  174. let today = moment().format('YYYY-MM-DD');
  175. if (today) this.setData({ today: today })
  176. wx.request({
  177. url: `${app.globalData.publicUrl}/api/st/dining/arrange/getByDate?date=` + today,
  178. method: "get",
  179. header: {
  180. 'x-tenant': app.globalData.tenant
  181. },
  182. success: res => {
  183. const { arrange } = res.data.data;
  184. if (!arrange) return;
  185. let { breakfast, lunch, dinner } = arrange
  186. breakfast = this.dealImg(breakfast)
  187. lunch = this.dealImg(lunch)
  188. dinner = this.dealImg(dinner)
  189. this.setData({
  190. breakfastList: breakfast,
  191. lunchList: lunch,
  192. dinnerList: dinner
  193. })
  194. },
  195. error: err => {
  196. wx.showToast({
  197. title: err.msg,
  198. icon: 'error'
  199. })
  200. }
  201. })
  202. },
  203. dealImg(list) {
  204. for (let i of list) {
  205. if (i.img && i.img.length > 0 && i.img[0]) i.url = `${app.globalData.fileUrl}${i.img[0].url}`
  206. }
  207. return list;
  208. },
  209. /**
  210. * 生命周期函数--监听页面初次渲染完成
  211. */
  212. onReady: function () {
  213. },
  214. /**
  215. * 生命周期函数--监听页面显示
  216. */
  217. onShow: function () {
  218. if (typeof this.getTabBar === 'function' &&
  219. this.getTabBar()) {
  220. this.getTabBar().setData({
  221. selected: 1
  222. })
  223. }
  224. },
  225. /**
  226. * 生命周期函数--监听页面隐藏
  227. */
  228. onHide: function () {
  229. },
  230. /**
  231. * 生命周期函数--监听页面卸载
  232. */
  233. onUnload: function () {
  234. },
  235. /**
  236. * 页面相关事件处理函数--监听用户下拉动作
  237. */
  238. onPullDownRefresh: function () {
  239. },
  240. /**
  241. * 页面上拉触底事件的处理函数
  242. */
  243. onReachBottom: function () {
  244. },
  245. /**
  246. * 用户点击右上角分享
  247. */
  248. onShareAppMessage: function () {
  249. }
  250. })