reservation.js 8.7 KB

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