// pages/bookServices/examination/questionSchedule/questionSchedule.js Component({ /** * 组件的属性列表 */ properties: { questionList: { type: Array, value: [] }, submitStatus: { type: Boolean, value: false }, currentIndex: { type: Number, value: 1 }, countdownTime: { type: Number, value: 0 }, answerType: { type: String, value: '' } }, created() { }, detached() { }, /** * 组件的初始数据 */ data: { showTime: '', // percentage: 0, ready: 0 }, observers: { 'countdownTime': function (newValue) { const showTime = this.formatTime(this.properties.countdownTime) this.setData({ showTime: showTime }) }, 'questionList': function (newValue) { this.setData({ ready: 0 }) for (let index = 0; index < newValue.length; index++) { const item = newValue[index]; if (this, this.isHaveAnswer(item.userAnswer)) { this.setData({ ready: this.data.ready + 1 }) } } } }, /** * 组件的方法列表 */ methods: { // 判断是否有用户答案 isHaveAnswer(data) { if (typeof data == 'string') { data = data .replace(/<[^>]*>/g, '') .replace(/ /g, '') .trim() if (data.length) { return true } else { return false } } else { const answer = data.find((item) => item.length > 0) if (answer) { return true } else { return false } } }, // // 格式化时间 formatTime(ms) { const hours = Math.floor((ms / (1000 * 60 * 60)) % 24) .toString() .padStart(2, '0') const minutes = Math.floor((ms / (1000 * 60)) % 60) .toString() .padStart(2, '0') const seconds = Math.floor((ms / 1000) % 60) .toString() .padStart(2, '0') return `${hours}:${minutes}:${seconds}` }, // // 获取保存的倒计时时间 // getSavedTime() { // const savedTime = wx.getStorageSync('countdownTime') // return savedTime ? parseInt(savedTime) : null // }, // // 保存倒计时时间到本地存储 // saveTime() { // wx.setStorageSync('countdownTime', this.data.countdownTime.toString()) // }, // clearTime() { // this.setData({ // countdownTime: 2 * 60 * 60 * 1000 // }) // }, // // 暂停或继续倒计时 // toggleCountdown() { // if (countdownInterval) { // clearInterval(this.data.countdownInterval) // this.setData({ // countdownInterval: null, // isCountdownRunning: false // }) // } else { // this.startCountdown() // this.setData({ // isCountdownRunning: true // }) // } // }, // // 开始倒计时 // startCountdown() { // // 如果计时器已经存在,先清除之前的计时器 // if (this.data.countdownInterval) { // clearInterval(this.data.countdownInterval) // this.setData({ // countdownInterval: null // }) // } // this.setData({ // countdownInterval: setInterval(() => { // this.setData({ // countdownTime: this.data.countdownTime - 1000 // }) // if (this.data.countdownTime <= 0) { // clearInterval(this.data.countdownInterval) // this.setData({ // countdownTime: 0, // isCountdownRunning: false // }) // } // this.saveTime() // }, 1000) // }) // } } })