请选择 进入手机版 | 继续访问电脑版

数字之家

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3784|回复: 0

小程序获取一年内的时间预约功能

[复制链接]

514

主题

519

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
admin实名认证 发表于 2019-12-11 11:29:26 | 显示全部楼层 |阅读模式
  1. var dateUtils = require('date.js')
  2. var CN_Date = require('getCNDate.js');
  3. var app = getApp()
  4. var t = new Date();

  5. Page({
  6.   data: {
  7.     dataArray: "", // 保存当前界面的五天日期
  8.     checkday: "",
  9.     checktime: "",
  10.     telphone: "",
  11.     item_id: "",
  12.     hiddenLoading: true,
  13.     currentIndex: 0,
  14.     currentTime: 0,
  15.     catalogSelect: 0
  16.   },

  17.   sendRequestDate: function (uploadDate) {
  18.     var that = this
  19.     var item_id = that.data.item_id
  20.     console.log(uploadDate)
  21.     this.setData({
  22.       hiddenLoading: false
  23.     })
  24.     wx.request({
  25.       url: '',//后台地址
  26.       data: {
  27.         date: uploadDate,
  28.         product_id: item_id
  29.       },
  30.       method: 'POST',
  31.       header: {
  32.         'content-type': 'application/json'
  33.       },
  34.       success: function (res) {
  35.         var data = res.data;
  36.         console.log(res.data)
  37.         var dataArray = [];
  38.         var i = 0;
  39.         for (var date in data) { // 遍历时期的key
  40.           var timeList = data[date];
  41.           var j = 0;
  42.           var timeArray = [];
  43.           for (var time in timeList) { // 遍历时间的key
  44.             timeArray[j] = {
  45.               time: time,
  46.               isSelect: timeList[time],
  47.               select: j + 1
  48.             }
  49.             j++;
  50.           }

  51.           var timeStamp = new Date(date);
  52.           dataArray[i] = {
  53.             date: date,
  54.             dateName: dateUtils.getDateFormatFromMMdd(timeStamp),
  55.             weekName: dateUtils.getWeekName(timeStamp),
  56.             timeArray: timeArray
  57.           }
  58.           i++;
  59.         }

  60.         that.setData({
  61.           hiddenLoading: true,
  62.           dataArray: dataArray
  63.         });
  64.       },
  65.     });

  66.   },
  67.   // 调用错误提示弹窗的方法
  68.   showToastErr(msg) {
  69.     const _this = this;
  70.     _this.$wuxToast.show({
  71.       type: 'forbidden',
  72.       color: '#fff',
  73.       timer: 1000,
  74.       text: msg,
  75.       success: () => console.log('禁止操作')
  76.     })
  77.   },
  78.   onLoad: function (options) {
  79.     var that = this;
  80.     this.$wuxToast = app.wux(this).$wuxToast
  81.     // 接收从byorder-detail界面传过来的值
  82.     that.setData({
  83.       item_id: options.id,
  84.       telphone: options.phone
  85.     })
  86.     // 获取当日的时间戳
  87.     var todayTimeStamp = Date.parse(new Date());
  88.     // 初始化日期数据
  89.     var uploadDate = dateUtils.getDateFormatFromyyyyMMdd(new Date().getTime())
  90.     that.sendRequestDate(uploadDate)
  91.   },
  92.   /**
  93.    * 用户点击了向右的箭头
  94.    */
  95.   dj1: function () {
  96.     var that = this
  97.     var dateArrayOld = that.data.dataArray;
  98.     var dateName = dateArrayOld[dateArrayOld.length - 1].date;
  99.     var uploadDate = dateUtils.getNextDayForyyyyMMdd(new Date(dateName).getTime())
  100.     that.setData({
  101.       catalogSelect: 0,
  102.       checkday: "",
  103.       checktime: ""
  104.     })
  105.     that.sendRequestDate(uploadDate)
  106.   },
  107.   /**
  108.      * 用户点击了向左的箭头
  109.      */
  110.   dj2: function () {
  111.     var that = this
  112.     var dateArrayOld = that.data.dataArray;
  113.     if (dateArrayOld[0].weekName == "今天") {
  114.       return;
  115.     }
  116.     var dateName = dateArrayOld[0].date;
  117.     var uploadDate = dateUtils.getPreFiveForyyyyMMdd(new Date(dateName).getTime())
  118.     that.setData({
  119.       catalogSelect: 0,
  120.       checkday: "",
  121.       checktime: ""
  122.     })
  123.     that.sendRequestDate(uploadDate)
  124.   },
  125.   /**
  126.    * 用户选择了日期
  127.    */
  128.   select: function (event) {
  129.     var that = this
  130.     var index = event.currentTarget.dataset.index
  131.     //为上半部分的点击事件
  132.     that.setData({
  133.       currentIndex: index,
  134.       catalogSelect: 0,
  135.       checkday: "",
  136.       checktime: ""
  137.     })

  138.   },
  139.   /**
  140.    * 用户选择了时间
  141.    */
  142.   selectTime: function (data) {
  143.     var that = this
  144.     var dataItem = that.data.dataArray[that.data.currentIndex];
  145.     var index = data.currentTarget.dataset.tindex
  146.     if(dataItem.timeArray[index].isSelect=='false'){
  147.       that.showToastErr('当前时间不可选');
  148.       return;
  149.     }

  150.     var dateTime = dataItem.dateName  
  151.     var timeArr = dataItem.timeArray[index].time
  152.     console.log(data.currentTarget.dataset.select)
  153.     this.setData({
  154.       currentTime: index,
  155.       checkday: dateTime,
  156.       checktime: timeArr,
  157.       catalogSelect: data.currentTarget.dataset.select
  158.     })
  159.   },
  160.   confirm_byorder: function (e) {
  161.     var user = wx.getStorageSync('user')
  162.     this.setData({
  163.       user: user
  164.     })
  165.     var that = this
  166.     var formId = e.detail.formId
  167.     var openId = (wx.getStorageSync('openId'))
  168.     var telphone = that.data.telphone
  169.     var item_id = that.data.item_id
  170.     var checkday = that.data.dataArray[that.data.currentIndex].date
  171.     var checktime = that.data.checktime
  172.     var uploadDate = that.data.dataArray[0].date;
  173.     if (checkday == '' || checktime == '') {
  174.       this.setData({
  175.         hiddenLoading: !this.data.hiddenLoading
  176.       })
  177.       setTimeout(function () {
  178.         that.setData({
  179.           hiddenLoading: true
  180.         });
  181.       })
  182.       that.showToastErr('请选择服务时间')
  183.     } else {
  184.       this.setData({
  185.         hiddenLoading: !this.data.hiddenLoading
  186.       })
  187.       wx.request({
  188.         url: 'https://ssl.ycml-bj.com/api/wx/activity/reserve',
  189.         data: {
  190.           formId: formId,
  191.           openId: openId,
  192.           user_phone: user,
  193.           phone: telphone,
  194.           product_id: item_id,
  195.           date: checkday,
  196.           time: checktime
  197.         },
  198.         method: 'POST',
  199.         header: {
  200.           'content-type': 'application/json'
  201.         },
  202.         success: function (res) {
  203.           setTimeout(function () {
  204.             that.setData({
  205.               hiddenLoading: true
  206.             });
  207.           })
  208.           if (res.data.code == 430007){
  209.             that.sendRequestDate(uploadDate)
  210.             that.showToastErr('预约人数已满')
  211.           } else {
  212.             wx.showToast({
  213.               title: '预约成功',
  214.               icon: 'success',
  215.               duration: 1500,
  216.               mask: true,  //是否显示透明蒙层,防止触摸穿透,默认:false  
  217.               success: function () {
  218.                 // setTimeout(function () {
  219.                 //   wx.reLaunch({
  220.                 //     url: '/pages/index/index'
  221.                 //   })
  222.                 // }, 2000)
  223.               }
  224.             })
  225.           }
  226.          
  227.         },
  228.       });
  229.     }


  230.   }

  231. })
复制代码


maomivip@mail.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|赢创志诚服务网 ( 鲁ICP备19000917号 )

GMT+8, 2020-9-28 02:38 , Processed in 0.055518 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表