This commit is contained in:
unknown 2023-12-20 15:06:39 +08:00
parent 803c22c317
commit a4eafbbdba
1 changed files with 236 additions and 235 deletions

View File

@ -131,7 +131,7 @@
</div> </div>
<div class="chartBox"> <div class="chartBox">
<div class="chart-container"> <div class="chart-container">
<div class="chart" ref="chart"></div> <div class="chart" ref="chart" id="fhzb"></div>
<!-- 底座背景 --> <!-- 底座背景 -->
<div class="bg"></div> <div class="bg"></div>
</div> </div>
@ -178,9 +178,9 @@
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import "echarts-gl"; // import "echarts-gl";
import { getPie3D, getParametricEquation } from "../../../utils/fhgl"; // import { getPie3D, getParametricEquation } from "../../../utils/fhgl";
const color = ["#099FE3", "#00DBEB", "#50F4C1"]; // const color = ["#099FE3", "#00DBEB", "#50F4C1"];
export default { export default {
data() { data() {
return { return {
@ -1530,119 +1530,186 @@ export default {
// //
// label // label
setLabel() { // setLabel() {
this.optionData.forEach((item, index) => { // this.optionData.forEach((item, index) => {
item.itemStyle = { // item.itemStyle = {
color: color[index], // color: color[index],
}; // };
item.label = { // item.label = {
normal: { // normal: {
show: true, // show: true,
color: color[index], // color: color[index],
position: "right", // position: "right",
// distance:-10, // // distance:-10,
offset: [0, 3], // offset: [0, 3],
formatter: [ // formatter: [
"{d|{d}%}", // "{d|{d}%}",
"————", // "",
// '{c|{c}}{b|}', // // '{c|{c}}{b|}',
"{b|{b}}", // "{b|{b}}",
].join("\n"), // \n // ].join("\n"), // \n
rich: { // rich: {
b: { // b: {
lineHeight: 25, // lineHeight: 25,
align: "left", // align: "left",
fontSize: 30, // fontSize: 30,
color: "#fff", // color: "#fff",
}, // },
c: { // c: {
fontSize: 22, // fontSize: 22,
// color: '#fff', // // color: '#fff',
textShadowColor: "#1c90a6", // textShadowColor: "#1c90a6",
textShadowOffsetX: 0, // textShadowOffsetX: 0,
textShadowOffsetY: 2, // textShadowOffsetY: 2,
textShadowBlur: 5, // textShadowBlur: 5,
color: color[index], // color: color[index],
}, // },
d: { // d: {
color: color[index], // color: color[index],
fontSize: 40, // fontSize: 40,
align: "left", // align: "left",
}, // },
}, // },
}, // },
}; // };
item.labelLine = { // item.labelLine = {
normal: { // normal: {
length2: 200, // length2: 200,
lineStyle: { // lineStyle: {
width: 2, // width: 2,
color: color[index], // color: color[index],
}, // },
}, // },
}; // };
}); // });
}, // },
// // // //
initChart() { // initChart() {
this.statusChart = echarts.init(this.$refs.chart); // this.statusChart = echarts.init(this.$refs.chart);
// option, 3d, // // option, 3d,
this.option = getPie3D(this.optionData, 0, 270, 26, 40, 1); // this.option = getPie3D(this.optionData, 0, 270, 26, 40, 1);
this.statusChart.setOption(this.option); // this.statusChart.setOption(this.option);
// label线2d使labelLine3dsetOption // // label线2d使labelLine3dsetOption
this.option.series.push({ // this.option.series.push({
name: "信用评价", // // name: "", //
backgroundColor: "transparent", // backgroundColor: "transparent",
type: "pie", // type: "pie",
label: { // label: {
opacity: 1, // opacity: 1,
fontSize: 13, // fontSize: 13,
lineHeight: 20, // lineHeight: 20,
}, // },
startAngle: -40, // [0, 360] // startAngle: -40, // [0, 360]
clockwise: false, // 3d // clockwise: false, // 3d
radius: ["20%", "60%"], // radius: ["20%", "60%"],
center: ["50%", "50%"], // center: ["50%", "50%"],
data: this.optionData, // data: this.optionData,
itemStyle: { // itemStyle: {
opacity: 0, //02d // opacity: 0, //02d
}, // },
}); // });
this.statusChart.setOption(this.option); // this.statusChart.setOption(this.option);
this.bindListen(this.statusChart); // this.bindListen(this.statusChart);
}, // },
// // // //
// // optionNameoptionopiton // // optionNameoptionopiton
bindListen(myChart, optionName = "option") { // bindListen(myChart, optionName = "option") {
let selectedIndex = ""; // let selectedIndex = "";
let hoveredIndex = ""; // let hoveredIndex = "";
// // //
// myChart.on("click", (params) => { // // myChart.on("click", (params) => {
// console.log(this[optionName].series[params.seriesIndex],'this[optionName].series[params.seriesIndex].pieStatus'); // // console.log(this[optionName].series[params.seriesIndex],'this[optionName].series[params.seriesIndex].pieStatus');
// // option.series // // // option.series
// const isSelected = // // const isSelected =
// !this[optionName].series[params.seriesIndex].pieStatus.selected; // // !this[optionName].series[params.seriesIndex].pieStatus.selected;
// const isHovered = // // const isHovered =
// this[optionName].series[params.seriesIndex].pieStatus.hovered; // // this[optionName].series[params.seriesIndex].pieStatus.hovered;
// const k = this[optionName].series[params.seriesIndex].pieStatus.k; // // const k = this[optionName].series[params.seriesIndex].pieStatus.k;
// const startRatio = // // const startRatio =
// this[optionName].series[params.seriesIndex].pieData.startRatio; // // this[optionName].series[params.seriesIndex].pieData.startRatio;
// const endRatio = // // const endRatio =
// this[optionName].series[params.seriesIndex].pieData.endRatio; // // this[optionName].series[params.seriesIndex].pieData.endRatio;
// // option // // // option
// if (selectedIndex !== "" && selectedIndex !== params.seriesIndex) { // // if (selectedIndex !== "" && selectedIndex !== params.seriesIndex) {
// this[optionName].series[selectedIndex].parametricEquation = // // this[optionName].series[selectedIndex].parametricEquation =
// // getParametricEquation(
// // this[optionName].series[selectedIndex].pieData.startRatio,
// // this[optionName].series[selectedIndex].pieData.endRatio,
// // false,
// // false,
// // k,
// // this[optionName].series[selectedIndex].pieData.value
// // );
// // this[optionName].series[selectedIndex].pieStatus.selected = false;
// // }
// // // / option
// // this[optionName].series[params.seriesIndex].parametricEquation =
// // getParametricEquation(
// // startRatio,
// // endRatio,
// // isSelected,
// // isHovered,
// // k,
// // this[optionName].series[params.seriesIndex].pieData.value
// // );
// // this[optionName].series[params.seriesIndex].pieStatus.selected =
// // isSelected;
// // // seriesIndex
// // selectedIndex = isSelected ? params.seriesIndex : null;
// // // 使 option
// // myChart.setOption(this[optionName]);
// // });
// // mouseover
// myChart.on("mouseover", (params) => {
// //
// let isSelected;
// let isHovered;
// let startRatio;
// let endRatio;
// let k;
// // mouseover
// if (hoveredIndex === params.seriesIndex) {
// //
// } else {
// // option
// if (hoveredIndex !== "") {
// // option.series false
// isSelected =
// this[optionName].series[hoveredIndex].pieStatus.selected;
// isHovered = false;
// startRatio =
// this[optionName].series[hoveredIndex].pieData.startRatio;
// endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
// k = this[optionName].series[hoveredIndex].pieStatus.k;
// // option
// this[optionName].series[hoveredIndex].parametricEquation =
// getParametricEquation( // getParametricEquation(
// this[optionName].series[selectedIndex].pieData.startRatio, // startRatio,
// this[optionName].series[selectedIndex].pieData.endRatio, // endRatio,
// false, // isSelected,
// false, // isHovered,
// k, // k,
// this[optionName].series[selectedIndex].pieData.value // this[optionName].series[hoveredIndex].pieData.value
// ); // );
// this[optionName].series[selectedIndex].pieStatus.selected = false; // this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// // seriesIndex
// hoveredIndex = "";
// } // }
// // / option // // mouseover option
// if (
// params.seriesName !== "mouseoutSeries" &&
// params.seriesName !== ""
// ) {
// // option.series true
// isSelected =
// this[optionName].series[params.seriesIndex].pieStatus.selected;
// isHovered = true;
// startRatio =
// this[optionName].series[params.seriesIndex].pieData.startRatio;
// endRatio =
// this[optionName].series[params.seriesIndex].pieData.endRatio;
// k = this[optionName].series[params.seriesIndex].pieStatus.k;
// // option
// this[optionName].series[params.seriesIndex].parametricEquation = // this[optionName].series[params.seriesIndex].parametricEquation =
// getParametricEquation( // getParametricEquation(
// startRatio, // startRatio,
@ -1650,128 +1717,62 @@ export default {
// isSelected, // isSelected,
// isHovered, // isHovered,
// k, // k,
// this[optionName].series[params.seriesIndex].pieData.value // this[optionName].series[params.seriesIndex].pieData.value + 60
// ); // );
// this[optionName].series[params.seriesIndex].pieStatus.selected = // this[optionName].series[params.seriesIndex].pieStatus.hovered =
// isSelected; // isHovered;
// // seriesIndex // // seriesIndex
// selectedIndex = isSelected ? params.seriesIndex : null; // hoveredIndex = params.seriesIndex;
// }
// // 使 option
// myChart.setOption(this[optionName]);
// }
// });
// // bug
// myChart.on("globalout", () => {
// //
// let isSelected;
// let isHovered;
// let startRatio;
// let endRatio;
// let k;
// if (hoveredIndex !== "") {
// // option.series true
// isSelected = this[optionName].series[hoveredIndex].pieStatus.selected;
// isHovered = false;
// k = this[optionName].series[hoveredIndex].pieStatus.k;
// startRatio = this[optionName].series[hoveredIndex].pieData.startRatio;
// endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
// // option
// this[optionName].series[hoveredIndex].parametricEquation =
// getParametricEquation(
// startRatio,
// endRatio,
// isSelected,
// isHovered,
// k,
// this[optionName].series[hoveredIndex].pieData.value
// );
// this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// // seriesIndex
// hoveredIndex = "";
// }
// // 使 option // // 使 option
// myChart.setOption(this[optionName]); // myChart.setOption(this[optionName]);
// }); // });
// mouseover // },
myChart.on("mouseover", (params) => {
//
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
// mouseover
if (hoveredIndex === params.seriesIndex) {
//
} else {
// option
if (hoveredIndex !== "") {
// option.series false
isSelected =
this[optionName].series[hoveredIndex].pieStatus.selected;
isHovered = false;
startRatio =
this[optionName].series[hoveredIndex].pieData.startRatio;
endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
k = this[optionName].series[hoveredIndex].pieStatus.k;
// option
this[optionName].series[hoveredIndex].parametricEquation =
getParametricEquation(
startRatio,
endRatio,
isSelected,
isHovered,
k,
this[optionName].series[hoveredIndex].pieData.value
);
this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
hoveredIndex = "";
}
// mouseover option
if (
params.seriesName !== "mouseoutSeries" &&
params.seriesName !== "信用评价"
) {
// option.series true
isSelected =
this[optionName].series[params.seriesIndex].pieStatus.selected;
isHovered = true;
startRatio =
this[optionName].series[params.seriesIndex].pieData.startRatio;
endRatio =
this[optionName].series[params.seriesIndex].pieData.endRatio;
k = this[optionName].series[params.seriesIndex].pieStatus.k;
// option
this[optionName].series[params.seriesIndex].parametricEquation =
getParametricEquation(
startRatio,
endRatio,
isSelected,
isHovered,
k,
this[optionName].series[params.seriesIndex].pieData.value + 60
);
this[optionName].series[params.seriesIndex].pieStatus.hovered =
isHovered;
// seriesIndex
hoveredIndex = params.seriesIndex;
}
// 使 option
myChart.setOption(this[optionName]);
}
});
// bug
myChart.on("globalout", () => {
//
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
if (hoveredIndex !== "") {
// option.series true
isSelected = this[optionName].series[hoveredIndex].pieStatus.selected;
isHovered = false;
k = this[optionName].series[hoveredIndex].pieStatus.k;
startRatio = this[optionName].series[hoveredIndex].pieData.startRatio;
endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
// option
this[optionName].series[hoveredIndex].parametricEquation =
getParametricEquation(
startRatio,
endRatio,
isSelected,
isHovered,
k,
this[optionName].series[hoveredIndex].pieData.value
);
this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
hoveredIndex = "";
}
// 使 option
myChart.setOption(this[optionName]);
});
},
}, },
created(){ created(){
this.setLabel(); // this.setLabel();
}, },
mounted() { mounted() {
this.defineEcharts("pdsssdh", this.option1); this.defineEcharts("pdsssdh", this.option1);
// this.defineEcharts("pdsydl", this.option2); // this.defineEcharts("pdsydl", this.option2);
this.pdsydl(); this.pdsydl();
// this.getEchart(); this.getEchart();
this.defineEcharts("pdstpt", this.option3); this.defineEcharts("pdstpt", this.option3);
this.initChart(); // this.initChart();
this.getbing();
}, },
}; };
</script> </script>