reservationEdit.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. let Util = require("../../utils/util");
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. brandName:'',
  8. chargStationId:'',
  9. chargPileName:'加载中',
  10. chargPileId:'',
  11. chargPileIdId:'',
  12. userId:'',
  13. plateNumber:'',
  14. chargStationName:'',
  15. startparams:{
  16. placeholder: '请选择时间',
  17. startDateTime: '2020-01-01 00:00',
  18. endDateTime: '2040-01-01 00:00',
  19. // pText: Util.formatTimePicker(new Date()) //'2022-04-30 00:00'
  20. pText: '' //'2022-04-30 00:00'
  21. },
  22. finishparams:{
  23. placeholder: '请选择时间',
  24. startDateTime: '2020-01-01 00:00',
  25. endDateTime: '2040-01-01 00:00',
  26. // pText: Util.formatTimePicker(new Date()) //'2022-04-30 00:00'
  27. pText: ''
  28. },
  29. },
  30. bindStartparamsChange(e){
  31. let startparams = this.data.startparams;
  32. let endparams = this.data.finishparams;
  33. startparams.pText = e.detail
  34. this.setData({
  35. startparams:startparams
  36. })
  37. let currTime = new Date(e.detail);
  38. console.info(currTime)
  39. let curTime3 = new Date(currTime);
  40. let estime = new Date(curTime3.setMinutes(curTime3.getMinutes() + parseInt(this.data.minReservTime)));
  41. let curTime4 = new Date(currTime);
  42. let eetime = new Date(curTime4.setMinutes(curTime4.getMinutes() + parseInt(this.data.maxReservTime)));
  43. if(endparams?.pText){
  44. let currEndTime = new Date(endparams.pText);
  45. if(currEndTime<=currTime){
  46. this.selectComponent("#end").changeDateTime('')
  47. // this.selectComponent("#end").initData()
  48. }
  49. }
  50. this.selectComponent("#end").data.startDateTime = Util.formatTimePicker(estime);
  51. this.selectComponent("#end").data.endDateTime = Util.formatTimePicker(eetime),
  52. this.selectComponent("#end").initData()
  53. },
  54. bindFinishparamsChange(e){
  55. let startparams = this.data.startparams;
  56. let finishparams = this.data.finishparams;
  57. finishparams.pText = e.detail
  58. this.setData({
  59. finishparams:finishparams
  60. })
  61. console.info("finishparams " + finishparams.pText)
  62. },
  63. /**
  64. * 生命周期函数--监听页面加载
  65. */
  66. onLoad(options) {
  67. this.initCar();
  68. let {
  69. brandName,
  70. chargStationId,
  71. chargPileName,
  72. chargPileId,
  73. chargPileIdId,
  74. userId,
  75. chargStationName,
  76. earliestReservTime,
  77. advanceReservDays,
  78. minReservTime,
  79. maxReservTime,
  80. maxEarlyExerciseTime,
  81. maxReservOvertime
  82. } = options;
  83. console.info(options);
  84. if(options.brandName == 'null' || options.brandName == ''){
  85. brandName = null
  86. }
  87. let curTime = new Date();
  88. let sstime = new Date(curTime.setMinutes(curTime.getMinutes() + parseInt(earliestReservTime)));
  89. let curTime2 = new Date();
  90. let setime = new Date(curTime2.setMinutes(curTime2.getMinutes() + (parseInt(advanceReservDays)) * 60 * 24));
  91. setime.setHours(23, 59, 0)
  92. let curTime3 = new Date(sstime);
  93. let estime = new Date(curTime3.setMinutes(curTime3.getMinutes() + parseInt(minReservTime)));
  94. let curTime4 = new Date(setime);
  95. let eetime = new Date(curTime4.setMinutes(curTime4.getMinutes() + parseInt(maxReservTime)));
  96. this.setData({
  97. brandName,
  98. chargStationId,
  99. chargPileName,
  100. chargPileId,
  101. chargPileIdId,
  102. userId,
  103. chargStationName,
  104. earliestReservTime,
  105. advanceReservDays,
  106. minReservTime,
  107. maxReservTime,
  108. maxEarlyExerciseTime,
  109. maxReservOvertime,
  110. "startparams.startDateTime":Util.formatTimePicker(sstime),
  111. // "startparams.pText":Util.formatTimePicker(sstime),
  112. "startparams.endDateTime":Util.formatTimePicker(setime),
  113. "finishparams.startDateTime":Util.formatTimePicker(estime),
  114. // "finishparams.pText":Util.formatTimePicker(estime),
  115. "finishparams.endDateTime":Util.formatTimePicker(eetime),
  116. }
  117. );
  118. },
  119. SubmitBtn(){
  120. // 预约充电站ID * 预约充电桩ID * 预约用户ID * 预约充电开始时间 * 预约充电结束时间
  121. let reservChargeStartTime = this.data.startparams.pText
  122. let reservChargeEndTime = this.data.finishparams.pText
  123. let reservPileId = this.data.chargPileIdId;
  124. let reservStationId = this.data.chargStationId;
  125. let sysUserId = this.data.userId;
  126. let plateNumber = this.data.plateNumber;
  127. if(!plateNumber){
  128. wx.showModal({
  129. title: '提示',
  130. content: '请先选择车牌',
  131. showCancel:false,
  132. confirmColor:'#00AADD',
  133. });
  134. return;
  135. }
  136. if(!reservChargeStartTime){
  137. wx.showModal({
  138. title: '提示',
  139. content: '请先选择预约开始充电时间',
  140. showCancel:false,
  141. confirmColor:'#00AADD',
  142. });
  143. return;
  144. }
  145. reservChargeStartTime = reservChargeStartTime + ':00'
  146. if(!reservChargeEndTime){
  147. wx.showModal({
  148. title: '提示',
  149. content: '请先选择预约结束充电时间',
  150. showCancel:false,
  151. confirmColor:'#00AADD',
  152. });
  153. return;
  154. }
  155. reservChargeEndTime = reservChargeEndTime + ':00'
  156. wx.requestSubscribeMessage({
  157. tmplIds: ['DA80dlHRpvYMfZVICp-SVFEqo6v7_7S9wPM4nndHyjE'],
  158. success (res) {
  159. wx.request({
  160. // url: getApp().globalData.postHeadAgreement +'/restapi/wechat/reserv2?reservChargeStartTime=' + reservChargeStartTime +
  161. // '&reservChargeEndTime=' + reservChargeEndTime +
  162. // '&reservPile.id=' + reservPileId +
  163. // '&reservStation.id=' + reservStationId +
  164. // '&sysUser.id=' + sysUserId,
  165. url: getApp().globalData.postHeadAgreement +'/restapi/wechat/reserv',
  166. data: {
  167. reservPlateNum:plateNumber,
  168. reservChargeStartTime:reservChargeStartTime,
  169. reservChargeEndTime:reservChargeEndTime,
  170. reservPile:{
  171. id:reservPileId
  172. },
  173. reservStation:{
  174. id:reservStationId
  175. },
  176. sysUser:{
  177. userId:sysUserId
  178. },
  179. },
  180. method: 'POST',
  181. success(res) {
  182. console.info(res)
  183. if(res?.data?.msg=="操作成功"){
  184. wx.showModal({
  185. title: '提示',
  186. content: '预约成功',
  187. showCancel:false,
  188. confirmColor:'#00AADD',
  189. complete: (res2) => {
  190. if (res2.cancel) {
  191. }
  192. if (res2.confirm) {
  193. wx.navigateBack()
  194. }
  195. }
  196. });
  197. }else{
  198. wx.showModal({
  199. title: '提示',
  200. content: res?.data?.msg,
  201. showCancel:false,
  202. confirmColor:'#00AADD',
  203. });
  204. }
  205. }
  206. });
  207. }
  208. })
  209. },
  210. chooseCar(){
  211. let url = '/pages/ucenter/car/chooseCar'
  212. wx.setStorageSync('chooseCar_plateNumber',{plateNumber:this.data.plateNumber})
  213. wx.navigateTo({
  214. url
  215. });
  216. },
  217. initCar(){
  218. let that = this
  219. let userInfo = wx.getStorageSync('userInfo');
  220. let isLogin = wx.getStorageSync('isLogin');
  221. // 读取默认车牌
  222. wx.request({
  223. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/carList?loginName=' + userInfo.loginName,
  224. // data: {
  225. // loginName: userInfo.loginName
  226. // },
  227. method: 'POST',
  228. success: function (res) {
  229. let userCarList = res.data;
  230. userCarList = userCarList.filter(it=>it.defaultType==1);
  231. console.info(userCarList)
  232. if(userCarList.length==0 ){
  233. // wx.showModal({
  234. // title: '提示',
  235. // content: '当前充电站可减免停车费,是否绑定车牌信息?',
  236. // confirmText: '绑定车牌',
  237. // cancelText: '直接启动',
  238. // showCancel:true,
  239. // confirmColor:'#00AADD',
  240. // cancelColor:'#00AADD',
  241. // success: function (ress1) {
  242. // if(ress1.confirm){
  243. // let url = '/pages/ucenter/car/chooseCar'
  244. // wx.navigateTo({
  245. // url
  246. // });
  247. // }else{
  248. // that.beginChargeInner(that,'')
  249. // }
  250. // }
  251. // });
  252. }else{
  253. let userCar = userCarList[0]
  254. that.setData({
  255. plateNumber: userCar.plateNumber
  256. })
  257. // wx.showModal({
  258. // title: '提示',
  259. // content: '确定使用' + userCar.plateNumber + '车牌信息减免停车费?',
  260. // confirmText: '确定',
  261. // cancelText: '其他车牌',
  262. // showCancel:true,
  263. // confirmColor:'#00AADD',
  264. // cancelColor:'#00AADD',
  265. // success: function (ress1) {
  266. // if(ress1.confirm){
  267. // that.beginChargeInner(that,userCar.plateNumber)
  268. // }else{
  269. // let url = '/pages/ucenter/car/chooseCar'
  270. // wx.navigateTo({
  271. // url
  272. // });
  273. // }
  274. // return;
  275. // },
  276. // fail: function(res1){
  277. // console.info(res1)
  278. // }
  279. // });
  280. }
  281. },
  282. fail(e) {
  283. console.log("查询车辆失败");
  284. log.info('[查询车辆]','[fail]', e);
  285. }
  286. });
  287. },
  288. /**
  289. * 生命周期函数--监听页面初次渲染完成
  290. */
  291. onReady() {
  292. },
  293. /**
  294. * 生命周期函数--监听页面显示
  295. */
  296. onShow() {
  297. let car = wx.getStorageSync('chooseCar_plateNumber')
  298. console.info(car)
  299. let plateNumber = ''
  300. if(car){
  301. plateNumber = car.plateNumber;
  302. wx.removeStorageSync('chooseCar_plateNumber')
  303. }
  304. this.setData({
  305. plateNumber
  306. })
  307. },
  308. /**
  309. * 生命周期函数--监听页面隐藏
  310. */
  311. onHide() {
  312. },
  313. /**
  314. * 生命周期函数--监听页面卸载
  315. */
  316. onUnload() {
  317. },
  318. /**
  319. * 页面相关事件处理函数--监听用户下拉动作
  320. */
  321. onPullDownRefresh() {
  322. },
  323. /**
  324. * 页面上拉触底事件的处理函数
  325. */
  326. onReachBottom() {
  327. },
  328. /**
  329. * 用户点击右上角分享
  330. */
  331. onShareAppMessage() {
  332. }
  333. })