import echarts from "../../../utils/echarts"; let ringEcharts = undefined; let barEcharts = undefined; let tbEcharts = undefined; export function advertisementSpendInit(ele, list) { // 柱图 barEcharts && barEcharts.clear && barEcharts.clear(); if (!barEcharts) barEcharts = echarts.init(ele); barEcharts.setOption({ tooltip: { valueFormatter: e => { return "环比:" + (e.toFixed(2) - 0) + "%"; }, }, toolbox: { feature: { saveAsImage: {}, }, }, grid: { top: "40px", left: "3%", right: "4%", bottom: "3%", containLabel: true, }, xAxis: { data: list.L.map(v => v.date), axisLine: { onZero: true }, splitLine: { show: false }, splitArea: { show: false }, axisLabel: { interval: 0, rotate: 40, }, }, yAxis: { axisLabel: { formatter: e => { let N = e || 0; return N + "%"; }, }, }, series: [ { name: list.L[0].type, type: "bar", stack: list.L[0].type, itemStyle: { color: "#91cc75", }, label: { // 柱图头部显示值 show: true, position: "top", color: "#333", fontSize: "12px", formatter: params => { return params.value.toFixed(2) - 0 + "%"; }, }, emphasis: { itemStyle: { shadowBlur: 10, shadowColor: "rgba(0,0,0,0.3)", }, }, data: list.L.map(v => v.value), }, ], }); } export function advertisementRingRatioInit(ele, list) { // 折线图 ringEcharts && ringEcharts.clear && ringEcharts.clear(); if (!ringEcharts) ringEcharts = echarts.init(ele); let keys = list.F.length > list.L.length ? list.F : list.L; ringEcharts.setOption({ tooltip: { trigger: "axis", formatter(e) { let out = ""; for (let i = 0; i < (e || []).length; i++) { const v = (e || [])[i]; let month = (v.axisValue || "").split("-"); month = month.reverse()[0]; let N = v.value || 0; if (N >= 100000000) N = (N / 100000000).toFixed(2) - 0 + "亿"; else if (N >= 10000) N = (N / 10000).toFixed(2) - 0 + "万"; out += v.seriesName + "-" + month + ": " + N + "
"; } return out; }, }, legend: { data: [list.F[0].type, list.L[0].type], top: "10px", }, grid: { top: "40px", left: "3%", right: "6%", bottom: "3%", containLabel: true, }, toolbox: { feature: { saveAsImage: {}, }, }, xAxis: { type: "category", boundaryGap: false, data: keys.map(v => v.date), }, yAxis: { type: "value", scale: true, axisLabel: { formatter: e => { let N = e || 0; if (N >= 100000000) N = (N / 100000000).toFixed(2) - 0 + "亿"; else if (N >= 10000) N = (N / 10000).toFixed(2) - 0 + "万"; return N; }, }, }, series: [ { name: list.F[0].type, type: "line", stack: "F", showSymbol: false, data: list.F.map(v => v.value), }, { name: list.L[0].type, type: "line", stack: "L", showSymbol: false, data: list.L.map(v => v.value), }, ], }); } export function advertisementFeeInit(ele, list) { // 折线图 tbEcharts && tbEcharts.clear && tbEcharts.clear(); if (!tbEcharts) tbEcharts = echarts.init(ele); let keys = list.F.length > list.L.length ? list.F : list.L; tbEcharts.setOption({ tooltip: { trigger: "axis", formatter: a => { let t = list.L[a[0].dataIndex] || undefined; let t1 = list.F[a[1].dataIndex] || undefined; if (!t) return ""; return ( t.t + ": " + (t.value.toFixed(2) - 0 + "%") + "
" + t1.t + ": " + (t1.value.toFixed(2) - 0 + "%") ); }, }, legend: { data: [list.F[0].type, list.L[0].type], top: "30px", }, grid: { top: "60px", left: "3%", right: "6%", bottom: "3%", containLabel: true, }, toolbox: { feature: { saveAsImage: {}, }, }, xAxis: { type: "category", boundaryGap: false, data: keys.map(v => v.date), }, yAxis: { type: "value", axisLabel: { formatter: e => { let N = e || 0; if (N >= 100000000) N = (N / 100000000).toFixed(2) - 0 + "亿"; else if (N >= 10000) N = (N / 10000).toFixed(2) - 0 + "万"; return N + "%"; }, }, }, series: [ { name: list.F[0].type, type: "line", stack: "Total", showSymbol: false, data: list.F.map(v => v.value), }, { name: list.L[0].type, type: "line", stack: "Total", showSymbol: false, data: list.L.map(v => v.value), }, ], }); }