# Tag 标签
tag 组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
# 平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ 小程序 |
---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ | √ |
# 示例
# 基本用法
- 通过
type
参数设置主题类型,默认为primary
- 属性
text
设置标签内容
<pi-tag type="warning" text="爱听粤语歌" />
1
# 自定义主题
- 通过
type
参数设置主题类型,默认为primary
,可选值为primary
、success
、info
、warning
、danger
<pi-tag text="ACG爱好者" custom-class="pi-mg-right-20" />
<pi-tag text="游戏宅" type="warning" custom-class="pi-mg-right-20" />
<pi-tag text="三坑少女" type="success" custom-class="pi-mg-right-20" />
<pi-tag text="中二病少年" type="error" custom-class="pi-mg-right-20 pi-mg-top-20" />
<pi-tag text="古典乐爱好者" type="info" custom-class="pi-mg-top-20" />
1
2
3
4
5
2
3
4
5
# 圆角标签
- 通过
shape
参数设置标签形状,默认为square
,可选值为circle
(两边半圆形),square
(方形,带圆角)
<pi-tag text="观影爱好者" plain shape="circle" custom-class="pi-mg-right-20" />
<pi-tag text="美剧十级学者" shape="circle" />
1
2
2
# 镂空标签
- 添加
plain
属性镂空
<pi-tag text="吉他新手" plain custom-class="pi-mg-right-20" />
<pi-tag text="峡谷小学生" type="warning" plain custom-class="pi-mg-right-20" />
<pi-tag text="快乐追星人" type="success" plain custom-class="pi-mg-right-20" />
<pi-tag text="漫威粉" type="error" plain custom-class="pi-mg-right-20 pi-mg-top-20" />
<pi-tag text="古典乐爱好者" type="info" plain custom-class="pi-mg-top-20" />
1
2
3
4
5
2
3
4
5
# 镂空带背景色
- 添加
plainFill
属性镂空带背景色
<pi-tag text="古风" plain plain-fill custom-class="pi-mg-right-20" />
<pi-tag text="手风琴" type="warning" plain plain-fill custom-class="pi-mg-right-20" />
<pi-tag text="旋律控" type="success" plain plain-fill custom-class="pi-mg-right-20" />
<pi-tag text="轻音乐" type="error" plain plain-fill custom-class="pi-mg-right-20 pi-mg-top-20" />
<pi-tag text="古典乐爱好者" type="info" plain plain-fill custom-class="pi-mg-top-20" />
1
2
3
4
5
2
3
4
5
# 自定义尺寸
- 通过
size
参数设置标签尺寸,默认为medium
,可选值为large
、medium
、mini
<view class="pi-flex-column">
<view>
<pi-tag text="一万次悲伤" plain size="mini" custom-class="pi-mg-right-20" />
<pi-tag text="一万次悲伤" plain size="medium" custom-class="pi-mg-right-20" />
<pi-tag text="一万次悲伤" plain size="large" />
</view>
<view class="pi-mg-top-20">
<pi-tag text="抑郁不是症" size="mini" custom-class="pi-mg-right-20" />
<pi-tag text="抑郁不是症" size="medium" custom-class="pi-mg-right-20" />
<pi-tag text="抑郁不是症" size="large" />
</view>
</view>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 可关闭标签
- 通过
closable
属性设置可关闭,show
属性控制标签显示与否
<template>
<view class="pi-align-center">
<view v-if="close1" class="pi-mg-right-40">
<pi-tag text="粤语" size="mini" closable :show="close1" @close="close1 = false" />
</view>
<view v-if="close2" class="pi-mg-right-40">
<pi-tag text="国语" type="warning" closable :show="close2" @close="close2 = false" />
</view>
<pi-tag
text="外语"
type="error"
size="large"
plain
closable
:show="close3"
@close="close3 = false"
/>
</view>
</template>
<script>
export default {
data () {
return {
close1: true,
close2: true,
close3: true
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 带图片和图标
- 通过
icon
属性设置标签的图标或者图片 - 图标名称参考 Icon 图标 (opens new window)
<view class="pi-align-center">
<pi-tag text="点赞" plain size="mini" icon="praise" custom-class="pi-mg-right-20" />
<pi-tag
text="为你点赞"
type="warning"
icon="praise-fill"
custom-class="pi-mg-right-20"
/>
<pi-tag
text="自定义图片"
plain
size="large"
icon="https://piui.sadais.com/piui-awesome/static/tabbar/manage_fill.png"
/>
</view>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 单选标签和多选标签
- 通过
color
属性设置标签的文本颜色
- 通过
bgColor
属性设置标签的背景颜色
- 通过
borderColor
属性设置标签的边框颜色
- 通过
tagWrapperClass
属性设置标签容器
的样式类 - 通过
tagWrapperStyle
属性设置标签容器
的样式
<template>
<pi-divider content-position="left" :custom-style="{ marginBottom: '48rpx' }">
单选标签
</pi-divider>
<view class="pi-flex-wrap demo-tags">
<pi-tag
v-for="(item, index) in singleOptions"
:key="index"
:text="item.name"
:name="item.code"
:color="tagColor(item.code)"
:bg-color="tagBgColor(item.code)"
:border-color="tagBorderColor(item.code)"
:custom-style="{ padding: '0 12rpx' }"
tag-wrapper-class="col-4 pi-mg-right-20 pi-mg-bottom-20"
@click="handleSelectSingle"
/>
</view>
<pi-divider content-position="left" :custom-style="{ margin: '48rpx 0' }">
多选标签
</pi-divider>
<view class="pi-flex-wrap demo-tags">
<pi-tag
v-for="(item, index) in multipleOptions"
:key="index"
:text="item.name"
:name="item.code"
:color="tagColor(item.code)"
:bg-color="tagBgColor(item.code)"
:border-color="tagBorderColor(item.code)"
:custom-style="{ padding: '0 12rpx' }"
tag-wrapper-class="col-4 pi-mg-right-20 pi-mg-bottom-20"
@click="handleSelectMutiple"
/>
</view>
</template>
<script>
export default {
name: 'Tag',
data() {
return {
// 单选标签选项
singleOptions: [
{
name: '5星好评',
code: 5555
},
{
name: '4星以上',
code: 4444
},
{
name: '点评高分',
code: 3333
}
],
// 多选标签选项
multipleOptions: [
{
name: '津贴优惠',
code: 1
},
{
name: '会员商家',
code: 2
},
{
name: '优惠商家',
code: 3
},
{
name: '满减优惠',
code: 4
},
{
name: '进店领券',
code: 5
},
{
name: '折扣商品',
code: 6
},
{
name: '首单立减',
code: 7
},
{
name: '满赠活动',
code: 8
}
],
singleCode: '', // 单选标签选中的code
multipleCode: [] // 多选标签选中的code
}
},
computed: {
// 单选标签选中
isActive() {
return code => {
return this.singleCode === code || this.multipleCode.includes(code)
}
},
// 标签文本颜色
tagColor() {
return code => {
return this.isActive(code) ? '#ff9900' : '#333333'
}
},
// 标签边框颜色
tagBorderColor() {
return code => {
return this.isActive(code) ? '#ff9900' : '#f2f2f2'
}
},
// 动态设置标签背景色
tagBgColor() {
return code => {
return this.isActive(code) ? '#fdf6ec' : '#f2f2f2'
}
}
},
methods: {
// 单选标签选择回调
handleSelectSingle(code, name) {
console.log(`选中了:code:${code},name:'${name}'`)
this.singleCode = code
},
// 多选标签选择回调
handleSelectMutiple(code) {
if (this.multipleCode.includes(code)) {
this.multipleCode.splice(this.multipleCode.indexOf(code), 1)
} else {
this.multipleCode.push(code)
}
console.log('选中了:' + JSON.stringify(this.multipleCode))
}
}
}
</script>
<style lang="scss" scoped>
.demo-tags {
margin-right: -20rpx;
.col-4 {
width: calc(25% - 20rpx);
}
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# 自定义样式
可通过custom-class
, custom-style
设置标签样式
<pi-tag text="爱听粤语歌" custom-class="pi-mg-20" :custom-style="{ padding: '0 100rpx' }" />
1
# API
# Props
名称 | 描述 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
type | 主题类型 | 'info' 'primary' 'success' 'warning' 'error' | false | primary |
disabled | 不可用 | Boolean /String | false | false |
size | 标签大小 | 'large' 'medium' 'mini' | false | medium |
shape | 标签形状 | 'circle' 'square' | false | square |
text | 标签的文字内容 | String /Number | false | - |
bgColor | 背景颜色,默认为空字符串,即不处理 | String | false | #C6C7CB |
color | 标签字体颜色,默认为空字符串,即不处理 | String | false | - |
borderColor | 标签的边框颜色 | String | false | - |
closeColor | 关闭按钮图标的颜色 | String /Number | false | - |
name | 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了 | String | false | - |
plainFill | 镂空时是否填充背景色 | Boolean | false | false |
plain | 是否镂空 | Boolean | false | false |
closable | 是否可关闭,设置为true ,文字右边会出现一个关闭图标 | Boolean | false | false |
show | 标签显示与否 | Boolean | false | false |
icon | 内置图标,或绝对路径的图片 | String | false | - |
customStyle | 自定义标签样式,对象形式 | Object | false | {} |
customClass | 自定义标签样式类,字符串形式 | String | false | '' |
tagWrapperStyle | 自定义标签容器 样式,对象形式 | Object | false | {} |
tagWrapperClass | 自定义标签容器 样式类,字符串形式 | String | false | '' |
# Events
方法名称 | 说明 | 参数 |
---|---|---|
click | 点击标签触发 | index: 传递的 index 参数值,text: 标签的文本 |
close | closable 为true 时,点击标签关闭按钮触发 | index: 传递的 index 参数值,text: 标签的文本 |