canteen.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. var _request = require('../../utils/request.js')
  2. var rid
  3. Page({
  4. data: {
  5. detail: {},
  6. showCancelModal:false,
  7. canceltxt:'',
  8. cancelnum:1,
  9. canceldata:{},
  10. cancelitem:{},
  11. oncancel:false,
  12. mealInfo:{}
  13. },
  14. onShow:function(){
  15. console.log('onshow == canteen')
  16. this.setData({
  17. detail: {}
  18. })
  19. this.getList();
  20. this.getMealInfo();
  21. },
  22. // onLoad: function (options) {
  23. // console.log('onload onLoad == canteen',options)
  24. // this.getList()
  25. // },
  26. getList () {
  27. var that = this
  28. var url = 'newapi:food/get-history-info'
  29. var params = {
  30. }
  31. var success = function (res) {
  32. var data = res.data.data.list;
  33. for(let i in data){
  34. let hasorder = false;
  35. for(let o in data[i]['details']){
  36. if(data[i]['details'][o]['nums'] > 0) hasorder = true;
  37. }
  38. let xingqi;
  39. let thedate = data[i]['food_date'];
  40. if(new Date(thedate).getDay() == 0) xingqi = '星期日';
  41. if(new Date(thedate).getDay() == 1) xingqi = '星期一';
  42. if(new Date(thedate).getDay() == 2) xingqi = '星期二';
  43. if(new Date(thedate).getDay() == 3) xingqi = '星期三';
  44. if(new Date(thedate).getDay() == 4) xingqi = '星期四';
  45. if(new Date(thedate).getDay() == 5) xingqi = '星期五';
  46. if(new Date(thedate).getDay() == 6) xingqi = '星期六';
  47. data[i]['hasorder'] = hasorder;
  48. data[i]['food_day'] = xingqi;
  49. }
  50. that.setData({
  51. detail: data
  52. })
  53. console.log('data',data);
  54. }
  55. _request.$get(url, params, success)
  56. },
  57. getMealInfo () {
  58. var that = this
  59. var url = 'newapi:food/get-meal-info'
  60. var params = {
  61. }
  62. var success = function (res) {
  63. var data = res.data.data
  64. console.log('mealinfo',data);
  65. that.setData({
  66. mealInfo: data
  67. })
  68. }
  69. _request.$get(url, params, success)
  70. },
  71. showCancelm(e){
  72. var that = this
  73. var selectdata = e.currentTarget.dataset.data;
  74. var selectoitem = e.currentTarget.dataset.oitem;
  75. console.log('selectdata',selectdata);
  76. console.log('selectoitem',selectoitem);
  77. let cncan = '';
  78. if(selectoitem.type == 1) cncan = "早餐";
  79. if(selectoitem.type == 2) cncan = "中餐";
  80. if(selectoitem.type == 3) cncan = "晚餐";
  81. this.setData({
  82. showCancelModal:true,
  83. canceltxt:`确定取消 ${selectdata['food_date']}(${selectdata['food_day']}) [${cncan}] 订单?`,
  84. canceldata:selectdata,
  85. cancelitem:selectoitem,
  86. cancelnum:selectoitem['nums']
  87. })
  88. },
  89. hideCancelm(){
  90. this.setData({
  91. showCancelModal:false
  92. })
  93. },
  94. add: function (e) {
  95. var type = e.target.dataset.max;
  96. if(this.data.cancelnum+1 <= this.data.cancelitem['nums']){
  97. this.setData({
  98. cancelnum:this.data.cancelnum+1
  99. })
  100. }
  101. },
  102. mius: function (e) {
  103. var type = e.target.dataset.max;
  104. if(this.data.cancelnum-1 > 0){
  105. this.setData({
  106. cancelnum:this.data.cancelnum-1
  107. })
  108. }
  109. },
  110. confirmDel(){
  111. var that=this;
  112. let cancelnum = this.data.cancelnum;
  113. function isPositiveInteger(input) {
  114. // 使用正则表达式匹配纯数字正整数
  115. var pattern = /^[1-9]\d*$/;
  116. return pattern.test(input);
  117. }
  118. if (!isPositiveInteger(cancelnum)) {
  119. wx.showToast({
  120. title: '请输入正整数',
  121. icon: 'error',
  122. duration: 2000
  123. });
  124. return;
  125. }
  126. if(parseInt(cancelnum) > this.data.cancelitem.nums){
  127. wx.showToast({
  128. title: '退餐失败,输入的退餐数量大于订餐数',
  129. icon: 'none',
  130. duration: 2000
  131. });
  132. return;
  133. }
  134. var url = 'newapi:food/unsubcribe-food'
  135. var params = {
  136. "date": this.data.canceldata['food_date'],
  137. "nums": parseInt(cancelnum),
  138. "type": parseInt(this.data.cancelitem.type)
  139. }
  140. this.setData({
  141. oncancel:true
  142. })
  143. var success = function (res) {
  144. console.log('res',res);
  145. if(res.data.code == 0){
  146. wx.showToast({
  147. title: '退餐成功',
  148. icon: 'success',
  149. duration: 2000
  150. });
  151. setTimeout(function(){
  152. that.setData({
  153. detail: {},
  154. showCancelModal:false,
  155. oncancel:false
  156. })
  157. that.onShow();
  158. },500)
  159. return;
  160. }else{
  161. wx.showToast({
  162. title: res.data.msg,
  163. icon: 'none',
  164. duration: 2000
  165. });
  166. setTimeout(function(){
  167. that.setData({
  168. oncancel:false
  169. })
  170. },500)
  171. }
  172. }
  173. _request.$post(url, JSON.stringify(params), success)
  174. },
  175. delOrder(e){
  176. var that = this
  177. var selectdata = e.currentTarget.dataset.data;
  178. var selectoitem = e.currentTarget.dataset.oitem;
  179. console.log('selectdata',selectdata);
  180. console.log('selectoitem',selectoitem);
  181. let cncan = '';
  182. if(selectoitem.type == 1) cncan = "早餐";
  183. if(selectoitem.type == 2) cncan = "中餐";
  184. if(selectoitem.type == 3) cncan = "晚餐";
  185. wx.showModal({
  186. title: `确定取消 ${selectdata['food_date']}(${selectdata['food_day']}) [${cncan}] 订单?`,
  187. content: "1",
  188. // editable:true,
  189. // placeholderText:`请输入退餐数,已订【${selectoitem.nums}】餐`,
  190. success: function(res) {
  191. if (res.confirm) {
  192. } else if (res.cancel) {
  193. }
  194. }
  195. })
  196. },
  197. scanCode(){
  198. var that = this;
  199. wx.scanCode({
  200. onlyFromCamera: true,
  201. success (res) {
  202. if(res.errMsg == "scanCode:ok"){
  203. console.log('scanres',res);
  204. // if(res.path == '/pages/canteen/dining/dining'){
  205. wx.navigateTo({
  206. url: '/pages/canteen/dining/dining'
  207. })
  208. // }else{
  209. // wx.showToast({
  210. // title: '扫描失败',
  211. // icon: 'error',
  212. // duration: 2000
  213. // });
  214. // }
  215. // let link = res.result.split(':')[1];
  216. // var url = 'newapi:'+link;
  217. // var params = {
  218. // }
  219. // var success = function (res) {
  220. // console.log('用餐提醒',res);
  221. // if(res.data.code != 0){
  222. // wx.showToast({
  223. // title: res.data.msg,
  224. // icon: 'none',
  225. // duration: 2000
  226. // });
  227. // return;
  228. // }
  229. // let data = res.data.data;
  230. // let can = '';
  231. // if(data.type == 1) can = "早餐";
  232. // if(data.type == 2) can = "中餐";
  233. // if(data.type == 3) can = "晚餐";
  234. // wx.showModal({
  235. // title: "用餐提醒",
  236. // content: `当前用餐日期${data['foodDate']} [${can}] 数量 ${data['nums']},是否确定用餐?`,
  237. // success: function(res) {
  238. // if (res.confirm) {
  239. // var url = 'newapi:food/comfirm-get-food'
  240. // var params = {
  241. // }
  242. // var success = function (res) {
  243. // var result = res.data
  244. // if(result.code == 0){
  245. // wx.showToast({
  246. // title: '成功,用餐愉快',
  247. // icon: 'success',
  248. // duration: 3000
  249. // });
  250. // that.onShow();
  251. // return;
  252. // }else{
  253. // wx.showToast({
  254. // title: result.msg,
  255. // icon: 'error',
  256. // duration: 3000
  257. // });
  258. // }
  259. // }
  260. // _request.$get(url, params, success)
  261. // } else if (res.cancel) {
  262. // }
  263. // }
  264. // })
  265. // }
  266. // _request.$get(url, params, success)
  267. }else{
  268. wx.showToast({
  269. title: '扫描失败',
  270. icon: 'error',
  271. duration: 2000
  272. });
  273. }
  274. }
  275. })
  276. },
  277. toOrder() {
  278. wx.navigateTo({
  279. url: '/pages/canteen/order/order'
  280. })
  281. },
  282. toDining() {
  283. wx.navigateTo({
  284. url: '/pages/canteen/dining/dining'
  285. })
  286. },
  287. toRecharge() {
  288. // if(this.data.info.user.tel == ''){//未绑定手机号
  289. // wx.navigateTo({
  290. // url: '/packageUser/pages/user/bind/bind'
  291. // })
  292. // wx.showToast({
  293. // title: '请先绑定手机号~',
  294. // icon: 'none',
  295. // duration: 2000
  296. // })
  297. // //2020
  298. // wx.setStorageSync('bindbackurl', '/packageUser/pages/user/fund/fund'); //存入手机绑定后跳转页面
  299. // }else{
  300. wx.navigateTo({
  301. url: '/packageUser/pages/user/fund/fund?source=canteen'
  302. })
  303. // }
  304. },
  305. })