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,248 +1530,249 @@ 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( // // getParametricEquation(
// this[optionName].series[selectedIndex].pieData.startRatio, // // this[optionName].series[selectedIndex].pieData.startRatio,
// this[optionName].series[selectedIndex].pieData.endRatio, // // this[optionName].series[selectedIndex].pieData.endRatio,
// false, // // false,
// false, // // false,
// k, // // k,
// this[optionName].series[selectedIndex].pieData.value // // this[optionName].series[selectedIndex].pieData.value
// ); // // );
// this[optionName].series[selectedIndex].pieStatus.selected = false; // // this[optionName].series[selectedIndex].pieStatus.selected = false;
// } // // }
// // / option // // // / option
// this[optionName].series[params.seriesIndex].parametricEquation = // // this[optionName].series[params.seriesIndex].parametricEquation =
// getParametricEquation( // // getParametricEquation(
// startRatio, // // startRatio,
// endRatio, // // endRatio,
// isSelected, // // isSelected,
// isHovered, // // isHovered,
// k, // // k,
// this[optionName].series[params.seriesIndex].pieData.value // // this[optionName].series[params.seriesIndex].pieData.value
// ); // // );
// this[optionName].series[params.seriesIndex].pieStatus.selected = // // this[optionName].series[params.seriesIndex].pieStatus.selected =
// isSelected; // // isSelected;
// // seriesIndex // // // seriesIndex
// selectedIndex = isSelected ? params.seriesIndex : null; // // selectedIndex = isSelected ? params.seriesIndex : null;
// // 使 option // // // 使 option
// myChart.setOption(this[optionName]); // // myChart.setOption(this[optionName]);
// }); // // });
// mouseover // // mouseover
myChart.on("mouseover", (params) => { // myChart.on("mouseover", (params) => {
// // //
let isSelected; // let isSelected;
let isHovered; // let isHovered;
let startRatio; // let startRatio;
let endRatio; // let endRatio;
let k; // let k;
// mouseover // // mouseover
if (hoveredIndex === params.seriesIndex) { // if (hoveredIndex === params.seriesIndex) {
// // //
} else { // } else {
// option // // option
if (hoveredIndex !== "") { // if (hoveredIndex !== "") {
// option.series false // // option.series false
isSelected = // isSelected =
this[optionName].series[hoveredIndex].pieStatus.selected; // this[optionName].series[hoveredIndex].pieStatus.selected;
isHovered = false; // isHovered = false;
startRatio = // startRatio =
this[optionName].series[hoveredIndex].pieData.startRatio; // this[optionName].series[hoveredIndex].pieData.startRatio;
endRatio = this[optionName].series[hoveredIndex].pieData.endRatio; // endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
k = this[optionName].series[hoveredIndex].pieStatus.k; // k = this[optionName].series[hoveredIndex].pieStatus.k;
// option // // option
this[optionName].series[hoveredIndex].parametricEquation = // this[optionName].series[hoveredIndex].parametricEquation =
getParametricEquation( // getParametricEquation(
startRatio, // startRatio,
endRatio, // endRatio,
isSelected, // isSelected,
isHovered, // isHovered,
k, // k,
this[optionName].series[hoveredIndex].pieData.value // this[optionName].series[hoveredIndex].pieData.value
); // );
this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered; // this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex // // seriesIndex
hoveredIndex = ""; // hoveredIndex = "";
} // }
// mouseover option // // mouseover option
if ( // if (
params.seriesName !== "mouseoutSeries" && // params.seriesName !== "mouseoutSeries" &&
params.seriesName !== "信用评价" // params.seriesName !== ""
) { // ) {
// option.series true // // option.series true
isSelected = // isSelected =
this[optionName].series[params.seriesIndex].pieStatus.selected; // this[optionName].series[params.seriesIndex].pieStatus.selected;
isHovered = true; // isHovered = true;
startRatio = // startRatio =
this[optionName].series[params.seriesIndex].pieData.startRatio; // this[optionName].series[params.seriesIndex].pieData.startRatio;
endRatio = // endRatio =
this[optionName].series[params.seriesIndex].pieData.endRatio; // this[optionName].series[params.seriesIndex].pieData.endRatio;
k = this[optionName].series[params.seriesIndex].pieStatus.k; // k = this[optionName].series[params.seriesIndex].pieStatus.k;
// option // // option
this[optionName].series[params.seriesIndex].parametricEquation = // this[optionName].series[params.seriesIndex].parametricEquation =
getParametricEquation( // getParametricEquation(
startRatio, // startRatio,
endRatio, // endRatio,
isSelected, // isSelected,
isHovered, // isHovered,
k, // k,
this[optionName].series[params.seriesIndex].pieData.value + 60 // this[optionName].series[params.seriesIndex].pieData.value + 60
); // );
this[optionName].series[params.seriesIndex].pieStatus.hovered = // this[optionName].series[params.seriesIndex].pieStatus.hovered =
isHovered; // isHovered;
// seriesIndex // // seriesIndex
hoveredIndex = params.seriesIndex; // hoveredIndex = params.seriesIndex;
} // }
// 使 option // // 使 option
myChart.setOption(this[optionName]); // myChart.setOption(this[optionName]);
} // }
}); // });
// bug // // bug
myChart.on("globalout", () => { // myChart.on("globalout", () => {
// // //
let isSelected; // let isSelected;
let isHovered; // let isHovered;
let startRatio; // let startRatio;
let endRatio; // let endRatio;
let k; // let k;
if (hoveredIndex !== "") { // if (hoveredIndex !== "") {
// option.series true // // option.series true
isSelected = this[optionName].series[hoveredIndex].pieStatus.selected; // isSelected = this[optionName].series[hoveredIndex].pieStatus.selected;
isHovered = false; // isHovered = false;
k = this[optionName].series[hoveredIndex].pieStatus.k; // k = this[optionName].series[hoveredIndex].pieStatus.k;
startRatio = this[optionName].series[hoveredIndex].pieData.startRatio; // startRatio = this[optionName].series[hoveredIndex].pieData.startRatio;
endRatio = this[optionName].series[hoveredIndex].pieData.endRatio; // endRatio = this[optionName].series[hoveredIndex].pieData.endRatio;
// option // // option
this[optionName].series[hoveredIndex].parametricEquation = // this[optionName].series[hoveredIndex].parametricEquation =
getParametricEquation( // getParametricEquation(
startRatio, // startRatio,
endRatio, // endRatio,
isSelected, // isSelected,
isHovered, // isHovered,
k, // k,
this[optionName].series[hoveredIndex].pieData.value // this[optionName].series[hoveredIndex].pieData.value
); // );
this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered; // this[optionName].series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex // // seriesIndex
hoveredIndex = ""; // hoveredIndex = "";
} // }
// 使 option // // 使 option
myChart.setOption(this[optionName]); // 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>