const calcStrLen = str => {
var len = 0;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
len++;
} else {
len += 2;
}
}
return len;
};
//str ---label
//maxwidth----size
// fontsize-----字体大小
const fittingStr = (str, maxWidth, fontSize) => {
var fontWidth = fontSize * 1; //字号+边距
maxWidth = maxWidth * 1.6; // 需要根据自己项目调整
var width = calcStrLen(str) * fontWidth;
var ellipsis = '…';
if (width > maxWidth) {
var actualLen = Math.floor((maxWidth - 20) / fontWidth);
var result = str.substring(0, actualLen);
if ((str.substring(actualLen).length + ellipsis.length) * fontWidth > maxWidth) {
result = result + '\n' + str.substring(actualLen, actualLen + actualLen-2) + ellipsis;
}
else if(str.substring(actualLen).length==0){
result = result ;
}
else {
result = result + '\n' + str.substring(actualLen);
}
return result;
} else {
return str;
}
};