Skip to content

禁止删除标签

items 数据项配置中设置 disableDelete: true,可使该选项生成的标签禁止删除。被禁止删除的标签不展示关闭按钮,也无法通过清空按钮或退格键删除;编辑时仅允许修改值,不允许切换属性/类型(否则等同于变相删除)。

<template>
  <ClientOnly>
    <tiny-search-box v-model="tags" :items="items" editable />
    <div class="disable-tag-delete-tip">
      「名称」配置了 disableDelete,标签不可删除;编辑时仅可修改值,不可切换属性。
    </div>
  </ClientOnly>
</template>

<script setup lang="ts">
import { ref } from 'vue'

const items = [
  {
    label: '名称',
    field: 'testName',
    replace: true,
    // 该选项生成的标签禁止删除,但仍可编辑修改
    disableDelete: true,
    options: [
      { label: 'ecs-1' },
      { label: 'obs-2' },
      { label: 'vpc-1' }
    ]
  },
  {
    label: '可用地区',
    field: 'testRegion',
    type: 'checkbox',
    options: [
      { label: '华南区', id: '2-1' },
      { label: '华北区', id: '2-2' },
      { label: '西北区', id: '2-3' }
    ]
  },
  {
    label: '个人IP地址',
    field: 'ip',
    replace: true,
    options: [
      { label: '192.168.0.1' },
      { label: '192.168.0.2' }
    ]
  }
]

const tags = ref([
  {
    field: 'testName',
    label: '名称',
    value: 'ecs-1',
    type: 'radio'
  },
  {
    field: 'ip',
    label: '个人IP地址',
    value: '192.168.0.1'
  }
])
</script>

<style scoped>
.disable-tag-delete-tip {
  margin-top: 12px;
  font-size: 12px;
  color: #6b7280;
}
</style>