vue3仿飞书头像,根据不同名称生成不同的头像背景色

效果展示:
传递三个参数:
  • name:要显示的名称;
  • size:头像的大小;
  • cutNum:分割当前名称的最后几位数;
代码如下:
html 复制代码
<template>
	<div
		:style="{
			color: '#fff',
			borderRadius: '50%',
			width: size + 'px',
			height: size + 'px',
			display: 'block',
			textAlign: 'center',
			lineHeight: size + 'px',
			fontSize: size * 0.4 + 'px',
			background: color(name)
		}"
	>
		{{ name.slice(-cutNum) }}
	</div>
</template>

<script lang="ts" setup>
defineProps({
	name: {
		type: String,
		default: ""
	},
	size: {
		type: Number,
		default: 16
	},
	cutNum: {
		type: Number,
		default: 1
	}
});

const color = (name: string) => {
	if (name) {
		let num = "";
		for (let i = 0; i < name.length; i++) {
			num += name[i].charCodeAt(0).toString();
		}
		const r = Math.min(100 + (parseInt(num.slice(0, 2), 10) % 55), 255);
		const g = Math.min(100 + (parseInt(num.slice(2, 4), 10) % 55), 255);
		const b = Math.min(100 + (parseInt(num.slice(4, 6), 10) % 55), 255);
		return `rgb(${r}, ${g}, ${b})`;
	} else {
		return "rgb(125, 125, 125)";
	}
};
</script>
使用代码如下:
复制代码
<AuthorImage name="铁甲小宝" :size="74" :cut-num="2"></AuthorImage>
相关推荐
mudtools4 天前
如何设计易维护、低学习成本的飞书.NET SDK组件
学习·.net·飞书
玩泥巴的5 天前
如何设计易维护、低学习成本的飞书.NET SDK组件
c#·二次开发·飞书·roslyn
是垚不是土5 天前
TDengine脚本备份方案:全库/单库备份与飞书通知
大数据·运维·数据库·飞书·时序数据库·tdengine
mudtools6 天前
当传统工单遇见飞书:.NET系统的协作升级之旅
c#·自动化·.net·飞书
玩泥巴的7 天前
如何在.NET系统中快速集成飞书任务分配能力
c#·.net·二次开发·飞书
Teable任意门互动9 天前
从飞书多维表格 简道云到Teable多维表格:企业为何选择Teable作为新一代智能数据协作平台?
数据库·excel·钉钉·飞书·开源软件
知行EDI10 天前
让EDI异常消息即时可达:知行之桥集成飞书机器人的实践分享
飞书·edi·电子数据交换·知行之桥
弗锐土豆10 天前
使用飞书javaSDK拉取“成员活跃详情”
飞书·api·后台
驱动探索者12 天前
[缩略语大全]之[编译器]篇
计算机·状态模式·飞书·编译器
Teable任意门互动13 天前
飞书多维表格vsTeable 如何选?把握“内外兼修”是关键决策点
运维·自动化·飞书·数据库开发·wps