作者:李明骏  历史版本:1  最后编辑:李明骏  更新时间:2024-09-11 09:48

编写版本:v1.2.1
适用版本:v1.2.0+
前置条件:使用的工程需在 Webpack5 版本以上,并使用模块联邦(ModuleFederationPlugin)接入 ui-base-core 项目提供的共享组件

共享组件-动态标签

一、 效果图



支持折叠多个标签显示

二、 组件路径

baseCore/core-add-tag.vue

源码:ui-base-core/src/components/core-tag/add-tag.vue

三、 使用举例

template

<template>
    ...
    <el-form-item label="资产标签" prop="assetLabel">
        <CoreAddTag
          v-model="form.assetLabel"
          size="default"
          :separator="tagSeparator"
          :close-tag-before="handleAssetLabelCloseTag"
          :readonly="readonly"
          @confirm="handleConfirm"
        />
    </el-form-item>
    ...
</template>

script

<script setup>

import CoreAddTag from 'baseCore/core-add-tag.vue'
...
// 是否只读
const readonly = ref(false)
// 数据分隔符
const tagSeparator = ref(',')
// 处理提交事件
const handleConfirm = () => {

}
// 标签删除前确认事件
const handleAssetLabelCloseTag = (callback) => {
  MessageBox.confirm('确认删除操作', '提示', { 'button-size': size }).then(() => {
    callback(true)
    handleConfirm()
  }).catch(() => {})
}
...
</script>

四、 组件API

属性

属性名 类型 默认值 描述
modelValue String/Array - 绑定的标签数据,可以是字符串或字符串数组
size String default 组件大小,可选值为 defaultlarge
buttonLabel String + 添加标签 按钮显示的文字
readonly Boolean false 是否只读模式
separator String , 标签之间的分隔符
closeTagBefore Function - 删除标签前的回调函数,接受一个回调函数作为参数
abbreviationLength Number 16 标签显示时的最大字符数
collapseTagsTooltip Boolean false 是否折叠超出部分标签并显示为 Tooltip
maxCollapseTags Number 1 折叠后显示的最大标签数量
tooltipPlacement String bottom Tooltip 的显示位置

事件

事件名 说明 返回值
confirm 确认添加标签的事件 -