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

    /**
     * 页面的初始数据
     */
    data: {
        currentTest:0,
        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: 1,
        areaTest: [],
        test: {},
    },

    //选择城市
    bindPickerChange: function (e) {
        // console.log('picker发送选择改变,携带值为', e.detail.value)
        this.setData({
            city_index: e.detail.value,
            is_change: true,
            currentTest:0,
        });
        this.getChooseSession(this.data.cityList[e.detail.value]);
        wx.setStorageSync('choose-city',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,
        });
        // return this.data.areaTest.forEach((item, index) => {
        //     console.log('index', index);
        //     if (item.lab_list.length > 0 && item.lab_list[current] !== undefined) {
        //         console.log(current, item.lab_list, item.lab_list[current].id, current_id);
        //         if (item.lab_list.length > 0 && (item.lab_list[current].id === current_id)) {
        //             this.setData({
        //                 description: item.lab_list.length > 0 && item.lab_list[current].description ? item.lab_list[current].description : '',
        //                 session_list: item.lab_list.length > 0 && item.lab_list[current].session_list.length > 0 ? item.lab_list[current].session_list : '',
        //             });
        //             // return
        //         }
        //     } else if (item.lab_list.length > 0 && item.lab_list[current] === undefined) {
        //         console.log('item.lab_list[current]', item.lab_list[current]);
        //         if (item.lab_list.length > 0 && (item.lab_list[index].id === current_id)) {
        //             this.setData({
        //                 description: item.lab_list.length > 0 && item.lab_list[index].description ? item.lab_list[index].description : '',
        //                 session_list: item.lab_list.length > 0 && item.lab_list[index].session_list.length > 0 ? item.lab_list[index].session_list : '',
        //             });
        //             // return
        //         }
        //     }
        // });

        return this.data.areaTest.forEach((item, index) => {
            if( item.lab_list.length>0) {
                item.lab_list.forEach((i, idx) => {
                    if (i.id === current_id) {
                        this.setData({
                            description: item.lab_list.length > 0 && item.lab_list[idx].description ? item.lab_list[idx].description : '',
                            session_list: item.lab_list.length > 0 && item.lab_list[idx].session_list.length > 0 ? item.lab_list[idx].session_list : '',
                        });
                    }
                })
            }

        })
    },

    //选择场次
    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) {
            wx.showToast({title: '请选择实验场次!', icon: 'none'})
        } else {
            this.setData({
                show_submit_btn: true,
                student_num: 1,
            })
        }
    },

    //点击双人预约
    doubleAppointment() {
        if (!this.data.is_choose_session) {
            wx.showToast({title: '请选择实验场次!', icon: 'none'})
        } else {
            this.setData({
                show_submit_btn: true,
                student_num: 2,
            })
        }
    },
    //提交
    submit() {
        if (this.data.is_choose_session) {
            console.log(this.data.experiment_id, this.data.current_session_id, this.data.student_num);
            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,
            };
            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) => {
                if(item.city == wx.getStorageSync('city')){
                    // console.log('item.city', item.city, wx.getStorageSync('city'));
                    this.setData({city_index:index})
                }
                city_list.push(item.city)
            });
            // console.log(city_list,res);
            this.setData({
                cityList: city_list,

            })
        })
    },
    //获取预约城市、区、实验室、场次
    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);
            // console.log(res.list,res.list[0],res.list[0].lab_list,res.list[0].lab_list[0],);
            this.setData({
                areaTest: res.list,
                student_num: res.student_num == 0?1:res.student_num,
                current_test_id: res.list.length>0 && res.list[0].lab_list && res.list[0].lab_list.length>0 ? res.list[0].lab_list[0].id:'',
                description: res.list.length>0 && res.list[0].lab_list && res.list[0].lab_list.length>0 ? res.list[0].lab_list[0].description : '',//默认显示第一个实验室的描述
                session_list: res.list.length>0 && res.list[0].lab_list.length>0 ? 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-experiment_id',options);
        self.setData({experiment_id: +options.experiment_id});
    },

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

    },
    getData() {
        const self = this;
        if ((wx.getStorageSync('city') === wx.getStorageSync('choose-city')) && wx.getStorageSync('choose-city') !=='') {
            // console.log('相同');
            const city = wx.getStorageSync('city');
            // console.log('city',city);
            self.getChooseSession(city);
            // console.log(self.data.currentCity);
            self.setData({currentCity: city})
            // console.log(self.data.currentCity);

        }else if((wx.getStorageSync('city') !== wx.getStorageSync('choose-city')) && wx.getStorageSync('choose-city') !=='') {
            // console.log('不同');
            const city = wx.getStorageSync('choose-city');
            self.getChooseSession(city);
            self.setData({currentCity: city})
        } else if(wx.getStorageSync('city') === ''){
            const city = '北京市';
            self.getChooseSession(city);
            self.setData({currentCity: city})
        }else if(wx.getStorageSync('city') !== '') {//授权过城市
            const city = wx.getStorageSync('city');
            self.getChooseSession(city);
            self.setData({currentCity: 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 () {

    }
})