平台兼容性

项目说明

本项目是基于uni-app的一个通用组件。可支持小程序,也支持APP。 组件名称为“标签组件”,通过属性设置可支持只读标签,也支持可编辑标签

组件功能说明:

  1. 输入文字,点添加,可新建一个标签
  2. 可同时输入多个标签,以逗号相隔
  3. 标签新建后自动添加到后面
  4. 标签上自带删除图标,点击可删除
  5. 删除图标可配置显示/隐藏
  6. 标签背景色可配置内置的5种颜色
  7. 标签可点击触发事件
  8. 标签删除时可触发删除事件
  9. 添加区域可配置显示/隐藏
  10. 可获取当前标签的数据列表

历史版本说明

版本号 更新日期 更新说明
v1.0 2019-4-14 功能参考上面“组件功能说明”
v1.1 2019-4-17 1.移除tagData属性 2.增加v-model支持 3.增加value属性
v1.2 2019-4-17 优化数据双向绑定的参数:某种情况下初始化的数据不能显示

使用说明

拷贝该组件到components目录下之后

script中引用组件

import robbyTags from '@/components/robby-tags/robby-tags.vue'
export default {
    components: {robbyTags}
}

template 中使用组件:

<robby-tags :value="tagList"></robby-tags>
<robby-tags v-model="tagList" @add="addTag" @delete="delTag" :enable-del="enableDel" :enable-add="enableAdd"></robby-tags>

双向绑定说明

v-model: 类型为字符串数组。 即标签数组,可用于初始化,当添加/删除操作时,绑定的数据都会同步更新

属性说明

属性名 类型 默认值 说明
enable-del Boolean false 删除图标是否可见,即是否可删除
enable-add Boolean false 添加标签操作是否可见,即是否可进行添加标签
bg-color-type String '' 标签的背景颜色,默认为灰色,另外可取值有四种,与uni自带的颜色保持一致,分别为:primary, success, warn, error
value Array<String> [] 初始化标签数据,可用于单向数据初始化,需要双向绑定可直接用v-model

事件说明

事件名称 说明 返回参数
add 点击”添加“按钮后触发的事件,返回参数为当前操作添加的标签数组和当前所有的标签数组 {currentTag:Array,allTags:}
delete 点击“x”删除图标后触发的事件,返回参数为当前删除的标签字符串 {currentTag:String,allTags:}
click 点击标签文字触发的事件,返回参数为当前点击的标签字符串 String

demo示例

<template>
    <view class="uni-common-mt">
        <view class="uni-label">
            为作品贴标签
        </view>
        <robby-tags v-model="tagList" @add="addTag" @delete="delTag" @click="clickTag" :enable-del="enableDel" :enable-add="enableAdd"></robby-tags>
        <view :key="index" v-for="(tag,index) in tagList">
            {{index}}. {{tag}}
        </view>
    </view>
</template>
<script>
    import robbyTags from '@/components/robby-tags/robby-tags.vue'
    export default {
        data() {
            return {
                enableDel: true,
                enableAdd: true,
                colorType: 'primary',
                tagList: ['建筑','动漫','艺术']
            }
        },
        methods:{
            clickTag: function(e){
                console.log(e)
            },
            delTag: function(e){
                console.log(e)
            },
            addTag: function(e){
                console.log(e)
            }
        }
    }
</script>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问