123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- 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 += '<div class="groupBox"> <div class="groupName">' + scaleList.group[j].groupName + '</div>';
- 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 += '<span class="groupRowRadio"><input type="radio" data-index="' + j + '_' + x + '_' + y + '_' + z + '" name="' + j +'_'+ x +'_'+ y + '" id="' + j +'_' + x +'_' + y +'_'+ z + '"'
- if (scaleList.group[j].rows[x].row[y].details[z].select == 1) {
- hasSelect = true
- str2 += ' checked="checked"'
- }
- str2 += ' />' + '<label for="' + j +'_'+ x +'_' + y +'_' + z + '">' + scaleList.group[j].rows[x].row[y].details[z].detailName + '(' + scaleList.group[j].rows[x].row[y].details[z].score + ')' + '</label>'
- if (scaleList.group[j].rows[x].row[y].details[z].state == 1) {
- str2 += '<span class="groupRowRecommend">智能推荐</span>'
- }
- str2 += '</span>'
- }
- str += '<div class="groupRowWrapper '
- if(+scaleList.group[j].rows[x].required === 1&&hasCalc&&!hasSelect) {
- str += 'noSelect '
- }
- str +='' + j +'_'+ x + '" data-group="' + j +'_' + x + '" id="' + j +'_'+ x +'_'+ y + '">'
-
- if(scaleList.group[j].rows[x].row.length > 1 && y=== 0) {
- str += '<div class="tips">本组选项可多选或根据需要选择某一条选项</div>'
- }
-
- str +='<div class="groupRowName"> <span class="groupRowIndex">'
- if (y == 0) {
- str += (x + 1) + '.'
- }
- str += '</span>' + scaleList.group[j].rows[x].row[y].name + '</div><div class="groupRowBox">' + str2 + '</div>' + '</div>'
- }
- }
- if (scaleList.group[j].groupCalculate.isShow == 1) {
- str += '<div class="calcu">计分:' + scaleList.group[j].groupCalculate.result.value + ' ' + scaleList.group[j].groupCalculate.result.text + '</div>'
- }
- str += '</div>'
- }
- var calcuStr = '<div class="allCalcuBox"><span class="allCalcu">总分:'
- if (scaleList.calculate && scaleList.calculate.result) {
- calcuStr += scaleList.calculate.result.value + ' ' + scaleList.calculate.result.text
- }
- calcuStr += '</span><span class="calcuBtn">得分</span></div>'
- if($(".calcuWrapper")[0]) {
- $(".calcuWrapper").html(str + calcuStr)
- } else {
- var allStr = '<div class="calcuWrapper">' + str + calcuStr + '</div>'
- $('.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 += '<div class="groupRowRadio groupRowRadioType2"><input type="radio" data-index="' + i + '_' + j +'" name="' + i + '_' + '" id="' + i+'_' + j
- if (scaleList.rows[i].details[j].select == 1) {
- str2 += ' checked="checked"'
- }
- str2 += '" />' + '<label for="' + i +'_'+ j + '">' + scaleList.rows[i].details[j].detailName + '(' + scaleList.rows[i].details[j].result + ')' + '</label>'
- if (scaleList.rows[i].details[j].state == 1) {
- str2 += '<span class="groupRowRecommend">智能推荐</span>'
- }
- str2 += '</div>'
- }
- str += `
- <div class="groupBox groupBoxType2">
- <div class="groupName">
- ${scaleList.rows[i].name}
- </div>
- ${str2}
- </div>
- `
-
- }
- var calcuStr =`<div class="calcResult"></div>`
- var allStr = '<div class="calcuWrapper">' + str + calcuStr + '</div>'
- $('.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)
- }
- })
- }
|