Files
meida_front/utils/textUtils.js
T
liguigong b91b273686 feat: 初始化项目配置和样式- 添加项目环境变量配置文件 (.env)
- 创建代码忽略文件列表 (.gitignore)
- 设置代码格式化规则 (.prettierrc)- 添加各种样式文件,包括背景、边框、按钮、卡片等组件样式
- 创建暗黑主题样式文件
- 添加表单和代码样式文件
2025-09-12 09:53:45 +08:00

35 lines
1.0 KiB
JavaScript

// sheep/utils/textUtils.js
export function measureTextWidth(text, fontSize = 14, fontFamily = 'sans-serif') {
// 钉钉小程序没有 uni.createCanvasContext 方法
if (typeof uni === 'undefined' || typeof uni.createCanvasContext !== 'function') {
return estimateTextWidth(text, fontSize);
}
try {
const ctx = uni.createCanvasContext('tempCanvasForText');
ctx.setFontSize(fontSize);
ctx.font = `${fontSize}px ${fontFamily}`;
const metrics = ctx.measureText(text);
return metrics.width;
} catch (e) {
// 某些平台可能不支持 measureText,降级使用估算
return estimateTextWidth(text, fontSize);
}
}
// 简单估算中文和英文字符宽度
function estimateTextWidth(text, fontSize = 14) {
let width = 0;
for (let i = 0; i < text.length; i++) {
const charCode = text.charCodeAt(i);
if (charCode >= 0x4e00 && charCode <= 0x9fff) {
// 中文字符
width += fontSize;
} else {
// 英文字符
width += fontSize * 0.5;
}
}
return width;
}