index.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  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. console.log(data)
  146. // wx.request({
  147. // url: `${app.globalData.publicUrl}/api/st/dining/order`,
  148. // method: "post",
  149. // header: {
  150. // 'x-tenant': 'test'
  151. // },
  152. // data,
  153. // success: res => {
  154. // console.log(res)
  155. // },
  156. // error: err => {
  157. // wx.showToast({
  158. // title: err.msg,
  159. // icon: 'error'
  160. // })
  161. // }
  162. // })
  163. wx.showToast({
  164. title: '完成点餐',
  165. })
  166. },
  167. /**
  168. * 生命周期函数--监听页面加载
  169. */
  170. onLoad: function (options) {
  171. this.searchDate();
  172. let one = [{
  173. id: '1',
  174. url: '/image/home/image2.jpg',
  175. title: '早餐1',
  176. num: '1000',
  177. reserve: 15
  178. }, {
  179. id: '2',
  180. url: '/image/home/image2.jpg',
  181. title: '早餐2',
  182. num: '1000',
  183. reserve: 15
  184. },]
  185. if (one) this.setData({ breakfastList: one })
  186. let two = [{
  187. id: '3',
  188. url: '/image/home/image2.jpg',
  189. title: '午餐1',
  190. num: '1000',
  191. reserve: 15
  192. }, {
  193. id: '4',
  194. url: '/image/home/image2.jpg',
  195. title: '午餐2',
  196. num: '1000',
  197. reserve: 15
  198. },]
  199. if (two) this.setData({ lunchList: two })
  200. let thr = [{
  201. id: '5',
  202. url: '/image/home/image2.jpg',
  203. title: '晚餐1',
  204. num: '1000',
  205. reserve: 15
  206. }, {
  207. id: '6',
  208. url: '/image/home/image2.jpg',
  209. title: '晚餐2',
  210. num: '1000',
  211. reserve: 15
  212. },]
  213. if (thr) this.setData({ dinnerList: thr })
  214. },
  215. // 查询时间
  216. searchDate: function () {
  217. let today = moment().format('YYYY-MM-DD');
  218. if (today) this.setData({ today: today })
  219. wx.request({
  220. url: `${app.globalData.publicUrl}/api/st/dining/arrange/getByDate?date=` + today,
  221. method: "get",
  222. header: {
  223. 'x-tenant': 'test'
  224. },
  225. success: res => {
  226. const { arrange } = res.data.data;
  227. if (!arrange) return;
  228. let { breakfast, lunch, dinner } = arrange
  229. breakfast = this.dealImg(breakfast)
  230. lunch = this.dealImg(lunch)
  231. dinner = this.dealImg(dinner)
  232. this.setData({
  233. breakfastList: breakfast,
  234. lunchList: lunch,
  235. dinnerList: dinner
  236. })
  237. },
  238. error: err => {
  239. wx.showToast({
  240. title: err.msg,
  241. icon: 'error'
  242. })
  243. }
  244. })
  245. },
  246. dealImg(list) {
  247. for (let i of list) {
  248. if (i.img && i.img.length > 0 && i.img[0]) i.url = `${app.globalData.fileUrl}${i.img[0].url}`
  249. }
  250. return list;
  251. },
  252. /**
  253. * 生命周期函数--监听页面初次渲染完成
  254. */
  255. onReady: function () {
  256. },
  257. /**
  258. * 生命周期函数--监听页面显示
  259. */
  260. onShow: function () {
  261. if (typeof this.getTabBar === 'function' &&
  262. this.getTabBar()) {
  263. this.getTabBar().setData({
  264. selected: 1
  265. })
  266. }
  267. },
  268. /**
  269. * 生命周期函数--监听页面隐藏
  270. */
  271. onHide: function () {
  272. },
  273. /**
  274. * 生命周期函数--监听页面卸载
  275. */
  276. onUnload: function () {
  277. },
  278. /**
  279. * 页面相关事件处理函数--监听用户下拉动作
  280. */
  281. onPullDownRefresh: function () {
  282. },
  283. /**
  284. * 页面上拉触底事件的处理函数
  285. */
  286. onReachBottom: function () {
  287. },
  288. /**
  289. * 用户点击右上角分享
  290. */
  291. onShareAppMessage: function () {
  292. }
  293. })