uni开发的PC端的答题系统

110 阅读1分钟

export default {
        data() {
            return {
                inx: 0,
                slect: [],
                list: [],
                obj: {},
                max: 10,
                changeNum : [ '一', '二', '三', '四', '五', '六', '七', '八', '九', '十'],
            }
            
        },
        methods: {
            goNext(item, type) {
                if (item.type == 1 || item.type == 3) {
                    item.user_answer = type;
                } else if (item.type == 2) {
                    if (item.user_answer.length > 0) {
                        var inx = item.user_answer.indexOf(type);
                        if (inx > -1) {
                            item.user_answer.splice(inx, 1)
                        } else {
                            item.user_answer.push(type);
                        }
                        item.user_answer=item.user_answer.sort(function(a, b) {
                            return a.charCodeAt(0).toString(16) - b.charCodeAt(0).toString(16);
                        })
                    } else {
                        item.user_answer = [];
                        item.user_answer.push(type);
                    }
                }
                uni.setStorageSync('list', this.list)
            },
            next() {
                if (this.max == (this.inx*1 + 1)) {
                    if(!this.list[this.max-1].user_answer){
                        uni.showModal({
                            title: '提示',
                            content: '您还未作答',
                            showCancel: false
                        })
                        return
                    }
                    var score = 0,
                        err = 0;
                    this.list.forEach(ele => {
                        if(ele.type==2){
                            if (ele.correct.toString() == ele.user_answer.toString()) {
                                score += ele.score * 1;
                                ele['error'] = false;
                            } else {
                                ele['error'] = true;
                                err = 1
                            }
                        }else{
                            if (ele.correct == ele.user_answer) {
                                score += ele.score * 1;
                                ele['error'] = false;
                            } else {
                                ele['error'] = true;
                                err = 1
                            }
                        }
                        
                    })
                    uni.setStorageSync('list', this.list);
                    this.inx=0;
                    uni.redirectTo({
                        url: '/pages/result/result?score='+score
                    })
                } else if (this.list[this.inx].user_answer) {
                    this.inx++;
                    if(this.list[this.inx].type==2){
                        this.list[this.inx].user_answer=[]
                    }else{
                        this.list[this.inx].user_answer=''
                    }
                    console.log(this.list[this.inx]);
                    
                } else {
                    uni.showModal({
                        title: '提示',
                        content: '您还未作答',
                        showCancel: false
                    })
                }
            },
            back(){
                this.inx--
            },
            lmadd() {
                for (var i = 0; i < this.max; i++) {
                    var num = Math.floor(Math.random() * (parseInt(len) - parseInt(0) + 1)) + parseInt(0);
                    if (-1 == this.slect.indexOf(num)) { //数组中不存在
                        this.slect.push(num);
                    } else {
                        this.lmadd1()
                    }
                }
            },
            lmadd1() {
                var num = Math.floor(Math.random() * (parseInt(len) - parseInt(0) + 1)) + parseInt(0);
                if (-1 == this.slect.indexOf(num)) { //数组中不存在
                    this.slect.push(num);
                } else {
                    this.lmadd1()
                }
            },
        },