go-appointment.js 9.0 KB
// pages/index/go-appointment/go-appointment.js
const util = require('../../../utils/util.js');
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    cityList: [],
    // city_index: 0,
    currentCity: '北京市',
    current_test_id: '',
    is_change: false,
    is_choose: false,
    description: '',
    session_list: {},
    show_submit_btn: false,
    areaTest: [{
        area: '朝阳区',
        list: [{
          id: 1,
          name: '798实验室'
        }, {
          id: 2,
          name: '木鱼湖实验室'
        }, {
          id: 3,
          name: '南锣鼓巷实验室'
        }]
      },
      {
        area: '东城区',
        list: [{
          id: 4,
          name: '798实验室'
        }, {
          id: 5,
          name: '木鱼湖实验室'
        }, {
          id: 6,
          name: '南锣鼓巷实验室'
        }]
      },
      {
        area: '西城区',
        list: [{
          id: 7,
          name: '798实验室'
        }, {
          id: 11,
          name: '木鱼湖实验室'
        }, {
          id: 8,
          name: '南锣鼓巷实验室'
        }]
      },
      {
        area: '昌平区',
        list: [{
          id: 9,
          name: '798实验室'
        }, {
          id: 12,
          name: '木鱼湖实验室'
        }, {
          id: 10,
          name: '南锣鼓巷实验室'
        }]
      },
    ],
    test: {
      title: '798实验室,本实验室分为三个阶段,第一阶段由家长和孩子共同完成,第二阶段由孩子独立完成。家长在旁边指导,第三阶段巴拉巴拉',
      list: [{
          week: '周六',
          date: '10月20日',
          time: '10:00 — 11:30',
          rest: 6
        },
        {
          week: '周日',
          date: '10月21日',
          time: '15:00 — 16:30',
          rest: 0
        },
        {
          week: '周日',
          date: '10月21日',
          time: '15:00 — 16:30',
          rest: 6
        },
        {
          week: '周日',
          date: '10月21日',
          time: '15:00 — 16:30',
          rest: 0
        },
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6},
        // {week:'周六',date: '10月20日',time:'10:00 — 11:30',rest: 6}
      ]
    },
  },

  //选择城市
  bindPickerChange: function(e) {
    console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
      city_index: e.detail.value,
      is_change: true,
    });
    this.getChooseSession(this.data.cityList[e.detail.value])
  },
  //选择实验室
  chooseTest(e) {
      // console.log(e);
      // console.log('实验',e.currentTarget.dataset.index);
    const current = e.currentTarget.dataset.index;
    const current_id = e.currentTarget.dataset.id;
      // console.log(this.data.areaTest[0].lab_list[0].session_list[0].id);
      this.setData({
      currentTest: current,
      current_test_id: current_id,
      is_choose: false,//恢复默认值
      // current_session_id: this.data.areaTest[current].lab_list ? this.data.areaTest[current].lab_list[0].session_list[0].id : '',
      // description: this.data.areaTest[current].lab_list[current].description
    });
      // console.log(util.formatTimeTwo(1543375800,'h:m'),'1543375800');
      return this.data.areaTest.forEach((item,index) => {
        if(item.lab_list[current].id === current_id) {
            // console.log(current_id, item.lab_list[current].id,item.lab_list[current].description);
            this.setData({
                description: item.lab_list[current].description ? item.lab_list[current].description : '',
                session_list: item.lab_list[current].session_list ? item.lab_list[current].session_list: '',
            });
            // return
        }
      });
      // console.log(a);
      // console.log(this.data.areaTest[current].lab_list[current].description);
  },

  //选择场次
  chooseTime(e) {
    console.log(e.currentTarget.dataset.index);
    const current = e.currentTarget.dataset.index;
    const current_id = e.currentTarget.dataset.id;
    this.setData({
      currentTime: current,
      current_session_id:  current_id,
      is_choose: true,
    })
  },

  //点击单人预约
  singleAppointment() {
    // this.setData({
    //   show_submit_btn: true
    // })
    wx.navigateTo({
      url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 1
    })
  },

  //点击双人预约
  doubleAppointment() {
    // this.setData({
    //   show_submit_btn: true
    // })
    wx.navigateTo({
      url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 2
    })
  },

  submit() {
    if(this.data.is_choose) {
        wx.navigateTo({
            url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.current_test_id
                + '&session_id=' + this.data.current_session_id
        })
    }else {
      wx.showToast({title: '请选择场次!',icon: 'none'})
    }
  },
  //获取城市列表
  getCity() {
      let url = '/portal/Experiment/cityList';
      let header = {
          "XX-token": wx.getStorageSync('token')
      };
      app.post(url, {},header).then((res) => {
          console.log(res);
          var city_list = [];
          res.forEach((item,index) => {
              city_list.push(item.city)
          });
          console.log(city_list,res);
          this.setData({
              cityList: city_list,
              // description: res.list[0].lab_list[0].description,//默认显示第一个实验室的描述
              // session_list: res.list[0].lab_list[0].session_list//默认显示第一个实验室的实验时间

          })
          // console.log(this.data.this_week_test_info);
      })
  },
  //获取预约城市、区、实验室、场次
  getChooseSession(city) {
      let url = '/portal/Experiment/choose_session';
      let params = {
          experiment_id: this.data.experiment_id,
          city: city,
      };
      let header = {
          "XX-token": wx.getStorageSync('token')
      };
      app.post(url, params,header).then((res) => {
          console.log(res,res.list);
          res.list.forEach((item,index) => {
            if(item.lab_list) {
                item.lab_list.forEach((i,k) => {
                    if(i.session_list) {
                        i.session_list.forEach((j,b) => {
                            j.start_time = util.formatTimeTwo(j.start_time, 'h:m');
                            j.end_time = util.formatTimeTwo(j.end_time, 'h:m');
                        })
                    }
                })
            }
          });
          console.log(res,res.list);
          // console.log(res.list[0].lab_list[0].id);
          this.setData({
              areaTest: res.list,
              // current_test_id: res.list[0].lab_list ? res.list[0].lab_list[0].id : '',//默认实验室id
              // current_session_id: res.list[0].lab_list ? res.list[0].lab_list[0].session_list[0].id : '',//默认场次id
              description: res.list[0].lab_list ? res.list[0].lab_list[0].description : '',//默认显示第一个实验室的描述
              session_list: res.list[0].lab_list ? res.list[0].lab_list[0].session_list :''//默认显示第一个实验室的实验时间

          })
          // console.log(this.data.this_week_test_info);
      })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    const self = this;
    self.setData({experiment_id: +options.experiment_id});
    if(wx.getStorageSync('city')) {
        const city = wx.getStorageSync('city');
        self.getChooseSession(city);
    }else {
      const city = '北京市';
      self.getChooseSession(city);
    }
    self.getCity();
    this.data.areaTest.forEach((v, i) => {
      Object.keys(v).forEach(v => {
        console.log(v) //取到了key
        console.log(this.data.areaTest[i][v]) //取到了值
      })
    })
    // console.log(this.data.areaTest);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})