reservation.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. // pages/reservation/reservation.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. timeList:[],
  8. chargStationId:'',
  9. chargPileName:'加载中',
  10. chargPileId:'',
  11. chargPileIdId:'',
  12. userId:'',
  13. chargStationName:'',
  14. earliestReservTime:'',
  15. advanceReservDays:'',
  16. minReservTime:'',
  17. maxReservTime:'',
  18. maxEarlyExerciseTime:'',
  19. maxReservOvertime:'',
  20. current:[],
  21. second:[],
  22. three:[],
  23. four:[],
  24. dayIndex:1,
  25. dayFlag1:'',
  26. dayFlag2:'',
  27. dayFlag3:'',
  28. dayFlag4:'',
  29. reservationBtn: false,
  30. breakPunishCount: 0
  31. },
  32. goReservation(){
  33. let {
  34. brandName,
  35. chargStationId,
  36. chargPileName,
  37. chargPileId,
  38. chargPileIdId,
  39. chargStationName,
  40. userId,
  41. earliestReservTime,
  42. advanceReservDays,
  43. minReservTime,
  44. maxReservTime,
  45. maxEarlyExerciseTime,
  46. maxReservOvertime
  47. } = this.data;
  48. let url = `/pages/reservation/reservationEdit?chargStationId=` + chargStationId + `&chargPileName=` + chargPileName +
  49. `&chargPileId=` + chargPileId +
  50. `&chargPileIdId=` + chargPileIdId +
  51. "&chargStationName=" + chargStationName +
  52. "&earliestReservTime=" + earliestReservTime +
  53. "&advanceReservDays=" + advanceReservDays+
  54. "&minReservTime=" + minReservTime +
  55. "&maxReservTime=" + maxReservTime +
  56. "&maxEarlyExerciseTime=" + maxEarlyExerciseTime +
  57. "&maxReservOvertime=" + maxReservOvertime +
  58. "&userId=" + userId+
  59. "&brandName=" + brandName;
  60. wx.navigateTo({
  61. url
  62. });
  63. },
  64. switchDay(e){
  65. let dayIndex = e.currentTarget.dataset.idx;
  66. let timeList = [];
  67. if(dayIndex==1){
  68. timeList = this.data.current;
  69. }else if(dayIndex==2){
  70. timeList = this.data.second;
  71. }else if(dayIndex==3){
  72. timeList = this.data.three;
  73. }else if(dayIndex==4){
  74. timeList = this.data.four;
  75. };
  76. this.setData({
  77. dayIndex,
  78. timeList
  79. })
  80. },
  81. /**
  82. * 生命周期函数--监听页面加载
  83. */
  84. onLoad(options) {
  85. let that = this;
  86. let {
  87. brandName,
  88. chargStationId,
  89. chargPileName,
  90. chargPileId,
  91. chargPileIdId,
  92. userId,
  93. chargStationName
  94. } = options;
  95. this.setData({
  96. brandName,
  97. chargStationId,
  98. chargPileName,
  99. chargPileId,
  100. chargPileIdId,
  101. userId,
  102. chargStationName
  103. }
  104. )
  105. },
  106. /**
  107. * 生命周期函数--监听页面初次渲染完成
  108. */
  109. onReady() {
  110. },
  111. /**
  112. * 生命周期函数--监听页面显示
  113. */
  114. onShow() {
  115. let that = this;
  116. let {
  117. chargStationId,
  118. chargPileName,
  119. chargPileId,
  120. chargPileIdId,
  121. userId,
  122. chargStationName
  123. } = this.data;
  124. wx.request({
  125. url: getApp().globalData.postHeadAgreement +'/restapi/wechat/ReservOrder?userId=' + userId + '&pileId=' + chargPileIdId + '&stationId=' + chargStationId + '&reservPileNo=' +chargPileId ,
  126. data: {
  127. },
  128. method: 'POST',
  129. success(res) {
  130. if(res?.data?.result?.reservationConfig){
  131. that.setData({
  132. reservationBtn: true
  133. })
  134. }
  135. let earliestReservTime = res?.data?.result?.reservationConfig?.earliestReservTime
  136. earliestReservTime = earliestReservTime?earliestReservTime:0;
  137. let advanceReservDays = res?.data?.result?.reservationConfig?.advanceReservDays
  138. advanceReservDays = advanceReservDays?advanceReservDays:0;
  139. let minReservTime = res?.data?.result?.reservationConfig?.minReservTime
  140. minReservTime = minReservTime?minReservTime:0;
  141. let maxReservTime = res?.data?.result?.reservationConfig?.maxReservTime
  142. maxReservTime = maxReservTime?maxReservTime:0;
  143. let maxEarlyExerciseTime = res?.data?.result?.reservationConfig?.maxEarlyExerciseTime
  144. maxEarlyExerciseTime = maxEarlyExerciseTime?maxEarlyExerciseTime:0;
  145. let maxReservOvertime = res?.data?.result?.reservationConfig?.maxReservOvertime
  146. maxReservOvertime = maxReservOvertime?maxReservOvertime:0;
  147. let breakPunishCount = res?.data?.result?.reservationConfig?.breakPunishCount
  148. breakPunishCount = breakPunishCount?breakPunishCount:0;
  149. let nowZero = new Date();
  150. nowZero.setMilliseconds(0)
  151. nowZero.setSeconds(0)
  152. nowZero.setMinutes(0)
  153. nowZero.setHours(0)
  154. let currentStart = new Date(nowZero)
  155. let currentEnd = new Date(nowZero.setDate(nowZero.getDate() + 1 ));
  156. let secondStart = new Date(currentEnd)
  157. let secondEnd = new Date(nowZero.setDate(nowZero.getDate() + 1 ));
  158. let threeStart = new Date(secondEnd)
  159. let threeEnd = new Date(nowZero.setDate(nowZero.getDate() + 1 ));
  160. let fourStart = new Date(threeEnd);
  161. let fourEnd = new Date(nowZero.setDate(nowZero.getDate() + 1 ));
  162. let current = res?.data?.result?.current;
  163. current.forEach(series => {
  164. series.starttime = series.reservChargeStartTime.substr(11,5);
  165. series.endtime = series.reservChargeEndTime.substr(11,5);
  166. let reservChargeStartTime = new Date(series.reservChargeStartTime);
  167. let reservChargeEndTime = new Date(series.reservChargeEndTime);
  168. if(currentStart > reservChargeStartTime){
  169. series.starttime = "(前日) " + series.starttime
  170. }
  171. if(currentEnd < reservChargeEndTime){
  172. series.endtime = series.endtime + " (次日)"
  173. }
  174. });
  175. current.sort((a,b)=>{
  176. return new Date(a.reservChargeStartTime) - new Date(b.reservChargeStartTime)
  177. })
  178. let second = res?.data?.result?.second;
  179. second.forEach(series => {
  180. series.starttime = series.reservChargeStartTime.substr(11,5);
  181. series.endtime = series.reservChargeEndTime.substr(11,5);
  182. let reservChargeStartTime = new Date(series.reservChargeStartTime);
  183. let reservChargeEndTime = new Date(series.reservChargeEndTime);
  184. if(secondStart > reservChargeStartTime){
  185. series.starttime = "(前日) " + series.starttime
  186. }
  187. if(secondEnd < reservChargeEndTime){
  188. series.endtime = series.endtime + " (次日)"
  189. }
  190. });
  191. second.sort((a,b)=>{
  192. return new Date(a.reservChargeStartTime) - new Date(b.reservChargeStartTime)
  193. })
  194. let three = res?.data?.result?.three;
  195. three.forEach(series => {
  196. series.starttime = series.reservChargeStartTime.substr(11,5);
  197. series.endtime = series.reservChargeEndTime.substr(11,5);
  198. let reservChargeStartTime = new Date(series.reservChargeStartTime);
  199. let reservChargeEndTime = new Date(series.reservChargeEndTime);
  200. if(threeStart > reservChargeStartTime){
  201. series.starttime = "(前日) " + series.starttime
  202. }
  203. if(threeEnd < reservChargeEndTime){
  204. series.endtime = series.endtime + " (次日)"
  205. }
  206. });
  207. three.sort((a,b)=>{
  208. return new Date(a.reservChargeStartTime) - new Date(b.reservChargeStartTime)
  209. })
  210. let four = res?.data?.result?.four;
  211. four.forEach(series => {
  212. series.starttime = series.reservChargeStartTime.substr(11,5);
  213. series.endtime = series.reservChargeEndTime.substr(11,5);
  214. let reservChargeStartTime = new Date(series.reservChargeStartTime);
  215. let reservChargeEndTime = new Date(series.reservChargeEndTime);
  216. if(fourStart > reservChargeStartTime){
  217. series.starttime = "(前日) " + series.starttime
  218. }
  219. if(fourEnd < reservChargeEndTime){
  220. series.endtime = series.endtime + " (次日)"
  221. }
  222. });
  223. four.sort((a,b)=>{
  224. return new Date(a.reservChargeStartTime) - new Date(b.reservChargeStartTime)
  225. })
  226. let now = new Date();
  227. let dayFlag1 = (now.getMonth() + 1) + "." + now.getDate()
  228. now = new Date(now.setDate(now.getDate() + 1));
  229. let dayFlag2 = (now.getMonth() + 1) + "." + now.getDate()
  230. now = new Date(now.setDate(now.getDate() + 1));
  231. let dayFlag3 = (now.getMonth() + 1) + "." + now.getDate()
  232. now = new Date(now.setDate(now.getDate() + 1));
  233. let dayFlag4 = (now.getMonth() + 1) + "." + now.getDate()
  234. that.setData({
  235. earliestReservTime,
  236. advanceReservDays,
  237. minReservTime,
  238. maxReservTime,
  239. maxEarlyExerciseTime,
  240. maxReservOvertime,
  241. breakPunishCount,
  242. current,
  243. second,
  244. three,
  245. four,
  246. timeList: current,
  247. dayFlag1,
  248. dayFlag2,
  249. dayFlag3,
  250. dayFlag4,
  251. dayIndex:1
  252. })
  253. }
  254. });
  255. },
  256. /**
  257. * 生命周期函数--监听页面隐藏
  258. */
  259. onHide() {
  260. },
  261. /**
  262. * 生命周期函数--监听页面卸载
  263. */
  264. onUnload() {
  265. },
  266. /**
  267. * 页面相关事件处理函数--监听用户下拉动作
  268. */
  269. onPullDownRefresh() {
  270. },
  271. /**
  272. * 页面上拉触底事件的处理函数
  273. */
  274. onReachBottom() {
  275. },
  276. /**
  277. * 用户点击右上角分享
  278. */
  279. onShareAppMessage() {
  280. }
  281. })