饼状图 label换行

描述:当前是关于Echarts图表中的 饼图 示例。
 
            let colorList = [
    "#5a91fb",
    "#5ad9a7",
    "#f7bd16",
    "#6ec9eb",
    "#955eb9",
    "#ff9944",
    "#1e9593",
    "#ff99c3",
    "#e86452",
]

let seriesData = [{
        name: "保护工程",
        value: 2,
    },
    {
        name: "展示工程",
        value: 1,
    },
]

let keepWordNum = 2 // 每几个字换行
option = {
    title: {},
    color: colorList,
    tooltip: {
        trigger: "item",
        formatter: "{b} : {c}<br/> ({d}%)",
    },
    calculable: true,
    series: [{
            name: "测试集",
            type: "pie",
            hoverAnimation: false,
            selectedMode: "single",
            radius: "70%",
            label: {
                normal: {
                    show: true,
                    position: "inner", //显示在扇形上
                    formatter: "{c}", //显示内容
                    textStyle: {
                        color: "white", // 改变标示文字的颜色
                        fontSize: 12, //文字大小
                        fontWeight: "bold",
                    },
                },
            },
            data: seriesData,
        },
        {
            type: "pie",
            radius: "70%",
            hoverAnimation: false,
            label: {
                normal: {
                    textStyle: {
                        fontSize: 14,
                    },
                    formatter: (param) => {
                        let newStr = "";
                        let start, end;
                        let name_len = param.name.length; //每个内容名称的长度
                        let max_name = keepWordNum; //每行最多显示的字数
                        let new_row = Math.ceil(name_len / max_name); // 最多能显示几行,向上取整比如2.1就是3行
                        if (name_len > max_name) { //如果长度大于每行最多显示的字数
                         for (let i = 0; i < new_row; i++) { //循环次数就是行数
                                let old = ''; //每次截取的字符
                                start = i * max_name; //截取的起点
                                end = start + max_name; //截取的终点
                                if (i == new_row - 1) { //最后一行就不换行了
                                    old = param.name.substring(start);
                                } else {
                                    old = param.name.substring(start, end) + "\n";
                                }
                                newStr += old; //拼接字符串
                            }
                        } else { //如果小于每行最多显示的字数就返回原来的字符串
                            newStr = param.name;
                        }
                        return `${newStr}\n${Math.round(param.percent)}%` 
                    },
                },
            },
            labelLine: {
                normal: {
                    length: 10,
                    length2: 10,
                    smooth: true,
                    lineStyle: {
                        width: 2,
                    },
                },
            },
            itemStyle: {
                normal: {
                    shadowBlur: 30,
                    shadowColor: "rgba(0, 0, 0, 0.4)",
                },
            },
            data: seriesData,

        },
    ],
}