zhuzhansheji/src/views/ZHDY.vue

2056 lines
53 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="box">
<div class="title">
<img src="../assets/客户侧总体用能情况分析/图层 2.png" alt="" />
<p>智慧售电云平台</p>
<img src="../assets/客户侧总体用能情况分析/反白稿.png" alt="" />
</div>
<div class="containter">
<div class="left">
<div class="ndqyyh">
<p class="title">年度签约用户</p>
<div class="bg_title">
<p class="tit_first">2451<span class="tit_danwei"></span></p>
<div class="tit_second">
<div>
<p>同比</p>
<p class="tb_percent">
12.23%
<img src="../assets/zhsdy/325数值上升 (4).png" alt="" />
</p>
</div>
<div>
<p>环比</p>
<p class="tb_percent">
27.16% <img src="../assets/zhsdy/325数值上升(1).png" alt="" />
</p>
</div>
</div>
</div>
<div id="qyyh"></div>
</div>
<div class="ndsdl">
<p class="title">年度售电量</p>
<div class="bg_title">
<p class="tit_first">7,5624<span class="tit_danwei">MWH</span></p>
<div class="tit_second">
<div>
<p>同比</p>
<p class="tb_percent">
12.23%
<img src="../assets/zhsdy/325数值上升 (4).png" alt="" />
</p>
</div>
<div>
<p>环比</p>
<p class="tb_percent">
27.16% <img src="../assets/zhsdy/325数值上升(1).png" alt="" />
</p>
</div>
</div>
</div>
<div id="ndsdl"></div>
</div>
</div>
<div class="right">
<div class="ndsdje">
<p class="title">年度售电金额</p>
<div id="ndsdje">
<div class="infos" v-for="(item, index) in lists" :key="index">
<div class="first">
<p>
<img src="../assets/zhsdy/组 3189.png" alt="" />
<span class="titles">{{ item.title }}</span>
</p>
<p class="money">
{{ item.money }}<span class="danwei">万元</span>
</p>
</div>
<div class="second">
<div class="s_tit">
<div>
<p>同比</p>
<p class="tb_percent">
{{ item.tb }}%
<img src="../assets/zhsdy/325数值上升 (4).png" alt="" />
</p>
</div>
<div>
<p>环比</p>
<p class="tb_percent">
{{ item.hb }}%
<img src="../assets/zhsdy/325数值上升(1).png" alt="" />
</p>
</div>
</div>
<div class="bigBox">
<div
class="smallBox"
:style="{ width: `${item.percent}px` }"
></div>
</div>
</div>
</div>
</div>
</div>
<div class="pcfx">
<p class="title">偏差分析</p>
<div id="pcfx">
<div class="pc_tit" v-for="(item, index) in pclist" :key="index">
<div class="pc_l">
<img src="../assets/zhsdy/组 3192.png" alt="" />
<span class="pc_name">{{ item.name }}</span>
<span class="pc_count">{{ item.count }}</span>
<span class="pc_danwei">{{ item.danwei }}</span>
</div>
<div class="pc_r">
<p>环比</p>
<p class="tb_percent">
{{ item.hb }}%
<img src="../assets/zhsdy/325数值上升(1).png" alt="" />
</p>
</div>
</div>
<div id="pcfxb"></div>
</div>
</div>
<div class="yhhyzb">
<p class="title">用户行业占比</p>
<div id="yhhyzb"></div>
</div>
</div>
<div id="map"></div>
<div class="tooltip">
<p class="first">山东省</p>
<p class="second">8000<sapn class="danwei1"></sapn></p>
<p class="thrid">7895<span class="danwei2">kwh)</span></p>
</div>
<div class="footer">
<div class="ndqylfb">
<p class="title">年度签约量分布</p>
<div id="ndqylfb"></div>
</div>
<div class="ggzcxx">
<p class="title">公告政策信息</p>
<div id="ggzcxx">
<ul>
<li v-for="(item, index) in infos">
<img src="../assets/zhsdy/组 3147.png" alt="" class="img" />
<span class="times">{{ item.time }}</span>
<span class="info">{{ item.info }}</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
const fontSizeRem = (size) => {
const clientWidth =
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth;
if (!clientWidth) return;
let fontSize = clientWidth / 1920; //尺寸大小
return size * fontSize;
};
import * as echarts from "echarts";
// import { fontSizeRem } from "../assets/function";
export default {
data() {
return {
res: "日",
type: "电",
option: {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
backgroundColor: "rgba(9, 24, 48, 0.5)",
borderColor: "rgba(75, 253, 238, 0.4)",
textStyle: {
color: "#CFE3FC",
},
borderWidth: 1,
},
grid: {
top: "15%",
right: "5%",
left: "8%",
bottom: "12%",
},
xAxis: [
{
name: "",
type: "category",
data: [
"济南",
"烟台",
"威海",
"德州",
"滨州",
"泰安",
"临沂",
"烟台",
"青岛",
"青岛",
"青岛",
"青岛",
"青岛",
],
axisLine: {
lineStyle: {
color: "#FFFFFF",
},
},
axisLabel: {
margin: 10,
color: "#e2e9ff",
textStyle: {
// fontSize: 12,
fontSize: "0.0625rem",
},
},
axisTick: {
show: false,
},
},
],
yAxis: [
{
name: "单位MWh",
axisLabel: {
formatter: "{value}",
color: "#e2e9ff",
},
axisTick: {
show: false,
},
axisLine: {
show: true,
lineStyle: {
color: "#FFFFFF",
},
},
splitLine: {
lineStyle: {
color: "rgba(255,255,255,0.12)",
},
},
},
],
series: [
{
type: "bar",
data: [
760, 520, 850, 400, 756, 200, 400, 700, 550, 440, 220, 160, 300,
400,
],
barWidth: "30%",
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "rgba(0,244,255,1)", // 0% 处的颜色
},
{
offset: 1,
color: "rgba(0,77,167,1)", // 100% 处的颜色
},
],
false
),
shadowColor: "rgba(0,160,221,1)",
shadowBlur: 4,
},
},
label: {
normal: {
show: true,
lineHeight: 10,
formatter: "{c}",
position: "top",
textStyle: {
color: "#00D6F9",
// fontSize: 12,
fontSize: "0.0625rem",
},
},
},
},
],
},
infos: [
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
{
time: "2021-10-02 11:13:52",
info: "(山东山东电网2021年第一季度店里市场交易信息报道情况啊啊大萨达实打实",
},
],
lists: [
{
title: "年度销售指标完成率",
money: "7,965",
tb: "12.23",
hb: "27.16",
percent: "80",
},
{
title: "年度收益金额",
money: "5,665",
tb: "12.23",
hb: "27.16",
percent: "40",
},
],
pclist: [
{
name: "月度偏差电量",
count: "5514",
danwei: "MWh",
hb: "27.16",
},
{
name: "月度偏差率",
count: "25",
danwei: "%",
hb: "27.16",
},
],
};
},
methods: {
defineEcharts(dom, option) {
var chartDom = document.getElementById(dom);
var myChart = this.$echarts.init(chartDom, null, {
devicePixelRatio: 10, // 设置为2或更高的值
});
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();
});
},
qyyh() {
let option = {
// backgroundColor: '#081736',
tooltip: {
trigger: "axis",
axisPointer: {
lineStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgba(0, 255, 233,0)",
},
{
offset: 0.5,
color: "rgba(255, 255, 255,1)",
},
{
offset: 1,
color: "rgba(0, 255, 233,0)",
},
],
global: false,
},
},
},
},
grid: {
top: "12%",
left: "10%",
right: "10%",
bottom: "25%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: true,
lineStyle: {
color: "#009dff",
},
},
axisLabel: {
color: "#fff",
width: 100,
},
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
},
},
axisTick: {
show: false,
},
boundaryGap: false,
data: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
], //this.$moment(data.times).format("HH-mm") ,
},
],
yAxis: [
{
type: "value",
min: 0,
// max: 140,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
},
},
axisLine: {
show: true,
lineStyle: {
color: "#009dff",
},
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#fff",
},
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "",
type: "line",
smooth: true,
showAllSymbol: true,
// symbol: 'circle',
symbolSize: 2,
lineStyle: {
normal: {
color: "#2CABE3",
},
},
itemStyle: {
color: "#2CABE3",
borderColor: "#2CABE3",
borderWidth: 2,
},
data: [
4, 7, 5, 4, 3, 5, 8, 7, 5, 4, 3, 5, 8, 4, 7, 5, 4, 3, 5, 8, 7, 5,
4, 3, 5, 8,
], //data.values
},
{
name: "",
type: "line",
smooth: true,
showAllSymbol: true,
// symbol: 'circle',
symbolSize: 2,
lineStyle: {
normal: {
color: "#7def86",
},
},
itemStyle: {
normal: {
color: "#7def86",
borderColor: "rgba(0, 255, 240, 1)",
lineStyle: {
color: "rgba(0, 255, 240, 1)",
},
},
},
data: [
3, 5, 4, 2, 1, 7, 6, 5, 4, 2, 1, 7, 6, 3, 5, 4, 2, 1, 7, 6, 5, 4,
2, 1, 7, 6,
], //data.values
},
],
};
this.defineEcharts("qyyh", option);
},
// 年度售电量
ndsdl() {
var colors = ["#00FFFF", "#02FF67", "#675bba"];
let option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
grid: {
top: "25%",
right: "5%",
left: "15%",
bottom: "20%",
},
xAxis: [
{
type: "category",
axisLabel: {
color: "#fff",
},
axisLine: {
show: true,
lineStyle: {
color: "#0a3e98",
},
},
axisTick: {
show: false,
},
splitLine: {
show: false,
lineStyle: {
color: "#195384",
type: "dotted",
},
},
data: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
],
},
],
dataZoom: [
{
show: false,
realtime: false,
start: 0,
end: 100,
},
{
type: "inside",
realtime: true,
start: 0,
end: 100,
},
],
yAxis: [
{
type: "value",
name: "单位:户",
min: 0,
position: "left",
nameTextStyle: {
color: "#fff",
// fontSize: 12,
fontSize: "0.0625rem",
},
axisLine: {
lineStyle: {
color: "#0a3e98",
},
},
axisTick: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "#0a3e98",
type: "dotted",
},
},
axisLabel: {
formatter: "{value}",
textStyle: {
color: "#fff",
},
},
},
],
series: [
{
name: "发放人数",
type: "line",
// smooth: true, //是否平滑
// showAllSymbol: true,
// symbol: 'image://./static/images/guang-circle.png',
symbol: "circle",
symbolSize: 2,
lineStyle: {
normal: {
color: "#14ADFD",
},
},
label: {
show: true,
position: "top",
textStyle: {
color: "#14ADFD",
},
},
itemStyle: {
color: "#fff",
borderColor: "#14ADFD",
borderWidth: 2,
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "rgba(78, 173, 244, 0.90)",
},
{
offset: 1,
color: "rgba(37, 98, 179, 0.90)",
},
],
false
),
shadowColor: "rgba(37, 98, 179, 0.90)",
shadowBlur: 20,
},
},
data: [300, 400, 200, 250, 320, 180, 190, 400, 160, 300, 480, 300],
},
],
};
this.defineEcharts("ndsdl", option);
},
//偏差分析
pcfx() {
// mock 数据
const dataArr = {
xdata: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
],
rateData: [-10, -12, -13, -15, -12, 0, 5, 8, 9, 14, 17, 21],
rateData2: [-6, -8, -9, -11, -8, 4, 9, 12, 15, 17, 21, 24],
disinfeced: [
320, 340, 480, 140, 380, 400, 300, 257, 420, 356, 268, 300, 321,
],
disinfeced2: [
320, 340, 480, 140, 380, 400, 300, 257, 420, 356, 268, 300, 321,
],
};
const grid = { top: "20%", left: "10%", right: "10%", bottom: "15%" };
// xAxis
const xAxis = {
axisTick: { show: true },
axisLine: { lineStyle: { color: "rgba(255,255,255, .2)" } },
// axisLabel: { textStyle: { fontSize: 12, color: "#fff" } },
axisLabel: { textStyle: { fontSize: "0.0625rem", color: "#fff" } },
data: dataArr.xdata,
};
// yAxis
const yAxis = [
{
type: "value",
name: "单位MWh",
splitLine: { lineStyle: { color: "rgba(255,255,255, .05)" } },
axisLine: { show: false, lineStyle: { color: "#fff" } },
// axisLabel: { textStyle: { fontSize: 12, color: "#fff" } },
axisLabel: { textStyle: { fontSize: "0.0625rem", color: "#fff" } },
},
{
// 双y轴主要用于折线图所以不需要显示坐标
type: "value",
show: true,
min: -20,
max: 30,
axisLabel: {
formatter: "{value}" + "%",
// textStyle: { fontSize: 12, color: "#fff" },
axisLabel: { textStyle: { fontSize: "0.0625rem", color: "#fff" } },
},
},
];
// series
const series = [
{
z: 1,
// stack: '总量',
type: "bar",
name: "电费",
barWidth: 9,
// barGap: '-100%',
data: dataArr.disinfeced,
itemStyle: {
color: {
type: "linear",
x: 0,
x2: 1,
y: 0,
y2: 0,
colorStops: [
{ offset: 0, color: "rgba(1, 197, 185, 1)" },
{ offset: 0.5, color: "rgba(1, 197, 185, .8)" },
{ offset: 0.5, color: "rgba(1, 197, 185, .8)" },
{ offset: 1, color: "rgba(1, 197, 185, 1)" },
],
},
},
},
{
z: 2,
// stack: '总量',
type: "bar",
name: "",
barWidth: 9,
// barGap: '-100%',
data: dataArr.disinfeced2,
itemStyle: {
color: {
type: "linear",
x: 0,
x2: 1,
y: 0,
y2: 0,
colorStops: [
{ offset: 0, color: "rgba(17, 195, 255, .7)" },
{ offset: 0.5, color: "rgba(17, 195, 255, .5)" },
{ offset: 0.5, color: "rgba(17, 195, 255, .5)" },
{ offset: 1, color: "rgba(17, 195, 255, .7)" },
],
},
},
},
{
z: 9,
// 双y轴
yAxisIndex: 1,
name: "销售电价",
type: "line",
symbol: "circle",
symbolSize: [6, 6],
color: {
type: "linear",
x: 1,
y: 0,
x2: 0,
y2: 0,
// 0% 处的颜色 // 100% 处的颜色
colorStops: [
{ offset: 0, color: "#9DBA19 " },
{ offset: 1, color: "#9DBA19" },
],
global: false, // 缺省为 false
},
lineStyle: {
color: {
type: "linear",
x: 1,
y: 0,
x2: 0,
y2: 0,
// 0% 处的颜色 // 100% 处的颜色
colorStops: [
{ offset: 0, color: "#9DBA19 " },
{ offset: 1, color: "#9DBA19" },
],
global: false, // 缺省为 false
},
},
data: dataArr.rateData,
},
{
z: 9,
// 双y轴
yAxisIndex: 1,
name: "",
type: "line",
symbol: "circle",
symbolSize: [6, 6],
color: {
type: "linear",
x: 1,
y: 0,
x2: 0,
y2: 0,
// 0% 处的颜色 // 100% 处的颜色
colorStops: [
{ offset: 0, color: "#01BC5A " },
{ offset: 1, color: "#01BC5A" },
],
global: false, // 缺省为 false
},
lineStyle: {
color: {
type: "linear",
x: 1,
y: 0,
x2: 0,
y2: 0,
// 0% 处的颜色 // 100% 处的颜色
colorStops: [
{ offset: 0, color: "#01BC5A " },
{ offset: 1, color: "#01BC5A" },
],
global: false, // 缺省为 false
},
},
data: dataArr.rateData2,
},
];
let option = { xAxis, yAxis, series, grid };
this.defineEcharts("pcfxb", option);
},
yhhyzb() {
var trafficWay = [
{
name: "钢铁",
value: 280,
},
{
name: "水泥",
value: 280,
},
{
name: "化工",
value: 280,
},
{
name: "制造",
value: 280,
},
{
name: "其他",
value: 280,
},
];
var data = [];
var color = [
"#00C6B7",
"#058DDB",
"#91D449",
"#232A3C",
"#7A7A7A",
"#ff5b00",
"#ff3000",
];
for (var i = 0; i < trafficWay.length; i++) {
data.push(
{
value: trafficWay[i].value,
name: trafficWay[i].name,
itemStyle: {
normal: {
borderWidth: 5,
shadowBlur: 20,
borderColor: color[i],
shadowColor: color[i],
},
},
},
{
value: 60,
name: "",
itemStyle: {
normal: {
label: {
show: false,
},
labelLine: {
show: false,
},
color: "rgba(0, 0, 0, 0)",
borderColor: "rgba(0, 0, 0, 0)",
borderWidth: 0,
},
},
}
);
}
var seriesOption = [
{
name: "",
type: "pie",
clockWise: false,
center: ["36%", "50%"],
radius: [105, 109],
hoverAnimation: false,
itemStyle: {
normal: {
label: {
show: false,
},
labelLine: {
show: false,
color: "#00ffff",
},
},
},
data: data,
},
];
let option = {
color: color,
title: {
text: "28%",
subtext: "钢铁",
top: "48%",
textAlign: "center",
left: "35%",
textStyle: {
color: "#fff",
// fontSize: 32,
fontSize: "0.125rem",
fontWeight: "400",
},
subtextStyle: {
fontFamily: "微软雅黑",
// fontSize: 16,
fontSize: "0.0833rem",
color: "#fff",
},
},
graphic: {
elements: [
{
type: "image",
z: 3,
style: {
image: "transparent",
width: 178,
height: 178,
},
left: "center",
top: "center",
position: [100, 100],
},
],
},
tooltip: {
show: false,
},
legend: {
icon: "rect",
orient: "",
x: "right",
data: [
{
name: "钢铁",
value: 280,
},
{
name: "水泥",
value: 280,
},
{
name: "化工",
value: 280,
},
{
name: "制造",
value: 280,
},
{
name: "其他",
value: 280,
},
],
formatter: function (name) {
var percent = 0;
var total = 0;
for (var i = 0; i < trafficWay.length; i++) {
total += trafficWay[i].value;
}
const item = trafficWay.filter((item) => item.name === name)[0];
console.log(item);
percent = ((item.value / total) * 100).toFixed(2);
if (name !== "") {
return (
`{name|${name}}` +
"\t" +
"\t" +
"\t" +
"\t" +
`{num|${percent}}` +
"\t" +
"\t" +
`{name|%}`
);
// return `{name|${name}` + `{num|${percent}}{name|kWh}`;
} else {
return "";
}
},
left: 320,
bottom: 145,
align: "left",
textStyle: {
color: "#fff",
rich: {
name: {
// fontSize: 16,
fontSize: "0.0833rem",
color: "#fff",
},
num: {
// fontSize: 12,
fontWeight: 700,
fontSize: "0.0833rem",
color: color[1],
},
},
},
itemGap: 20,
},
toolbox: {
show: false,
},
series: seriesOption,
};
this.defineEcharts("yhhyzb", option);
},
initMap() {
//后端返回的数据
var data = [
{
name: "济南市",
value: 1,
coord: [117.000923, 36.675807],
},
{
name: "青岛市",
value: 2,
coord: [120.382639, 36.067082],
},
{
name: "淄博市",
value: 3,
coord: [118.059134, 36.804685],
},
{
name: "枣庄市",
value: 4,
coord: [117.557964, 34.856424],
},
{
name: "东营市",
value: 5,
coord: [118.674767, 37.434751],
},
{
name: "烟台市",
value: 6,
coord: [121.447935, 37.463822],
},
{
name: "潍坊市",
value: 7,
coord: [119.161756, 36.706774],
},
{
name: "济宁市",
value: 8,
coord: [116.587245, 35.415393],
},
{
name: "泰安市",
value: 9,
coord: [117.089415, 36.188078],
},
{
name: "威海市",
value: 10,
coord: [122.120419, 37.513068],
},
{
name: "日照市",
value: 11,
coord: [119.526888, 35.416377],
},
{
name: "临沂市",
value: 12,
coord: [118.356448, 35.104672],
},
{
name: "德州市",
value: 13,
coord: [116.357465, 37.434093],
},
{
name: "聊城市",
value: 14,
coord: [115.986869, 36.455829],
},
{
name: "滨州市",
value: 15,
coord: [118.016974, 37.383542],
},
{
name: "菏泽市",
value: 16,
coord: [115.469381, 35.246531],
},
];
var chartDom = document.getElementById("map");
var myChart = this.$echarts.init(chartDom, null, { renderer: "webgl" });
window.addEventListener("resize", function () {
myChart.resize();
});
//获取山东地图数据。
let src = require("../assets/shandong.json");
function registerMap() {
echarts.registerMap("山东", src);
let option = {
series: [
{
tooltip: {
trigger: "item",
// show: false,
},
name: "山东",
type: "map",
map: "山东",
boxDepth: 60, //地图倾斜度
regionHeight: 6, //地图厚度
aspectScale: 0.9, //地图长宽比
emphasis: {
itemStyle: {
areaColor: "#70EAF4", // 高亮时候地图显示的颜色
borderWidth: 2, // 高亮时的边框宽度
},
label: {
// fontSize: 12, // 选中地图文字字号和字体颜色
fontSize: "0.0625rem", // 选中地图文字字号和字体颜色
color: "#fff",
},
},
label: {
show: true, //是否显示市
formatter: function (params) {
var name = params.name;
var value = params.value;
var text = ` {fline|${value}}\n{tline|${name}} `;
return text;
},
textStyle: {
color: "#000", //文字颜色
// fontSize: 16, //文字大小
fontSize: "0.0833rem", //文字大小
fontFamily: "微软雅黑",
// backgroundColor: {
// image: "../assets/客户侧总体用能情况分析/光标.png",
// },
// padding: [15, 20],
},
rich: {
fline: {
padding: [0, 35],
color: "#FDCC00",
// fontSize: 14,
fontSize: "0.0729rem",
fontWeight: 600,
},
tline: {
padding: [0, 27],
color: "#fff",
// fontSize: 12,
fontSize: "0.0625rem",
},
},
},
itemStyle: {
opacity: 0.8, // 透明度
borderWidth: 2, //分界线宽度
borderColor: "#0699E4", //分界线颜色
areaColor: {
x: 0.5,
y: 0.7,
r: 0.5,
colorStops: [
{
offset: 0,
color: "rgba(20,110,230,0.4)",
},
{
offset: 1,
color: "rgba(6,33,121,0.4)",
},
],
global: false, // 缺省为 false
},
},
groundplane: {
show: true,
},
data: data,
z: 999,
shading: "realistic",
// 真实感材质相关配置 shading: 'realistic'时有效
realisticMaterial: {
detailTexture: "rgb(0, 102, 204)", // 纹理贴图
textureTiling: 0, // 纹理平铺1是拉伸数字表示纹理平铺次数
roughness: 0.8, // 调整光照模型的粗糙度
metalness: 0.0, // 调整金属感0.0 为非金属
roughnessAdjust: 0,
},
viewControl: {
distance: 90, // 地图视角 控制初始大小
rotateSensitivity: 0, // 旋转
zoomSensitivity: 1.5, // 缩放
},
zoom: 1.25,
},
],
animation: true,
};
myChart.setOption(option);
myChart.on("click", chartClick);
//点击地图区域事件
function chartClick(param) {
console.log(param);
myChart.setOption(option, false);
window.addEventListener("resize", function () {
myChart.resize();
});
// var selectedPro = param.name;
// if (!cityProper[selectedPro]) {
// option.series.splice(1);
// option.legend = null;
// option.visualMap = null;
// myChart.setOption(option, true);
// return;
// }
//获取点击区域数据
// $.get(cityProper[selectedPro], function (geojson) {
// echarts.registerMap(selectedPro, geojson);
// //根据需求如果要替换青岛地图series参数为[0],不替换为[1],其中left、top自己设置。
// option.series[0] = {
// name: "",
// type: "map",
// map: selectedPro,
// boxDepth: 80, //地图倾斜度
// regionHeight: 5, //地图厚度
// itemStyle: {
// normal: {
// label: {
// show: true,
// },
// },
// emphasis: {
// label: {
// show: true,
// },
// },
// },
// groundplane: {
// show: false,
// },
// data: data,
// shading: "realistic",
// // 真实感材质相关配置 shading: 'realistic'时有效
// realisticMaterial: {
// detailTexture: "#fff", // 纹理贴图
// textureTiling: 1, // 纹理平铺1是拉伸数字表示纹理平铺次数
// roughness: 0, // 材质粗糙度0完全光滑1完全粗糙
// metalness: 0, // 0材质是非金属 1金属
// roughnessAdjust: 0,
// },
// viewControl: {
// distance: 30, // 地图视角 控制初始大小
// rotateSensitivity: 1, // 旋转
// zoomSensitivity: 1, // 缩放
// },
// };
// myChart.setOption(option);
// });
}
}
registerMap();
},
},
mounted() {
this.defineEcharts("ndqylfb", this.option);
// this.defineEcharts("ynl", this.option1);
this.qyyh();
this.pcfx();
this.yhhyzb();
this.ndsdl();
this.initMap();
},
beforeDestroy() {
//离开页面后,删除屏幕监听,防止监听事件一直存在
window.removeEventListener("resize", this.getResize);
},
};
</script>
<style scoped lang="less">
.box {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
color: #fff;
.title {
width: 100%;
height: 76px;
background: url(../assets/客户侧总体用能情况分析/标题背景.png);
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
p {
width: 527px;
height: 47px;
font-size: 44px;
font-family: " Alibaba PuHuiTi" 2, " Alibaba PuHuiTi" 20;
font-weight: 600;
line-height: 47px;
letter-spacing: 3px;
color: #fff;
margin-left: 128px;
}
img:nth-of-type(1) {
width: 231px;
height: 59px;
}
img:nth-of-type(2) {
width: 158px;
height: 28px;
}
}
.containter {
width: 100%;
height: 967px;
display: flex;
position: relative;
justify-content: space-between;
.left {
width: 436px;
height: 100%;
.ndqyyh {
// height: 27.22vh;
height: 294px;
// width: 100%;
background: url("../assets/客户侧总体用能情况分析/ 3117.png");
background-size: cover;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
.title {
position: absolute;
left: 160px;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
}
.bg_title {
width: 400px;
height: 62px;
background: url(../assets/zhsdy/\ 3187.png);
background-size: cover;
position: absolute;
top: 40px;
display: flex;
justify-content: space-around;
.tit_first {
width: 116px;
height: 44px;
font-size: 32px;
font-weight: 700;
color: #14adfd;
line-height: 44px;
display: flex;
.tit_danwei {
width: 14px;
height: 44px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 44px;
}
}
.tit_second {
width: 132px;
display: flex;
justify-content: space-between;
div {
p:nth-child(1) {
width: 28px;
height: 24px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 24px;
}
p.tb_percent {
width: 57px;
height: 30px;
font-size: 16px;
font-weight: 700;
color: #f2b810;
line-height: 30px;
display: flex;
img {
width: 12px;
height: 12px;
margin-top: 8px;
}
}
}
}
}
#qyyh {
width: 100%;
height: 180px;
margin-top: 100px;
}
}
.ndsdl {
height: 315px;
background: url("../assets/客户侧总体用能情况分析/实时负荷走势-框.png");
background-size: cover;
margin-top: 6px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
.title {
position: absolute;
left: 160px;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
}
.bg_title {
width: 400px;
height: 62px;
background: url(../assets/zhsdy/\ 3187.png);
background-size: cover;
position: absolute;
top: 40px;
display: flex;
justify-content: space-around;
.tit_first {
width: 116px;
height: 44px;
font-size: 32px;
font-weight: 700;
color: #14adfd;
line-height: 44px;
display: flex;
.tit_danwei {
width: 14px;
height: 44px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 44px;
}
}
.tit_second {
width: 132px;
display: flex;
justify-content: space-between;
div {
p:nth-child(1) {
width: 28px;
height: 24px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 24px;
}
p.tb_percent {
width: 57px;
height: 30px;
font-size: 16px;
font-weight: 700;
color: #f2b810;
line-height: 30px;
display: flex;
img {
width: 12px;
height: 12px;
margin-top: 8px;
}
}
}
}
}
#ndsdl {
position: absolute;
width: 100%;
height: 200px;
bottom: 10px;
}
}
}
.right {
width: 436px;
height: 100%;
.ndsdje {
height: 294px;
width: 100%;
background: url("../assets/客户侧总体用能情况分析/ 3117.png");
background-size: cover;
position: relative;
.title {
position: absolute;
left: 160px;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
}
#ndsdje {
width: 100%;
height: 100%;
padding-top: 50px;
.infos {
width: 400px;
height: 104px;
display: flex;
justify-content: space-between;
background: url(../assets/zhsdy/\ 3168.png);
background-size: cover;
margin: 0 auto;
margin-bottom: 15px;
.first {
width: 180px;
p:nth-child(1) {
width: 180px;
height: 44px;
display: flex;
justify-content: space-between;
img {
width: 15px;
height: 15px;
border: none;
display: block;
margin-top: 10px;
margin-left: 10px;
}
span.titles {
width: 140px;
height: 44px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 44px;
display: block;
}
}
p.money {
width: 145px;
height: 44px;
font-size: 40px;
font-weight: 700;
color: #52c2ff;
line-height: 44px;
.danwei {
color: #fff;
font-size: 14px;
}
}
}
.second {
width: 172px;
height: 100%;
margin-right: 10px;
div.s_tit {
width: 172px;
display: flex;
justify-content: space-around;
p:nth-child(1) {
width: 28px;
height: 36px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
}
p.tb_percent {
width: 57px;
height: 30px;
font-size: 16px;
font-weight: 700;
color: #f2b810;
line-height: 30px;
display: flex;
img {
width: 12px;
height: 12px;
margin-top: 8px;
}
}
}
.bigBox {
width: 172px;
height: 10px;
background-color: #273546;
border-radius: 67px 67px 67px 67px;
margin-top: 5px;
.smallBox {
width: 100px;
height: 10px;
border-radius: 67px 67px 67px 67px;
background: linear-gradient(
to right,
rgba(38, 206, 253, 1) 20%,
rgba(42, 254, 255, 1) 100%,
rgba(38, 206, 253, 1) 20%
);
}
}
}
}
}
}
.pcfx {
height: 294px;
width: 100%;
background: url("../assets/客户侧总体用能情况分析/ 3117.png");
background-size: cover;
position: relative;
margin-top: 6px;
.title {
position: absolute;
left: 160px;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
}
#pcfx {
width: 100%;
height: 100%;
padding-top: 40px;
.pc_tit {
width: 398px;
height: 48px;
margin: 0 auto;
background: url(../assets/zhsdy/\ 3169.png);
background-size: cover;
display: flex;
justify-content: space-between;
margin-top: 5px;
.pc_l {
width: 272px;
height: 48px;
display: flex;
justify-content: flex-start;
.pc_name {
margin-left: 18px;
height: 44px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 44px;
display: block;
}
img {
width: 15px;
height: 15px;
margin-top: 18px;
margin-left: 10px;
}
.pc_count {
margin-left: 14px;
height: 44px;
font-size: 24px;
font-weight: 700;
color: #0aa7ff;
line-height: 44px;
display: block;
}
.pc_danwei {
margin-left: 6px;
width: 33px;
height: 44px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 44px;
}
}
.pc_r {
margin-right: 20px;
p:nth-child(1) {
width: 28px;
height: 24px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 24px;
}
p.tb_percent {
width: 57px;
height: 24px;
font-size: 16px;
font-weight: 700;
color: #f2b810;
line-height: 24px;
display: flex;
img {
width: 12px;
height: 12px;
margin-top: 8px;
}
}
}
}
#pcfxb {
width: 100%;
height: 150px;
}
}
}
.yhhyzb {
height: 353px;
width: 100%;
background: url("../assets/客户侧总体用能情况分析/ 3119.png");
background-size: cover;
position: relative;
margin-top: 6px;
.title {
position: absolute;
left: 160px;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
}
#yhhyzb {
width: 100%;
height: 100%;
}
}
}
.footer {
position: absolute;
width: 1445px;
height: 325px;
bottom: 10px;
display: flex;
justify-content: space-between;
.ndqylfb {
width: 776px;
height: 100%;
background: url(../assets/zhsdy/用能量-框.png);
background-size: cover;
position: relative;
.title {
position: absolute;
left: 50%;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
transform: translateX(-50%);
line-height: 36px;
}
#ndqylfb {
width: 100%;
height: 100%;
}
}
.ggzcxx {
width: 653px;
height: 325px;
background: url(../assets/zhsdy/\ 3120.png);
background-size: cover;
position: relative;
.title {
position: absolute;
left: 50%;
width: 144px;
height: 36px;
font-size: 18px;
font-family: "Source Han Sans";
font-weight: 700;
color: rgba(255, 255, 255, 0.87);
line-height: 36px;
transform: translateX(-50%);
}
#ggzcxx {
width: 100%;
margin-top: 60px;
ul {
width: 100%;
li {
width: 100%;
height: 40px;
padding: 0px 36px 0px 18px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
.img {
width: 12px;
height: 12px;
display: block;
}
.times {
width: 145px;
height: 36px;
color: #52c2ff;
font-size: 14px;
line-height: 36px;
display: block;
}
.info {
width: 381px;
height: 36px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
font-size: 14px;
line-height: 36px;
display: block;
}
}
li:nth-child(2n + 2) {
background: #0e2c7e;
}
}
}
}
}
#map {
width: 994px;
position: absolute;
height: 627px;
left: 50%;
transform: translateX(-50%);
overflow: hidden;
}
.tooltip {
position: absolute;
width: 0.927083rem /* 178/192 */;
// width: 178px;
height: 193px;
background: url("../assets/zhsdy/10.png");
background-size: cover;
z-index: 1;
top: 400px;
right: 480px;
padding: 14px;
box-sizing: border-box;
padding-top: 16px;
text-align: center;
p.first {
width: 60px;
height: 36px;
font-size: 20px;
font-weight: 700;
padding-left: 30px;
color: #ffffff;
line-height: 36px;
}
p.second {
width: 118px;
height: 36px;
padding-left: 15px;
font-size: 30px;
font-weight: 700;
color: #f1db50;
line-height: 36px;
.danwei1 {
margin-left: 3px;
color: #fff;
font-size: 14px;
font-weight: 400;
}
}
p.thrid {
width: 137px;
height: 36px;
padding-left: 20px;
font-size: 30px;
font-weight: 700;
color: #59f1fc;
line-height: 36px;
span.danwei2 {
margin-left: 3px;
color: #fff;
font-size: 14px;
font-weight: 400;
}
}
}
}
}
</style>