vue3中,封装tag标签列中,单击进行切换分类

vue3中,封装tag标签列中,单击进行切换分类

效果

在这里插入图片描述

代码

封装组件

src\views\attendance\components\pitChecked.vue

<template>
	<div class="pitChecked-box">
		<span
			v-for="item in buttonList"
			:class="typeIndex == item.value ? 'active' : ''"
			@click="handleButton(item.value)"
			:key="item.value"
			>{{ item.key }}
		</span>
	</div>
</template>
<script setup lang="ts" name="pitChecked">
import { ref } from "vue";
const buttonList = [
	{
		value: 0,
		key: "全部"
	},
	{
		value: 1,
		key: "tag分类一"
	},
	{
		value: 2,
		key: "tag分类二"
	}
];
const emit = defineEmits(["handleButton"]);
const typeIndex = ref(0);
const handleButton = (value: any) => {
	typeIndex.value = value;
	emit("handleButton", buttonList[value]);
};
</script>
<style scoped lang="scss">
.pitChecked-box {
	display: flex;
	> span {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0 20px;
		border-radius: 4px;
		background: rgba(0, 0, 0, 0.2);
		color: #fff;
		font-family: PingFang SC;
		font-size: 12px;
		margin-left: 8px;
		cursor: pointer;
	}
	.active {
		background: rgba(0, 117, 255, 1);
	}
}
</style>
引用组件

index.vue

<template>
	<div class="container">
		<PitChecked @handle-button="handleChangePit"></PitChecked>
	</div>
</template>
<script setup lang="ts" name="absenteeism">
import PitChecked from "@/views/attendance/components/pitChecked.vue";
// tag分类选择
const handleChangePit = (value: any) => {
	console.log(value);
};
</script>
<style scoped lang="scss">
.container {
	position: relative;
	flex: 4;
	// margin-bottom: 8px;
	// background: rgb(0 0 0 / 30%);
	border-radius: 10px;
	span {
		font-size: 16px;
		color: #ffffff;
	}
}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值