// pages/grade/grade.js
|
const assessmentService = require("../../../service/assessmentservice")
|
const moment = require('../../../utils/moment.min')
|
const app = getApp()
|
|
Page({
|
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
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
|
},
|
})
|