canteen.js 6.9 KB

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