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) } }) }