| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <script src="lib/simpleRequire.js"></script> |
| <script src="lib/config.js"></script> |
| <script src="lib/jquery.min.js"></script> |
| <script src="lib/facePrint.js"></script> |
| <script src="lib/testHelper.js"></script> |
| <!-- <script src="lib/canteen.js"></script> --> |
| <link rel="stylesheet" href="lib/reset.css" /> |
| <style> |
| .test-title-inner { |
| text-align: center; |
| } |
| </style> |
| </head> |
| <body> |
| |
| <div id="main0"></div> |
| |
| <script> |
| require([ |
| 'echarts' |
| ], function (echarts) { |
| var option; |
| |
| var colorList = ['#dc67ce', '#7ddc67', '#8067dc', '#dc6967', '#dcd267', '#67b7dc']; |
| // cornerRadius can be an array [innerCornerRadius, outerCornerRadius] |
| var outerCornerRadius = 5; |
| var innerCornerRadius = 5; |
| var usePercent = false; |
| var isCircular = false; |
| var isRounderOnEmphasis = false; |
| var roseType = 'area'; |
| var randomTimer; |
| var data = [ |
| { |
| name: "America", |
| value: 260 |
| }, |
| { |
| name: "Zambia", |
| value: 230 |
| }, |
| { |
| name: "Ireland", |
| value: 200 |
| }, |
| { |
| name: "Germany", |
| value: 165 |
| }, |
| { |
| name: "Australia", |
| value: 139 |
| }, |
| { |
| name: "Japan", |
| value: 128 |
| } |
| ]; |
| |
| option = { |
| color: colorList, |
| title: { |
| text: getTitle() |
| }, |
| tooltip: {}, |
| legend: { |
| bottom: 0 |
| }, |
| series: { |
| type: 'pie', |
| roseType: roseType, |
| selectedMode: 'single', |
| selectedOffset: 30, |
| label: { |
| formatter: '{b} {c}({d}%)' |
| }, |
| itemStyle: { |
| borderRadius: getCornerRadius(), |
| }, |
| // itemStyle: { |
| // borderColor: '#fff', |
| // borderWidth: 5 |
| // }, |
| data: echarts.util.clone(data) |
| } |
| }; |
| |
| function getTitle() { |
| return 'cornerRadius [' |
| + innerCornerRadius + (usePercent ? '%' : '') |
| + ', ' |
| + outerCornerRadius + (usePercent ? '%' : '') |
| + ']'; |
| } |
| |
| function getCornerRadius() { |
| return [ |
| innerCornerRadius + (usePercent ? '%' : ''), |
| outerCornerRadius + (usePercent ? '%' : '') |
| ]; |
| } |
| |
| function getEmphasisCornerRadius() { |
| const cornerRadius = getCornerRadius(); |
| if (!isRounderOnEmphasis) { |
| return cornerRadius; |
| } |
| const emphasisCornerRadius = [ |
| parseInt(cornerRadius[0], 10) * 2, |
| parseInt(cornerRadius[1], 10) * 2 |
| ]; |
| if (usePercent) { |
| emphasisCornerRadius[0] = emphasisCornerRadius[0] + '%'; |
| emphasisCornerRadius[1] = emphasisCornerRadius[1] + '%'; |
| } |
| return emphasisCornerRadius; |
| } |
| |
| var chart = testHelper.create(echarts, 'main0', { |
| title: [ |
| 'Test Pie with **cornerRadius**', |
| '**cornerRadius** can be a number | string | number array | string array' |
| ], |
| option: option, |
| buttons: [ |
| { |
| text: 'increase innerCornerRadius', |
| onclick: function () { |
| innerCornerRadius += 5; |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'decrease innerCornerRadius', |
| onclick: function () { |
| innerCornerRadius -= 5; |
| if (innerCornerRadius < 0) { |
| innerCornerRadius = 0; |
| } |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'increase outerCornerRadius', |
| onclick: function () { |
| outerCornerRadius += 5; |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'decrease outerCornerRadius', |
| onclick: function () { |
| outerCornerRadius -= 5; |
| if (outerCornerRadius < 0) { |
| outerCornerRadius = 0; |
| } |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'use percent', |
| onclick: function () { |
| usePercent = !usePercent; |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'random cornerRadius', |
| onclick: function () { |
| // clearInterval(randomTimer); |
| // if (randomTimer) { |
| // randomTimer = null; |
| // } |
| // else { |
| // randomTimer = setInterval(function () { |
| outerCornerRadius = ~~(Math.random() * 50); |
| innerCornerRadius = ~~(Math.random() * 50); |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| // }, 2e3); |
| // } |
| } |
| }, |
| { |
| text: 'roseType', |
| onclick: function () { |
| roseType = roseType ? false : 'area'; |
| chart.setOption({ |
| series: [{ |
| roseType: roseType |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'circular', |
| onclick: function () { |
| var innerRadius; |
| if (!isCircular) { |
| innerRadius = ~~(Math.random() * 70); |
| } |
| chart.setOption({ |
| series: [{ |
| radius: isCircular ? [0, '75%'] : [innerRadius + '%', '75%'] |
| }] |
| }); |
| this.innerText = 'circular' + (innerRadius ? ' ' + innerRadius + '%' : ''); |
| isCircular = !isCircular; |
| } |
| }, |
| { |
| text: 'random data', |
| onclick: function () { |
| var randomData = echarts.util.clone(data); |
| echarts.util.each(randomData, function (e) { |
| e.value = ~~(Math.random() * 1e3); |
| }); |
| chart.setOption({ |
| series: [{ |
| data: randomData |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'rounder on emphasis', |
| onclick: function () { |
| isRounderOnEmphasis = !isRounderOnEmphasis; |
| chart.setOption({ |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| } |
| }] |
| }); |
| } |
| }, |
| { |
| text: 'reset', |
| onclick: function () { |
| outerCornerRadius = 5; |
| innerCornerRadius = 5; |
| usePercent = false; |
| isCircular = false; |
| roseType = 'area'; |
| isRounderOnEmphasis = false; |
| chart.setOption({ |
| title: { |
| text: getTitle() |
| }, |
| series: [{ |
| itemStyle: { borderRadius: getCornerRadius() }, |
| emphasis: { |
| itemStyle: { borderRadius: getEmphasisCornerRadius() } |
| }, |
| roseType: roseType, |
| radius: [0, '75%'], |
| data: data |
| }] |
| }); |
| } |
| } |
| ] |
| }); |
| }); |
| </script> |
| |
| </body> |
| </html> |
| |