canteen.js 6.7 KB

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