// pages/grade/grade.js const assessmentService = require("../../../service/assessmentservice") const moment = require('../../../utils/moment.min') const app = getApp() Page({ /** * 页面的初始数据 */ data: { // { // title1: '在线监测设备', // sub1: [{ // title2: '设备', // group: 0, // sub2: [{ // content: '设备未安装', // score: '-10', // select: false // }, // { // content: '设备私自拆除', // score: '-10', // select: false // }, // { // content: '设备未运行', // score: '-10', // select: false // }, { // content: '设备未运维', // score: '-10', // select: false // } // ] // }, { // title2: '数据', // group: 1, // sub2: [{ // content: '数据未超标', // score: '-10', // select: false // }, // { // content: '数据部分超标', // score: '-10', // select: false // }, // { // content: '数据大量超标', // score: '-10', // select: false // }, { // content: '数据严重超标', // score: '-10', // select: false // } // ] // }], // } evaluations: [] }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.getScoreHistory() }, /** * 获取本期的评估规则及记录 */ getScoreHistory() { var that = this let now = moment() //根据当前时间获取评估周期YYYY/M-M this.period = `${now.year()}/${now.month()+1}-${now.month()+1}` assessmentService.getScore(app.globalData.accessToken.userId, this.period, { success(data) { that.setData({ evaluations: data }) } }) }, choose: function (e) { var index = e.currentTarget.dataset.index var group = e.currentTarget.dataset.group var evaluations = this.data.evaluations for (let i = 0; i < evaluations.length; i++) { const e1 = evaluations[i]; var found = false for (let y = 0; y < e1.sub1.length; y++) { const e2 = e1.sub1[y]; if (e2.group == group) { //多选规则 if (e2.selectMode == 'multi_mode') { e2.sub2[index].select = !e2.sub2[index].select } //默认为单选规则 else { for (let i = 0; i < e2.sub2.length; i++) { const s2 = e2.sub2[i]; if (i == index) { s2.select = !s2.select } else { s2.select = false } } } found = true break } } if (found) { break } } this.setData({ evaluations: evaluations }) }, onSubmit: function () { var itemList = [] var totalcount = 0 var selectcount = 0 var evaluations = this.data.evaluations for (let i = 0; i < evaluations.length; i++) { const e1 = evaluations[i]; for (let y = 0; y < e1.sub1.length; y++) { const e2 = e1.sub1[y]; //当选项不是附加分,是基础分时,才会计算为必选项 if (e1.scoreMode != 'addition_score') totalcount++ let counted = false//记录当前评估项是否已经计数过 for (let t = 0; t < e2.sub2.length; t++) { const s2 = e2.sub2[t]; if (s2.select) { //将所选的条目记录 itemList.push({ first: s2.id, second: s2.score + '' }) //记录当前评估项是否已被选择,计数最多累加一次 if (!counted && e1.scoreMode != 'addition_score') { selectcount++ counted = true } } } } } if (selectcount < totalcount) { wx.showToast({ title: '请完成所有基础评估项', icon: 'none', }) } else { this.setData({ itemList: itemList, showDialog: true, startCalculate: false }) } }, upload: function () { var that = this this.setData({ showDialog: false, showDialog2: true, startCalculate: true, loadingOverText: '' }) this.loadingText("计算总分中", function () { that.setData({ loadingOverText: ['计算总分完成'] }) that.loadingText('等级评估中', function () { that.setData({ loadingOverText: ['计算总分完成', '等级评估完成'] }) var h = that.loadingText('生成综合测评报告', function () { that.setData({ loadingText: '', loadingOverText: ['计算总分完成', '等级评估完成', '综合测评报告生成失败'] }) }, 25) assessmentService.uploadScore(app.globalData.accessToken.userId, that.period, that.data.itemList, { success(data) { clearInterval(h) that.setData({ startCalculate: false, loadingText: '', loadingOverText: ['计算总分完成', '等级评估完成', '综合测评报告生成'] }) } }) }) }) }, gotoReport() { this.setData({ showDialog2: false, }) wx.redirectTo({ url: '/pages/mAssessment/gradereport/gradereport' }) }, goBack() { this.setData({ showDialog2: false, }) wx.navigateBack({ delta: 1, }) }, loadingText(text, onDone, max) { var i = 0 if (max == undefined) { max = 5 } var h = setInterval(() => { if (i > max) { clearInterval(h) onDone() } else { var points = '' var n = i % 3 for (let t = 0; t < n + 1; t++) { points += '.' } this.setData({ loadingText: text + points }) i++ } }, 200); return h }, })