const {
post,
config,
getUrlArgObject
} = require('./promise.js');
const $ = require("jquery");
let hasCalc = false;
$(function () {
var scaleInfo;
// 用GetQueryString方法从地址栏获取参数,暂时写死
var msg = JSON.parse(getUrlArgObject('msg'))
var params = msg
if (msg.scaleName) {
post(config.pushScale, params).then((res) => {
const data = res.data.data
if (res.data.code == 0) {
scaleInfo = data;
for (var i = 0; i < scaleInfo.length; i++) {
if (scaleInfo[i].type == 1) {
var scaleList = JSON.parse(scaleInfo[i].content)
renderCalcu(scaleList)
} else {
$('.content').append(scaleInfo[i].content)
}
}
$('.content img').bind('contextmenu', function(){
return false
})
}
})
}
})
function renderCalcu(scaleList) {
$("h1").html(scaleList.scaleName);
if(+scaleList.scaleType === 1 && +scaleList.Calc === 1) {
renderScaleType1(scaleList)
bindScaleType1(scaleList)
} else if(+scaleList.scaleType === 2 && +scaleList.Calc === 0) {
renderScaleType2(scaleList)
bindScaleType2(scaleList)
}
}
function renderScaleType1(scaleList) {
var str = ''
for (var j = 0; j < scaleList.group.length; j++) {
str += '
' + scaleList.group[j].groupName + '
';
for (var x = 0; x < scaleList.group[j].rows.length; x++) {
for (var y = 0; y < scaleList.group[j].rows[x].row.length; y++) {
var str2 = ''
var hasSelect = false
for (var z = 0; z < scaleList.group[j].rows[x].row[y].details.length; z++) {
str2 += '
' + '' + scaleList.group[j].rows[x].row[y].details[z].detailName + '(' + scaleList.group[j].rows[x].row[y].details[z].score + ')' + ' '
if (scaleList.group[j].rows[x].row[y].details[z].state == 1) {
str2 += '智能推荐 '
}
str2 += ''
}
str += '
'
if(scaleList.group[j].rows[x].row.length > 1 && y=== 0) {
str += '
本组选项可多选或根据需要选择某一条选项
'
}
str +='
'
if (y == 0) {
str += (x + 1) + '.'
}
str += ' ' + scaleList.group[j].rows[x].row[y].name + '
' + str2 + '
' + '
'
}
}
if (scaleList.group[j].groupCalculate.isShow == 1) {
str += '
计分:' + scaleList.group[j].groupCalculate.result.value + ' ' + scaleList.group[j].groupCalculate.result.text + '
'
}
str += '
'
}
var calcuStr = '总分:'
if (scaleList.calculate && scaleList.calculate.result) {
calcuStr += scaleList.calculate.result.value + ' ' + scaleList.calculate.result.text
}
calcuStr += ' 得分
'
if($(".calcuWrapper")[0]) {
$(".calcuWrapper").html(str + calcuStr)
} else {
var allStr = '' + str + calcuStr + '
'
$('.content').append(allStr)
}
}
function bindScaleType1(scaleList) {
$('input').on('change', function (e) {
var indexList = $(this).attr('data-index').split('_')
for (let i = 0; i < scaleList.group[indexList[0]].rows[indexList[1]].row[indexList[2]].details.length; i++) {
scaleList.group[indexList[0]].rows[indexList[1]].row[indexList[2]].details[i].select = 0
}
if(+scaleList.group[indexList[0]].rows[indexList[1]].metux === 1) {
for(let i = 0; i < scaleList.group[indexList[0]].rows[indexList[1]].row.length; i++) {
for(let j = 0; j < scaleList.group[indexList[0]].rows[indexList[1]].row[i].details.length; j++) {
scaleList.group[indexList[0]].rows[indexList[1]].row[i].details[j].select = 0
}
}
}
scaleList.group[indexList[0]].rows[indexList[1]].row[indexList[2]].details[indexList[3]].select = 1
const className = $(this).parent().parent().parent().attr('data-group')
for (let i = 0; i < $('.' + className).length; i++) {
$('.' + className).eq(i).removeClass('noSelect')
}
renderScaleType1(scaleList)
bindScaleType1(scaleList)
})
$('.calcuBtn').on('click', function () {
hasCalc = true
let allSelect = true
for (let i = 0; i < scaleList.group.length; i++) {
for (let j = 0; j < scaleList.group[i].rows.length; j++) {
if (scaleList.group[i].rows[j].required == 1) {
let itemSelect = false
for (let x = 0; x < scaleList.group[i].rows[j].row.length; x++) {
for (let y = 0; y < scaleList.group[i].rows[j].row[x].details.length; y++) {
if (scaleList.group[i].rows[j].row[x].details[y].select == 1) {
itemSelect = true
}
}
}
if (!itemSelect) {
allSelect = false
$('.' + i+'_' + j).addClass('noSelect')
}
}
}
}
if (!allSelect) {
$('.modal').css('display', 'block');
let timer = setTimeout(() => {
$('.modal').css('display', 'none');
}, 2000);
$('.closeModal').click(function () {
$('.modal').css('display', 'none');
if (timer) {
clearTimeout(timer)
}
})
}
if (allSelect) {
getCalcuResult(scaleList)
}
})
}
function renderScaleType2(scaleList) {
let str = ''
for( let i = 0; i < scaleList.rows.length; i++){
let str2 = ''
for(let j = 0; j < scaleList.rows[i].details.length; j++) {
str2 += ' ' + '' + scaleList.rows[i].details[j].detailName + '(' + scaleList.rows[i].details[j].result + ')' + ' '
if (scaleList.rows[i].details[j].state == 1) {
str2 += '智能推荐 '
}
str2 += '
'
}
str += `
${scaleList.rows[i].name}
${str2}
`
}
var calcuStr =`
`
var allStr = '' + str + calcuStr + '
'
$('.content').append(allStr)
}
function bindScaleType2(scaleList) {
$('input').on('change', function (e) {
var indexList = $(this).attr('data-index').split('_')
for (var i = 0; i < scaleList.rows[indexList[0]].details.length; i++) {
scaleList.rows[indexList[0]].details[i].select = 0
}
scaleList.rows[indexList[0]].details[indexList[1]].select = 1
let resultStr ="结果:"
let resultStrNum = 0
for(let i = 0; i < scaleList.rows.length; i++) {
for(let j = 0; j < scaleList.rows[i].details.length; j++) {
if(scaleList.rows[i].details[j].select === 1) {
resultStrNum++
resultStr += `${scaleList.rows[i].details[j].detailName}(${scaleList.rows[i].details[j].result}),`
}
}
}
if(resultStrNum > 0) {
resultStr = resultStr.slice(0,-1)
}
$('.calcResult').html(resultStr)
})
}
function getCalcuResult(data) {
const param = {
type: 1,
data: data
}
post(config.calculate, param).then((res) => {
const dataResult = res.data.data
if (res.data.code == 0) {
data.calculate.result = dataResult.calcalculate.result
for (let i = 0; i < data.group.length; i++) {
for (let j = 0; j < dataResult.group.length; j++) {
if (data.group[i].groupName == dataResult.group[j].groupName) {
data.group[j].groupCalculate.result = dataResult.group[i].groupCalculate.result
}
}
}
if ($('.calcu').length) {
for (let i = 0; i < $('.calcu').length; i++) {
let calcuItemName = $('.calcu').eq(i).parent().find('.groupName').html();
let calcuItem = data.group.filter(function (item) {
return item.groupName == calcuItemName
})[0]
$('.calcu').eq(i).html('计分:' + calcuItem.groupCalculate.result.value + ' ' + calcuItem.groupCalculate.result.text)
}
}
$('.allCalcu').eq(0).html('总分:' + data.calculate.result.value + ' ' + data.calculate.result.text)
} else {
alert(res.msg)
}
})
}