(G6)G6换行符处理超长文本
// G6换行符处理超长文本
superLongTextHandle(str, maxWidth, fontSize) {
let currentWidth = 0;
let res = str;
// 区分汉字和字母
const pattern = new RegExp("[\u4E00-\u9FA5]+");
str.split("").forEach((letter, i) => {
if (currentWidth > maxWidth) return;
if (pattern.test(letter)) {
// 中文字符
currentWidth += fontSize;
} else {
// 根据字体大小获取单个字母的宽度
currentWidth += G6.Util.getLetterWidth(letter, fontSize);
}
if (currentWidth > maxWidth) {
res = `${str.substr(0, i)}\n${this.superLongTextHandle(
str.substr(i),
maxWidth,
fontSize
)}`;
}
});
return res;
},
处理数据时在节点处使用
// 1.图数据
this.visualData = { nodes: [], edges: [] };
this.nodeData.forEach((item) => {
//设置 节点
let obj1 = {};
obj1 = {
id: item.id,
label: this.superLongTextHandle(item.name, 60, 12),
sortAttr: 0,
size: 60,
};
this.visualData.nodes.push(obj1);
});