Appearance
ZTag
- 可用于进行属性分类,用于标记事物的属性和维度。
- 版本要求 >= 1.2.0
基础用法
标签 1标签 2标签 3标签 4
<template>
<div>
<z-tag>标签 1</z-tag>
<z-tag>标签 2</z-tag>
<z-tag>标签 3</z-tag>
<z-tag>标签 4</z-tag>
</div>
</template>
<script setup lang="ts">
import { ZTag } from "@d7ee/z-base-ui";
</script>
多彩标签
我们预设了六种常见的标签颜色,作用于不同场景,当然如果不能符合你的需求,也支持自定义色彩。
Presets:
successprimarywarningdangerinfonormalCustom:
purpleyellowcyanbluered#f06292#96ab61<template>
<h4 style="margin-bottom: 16px">Presets:</h4>
<z-tag color="success">success</z-tag>
<z-tag color="primary">primary</z-tag>
<z-tag color="warning">warning</z-tag>
<z-tag color="danger">danger</z-tag>
<z-tag color="info">info</z-tag>
<z-tag>normal</z-tag>
<h4 style="margin-bottom: 16px">Custom:</h4>
<z-tag color="purple">purple</z-tag>
<z-tag color="yellow">yellow</z-tag>
<z-tag color="cyan">cyan</z-tag>
<z-tag color="blue">blue</z-tag>
<z-tag color="red">red</z-tag>
<z-tag color="#f06292">#f06292</z-tag>
<z-tag color="#96ab61">#96ab61</z-tag>
</template>
<script setup lang="ts">
import { ZTag } from "@d7ee/z-base-ui";
</script>
色彩饱满
使用plump
可使色彩饱满。
Presets:
successprimarywarningdangerinfoCustom:
purplebluered#f06292#96ab61<template>
<h4 style="margin-bottom: 16px">Presets:</h4>
<z-tag color="success" plump>success</z-tag>
<z-tag color="primary" plump>primary</z-tag>
<z-tag color="warning" plump>warning</z-tag>
<z-tag color="danger" plump>danger</z-tag>
<z-tag color="info" plump>info</z-tag>
<h4 style="margin-bottom: 16px">Custom:</h4>
<z-tag color="purple" plump>purple</z-tag>
<z-tag color="blue" plump>blue</z-tag>
<z-tag color="red" plump>red</z-tag>
<z-tag color="#f06292" plump>#f06292</z-tag>
<z-tag color="#96ab61" plump>#96ab61</z-tag>
</template>
<script setup lang="ts">
import { ZTag } from "@d7ee/z-base-ui";
</script>
图标
使用icon
可以自定义样式图标或使用预设的图标库。值得注意的是,如果你打算使用预设图标需要安装对应的库,具体方法请查看icon图标
。
Presets:
pickredorangeCustom:
custom 1 custom 2 😅 custom 3<template>
<div class="box">
<h4 style="margin-bottom: 16px">Presets:</h4>
<z-tag color="pick" icon="face-smile-beam">pick</z-tag>
<z-tag color="red" icon="ghost">red</z-tag>
<z-tag color="orange" icon="cloud-showers-heavy">orange</z-tag>
<h4 style="margin-bottom: 16px">Custom:</h4>
<z-tag color="success">
<template #icon>
<z-icon icon="jet-fighter" bounce></z-icon>
</template>
custom 1
</z-tag>
<z-tag color="primary">
<template #icon>
<z-icon icon="phone" shake></z-icon>
</template>
custom 2
</z-tag>
<z-tag color="#80cbc4">
<template #icon>
😅
</template>
custom 3
</z-tag>
</div>
</template>
<script setup lang="ts">
import { ZTag, ZIcon } from "@d7ee/z-base-ui";
</script>
<style lang="less" scoped>
.box {
line-height: 20px;
.z-tag {
padding: 4px 7px;
}
.z-icon {
margin-right: 4px;
}
}
</style>
无边框
使用bordered
可取消边框。
标签 1标签 2标签 3标签 4
<template>
<div>
<z-tag>标签 1</z-tag>
<z-tag>标签 2</z-tag>
<z-tag :bordered="false">标签 3</z-tag>
<z-tag :bordered="false">标签 4</z-tag>
</div>
</template>
<script setup lang="ts">
import { ZTag } from "@d7ee/z-base-ui";
</script>
可关闭标签
使用closable
可使标签变为可关闭标签。
<template>
<z-tag color="success">success</z-tag>
<z-tag color="primary">primary</z-tag>
<z-tag color="warning" closable>warning</z-tag>
<z-tag closable>normal</z-tag>
<z-tag color="purple" closable>purple</z-tag>
<z-tag color="#f06292" closable>#f06292</z-tag>
<z-tag color="#96ab61">#96ab61</z-tag>
</template>
<script setup lang="ts">
import { ZTag } from "@d7ee/z-base-ui";
</script>
动态添加和删除
用数组生成一组标签,可实现动态删除或添加
标签1标签2标签3标签4新增属性
<template>
<div class="dynamic">
<z-tag closable v-for="(tag, index) in tags" :key="index" @close="closeTag(tag)">
{{tag}}
</z-tag>
<z-tag v-if="!isAdd" icon="plus" class="add" @click="() => isAdd = !isAdd">新增属性</z-tag>
<div class="ipt" v-if="isAdd">
<input v-model="content" placeholder="请输入"/>
<z-button size="small" type="primary" @click="handleClickAddItem">添加</z-button>
</div>
</div>
</template>
<script setup lang="ts">
import { ZTag, ZButton, Message } from "@d7ee/z-base-ui";
import {ref} from "vue";
const tags = ref<string[]>(["标签1", "标签2", "标签3", "标签4"]);
const isAdd = ref(false);
const content = ref<string>("");
const closeTag = (tag: string) => {
tags.value = tags.value.filter(r => r !== tag);
}
const handleClickAddItem = () => {
if (!content.value) {
Message.warning("请输入内容");
return;
}
tags.value.push(content.value);
isAdd.value = false;
content.value = "";
}
</script>
<style lang="less" scoped>
.dynamic {
display: flex;
align-content: center;
flex-wrap: wrap;
}
.add {
cursor: pointer;
}
.ipt {
display: inline-flex;
input {
border: 1px solid #cccccc;
margin-right: 4px;
box-sizing: border-box;
padding: 0 6px;
}
}
</style>
API 属性
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
color | 色彩 | string | - |
plump | 色彩饱满 | boolean | false |
fontColor | 字体颜色 | boolean | - |
bordered | 是否边框 | object | — |
icon | 图标 | string | slot | — |
closable | 是否可被关闭 | boolean | false |
id | 唯一id,没有时随机生成 | string | - |
slot 插槽
slotName | 说明 | 参数 |
---|---|---|
icon | 图标 |
event 事件
事件名称 | 说明 | 回调参数 |
---|---|---|
close | 点击关闭时回调 | (e) => void |