// EPQA艾森克成人式 (function () { 'use strict' // 获取url var js = 'epqa' var $script = $('script[src*="/lb/chart/' + js + '.js"]').last() var src = $script.attr('src') // 获取参数 var w = src.match(/[?&]w=([^&]+)/) var h = src.match(/[?&]h=([^&]+)/) var v = src.match(/[?&]v=([^&]+)/) // 处理参数 if (w === null || w.length < 1) { w = '100%' } else { w = w[1] + 'px' } if (h === null || h.length < 1) { h = 400 } else { h = h[1] } if (v === null || v.length < 1) { v = '' } else { v = v[1] } // 创建容器 var rnd1 = Math.random().toString().substring(2, 8) var rnd2 = Math.random().toString().substring(2, 8) var div = '' div = '


' $script.after(div).remove() // 处理得分 var json = v.replace(/\|/g, ',').split(',') // 折线图配置 var option1 = { grid: { left: 'left', containLabel: true, bottom: 0, right: 20 }, title: { text: '《艾森克人格问卷成人式(EPQA)》个人整体特征剖面图' }, tooltip: { trigger: 'axis' }, toolbox: { feature: { dataView: {}, magicType: { type: ['bar'] }, restore: {}, saveAsImage: {} } }, xAxis: { axisLabel: { interval: 0 }, data: ['E', 'N', 'P', 'L'] }, yAxis: { min: 20, max: 80 }, series: { name: '标准分', type: 'line', smooth: false, label: { show: true }, markLine: { silent: true, data: [ { yAxis: 30, lineStyle: { color: '#b6a2de', opacity: 0.5 } }, { yAxis: 40, lineStyle: { type: 'solid', color: '#b6a2de', opacity: 0.5 } }, { yAxis: 50, lineStyle: { type: 'solid', color: '#b6a2de', opacity: 0.5 } }, { yAxis: 60, lineStyle: { type: 'solid', color: '#b6a2de', opacity: 0.5 } }, { yAxis: 70, lineStyle: { color: '#b6a2de', opacity: 0.5 } } ] }, data: json } } // 象限图配置 w = $('#chart-' + rnd2).width() h = $('#chart-' + rnd2).height() - 60 - 10 var wh = Math.min(w, h) // 中心点坐标 var x = w / 2 var y = 60 + wh / 2 var option2 = { grid: { left: (w - wh) / 2, right: (w - wh) / 2, bottom: h - wh + 10 }, title: { text: '内外向与神经质十字坐标图' }, tooltip: { formatter: 'E:' + json[0] + '
N:' + json[1] }, toolbox: { feature: { saveAsImage: {} } }, xAxis: { name: 'E维度(内外倾向性)', nameGap: -110, min: 20, max: 80, interval: 10, offset: wh * (-0.5) }, yAxis: { name: 'N维度(情绪稳定性)', min: 20, max: 80, interval: 10, offset: wh * (-0.5) }, series: { type: 'scatter', symbolSize: 10, markPoint: { silent: true, label: { show: false }, itemStyle: { color: '#b6a2de' }, data: [{ coord: [json[0], json[1]] }] }, data: [[json[0], json[1]]] }, graphic: [ { type: 'text', z: 1, style: { text: '外向、稳定\n多血质', x: x + 50, y: y + 70 } }, { type: 'text', z: 1, style: { text: '内向、稳定\n粘液质', x: x - 50, y: y + 70, textAlign: 'right' } }, { type: 'text', z: 1, style: { text: '内向、不稳定\n抑郁质', x: x - 50, y: y - 70, textAlign: 'right' } }, { type: 'text', z: 1, style: { text: '外向、不稳定\n胆汁质', x: x + 50, y: y - 70 } } ] } // 处理主题 if ($('body').data('echarts-theme-macarons')) { drawChart() } else { $.ajax('/Scripts/echarts/theme/macarons.js', { dataType: 'script', cache: true, success: function () { $('body').data('echarts-theme-macarons', true) drawChart() } }) } // 绘制图表 function drawChart () { $('#chart-' + rnd1).data({ option: option1, theme: 'macarons' }) $('#chart-' + rnd2).data({ option: option2, theme: 'macarons' }) echarts.init(document.getElementById('chart-' + rnd1), 'macarons').setOption(option1) echarts.init(document.getElementById('chart-' + rnd2), 'macarons').setOption(option2) } })()