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>
相关推荐
兔子蟹子5 小时前
JMeter 自动化测试 + 飞书通知完整指南
jmeter·飞书
玩泥巴的18 小时前
.NET项目中如何快速的集成飞书API
c#·.net·飞书
Sunny_yiyi15 天前
Java接入飞书发送通知消息
java·windows·飞书
FightingITPanda18 天前
订阅飞书审批事件
飞书·审批·订阅事件
WYiQIU19 天前
高级Web前端开发工程师2025年面试题总结及参考答案【含刷题资源库】
前端·vue.js·面试·职场和发展·前端框架·reactjs·飞书
Hy行者勇哥23 天前
[特殊字符] 飞书团队协作实施攻略——适用于软硬件融合研发团队(含外聘/兼职)
飞书
北邮-吴怀玉24 天前
2.2.1.2 大数据方法论与实践指南-基于飞书项目的项目管理规范
大数据·飞书·数据治理
Teable任意门互动24 天前
主流多维表格产品深度解析:飞书、Teable、简道云、明道云、WPS
开发语言·网络·开源·钉钉·飞书·开源软件·wps
淡淡蓝蓝24 天前
uni-app小程序往飞书多维表格写入内容(包含图片)
小程序·uni-app·飞书
盼哥PyAI实验室1 个月前
《Python爬虫 + 飞书自动化上传》全流程详细讲解
爬虫·python·飞书