go-appointment.js 12.5 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_session: false,
        is_choose_test: false,
        description: '',
        session_list: {},
        show_submit_btn: false,
        student_num: 0,
        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_test: true,
            // 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');
        // console.log('areaTest',this.data.areaTest);
        return this.data.areaTest.forEach((item, index) => {
            // console.log(item.lab_list[current].id, current_id);
            if (item.lab_list && (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 && item.lab_list[current].description ? item.lab_list[current].description : '',
                    session_list: item.lab_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;
        const current_surplus_num = e.currentTarget.dataset.surplus_num;
        if (current_surplus_num > 0) {
            this.setData({
                currentTime: current,
                current_session_id: current_id,
                is_choose_session: true,
            })
        } else {
            wx.showToast({title: '该场次名额不足!', icon: 'none'})
        }
    },

    //点击单人预约
    singleAppointment() {
        if (!this.data.is_choose_session || !this.data.is_choose_test) {
            wx.showToast({title: '请选择实验和场次!', icon: 'none'})
        } else {
            this.setData({
                show_submit_btn: true,
                student_num: 1,
            })
        }
        // wx.navigateTo({
        //   url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 1
        // })
    },

    //点击双人预约
    doubleAppointment() {
        if (!this.data.is_choose_session || !this.data.is_choose_test) {
            wx.showToast({title: '请选择实验和场次!', icon: 'none'})
        } else {
            this.setData({
                show_submit_btn: true,
                student_num: 2,
            })
        }
        // wx.navigateTo({
        //   url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 2
        // })
    },
    //提交
    submit() {
        if (this.data.is_choose_session && this.data.is_choose_test) {
            let url = '/portal/Experiment/submit_session';
            let header = {
                "XX-token": wx.getStorageSync('token')
            };
            let params = {
                experiment_id: this.data.experiment_id,
                session_id: this.data.current_session_id,
                student_num: this.data.student_num,
            };
            // wx.navigateTo({
            //     url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id
            //         + '&session_id=' + this.data.current_session_id + '&student_num=' + this.data.student_num
            // })
            app.post(url, params, header).then((res) => {
                console.log(res);
                wx.navigateTo({
                    url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id
                        + '&session_id=' + this.data.current_session_id
                        + '&reservation_id=' + res.reservation_id
                        + '&student_num=' + this.data.student_num
                })
            });
        } 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,
                student_num: res.student_num,
                // 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;
        console.log('load',options);
        self.setData({experiment_id: +options.experiment_id});

        // 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 () {

    },
    getData() {
        const self = this;
        if (wx.getStorageSync('city')) {
            const city = wx.getStorageSync('city');
            self.getChooseSession(city);
            self.setData({currentCity: city})
        } else {
            const city = '北京市';
            self.getChooseSession(city);
        }
        self.getCity();
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        const self = this;
        console.log('show');
        self.getData();
        self.setData({show_submit_btn: false})
    },

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

    },

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

    },

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

    },

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

    },

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

    }
})