| | |
| | | <img src="/cockpitPage/machine-top.png" alt="" /> |
| | | <div class="top-title"> |
| | | <span>机器开机率</span> |
| | | <span class="top-rate">{{ "60%" }}</span> |
| | | <span class="top-rate">{{ startupRate + "%" }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="chart" ref="chart"></div> |
| | | <div id="main" class="chart" ref="chart"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <script> |
| | | //引入echart |
| | | import * as echarts from "echarts"; |
| | | let myChart; |
| | | export default { |
| | | components: {}, |
| | | props: {}, |
| | | props: { |
| | | startupRate: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | }, |
| | | data() { |
| | | return {}; |
| | | }, |
| | | mounted() { |
| | | let chartData = [ |
| | | { value: 20, name: "闲置" }, |
| | | { value: 20, name: "维修" }, |
| | | { value: 60, name: "工作" }, |
| | | ]; |
| | | this.pieChart("chart", chartData); |
| | | }, |
| | | mounted() {}, |
| | | watch: {}, |
| | | methods: { |
| | | //在职 |
| | | pieChart(chartName, data) { |
| | | let chartDom = this.$refs[chartName]; |
| | | let myChart = echarts.init(chartDom); |
| | | |
| | | if (myChart != null && myChart != "" && myChart != undefined) { |
| | | myChart.dispose(); //销毁 |
| | | } |
| | | myChart = echarts.init(chartDom); |
| | | let img = "/cockpitPage/machine-chart-bg.png"; |
| | | let height = myChart.getHeight() / 1; |
| | | let width = height + 5; |
| | | let option; |
| | | if (data) { |
| | | option = { |
| | | color: ["#065a6f", "#067687", "#00ffff"], |
| | | tooltip: { |
| | | trigger: "item", |
| | | textStyle: { |
| | | color: "#00FFFF", |
| | | }, |
| | | borderColor: "#00FFFF", |
| | | backgroundColor: "#238d8d6b", |
| | | valueFormatter: function (value) { |
| | | return value + "%"; |
| | | }, |
| | | }, |
| | | graphic: { |
| | | elements: [ |
| | | { |
| | | type: "image", |
| | | z: 5, |
| | | right: 25, |
| | | // z: 5, |
| | | style: { |
| | | image: img, |
| | | width: 240, |
| | | height: 245, |
| | | width: width, |
| | | height: height, |
| | | opacity: 0.55, |
| | | }, |
| | | left: "center", |
| | | top: "center", |
| | | position: [5, 5], |
| | | position: [10, 10], |
| | | }, |
| | | ], |
| | | }, |
| | | series: [ |
| | | { |
| | | name: "Access From", |
| | | name: "", |
| | | type: "pie", |
| | | radius: ["58%", "70%"], |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | color: "#01f7fd", |
| | | fontSize: 14, |
| | | padding: [0, -60], |
| | | formatter: function (params) { |
| | | return `{a|${params.name}} {b|${params.value + "%"}}`; |
| | | }, |
| | | rich: { |
| | | a: { |
| | | color: "#00ffff", |
| | | fontSize: 14, |
| | | normal: { |
| | | position: "outer", |
| | | padding: [0, -62], |
| | | color: "#01f7fd", |
| | | fontSize: 12, |
| | | borderWidth: 5, |
| | | borderRadius: 4, |
| | | formatter: function (params) { |
| | | let label = |
| | | params.name.length > 4 |
| | | ? `${params.name.slice(0, 3)}...` |
| | | : params.name; |
| | | return `{a|${label}} {b|${params.value + "%"}}`; |
| | | }, |
| | | b: { |
| | | color: "#fccd1d", |
| | | fontSize: 14, |
| | | rich: { |
| | | a: { |
| | | color: "#00ffff", |
| | | fontSize: 14, |
| | | }, |
| | | b: { |
| | | color: "#fccd1d", |
| | | fontSize: 14, |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | |
| | | }, |
| | | labelLine: { |
| | | show: true, |
| | | length: 40, |
| | | length: 15, |
| | | color: "blue", |
| | | length2: 70, |
| | | length2: 80, |
| | | }, |
| | | labelLayout: { |
| | | verticalAlign: "bottom", |