From bd5d294751860d5b4e80155f6288d028707e1e6a Mon Sep 17 00:00:00 2001 From: liweina Date: Tue, 28 Jul 2020 16:40:26 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=E5=9C=B0=E5=9B=BE=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=80=82=E9=85=8D=E9=A3=9E=E7=BA=BF=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/geo/chart.js | 204 ++++++++++++++++++++++++++++++++------ 1 file changed, 176 insertions(+), 28 deletions(-) diff --git a/src/packages/geo/chart.js b/src/packages/geo/chart.js index ed5284f..2a8d8d2 100644 --- a/src/packages/geo/chart.js +++ b/src/packages/geo/chart.js @@ -46,6 +46,40 @@ class GeoChart extends BaseChart { return res } + static convertLinesData (name, data) { + const res = [] + const fromCoord = cityGeo[name] || cityGeo2[name] + if (!fromCoord) return [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const toCoord = cityGeo[dataItem.name] || cityGeo2[dataItem.name] + if (toCoord) { + res.push({ + fromName: name, + toName: dataItem.name, + coords: [fromCoord, toCoord], + value: dataItem.value + }) + } + } + return res + } + + static convertEffectScatterData (data) { + const res = [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const toCoord = cityGeo[dataItem.name] || cityGeo2[dataItem.name] + if (toCoord) { + res.push({ + name: dataItem.name, + value: toCoord.concat([dataItem.value]) + }) + } + } + return res + } + static getGeoData (args) { const { data, settings } = args const { measures } = data @@ -54,14 +88,23 @@ class GeoChart extends BaseChart { mapName = 'china', labelVisible, isMapMode, + isLinesMode, itemStyle, visualMap, label, symbolSize = 10, roam = false, zoom = 1, + lineEffectVisible = false, + lineEffect = {}, + overlayEffectVisible = false, + overlayEffect = {}, + effectScatterLabelVisible, + effectScatterLabel = {}, + lineStyle = {}, connect } = settings + const [legendData, seriesData] = [[], []] // computed max value @@ -71,38 +114,129 @@ class GeoChart extends BaseChart { }).reduce((a, b) => a + b) measures && measures.forEach(({ name, data }, index) => { - const mapData = isMapMode ? data : GeoChart.convertCityData(data, { index, connect }) + const mapData = isMapMode ? data : isLinesMode ? GeoChart.convertLinesData(name, data) : GeoChart.convertCityData(data, { index, connect }) const unShowLabel = { normal: { show: false }, emphasis: { show: false } } - - seriesData[index] = { - name, - type: mode, - roam, - visualMap, - label: labelVisible ? label : unShowLabel, - selectedMode: 'single', - mapType: mapName, - data: mapData, - zoom - } - - if (itemStyle) { - seriesData[index].itemStyle = itemStyle - } - - if (!isMapMode) { - seriesData[index] = { ...seriesData[index], - ...{ + if (isLinesMode) { + seriesData.push( + // lines trailLength settings + { + name: name, + type: 'lines', + zlevel: 1, + effect: { + show: lineEffectVisible, + ...lineEffect + }, + lineStyle: { + normal: { + width: 0 + } + }, + data: mapData + }, + // overlay and lines settings + { + name: name, + type: 'lines', + zlevel: 2, + effect: { + show: overlayEffectVisible, + ...overlayEffect + }, + lineStyle: { + normal: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2, + ...lineStyle + } + }, + data: mapData + }, + // target nodes settings + { + name: name, + type: 'effectScatter', + coordinateSystem: 'geo', + zlevel: 2, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: GeoChart.convertEffectScatterData(data) + }, + // source nodes settings + { + name: name, + type: 'effectScatter', coordinateSystem: 'geo', - label: unShowLabel, - symbolSize, + zlevel: 3, showEffectOn: 'render', rippleEffect: { brushType: 'stroke' }, - itemStyle: {} - } } + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: [{ + name: name, + value: cityGeo[name] || cityGeo2[name] + }] + } + ) + } else { + seriesData[index] = { + name, + type: mode, + roam, + visualMap, + label: labelVisible ? label : unShowLabel, + selectedMode: 'single', + mapType: mapName, + data: mapData, + zoom + } + + if (itemStyle) { + seriesData[index].itemStyle = itemStyle + } + + if (!isMapMode) { + seriesData[index] = { ...seriesData[index], + ...{ + coordinateSystem: 'geo', + label: unShowLabel, + symbolSize, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + itemStyle: {} + } } + } } legendData.push(name) @@ -115,12 +249,24 @@ class GeoChart extends BaseChart { } } - static getGeoTooltip (isMapMode) { + static getGeoTooltip (isMapMode, isLinesMode) { const formatter = function (params) { - const { seriesName, name, value, marker } = params + const { seriesName, name, value, marker, seriesType, data } = params const seriesValue = Array.isArray(value) ? value[2] : value + + if (isLinesMode) { + const { fromName, toName, name } = data + if (seriesType === 'effectScatter') { + return `线路:${name} ${seriesValue || ''}` + } else if (seriesType === 'lines') { + return `${fromName} -> ${toName}
${seriesValue}` + } else { + return `${toName}` + } + } return `${seriesName}
${marker}${name}: ${seriesValue}` } + return isMapMode ? { trigger: 'item' } : { trigger: 'item', formatter } @@ -205,11 +351,13 @@ class GeoChart extends BaseChart { } = settings const isMapMode = mode === 'map' + const isLinesMode = mode === 'lines' settings.isMapMode = isMapMode + settings.isLinesMode = isLinesMode const { legendData, seriesData, max } = GeoChart.getGeoData({ data, settings }) - const tooltip = tooltipVisible && GeoChart.getGeoTooltip(isMapMode) + const tooltip = tooltipVisible && GeoChart.getGeoTooltip(isMapMode, isLinesMode) const legend = legendVisible && GeoChart.getGeoLegend({ legendData, settings }) From 695a03e1be24c90cddbc4a113fd67c97e95bfc46 Mon Sep 17 00:00:00 2001 From: liweina Date: Wed, 29 Jul 2020 16:51:35 +0800 Subject: [PATCH 2/9] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E9=A3=9E?= =?UTF-8?q?=E7=BA=BF=E5=9C=B0=E5=9B=BE=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/geolines.js | 111 +++++++++++++++++++++++++++++++++++++++++++ app/data/index.js | 2 + 2 files changed, 113 insertions(+) create mode 100644 app/data/geolines.js diff --git a/app/data/geolines.js b/app/data/geolines.js new file mode 100644 index 0000000..fbcf13d --- /dev/null +++ b/app/data/geolines.js @@ -0,0 +1,111 @@ +const randomData = () => { + return Math.round(Math.random() * 1000) +} + +// const planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z' + +const baseData = { + measures: [ + { + name: '北京', + data: [ + { name: '上海', value: randomData() }, + { name: '重庆', value: randomData() }, + { name: '河北', value: randomData() }, + { name: '河南', value: randomData() }, + { name: '云南', value: randomData() }, + { name: '辽宁', value: randomData() }, + { name: '黑龙江', value: randomData() }, + { name: '湖南', value: randomData() }, + { name: '安徽', value: randomData() }, + { name: '山东', value: randomData() }, + { name: '新疆', value: randomData() }, + { name: '江苏', value: randomData() }, + { name: '浙江', value: randomData() }, + { name: '江西', value: randomData() }, + { name: '湖北', value: randomData() }, + { name: '广西', value: randomData() }, + { name: '甘肃', value: randomData() }, + { name: '山西', value: randomData() }, + { name: '内蒙古', value: randomData() }, + { name: '陕西', value: randomData() }, + { name: '吉林', value: randomData() }, + { name: '福建', value: randomData() }, + { name: '贵州', value: randomData() }, + { name: '广东', value: randomData() }, + { name: '青海', value: randomData() }, + { name: '西藏', value: randomData() }, + { name: '四川', value: randomData() }, + { name: '宁夏', value: randomData() }, + { name: '海南', value: randomData() }, + { name: '台湾', value: randomData() }, + { name: '香港', value: randomData() }, + { name: '澳门', value: randomData() } + ] + } + ] +} + +export default { + name: '地图', + type: 'geo', + chartData: [ + { + title: '飞线地图', + data: baseData, + settings: { + mode: 'lines', + visualMapVisible: true, + visualMap: { + inRange: { + color: ['#a6c84c', '#ffa022', '#46bee9'] + } + }, + symbolSize: 10, + lineEffectVisible: false, + lineEffect: { + period: 0, + trailLength: 0, + color: '#fff', + symbolSize: 3 + }, + lineStyle: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2 + }, + overlayEffectVisible: true, + overlayEffect: { + period: 5, + trailLength: 0.7, + symbol: 'arrow', + symbolSize: 6 + }, + effectScatterLabelVisible: true, + effectScatterLabel: { + normal: { position: 'left' } + }, + itemStyle: { + normal: { + areaColor: '#020933', + borderColor: '#3fdaff', + borderWidth: 1, + shadowColor: 'rgba(63, 218, 255, 0.5)', + shadowBlur: 10 + }, + emphasis: { + areaColor: '#2B91B7' + } + }, + labelVisible: true, + label: { + normal: { show: true, color: '#fff' }, emphasis: { show: true } + } + }, + xprops: { + legendVisible: true + } + } + ] +} diff --git a/app/data/index.js b/app/data/index.js index 44f5846..840d831 100644 --- a/app/data/index.js +++ b/app/data/index.js @@ -11,6 +11,7 @@ import treemap from './treemap' import tree from './tree' import wordcloud from './wordcloud' import geo from './geo' +import geolines from './geolines' import liquidfill from './liquidfill' import polar from './polar' import sankey from './sankey' @@ -29,6 +30,7 @@ export default { tree, wordcloud, geo, + geolines, liquidfill, polar, sankey From 7d105d672622e352d6af4cff13f299d2742aef19 Mon Sep 17 00:00:00 2001 From: liweina Date: Wed, 29 Jul 2020 18:31:43 +0800 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=E5=9C=B0=E5=9B=BE=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E4=B8=AD=E5=A2=9E=E5=8A=A0=E9=A3=9E=E7=BA=BF=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/geo.js | 99 ++++++++++++++++++++++++++++++++++++++ app/data/geolines.js | 111 ------------------------------------------- app/data/index.js | 2 - 3 files changed, 99 insertions(+), 113 deletions(-) delete mode 100644 app/data/geolines.js diff --git a/app/data/geo.js b/app/data/geo.js index 97bf056..9ec5eeb 100644 --- a/app/data/geo.js +++ b/app/data/geo.js @@ -70,6 +70,48 @@ const baseData = { ] } +const geolinesData = { + measures: [ + { + name: '北京', + data: [ + { name: '上海', value: randomData() }, + { name: '重庆', value: randomData() }, + { name: '河北', value: randomData() }, + { name: '河南', value: randomData() }, + { name: '云南', value: randomData() }, + { name: '辽宁', value: randomData() }, + { name: '黑龙江', value: randomData() }, + { name: '湖南', value: randomData() }, + { name: '安徽', value: randomData() }, + { name: '山东', value: randomData() }, + { name: '新疆', value: randomData() }, + { name: '江苏', value: randomData() }, + { name: '浙江', value: randomData() }, + { name: '江西', value: randomData() }, + { name: '湖北', value: randomData() }, + { name: '广西', value: randomData() }, + { name: '甘肃', value: randomData() }, + { name: '山西', value: randomData() }, + { name: '内蒙古', value: randomData() }, + { name: '陕西', value: randomData() }, + { name: '吉林', value: randomData() }, + { name: '福建', value: randomData() }, + { name: '贵州', value: randomData() }, + { name: '广东', value: randomData() }, + { name: '青海', value: randomData() }, + { name: '西藏', value: randomData() }, + { name: '四川', value: randomData() }, + { name: '宁夏', value: randomData() }, + { name: '海南', value: randomData() }, + { name: '台湾', value: randomData() }, + { name: '香港', value: randomData() }, + { name: '澳门', value: randomData() } + ] + } + ] +} + export default { name: '地图', type: 'geo', @@ -127,6 +169,63 @@ export default { mapUrlPrefix: 'https://raw.githubusercontent.com/pissang/starbucks/gh-pages/json/', mapName: 'USA' } + }, + { + title: '飞线地图', + data: geolinesData, + settings: { + mode: 'lines', + visualMapVisible: true, + visualMap: { + inRange: { + color: ['#a6c84c', '#ffa022', '#46bee9'] + } + }, + symbolSize: 10, + lineEffectVisible: false, + lineEffect: { + period: 0, + trailLength: 0, + color: '#fff', + symbolSize: 3 + }, + lineStyle: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2 + }, + overlayEffectVisible: true, + overlayEffect: { + period: 5, + trailLength: 0.7, + symbol: 'arrow', + symbolSize: 6 + }, + effectScatterLabelVisible: true, + effectScatterLabel: { + normal: { position: 'left' } + }, + itemStyle: { + normal: { + areaColor: '#020933', + borderColor: '#3fdaff', + borderWidth: 1, + shadowColor: 'rgba(63, 218, 255, 0.5)', + shadowBlur: 10 + }, + emphasis: { + areaColor: '#2B91B7' + } + }, + labelVisible: true, + label: { + normal: { show: true, color: '#fff' }, emphasis: { show: true } + } + }, + xprops: { + legendVisible: true + } } ] } diff --git a/app/data/geolines.js b/app/data/geolines.js deleted file mode 100644 index fbcf13d..0000000 --- a/app/data/geolines.js +++ /dev/null @@ -1,111 +0,0 @@ -const randomData = () => { - return Math.round(Math.random() * 1000) -} - -// const planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z' - -const baseData = { - measures: [ - { - name: '北京', - data: [ - { name: '上海', value: randomData() }, - { name: '重庆', value: randomData() }, - { name: '河北', value: randomData() }, - { name: '河南', value: randomData() }, - { name: '云南', value: randomData() }, - { name: '辽宁', value: randomData() }, - { name: '黑龙江', value: randomData() }, - { name: '湖南', value: randomData() }, - { name: '安徽', value: randomData() }, - { name: '山东', value: randomData() }, - { name: '新疆', value: randomData() }, - { name: '江苏', value: randomData() }, - { name: '浙江', value: randomData() }, - { name: '江西', value: randomData() }, - { name: '湖北', value: randomData() }, - { name: '广西', value: randomData() }, - { name: '甘肃', value: randomData() }, - { name: '山西', value: randomData() }, - { name: '内蒙古', value: randomData() }, - { name: '陕西', value: randomData() }, - { name: '吉林', value: randomData() }, - { name: '福建', value: randomData() }, - { name: '贵州', value: randomData() }, - { name: '广东', value: randomData() }, - { name: '青海', value: randomData() }, - { name: '西藏', value: randomData() }, - { name: '四川', value: randomData() }, - { name: '宁夏', value: randomData() }, - { name: '海南', value: randomData() }, - { name: '台湾', value: randomData() }, - { name: '香港', value: randomData() }, - { name: '澳门', value: randomData() } - ] - } - ] -} - -export default { - name: '地图', - type: 'geo', - chartData: [ - { - title: '飞线地图', - data: baseData, - settings: { - mode: 'lines', - visualMapVisible: true, - visualMap: { - inRange: { - color: ['#a6c84c', '#ffa022', '#46bee9'] - } - }, - symbolSize: 10, - lineEffectVisible: false, - lineEffect: { - period: 0, - trailLength: 0, - color: '#fff', - symbolSize: 3 - }, - lineStyle: { - color: '#ED3574', - width: 1, - opacity: 0.6, - curveness: 0.2 - }, - overlayEffectVisible: true, - overlayEffect: { - period: 5, - trailLength: 0.7, - symbol: 'arrow', - symbolSize: 6 - }, - effectScatterLabelVisible: true, - effectScatterLabel: { - normal: { position: 'left' } - }, - itemStyle: { - normal: { - areaColor: '#020933', - borderColor: '#3fdaff', - borderWidth: 1, - shadowColor: 'rgba(63, 218, 255, 0.5)', - shadowBlur: 10 - }, - emphasis: { - areaColor: '#2B91B7' - } - }, - labelVisible: true, - label: { - normal: { show: true, color: '#fff' }, emphasis: { show: true } - } - }, - xprops: { - legendVisible: true - } - } - ] -} diff --git a/app/data/index.js b/app/data/index.js index 840d831..44f5846 100644 --- a/app/data/index.js +++ b/app/data/index.js @@ -11,7 +11,6 @@ import treemap from './treemap' import tree from './tree' import wordcloud from './wordcloud' import geo from './geo' -import geolines from './geolines' import liquidfill from './liquidfill' import polar from './polar' import sankey from './sankey' @@ -30,7 +29,6 @@ export default { tree, wordcloud, geo, - geolines, liquidfill, polar, sankey From 0ca8f13b523d8d1e3e78a0504a9847e4e5a31a26 Mon Sep 17 00:00:00 2001 From: liweina Date: Wed, 29 Jul 2020 20:30:12 +0800 Subject: [PATCH 4/9] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E9=A3=9E?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=E9=BB=98=E8=AE=A4=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/geo/chart.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/packages/geo/chart.js b/src/packages/geo/chart.js index 2a8d8d2..ab932e8 100644 --- a/src/packages/geo/chart.js +++ b/src/packages/geo/chart.js @@ -97,9 +97,9 @@ class GeoChart extends BaseChart { zoom = 1, lineEffectVisible = false, lineEffect = {}, - overlayEffectVisible = false, + overlayEffectVisible = true, overlayEffect = {}, - effectScatterLabelVisible, + effectScatterLabelVisible = false, effectScatterLabel = {}, lineStyle = {}, connect @@ -126,6 +126,10 @@ class GeoChart extends BaseChart { zlevel: 1, effect: { show: lineEffectVisible, + period: 5, + trailLength: 0, + color: '#fff', + symbolSize: 3, ...lineEffect }, lineStyle: { @@ -142,6 +146,10 @@ class GeoChart extends BaseChart { zlevel: 2, effect: { show: overlayEffectVisible, + period: 5, + trailLength: 0.4, + symbol: 'arrow', + symbolSize: 6, ...overlayEffect }, lineStyle: { From fc094b2c17ae4b0118aabb13d7b15a9d697e33b9 Mon Sep 17 00:00:00 2001 From: liweina Date: Wed, 29 Jul 2020 20:32:47 +0800 Subject: [PATCH 5/9] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E9=A3=9E?= =?UTF-8?q?=E7=BA=BF=E5=9C=B0=E5=9B=BE=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/geo.js | 66 +++++++++++++------------------------------------ 1 file changed, 17 insertions(+), 49 deletions(-) diff --git a/app/data/geo.js b/app/data/geo.js index 9ec5eeb..8dcefe1 100644 --- a/app/data/geo.js +++ b/app/data/geo.js @@ -76,37 +76,9 @@ const geolinesData = { name: '北京', data: [ { name: '上海', value: randomData() }, - { name: '重庆', value: randomData() }, - { name: '河北', value: randomData() }, - { name: '河南', value: randomData() }, - { name: '云南', value: randomData() }, - { name: '辽宁', value: randomData() }, - { name: '黑龙江', value: randomData() }, - { name: '湖南', value: randomData() }, - { name: '安徽', value: randomData() }, - { name: '山东', value: randomData() }, - { name: '新疆', value: randomData() }, - { name: '江苏', value: randomData() }, - { name: '浙江', value: randomData() }, - { name: '江西', value: randomData() }, - { name: '湖北', value: randomData() }, - { name: '广西', value: randomData() }, - { name: '甘肃', value: randomData() }, - { name: '山西', value: randomData() }, - { name: '内蒙古', value: randomData() }, - { name: '陕西', value: randomData() }, - { name: '吉林', value: randomData() }, - { name: '福建', value: randomData() }, - { name: '贵州', value: randomData() }, - { name: '广东', value: randomData() }, - { name: '青海', value: randomData() }, - { name: '西藏', value: randomData() }, - { name: '四川', value: randomData() }, - { name: '宁夏', value: randomData() }, - { name: '海南', value: randomData() }, - { name: '台湾', value: randomData() }, - { name: '香港', value: randomData() }, - { name: '澳门', value: randomData() } + { name: '齐齐哈尔市', value: randomData() }, + { name: '西宁市', value: randomData() }, + { name: '昆明市', value: randomData() } ] } ] @@ -175,13 +147,12 @@ export default { data: geolinesData, settings: { mode: 'lines', - visualMapVisible: true, - visualMap: { - inRange: { - color: ['#a6c84c', '#ffa022', '#46bee9'] - } + lineStyle: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2 }, - symbolSize: 10, lineEffectVisible: false, lineEffect: { period: 0, @@ -189,16 +160,10 @@ export default { color: '#fff', symbolSize: 3 }, - lineStyle: { - color: '#ED3574', - width: 1, - opacity: 0.6, - curveness: 0.2 - }, overlayEffectVisible: true, overlayEffect: { period: 5, - trailLength: 0.7, + trailLength: 0.4, symbol: 'arrow', symbolSize: 6 }, @@ -206,6 +171,13 @@ export default { effectScatterLabel: { normal: { position: 'left' } }, + visualMapVisible: true, + visualMap: { + inRange: { + color: [ '#C6FFDD', '#FBD786', '#f7797d' ] + } + }, + symbolSize: 10, itemStyle: { normal: { areaColor: '#020933', @@ -217,14 +189,10 @@ export default { emphasis: { areaColor: '#2B91B7' } - }, - labelVisible: true, - label: { - normal: { show: true, color: '#fff' }, emphasis: { show: true } } }, xprops: { - legendVisible: true + legendVisible: false } } ] From 037751599bb1d9e73fa514ab8fd73a8ff9512d56 Mon Sep 17 00:00:00 2001 From: liweina Date: Wed, 29 Jul 2020 20:34:06 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=A3=9E?= =?UTF-8?q?=E7=BA=BF=E5=9C=B0=E5=9B=BE=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/chart-geo.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/docs/chart-geo.md b/docs/chart-geo.md index 875f8c8..32233d0 100644 --- a/docs/chart-geo.md +++ b/docs/chart-geo.md @@ -456,6 +456,88 @@ module.exports = { } +## 地图 + 飞线效果图 + +> 飞线图可以在地图上展现运动轨迹,可以用于展示不同地点之间的关系 + + + + + ## 地图下钻 @@ -735,7 +817,7 @@ module.exports = { | 配置项 | 简介 | 类型 | 用法 | | --- | --- | --- | --- | -| mode | geo地图支持不同的模式 | String | 默认为 `map`,可选 `scatter`、`effectScatter`、`heatmap` | +| mode | geo地图支持不同的模式 | String | 默认为 `map`,可选 `scatter`、`effectScatter`、`heatmap`、`lines`| | mapName | 地图名称 | String | 默认为 `china`,中国地图可选 `china-cities`、`china-contour`、`province/beijing`,可传入自定义地图名称 | | mapUrlPrefix | 地图链接前缀 | String | 默认为 `https://unpkg.com/echarts@4.1.0/map/json/`,可传入自定义地址 | | visualMapVisible | 视觉映射开关 | Boolean | 默认为 `false`,可选 `true` | @@ -746,6 +828,14 @@ module.exports = { | roam | 是否开启鼠标缩放和平移漫游 | [Boolean, String] | 默认为 `false` 可以设置成 `scale` 或者 `move`。设置成 `true` 为都开启 | | zoom | 当前视角的缩放比例 | Number | 默认为 `1` | | symbolSize | 散点图标记的大小 | number, Array, Function | 参见[文档](https://echarts.baidu.com/option.html#series-scatter.symbolSize) | +| lineStyle | 线样式配置 | Object | 参见[文档](https://echarts.apache.org/zh/option.html#series-lines.lineStyle) | +| lineEffectVisible | 线特效开关 | Boolean | 默认为 `false`,可选 `true` | +| lineEffect | 线特效配置 | Object | 参见[文档](https://echarts.apache.org/zh/option.html#series-lines.effect) | +| overlayEffectVisible | overlay 特效开关 | Boolean | 默认为 `true`,可选 `false` | +| overlayEffect | overlay 特效配置 | Object | 参见[文档](https://echarts.apache.org/zh/option.html#series-lines.effect) | +| effectScatterLabelVisible | effectScatter 图形文本标签开关 | Boolean | 默认为 `false`,可选 `true` | +| effectScatterLabel | effectScatter 图形文本标签 | Object | 参见[文档](https://echarts.apache.org/zh/option.html#series-lines.label) | + > Tip1: mode 为非 map 时,使用 `coordinateSystem` 配置地理坐标系为 `geo` 生成地图 From e4f87d453a7d4b052f4ab7afe428aaaa9a14a853 Mon Sep 17 00:00:00 2001 From: liweina Date: Fri, 31 Jul 2020 09:46:09 +0800 Subject: [PATCH 7/9] =?UTF-8?q?refactor:=20=E9=A3=9E=E7=BA=BF=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E6=95=B0=E6=8D=AE=E4=B8=AD=20name=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20cityId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/geo/chart.js | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/packages/geo/chart.js b/src/packages/geo/chart.js index ab932e8..32831a6 100644 --- a/src/packages/geo/chart.js +++ b/src/packages/geo/chart.js @@ -10,6 +10,14 @@ import cityGeo2 from './map-data/cityGeo2.json' import mapCityId from './map-data/mapCityId.json' class GeoChart extends BaseChart { + static convertCityName (name) { + return isNaN(name * 1) ? name : mapCityId[name] + } + + static convertCoord (name) { + return cityGeo[name] || cityGeo2[name] + } + static convertCityData (data, options) { const { index, connect } = options const dataIndex = connect ? connect.dataIndex : -1 @@ -19,9 +27,9 @@ class GeoChart extends BaseChart { const res = [] for (let i = 0; i < data.length; i++) { - const name = isNaN(data[i].name * 1) ? data[i].name : mapCityId[data[i].name] + const name = GeoChart.convertCityName(data[i].name) const value = data[i].value - const geoCoord = cityGeo[name] || cityGeo2[name] + const geoCoord = GeoChart.convertCoord(name) if (geoCoord) { res.push({ @@ -48,15 +56,17 @@ class GeoChart extends BaseChart { static convertLinesData (name, data) { const res = [] - const fromCoord = cityGeo[name] || cityGeo2[name] + name = GeoChart.convertCityName(name) + const fromCoord = GeoChart.convertCoord(name) if (!fromCoord) return [] for (let i = 0, len = data.length; i < len; i++) { const dataItem = data[i] - const toCoord = cityGeo[dataItem.name] || cityGeo2[dataItem.name] + const dataItemName = GeoChart.convertCityName(dataItem.name) + const toCoord = GeoChart.convertCoord(dataItemName) if (toCoord) { res.push({ fromName: name, - toName: dataItem.name, + toName: dataItemName, coords: [fromCoord, toCoord], value: dataItem.value }) @@ -69,11 +79,12 @@ class GeoChart extends BaseChart { const res = [] for (let i = 0, len = data.length; i < len; i++) { const dataItem = data[i] - const toCoord = cityGeo[dataItem.name] || cityGeo2[dataItem.name] - if (toCoord) { + const dataItemName = GeoChart.convertCityName(dataItem.name) + const geoCoord = GeoChart.convertCoord(dataItemName) + if (geoCoord) { res.push({ - name: dataItem.name, - value: toCoord.concat([dataItem.value]) + name: dataItemName, + value: geoCoord.concat([dataItem.value]) }) } } @@ -118,6 +129,7 @@ class GeoChart extends BaseChart { const unShowLabel = { normal: { show: false }, emphasis: { show: false } } if (isLinesMode) { + name = GeoChart.convertCityName(name) seriesData.push( // lines trailLength settings { @@ -211,7 +223,7 @@ class GeoChart extends BaseChart { itemStyle: {}, data: [{ name: name, - value: cityGeo[name] || cityGeo2[name] + value: GeoChart.convertCoord(name) }] } ) From 8ea3ce740f6604f835882f4efbaf748ee3a929d1 Mon Sep 17 00:00:00 2001 From: xiaoluoboding Date: Fri, 31 Jul 2020 10:32:48 +0800 Subject: [PATCH 8/9] chore: update packages --- package.json | 8 ++++---- yarn.lock | 42 +++++++++++++++++++++--------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 98fbf0a..2777222 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ }, "license": "MIT", "dependencies": { - "resize-detector": "^0.2.0" + "resize-detector": "^0.2.2" }, "devDependencies": { "@vue/cli-plugin-babel": "^4.1.0", @@ -44,10 +44,10 @@ "@vue/test-utils": "1.0.0-beta.29", "babel-eslint": "^10.0.3", "core-js": "^3.4.4", - "echarts": "^4.6.0", - "echarts-liquidfill": "^2.0.5", + "echarts": "^4.8.0", + "echarts-liquidfill": "^2.0.6", "echarts-wordcloud": "^1.1.3", - "element-ui": "^2.13.0", + "element-ui": "^2.13.2", "eslint": "^5.16.0", "eslint-plugin-html": "^6.0.0", "eslint-plugin-vue": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index 0d7f83a..1cd400b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3495,22 +3495,22 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -echarts-liquidfill@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/echarts-liquidfill/-/echarts-liquidfill-2.0.5.tgz#0d505a75c2dfb69950e18d440bdf3fe1795a0eed" - integrity sha512-3G19W5ngoh1L3BXYuD34g0Vd30ORWvQtyxRuL+7vmOZ3FkF6xkgD4pfcCL7QVAQOr+XZ4OiD2ot6dNGsRhflcg== +echarts-liquidfill@^2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/echarts-liquidfill/download/echarts-liquidfill-2.0.6.tgz#0668dc61d87a6262003090bd32c55aa8108c252e" + integrity sha1-BmjcYdh6YmIAMJC9MsVaqBCMJS4= echarts-wordcloud@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/echarts-wordcloud/-/echarts-wordcloud-1.1.3.tgz#07b140c8ba76b19c317b43c310f3d5dc99289ff2" integrity sha512-Et8D5xEAoYkidmHun+hEH+2lF9dhCt6D0JJ390vlr2r/1zwhhZAbcL01CEvG93QcMcJpSvSPK8vRiGkTbMHRxg== -echarts@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.6.0.tgz#b5a47a1046cec93ceeef954f9ee54751340558ec" - integrity sha512-xKkcr6v9UVOSF+PMuj7Ngt3bnzLwN1sSXWCvpvX+jYb3mePYsZnABq7wGkPac/m0nV653uGHXoHK8DCKCprdNg== +echarts@^4.8.0: + version "4.8.0" + resolved "https://registry.npm.taobao.org/echarts/download/echarts-4.8.0.tgz#b2c1cfb9229b13d368ee104fc8eea600b574d4c4" + integrity sha1-ssHPuSKbE9No7hBPyO6mALV01MQ= dependencies: - zrender "4.2.0" + zrender "4.3.1" editorconfig@^0.15.3: version "0.15.3" @@ -3537,10 +3537,10 @@ electron-to-chromium@^1.3.322: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== -element-ui@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.13.0.tgz#f6bb04e5b0a76ea5f62466044b774407ba4ebd2d" - integrity sha512-KYsHWsBXYbLELS8cdfvgJTOMSUby3UEjvsPV1V1VmgJ/DdkOAS4z3MiOrPxrT9w2Cc5lZ4eVSQiGhYFR5NVChw== +element-ui@^2.13.2: + version "2.13.2" + resolved "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.2.tgz#582bf47aaaaaafe23ea1958fae217a687ad06447" + integrity sha1-WCv0eqqqr+I+oZWPriF6aHrQZEc= dependencies: async-validator "~1.8.1" babel-helper-vue-jsx-merge-props "^2.0.0" @@ -8191,10 +8191,10 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resize-detector@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/resize-detector/-/resize-detector-0.2.0.tgz#c4e7cd1426cfc173fba3986c985743c9b2b1f000" - integrity sha512-k86ex17guuqLBwTuk2gia+i4z1hEci3Wc+yHmrEp3+blUkgtegqhbuV8FH5ufvBtVqoyt/T+AcbJAnxJXd8CYg== +resize-detector@^0.2.2: + version "0.2.2" + resolved "https://registry.npm.taobao.org/resize-detector/download/resize-detector-0.2.2.tgz#b207e72912bef0bda9fb825fe894ed9686ca965e" + integrity sha1-sgfnKRK+8L2p+4Jf6JTtlobKll4= resize-observer-polyfill@^1.5.0: version "1.5.1" @@ -10082,7 +10082,7 @@ yorkie@^2.0.0: normalize-path "^1.0.0" strip-indent "^2.0.0" -zrender@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/zrender/-/zrender-4.2.0.tgz#d001302e155f28de1f9fc7fcd5c254bad28471cf" - integrity sha512-YJ9hxt5uFincYYU3KK31+Ce+B6PJmYYK0Q9fQ6jOUAoC/VHbe4kCKAPkxKeT7jGTxrK5wYu18R0TLGqj2zbEOA== +zrender@4.3.1: + version "4.3.1" + resolved "https://registry.npm.taobao.org/zrender/download/zrender-4.3.1.tgz#baf8aa6dc8187a2f819692d7d5f9bedfa2b90fa3" + integrity sha1-uviqbcgYei+BlpLX1fm+36K5D6M= From ef3d395889814aad311120114f6caa25336d759b Mon Sep 17 00:00:00 2001 From: xiaoluoboding Date: Fri, 31 Jul 2020 10:34:56 +0800 Subject: [PATCH 9/9] chore: release v0.9.0 --- app/views/TestEvent.vue | 4 +- docs/change-log.md | 5 + docs/chart-geo.md | 4 +- lib/ve-charts.common.js | 240 +++++++++++++++++++++++++++++++++------ lib/ve-charts.umd.js | 240 +++++++++++++++++++++++++++++++++------ lib/ve-charts.umd.min.js | 4 +- package.json | 2 +- 7 files changed, 420 insertions(+), 79 deletions(-) diff --git a/app/views/TestEvent.vue b/app/views/TestEvent.vue index ec4b41e..bb5e91d 100644 --- a/app/views/TestEvent.vue +++ b/app/views/TestEvent.vue @@ -91,7 +91,7 @@ export default { mapName: 'china', visualMapVisible: true, visualMap: { - inRange: { color: ['#ee0979', '#ff6a00'] }, + inRange: { color: ['#4af', '#1ea'] }, textStyle: { color: '#fff' } @@ -112,7 +112,7 @@ export default { label: { normal: { show: true, - color: '#00ff00', + color: '#1af', fontSize: 13 }, emphasis: { diff --git a/docs/change-log.md b/docs/change-log.md index d2e029a..a1332b9 100644 --- a/docs/change-log.md +++ b/docs/change-log.md @@ -1,5 +1,10 @@ # 更新日志 +## v0.9.0 + +* **新增** - [飞线地图](https://vueblocks.github.io/ve-charts/#/chart-geo?id=地图-飞线效果图) +* **更新** - `resize-detector` 升级至 v0.2.2 + ## v0.8.8 * **优化** - 柱状图增加新增X轴和Y轴反向属性设置 diff --git a/docs/chart-geo.md b/docs/chart-geo.md index 32233d0..a7004a3 100644 --- a/docs/chart-geo.md +++ b/docs/chart-geo.md @@ -655,7 +655,7 @@ module.exports = { mapName: 'china', visualMapVisible: true, visualMap: { - inRange: { color: ['#ee0979', '#ff6a00'] }, + inRange: { color: ['#4af', '#1ea'] }, textStyle: { color: '#fff' } @@ -676,7 +676,7 @@ module.exports = { label: { normal: { show: true, - color: '#00ff00', + color: '#1af', fontSize: 13 }, emphasis: { diff --git a/lib/ve-charts.common.js b/lib/ve-charts.common.js index d381cb7..69e46a5 100644 --- a/lib/ve-charts.common.js +++ b/lib/ve-charts.common.js @@ -1919,7 +1919,7 @@ if (typeof window !== 'undefined') { var external_echarts_ = __webpack_require__("1104"); var external_echarts_default = /*#__PURE__*/__webpack_require__.n(external_echarts_); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HocEcharts.vue?vue&type=template&id=1a0a63b4& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HocEcharts.vue?vue&type=template&id=1a0a63b4& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-parent",style:(_vm.parentStyle)},[(_vm.isHasData)?_c('base-echarts',_vm._g({attrs:{"init-options":_vm.initOptions,"options":_vm.options,"autoResize":true,"theme":_vm.theme,"chart-height":_vm.height,"ec":_vm.ec},on:{"update:ec":function($event){_vm.ec=$event}}},_vm.$listeners)):_vm._e(),(!_vm.isHasData && !_vm.loading)?_vm._t("default",[_c('empty-data',{attrs:{"empty-text":_vm.emptyText}})]):_vm._e(),(_vm.loading)?_c('loading-chart'):_vm._e()],2)} var staticRenderFns = [] @@ -6117,7 +6117,7 @@ const MAP_URL_PREFIX = 'https://unpkg.com/echarts@4.1.0/map/json/' MAP_URL_PREFIX }); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEcharts.vue?vue&type=template&id=2f0af4e5& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEcharts.vue?vue&type=template&id=2f0af4e5& var BaseEchartsvue_type_template_id_2f0af4e5_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"echarts",style:(_vm.echartsStyle)})} var BaseEchartsvue_type_template_id_2f0af4e5_staticRenderFns = [] @@ -6431,7 +6431,7 @@ function getRenderInfo (elem) { } } -var css = ".resize-triggers{visibility:hidden;opacity:0}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\"\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}"; +var css = ".resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\"\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}"; let total = 0; let style = null; @@ -6578,7 +6578,7 @@ function runCallbacks (elem) { return } elem.__resize_listeners__.forEach(callback => { - callback.call(elem); + callback.call(elem, elem); }); } @@ -7029,7 +7029,7 @@ var component = normalizeComponent( ) /* harmony default export */ var BaseEcharts = (component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyData.vue?vue&type=template&id=c31aa314& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyData.vue?vue&type=template&id=c31aa314& var EmptyDatavue_type_template_id_c31aa314_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-empty-data"},[_c('span',{domProps:{"textContent":_vm._s(_vm.emptyText)}})])} var EmptyDatavue_type_template_id_c31aa314_staticRenderFns = [] @@ -7080,7 +7080,7 @@ var EmptyData_component = normalizeComponent( ) /* harmony default export */ var EmptyData = (EmptyData_component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingChart.vue?vue&type=template&id=e9ed1440& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingChart.vue?vue&type=template&id=e9ed1440& var LoadingChartvue_type_template_id_e9ed1440_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-loading-mask"},[_c('div',{staticClass:"loading-spinner"},[_c('svg',{staticClass:"circular",attrs:{"viewBox":"25 25 50 50"}},[_c('circle',{staticClass:"path",attrs:{"cx":"50","cy":"50","r":"20","fill":"none"}})])])])} var LoadingChartvue_type_template_id_e9ed1440_staticRenderFns = [] @@ -8268,6 +8268,14 @@ var mapCityId = __webpack_require__("2814"); class chart_GeoChart extends src_BaseChart { + static convertCityName (name) { + return isNaN(name * 1) ? name : mapCityId[name] + } + + static convertCoord (name) { + return cityGeo[name] || cityGeo2[name] + } + static convertCityData (data, options) { const { index, connect } = options const dataIndex = connect ? connect.dataIndex : -1 @@ -8277,9 +8285,9 @@ class chart_GeoChart extends src_BaseChart { const res = [] for (let i = 0; i < data.length; i++) { - const name = isNaN(data[i].name * 1) ? data[i].name : mapCityId[data[i].name] + const name = chart_GeoChart.convertCityName(data[i].name) const value = data[i].value - const geoCoord = cityGeo[name] || cityGeo2[name] + const geoCoord = chart_GeoChart.convertCoord(name) if (geoCoord) { res.push({ @@ -8304,6 +8312,43 @@ class chart_GeoChart extends src_BaseChart { return res } + static convertLinesData (name, data) { + const res = [] + name = chart_GeoChart.convertCityName(name) + const fromCoord = chart_GeoChart.convertCoord(name) + if (!fromCoord) return [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const dataItemName = chart_GeoChart.convertCityName(dataItem.name) + const toCoord = chart_GeoChart.convertCoord(dataItemName) + if (toCoord) { + res.push({ + fromName: name, + toName: dataItemName, + coords: [fromCoord, toCoord], + value: dataItem.value + }) + } + } + return res + } + + static convertEffectScatterData (data) { + const res = [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const dataItemName = chart_GeoChart.convertCityName(dataItem.name) + const geoCoord = chart_GeoChart.convertCoord(dataItemName) + if (geoCoord) { + res.push({ + name: dataItemName, + value: geoCoord.concat([dataItem.value]) + }) + } + } + return res + } + static getGeoData (args) { const { data, settings } = args const { measures } = data @@ -8312,14 +8357,23 @@ class chart_GeoChart extends src_BaseChart { mapName = 'china', labelVisible, isMapMode, + isLinesMode, itemStyle, visualMap, label, symbolSize = 10, roam = false, zoom = 1, + lineEffectVisible = false, + lineEffect = {}, + overlayEffectVisible = true, + overlayEffect = {}, + effectScatterLabelVisible = false, + effectScatterLabel = {}, + lineStyle = {}, connect } = settings + const [legendData, seriesData] = [[], []] // computed max value @@ -8329,38 +8383,138 @@ class chart_GeoChart extends src_BaseChart { }).reduce((a, b) => a + b) measures && measures.forEach(({ name, data }, index) => { - const mapData = isMapMode ? data : chart_GeoChart.convertCityData(data, { index, connect }) + const mapData = isMapMode ? data : isLinesMode ? chart_GeoChart.convertLinesData(name, data) : chart_GeoChart.convertCityData(data, { index, connect }) const unShowLabel = { normal: { show: false }, emphasis: { show: false } } - - seriesData[index] = { - name, - type: mode, - roam, - visualMap, - label: labelVisible ? label : unShowLabel, - selectedMode: 'single', - mapType: mapName, - data: mapData, - zoom - } - - if (itemStyle) { - seriesData[index].itemStyle = itemStyle - } - - if (!isMapMode) { - seriesData[index] = { ...seriesData[index], - ...{ + if (isLinesMode) { + name = chart_GeoChart.convertCityName(name) + seriesData.push( + // lines trailLength settings + { + name: name, + type: 'lines', + zlevel: 1, + effect: { + show: lineEffectVisible, + period: 5, + trailLength: 0, + color: '#fff', + symbolSize: 3, + ...lineEffect + }, + lineStyle: { + normal: { + width: 0 + } + }, + data: mapData + }, + // overlay and lines settings + { + name: name, + type: 'lines', + zlevel: 2, + effect: { + show: overlayEffectVisible, + period: 5, + trailLength: 0.4, + symbol: 'arrow', + symbolSize: 6, + ...overlayEffect + }, + lineStyle: { + normal: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2, + ...lineStyle + } + }, + data: mapData + }, + // target nodes settings + { + name: name, + type: 'effectScatter', + coordinateSystem: 'geo', + zlevel: 2, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: chart_GeoChart.convertEffectScatterData(data) + }, + // source nodes settings + { + name: name, + type: 'effectScatter', coordinateSystem: 'geo', - label: unShowLabel, - symbolSize, + zlevel: 3, showEffectOn: 'render', rippleEffect: { brushType: 'stroke' }, - itemStyle: {} - } } + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: [{ + name: name, + value: chart_GeoChart.convertCoord(name) + }] + } + ) + } else { + seriesData[index] = { + name, + type: mode, + roam, + visualMap, + label: labelVisible ? label : unShowLabel, + selectedMode: 'single', + mapType: mapName, + data: mapData, + zoom + } + + if (itemStyle) { + seriesData[index].itemStyle = itemStyle + } + + if (!isMapMode) { + seriesData[index] = { ...seriesData[index], + ...{ + coordinateSystem: 'geo', + label: unShowLabel, + symbolSize, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + itemStyle: {} + } } + } } legendData.push(name) @@ -8373,12 +8527,24 @@ class chart_GeoChart extends src_BaseChart { } } - static getGeoTooltip (isMapMode) { + static getGeoTooltip (isMapMode, isLinesMode) { const formatter = function (params) { - const { seriesName, name, value, marker } = params + const { seriesName, name, value, marker, seriesType, data } = params const seriesValue = Array.isArray(value) ? value[2] : value + + if (isLinesMode) { + const { fromName, toName, name } = data + if (seriesType === 'effectScatter') { + return `线路:${name} ${seriesValue || ''}` + } else if (seriesType === 'lines') { + return `${fromName} -> ${toName}
${seriesValue}` + } else { + return `${toName}` + } + } return `${seriesName}
${marker}${name}: ${seriesValue}` } + return isMapMode ? { trigger: 'item' } : { trigger: 'item', formatter } @@ -8463,11 +8629,13 @@ class chart_GeoChart extends src_BaseChart { } = settings const isMapMode = mode === 'map' + const isLinesMode = mode === 'lines' settings.isMapMode = isMapMode + settings.isLinesMode = isLinesMode const { legendData, seriesData, max } = chart_GeoChart.getGeoData({ data, settings }) - const tooltip = tooltipVisible && chart_GeoChart.getGeoTooltip(isMapMode) + const tooltip = tooltipVisible && chart_GeoChart.getGeoTooltip(isMapMode, isLinesMode) const legend = legendVisible && chart_GeoChart.getGeoLegend({ legendData, settings }) diff --git a/lib/ve-charts.umd.js b/lib/ve-charts.umd.js index dced0bd..6d07285 100644 --- a/lib/ve-charts.umd.js +++ b/lib/ve-charts.umd.js @@ -1928,7 +1928,7 @@ if (typeof window !== 'undefined') { var external_echarts_ = __webpack_require__("1104"); var external_echarts_default = /*#__PURE__*/__webpack_require__.n(external_echarts_); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HocEcharts.vue?vue&type=template&id=1a0a63b4& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HocEcharts.vue?vue&type=template&id=1a0a63b4& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-parent",style:(_vm.parentStyle)},[(_vm.isHasData)?_c('base-echarts',_vm._g({attrs:{"init-options":_vm.initOptions,"options":_vm.options,"autoResize":true,"theme":_vm.theme,"chart-height":_vm.height,"ec":_vm.ec},on:{"update:ec":function($event){_vm.ec=$event}}},_vm.$listeners)):_vm._e(),(!_vm.isHasData && !_vm.loading)?_vm._t("default",[_c('empty-data',{attrs:{"empty-text":_vm.emptyText}})]):_vm._e(),(_vm.loading)?_c('loading-chart'):_vm._e()],2)} var staticRenderFns = [] @@ -6126,7 +6126,7 @@ const MAP_URL_PREFIX = 'https://unpkg.com/echarts@4.1.0/map/json/' MAP_URL_PREFIX }); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEcharts.vue?vue&type=template&id=2f0af4e5& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/BaseEcharts.vue?vue&type=template&id=2f0af4e5& var BaseEchartsvue_type_template_id_2f0af4e5_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"echarts",style:(_vm.echartsStyle)})} var BaseEchartsvue_type_template_id_2f0af4e5_staticRenderFns = [] @@ -6440,7 +6440,7 @@ function getRenderInfo (elem) { } } -var css = ".resize-triggers{visibility:hidden;opacity:0}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\"\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}"; +var css = ".resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\"\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}"; let total = 0; let style = null; @@ -6587,7 +6587,7 @@ function runCallbacks (elem) { return } elem.__resize_listeners__.forEach(callback => { - callback.call(elem); + callback.call(elem, elem); }); } @@ -7038,7 +7038,7 @@ var component = normalizeComponent( ) /* harmony default export */ var BaseEcharts = (component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyData.vue?vue&type=template&id=c31aa314& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyData.vue?vue&type=template&id=c31aa314& var EmptyDatavue_type_template_id_c31aa314_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-empty-data"},[_c('span',{domProps:{"textContent":_vm._s(_vm.emptyText)}})])} var EmptyDatavue_type_template_id_c31aa314_staticRenderFns = [] @@ -7089,7 +7089,7 @@ var EmptyData_component = normalizeComponent( ) /* harmony default export */ var EmptyData = (EmptyData_component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"456fbc2d-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingChart.vue?vue&type=template&id=e9ed1440& +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"55d6b793-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/LoadingChart.vue?vue&type=template&id=e9ed1440& var LoadingChartvue_type_template_id_e9ed1440_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"ve-charts-loading-mask"},[_c('div',{staticClass:"loading-spinner"},[_c('svg',{staticClass:"circular",attrs:{"viewBox":"25 25 50 50"}},[_c('circle',{staticClass:"path",attrs:{"cx":"50","cy":"50","r":"20","fill":"none"}})])])])} var LoadingChartvue_type_template_id_e9ed1440_staticRenderFns = [] @@ -8277,6 +8277,14 @@ var mapCityId = __webpack_require__("2814"); class chart_GeoChart extends src_BaseChart { + static convertCityName (name) { + return isNaN(name * 1) ? name : mapCityId[name] + } + + static convertCoord (name) { + return cityGeo[name] || cityGeo2[name] + } + static convertCityData (data, options) { const { index, connect } = options const dataIndex = connect ? connect.dataIndex : -1 @@ -8286,9 +8294,9 @@ class chart_GeoChart extends src_BaseChart { const res = [] for (let i = 0; i < data.length; i++) { - const name = isNaN(data[i].name * 1) ? data[i].name : mapCityId[data[i].name] + const name = chart_GeoChart.convertCityName(data[i].name) const value = data[i].value - const geoCoord = cityGeo[name] || cityGeo2[name] + const geoCoord = chart_GeoChart.convertCoord(name) if (geoCoord) { res.push({ @@ -8313,6 +8321,43 @@ class chart_GeoChart extends src_BaseChart { return res } + static convertLinesData (name, data) { + const res = [] + name = chart_GeoChart.convertCityName(name) + const fromCoord = chart_GeoChart.convertCoord(name) + if (!fromCoord) return [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const dataItemName = chart_GeoChart.convertCityName(dataItem.name) + const toCoord = chart_GeoChart.convertCoord(dataItemName) + if (toCoord) { + res.push({ + fromName: name, + toName: dataItemName, + coords: [fromCoord, toCoord], + value: dataItem.value + }) + } + } + return res + } + + static convertEffectScatterData (data) { + const res = [] + for (let i = 0, len = data.length; i < len; i++) { + const dataItem = data[i] + const dataItemName = chart_GeoChart.convertCityName(dataItem.name) + const geoCoord = chart_GeoChart.convertCoord(dataItemName) + if (geoCoord) { + res.push({ + name: dataItemName, + value: geoCoord.concat([dataItem.value]) + }) + } + } + return res + } + static getGeoData (args) { const { data, settings } = args const { measures } = data @@ -8321,14 +8366,23 @@ class chart_GeoChart extends src_BaseChart { mapName = 'china', labelVisible, isMapMode, + isLinesMode, itemStyle, visualMap, label, symbolSize = 10, roam = false, zoom = 1, + lineEffectVisible = false, + lineEffect = {}, + overlayEffectVisible = true, + overlayEffect = {}, + effectScatterLabelVisible = false, + effectScatterLabel = {}, + lineStyle = {}, connect } = settings + const [legendData, seriesData] = [[], []] // computed max value @@ -8338,38 +8392,138 @@ class chart_GeoChart extends src_BaseChart { }).reduce((a, b) => a + b) measures && measures.forEach(({ name, data }, index) => { - const mapData = isMapMode ? data : chart_GeoChart.convertCityData(data, { index, connect }) + const mapData = isMapMode ? data : isLinesMode ? chart_GeoChart.convertLinesData(name, data) : chart_GeoChart.convertCityData(data, { index, connect }) const unShowLabel = { normal: { show: false }, emphasis: { show: false } } - - seriesData[index] = { - name, - type: mode, - roam, - visualMap, - label: labelVisible ? label : unShowLabel, - selectedMode: 'single', - mapType: mapName, - data: mapData, - zoom - } - - if (itemStyle) { - seriesData[index].itemStyle = itemStyle - } - - if (!isMapMode) { - seriesData[index] = { ...seriesData[index], - ...{ + if (isLinesMode) { + name = chart_GeoChart.convertCityName(name) + seriesData.push( + // lines trailLength settings + { + name: name, + type: 'lines', + zlevel: 1, + effect: { + show: lineEffectVisible, + period: 5, + trailLength: 0, + color: '#fff', + symbolSize: 3, + ...lineEffect + }, + lineStyle: { + normal: { + width: 0 + } + }, + data: mapData + }, + // overlay and lines settings + { + name: name, + type: 'lines', + zlevel: 2, + effect: { + show: overlayEffectVisible, + period: 5, + trailLength: 0.4, + symbol: 'arrow', + symbolSize: 6, + ...overlayEffect + }, + lineStyle: { + normal: { + color: '#ED3574', + width: 1, + opacity: 0.6, + curveness: 0.2, + ...lineStyle + } + }, + data: mapData + }, + // target nodes settings + { + name: name, + type: 'effectScatter', + coordinateSystem: 'geo', + zlevel: 2, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: chart_GeoChart.convertEffectScatterData(data) + }, + // source nodes settings + { + name: name, + type: 'effectScatter', coordinateSystem: 'geo', - label: unShowLabel, - symbolSize, + zlevel: 3, showEffectOn: 'render', rippleEffect: { brushType: 'stroke' }, - itemStyle: {} - } } + label: effectScatterLabelVisible ? { + normal: { + show: true, + formatter: '{b}', + ...effectScatterLabel.normal + }, + emphasis: { + ...effectScatterLabel.emphasis + } + } : unShowLabel, + symbolSize: symbolSize, + itemStyle: {}, + data: [{ + name: name, + value: chart_GeoChart.convertCoord(name) + }] + } + ) + } else { + seriesData[index] = { + name, + type: mode, + roam, + visualMap, + label: labelVisible ? label : unShowLabel, + selectedMode: 'single', + mapType: mapName, + data: mapData, + zoom + } + + if (itemStyle) { + seriesData[index].itemStyle = itemStyle + } + + if (!isMapMode) { + seriesData[index] = { ...seriesData[index], + ...{ + coordinateSystem: 'geo', + label: unShowLabel, + symbolSize, + showEffectOn: 'render', + rippleEffect: { + brushType: 'stroke' + }, + itemStyle: {} + } } + } } legendData.push(name) @@ -8382,12 +8536,24 @@ class chart_GeoChart extends src_BaseChart { } } - static getGeoTooltip (isMapMode) { + static getGeoTooltip (isMapMode, isLinesMode) { const formatter = function (params) { - const { seriesName, name, value, marker } = params + const { seriesName, name, value, marker, seriesType, data } = params const seriesValue = Array.isArray(value) ? value[2] : value + + if (isLinesMode) { + const { fromName, toName, name } = data + if (seriesType === 'effectScatter') { + return `线路:${name} ${seriesValue || ''}` + } else if (seriesType === 'lines') { + return `${fromName} -> ${toName}
${seriesValue}` + } else { + return `${toName}` + } + } return `${seriesName}
${marker}${name}: ${seriesValue}` } + return isMapMode ? { trigger: 'item' } : { trigger: 'item', formatter } @@ -8472,11 +8638,13 @@ class chart_GeoChart extends src_BaseChart { } = settings const isMapMode = mode === 'map' + const isLinesMode = mode === 'lines' settings.isMapMode = isMapMode + settings.isLinesMode = isLinesMode const { legendData, seriesData, max } = chart_GeoChart.getGeoData({ data, settings }) - const tooltip = tooltipVisible && chart_GeoChart.getGeoTooltip(isMapMode) + const tooltip = tooltipVisible && chart_GeoChart.getGeoTooltip(isMapMode, isLinesMode) const legend = legendVisible && chart_GeoChart.getGeoLegend({ legendData, settings }) diff --git a/lib/ve-charts.umd.min.js b/lib/ve-charts.umd.min.js index 643fafc..0ea79b6 100644 --- a/lib/ve-charts.umd.min.js +++ b/lib/ve-charts.umd.min.js @@ -1,8 +1,8 @@ -(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("zrender"),require("echarts"),require("vue")):"function"===typeof define&&define.amd?define(["zrender","echarts","vue"],t):"object"===typeof exports?exports["VeCharts"]=t(require("zrender"),require("echarts"),require("vue")):e["VeCharts"]=t(e["zrender"],e["echarts"],e["vue"])})("undefined"!==typeof self?self:this,(function(e,t,r){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="fb15")}({"068a":function(e,t,r){var n=r("24fb");t=n(!1),t.push([e.i,".ve-charts-empty-data{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}",""]),e.exports=t},"0e45":function(e){e.exports=JSON.parse('{"北京市":[116.46,39.92],"天津市":[117.2,39.13],"上海市":[121.48,31.22],"重庆市":[106.54,29.59],"七台河市":[130.95,45.78],"万宁市":[110.4,18.8],"万州区":[108.4,30.82],"三亚市":[109.5,18.25],"三明市":[117.62,26.27],"三沙市":[112.2,16.5],"三门峡市":[111.2,34.78],"上饶市":[117.97,28.45],"东丽区":[117.3,39.08],"东城区":[116.42,39.93],"东方市":[108.63,19.1],"东莞市":[113.75,23.05],"东营市":[118.67,37.43],"中卫市":[105.18,37.52],"中山市":[113.38,22.52],"丰台区":[116.28,39.85],"丰都县":[107.73,29.87],"临夏州":[103.22,35.6],"临汾市":[111.52,36.08],"临沂市":[118.35,35.05],"临沧市":[100.08,23.88],"临高县":[109.68,19.92],"丹东市":[124.38,40.13],"丽水市":[119.92,28.45],"丽江市":[100.23,26.88],"乌兰察布市":[113.12,40.98],"乌海市":[106.82,39.67],"乌鲁木齐市":[87.62,43.82],"乐东县":[109.17,18.75],"乐山市":[103.77,29.57],"九江市":[116,29.7],"九龙坡区":[106.5,29.5],"云浮市":[112.03,22.92],"云阳县":[108.67,30.95],"五家渠市":[87.53,44.17],"五指山市":[109.52,18.78],"亳州市":[115.78,33.85],"仙桃市":[113.45,30.37],"伊春市":[128.9,47.73],"伊犁州":[81.32,43.92],"佛山市":[113.12,23.02],"佳木斯市":[130.37,46.82],"保亭县":[109.7,18.63],"保定市":[115.47,38.87],"保山市":[99.17,25.12],"信阳市":[114.07,32.13],"儋州市":[109.57,19.52],"克拉玛依市":[84.87,45.6],"六安市":[116.5,31.77],"六盘水市":[104.83,26.6],"兰州市":[103.82,36.07],"兴安盟":[122.05,46.08],"内江市":[105.05,29.58],"凉山州":[102.27,27.9],"包头市":[109.83,40.65],"北海市":[109.12,21.48],"北碚区":[106.4,29.8],"北辰区":[117.13,39.22],"十堰市":[110.78,32.65],"南京市":[118.78,32.07],"南充市":[106.08,30.78],"南宁市":[109.29,22.8],"南岸区":[106.57,29.52],"南川区":[107.17,29.14],"南平市":[118.17,26.65],"南开区":[117.15,39.13],"南昌市":[115.85,28.68],"南通市":[120.88,31.98],"南阳市":[112.52,33],"博尔塔拉州":[82.07,44.9],"厦门市":[118.08,24.48],"双鸭山市":[131.15,46.63],"台州市":[121.43,28.68],"合川区":[106.3,30.11],"合肥市":[117.25,31.83],"吉安市":[114.98,27.12],"吉林市":[126.55,43.83],"吐鲁番地区":[89.17,42.95],"吕梁市":[111.13,37.52],"吴忠市":[106.2,37.98],"周口市":[114.65,33.62],"呼伦贝尔市":[119.77,49.22],"呼和浩特市":[111.73,40.83],"和平区":[117.2,39.12],"和田地区":[79.92,37.12],"咸宁市":[114.32,29.85],"咸阳市":[108.7,34.33],"哈密地区":[93.52,42.83],"哈尔滨市":[126.53,45.8],"唐山市":[118.2,39.63],"商丘市":[115.65,34.45],"商洛市":[109.93,33.87],"喀什地区":[75.98,39.47],"嘉兴市":[120.75,30.75],"嘉定区":[121.27,31.38],"嘉峪关市":[98.27,39.8],"四平市":[124.35,43.17],"固原市":[106.28,36],"图木舒克市":[79.13,39.85],"垫江县":[107.35,30.33],"城口县":[108.67,31.95],"塔城地区":[82.98,46.75],"塘沽区":[117.65,39.02],"大兴区":[116.33,39.73],"大兴安岭地区":[124.12,50.42],"大同市":[113.3,40.08],"大庆市":[125.03,46.58],"大渡口区":[106.48,29.48],"大港区":[117.45,38.83],"大理州":[100.23,25.6],"大足区":[105.72,29.7],"大连市":[121.62,38.92],"天水市":[105.72,34.58],"天门市":[113.17,30.67],"太原市":[112.55,37.87],"奉节县":[109.47,31.02],"奉贤区":[121.47,30.92],"威海市":[122.12,37.52],"娄底市":[112,27.73],"孝感市":[113.92,30.93],"宁德市":[119.52,26.67],"宁河县":[117.82,39.33],"宁波市":[121.55,29.88],"安庆市":[117.05,30.53],"安康市":[109.02,32.68],"安阳市":[114.38,36.1],"安顺市":[105.95,26.25],"定安县":[110.32,19.7],"定西市":[104.62,35.58],"宜宾市":[104.62,28.77],"宜昌市":[111.28,30.7],"宜春市":[114.38,27.8],"宝坻区":[117.3,39.72],"宝山区":[131.4,46.57],"宝鸡市":[107.13,34.37],"宣城市":[118.75,30.95],"宣武区":[116.35,39.87],"宿州市":[116.98,33.63],"宿迁市":[118.28,33.97],"密云区":[116.83,40.37],"屯昌县":[110.1,19.37],"山南地区":[91.77,29.23],"岳阳市":[113.12,29.37],"崇左市":[107.37,22.4],"崇文区":[116.43,39.88],"崇明县":[121.53,31.63],"巫山县":[109.88,31.08],"巫溪县":[109.63,31.4],"巴中市":[106.77,31.85],"巴南区":[106.52,29.38],"巴彦淖尔市":[107.42,40.75],"巴音郭楞州":[86.15,41.77],"常州市":[119.95,31.78],"常德市":[111.68,29.05],"平凉市":[106.67,35.55],"平谷区":[117.12,40.13],"平顶山市":[113.18,33.77],"广元市":[105.83,32.43],"广安市":[106.63,30.47],"广州市":[113.27,23.13],"庆阳市":[107.63,35.73],"廊坊市":[116.7,39.52],"延安市":[109.48,36.6],"延庆县":[115.97,40.45],"延边州":[129.5,42.88],"开县":[108.42,31.18],"开封市":[114.3,34.8],"张家口市":[114.88,40.82],"张家界市":[110.47,29.13],"张掖市":[100.45,38.93],"彭水县":[108.17,29.3],"徐州市":[117.18,34.27],"徐汇区":[121.43,31.18],"德宏州":[98.58,24.43],"德州市":[116.3,37.45],"德阳市":[104.38,31.13],"忠县":[108.02,30.3],"忻州市":[112.73,38.42],"怀化市":[110,27.57],"怀柔区":[116.63,40.32],"怒江州":[98.85,25.85],"恩施州":[109.5,30.3],"惠州市":[114.42,23.12],"成都市":[104.07,30.67],"房山区":[116.13,39.75],"扬州市":[119.4,32.4],"承德市":[117.93,40.97],"抚州市":[116.35,28],"抚顺市":[123.98,41.88],"拉萨市":[91.13,29.65],"揭阳市":[116.37,23.55],"攀枝花市":[101.72,26.58],"文山州":[104.25,23.37],"文昌市":[110.8,19.55],"新乡市":[113.9,35.3],"新余市":[114.92,27.82],"无锡市":[120.3,31.57],"日喀则地区":[88.88,29.27],"日照市":[119.52,35.42],"昆明市":[102.72,25.05],"昌吉州":[87.3,44.02],"昌平区":[116.23,40.22],"昌江县":[109.05,19.25],"昌都地区":[97.18,31.13],"昭通市":[103.72,27.33],"晋中市":[112.75,37.68],"晋城市":[112.83,35.5],"普洱市":[100.98,22.78],"普陀区":[121.4,31.25],"景德镇市":[117.17,29.27],"曲靖市":[103.8,25.5],"朔州市":[112.43,39.33],"朝阳区":[116.43,39.92],"朝阳市":[120.45,41.57],"本溪市":[123.77,41.3],"来宾市":[109.23,23.73],"杨浦区":[121.52,31.27],"杭州市":[120.15,30.28],"松原市":[124.82,45.13],"松江区":[121.22,31.03],"林芝地区":[94.37,29.68],"果洛州":[100.23,34.48],"枣庄市":[117.32,34.82],"柳州市":[109.42,24.32],"株洲市":[113.13,27.83],"桂林市":[110.28,25.28],"梁平县":[107.8,30.68],"梅州市":[116.12,24.28],"梧州市":[111.27,23.48],"楚雄州":[101.55,25.03],"榆林市":[109.73,38.28],"武威市":[102.63,37.93],"武汉市":[114.3,30.6],"武清区":[117.03,39.38],"武隆县":[107.75,29.33],"毕节市":[105.28,27.3],"永川区":[105.87,29.29],"永州市":[111.62,26.43],"汉中市":[107.02,33.07],"汉沽区":[117.8,39.25],"汕头市":[116.68,23.35],"汕尾市":[115.37,22.78],"江北区":[121.55,29.88],"江津区":[106.3,29.03],"江门市":[113.08,22.58],"池州市":[117.48,30.67],"沈阳市":[123.43,41.8],"沙坪坝区":[106.45,29.53],"沧州市":[116.83,38.3],"河东区":[117.22,39.12],"河北区":[117.18,39.15],"河池市":[108.07,24.7],"河源市":[114.7,23.73],"河西区":[117.22,39.12],"泉州市":[118.67,24.88],"泰安市":[117.08,36.2],"泰州市":[119.92,32.45],"泸州市":[105.43,28.87],"洛阳市":[112.45,34.62],"津南区":[117.38,38.98],"济南市":[116.98,36.67],"济宁市":[116.58,35.42],"济源市":[112.58,35.07],"浦东新区":[121.53,31.22],"海东地区":[102.12,36.5],"海北州":[100.9,36.97],"海南州":[100.62,36.28],"海口市":[110.32,20.03],"海淀区":[116.3,39.95],"海西州":[97.37,37.37],"涪陵区":[107.4,29.72],"淄博市":[118.05,36.82],"淮北市":[116.8,33.95],"淮南市":[117,32.63],"淮安市":[119.02,33.62],"深圳市":[114.05,22.55],"清远市":[113.03,23.7],"渝中区":[106.57,29.55],"渝北区":[106.63,29.72],"温州市":[120.7,28],"渭南市":[109.5,34.5],"湖州市":[120.08,30.9],"湘潭市":[112.93,27.83],"湘西州":[109.74,28.31],"湛江市":[110.35,21.27],"滁州市":[118.32,32.3],"滨州市":[117.97,37.38],"漯河市":[114.02,33.58],"漳州市":[117.65,24.52],"潍坊市":[119.15,36.7],"潜江市":[112.88,30.42],"潮州市":[116.62,23.67],"潼南县":[105.83,30.18],"澄迈县":[110,19.73],"濮阳市":[115.03,35.77],"烟台市":[121.43,37.45],"焦作市":[113.25,35.22],"牡丹江市":[129.6,44.58],"玉林市":[110.17,22.63],"玉树州":[97.02,33],"玉溪市":[102.55,24.35],"珠海市":[113.57,22.27],"琼中县":[109.83,19.03],"琼海市":[110.47,19.25],"璧山县":[106.22,29.6],"甘南州":[102.92,34.98],"甘孜州":[101.97,30.05],"白城市":[122.83,45.62],"白山市":[126.42,41.93],"白沙县":[109.45,19.23],"白银市":[104.18,36.55],"百色市":[106.62,23.9],"益阳市":[112.32,28.6],"盐城市":[120.15,33.35],"盘锦市":[122.07,41.12],"眉山市":[103.83,30.05],"石嘴山市":[106.38,39.02],"石家庄市":[114.52,38.05],"石景山区":[116.22,39.9],"石柱县":[108.12,30],"石河子市":[86.03,44.3],"神农架林区":[110.67,31.75],"福州市":[119.3,26.08],"秀山县":[108.98,28.45],"秦皇岛市":[119.6,39.93],"綦江区":[106.65,29.03],"红桥区":[117.15,39.17],"红河州":[103.4,23.37],"绍兴市":[120.57,30],"绥化市":[126.98,46.63],"绵阳市":[104.73,31.47],"聊城市":[115.98,36.45],"肇庆市":[112.47,23.05],"自贡市":[104.78,29.35],"舟山市":[122.2,30],"芜湖市":[118.38,31.33],"苏州市":[120.58,31.3],"茂名市":[110.92,21.67],"荆州市":[112.23,30.33],"荆门市":[112.2,31.03],"荣昌县":[105.58,29.4],"莆田市":[119,25.43],"莱芜市":[117.67,36.22],"菏泽市":[115.46,35.26],"萍乡市":[113.85,27.63],"营口市":[122.23,40.67],"葫芦岛市":[120.83,40.72],"蓟县":[117.4,40.05],"虹口区":[121.5,31.27],"蚌埠市":[117.38,32.92],"衡水市":[115.68,37.73],"衡阳市":[112.57,26.9],"衢州市":[118.87,28.93],"襄阳市":[112.2,32.08],"西双版纳州":[100.8,22.02],"西城区":[116.37,39.92],"西宁市":[101.78,36.62],"西安市":[108.93,34.27],"西青区":[117,39.13],"许昌市":[113.85,34.03],"贵港市":[109.6,23.1],"贵阳市":[106.63,26.65],"贺州市":[111.55,24.42],"资阳市":[104.65,30.12],"赣州市":[114.93,25.83],"赤峰市":[118.92,42.27],"辽源市":[125.13,42.88],"辽阳市":[123.17,41.27],"达州市":[107.5,31.22],"运城市":[110.98,35.02],"连云港市":[119.22,34.6],"迪庆州":[99.7,27.83],"迪庆藏族自治县":[99.7,27.83],"通化市":[125.93,41.73],"通州区":[116.65,39.92],"通辽市":[122.27,43.62],"遂宁市":[105.57,30.52],"遵义市":[106.92,27.73],"邢台市":[114.48,37.07],"那曲地区":[92.07,31.48],"邯郸市":[114.48,36.62],"邵阳市":[111.47,27.25],"郑州市":[113.62,34.75],"郴州市":[113.02,25.78],"鄂尔多斯市":[109.8,39.62],"鄂州市":[114.88,30.4],"酉阳县":[108.77,28.85],"酒泉市":[98.52,39.75],"金华市":[119.65,29.08],"金山区":[121.33,30.75],"金昌市":[102.18,38.5],"钦州市":[108.62,21.95],"铁岭市":[123.83,42.28],"铜仁市":[109.18,27.72],"铜川市":[108.93,34.9],"铜梁县":[106.05,29.85],"铜陵市":[117.82,30.93],"银川市":[106.28,38.47],"锡林郭勒盟":[116.07,43.95],"锦州市":[121.13,41.1],"镇江市":[119.45,32.2],"长宁区":[121.42,31.22],"长寿区":[107.08,29.87],"长春市":[125.32,43.9],"长沙市":[112.93,28.23],"长治市":[113.11,36.2],"门头沟":[116.1,39.93],"闵行区":[121.38,31.12],"闸北区":[121.45,31.25],"阜新市":[121.67,42.02],"阜阳市":[115.82,32.9],"防城港市":[108.35,21.7],"阳江市":[111.98,21.87],"阳泉市":[113.57,37.85],"阿克苏地区":[80.27,41.17],"阿勒泰地区":[88.13,47.85],"阿坝州":[102.22,31.9],"阿拉善盟":[105.67,38.83],"阿拉尔市":[81.28,40.55],"阿里地区":[80.1,32.5],"陇南市":[104.92,33.4],"陵水县":[110.03,18.5],"随州市":[113.37,31.72],"雅安市":[103,29.98],"青岛市":[120.38,36.07],"青浦区":[121.12,31.15],"静安区":[121.45,31.23],"静海县":[116.92,38.93],"鞍山市":[122.98,41.1],"韶关市":[113.6,24.82],"韶山市":[112.52,27.93],"顺义区":[116.65,40.13],"马鞍山市":[118.5,31.7],"驻马店市":[114.02,32.98],"鸡西市":[130.97,45.3],"鹤壁市":[114.28,35.75],"鹤岗市":[130.27,47.33],"鹰潭市":[117.07,28.27],"黄冈市":[114.87,30.45],"黄南州":[102.02,35.52],"黄山市":[118.33,29.72],"黄浦区":[121.48,31.23],"黄石市":[115.03,30.2],"黑河市":[127.48,50.25],"黔东南州":[107.97,26.58],"黔南州":[107.52,26.27],"黔江区":[108.77,29.53],"黔西南州":[106.12,27.05],"齐齐哈尔市":[123.95,47.33],"龙岩市":[117.03,25.1]}')},"0fcc":function(e,t,r){var n=r("3461");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var a=r("499e").default;a("d14a69d0",n,!0,{sourceMap:!1,shadowMode:!1})},"137f":function(e,t,r){"use strict";var n=r("3a88"),a=r.n(n);a.a},1523:function(t,r){t.exports=e},"24fb":function(e,t,r){"use strict";function n(e,t){var r=e[1]||"",n=e[3];if(!n)return r;if(t&&"function"===typeof btoa){var i=a(n),o=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot).concat(e," */")}));return[r].concat(o).concat([i]).join("\n")}return[r].join("\n")}function a(e){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(t);return"/*# ".concat(r," */")}e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r=n(t,e);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r})).join("")},t.i=function(e,r){"string"===typeof e&&(e=[[null,e,""]]);for(var n=0;nr.parts.length&&(n.parts.length=r.parts.length)}else{var o=[];for(a=0;ar.parts.length&&(n.parts.length=r.parts.length)}else{var o=[];for(a=0;a=b&&!i||"t"===i?(m+=f.abbreviations.trillion,t/=b):o=v&&!i||"b"===i?(m+=f.abbreviations.billion,t/=v):o=y&&!i||"m"===i?(m+=f.abbreviations.million,t/=y):(o=_&&!i||"k"===i)&&(m+=f.abbreviations.thousand,t/=_)),e._.includes(r,"[.]")&&(p=!0,r=r.replace("[.]",".")),s=t.toString().split(".")[0],c=r.split(".")[1],u=r.indexOf(","),g=(r.split(".")[0].split(",")[0].match(/0/g)||[]).length,c?(e._.includes(c,"[")?(c=c.replace("]",""),c=c.split("["),x=e._.toFixed(t,c[0].length+c[1].length,n,c[1].length)):x=e._.toFixed(t,c.length,n),s=x.split(".")[0],x=e._.includes(x,".")?f.delimiters.decimal+x.split(".")[1]:"",p&&0===Number(x.slice(1))&&(x="")):s=e._.toFixed(t,0,n),m&&!i&&Number(s)>=1e3&&m!==f.abbreviations.trillion)switch(s=String(Number(s)/1e3),m){case f.abbreviations.thousand:m=f.abbreviations.million;break;case f.abbreviations.million:m=f.abbreviations.billion;break;case f.abbreviations.billion:m=f.abbreviations.trillion;break}if(e._.includes(s,"-")&&(s=s.slice(1),w=!0),s.length0;j--)s="0"+s;return u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+f.delimiters.thousands)),0===r.indexOf(".")&&(s=""),d=s+x+(m||""),h?d=(h&&w?"(":"")+d+(h&&w?")":""):l>=0?d=0===l?(w?"-":"+")+d:d+(w?"-":"+"):w&&(d="-"+d),d},stringToNumber:function(e){var t,r,n,i=a[o.currentLocale],s=e,c={thousand:3,million:6,billion:9,trillion:12};if(o.zeroFormat&&e===o.zeroFormat)r=0;else if(o.nullFormat&&e===o.nullFormat||!e.replace(/[^0-9]+/g,"").length)r=null;else{for(t in r=1,"."!==i.delimiters.decimal&&(e=e.replace(/\./g,"").replace(i.delimiters.decimal,".")),c)if(n=new RegExp("[^a-zA-Z]"+i.abbreviations[t]+"(?:\\)|(\\"+i.currency.symbol+")?(?:\\))?)?$"),s.match(n)){r*=Math.pow(10,c[t]);break}r*=(e.split("-").length+Math.min(e.split("(").length-1,e.split(")").length-1))%2?1:-1,e=e.replace(/[^0-9\.]+/g,""),r*=Number(e)}return r},isNaN:function(e){return"number"===typeof e&&isNaN(e)},includes:function(e,t){return-1!==e.indexOf(t)},insert:function(e,t,r){return e.slice(0,r)+t+e.slice(r)},reduce:function(e,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof t)throw new TypeError(t+" is not a function");var r,n=Object(e),a=n.length>>>0,i=0;if(3===arguments.length)r=arguments[2];else{while(i=a)throw new TypeError("Reduce of empty array with no initial value");r=n[i++]}for(;in?e:n}),1)},toFixed:function(e,t,r,n){var a,i,o,s,c=e.toString().split("."),l=t-(n||0);return a=2===c.length?Math.min(Math.max(c[1].length,l),t):l,o=Math.pow(10,a),s=(r(e+"e+"+a)/o).toFixed(a),n>t-a&&(i=new RegExp("\\.?0{1,"+(n-(t-a))+"}$"),s=s.replace(i,"")),s}},e.options=o,e.formats=n,e.locales=a,e.locale=function(e){return e&&(o.currentLocale=e.toLowerCase()),o.currentLocale},e.localeData=function(e){if(!e)return a[o.currentLocale];if(e=e.toLowerCase(),!a[e])throw new Error("Unknown locale : "+e);return a[e]},e.reset=function(){for(var e in i)o[e]=i[e]},e.zeroFormat=function(e){o.zeroFormat="string"===typeof e?e:null},e.nullFormat=function(e){o.nullFormat="string"===typeof e?e:null},e.defaultFormat=function(e){o.defaultFormat="string"===typeof e?e:"0.0"},e.register=function(e,t,r){if(t=t.toLowerCase(),this[e+"s"][t])throw new TypeError(t+" "+e+" already registered.");return this[e+"s"][t]=r,r},e.validate=function(t,r){var n,a,i,o,s,c,l,u;if("string"!==typeof t&&(t+="",console.warn),t=t.trim(),t.match(/^\d+$/))return!0;if(""===t)return!1;try{l=e.localeData(r)}catch(d){l=e.localeData(e.locale())}return i=l.currency.symbol,s=l.abbreviations,n=l.delimiters.decimal,a="."===l.delimiters.thousands?"\\.":l.delimiters.thousands,u=t.match(/^[^\d]+/),(null===u||(t=t.substr(1),u[0]===i))&&(u=t.match(/[^\d]+$/),(null===u||(t=t.slice(0,-1),u[0]===s.thousand||u[0]===s.million||u[0]===s.billion||u[0]===s.trillion))&&(c=new RegExp(a+"{2}"),!t.match(/[^\d.,]/g)&&(o=t.split(n),!(o.length>2)&&(o.length<2?!!o[0].match(/^\d+.*\d$/)&&!o[0].match(c):1===o[0].length?!!o[0].match(/^\d+$/)&&!o[0].match(c)&&!!o[1].match(/^\d+$/):!!o[0].match(/^\d+.*\d$/)&&!o[0].match(c)&&!!o[1].match(/^\d+$/)))))},e.fn=s.prototype={clone:function(){return e(this)},format:function(t,r){var a,i,s,c=this._value,l=t||o.defaultFormat;if(r=r||Math.round,0===c&&null!==o.zeroFormat)i=o.zeroFormat;else if(null===c&&null!==o.nullFormat)i=o.nullFormat;else{for(a in n)if(l.match(n[a].regexps.format)){s=n[a].format;break}s=s||e._.numberToFormat,i=s(c,l,r)}return i},value:function(){return this._value},input:function(){return this._input},set:function(e){return this._value=Number(e),this},add:function(e){var r=t.correctionFactor.call(null,this._value,e);function n(e,t,n,a){return e+Math.round(r*t)}return this._value=t.reduce([this._value,e],n,0)/r,this},subtract:function(e){var r=t.correctionFactor.call(null,this._value,e);function n(e,t,n,a){return e-Math.round(r*t)}return this._value=t.reduce([e],n,Math.round(this._value*r))/r,this},multiply:function(e){function r(e,r,n,a){var i=t.correctionFactor(e,r);return Math.round(e*i)*Math.round(r*i)/Math.round(i*i)}return this._value=t.reduce([this._value,e],r,1),this},divide:function(e){function r(e,r,n,a){var i=t.correctionFactor(e,r);return Math.round(e*i)/Math.round(r*i)}return this._value=t.reduce([this._value,e],r),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},e.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),function(){e.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(t,r,n){var a,i=e._.includes(r," BPS")?" ":"";return t*=1e4,r=r.replace(/\s?BPS/,""),a=e._.numberToFormat(t,r,n),e._.includes(a,")")?(a=a.split(""),a.splice(-1,0,i+"BPS"),a=a.join("")):a=a+i+"BPS",a},unformat:function(t){return+(1e-4*e._.stringToNumber(t)).toFixed(15)}})}(),function(){var t={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},r={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},n=t.suffixes.concat(r.suffixes.filter((function(e){return t.suffixes.indexOf(e)<0}))),a=n.join("|");a="("+a.replace("B","B(?!PS)")+")",e.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(a)},format:function(n,a,i){var o,s,c,l,u=e._.includes(a,"ib")?r:t,d=e._.includes(a," b")||e._.includes(a," ib")?" ":"";for(a=a.replace(/\s?i?b/,""),s=0;s<=u.suffixes.length;s++)if(c=Math.pow(u.base,s),l=Math.pow(u.base,s+1),null===n||0===n||n>=c&&n0&&(n/=c);break}return o=e._.numberToFormat(n,a,i),o+d},unformat:function(n){var a,i,o=e._.stringToNumber(n);if(o){for(a=t.suffixes.length-1;a>=0;a--){if(e._.includes(n,t.suffixes[a])){i=Math.pow(t.base,a);break}if(e._.includes(n,r.suffixes[a])){i=Math.pow(r.base,a);break}}o*=i||1}return o}})}(),function(){e.register("format","currency",{regexps:{format:/(\$)/},format:function(t,r,n){var a,i,o,s=e.locales[e.options.currentLocale],c={before:r.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:r.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(r=r.replace(/\s?\$\s?/,""),a=e._.numberToFormat(t,r,n),t>=0?(c.before=c.before.replace(/[\-\(]/,""),c.after=c.after.replace(/[\-\)]/,"")):t<0&&!e._.includes(c.before,"-")&&!e._.includes(c.before,"(")&&(c.before="-"+c.before),o=0;o=0;o--)switch(i=c.after[o],i){case"$":a=o===c.after.length-1?a+s.currency.symbol:e._.insert(a,s.currency.symbol,-(c.after.length-(1+o)));break;case" ":a=o===c.after.length-1?a+" ":e._.insert(a," ",-(c.after.length-(1+o)+s.currency.symbol.length-1));break}return a}})}(),function(){e.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,r,n){var a,i="number"!==typeof t||e._.isNaN(t)?"0e+0":t.toExponential(),o=i.split("e");return r=r.replace(/e[\+|\-]{1}0/,""),a=e._.numberToFormat(Number(o[0]),r,n),a+"e"+o[1]},unformat:function(t){var r=e._.includes(t,"e+")?t.split("e+"):t.split("e-"),n=Number(r[0]),a=Number(r[1]);function i(t,r,n,a){var i=e._.correctionFactor(t,r),o=t*i*(r*i)/(i*i);return o}return a=e._.includes(t,"e-")?a*=-1:a,e._.reduce([n,Math.pow(10,a)],i,1)}})}(),function(){e.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,r,n){var a,i=e.locales[e.options.currentLocale],o=e._.includes(r," o")?" ":"";return r=r.replace(/\s?o/,""),o+=i.ordinal(t),a=e._.numberToFormat(t,r,n),a+o}})}(),function(){e.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,r,n){var a,i=e._.includes(r," %")?" ":"";return e.options.scalePercentBy100&&(t*=100),r=r.replace(/\s?\%/,""),a=e._.numberToFormat(t,r,n),e._.includes(a,")")?(a=a.split(""),a.splice(-1,0,i+"%"),a=a.join("")):a=a+i+"%",a},unformat:function(t){var r=e._.stringToNumber(t);return e.options.scalePercentBy100?.01*r:r}})}(),function(){e.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(e,t,r){var n=Math.floor(e/60/60),a=Math.floor((e-60*n*60)/60),i=Math.round(e-60*n*60-60*a);return n+":"+(a<10?"0"+a:a)+":"+(i<10?"0"+i:i)},unformat:function(e){var t=e.split(":"),r=0;return 3===t.length?(r+=60*Number(t[0])*60,r+=60*Number(t[1]),r+=Number(t[2])):2===t.length&&(r+=60*Number(t[0]),r+=Number(t[1])),Number(r)}})}(),e}))},"86eb":function(e,t,r){"use strict";var n=r("ff6f"),a=r.n(n);a.a},"8bbf":function(e,t){e.exports=r},c6eb:function(e,t,r){"use strict";(function(e){var n=r("5ea3"),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===a,s=o&&n["a"].process,c=function(){try{var e=i&&i.require&&i.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(t){}}();t["a"]=c}).call(this,r("dd40")(e))},c8ba:function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},dd40:function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},dff1:function(e,t,r){"use strict";(function(e){var n=r("26ee"),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===a,s=o?n["a"].Buffer:void 0,c=s?s.allocUnsafe:void 0;function l(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}t["a"]=l}).call(this,r("dd40")(e))},f6fd:function(e,t){(function(e){var t="currentScript",r=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(n){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in r)if(r[e].src==t||"interactive"==r[e].readyState)return r[e];return null}}})})(document)},fb15:function(e,t,r){"use strict";var n;(r.r(t),"undefined"!==typeof window)&&(r("f6fd"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(r.p=n[1]));var a=r("296b"),i=r.n(a),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-parent",style:e.parentStyle},[e.isHasData?r("base-echarts",e._g({attrs:{"init-options":e.initOptions,options:e.options,autoResize:!0,theme:e.theme,"chart-height":e.height,ec:e.ec},on:{"update:ec":function(t){e.ec=t}}},e.$listeners)):e._e(),e.isHasData||e.loading?e._e():e._t("default",[r("empty-data",{attrs:{"empty-text":e.emptyText}})]),e.loading?r("loading-chart"):e._e()],2)},s=[];function c(e){return null===e}var l=c,u=Object.prototype;function d(e){var t=e&&e.constructor,r="function"==typeof t&&t.prototype||u;return e===r}var f=d;function h(e,t){return function(r){return e(t(r))}}var p=h,g=p(Object.keys,Object),m=g,b=Object.prototype,v=b.hasOwnProperty;function y(e){if(!f(e))return m(e);var t=[];for(var r in Object(e))v.call(e,r)&&"constructor"!=r&&t.push(r);return t}var _=y,x=r("26ee"),w=x["a"].Symbol,j=w,S=Object.prototype,A=S.hasOwnProperty,O=S.toString,T=j?j.toStringTag:void 0;function z(e){var t=A.call(e,T),r=e[T];try{e[T]=void 0;var n=!0}catch(i){}var a=O.call(e);return n&&(t?e[T]=r:delete e[T]),a}var M=z,C=Object.prototype,E=C.toString;function k(e){return E.call(e)}var L=k,N="[object Null]",F="[object Undefined]",P=j?j.toStringTag:void 0;function D(e){return null==e?void 0===e?F:N:P&&P in Object(e)?M(e):L(e)}var B=D;function $(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var V=$,R="[object AsyncFunction]",H="[object Function]",U="[object GeneratorFunction]",G="[object Proxy]";function I(e){if(!V(e))return!1;var t=B(e);return t==H||t==U||t==R||t==G}var W=I,q=x["a"]["__core-js_shared__"],J=q,Y=function(){var e=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Z(e){return!!Y&&Y in e}var X=Z,K=Function.prototype,Q=K.toString;function ee(e){if(null!=e){try{return Q.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var te=ee,re=/[\\^$.*+?()[\]{}|]/g,ne=/^\[object .+?Constructor\]$/,ae=Function.prototype,ie=Object.prototype,oe=ae.toString,se=ie.hasOwnProperty,ce=RegExp("^"+oe.call(se).replace(re,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function le(e){if(!V(e)||X(e))return!1;var t=W(e)?ce:ne;return t.test(te(e))}var ue=le;function de(e,t){return null==e?void 0:e[t]}var fe=de;function he(e,t){var r=fe(e,t);return ue(r)?r:void 0}var pe=he,ge=pe(x["a"],"DataView"),me=ge,be=pe(x["a"],"Map"),ve=be,ye=pe(x["a"],"Promise"),_e=ye,xe=pe(x["a"],"Set"),we=xe,je=pe(x["a"],"WeakMap"),Se=je,Ae="[object Map]",Oe="[object Object]",Te="[object Promise]",ze="[object Set]",Me="[object WeakMap]",Ce="[object DataView]",Ee=te(me),ke=te(ve),Le=te(_e),Ne=te(we),Fe=te(Se),Pe=B;(me&&Pe(new me(new ArrayBuffer(1)))!=Ce||ve&&Pe(new ve)!=Ae||_e&&Pe(_e.resolve())!=Te||we&&Pe(new we)!=ze||Se&&Pe(new Se)!=Me)&&(Pe=function(e){var t=B(e),r=t==Oe?e.constructor:void 0,n=r?te(r):"";if(n)switch(n){case Ee:return Ce;case ke:return Ae;case Le:return Te;case Ne:return ze;case Fe:return Me}return t});var De=Pe;function Be(e){return null!=e&&"object"==typeof e}var $e=Be,Ve="[object Arguments]";function Re(e){return $e(e)&&B(e)==Ve}var He=Re,Ue=Object.prototype,Ge=Ue.hasOwnProperty,Ie=Ue.propertyIsEnumerable,We=He(function(){return arguments}())?He:function(e){return $e(e)&&Ge.call(e,"callee")&&!Ie.call(e,"callee")},qe=We,Je=Array.isArray,Ye=Je,Ze=9007199254740991;function Xe(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Ze}var Ke=Xe;function Qe(e){return null!=e&&Ke(e.length)&&!W(e)}var et=Qe,tt=r("58e0"),rt="[object Arguments]",nt="[object Array]",at="[object Boolean]",it="[object Date]",ot="[object Error]",st="[object Function]",ct="[object Map]",lt="[object Number]",ut="[object Object]",dt="[object RegExp]",ft="[object Set]",ht="[object String]",pt="[object WeakMap]",gt="[object ArrayBuffer]",mt="[object DataView]",bt="[object Float32Array]",vt="[object Float64Array]",yt="[object Int8Array]",_t="[object Int16Array]",xt="[object Int32Array]",wt="[object Uint8Array]",jt="[object Uint8ClampedArray]",St="[object Uint16Array]",At="[object Uint32Array]",Ot={};function Tt(e){return $e(e)&&Ke(e.length)&&!!Ot[B(e)]}Ot[bt]=Ot[vt]=Ot[yt]=Ot[_t]=Ot[xt]=Ot[wt]=Ot[jt]=Ot[St]=Ot[At]=!0,Ot[rt]=Ot[nt]=Ot[gt]=Ot[at]=Ot[mt]=Ot[it]=Ot[ot]=Ot[st]=Ot[ct]=Ot[lt]=Ot[ut]=Ot[dt]=Ot[ft]=Ot[ht]=Ot[pt]=!1;var zt=Tt;function Mt(e){return function(t){return e(t)}}var Ct=Mt,Et=r("c6eb"),kt=Et["a"]&&Et["a"].isTypedArray,Lt=kt?Ct(kt):zt,Nt=Lt,Ft="[object Map]",Pt="[object Set]",Dt=Object.prototype,Bt=Dt.hasOwnProperty;function $t(e){if(null==e)return!0;if(et(e)&&(Ye(e)||"string"==typeof e||"function"==typeof e.splice||Object(tt["a"])(e)||Nt(e)||qe(e)))return!e.length;var t=De(e);if(t==Ft||t==Pt)return!e.size;if(f(e))return!_(e).length;for(var r in e)if(Bt.call(e,r))return!1;return!0}var Vt=$t;function Rt(e){return void 0===e}var Ht=Rt,Ut="[object Symbol]";function Gt(e){return"symbol"==typeof e||$e(e)&&B(e)==Ut}var It=Gt,Wt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qt=/^\w*$/;function Jt(e,t){if(Ye(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!It(e))||(qt.test(e)||!Wt.test(e)||null!=t&&e in Object(t))}var Yt=Jt,Zt=pe(Object,"create"),Xt=Zt;function Kt(){this.__data__=Xt?Xt(null):{},this.size=0}var Qt=Kt;function er(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tr=er,rr="__lodash_hash_undefined__",nr=Object.prototype,ar=nr.hasOwnProperty;function ir(e){var t=this.__data__;if(Xt){var r=t[e];return r===rr?void 0:r}return ar.call(t,e)?t[e]:void 0}var or=ir,sr=Object.prototype,cr=sr.hasOwnProperty;function lr(e){var t=this.__data__;return Xt?void 0!==t[e]:cr.call(t,e)}var ur=lr,dr="__lodash_hash_undefined__";function fr(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xt&&void 0===t?dr:t,this}var hr=fr;function pr(e){var t=-1,r=null==e?0:e.length;this.clear();while(++t-1}var Mr=zr;function Cr(e,t){var r=this.__data__,n=xr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Er=Cr;function kr(e){var t=-1,r=null==e?0:e.length;this.clear();while(++t-1&&e%1==0&&e0){if(++t>=Jo)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Ko=Xo,Qo=Ko(qo),es=Qo;function ts(e,t){return es(Uo(e,t,Bo),e+"")}var rs=ts;function ns(e){return function(t){return null==t?void 0:t[e]}}var as=ns;function is(e){return $e(e)&&et(e)}var os=is,ss=Math.max;function cs(e){if(!e||!e.length)return[];var t=0;return e=Sa(e,(function(e){if(os(e))return t=ss(e.length,t),!0})),Xn(t,(function(t){return cn(e,as(t))}))}var ls=cs,us=rs(ls),ds=us;function fs(e,t){var r,n=-1,a=e.length;while(++n{if(isNaN(+e))return e;let r=[{value:1e8,symbol:"亿"},{value:1e4,symbol:"万"},{value:1e3,symbol:"千"}];for(let a=0;a=r[a].value)return e/r[a].value+n+r[a].symbol;return e.toString()};return o(e,i)},unformat:function(e){return.01*Hs.a._.stringToNumber(e)}});const Us=e=>{const t={};return Object.keys(e).forEach(r=>{e[r].forEach(e=>{t[e]=r})}),t},Gs=e=>new Promise((t,r)=>{const n=new XMLHttpRequest;n.open("GET",e),n.send(null),n.onload=()=>{t(JSON.parse(n.responseText))},n.onerror=()=>{r(JSON.parse(n.responseText))}}),Is=({mapName:e,mapUrlPrefix:t})=>{const r=`${t}${e}.json`;return Gs(r)},Ws=e=>Object.prototype.toString.call(e),qs=(e,t,r)=>{const n=No(e),a=n&&n.dimensions&&n.dimensions.name,i=n&&n.dimensions&&n.dimensions.data,{isEmptyData:o,chartType:s}=r,c=t&&t.stack||null,l=t&&t.percentage||!1;if(!o&&void 0===i)return void Po.a.util.warn("data.dimensions.data is required. Please check on you data",void 0);let u=`${a}`,d=i.length>0&&i[0],f=Ys(d)&&"pie"===s?i.map((e,t)=>0===t?`${e}`:e):i;const h={[u]:f};let[p,g]=[{},[]];if(c&&l&&n.measures.length>0){const e=n.measures.map(e=>e.data),t=ds(...e);g=t.map(e=>{const t=e.map(e=>Ys(e)?e:parseFloat(e,10));return gs(t)})}n.measures.map(e=>{const t=Ys(e.name),r=t?`${e.name} `:e.name;Object.assign(p,{[r]:c&&l?e.data.map((e,t)=>Fs(e/g[t],4)):e.data})});let m=[];const b=Ht(a)?"dimension":a;m.push(b),m=[...m,...n.measures.map(e=>e.name)];const v=Object.assign({},h,p),y={dimensions:m,source:v};return y},Js=(e,t,r=0)=>{const n=(e,t,r)=>{const n=r>0?`0.${"0".repeat(r)}`:"0",a=r>0?`0,0.${"0".repeat(r)}`:"0,0";switch(e){case"currency":return Hs()(t).format(a);case"en":return Hs()(t).format(`${n} a`);case"zh":return Hs()(t).format(`${n} zh`);case"percentage":return Hs()(t).format(`${n}%`);default:return t}};return n(e,t,r)},Ys=e=>!Vs(parseFloat(e))&&isFinite(e)&&Number(e)===e,Zs={grid:{right:10,bottom:10,left:10,containLabel:!0},series:[]},Xs=["#5282e4","#40b17e","#ffd600","#f88d48","#2ebce2","#f35352","#ce62d6","#8954d4","#5257b8","#d42d6b"],Ks=[{itemStyle:{normal:{borderColor:"#fff"}}},{colorSaturation:[.3,.6],itemStyle:{normal:{borderColorSaturation:.7,gapWidth:5,borderWidth:2}}},{colorSaturation:[.3,.5],itemStyle:{normal:{borderColorSaturation:.6}}},{colorSaturation:[.3,.5]}],Qs={secondaryMeasure:{normal:{barBorderColor:"rgba(0,0,0,0)",color:"rgba(0,0,0,0)"},emphasis:{barBorderColor:"rgba(0,0,0,0)",color:"rgba(0,0,0,0)"}}},ec="https://unpkg.com/echarts@4.1.0/map/json/";var tc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"echarts",style:e.echartsStyle})},rc=[],nc=function(){return x["a"].Date.now()},ac=nc,ic="Expected a function",oc=Math.max,sc=Math.min;function cc(e,t,r){var n,a,i,o,s,c,l=0,u=!1,d=!1,f=!0;if("function"!=typeof e)throw new TypeError(ic);function h(t){var r=n,i=a;return n=a=void 0,l=t,o=e.apply(i,r),o}function p(e){return l=e,s=setTimeout(b,t),u?h(e):o}function g(e){var r=e-c,n=e-l,a=t-r;return d?sc(a,i-n):a}function m(e){var r=e-c,n=e-l;return void 0===c||r>=t||r<0||d&&n>=i}function b(){var e=ac();if(m(e))return v(e);s=setTimeout(b,g(e))}function v(e){return s=void 0,f&&n?h(e):(n=a=void 0,o)}function y(){void 0!==s&&clearTimeout(s),l=0,n=c=a=s=void 0}function _(){return void 0===s?o:v(ac())}function x(){var e=ac(),r=m(e);if(n=arguments,a=this,c=e,r){if(void 0===s)return p(c);if(d)return clearTimeout(s),s=setTimeout(b,t),h(c)}return void 0===s&&(s=setTimeout(b,t)),o}return t=js(t)||0,V(r)&&(u=!!r.leading,d="maxWait"in r,i=d?oc(js(r.maxWait)||0,t):i,f="trailing"in r?!!r.trailing:f),x.cancel=y,x.flush=_,x}var lc=cc;let uc=null;function dc(e){return uc||(uc=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){return setTimeout(e,16)}).bind(window)),uc(e)}let fc=null;function hc(e){fc||(fc=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window)),fc(e)}function pc(e){var t=document.createElement("style");return t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function gc(e,t={}){let r=document.createElement(e);return Object.keys(t).forEach(e=>{r[e]=t[e]}),r}function mc(e,t,r){let n=window.getComputedStyle(e,r||null)||{display:"none"};return n[t]}function bc(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};let t=e;while(t!==document){if("none"===mc(t,"display"))return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var vc='.resize-triggers{visibility:hidden;opacity:0}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}';let yc=0,_c=null;function xc(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Sc.bind(e));let r=e.__resize_listeners__;if(!r)if(e.__resize_listeners__=[],window.ResizeObserver){let{offsetWidth:t,offsetHeight:r}=e,n=new ResizeObserver(()=>{(e.__resize_observer_triggered__||(e.__resize_observer_triggered__=!0,e.offsetWidth!==t||e.offsetHeight!==r))&&Oc(e)}),{detached:a,rendered:i}=bc(e);e.__resize_observer_triggered__=!1===a&&!1===i,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){Oc(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(yc||(_c=pc(vc)),Tc(e),e.__resize_rendered__=bc(e).rendered,window.MutationObserver){let t=new MutationObserver(e.__resize_mutation_handler__);t.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=t}e.__resize_listeners__.push(t),yc++}function wc(e,t){let r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener)return e.detachEvent("onresize",e.__resize_legacy_resize_handler__),void document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",Ac),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--yc&&_c&&_c.parentNode.removeChild(_c)}}function jc(e){let{width:t,height:r}=e.__resize_last__,{offsetWidth:n,offsetHeight:a}=e;return n!==t||a!==r?{width:n,height:a}:null}function Sc(){let{rendered:e,detached:t}=bc(this);e!==this.__resize_rendered__&&(!t&&this.__resize_triggers__&&(zc(this),this.addEventListener("scroll",Ac,!0)),this.__resize_rendered__=e,Oc(this))}function Ac(){zc(this),this.__resize_raf__&&hc(this.__resize_raf__),this.__resize_raf__=dc(()=>{let e=jc(this);e&&(this.__resize_last__=e,Oc(this))})}function Oc(e){e&&e.__resize_listeners__&&e.__resize_listeners__.forEach(t=>{t.call(e)})}function Tc(e){let t=mc(e,"position");t&&"static"!==t||(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};let r=gc("div",{className:"resize-triggers"}),n=gc("div",{className:"resize-expand-trigger"}),a=gc("div"),i=gc("div",{className:"resize-contract-trigger"});n.appendChild(a),r.appendChild(n),r.appendChild(i),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:n,expandChild:a,contract:i},zc(e),e.addEventListener("scroll",Ac,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function zc(e){let{expand:t,expandChild:r,contract:n}=e.__resize_triggers__,{scrollWidth:a,scrollHeight:i}=n,{offsetWidth:o,offsetHeight:s,scrollWidth:c,scrollHeight:l}=t;n.scrollLeft=a,n.scrollTop=i,r.style.width=o+1+"px",r.style.height=s+1+"px",t.scrollLeft=c,t.scrollTop=l}r("1523");const Mc=["legendselectchanged","legendselected","legendunselected","legendscroll","datazoom","datarangeselected","timelinechanged","timelineplaychanged","restore","dataviewchanged","magictypechanged","geoselectchanged","geoselected","geounselected","pieselectchanged","pieselected","pieunselected","mapselectchanged","mapselected","mapunselected","axisareaselected","focusnodeadjacency","unfocusnodeadjacency","brush","brushselected","globalcursortaken","rendered","finished","click","dblclick","mouseover","mouseout","mousedown","mouseup","globalout","contextmenu"];var Cc={props:{options:Object,theme:[String,Object],initOptions:Object,group:String,autoResize:Boolean,watchShallow:Boolean,chartHeight:{type:Number,default:400}},data(){return{chart:null}},computed:{width:{cache:!1,get(){return this.delegateGet("width","getWidth")}},height:{cache:!1,get(){return this.delegateGet("height","getHeight")}},isDisposed:{cache:!1,get(){return!!this.delegateGet("isDisposed","isDisposed")}},computedOptions:{cache:!1,get(){return this.delegateGet("computedOptions","getOption")}},echartsStyle(){return{width:"auto",height:`${this.chartHeight}px`}}},watch:{group(e){this.chart.group=e}},methods:{mergeOptions(e,t,r){this.delegateMethod("setOption",e,t,r)},appendData(e){this.delegateMethod("appendData",e)},resize(e){this.delegateMethod("resize",e)},dispatchAction(e){this.delegateMethod("dispatchAction",e)},convertToPixel(e,t){return this.delegateMethod("convertToPixel",e,t)},convertFromPixel(e,t){return this.delegateMethod("convertFromPixel",e,t)},containPixel(e,t){return this.delegateMethod("containPixel",e,t)},showLoading(e,t){this.delegateMethod("showLoading",e,t)},hideLoading(){this.delegateMethod("hideLoading")},getDataURL(e){return this.delegateMethod("getDataURL",e)},getConnectedDataURL(e){return this.delegateMethod("getConnectedDataURL",e)},clear(){this.delegateMethod("clear")},dispose(){this.delegateMethod("dispose")},delegateMethod(e,...t){if(this.chart)return this.chart[e](...t);Po.a.util.warn(`Cannot call [${e}] before the chart is initialized. Set prop [options] first.`,this)},delegateGet(e,t){return this.chart||Po.a.util.warn(`Cannot get [${e}] before the chart is initialized. Set prop [options] first.`,this),this.chart[t]()},init(){if(this.chart)return;let e=i.a.init(this.$el,this.theme,this.initOptions);this.group&&(e.group=this.group),e.setOption(this.options,!0),e.getZr().on("click",e=>!e.target&&this.$emit("blankClick",e)),Mc.forEach(t=>{e.on(t,e=>{this.$emit(t,e)})}),this.autoResize&&(this.__resizeHanlder=lc(()=>{e.resize()},100,{leading:!0}),xc(this.$el,this.__resizeHanlder)),this.chart=e,this.$emit("update:ec",e)},destroy(){this.autoResize&&wc(this.$el,this.__resizeHanlder),this.dispose(),this.chart=null},refresh(){this.destroy(),this.init()}},created(){this.$watch("options",e=>{!this.chart&&e?this.init():this.chart.setOption(this.options,!0)},{deep:!this.watchShallow});let e=["theme","initOptions","autoResize","watchShallow"];e.forEach(e=>{this.$watch(e,()=>{this.refresh()},{deep:!0})})},mounted(){this.options&&this.init()},activated(){this.autoResize&&this.chart&&this.chart.resize()},beforeDestroy(){this.chart&&this.destroy()},connect(e){"string"!==typeof e&&(e=e.map(e=>e.chart)),i.a.connect(e)},disconnect(e){i.a.disConnect(e)},registerMap(e,t,r){i.a.registerMap(e,t,r)},registerTheme(e,t){i.a.registerTheme(e,t)},graphic:i.a.graphic},Ec=Cc;r("46e2");function kc(e,t,r,n,a,i,o,s){var c,l="function"===typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=r,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),o?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=s?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,t){return c.call(t),u(e,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:l}}var Lc=kc(Ec,tc,rc,!1,null,null,null),Nc=Lc.exports,Fc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-empty-data"},[r("span",{domProps:{textContent:e._s(e.emptyText)}})])},Pc=[],Dc={name:"EchartsEmptyData",props:{emptyText:{type:String,default:"暂无数据"}}},Bc=Dc,$c=(r("86eb"),kc(Bc,Fc,Pc,!1,null,null,null)),Vc=$c.exports,Rc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-loading-mask"},[r("div",{staticClass:"loading-spinner"},[r("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[r("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])])])},Hc=[],Uc=(r("137f"),{}),Gc=kc(Uc,Rc,Hc,!1,null,null,null),Ic=Gc.exports,Wc={components:{BaseEcharts:Nc,EmptyData:Vc,LoadingChart:Ic},props:{data:{type:[Object,Array],default(){return{}}},settings:{type:[Object,Array],default(){return{}}},title:Object,legend:Object,grid:Object,xAxis:[Object,Array],yAxis:[Object,Array],polar:Object,radiusAxis:Object,angleAxis:Object,radar:[Object,Array],dataZoom:[Object,Array],visualMap:[Object,Array],tooltip:Object,axisPointer:Object,toolbox:Object,brush:Object,geo:Object,parallel:Object,parallelAxis:Array,singleAxis:Array,timeline:Object,graphic:Object,calendar:Object,dataset:Object,series:[Object,Array],color:Array,backgroundColor:[Object,String],textStyle:Object,animation:Object,animationThreshold:Number,animationDuration:[Number,Function],animationEasing:[String,Function],animationDelay:[Number,Function],animationDurationUpdate:[Number,Function],animationEasingUpdate:[String,Function],animationDelayUpdate:[String,Function],blendMode:String,hoverLayerThreshold:Number,useUTC:{type:Boolean,default:!1},tooltipVisible:{type:Boolean,default:!0},legendVisible:{type:Boolean,default:!0},legendPosition:String,theme:[String,Object],loading:{type:Boolean,default:!1},emptyText:String,renderer:{type:String,default:"canvas"},height:{type:Number,default:400}},data(){return{ec:null,initOptions:null}},computed:{chartColor(){return this.theme?this.color:this.color||Xs},isEmptyData(){if(l(this.data)||Vt(this.data)||Ht(this.data))return!0;if(Array.isArray(this.data))return!1;{const e=Sn(this.data,"measures");return 0===e.length}},isEmptySeries(){return l(this.series)||Vt(this.series)||Ht(this.series)},isHasData(){return!this.isEmptyData||!this.isEmptySeries},isHasParentStyle(){return this.loading||this.isEmptyData&&this.isEmptySeries},parentStyle(){const e=this.isHasParentStyle?{position:"relative",height:`${this.height}px`}:{};return e}},watch:{data:{deep:!0,handler(e){e&&this.dataHandler(e)}},settings:{deep:!0,handler(e){this.dataHandler(this.data)}},ec(e){this.$emit("update:ec",e)}},methods:{dataHandler(e){if(!this.chartHandler||this.isEmptyData&&this.isEmptySeries)return;const t={tooltipVisible:this.tooltipVisible,legendVisible:this.legendVisible,isEmptyData:this.isEmptyData,isEmptySeries:this.isEmptySeries,_once:this._once};this.beforeConfig&&(e=this.beforeConfig(e));const r=this.chartHandler(e,No(this.settings),t);r&&("function"===typeof r.then?r.then(this.optionsHandler):this.optionsHandler(r))},optionsHandler(e){if(e.color=this.chartColor,this.legendPosition&&e.legend){const t=this.legendPosition.split("-").shift();e.legend.left=this.legendPosition.split("-").pop(),-1!==["top"].indexOf(t)&&(e.legend.top=0),-1!==["bottom"].indexOf(t)&&(e.legend.bottom=0)}const t=["title","legend","grid","xAxis","yAxis","polar","radiusAxis","angleAxis","radar","dataZoom","visualMap","tooltip","axisPointer","toolbox","brush","geo","parallel","parallelAxis","singleAxis","timeline","graphic","calendar","dataset","series","color","backgroundColor","textStyle","animation","animationThreshold","animationDuration","animationEasing","animationDelay","animationDurationUpdate","animationEasingUpdate","animationDelayUpdate","blendMode","hoverLayerThreshold","useUTC"];t.forEach(t=>{this[t]&&(e[t]=this[t])}),this.animation&&Object.keys(this.animation).forEach(t=>{e[t]=this.animation[t]}),this.options=Object.assign(No(this.options),e)},init(){this.data&&this.dataHandler(this.data)},addWatchToProps(){const e=this._watchers.map(e=>e.expression);Object.keys(this.$props).forEach(t=>{if(!~e.indexOf(t)){const e={};"[object Object]"===Ws(t)&&(e.deep=!0),this.$watch(t,()=>{this.dataHandler(this.data)},e)}})}},created(){this.initOptions={renderer:this.renderer},this._once={},this.addWatchToProps()},mounted(){this.init()}},qc={mixins:[Wc],data(){return{options:Zs,initOptions:{renderer:"canvas"}}}},Jc=qc,Yc=kc(Jc,o,s,!1,null,null,null),Zc=Yc.exports;class Xc{constructor(e,t,r){this.data=e,this.settings=t,this.extra=r}chartHandler(){}}var Kc=Xc;class Qc extends Kc{static getBarTooltip(e){const{tooltipFormatter:t}=e;return{trigger:"axis",axisPointer:{type:"shadow"},formatter:t}}static getBarLegend(e,t){const{measures:r}=e,{legendType:n,legendPadding:a,waterfall:i}=t;let o={type:n||"plain",padding:a||5};return i&&!0===i&&(o["data"]=r.filter(({name:e})=>{if("secondaryMeasure"!==e)return e})),o}static getBarGrid(e){const t={right:30,bottom:10,left:30,containLabel:!0};return e?t:Zs.grid}static getBarDimAxis(e){const{dimAxisType:t}=e,r={type:t,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400}},n=[];return n.push(r),n}static getBarMeaAxis(e,t){const{meaAxisType:r,meaAxisDigits:n,yAxisScale:a=!1,percentage:i=!1,yAxisName:o,yAxisInterval:s,yAxisMax:c,yAxisMin:l}=t,u={type:"value",scale:a,axisTick:{show:!1},min:i?0:null,max:i?1:null},d=[];return r.forEach((e,t)=>{const r={margin:10,fontWeight:400};if("normal"!==e)if(Ye(n)){let a=Ht(n[t])?0:n[t];r.formatter=t=>Js(e,t,a)}else r.formatter=t=>Js(e,t,n);const a={...u,axisLabel:r};o&&o.length&&(a["name"]=o[t]),s&&s.length&&s[t]&&(a["interval"]=Number(s[t])),!1===i&&c&&c.length&&(a["max"]=c[t]),!1===i&&l&&l.length&&(a["min"]=l[t]),d.push(a)}),d}static getBarLabel(e,t){const{position:r=(t?"right":"top"),formatType:n="currency",formatDigits:a=0,...i}=e,o=e=>{const{value:t,seriesIndex:r}=e;return t.shift(),Js(n,t[r],a)};return{position:r,formatter:o,...i}}static getBarSeries(e,t,r){const{measures:n}=e,{label:a={},showLine:i=[],stack:o=null,secondMeaAxis:s=[],itemStyle:c={},waterfall:l,...u}=t,d=r?"xAxisIndex":"yAxisIndex",f=[],h=o&&Us(o);return n.forEach(({name:e})=>{let t={};a instanceof Array?(t=a.filter(t=>t.name===e)[0],void 0===t&&(t={})):t=a;const n=i.includes(e)?"line":"bar",p={type:n,name:e,label:Qc.getBarLabel(t,r),stack:o&&h[e],[d]:s.includes(e)?"1":"0",itemStyle:c[e]?c[e]:{},...u};l&&!0===l&&"secondaryMeasure"===e&&(p["itemStyle"]=Qs[e]),f.push(p)}),f}bar(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r,{direction:o="column",secondMeaAxis:s=null,yAxisLabelType:c,yAxisLabelDigits:l=0,yAxisName:u,xAxisLabelType:d,xAxisLabelDigits:f=0,xAxisName:h}=t,p="column"!==o&&"row"===o,g=null!==s?["normal","normal"]:["normal"];t.meaAxisType=(p?d:c)||g,t.meaAxisDigits=p?f:l,t.meaAxisName=(p?h:u)||[],t.dimAxisType=(p?c:d)||"category",t.dimAxisDigits=p?l:f,t.dimAxisName=(p?u:h)||"",g.length>t.meaAxisType.length&&(t.meaAxisType=g.fill(t.meaAxisType[0])),r.chartType="bar";const m=!i&&qs(e,t,r),b=n&&Qc.getBarTooltip(t),v=a&&Qc.getBarLegend(e,t),y=Qc.getBarGrid(p),_=p?Qc.getBarMeaAxis(e,t):Qc.getBarDimAxis(t),x=p?Qc.getBarDimAxis(t):Qc.getBarMeaAxis(e,t),w=Qc.getBarSeries(e,t,p),{yAxisInverse:j,xAxisInverse:S}=t;void 0!==j&&x.forEach(e=>{e.inverse=j}),void 0!==S&&_.forEach(e=>{e.inverse=S});const A={grid:y,dataset:m,tooltip:b,legend:v,xAxis:_,yAxis:x,series:w};return A}}var el=Qc,tl={name:"VeBarChart",mixins:[Zc],created(){this.chartHandler=(new el).bar}};class rl extends Kc{static getPieDataset(e,t,r){const n=[];if(r.chartType="pie",e.length&&1!==e.length){if(e.length>1)for(let a of e)n.push(qs(a,t,r))}else n.push(qs(e,t,r));return n}static getPieTooltip(e){return{trigger:"item"}}static getPieLegend(e){const{data:t,settings:r}=e;let n;n=Array.isArray(t)&&t.length>0?t[0].dimensions:t.dimensions;const{legendType:a="plain",legendPadding:i=5,legendSelected:o=n.data.length}=r,s=e=>{let t={};const r=n.data.slice(e);for(let n of r)t[n]=!1;return t};return{type:a,padding:i,selected:s(o)}}static getPieSeries(e){const{data:t,settings:r,isDonut:n}=e;let a=[];if(void 0===t.length)a=this.handleData(t,r,n);else if(1===t.length)a=this.handleData(t[0],r,n);else if(2===t.length)for(let i in t)a.push(this.handleData(t[i],r[i],n,i)[0]);return a}static handleData(e,t,r,n=0){const a=[],{measures:i}=e,{offsetY:o,radius:s=(r?["50%","70%"]:[0,"75%"]),selectedMode:c=!1,...l}=t;return i.forEach(({name:e,data:t},r)=>{a.push({type:"pie",name:e,selectedMode:c,center:o?["50%",o]:["50%","50%"],radius:s,datasetIndex:n,...l})}),a}static chartHandler(e,t,r,n=!1){const{tooltipVisible:a,legendVisible:i}=r,o=rl.getPieDataset(e,t,r),s=a&&rl.getPieTooltip(),c=i&&rl.getPieLegend({data:e,settings:t}),l=rl.getPieSeries({data:e,settings:t,isDonut:n}),u={dataset:o,tooltip:s,legend:c,series:l};return u}pie(e,t,r){return rl.chartHandler(e,t,r,!1)}donut(e,t,r){return rl.chartHandler(e,t,r,!0)}}var nl=rl,al={name:"VeDonutChart",mixins:[Zc],created(){this.chartHandler=(new nl).donut}};function il(e,t,r){var n=-1,a=e.length;while(++nt}var fl=dl;function hl(e){return e&&e.length?ol(e,Bo,fl):void 0}var pl=hl;class gl extends Kc{static getFunnelTooltip(e){return{trigger:"item"}}static getFunnelLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getFunnelSeries(e){const{data:t,settings:r}=e,{dimensions:n,measures:a}=t,i=n&&`${n.name}`,{funnelSort:o="desc",funnelAlign:s="center",contrast:c=!1,symmetric:l=!1,labelPosition:u="outside",funnelLabel:d,...f}=r,h=e=>{if(e.length>2)return void Po.a.util.warn("data.measures.length is more then 2 in [Contrastive funnel chart]. Please use 2 measures",this);let t="";if(e.length>1){const r=e.reduce((e,t)=>Fs(ul([pl(e.data),pl(t.data)])/pl([pl(e.data),pl(t.data)]),2));t=`${100*r}%`}return t},p=(e,t)=>e?0===t?"10%":"50%":"10%",g=(e,t)=>e?0===t?"right":"left":s,m=(e,t)=>{const{contrast:r,symmetric:n,funnelLabel:i}=e;if(i)return Array.isArray(i)?i[t]:i;let o={normal:{position:u}};if(r){const e={normal:{position:"inside",formatter:e=>{const t=a.reduce((e,t)=>pl([pl(e.data),pl(t.data)])),[,,r]=e.value;return`${Math.round(r/t*100,2)}%`}},emphasis:{position:"inside",formatter:e=>{const t=a.reduce((e,t)=>pl([pl(e.data),pl(t.data)])),[r,,n]=e.value;return`${r} ${Math.round(n/t*100,2)}%`}}};o=0===t?o:e}if(n){const e={normal:{position:"outside"!==u?u:"left"}},r={normal:{position:"outside"!==u?u:"right"}};o=0===t?e:r}return o},b=(e,t)=>({itemName:e,value:t}),v=[];return a.forEach(({name:e,data:t},r)=>{v.push({type:"funnel",name:e,sort:"desc"===o?"descending":"ascending",funnelAlign:g(l,r),width:l?"40%":"80%",x:p(l,r),maxSize:c&&0!==r?h(a):"100%",label:m({contrast:c,symmetric:l,funnelLabel:d},r),encode:b(i,e),...f})}),v}funnel(e,t,r){const{tooltipVisible:n,legendVisible:a}=r;r.chartType="funnel";const i=qs(e,t,r),o=n&&gl.getFunnelTooltip(),s=a&&gl.getFunnelLegend({settings:t}),c=gl.getFunnelSeries({data:e,settings:t}),l={dataset:i,tooltip:o,legend:s,series:c};return l}}var ml=gl,bl={name:"VeFunnelChart",mixins:[Zc],created(){this.chartHandler=(new ml).funnel}};class vl extends Kc{static getGaugeTooltip(){return{trigger:"item"}}static getGaugeSeries(e){const{data:t,settings:r}=e,{name:n,data:a}=t&&t.measures&&t.measures[0],{min:i=0,max:o=100,offsetY:s,radius:c="75%",...l}=r;return[{name:n,type:"gauge",min:i,max:o,center:s?["50%",s]:["50%","50%"],radius:c,data:a,...l}]}gauge(e,t,r){const{tooltipVisible:n}=r,a=n&&vl.getGaugeTooltip(),i=vl.getGaugeSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var yl=vl,_l={name:"VeGaugeChart",mixins:[Zc],created(){this.chartHandler=(new yl).gauge}},xl=Ls("ceil"),wl=xl,jl=r("0e45"),Sl=r("274d"),Al=r("2814");class Ol extends Kc{static convertCityData(e,t){const{index:r,connect:n}=t,a=n?n.dataIndex:-1,i=n?n.seriesIndex:-1,o=n?n.symbolSize:10,s=n?n.normalShadowBlur:0,c=[];for(let l=0;l{const t=e.map(e=>parseInt(e.value));return Math.max(...t)}).reduce((e,t)=>e+t);return n&&n.forEach(({name:e,data:t},r)=>{const n=s?t:Ol.convertCityData(t,{index:r,connect:p}),b={normal:{show:!1},emphasis:{show:!1}};m[r]={name:e,type:a,roam:f,visualMap:l,label:o?u:b,selectedMode:"single",mapType:i,data:n,zoom:h},c&&(m[r].itemStyle=c),s||(m[r]={...m[r],coordinateSystem:"geo",label:b,symbolSize:d,showEffectOn:"render",rippleEffect:{brushType:"stroke"},itemStyle:{}}),g.push(e)}),{legendData:g,seriesData:m,max:wl(b,-2)}}static getGeoTooltip(e){const t=function(e){const{seriesName:t,name:r,value:n,marker:a}=e,i=Array.isArray(n)?n[2]:n;return`${t}
${a}${r}: ${i}`};return e?{trigger:"item"}:{trigger:"item",formatter:t}}static getGeoLegend(e){const{legendData:t,settings:r}=e,{legendType:n="plain",legendPadding:a=5}=r;return{type:n,padding:a,data:t}}static getGeo(e){const{labelVisible:t=!1,label:r,itemStyle:n,silent:a=!1,zoom:i=1,roam:o=!1,mapName:s="china"}=e.settings,c={normal:{show:!1},emphasis:{show:!1}},l={map:s,silent:a,roam:o,selectedMode:"single",label:t?r:c,zoom:i};return n&&(l.itemStyle=n),l}static getVisualMap(e){const{max:t=200,settings:r}=e,{visualMap:n}=r;return{min:0,max:t,left:"left",top:"bottom",show:!0,calculable:!0,...n}}static async registerMap(e){const{mapName:t="china",specialAreas:r,mapUrlPrefix:n=ec,_once:a}=e;let o={};return a[t]||(o=await Is({mapName:t,mapUrlPrefix:n}),Object.assign(a,{[t]:!0}),i.a.registerMap(t,o,r)),o}async geo(e,t,r){const{tooltipVisible:n,legendVisible:a,_once:i}=r,{mode:o="map",visualMapVisible:s=!1}=t,c="map"===o;t.isMapMode=c;const{legendData:l,seriesData:u,max:d}=Ol.getGeoData({data:e,settings:t}),f=n&&Ol.getGeoTooltip(c),h=a&&Ol.getGeoLegend({legendData:l,settings:t}),p=!c&&Ol.getGeo({data:e,settings:t}),g=s&&Ol.getVisualMap({max:d,settings:t}),m={tooltip:f,legend:h,visualMap:g,geo:p,series:u},b={mapName:t.mapName,specialAreas:t.specialAreas,mapUrlPrefix:t.mapUrlPrefix,_once:i};return await Ol.registerMap(b),m}}var Tl=Ol,zl={name:"VeGeoChart",mixins:[Zc],created(){this.chartHandler=(new Tl).geo}};class Ml extends Kc{static getLineTooltip(e){const{tooltipFormatter:t}=e;return{trigger:"axis",formatter:t}}static getLineLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getLineDimAxis(e){const{settings:t}=e,r=t.yAxisType||"category";return{type:r,boundaryGap:!1,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400}}}static getLineMeaAxis(e){const{settings:t}=e,{yAxisScale:r,yAxisLabelType:n,yAxisLabelDigits:a,yAxisName:i,yAxisInterval:o,yAxisMax:s,yAxisMin:c,percentage:l=!1}=t;let u={type:"value",scale:r,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400,formatter:e=>Js(n,e,a)},min:l?0:null,max:l?1:null};return i&&(u["name"]=i),o&&(u["interval"]=Number(o)),s&&(u["max"]=s),c&&(u["min"]=c),u}static getLineLabel(e){const{position:t="top",formatType:r="currency",formatDigits:n=0,...a}=e,i=e=>{const{value:t,seriesIndex:a}=e;return t.shift(),Js(r,t[a],n)};return{normal:{position:t,formatter:i,...a}}}static getLineSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{label:a={},showSymbol:i=!0,smooth:o=!1,stack:s=null,step:c=null,symbol:l="emptyCircle",symbolSize:u=4,itemStyle:d={},...f}=r,h=[],p=s&&Us(s);function g(e){return{normal:{width:2}}}return n.forEach(({name:e,data:t},r)=>{h.push({type:"line",name:e,label:this.getLineLabel(a),lineStyle:g(),showSymbol:i,smooth:o,stack:s&&p[e],step:c,symbol:l,symbolSize:u,itemStyle:d[e]?d[e]:{},...f})}),h}line(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r;r.chartType="line";const o=!i&&qs(e,t,r),s=n&&Ml.getLineTooltip(t),c=a&&Ml.getLineLegend({settings:t}),l=Ml.getLineDimAxis({settings:t}),u=Ml.getLineMeaAxis({settings:t}),d=!i&&Ml.getLineSeries({data:e,settings:t}),f={dataset:o,tooltip:s,legend:c,xAxis:l,yAxis:u,series:d};return f}}var Cl=Ml,El={name:"VeLineChart",mixins:[Zc],created(){this.chartHandler=(new Cl).line}},kl={name:"VePieChart",mixins:[Zc],created(){this.chartHandler=(new nl).pie}};class Ll extends Kc{static getRadarTooltip(){return{trigger:"item"}}static getRadarLegend(e){const{data:t,settings:r}=e,{legendType:n="plain",legendPadding:a=5}=r,{measures:i}=t;return{type:n,padding:a,data:i.map(e=>e.name)}}static getRadarRadar(e){const{data:t,settings:r}=e,{offsetY:n="50%",radius:a="75%",splitNumber:i=5,shape:o="polygon",splitArea:s={}}=r;return{name:{textStyle:{padding:[3,5]}},center:["50%",n],radius:a,splitNumber:i,shape:o,splitArea:s,indicator:t.dimensions}}static getRadarSeries(e){const{itemStyle:t}=e,{measures:r}=e.data,n=[];return r.forEach((e,r)=>{n.push({type:"radar",data:[{name:e.name,value:e.data}],itemStyle:Object.assign({},t)})}),n}radar(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r,{itemStyle:o}=t;if(i)return{};const s=n&&Ll.getRadarTooltip(),c=a&&Ll.getRadarLegend({data:e,settings:t}),l=Ll.getRadarRadar({data:e,settings:t}),u=Ll.getRadarSeries({data:e,itemStyle:o}),d={tooltip:s,legend:c,radar:l,series:u};return d}}var Nl=Ll,Fl={name:"VeRadarChart",mixins:[Zc],created(){this.chartHandler=(new Nl).radar}};class Pl extends Kc{static getScatterDataset(e,t,r){const n=[],{measures:a}=e;if(Ye(a))return a.forEach(e=>{n.push({source:e.data})}),n}static getScatterTooltip(e){return{}}static getScatterLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getScatterSeries(e){const{data:t,settings:r}=e,{connect:n,...a}=r,i=[];return t.measures.forEach(({name:e},t)=>{i[t]={type:"scatter",name:e,datasetIndex:t,...a}}),i}static getScatterXAxis(e){const{settings:t}=e,{xAxisScale:r=!1,xAxisName:n,xAxisNameGap:a,xAxisNameLocation:i}=t;let o={scale:r,nameGap:5,splitLine:{lineStyle:{type:"dashed"}}};return n&&(o["name"]=n),a&&(o["nameGap"]=a),i&&(o["nameLocation"]=i),o}static getScatterYAxis(e){const{settings:t}=e,{yAxisScale:r=!1,yAxisName:n}=t;let a={scale:r,splitLine:{lineStyle:{type:"dashed"}}};return n&&(a["name"]=n),a}scatter(e,t,r){const{tooltipVisible:n,legendVisible:a}=r,i=Pl.getScatterDataset(e,t,r),o=n&&Pl.getScatterTooltip({data:e}),s=a&&Pl.getScatterLegend({settings:t}),c=Pl.getScatterSeries({data:e,settings:t}),l=Pl.getScatterXAxis({settings:t}),u=Pl.getScatterYAxis({settings:t}),d={dataset:i,tooltip:o,legend:s,series:c,xAxis:l,yAxis:u};return d}}var Dl=Pl,Bl={name:"VeScatterChart",mixins:[Zc],created(){this.chartHandler=(new Dl).scatter}};class $l extends Kc{static getTreemapTooltip(e){return{formatter:"{b}:
{c}"}}static getTreemapSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{name:a="根级",levels:i=Ks,...o}=r,s=[];return s.push({type:"treemap",name:a,levels:i,data:n,...o}),s}treemap(e,t,r){const{tooltipVisible:n}=r,a=n&&$l.getTreemapTooltip(),i=$l.getTreemapSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var Vl=$l,Rl={name:"VeTreemapChart",mixins:[Zc],created(){this.chartHandler=(new Vl).treemap}};class Hl extends Kc{static getBarTooltip(e){const{settings:t}=e,{tooltip:r}=t;return{...r}}static getSunburstSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{label:a={},itemStyle:i={},...o}=r,s=[];return n.forEach(({name:e,data:t},r)=>{const n="sunburst",c={type:n,name:e,data:t,label:a,itemStyle:i,...o};s.push(c)}),s}sunburst(e,t,r){const n=Hl.getBarTooltip({settings:t}),a=Hl.getSunburstSeries({data:e,settings:t}),i={series:a};return 0!==Object.keys(n).length&&(i["tooltip"]=n),i}}var Ul=Hl,Gl={name:"VeSunburstChart",mixins:[Zc],created(){this.chartHandler=(new Ul).sunburst}};class Il extends Kc{static getTreeTooltip(){return{trigger:"item",triggerOn:"mousemove"}}static getTreeLegend(e,t){const{legendType:r="plain",legendPadding:n=5}=t,{measures:a}=e;return{type:r,padding:n,data:a.map(e=>e.name)}}static formatTreeLabels(e="LR",t=0){let[r,n,a,i]=["","","",""];switch(e){case"LR":r="left",n="right",a="right",i="left";break;case"RL":r="right",n="left",a="left",i="right";break;case"TB":r="top",n=t>0?"right":"middle",a="bottom",i=t>0?"left":"middle";break;case"BT":r="bottom",n=t>0?"right":"middle",a="top",i=t>0?"left":"middle";break;default:}return{label:{normal:{position:r,verticalAlign:"middle",align:n,rotate:t}},leaves:{label:{normal:{position:a,verticalAlign:"middle",align:i,rotate:t}}}}}static getTreeSeries(e,t){const{seriesMap:r=[],labelRotate:n}=t,a=e.measures.map((e,t)=>{const a=r&&r[t]&&r[t].layout,i=r&&r[t]&&r[t].orient,o="radial"===a?{}:Il.formatTreeLabels(i,n),s={type:"tree",name:e.name,data:[e.value],...o,...r[t]};return s});return a}tree(e,t,r){const{tooltipVisible:n,legendVisible:a}=r,i=n&&Il.getTreeTooltip(),o=a&&Il.getTreeLegend(e,t),s=Il.getTreeSeries(e,t),c={tooltip:i,legend:o,series:s};return c}}var Wl=Il,ql={name:"VeTreeChart",mixins:[Zc],created(){this.chartHandler=(new Wl).tree}};class Jl extends Kc{static getWordcloudSeries(e){const{data:t,settings:r}=e,{measures:n}=t,a="wordCloud",i=[],o={type:a,data:n,...r};return i.push(o),i}wordcloud(e,t,r){const{tooltip:n}=t,a=Jl.getWordcloudSeries({data:e,settings:t}),i={tooltip:n,series:a};return i}}var Yl=Jl,Zl={name:"VeWordcloudChart",mixins:[Zc],created(){this.chartHandler=(new Yl).wordcloud}};class Xl extends Kc{static getSeries(e){const{measures:t}=e.data,r=e.settings,n=[];return n.push({type:"liquidFill",data:[...t],...r}),n}liquidfill(e,t,r){const{isEmptyData:n}=r,{tooltip:a}=t;if(n)return{};const i=Xl.getSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var Kl=Xl,Ql={name:"VeLiquidfillChart",mixins:[Zc],created(){this.chartHandler=(new Kl).liquidfill}};class eu extends Kc{static getTooltip(e){return{}}static getLegend(e){const{measures:t}=e;return{show:!0,data:t.map(e=>e.name)}}static getPolar(e){return{}}static getAngleAxis(e){const{radial:t=!1}=e;return{type:t?"category":"value"}}static getRadiusAxis(e){const{radial:t=!1}=e;return{type:t?"value":"category",z:10}}static getSeries({data:e,settings:t}){const{measures:r}=e,{polarType:n="line",stack:a=null,...i}=t,o=r.map((e,t)=>({type:n,coordinateSystem:"polar",stack:a,...i}));return o}polar(e,t,r){const{legendVisible:n,tooltipVisible:a,isEmptyData:i}=r;if(i)return{};const o=a&&eu.getTooltip(t),s=n&&eu.getLegend(e),c=eu.getPolar(t),l=eu.getAngleAxis(t),u=eu.getRadiusAxis(t),d=!i&&qs(e,t,r),f=eu.getSeries({data:e,settings:t}),h={tooltip:o,legend:s,polar:c,angleAxis:l,radiusAxis:u,dataset:d,series:f};return h}}var tu=eu,ru={name:"VePolarChart",mixins:[Zc],created(){this.chartHandler=(new tu).polar}};class nu extends Kc{static getTooltip(e){return{}}static getSeries({data:e,settings:t}){const{dimensions:r,measures:n}=e,{orient:a="horizontal",draggable:i=!0,focusNodeAdjacency:o=!1,...s}=t;return{type:"sankey",data:r,edges:n,orient:a,draggable:i,focusNodeAdjacency:o,...s}}sankey(e,t,r){const{tooltipVisible:n,isEmptyData:a}=r;if(a)return{};const i=n&&nu.getTooltip(t),o=nu.getSeries({data:e,settings:t}),s={tooltip:i,series:o};return s}}var au=nu,iu={name:"VeSankeyChart",mixins:[Zc],created(){this.chartHandler=(new au).sankey}};const ou=[tl,al,bl,_l,zl,El,kl,Fl,Bl,Rl,Gl,ql,Zl,Ql,ru,iu],su=e=>{su.installed||ou.forEach(t=>{e.component(t.name,t)})};"undefined"!==typeof window&&window.Vue&&(window.Vue.use(su),su.installed&&(su.installed=!1));var cu={install:su,VeBarChart:tl,VeDonutChart:al,VeFunnelChart:bl,VeGaugeChart:_l,VeGeoChart:zl,VeLineChart:El,VePieChart:kl,VeRadarChart:Fl,VeScatterChart:Bl,VeTreemapChart:Rl,VeSunburstChart:Gl,VeTreeChart:ql,VeWordcloudChart:Zl,VeLiquidfillChart:Ql,VePolarChart:ru,VeSankeyChart:iu};t["default"]=cu},ff6f:function(e,t,r){var n=r("068a");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var a=r("499e").default;a("3a96cc98",n,!0,{sourceMap:!1,shadowMode:!1})}})["default"]})); \ No newline at end of file + */(function(i,o){n=o,a="function"===typeof n?n.call(t,r,t,e):n,void 0===a||(e.exports=a)})(0,(function(){var e,t,r="2.0.6",n={},a={},i={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},o={currentLocale:i.currentLocale,zeroFormat:i.zeroFormat,nullFormat:i.nullFormat,defaultFormat:i.defaultFormat,scalePercentBy100:i.scalePercentBy100};function s(e,t){this._input=e,this._value=t}return e=function(r){var a,i,c,l;if(e.isNumeral(r))a=r.value();else if(0===r||"undefined"===typeof r)a=0;else if(null===r||t.isNaN(r))a=null;else if("string"===typeof r)if(o.zeroFormat&&r===o.zeroFormat)a=0;else if(o.nullFormat&&r===o.nullFormat||!r.replace(/[^0-9]+/g,"").length)a=null;else{for(i in n)if(l="function"===typeof n[i].regexps.unformat?n[i].regexps.unformat():n[i].regexps.unformat,l&&r.match(l)){c=n[i].unformat;break}c=c||e._.stringToNumber,a=c(r)}else a=Number(r)||null;return new s(r,a)},e.version=r,e.isNumeral=function(e){return e instanceof s},e._=t={numberToFormat:function(t,r,n){var i,o,s,c,l,u,d,f=a[e.options.currentLocale],h=!1,p=!1,m=0,g="",b=1e12,v=1e9,y=1e6,_=1e3,x="",w=!1;if(t=t||0,o=Math.abs(t),e._.includes(r,"(")?(h=!0,r=r.replace(/[\(|\)]/g,"")):(e._.includes(r,"+")||e._.includes(r,"-"))&&(l=e._.includes(r,"+")?r.indexOf("+"):t<0?r.indexOf("-"):-1,r=r.replace(/[\+|\-]/g,"")),e._.includes(r,"a")&&(i=r.match(/a(k|m|b|t)?/),i=!!i&&i[1],e._.includes(r," a")&&(g=" "),r=r.replace(new RegExp(g+"a[kmbt]?"),""),o>=b&&!i||"t"===i?(g+=f.abbreviations.trillion,t/=b):o=v&&!i||"b"===i?(g+=f.abbreviations.billion,t/=v):o=y&&!i||"m"===i?(g+=f.abbreviations.million,t/=y):(o=_&&!i||"k"===i)&&(g+=f.abbreviations.thousand,t/=_)),e._.includes(r,"[.]")&&(p=!0,r=r.replace("[.]",".")),s=t.toString().split(".")[0],c=r.split(".")[1],u=r.indexOf(","),m=(r.split(".")[0].split(",")[0].match(/0/g)||[]).length,c?(e._.includes(c,"[")?(c=c.replace("]",""),c=c.split("["),x=e._.toFixed(t,c[0].length+c[1].length,n,c[1].length)):x=e._.toFixed(t,c.length,n),s=x.split(".")[0],x=e._.includes(x,".")?f.delimiters.decimal+x.split(".")[1]:"",p&&0===Number(x.slice(1))&&(x="")):s=e._.toFixed(t,0,n),g&&!i&&Number(s)>=1e3&&g!==f.abbreviations.trillion)switch(s=String(Number(s)/1e3),g){case f.abbreviations.thousand:g=f.abbreviations.million;break;case f.abbreviations.million:g=f.abbreviations.billion;break;case f.abbreviations.billion:g=f.abbreviations.trillion;break}if(e._.includes(s,"-")&&(s=s.slice(1),w=!0),s.length0;j--)s="0"+s;return u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+f.delimiters.thousands)),0===r.indexOf(".")&&(s=""),d=s+x+(g||""),h?d=(h&&w?"(":"")+d+(h&&w?")":""):l>=0?d=0===l?(w?"-":"+")+d:d+(w?"-":"+"):w&&(d="-"+d),d},stringToNumber:function(e){var t,r,n,i=a[o.currentLocale],s=e,c={thousand:3,million:6,billion:9,trillion:12};if(o.zeroFormat&&e===o.zeroFormat)r=0;else if(o.nullFormat&&e===o.nullFormat||!e.replace(/[^0-9]+/g,"").length)r=null;else{for(t in r=1,"."!==i.delimiters.decimal&&(e=e.replace(/\./g,"").replace(i.delimiters.decimal,".")),c)if(n=new RegExp("[^a-zA-Z]"+i.abbreviations[t]+"(?:\\)|(\\"+i.currency.symbol+")?(?:\\))?)?$"),s.match(n)){r*=Math.pow(10,c[t]);break}r*=(e.split("-").length+Math.min(e.split("(").length-1,e.split(")").length-1))%2?1:-1,e=e.replace(/[^0-9\.]+/g,""),r*=Number(e)}return r},isNaN:function(e){return"number"===typeof e&&isNaN(e)},includes:function(e,t){return-1!==e.indexOf(t)},insert:function(e,t,r){return e.slice(0,r)+t+e.slice(r)},reduce:function(e,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!==typeof t)throw new TypeError(t+" is not a function");var r,n=Object(e),a=n.length>>>0,i=0;if(3===arguments.length)r=arguments[2];else{while(i=a)throw new TypeError("Reduce of empty array with no initial value");r=n[i++]}for(;in?e:n}),1)},toFixed:function(e,t,r,n){var a,i,o,s,c=e.toString().split("."),l=t-(n||0);return a=2===c.length?Math.min(Math.max(c[1].length,l),t):l,o=Math.pow(10,a),s=(r(e+"e+"+a)/o).toFixed(a),n>t-a&&(i=new RegExp("\\.?0{1,"+(n-(t-a))+"}$"),s=s.replace(i,"")),s}},e.options=o,e.formats=n,e.locales=a,e.locale=function(e){return e&&(o.currentLocale=e.toLowerCase()),o.currentLocale},e.localeData=function(e){if(!e)return a[o.currentLocale];if(e=e.toLowerCase(),!a[e])throw new Error("Unknown locale : "+e);return a[e]},e.reset=function(){for(var e in i)o[e]=i[e]},e.zeroFormat=function(e){o.zeroFormat="string"===typeof e?e:null},e.nullFormat=function(e){o.nullFormat="string"===typeof e?e:null},e.defaultFormat=function(e){o.defaultFormat="string"===typeof e?e:"0.0"},e.register=function(e,t,r){if(t=t.toLowerCase(),this[e+"s"][t])throw new TypeError(t+" "+e+" already registered.");return this[e+"s"][t]=r,r},e.validate=function(t,r){var n,a,i,o,s,c,l,u;if("string"!==typeof t&&(t+="",console.warn),t=t.trim(),t.match(/^\d+$/))return!0;if(""===t)return!1;try{l=e.localeData(r)}catch(d){l=e.localeData(e.locale())}return i=l.currency.symbol,s=l.abbreviations,n=l.delimiters.decimal,a="."===l.delimiters.thousands?"\\.":l.delimiters.thousands,u=t.match(/^[^\d]+/),(null===u||(t=t.substr(1),u[0]===i))&&(u=t.match(/[^\d]+$/),(null===u||(t=t.slice(0,-1),u[0]===s.thousand||u[0]===s.million||u[0]===s.billion||u[0]===s.trillion))&&(c=new RegExp(a+"{2}"),!t.match(/[^\d.,]/g)&&(o=t.split(n),!(o.length>2)&&(o.length<2?!!o[0].match(/^\d+.*\d$/)&&!o[0].match(c):1===o[0].length?!!o[0].match(/^\d+$/)&&!o[0].match(c)&&!!o[1].match(/^\d+$/):!!o[0].match(/^\d+.*\d$/)&&!o[0].match(c)&&!!o[1].match(/^\d+$/)))))},e.fn=s.prototype={clone:function(){return e(this)},format:function(t,r){var a,i,s,c=this._value,l=t||o.defaultFormat;if(r=r||Math.round,0===c&&null!==o.zeroFormat)i=o.zeroFormat;else if(null===c&&null!==o.nullFormat)i=o.nullFormat;else{for(a in n)if(l.match(n[a].regexps.format)){s=n[a].format;break}s=s||e._.numberToFormat,i=s(c,l,r)}return i},value:function(){return this._value},input:function(){return this._input},set:function(e){return this._value=Number(e),this},add:function(e){var r=t.correctionFactor.call(null,this._value,e);function n(e,t,n,a){return e+Math.round(r*t)}return this._value=t.reduce([this._value,e],n,0)/r,this},subtract:function(e){var r=t.correctionFactor.call(null,this._value,e);function n(e,t,n,a){return e-Math.round(r*t)}return this._value=t.reduce([e],n,Math.round(this._value*r))/r,this},multiply:function(e){function r(e,r,n,a){var i=t.correctionFactor(e,r);return Math.round(e*i)*Math.round(r*i)/Math.round(i*i)}return this._value=t.reduce([this._value,e],r,1),this},divide:function(e){function r(e,r,n,a){var i=t.correctionFactor(e,r);return Math.round(e*i)/Math.round(r*i)}return this._value=t.reduce([this._value,e],r),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},e.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),function(){e.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(t,r,n){var a,i=e._.includes(r," BPS")?" ":"";return t*=1e4,r=r.replace(/\s?BPS/,""),a=e._.numberToFormat(t,r,n),e._.includes(a,")")?(a=a.split(""),a.splice(-1,0,i+"BPS"),a=a.join("")):a=a+i+"BPS",a},unformat:function(t){return+(1e-4*e._.stringToNumber(t)).toFixed(15)}})}(),function(){var t={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},r={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},n=t.suffixes.concat(r.suffixes.filter((function(e){return t.suffixes.indexOf(e)<0}))),a=n.join("|");a="("+a.replace("B","B(?!PS)")+")",e.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(a)},format:function(n,a,i){var o,s,c,l,u=e._.includes(a,"ib")?r:t,d=e._.includes(a," b")||e._.includes(a," ib")?" ":"";for(a=a.replace(/\s?i?b/,""),s=0;s<=u.suffixes.length;s++)if(c=Math.pow(u.base,s),l=Math.pow(u.base,s+1),null===n||0===n||n>=c&&n0&&(n/=c);break}return o=e._.numberToFormat(n,a,i),o+d},unformat:function(n){var a,i,o=e._.stringToNumber(n);if(o){for(a=t.suffixes.length-1;a>=0;a--){if(e._.includes(n,t.suffixes[a])){i=Math.pow(t.base,a);break}if(e._.includes(n,r.suffixes[a])){i=Math.pow(r.base,a);break}}o*=i||1}return o}})}(),function(){e.register("format","currency",{regexps:{format:/(\$)/},format:function(t,r,n){var a,i,o,s=e.locales[e.options.currentLocale],c={before:r.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:r.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(r=r.replace(/\s?\$\s?/,""),a=e._.numberToFormat(t,r,n),t>=0?(c.before=c.before.replace(/[\-\(]/,""),c.after=c.after.replace(/[\-\)]/,"")):t<0&&!e._.includes(c.before,"-")&&!e._.includes(c.before,"(")&&(c.before="-"+c.before),o=0;o=0;o--)switch(i=c.after[o],i){case"$":a=o===c.after.length-1?a+s.currency.symbol:e._.insert(a,s.currency.symbol,-(c.after.length-(1+o)));break;case" ":a=o===c.after.length-1?a+" ":e._.insert(a," ",-(c.after.length-(1+o)+s.currency.symbol.length-1));break}return a}})}(),function(){e.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,r,n){var a,i="number"!==typeof t||e._.isNaN(t)?"0e+0":t.toExponential(),o=i.split("e");return r=r.replace(/e[\+|\-]{1}0/,""),a=e._.numberToFormat(Number(o[0]),r,n),a+"e"+o[1]},unformat:function(t){var r=e._.includes(t,"e+")?t.split("e+"):t.split("e-"),n=Number(r[0]),a=Number(r[1]);function i(t,r,n,a){var i=e._.correctionFactor(t,r),o=t*i*(r*i)/(i*i);return o}return a=e._.includes(t,"e-")?a*=-1:a,e._.reduce([n,Math.pow(10,a)],i,1)}})}(),function(){e.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,r,n){var a,i=e.locales[e.options.currentLocale],o=e._.includes(r," o")?" ":"";return r=r.replace(/\s?o/,""),o+=i.ordinal(t),a=e._.numberToFormat(t,r,n),a+o}})}(),function(){e.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,r,n){var a,i=e._.includes(r," %")?" ":"";return e.options.scalePercentBy100&&(t*=100),r=r.replace(/\s?\%/,""),a=e._.numberToFormat(t,r,n),e._.includes(a,")")?(a=a.split(""),a.splice(-1,0,i+"%"),a=a.join("")):a=a+i+"%",a},unformat:function(t){var r=e._.stringToNumber(t);return e.options.scalePercentBy100?.01*r:r}})}(),function(){e.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(e,t,r){var n=Math.floor(e/60/60),a=Math.floor((e-60*n*60)/60),i=Math.round(e-60*n*60-60*a);return n+":"+(a<10?"0"+a:a)+":"+(i<10?"0"+i:i)},unformat:function(e){var t=e.split(":"),r=0;return 3===t.length?(r+=60*Number(t[0])*60,r+=60*Number(t[1]),r+=Number(t[2])):2===t.length&&(r+=60*Number(t[0]),r+=Number(t[1])),Number(r)}})}(),e}))},"86eb":function(e,t,r){"use strict";var n=r("ff6f"),a=r.n(n);a.a},"8bbf":function(e,r){e.exports=t},c6eb:function(e,t,r){"use strict";(function(e){var n=r("5ea3"),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===a,s=o&&n["a"].process,c=function(){try{var e=i&&i.require&&i.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(t){}}();t["a"]=c}).call(this,r("dd40")(e))},c8ba:function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},dd40:function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},dff1:function(e,t,r){"use strict";(function(e){var n=r("26ee"),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,i=a&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===a,s=o?n["a"].Buffer:void 0,c=s?s.allocUnsafe:void 0;function l(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}t["a"]=l}).call(this,r("dd40")(e))},e2b6:function(e,t){e.exports=r},f6fd:function(e,t){(function(e){var t="currentScript",r=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(n){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in r)if(r[e].src==t||"interactive"==r[e].readyState)return r[e];return null}}})})(document)},fb15:function(e,t,r){"use strict";var n;(r.r(t),"undefined"!==typeof window)&&(r("f6fd"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(r.p=n[1]));var a=r("e2b6"),i=r.n(a),o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-parent",style:e.parentStyle},[e.isHasData?r("base-echarts",e._g({attrs:{"init-options":e.initOptions,options:e.options,autoResize:!0,theme:e.theme,"chart-height":e.height,ec:e.ec},on:{"update:ec":function(t){e.ec=t}}},e.$listeners)):e._e(),e.isHasData||e.loading?e._e():e._t("default",[r("empty-data",{attrs:{"empty-text":e.emptyText}})]),e.loading?r("loading-chart"):e._e()],2)},s=[];function c(e){return null===e}var l=c,u=Object.prototype;function d(e){var t=e&&e.constructor,r="function"==typeof t&&t.prototype||u;return e===r}var f=d;function h(e,t){return function(r){return e(t(r))}}var p=h,m=p(Object.keys,Object),g=m,b=Object.prototype,v=b.hasOwnProperty;function y(e){if(!f(e))return g(e);var t=[];for(var r in Object(e))v.call(e,r)&&"constructor"!=r&&t.push(r);return t}var _=y,x=r("26ee"),w=x["a"].Symbol,j=w,S=Object.prototype,A=S.hasOwnProperty,O=S.toString,T=j?j.toStringTag:void 0;function z(e){var t=A.call(e,T),r=e[T];try{e[T]=void 0;var n=!0}catch(i){}var a=O.call(e);return n&&(t?e[T]=r:delete e[T]),a}var M=z,C=Object.prototype,E=C.toString;function L(e){return E.call(e)}var k=L,N="[object Null]",D="[object Undefined]",F=j?j.toStringTag:void 0;function P(e){return null==e?void 0===e?D:N:F&&F in Object(e)?M(e):k(e)}var $=P;function B(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var V=B,R="[object AsyncFunction]",H="[object Function]",U="[object GeneratorFunction]",G="[object Proxy]";function I(e){if(!V(e))return!1;var t=$(e);return t==H||t==U||t==R||t==G}var W=I,q=x["a"]["__core-js_shared__"],J=q,Y=function(){var e=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Z(e){return!!Y&&Y in e}var X=Z,K=Function.prototype,Q=K.toString;function ee(e){if(null!=e){try{return Q.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var te=ee,re=/[\\^$.*+?()[\]{}|]/g,ne=/^\[object .+?Constructor\]$/,ae=Function.prototype,ie=Object.prototype,oe=ae.toString,se=ie.hasOwnProperty,ce=RegExp("^"+oe.call(se).replace(re,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function le(e){if(!V(e)||X(e))return!1;var t=W(e)?ce:ne;return t.test(te(e))}var ue=le;function de(e,t){return null==e?void 0:e[t]}var fe=de;function he(e,t){var r=fe(e,t);return ue(r)?r:void 0}var pe=he,me=pe(x["a"],"DataView"),ge=me,be=pe(x["a"],"Map"),ve=be,ye=pe(x["a"],"Promise"),_e=ye,xe=pe(x["a"],"Set"),we=xe,je=pe(x["a"],"WeakMap"),Se=je,Ae="[object Map]",Oe="[object Object]",Te="[object Promise]",ze="[object Set]",Me="[object WeakMap]",Ce="[object DataView]",Ee=te(ge),Le=te(ve),ke=te(_e),Ne=te(we),De=te(Se),Fe=$;(ge&&Fe(new ge(new ArrayBuffer(1)))!=Ce||ve&&Fe(new ve)!=Ae||_e&&Fe(_e.resolve())!=Te||we&&Fe(new we)!=ze||Se&&Fe(new Se)!=Me)&&(Fe=function(e){var t=$(e),r=t==Oe?e.constructor:void 0,n=r?te(r):"";if(n)switch(n){case Ee:return Ce;case Le:return Ae;case ke:return Te;case Ne:return ze;case De:return Me}return t});var Pe=Fe;function $e(e){return null!=e&&"object"==typeof e}var Be=$e,Ve="[object Arguments]";function Re(e){return Be(e)&&$(e)==Ve}var He=Re,Ue=Object.prototype,Ge=Ue.hasOwnProperty,Ie=Ue.propertyIsEnumerable,We=He(function(){return arguments}())?He:function(e){return Be(e)&&Ge.call(e,"callee")&&!Ie.call(e,"callee")},qe=We,Je=Array.isArray,Ye=Je,Ze=9007199254740991;function Xe(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Ze}var Ke=Xe;function Qe(e){return null!=e&&Ke(e.length)&&!W(e)}var et=Qe,tt=r("58e0"),rt="[object Arguments]",nt="[object Array]",at="[object Boolean]",it="[object Date]",ot="[object Error]",st="[object Function]",ct="[object Map]",lt="[object Number]",ut="[object Object]",dt="[object RegExp]",ft="[object Set]",ht="[object String]",pt="[object WeakMap]",mt="[object ArrayBuffer]",gt="[object DataView]",bt="[object Float32Array]",vt="[object Float64Array]",yt="[object Int8Array]",_t="[object Int16Array]",xt="[object Int32Array]",wt="[object Uint8Array]",jt="[object Uint8ClampedArray]",St="[object Uint16Array]",At="[object Uint32Array]",Ot={};function Tt(e){return Be(e)&&Ke(e.length)&&!!Ot[$(e)]}Ot[bt]=Ot[vt]=Ot[yt]=Ot[_t]=Ot[xt]=Ot[wt]=Ot[jt]=Ot[St]=Ot[At]=!0,Ot[rt]=Ot[nt]=Ot[mt]=Ot[at]=Ot[gt]=Ot[it]=Ot[ot]=Ot[st]=Ot[ct]=Ot[lt]=Ot[ut]=Ot[dt]=Ot[ft]=Ot[ht]=Ot[pt]=!1;var zt=Tt;function Mt(e){return function(t){return e(t)}}var Ct=Mt,Et=r("c6eb"),Lt=Et["a"]&&Et["a"].isTypedArray,kt=Lt?Ct(Lt):zt,Nt=kt,Dt="[object Map]",Ft="[object Set]",Pt=Object.prototype,$t=Pt.hasOwnProperty;function Bt(e){if(null==e)return!0;if(et(e)&&(Ye(e)||"string"==typeof e||"function"==typeof e.splice||Object(tt["a"])(e)||Nt(e)||qe(e)))return!e.length;var t=Pe(e);if(t==Dt||t==Ft)return!e.size;if(f(e))return!_(e).length;for(var r in e)if($t.call(e,r))return!1;return!0}var Vt=Bt;function Rt(e){return void 0===e}var Ht=Rt,Ut="[object Symbol]";function Gt(e){return"symbol"==typeof e||Be(e)&&$(e)==Ut}var It=Gt,Wt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qt=/^\w*$/;function Jt(e,t){if(Ye(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!It(e))||(qt.test(e)||!Wt.test(e)||null!=t&&e in Object(t))}var Yt=Jt,Zt=pe(Object,"create"),Xt=Zt;function Kt(){this.__data__=Xt?Xt(null):{},this.size=0}var Qt=Kt;function er(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tr=er,rr="__lodash_hash_undefined__",nr=Object.prototype,ar=nr.hasOwnProperty;function ir(e){var t=this.__data__;if(Xt){var r=t[e];return r===rr?void 0:r}return ar.call(t,e)?t[e]:void 0}var or=ir,sr=Object.prototype,cr=sr.hasOwnProperty;function lr(e){var t=this.__data__;return Xt?void 0!==t[e]:cr.call(t,e)}var ur=lr,dr="__lodash_hash_undefined__";function fr(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xt&&void 0===t?dr:t,this}var hr=fr;function pr(e){var t=-1,r=null==e?0:e.length;this.clear();while(++t-1}var Mr=zr;function Cr(e,t){var r=this.__data__,n=xr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Er=Cr;function Lr(e){var t=-1,r=null==e?0:e.length;this.clear();while(++t-1&&e%1==0&&e0){if(++t>=Jo)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Ko=Xo,Qo=Ko(qo),es=Qo;function ts(e,t){return es(Uo(e,t,$o),e+"")}var rs=ts;function ns(e){return function(t){return null==t?void 0:t[e]}}var as=ns;function is(e){return Be(e)&&et(e)}var os=is,ss=Math.max;function cs(e){if(!e||!e.length)return[];var t=0;return e=Sa(e,(function(e){if(os(e))return t=ss(e.length,t),!0})),Xn(t,(function(t){return cn(e,as(t))}))}var ls=cs,us=rs(ls),ds=us;function fs(e,t){var r,n=-1,a=e.length;while(++n{if(isNaN(+e))return e;let r=[{value:1e8,symbol:"亿"},{value:1e4,symbol:"万"},{value:1e3,symbol:"千"}];for(let a=0;a=r[a].value)return e/r[a].value+n+r[a].symbol;return e.toString()};return o(e,i)},unformat:function(e){return.01*Hs.a._.stringToNumber(e)}});const Us=e=>{const t={};return Object.keys(e).forEach(r=>{e[r].forEach(e=>{t[e]=r})}),t},Gs=e=>new Promise((t,r)=>{const n=new XMLHttpRequest;n.open("GET",e),n.send(null),n.onload=()=>{t(JSON.parse(n.responseText))},n.onerror=()=>{r(JSON.parse(n.responseText))}}),Is=({mapName:e,mapUrlPrefix:t})=>{const r=`${t}${e}.json`;return Gs(r)},Ws=e=>Object.prototype.toString.call(e),qs=(e,t,r)=>{const n=No(e),a=n&&n.dimensions&&n.dimensions.name,i=n&&n.dimensions&&n.dimensions.data,{isEmptyData:o,chartType:s}=r,c=t&&t.stack||null,l=t&&t.percentage||!1;if(!o&&void 0===i)return void Fo.a.util.warn("data.dimensions.data is required. Please check on you data",void 0);let u=`${a}`,d=i.length>0&&i[0],f=Ys(d)&&"pie"===s?i.map((e,t)=>0===t?`${e}`:e):i;const h={[u]:f};let[p,m]=[{},[]];if(c&&l&&n.measures.length>0){const e=n.measures.map(e=>e.data),t=ds(...e);m=t.map(e=>{const t=e.map(e=>Ys(e)?e:parseFloat(e,10));return ms(t)})}n.measures.map(e=>{const t=Ys(e.name),r=t?`${e.name} `:e.name;Object.assign(p,{[r]:c&&l?e.data.map((e,t)=>Ds(e/m[t],4)):e.data})});let g=[];const b=Ht(a)?"dimension":a;g.push(b),g=[...g,...n.measures.map(e=>e.name)];const v=Object.assign({},h,p),y={dimensions:g,source:v};return y},Js=(e,t,r=0)=>{const n=(e,t,r)=>{const n=r>0?`0.${"0".repeat(r)}`:"0",a=r>0?`0,0.${"0".repeat(r)}`:"0,0";switch(e){case"currency":return Hs()(t).format(a);case"en":return Hs()(t).format(`${n} a`);case"zh":return Hs()(t).format(`${n} zh`);case"percentage":return Hs()(t).format(`${n}%`);default:return t}};return n(e,t,r)},Ys=e=>!Vs(parseFloat(e))&&isFinite(e)&&Number(e)===e,Zs={grid:{right:10,bottom:10,left:10,containLabel:!0},series:[]},Xs=["#5282e4","#40b17e","#ffd600","#f88d48","#2ebce2","#f35352","#ce62d6","#8954d4","#5257b8","#d42d6b"],Ks=[{itemStyle:{normal:{borderColor:"#fff"}}},{colorSaturation:[.3,.6],itemStyle:{normal:{borderColorSaturation:.7,gapWidth:5,borderWidth:2}}},{colorSaturation:[.3,.5],itemStyle:{normal:{borderColorSaturation:.6}}},{colorSaturation:[.3,.5]}],Qs={secondaryMeasure:{normal:{barBorderColor:"rgba(0,0,0,0)",color:"rgba(0,0,0,0)"},emphasis:{barBorderColor:"rgba(0,0,0,0)",color:"rgba(0,0,0,0)"}}},ec="https://unpkg.com/echarts@4.1.0/map/json/";var tc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"echarts",style:e.echartsStyle})},rc=[],nc=function(){return x["a"].Date.now()},ac=nc,ic="Expected a function",oc=Math.max,sc=Math.min;function cc(e,t,r){var n,a,i,o,s,c,l=0,u=!1,d=!1,f=!0;if("function"!=typeof e)throw new TypeError(ic);function h(t){var r=n,i=a;return n=a=void 0,l=t,o=e.apply(i,r),o}function p(e){return l=e,s=setTimeout(b,t),u?h(e):o}function m(e){var r=e-c,n=e-l,a=t-r;return d?sc(a,i-n):a}function g(e){var r=e-c,n=e-l;return void 0===c||r>=t||r<0||d&&n>=i}function b(){var e=ac();if(g(e))return v(e);s=setTimeout(b,m(e))}function v(e){return s=void 0,f&&n?h(e):(n=a=void 0,o)}function y(){void 0!==s&&clearTimeout(s),l=0,n=c=a=s=void 0}function _(){return void 0===s?o:v(ac())}function x(){var e=ac(),r=g(e);if(n=arguments,a=this,c=e,r){if(void 0===s)return p(c);if(d)return clearTimeout(s),s=setTimeout(b,t),h(c)}return void 0===s&&(s=setTimeout(b,t)),o}return t=js(t)||0,V(r)&&(u=!!r.leading,d="maxWait"in r,i=d?oc(js(r.maxWait)||0,t):i,f="trailing"in r?!!r.trailing:f),x.cancel=y,x.flush=_,x}var lc=cc;let uc=null;function dc(e){return uc||(uc=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){return setTimeout(e,16)}).bind(window)),uc(e)}let fc=null;function hc(e){fc||(fc=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window)),fc(e)}function pc(e){var t=document.createElement("style");return t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function mc(e,t={}){let r=document.createElement(e);return Object.keys(t).forEach(e=>{r[e]=t[e]}),r}function gc(e,t,r){let n=window.getComputedStyle(e,r||null)||{display:"none"};return n[t]}function bc(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};let t=e;while(t!==document){if("none"===gc(t,"display"))return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var vc='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}';let yc=0,_c=null;function xc(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Sc.bind(e));let r=e.__resize_listeners__;if(!r)if(e.__resize_listeners__=[],window.ResizeObserver){let{offsetWidth:t,offsetHeight:r}=e,n=new ResizeObserver(()=>{(e.__resize_observer_triggered__||(e.__resize_observer_triggered__=!0,e.offsetWidth!==t||e.offsetHeight!==r))&&Oc(e)}),{detached:a,rendered:i}=bc(e);e.__resize_observer_triggered__=!1===a&&!1===i,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){Oc(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(yc||(_c=pc(vc)),Tc(e),e.__resize_rendered__=bc(e).rendered,window.MutationObserver){let t=new MutationObserver(e.__resize_mutation_handler__);t.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=t}e.__resize_listeners__.push(t),yc++}function wc(e,t){let r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener)return e.detachEvent("onresize",e.__resize_legacy_resize_handler__),void document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",Ac),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--yc&&_c&&_c.parentNode.removeChild(_c)}}function jc(e){let{width:t,height:r}=e.__resize_last__,{offsetWidth:n,offsetHeight:a}=e;return n!==t||a!==r?{width:n,height:a}:null}function Sc(){let{rendered:e,detached:t}=bc(this);e!==this.__resize_rendered__&&(!t&&this.__resize_triggers__&&(zc(this),this.addEventListener("scroll",Ac,!0)),this.__resize_rendered__=e,Oc(this))}function Ac(){zc(this),this.__resize_raf__&&hc(this.__resize_raf__),this.__resize_raf__=dc(()=>{let e=jc(this);e&&(this.__resize_last__=e,Oc(this))})}function Oc(e){e&&e.__resize_listeners__&&e.__resize_listeners__.forEach(t=>{t.call(e,e)})}function Tc(e){let t=gc(e,"position");t&&"static"!==t||(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};let r=mc("div",{className:"resize-triggers"}),n=mc("div",{className:"resize-expand-trigger"}),a=mc("div"),i=mc("div",{className:"resize-contract-trigger"});n.appendChild(a),r.appendChild(n),r.appendChild(i),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:n,expandChild:a,contract:i},zc(e),e.addEventListener("scroll",Ac,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function zc(e){let{expand:t,expandChild:r,contract:n}=e.__resize_triggers__,{scrollWidth:a,scrollHeight:i}=n,{offsetWidth:o,offsetHeight:s,scrollWidth:c,scrollHeight:l}=t;n.scrollLeft=a,n.scrollTop=i,r.style.width=o+1+"px",r.style.height=s+1+"px",t.scrollLeft=c,t.scrollTop=l}r("1523");const Mc=["legendselectchanged","legendselected","legendunselected","legendscroll","datazoom","datarangeselected","timelinechanged","timelineplaychanged","restore","dataviewchanged","magictypechanged","geoselectchanged","geoselected","geounselected","pieselectchanged","pieselected","pieunselected","mapselectchanged","mapselected","mapunselected","axisareaselected","focusnodeadjacency","unfocusnodeadjacency","brush","brushselected","globalcursortaken","rendered","finished","click","dblclick","mouseover","mouseout","mousedown","mouseup","globalout","contextmenu"];var Cc={props:{options:Object,theme:[String,Object],initOptions:Object,group:String,autoResize:Boolean,watchShallow:Boolean,chartHeight:{type:Number,default:400}},data(){return{chart:null}},computed:{width:{cache:!1,get(){return this.delegateGet("width","getWidth")}},height:{cache:!1,get(){return this.delegateGet("height","getHeight")}},isDisposed:{cache:!1,get(){return!!this.delegateGet("isDisposed","isDisposed")}},computedOptions:{cache:!1,get(){return this.delegateGet("computedOptions","getOption")}},echartsStyle(){return{width:"auto",height:`${this.chartHeight}px`}}},watch:{group(e){this.chart.group=e}},methods:{mergeOptions(e,t,r){this.delegateMethod("setOption",e,t,r)},appendData(e){this.delegateMethod("appendData",e)},resize(e){this.delegateMethod("resize",e)},dispatchAction(e){this.delegateMethod("dispatchAction",e)},convertToPixel(e,t){return this.delegateMethod("convertToPixel",e,t)},convertFromPixel(e,t){return this.delegateMethod("convertFromPixel",e,t)},containPixel(e,t){return this.delegateMethod("containPixel",e,t)},showLoading(e,t){this.delegateMethod("showLoading",e,t)},hideLoading(){this.delegateMethod("hideLoading")},getDataURL(e){return this.delegateMethod("getDataURL",e)},getConnectedDataURL(e){return this.delegateMethod("getConnectedDataURL",e)},clear(){this.delegateMethod("clear")},dispose(){this.delegateMethod("dispose")},delegateMethod(e,...t){if(this.chart)return this.chart[e](...t);Fo.a.util.warn(`Cannot call [${e}] before the chart is initialized. Set prop [options] first.`,this)},delegateGet(e,t){return this.chart||Fo.a.util.warn(`Cannot get [${e}] before the chart is initialized. Set prop [options] first.`,this),this.chart[t]()},init(){if(this.chart)return;let e=i.a.init(this.$el,this.theme,this.initOptions);this.group&&(e.group=this.group),e.setOption(this.options,!0),e.getZr().on("click",e=>!e.target&&this.$emit("blankClick",e)),Mc.forEach(t=>{e.on(t,e=>{this.$emit(t,e)})}),this.autoResize&&(this.__resizeHanlder=lc(()=>{e.resize()},100,{leading:!0}),xc(this.$el,this.__resizeHanlder)),this.chart=e,this.$emit("update:ec",e)},destroy(){this.autoResize&&wc(this.$el,this.__resizeHanlder),this.dispose(),this.chart=null},refresh(){this.destroy(),this.init()}},created(){this.$watch("options",e=>{!this.chart&&e?this.init():this.chart.setOption(this.options,!0)},{deep:!this.watchShallow});let e=["theme","initOptions","autoResize","watchShallow"];e.forEach(e=>{this.$watch(e,()=>{this.refresh()},{deep:!0})})},mounted(){this.options&&this.init()},activated(){this.autoResize&&this.chart&&this.chart.resize()},beforeDestroy(){this.chart&&this.destroy()},connect(e){"string"!==typeof e&&(e=e.map(e=>e.chart)),i.a.connect(e)},disconnect(e){i.a.disConnect(e)},registerMap(e,t,r){i.a.registerMap(e,t,r)},registerTheme(e,t){i.a.registerTheme(e,t)},graphic:i.a.graphic},Ec=Cc;r("46e2");function Lc(e,t,r,n,a,i,o,s){var c,l="function"===typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=r,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),o?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=s?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,t){return c.call(t),u(e,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:l}}var kc=Lc(Ec,tc,rc,!1,null,null,null),Nc=kc.exports,Dc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-empty-data"},[r("span",{domProps:{textContent:e._s(e.emptyText)}})])},Fc=[],Pc={name:"EchartsEmptyData",props:{emptyText:{type:String,default:"暂无数据"}}},$c=Pc,Bc=(r("86eb"),Lc($c,Dc,Fc,!1,null,null,null)),Vc=Bc.exports,Rc=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"ve-charts-loading-mask"},[r("div",{staticClass:"loading-spinner"},[r("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[r("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])])])},Hc=[],Uc=(r("137f"),{}),Gc=Lc(Uc,Rc,Hc,!1,null,null,null),Ic=Gc.exports,Wc={components:{BaseEcharts:Nc,EmptyData:Vc,LoadingChart:Ic},props:{data:{type:[Object,Array],default(){return{}}},settings:{type:[Object,Array],default(){return{}}},title:Object,legend:Object,grid:Object,xAxis:[Object,Array],yAxis:[Object,Array],polar:Object,radiusAxis:Object,angleAxis:Object,radar:[Object,Array],dataZoom:[Object,Array],visualMap:[Object,Array],tooltip:Object,axisPointer:Object,toolbox:Object,brush:Object,geo:Object,parallel:Object,parallelAxis:Array,singleAxis:Array,timeline:Object,graphic:Object,calendar:Object,dataset:Object,series:[Object,Array],color:Array,backgroundColor:[Object,String],textStyle:Object,animation:Object,animationThreshold:Number,animationDuration:[Number,Function],animationEasing:[String,Function],animationDelay:[Number,Function],animationDurationUpdate:[Number,Function],animationEasingUpdate:[String,Function],animationDelayUpdate:[String,Function],blendMode:String,hoverLayerThreshold:Number,useUTC:{type:Boolean,default:!1},tooltipVisible:{type:Boolean,default:!0},legendVisible:{type:Boolean,default:!0},legendPosition:String,theme:[String,Object],loading:{type:Boolean,default:!1},emptyText:String,renderer:{type:String,default:"canvas"},height:{type:Number,default:400}},data(){return{ec:null,initOptions:null}},computed:{chartColor(){return this.theme?this.color:this.color||Xs},isEmptyData(){if(l(this.data)||Vt(this.data)||Ht(this.data))return!0;if(Array.isArray(this.data))return!1;{const e=Sn(this.data,"measures");return 0===e.length}},isEmptySeries(){return l(this.series)||Vt(this.series)||Ht(this.series)},isHasData(){return!this.isEmptyData||!this.isEmptySeries},isHasParentStyle(){return this.loading||this.isEmptyData&&this.isEmptySeries},parentStyle(){const e=this.isHasParentStyle?{position:"relative",height:`${this.height}px`}:{};return e}},watch:{data:{deep:!0,handler(e){e&&this.dataHandler(e)}},settings:{deep:!0,handler(e){this.dataHandler(this.data)}},ec(e){this.$emit("update:ec",e)}},methods:{dataHandler(e){if(!this.chartHandler||this.isEmptyData&&this.isEmptySeries)return;const t={tooltipVisible:this.tooltipVisible,legendVisible:this.legendVisible,isEmptyData:this.isEmptyData,isEmptySeries:this.isEmptySeries,_once:this._once};this.beforeConfig&&(e=this.beforeConfig(e));const r=this.chartHandler(e,No(this.settings),t);r&&("function"===typeof r.then?r.then(this.optionsHandler):this.optionsHandler(r))},optionsHandler(e){if(e.color=this.chartColor,this.legendPosition&&e.legend){const t=this.legendPosition.split("-").shift();e.legend.left=this.legendPosition.split("-").pop(),-1!==["top"].indexOf(t)&&(e.legend.top=0),-1!==["bottom"].indexOf(t)&&(e.legend.bottom=0)}const t=["title","legend","grid","xAxis","yAxis","polar","radiusAxis","angleAxis","radar","dataZoom","visualMap","tooltip","axisPointer","toolbox","brush","geo","parallel","parallelAxis","singleAxis","timeline","graphic","calendar","dataset","series","color","backgroundColor","textStyle","animation","animationThreshold","animationDuration","animationEasing","animationDelay","animationDurationUpdate","animationEasingUpdate","animationDelayUpdate","blendMode","hoverLayerThreshold","useUTC"];t.forEach(t=>{this[t]&&(e[t]=this[t])}),this.animation&&Object.keys(this.animation).forEach(t=>{e[t]=this.animation[t]}),this.options=Object.assign(No(this.options),e)},init(){this.data&&this.dataHandler(this.data)},addWatchToProps(){const e=this._watchers.map(e=>e.expression);Object.keys(this.$props).forEach(t=>{if(!~e.indexOf(t)){const e={};"[object Object]"===Ws(t)&&(e.deep=!0),this.$watch(t,()=>{this.dataHandler(this.data)},e)}})}},created(){this.initOptions={renderer:this.renderer},this._once={},this.addWatchToProps()},mounted(){this.init()}},qc={mixins:[Wc],data(){return{options:Zs,initOptions:{renderer:"canvas"}}}},Jc=qc,Yc=Lc(Jc,o,s,!1,null,null,null),Zc=Yc.exports;class Xc{constructor(e,t,r){this.data=e,this.settings=t,this.extra=r}chartHandler(){}}var Kc=Xc;class Qc extends Kc{static getBarTooltip(e){const{tooltipFormatter:t}=e;return{trigger:"axis",axisPointer:{type:"shadow"},formatter:t}}static getBarLegend(e,t){const{measures:r}=e,{legendType:n,legendPadding:a,waterfall:i}=t;let o={type:n||"plain",padding:a||5};return i&&!0===i&&(o["data"]=r.filter(({name:e})=>{if("secondaryMeasure"!==e)return e})),o}static getBarGrid(e){const t={right:30,bottom:10,left:30,containLabel:!0};return e?t:Zs.grid}static getBarDimAxis(e){const{dimAxisType:t}=e,r={type:t,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400}},n=[];return n.push(r),n}static getBarMeaAxis(e,t){const{meaAxisType:r,meaAxisDigits:n,yAxisScale:a=!1,percentage:i=!1,yAxisName:o,yAxisInterval:s,yAxisMax:c,yAxisMin:l}=t,u={type:"value",scale:a,axisTick:{show:!1},min:i?0:null,max:i?1:null},d=[];return r.forEach((e,t)=>{const r={margin:10,fontWeight:400};if("normal"!==e)if(Ye(n)){let a=Ht(n[t])?0:n[t];r.formatter=t=>Js(e,t,a)}else r.formatter=t=>Js(e,t,n);const a={...u,axisLabel:r};o&&o.length&&(a["name"]=o[t]),s&&s.length&&s[t]&&(a["interval"]=Number(s[t])),!1===i&&c&&c.length&&(a["max"]=c[t]),!1===i&&l&&l.length&&(a["min"]=l[t]),d.push(a)}),d}static getBarLabel(e,t){const{position:r=(t?"right":"top"),formatType:n="currency",formatDigits:a=0,...i}=e,o=e=>{const{value:t,seriesIndex:r}=e;return t.shift(),Js(n,t[r],a)};return{position:r,formatter:o,...i}}static getBarSeries(e,t,r){const{measures:n}=e,{label:a={},showLine:i=[],stack:o=null,secondMeaAxis:s=[],itemStyle:c={},waterfall:l,...u}=t,d=r?"xAxisIndex":"yAxisIndex",f=[],h=o&&Us(o);return n.forEach(({name:e})=>{let t={};a instanceof Array?(t=a.filter(t=>t.name===e)[0],void 0===t&&(t={})):t=a;const n=i.includes(e)?"line":"bar",p={type:n,name:e,label:Qc.getBarLabel(t,r),stack:o&&h[e],[d]:s.includes(e)?"1":"0",itemStyle:c[e]?c[e]:{},...u};l&&!0===l&&"secondaryMeasure"===e&&(p["itemStyle"]=Qs[e]),f.push(p)}),f}bar(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r,{direction:o="column",secondMeaAxis:s=null,yAxisLabelType:c,yAxisLabelDigits:l=0,yAxisName:u,xAxisLabelType:d,xAxisLabelDigits:f=0,xAxisName:h}=t,p="column"!==o&&"row"===o,m=null!==s?["normal","normal"]:["normal"];t.meaAxisType=(p?d:c)||m,t.meaAxisDigits=p?f:l,t.meaAxisName=(p?h:u)||[],t.dimAxisType=(p?c:d)||"category",t.dimAxisDigits=p?l:f,t.dimAxisName=(p?u:h)||"",m.length>t.meaAxisType.length&&(t.meaAxisType=m.fill(t.meaAxisType[0])),r.chartType="bar";const g=!i&&qs(e,t,r),b=n&&Qc.getBarTooltip(t),v=a&&Qc.getBarLegend(e,t),y=Qc.getBarGrid(p),_=p?Qc.getBarMeaAxis(e,t):Qc.getBarDimAxis(t),x=p?Qc.getBarDimAxis(t):Qc.getBarMeaAxis(e,t),w=Qc.getBarSeries(e,t,p),{yAxisInverse:j,xAxisInverse:S}=t;void 0!==j&&x.forEach(e=>{e.inverse=j}),void 0!==S&&_.forEach(e=>{e.inverse=S});const A={grid:y,dataset:g,tooltip:b,legend:v,xAxis:_,yAxis:x,series:w};return A}}var el=Qc,tl={name:"VeBarChart",mixins:[Zc],created(){this.chartHandler=(new el).bar}};class rl extends Kc{static getPieDataset(e,t,r){const n=[];if(r.chartType="pie",e.length&&1!==e.length){if(e.length>1)for(let a of e)n.push(qs(a,t,r))}else n.push(qs(e,t,r));return n}static getPieTooltip(e){return{trigger:"item"}}static getPieLegend(e){const{data:t,settings:r}=e;let n;n=Array.isArray(t)&&t.length>0?t[0].dimensions:t.dimensions;const{legendType:a="plain",legendPadding:i=5,legendSelected:o=n.data.length}=r,s=e=>{let t={};const r=n.data.slice(e);for(let n of r)t[n]=!1;return t};return{type:a,padding:i,selected:s(o)}}static getPieSeries(e){const{data:t,settings:r,isDonut:n}=e;let a=[];if(void 0===t.length)a=this.handleData(t,r,n);else if(1===t.length)a=this.handleData(t[0],r,n);else if(2===t.length)for(let i in t)a.push(this.handleData(t[i],r[i],n,i)[0]);return a}static handleData(e,t,r,n=0){const a=[],{measures:i}=e,{offsetY:o,radius:s=(r?["50%","70%"]:[0,"75%"]),selectedMode:c=!1,...l}=t;return i.forEach(({name:e,data:t},r)=>{a.push({type:"pie",name:e,selectedMode:c,center:o?["50%",o]:["50%","50%"],radius:s,datasetIndex:n,...l})}),a}static chartHandler(e,t,r,n=!1){const{tooltipVisible:a,legendVisible:i}=r,o=rl.getPieDataset(e,t,r),s=a&&rl.getPieTooltip(),c=i&&rl.getPieLegend({data:e,settings:t}),l=rl.getPieSeries({data:e,settings:t,isDonut:n}),u={dataset:o,tooltip:s,legend:c,series:l};return u}pie(e,t,r){return rl.chartHandler(e,t,r,!1)}donut(e,t,r){return rl.chartHandler(e,t,r,!0)}}var nl=rl,al={name:"VeDonutChart",mixins:[Zc],created(){this.chartHandler=(new nl).donut}};function il(e,t,r){var n=-1,a=e.length;while(++nt}var fl=dl;function hl(e){return e&&e.length?ol(e,$o,fl):void 0}var pl=hl;class ml extends Kc{static getFunnelTooltip(e){return{trigger:"item"}}static getFunnelLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getFunnelSeries(e){const{data:t,settings:r}=e,{dimensions:n,measures:a}=t,i=n&&`${n.name}`,{funnelSort:o="desc",funnelAlign:s="center",contrast:c=!1,symmetric:l=!1,labelPosition:u="outside",funnelLabel:d,...f}=r,h=e=>{if(e.length>2)return void Fo.a.util.warn("data.measures.length is more then 2 in [Contrastive funnel chart]. Please use 2 measures",this);let t="";if(e.length>1){const r=e.reduce((e,t)=>Ds(ul([pl(e.data),pl(t.data)])/pl([pl(e.data),pl(t.data)]),2));t=`${100*r}%`}return t},p=(e,t)=>e?0===t?"10%":"50%":"10%",m=(e,t)=>e?0===t?"right":"left":s,g=(e,t)=>{const{contrast:r,symmetric:n,funnelLabel:i}=e;if(i)return Array.isArray(i)?i[t]:i;let o={normal:{position:u}};if(r){const e={normal:{position:"inside",formatter:e=>{const t=a.reduce((e,t)=>pl([pl(e.data),pl(t.data)])),[,,r]=e.value;return`${Math.round(r/t*100,2)}%`}},emphasis:{position:"inside",formatter:e=>{const t=a.reduce((e,t)=>pl([pl(e.data),pl(t.data)])),[r,,n]=e.value;return`${r} ${Math.round(n/t*100,2)}%`}}};o=0===t?o:e}if(n){const e={normal:{position:"outside"!==u?u:"left"}},r={normal:{position:"outside"!==u?u:"right"}};o=0===t?e:r}return o},b=(e,t)=>({itemName:e,value:t}),v=[];return a.forEach(({name:e,data:t},r)=>{v.push({type:"funnel",name:e,sort:"desc"===o?"descending":"ascending",funnelAlign:m(l,r),width:l?"40%":"80%",x:p(l,r),maxSize:c&&0!==r?h(a):"100%",label:g({contrast:c,symmetric:l,funnelLabel:d},r),encode:b(i,e),...f})}),v}funnel(e,t,r){const{tooltipVisible:n,legendVisible:a}=r;r.chartType="funnel";const i=qs(e,t,r),o=n&&ml.getFunnelTooltip(),s=a&&ml.getFunnelLegend({settings:t}),c=ml.getFunnelSeries({data:e,settings:t}),l={dataset:i,tooltip:o,legend:s,series:c};return l}}var gl=ml,bl={name:"VeFunnelChart",mixins:[Zc],created(){this.chartHandler=(new gl).funnel}};class vl extends Kc{static getGaugeTooltip(){return{trigger:"item"}}static getGaugeSeries(e){const{data:t,settings:r}=e,{name:n,data:a}=t&&t.measures&&t.measures[0],{min:i=0,max:o=100,offsetY:s,radius:c="75%",...l}=r;return[{name:n,type:"gauge",min:i,max:o,center:s?["50%",s]:["50%","50%"],radius:c,data:a,...l}]}gauge(e,t,r){const{tooltipVisible:n}=r,a=n&&vl.getGaugeTooltip(),i=vl.getGaugeSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var yl=vl,_l={name:"VeGaugeChart",mixins:[Zc],created(){this.chartHandler=(new yl).gauge}},xl=ks("ceil"),wl=xl,jl=r("0e45"),Sl=r("274d"),Al=r("2814");class Ol extends Kc{static convertCityName(e){return isNaN(1*e)?e:Al[e]}static convertCoord(e){return jl[e]||Sl[e]}static convertCityData(e,t){const{index:r,connect:n}=t,a=n?n.dataIndex:-1,i=n?n.seriesIndex:-1,o=n?n.symbolSize:10,s=n?n.normalShadowBlur:0,c=[];for(let l=0;l{const t=e.map(e=>parseInt(e.value));return Math.max(...t)}).reduce((e,t)=>e+t);return n&&n.forEach(({name:e,data:t},r)=>{const n=s?t:c?Ol.convertLinesData(e,t):Ol.convertCityData(t,{index:r,connect:w}),A={normal:{show:!1},emphasis:{show:!1}};c?(e=Ol.convertCityName(e),S.push({name:e,type:"lines",zlevel:1,effect:{show:m,period:5,trailLength:0,color:"#fff",symbolSize:3,...g},lineStyle:{normal:{width:0}},data:n},{name:e,type:"lines",zlevel:2,effect:{show:b,period:5,trailLength:.4,symbol:"arrow",symbolSize:6,...v},lineStyle:{normal:{color:"#ED3574",width:1,opacity:.6,curveness:.2,...x}},data:n},{name:e,type:"effectScatter",coordinateSystem:"geo",zlevel:2,showEffectOn:"render",rippleEffect:{brushType:"stroke"},label:y?{normal:{show:!0,formatter:"{b}",..._.normal},emphasis:{..._.emphasis}}:A,symbolSize:f,itemStyle:{},data:Ol.convertEffectScatterData(t)},{name:e,type:"effectScatter",coordinateSystem:"geo",zlevel:3,showEffectOn:"render",rippleEffect:{brushType:"stroke"},label:y?{normal:{show:!0,formatter:"{b}",..._.normal},emphasis:{..._.emphasis}}:A,symbolSize:f,itemStyle:{},data:[{name:e,value:Ol.convertCoord(e)}]})):(S[r]={name:e,type:a,roam:h,visualMap:u,label:o?d:A,selectedMode:"single",mapType:i,data:n,zoom:p},l&&(S[r].itemStyle=l),s||(S[r]={...S[r],coordinateSystem:"geo",label:A,symbolSize:f,showEffectOn:"render",rippleEffect:{brushType:"stroke"},itemStyle:{}})),j.push(e)}),{legendData:j,seriesData:S,max:wl(A,-2)}}static getGeoTooltip(e,t){const r=function(e){const{seriesName:r,name:n,value:a,marker:i,seriesType:o,data:s}=e,c=Array.isArray(a)?a[2]:a;if(t){const{fromName:e,toName:t,name:r}=s;return"effectScatter"===o?`线路:${r} ${c||""}`:"lines"===o?`${e} -> ${t}
${c}`:`${t}`}return`${r}
${i}${n}: ${c}`};return e?{trigger:"item"}:{trigger:"item",formatter:r}}static getGeoLegend(e){const{legendData:t,settings:r}=e,{legendType:n="plain",legendPadding:a=5}=r;return{type:n,padding:a,data:t}}static getGeo(e){const{labelVisible:t=!1,label:r,itemStyle:n,silent:a=!1,zoom:i=1,roam:o=!1,mapName:s="china"}=e.settings,c={normal:{show:!1},emphasis:{show:!1}},l={map:s,silent:a,roam:o,selectedMode:"single",label:t?r:c,zoom:i};return n&&(l.itemStyle=n),l}static getVisualMap(e){const{max:t=200,settings:r}=e,{visualMap:n}=r;return{min:0,max:t,left:"left",top:"bottom",show:!0,calculable:!0,...n}}static async registerMap(e){const{mapName:t="china",specialAreas:r,mapUrlPrefix:n=ec,_once:a}=e;let o={};return a[t]||(o=await Is({mapName:t,mapUrlPrefix:n}),Object.assign(a,{[t]:!0}),i.a.registerMap(t,o,r)),o}async geo(e,t,r){const{tooltipVisible:n,legendVisible:a,_once:i}=r,{mode:o="map",visualMapVisible:s=!1}=t,c="map"===o,l="lines"===o;t.isMapMode=c,t.isLinesMode=l;const{legendData:u,seriesData:d,max:f}=Ol.getGeoData({data:e,settings:t}),h=n&&Ol.getGeoTooltip(c,l),p=a&&Ol.getGeoLegend({legendData:u,settings:t}),m=!c&&Ol.getGeo({data:e,settings:t}),g=s&&Ol.getVisualMap({max:f,settings:t}),b={tooltip:h,legend:p,visualMap:g,geo:m,series:d},v={mapName:t.mapName,specialAreas:t.specialAreas,mapUrlPrefix:t.mapUrlPrefix,_once:i};return await Ol.registerMap(v),b}}var Tl=Ol,zl={name:"VeGeoChart",mixins:[Zc],created(){this.chartHandler=(new Tl).geo}};class Ml extends Kc{static getLineTooltip(e){const{tooltipFormatter:t}=e;return{trigger:"axis",formatter:t}}static getLineLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getLineDimAxis(e){const{settings:t}=e,r=t.yAxisType||"category";return{type:r,boundaryGap:!1,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400}}}static getLineMeaAxis(e){const{settings:t}=e,{yAxisScale:r,yAxisLabelType:n,yAxisLabelDigits:a,yAxisName:i,yAxisInterval:o,yAxisMax:s,yAxisMin:c,percentage:l=!1}=t;let u={type:"value",scale:r,axisTick:{show:!1},axisLabel:{margin:10,fontWeight:400,formatter:e=>Js(n,e,a)},min:l?0:null,max:l?1:null};return i&&(u["name"]=i),o&&(u["interval"]=Number(o)),s&&(u["max"]=s),c&&(u["min"]=c),u}static getLineLabel(e){const{position:t="top",formatType:r="currency",formatDigits:n=0,...a}=e,i=e=>{const{value:t,seriesIndex:a}=e;return t.shift(),Js(r,t[a],n)};return{normal:{position:t,formatter:i,...a}}}static getLineSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{label:a={},showSymbol:i=!0,smooth:o=!1,stack:s=null,step:c=null,symbol:l="emptyCircle",symbolSize:u=4,itemStyle:d={},...f}=r,h=[],p=s&&Us(s);function m(e){return{normal:{width:2}}}return n.forEach(({name:e,data:t},r)=>{h.push({type:"line",name:e,label:this.getLineLabel(a),lineStyle:m(),showSymbol:i,smooth:o,stack:s&&p[e],step:c,symbol:l,symbolSize:u,itemStyle:d[e]?d[e]:{},...f})}),h}line(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r;r.chartType="line";const o=!i&&qs(e,t,r),s=n&&Ml.getLineTooltip(t),c=a&&Ml.getLineLegend({settings:t}),l=Ml.getLineDimAxis({settings:t}),u=Ml.getLineMeaAxis({settings:t}),d=!i&&Ml.getLineSeries({data:e,settings:t}),f={dataset:o,tooltip:s,legend:c,xAxis:l,yAxis:u,series:d};return f}}var Cl=Ml,El={name:"VeLineChart",mixins:[Zc],created(){this.chartHandler=(new Cl).line}},Ll={name:"VePieChart",mixins:[Zc],created(){this.chartHandler=(new nl).pie}};class kl extends Kc{static getRadarTooltip(){return{trigger:"item"}}static getRadarLegend(e){const{data:t,settings:r}=e,{legendType:n="plain",legendPadding:a=5}=r,{measures:i}=t;return{type:n,padding:a,data:i.map(e=>e.name)}}static getRadarRadar(e){const{data:t,settings:r}=e,{offsetY:n="50%",radius:a="75%",splitNumber:i=5,shape:o="polygon",splitArea:s={}}=r;return{name:{textStyle:{padding:[3,5]}},center:["50%",n],radius:a,splitNumber:i,shape:o,splitArea:s,indicator:t.dimensions}}static getRadarSeries(e){const{itemStyle:t}=e,{measures:r}=e.data,n=[];return r.forEach((e,r)=>{n.push({type:"radar",data:[{name:e.name,value:e.data}],itemStyle:Object.assign({},t)})}),n}radar(e,t,r){const{tooltipVisible:n,legendVisible:a,isEmptyData:i}=r,{itemStyle:o}=t;if(i)return{};const s=n&&kl.getRadarTooltip(),c=a&&kl.getRadarLegend({data:e,settings:t}),l=kl.getRadarRadar({data:e,settings:t}),u=kl.getRadarSeries({data:e,itemStyle:o}),d={tooltip:s,legend:c,radar:l,series:u};return d}}var Nl=kl,Dl={name:"VeRadarChart",mixins:[Zc],created(){this.chartHandler=(new Nl).radar}};class Fl extends Kc{static getScatterDataset(e,t,r){const n=[],{measures:a}=e;if(Ye(a))return a.forEach(e=>{n.push({source:e.data})}),n}static getScatterTooltip(e){return{}}static getScatterLegend(e){const{settings:t}=e,{legendType:r="plain",legendPadding:n=5}=t;return{type:r,padding:n}}static getScatterSeries(e){const{data:t,settings:r}=e,{connect:n,...a}=r,i=[];return t.measures.forEach(({name:e},t)=>{i[t]={type:"scatter",name:e,datasetIndex:t,...a}}),i}static getScatterXAxis(e){const{settings:t}=e,{xAxisScale:r=!1,xAxisName:n,xAxisNameGap:a,xAxisNameLocation:i}=t;let o={scale:r,nameGap:5,splitLine:{lineStyle:{type:"dashed"}}};return n&&(o["name"]=n),a&&(o["nameGap"]=a),i&&(o["nameLocation"]=i),o}static getScatterYAxis(e){const{settings:t}=e,{yAxisScale:r=!1,yAxisName:n}=t;let a={scale:r,splitLine:{lineStyle:{type:"dashed"}}};return n&&(a["name"]=n),a}scatter(e,t,r){const{tooltipVisible:n,legendVisible:a}=r,i=Fl.getScatterDataset(e,t,r),o=n&&Fl.getScatterTooltip({data:e}),s=a&&Fl.getScatterLegend({settings:t}),c=Fl.getScatterSeries({data:e,settings:t}),l=Fl.getScatterXAxis({settings:t}),u=Fl.getScatterYAxis({settings:t}),d={dataset:i,tooltip:o,legend:s,series:c,xAxis:l,yAxis:u};return d}}var Pl=Fl,$l={name:"VeScatterChart",mixins:[Zc],created(){this.chartHandler=(new Pl).scatter}};class Bl extends Kc{static getTreemapTooltip(e){return{formatter:"{b}:
{c}"}}static getTreemapSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{name:a="根级",levels:i=Ks,...o}=r,s=[];return s.push({type:"treemap",name:a,levels:i,data:n,...o}),s}treemap(e,t,r){const{tooltipVisible:n}=r,a=n&&Bl.getTreemapTooltip(),i=Bl.getTreemapSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var Vl=Bl,Rl={name:"VeTreemapChart",mixins:[Zc],created(){this.chartHandler=(new Vl).treemap}};class Hl extends Kc{static getBarTooltip(e){const{settings:t}=e,{tooltip:r}=t;return{...r}}static getSunburstSeries(e){const{data:t,settings:r}=e,{measures:n}=t,{label:a={},itemStyle:i={},...o}=r,s=[];return n.forEach(({name:e,data:t},r)=>{const n="sunburst",c={type:n,name:e,data:t,label:a,itemStyle:i,...o};s.push(c)}),s}sunburst(e,t,r){const n=Hl.getBarTooltip({settings:t}),a=Hl.getSunburstSeries({data:e,settings:t}),i={series:a};return 0!==Object.keys(n).length&&(i["tooltip"]=n),i}}var Ul=Hl,Gl={name:"VeSunburstChart",mixins:[Zc],created(){this.chartHandler=(new Ul).sunburst}};class Il extends Kc{static getTreeTooltip(){return{trigger:"item",triggerOn:"mousemove"}}static getTreeLegend(e,t){const{legendType:r="plain",legendPadding:n=5}=t,{measures:a}=e;return{type:r,padding:n,data:a.map(e=>e.name)}}static formatTreeLabels(e="LR",t=0){let[r,n,a,i]=["","","",""];switch(e){case"LR":r="left",n="right",a="right",i="left";break;case"RL":r="right",n="left",a="left",i="right";break;case"TB":r="top",n=t>0?"right":"middle",a="bottom",i=t>0?"left":"middle";break;case"BT":r="bottom",n=t>0?"right":"middle",a="top",i=t>0?"left":"middle";break;default:}return{label:{normal:{position:r,verticalAlign:"middle",align:n,rotate:t}},leaves:{label:{normal:{position:a,verticalAlign:"middle",align:i,rotate:t}}}}}static getTreeSeries(e,t){const{seriesMap:r=[],labelRotate:n}=t,a=e.measures.map((e,t)=>{const a=r&&r[t]&&r[t].layout,i=r&&r[t]&&r[t].orient,o="radial"===a?{}:Il.formatTreeLabels(i,n),s={type:"tree",name:e.name,data:[e.value],...o,...r[t]};return s});return a}tree(e,t,r){const{tooltipVisible:n,legendVisible:a}=r,i=n&&Il.getTreeTooltip(),o=a&&Il.getTreeLegend(e,t),s=Il.getTreeSeries(e,t),c={tooltip:i,legend:o,series:s};return c}}var Wl=Il,ql={name:"VeTreeChart",mixins:[Zc],created(){this.chartHandler=(new Wl).tree}};class Jl extends Kc{static getWordcloudSeries(e){const{data:t,settings:r}=e,{measures:n}=t,a="wordCloud",i=[],o={type:a,data:n,...r};return i.push(o),i}wordcloud(e,t,r){const{tooltip:n}=t,a=Jl.getWordcloudSeries({data:e,settings:t}),i={tooltip:n,series:a};return i}}var Yl=Jl,Zl={name:"VeWordcloudChart",mixins:[Zc],created(){this.chartHandler=(new Yl).wordcloud}};class Xl extends Kc{static getSeries(e){const{measures:t}=e.data,r=e.settings,n=[];return n.push({type:"liquidFill",data:[...t],...r}),n}liquidfill(e,t,r){const{isEmptyData:n}=r,{tooltip:a}=t;if(n)return{};const i=Xl.getSeries({data:e,settings:t}),o={tooltip:a,series:i};return o}}var Kl=Xl,Ql={name:"VeLiquidfillChart",mixins:[Zc],created(){this.chartHandler=(new Kl).liquidfill}};class eu extends Kc{static getTooltip(e){return{}}static getLegend(e){const{measures:t}=e;return{show:!0,data:t.map(e=>e.name)}}static getPolar(e){return{}}static getAngleAxis(e){const{radial:t=!1}=e;return{type:t?"category":"value"}}static getRadiusAxis(e){const{radial:t=!1}=e;return{type:t?"value":"category",z:10}}static getSeries({data:e,settings:t}){const{measures:r}=e,{polarType:n="line",stack:a=null,...i}=t,o=r.map((e,t)=>({type:n,coordinateSystem:"polar",stack:a,...i}));return o}polar(e,t,r){const{legendVisible:n,tooltipVisible:a,isEmptyData:i}=r;if(i)return{};const o=a&&eu.getTooltip(t),s=n&&eu.getLegend(e),c=eu.getPolar(t),l=eu.getAngleAxis(t),u=eu.getRadiusAxis(t),d=!i&&qs(e,t,r),f=eu.getSeries({data:e,settings:t}),h={tooltip:o,legend:s,polar:c,angleAxis:l,radiusAxis:u,dataset:d,series:f};return h}}var tu=eu,ru={name:"VePolarChart",mixins:[Zc],created(){this.chartHandler=(new tu).polar}};class nu extends Kc{static getTooltip(e){return{}}static getSeries({data:e,settings:t}){const{dimensions:r,measures:n}=e,{orient:a="horizontal",draggable:i=!0,focusNodeAdjacency:o=!1,...s}=t;return{type:"sankey",data:r,edges:n,orient:a,draggable:i,focusNodeAdjacency:o,...s}}sankey(e,t,r){const{tooltipVisible:n,isEmptyData:a}=r;if(a)return{};const i=n&&nu.getTooltip(t),o=nu.getSeries({data:e,settings:t}),s={tooltip:i,series:o};return s}}var au=nu,iu={name:"VeSankeyChart",mixins:[Zc],created(){this.chartHandler=(new au).sankey}};const ou=[tl,al,bl,_l,zl,El,Ll,Dl,$l,Rl,Gl,ql,Zl,Ql,ru,iu],su=e=>{su.installed||ou.forEach(t=>{e.component(t.name,t)})};"undefined"!==typeof window&&window.Vue&&(window.Vue.use(su),su.installed&&(su.installed=!1));var cu={install:su,VeBarChart:tl,VeDonutChart:al,VeFunnelChart:bl,VeGaugeChart:_l,VeGeoChart:zl,VeLineChart:El,VePieChart:Ll,VeRadarChart:Dl,VeScatterChart:$l,VeTreemapChart:Rl,VeSunburstChart:Gl,VeTreeChart:ql,VeWordcloudChart:Zl,VeLiquidfillChart:Ql,VePolarChart:ru,VeSankeyChart:iu};t["default"]=cu},ff6f:function(e,t,r){var n=r("068a");"string"===typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);var a=r("499e").default;a("3a96cc98",n,!0,{sourceMap:!1,shadowMode:!1})}})["default"]})); \ No newline at end of file diff --git a/package.json b/package.json index 2777222..39e9bce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ve-charts", - "version": "0.8.8", + "version": "0.9.0", "description": "ECharts 4.x for Vue.js 2.x.", "main": "lib/ve-charts.umd.min.js", "unpkg": "lib/ve-charts.umd.min.js",