answer-question.js 5.9 KB
// pages/index/answer-question/answer-question.js
const app = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        current_que: 0,
        current_answer: 0,
        choose: false,
        // questionList:[{title:'周末去哪玩',content:[{answer:'都行你看着吧'},{answer:'去市里'}],}]
    },
    clickQuestion(e) {
        // console.log('e', e);
        const current_que = +e.currentTarget.dataset.pindex;
        const que_list = this.data.questionList;
        // const choose = +e.currentTarget.dataset.choose;
        que_list[current_que].choose = true;
        this.setData({current_que: current_que, que_list: que_list});
        // console.log('父级点击事件que_list', que_list, current_que);
        // return false
        // this.radioChange(e)
    },
    //选择答案
    chooseAnswer(e) {
        const current = +e.currentTarget.dataset.sindex;
        const pindex = +e.currentTarget.dataset.pindex;
        const score = +e.currentTarget.dataset.score;
        // console.log('label事件分数', score);
        this.setData({current_ans: current,});

        // [`questionList[${this.data.current_que}].content[${current}].checked`]:!this.data.choose
    },
    radioChange(e) {
        const current_index = e.detail.value;
        const pindex = +e.currentTarget.dataset.pindex;//父级index
        let que_arr = [];
        this.data.questionList.forEach((item) => {
            que_arr.push({...item, choose: false});
        });
        let answer = que_arr[pindex].content;
        answer[current_index]['checked'] = true;
        answer.forEach((item) => {
            if (item.answer !== answer[current_index].answer) {
                item.checked = false;
            }
        });
        // if (this.data.current_answer === +e.detail.value) {
        //     answer[current_index]['checked'] = true;
        //     answer.forEach((item) => {
        //         if(item.answer !== answer[current_index].answer) {
        //             item.checked = false;
        //         }
        //     })
        // }else {
        //     console.log('下一题answer', answer,current_index);
        //     answer[current_index]['checked'] = true;
        //     answer.forEach((item) => {
        //         if(item.answer !== answer[current_index].answer) {
        //             item.checked = false;
        //         }
        //     })
        // }
        this.setData({current_answer: +e.detail.value, [`questionList[${pindex}].content`]: answer});
        // console.log('questionList', this.data.questionList);
    },
    //题目列表
    answerList() {
        const self = this;
        let url = '/portal/Send/index';
        let params = {
            token: wx.getStorageSync('token'),
        };
        let header = {
            "token": wx.getStorageSync('token')
        };
        app.post(url, params, {}).then((res) => {
            // console.log('题目', res);
            if (+res.code === 1) {
                res.data.list.forEach(((item) => {
                    item.choose = false;
                    item.content.forEach((item) => {
                        item.checked = false
                    })
                }));
                self.setData({
                    questionList: res.data.list,
                });
                // console.log(self.data.questionList);
            }
        })
    },
    //提交
    submit(e) {
        console.log('formid', e.detail.formId);
        this.data.questionList.forEach((item) => {
            if (item.choose === false) {
                wx.showToast({title: '请答完所有的题', icon: 'none'});
            } else {
                this.setData({is_all_answer: true})
            }
        });
        if (this.data.is_all_answer) {
            let total_score = 0;
            this.data.questionList.forEach((item) => {
                item.content.forEach((i, index) => {
                    if (i.checked) {
                        const score = +i.score;
                        total_score += score;
                    }
                })
            });
            // console.log('total_score', total_score);
            this.setData({score: total_score});
            wx.setStorageSync('score', total_score);
            let url = '/portal/Send/answer';
            let params = {
                token: wx.getStorageSync('token'),
                score: this.data.score,
                formId:e.detail.formId
            };
            app.post(url, params, {}).then((res) => {
                // console.log('提交答案', res);
                if (+res.code === 1) {
                    wx.showToast({title:'提交成功',icon:'success',
                        success:function () {
                            setTimeout(function () {
                                wx.navigateBack({delta:1})
                            },500)
                        }
                    });
                    // self.setData({
                    //     questionList: res.data.list,
                    // });
                    // console.log(self.data.questionList);
                }
            });
        }

    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

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

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.answerList();
    },

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

    },

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

    },

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

    },

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

    },

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

    }
})