Edit D:\xinhaisoft\crisis_new\Scripts\chart_echarts.js
/* * ECharts3??? * ??????????(QQ33080907) * ????????2017.07.01 * ?????????????????????????????????? */ /* ????<head></head>????????charts.common??charts???????? <script src="/Scripts/jquery.min.js"></script> <script src="/Scripts/echarts/echarts.common.min.js"></script> <script src="/Scripts/echarts/echarts.min.js"></script> */ /* ???????????ord????????????????????anvas???????? $('div.chart[_echarts_instance_]').each(function () { $(this).width(550); var mychart = echarts.getInstanceByDom(this); mychart.resize(); mychart.setOption({ toolbox: { show: false } }); $(this).removeAttr('_echarts_instance_').html('<img src="' + mychart.getDataURL({ backgroundColor: '#fff', excludeComponents: ['toolbox'] }) + '">'); }); */ (function () { 'use strict' // ???url var $script = $('script').last() var src = $script.attr('src') // ?????? var c = src.match(/[?&]c=([^&]+)/) // ??????????????????(line)??????????????(spline)??????(column)??????(bar)?????(pie)??????(funnel)?????(map)????????(step) var s = src.match(/[?&]s=([^&]+)/) // ????????????????????????(line)??????(column)??????(bar)????????????????????1?????????0????? var t = src.match(/[?&]t=([^&]+)/) // ??? var w = src.match(/[?&]w=([^&]+)/) // ????????100% var h = src.match(/[?&]h=([^&]+)/) // ????????400px var x = src.match(/[?&]x=([^&]+)/) // ???????????????? var r = src.match(/[?&]r=([^&]+)/) // x???????????????0????????ar???????? var v = src.match(/[?&]v=([^&]+)/) // ?????????????????????????????????????????json?????????????????/????????/??????????????=[{'name':'??','data':[1,2]},{'name':'??','data':[2,3]}]????????????????????????????pie/funnel/map???????????? var p = src.match(/[?&]p=([^&]+)/) // ???????????anvas????????1???????????0????? var l = src.match(/[?&]l=([^&]+)/) // ?????????????????????????????0 var o = src.match(/[?&]o=([^&]+)/) // ?????????????????????????#???????????????? var d = src.match(/[?&]d=([^&]+)/) // ??????????????????????????????????????hina????????ttp://echarts.baidu.com/download-map.html????????ttp://ecomfe.github.io/echarts-map-tool/ var z = src.match(/[?&]z=([^&]+)/) // ????????????macarons????????http://echarts.baidu.com/download-theme.html var m = src.match(/[?&]m=([^&]+)/) // ???????????????????1?????0??????????????????????? // ?????? if (c === null || c.length < 1) { c = 'line' } else { c = c[1] } if (s === null || s.length < 1) { s = false } else { s = s[1] === '1' } if (t === null || t.length < 1) { t = '' } else { t = t[1] } 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 (x === null || x.length < 1) { x = '' } else { x = x[1] } if (r === null || r.length < 1) { r = 0 } else { r = r[1] } if (v === null || v.length < 1) { v = '' } else { v = v[1] } if (p === null || p.length < 1) { p = false } else { p = p[1] === '1' } if (l === null || l.length < 1) { l = true } else { l = !(l[1] === '0') } if (o === null || o.length < 1) { o = '' } else { o = o[1] } if (d === null || d.length < 1) { d = 'china' } else { d = d[1] } if (z === null || z.length < 1) { z = 'macarons' } else { z = z[1] } if (m === null || m.length < 1) { m = false } else { m = m[1] === '1' } // ??????????????????????????????? if (x === '') { x = $script.prevAll('input.x').first().val() } if (v === '') { v = $script.prevAll('input.v').first().val() } if (typeof (x) === 'undefined' || x === '') { x = $('#x').val() } if (typeof (v) === 'undefined' || v === '') { v = $('#v').val() } // ??????x?????????????? if (typeof (x) === 'undefined' || x === '') { return } // ?????? var rnd = Math.random().toString().substring(2, 8) var div = '<div id="chart-' + rnd + '" class="chart" style="width:' + w + ';height:' + h + 'px;overflow-x:auto;overflow-y:hidden;margin:0 auto;"></div>' $script.after(div).remove() var option = {} var json = '' var legend = null var maxvalue = 0.0 var minvalue = 0.0 var MaxMin = 0 var i = 0 var j = 0 var MapPY = '' var MapHZ = '' // ?????? if (t === '') { option = { title: { show: false } } } else { option = { title: { text: t } } } // ?????? if (o !== '') { o = $.parseJSON('["' + o.replace(/\|/g, ',').replace(/,/g, '","') + '"]') $.extend(true, option, { color: o }) } // ????????? if (c === 'pie' || c === 'funnel') { $.extend(true, option, { tooltip: { confine: true }, toolbox: { feature: { dataView: {}, restore: {}, saveAsImage: {} } }, series: { type: c, itemStyle: { emphasis: { shadowBlur: 10, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } }) // ??????????? x = x.replace(/\|/g, ',').split(',') v = v.replace(/\|/g, ',').split(',') // ???????????????0????????????? legend = '' j = 0 for (i = 0; i < x.length; i++) { v[i] = Number(v[i]) if (v[i] > 0) { legend += ',"' + x[i] + '"' json += ',{"name":"' + x[i] + '","value":' + v[i] + '}' j += v[i] } } legend = $.parseJSON('[' + legend.substring(1) + ']') json = $.parseJSON('[' + json.substring(1) + ']') // ??????????????????? if (c === 'pie') { $.extend(true, option, { tooltip: { formatter: '{b}??c} ({d}%)' }, legend: { orient: 'vertical', left: 'right', top: 'middle' }, series: { radius: [0, '70%'], label: { normal: { formatter: '{b}??c} ({d}%)' } } } }) } else if (c === 'funnel') { $.extend(true, option, { tooltip: { formatter: function (params) { return params.name + '??' + params.value + ' (' + (params.value / j * 100).toFixed(2) + '%)' } }, legend: { left: 'center', top: 'bottom' }, series: { label: { normal: { formatter: function (params) { return params.name + '??' + params.value + ' (' + (params.value / j * 100).toFixed(2) + '%)' } } } } }) } // ?????? $.extend(true, option, { legend: { data: legend }, series: { data: json } }) } // ?????????????? // ??? else if (c === 'map') { $.extend(true, option, { tooltip: { formatter: '{b}??c}' }, toolbox: { feature: { dataView: {}, restore: {}, saveAsImage: {} } }, visualMap: { left: 'right', top: 'middle', calculable: true }, series: { type: 'map', roam: true, scaleLimit: { min: 1, max: 2 }, label: { normal: { show: true }, emphasis: { show: true } } } }) // ????????????????? var provinces = ['shanghai', 'hebei', 'shanxi', 'neimenggu', 'liaoning', 'jilin', 'heilongjiang', 'jiangsu', 'zhejiang', 'anhui', 'fujian', 'jiangxi', 'shandong', 'henan', 'hubei', 'hunan', 'guangdong', 'guangxi', 'hainan', 'sichuan', 'guizhou', 'yunnan', 'xizang', 'shanxi1', 'gansu', 'qinghai', 'ningxia', 'xinjiang', 'beijing', 'tianjin', 'chongqing', 'xianggang', 'aomen'] var provincesText = ['???', '???', '???', '?????', '???', '???', '?????', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???', '???'] for (i = 0; i < provinces.length; i++) { if (provinces[i] === d || provincesText[i] === d) { MapPY = provinces[i] MapHZ = provincesText[i] break } } // ???????????????????? if (MapPY === '') { MapPY = d MapHZ = d } // ???????? x = x.replace(/\|/g, ',').split(',') v = v.replace(/\|/g, ',').split(',') // ????????? for (i = 0; i < x.length; i++) { for (j = 0; j < provincesText.length; j++) { if (x[i].indexOf(provincesText[j]) === 0) { x[i] = provincesText[j] break } } } // ???????????????????????????????????????? minvalue = v[0] for (i = 0; i < v.length; i++) { if (i > 0) { json += ',' } if (v[i].indexOf('.') === 0) { v[i] = '0' + v[i] } if (v[i].indexOf('-.') === 0) { v[i] = '-0' + v[i].substring(1) } if (Number(v[i]) > maxvalue) { maxvalue = v[i] } if (Number(v[i]) < minvalue) { minvalue = v[i] } json += '{"name":"' + x[i] + '","value":' + v[i] + '}' } json = $.parseJSON('[' + json + ']') // ???????? if (t === '') { $.extend(true, option, { toolbox: { orient: 'vertical', left: 'right' } }) } // ?????? $.extend(true, option, { visualMap: { min: Number(minvalue), max: maxvalue }, series: { map: MapHZ, data: json } }) } // ???????? // ?????????????????????(line)?????????(spline)??????(column)??????(bar)????????(step) else { // ?????? var type = c if (c === 'column') { type = 'bar' } else if (c === 'spline' || c === 'step') { type = 'line' } $.extend(true, option, { // ??? grid: { left: 'left', right: 0, containLabel: true }, // ?????????????????tem??? tooltip: { trigger: 'axis', backgroundColor: 'rgba(255,255,255,0.7)', borderWidth: 1, borderColor: '#48b', textStyle: { color: '#000' } }, toolbox: { feature: { dataView: {}, magicType: {}, restore: {}, saveAsImage: {} } } }) // ???x????? x = $.parseJSON('["' + x.replace(/\|/g, ',').replace(/,/g, '","') + '"]') // ???y????? v = v.replace(/\|/g, ',').replace(/'/g, '"') // ????? // scale?????0?????????0???????????y?????????false??0???? // bar???xy??????y?????????????? if (c === 'bar') { $.extend(true, option, { xAxis: { type: 'value', scale: true, minInterval: 1 }, yAxis: { type: 'category', data: x, inverse: true, axisLabel: { interval: 0 } } }) } else { $.extend(true, option, { xAxis: { type: 'category', data: x, axisLabel: { interval: 0, rotate: r } }, yAxis: { type: 'value', scale: true, minInterval: 1 } }) } // ?????????bar??olumn??hadow?????????(line) if (c === 'bar' || c === 'column') { $.extend(true, option, { tooltip: { axisPointer: { type: 'shadow' } } }) } // ????? if (v.indexOf('{') >= 0 || v.indexOf('[') >= 0) { legend = [] json = $.parseJSON(v) // ?????????x?????????????????????????? minvalue = json[0].data[0] $.each(json, function (i, v) { var tmpMin, tmpMax v.data = v.data.slice(0, x.length) // ???ES6????????????? // tmp_min=Math.min(...(v.data)); // tmp_max=Math.max(...(v.data)); tmpMin = Math.min.apply(null, v.data) tmpMax = Math.max.apply(null, v.data) if (tmpMin < minvalue) { minvalue = tmpMin } if (tmpMax > maxvalue) { maxvalue = tmpMax } }) // console.log(minvalue+'/'+maxvalue); // ???????????(series)???????? var item_ex = { type: type, smooth: c === 'spline', step: c === 'step' ? 'middle' : false } // ???????????? if (l) { $.extend(true, item_ex, { label: { normal: { show: true } } }) } // ????????????????? if (c === 'bar' && s) { $.extend(true, item_ex, { stack: '???' }) } else if (c === 'bar' && l) { $.extend(true, item_ex, { label: { normal: { position: 'right' } } }) } else if (c === 'column' && l) { $.extend(true, item_ex, { label: { normal: { position: 'top' } } }) } // ??????? if (m) { $.extend(true, item_ex, { markPoint: { data: [{ name: '??????', type: 'max' }] } }) } // ??????????egend??????????? $.each(json, function (index, item) { legend.push(item.name) $.extend(item, item_ex) }) // ???????????????????????????????? $.extend(true, option, { toolbox: { feature: { magicType: { type: ['line', 'bar', 'stack', 'tiled'] } } }, legend: { data: legend, top: 'bottom' }, series: json }) } // ????????? // ????? else { v = v.split(',') // ???????????????????????????????????????? minvalue = v[0] for (i = 0; i < v.length; i++) { if (v[i].indexOf('.') === 0) { v[i] = '0' + v[i] } if (v[i].indexOf('-.') === 0) { v[i] = '-0' + v[i].substring(1) } if (Number(v[i]) > maxvalue) { maxvalue = v[i] } if (Number(v[i]) < minvalue) { minvalue = v[i] } } $.extend(true, option, { grid: { bottom: 0 }, toolbox: { feature: { magicType: { type: ['line', 'bar'] } } }, tooltip: { formatter: '{b}??c}' }, // ????????? legend: { show: false }, series: { type: type, smooth: c === 'spline', step: c === 'step' ? 'middle' : false, data: v.slice(0, x.length) } }) // ???????????? if (l) { $.extend(true, option, { label: { normal: { show: true } } }) } // ???????????? if (c === 'bar' && l) { $.extend(true, option, { series: { label: { normal: { position: 'right' } } } }) } else if (c === 'column' && l) { $.extend(true, option, { series: { label: { normal: { position: 'top' } } } }) } // ??????? if (m) { $.extend(true, option, { series: { markPoint: { data: [{ name: '??????', type: 'max' }] } } }) } } // ????????? // ????????????????????????? minvalue = Math.floor(minvalue) maxvalue = Math.ceil(maxvalue) // console.log(minvalue+'/'+maxvalue); if (c === 'bar') { $.extend(true, option, { grid: { right: 30 } }) if (!s) { $.extend(true, option, { xAxis: { min: minvalue, max: maxvalue } }) } } // else { $.extend(true, option, { yAxis: { min: minvalue, max: maxvalue } }); } // ???y??????????? MaxMin = maxvalue - minvalue if (MaxMin <= 5) { if (c === 'bar') { $.extend(true, option, { xAxis: { splitNumber: MaxMin } }) } else { $.extend(true, option, { yAxis: { splitNumber: MaxMin } }) } } } // ?????????????? // ?????? if (c === 'map') { var mapurl = '' // ??? if (d === 'china') { mapurl = '//echarts.baidu.com/asset/map/js/china.js' } // ?? else if (MapPY !== MapHZ) { mapurl = '//echarts.baidu.com/asset/map/js/province/' + MapPY + '.js' } // ?? else { mapurl = '/Scripts/map/' + MapHZ + '.js' } $.ajax(mapurl, { dataType: 'script', cache: true, success: function () { drawchart() } }) } // ????????? else { drawchart() } // ??? function drawchart() { $.ajax('/Scripts/echarts/theme/' + z + '.js', { dataType: 'script', cache: true, success: function () { var mychart = echarts.init(document.getElementById('chart-' + rnd), z) // console.log(JSON.stringify(option, null, 2)); if (p) { $.extend(true, option, { animation: false, toolbox: { show: false } }) mychart.setOption(option) $('#chart-' + rnd).html('<img src="' + mychart.getDataURL({ backgroundColor: '#fff' }) + '">') } else { mychart.setOption(option) } } }) } })()
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de