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>
相关推荐
洛阳泰山2 天前
最新版本开发对接飞书网页应用免登录接口教程
前端·javascript·飞书
荷逸同学3 天前
小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书
飞书·小红书·影刀rpa·多维表格·小红书素材库·飞书素材库·小红书采集
开发者联盟league4 天前
发送webhook到飞书机器人
机器人·飞书
AI_NEW_COME7 天前
超越飞书钉钉:探索高效内部知识库平替方案与应用
人工智能·钉钉·飞书
Koma_zhe7 天前
【飞书创建ChatGPT机器人】在飞书中创建ChatGPT机器人并实现远程访问
chatgpt·机器人·飞书
C_小艾8 天前
仿iOS日历、飞书日历、Google日历的日模式
飞书
ygqygq212 天前
ElK 8 收集 MySQL 慢查询日志并通过 ElastAlert2 告警至飞书
mysql·elk·飞书
荷逸同学13 天前
小红书笔记采集链接版 | 同步飞书
笔记·飞书
sometime`something13 天前
飞书解除复制,下载文件限制终极方案
飞书
rgrgrwfe15 天前
【微服务】SpringBoot 对接飞书多维表格事件回调监听流程详解
spring boot·微服务·飞书