誉天在线项目~ElementPlus Tag标签用法

效果图

在这里插入图片描述

页面展现

      <el-form-item label="课程标签">
        <el-tag
            v-for="tag in dynamicTags"
            :key="tag"
            class="mx-1"
            closable
            :disable-transitions="false"
            @close="handleClose(tag)"
            style="margin:5px;"
        >
          {{ tag }}
        </el-tag>
        <el-input
            style="width:200px;"
            v-if="inputVisible"
            ref="InputRef"
            v-model="inputValue"
            class="ml-1 w-20"
            size="small"
            @keyup.enter="handleInputConfirm"
            @blur="handleInputConfirm"
        />
        <el-button v-else class="button-new-tag ml-1" size="small" @click="showInput">
          + 新标签
        </el-button>
      </el-form-item>

初始化

//tag标签
const inputValue = ref('')
const dynamicTags = ref([])

const inputVisible = ref(false)
const InputRef = ref()

const handleClose = (tag) => {
  dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1)
}

const showInput = () => {
  inputVisible.value = true
  nextTick(() => {
    InputRef.value.input.focus()
  })
}

const handleInputConfirm = () => {
  if (inputValue.value) {
    dynamicTags.value.push(inputValue.value)
  }
  inputVisible.value = false
  inputValue.value = ''
}

保存时

//把数组转化成字符串,多个值以逗号隔开
  form.data.tags = dynamicTags.value.join(",")

回显时

//回显课程标签:数据库存储字符串,页面是数组。
  dynamicTags.value = form.data.tags.split(",")   //将字符串拆成数组
Element Plus库中,Tag组件的验证通常是通过配合Vue.js的数据绑定和自定义指令`v-model`以及`v-bind:class`来实现的。如果你想对用户输入的内容进行验证,可以按照以下步骤操作: 1. **设置数据属性**: 首先,在你的Vue实例中定义一个表示校验状态的对象,比如一个数组或对象,用于存储每个input的验证结果。 ```javascript data() { return { tagInput: '', tagValidations: { // 可以为一个对象,键是input名,值是验证规则或状态 tag: '' } }; } ``` 2. **添加v-model**: 绑定Tag输入框到数据属性`tagInput`。 ```html <el-input v-model="tagInput" placeholder="请输入标签"></el-input> ``` 3. **自定义验证函数**: 编写一个函数来检查输入是否符合规定,例如长度限制、字符类型等,并更新`tagValidations`。 ```javascript methods: { validateTag(tag) { const rule = '标签至少需要1个字符并且只能包含字母数字'; if (!tag || !/(^[a-zA-Z0-9]+$)/.test(tag)) { this.tagValidations.tag = '错误: ' + rule; } else { this.tagValidations.tag = ''; } }, } ``` 4. **监听输入变化**: 使用`@input`事件监听Tag输入框的变化,然后触发验证函数并更新状态。 ```html <el-input v-model="tagInput" :class="{ invalid: tagValidations.tag !== '' }" placeholder="请输入标签" @input="validateTag(tagInput)"> </el-input> ``` 5. **添加验证样式**: 利用`:class`动态添加CSS类,当验证失败时显示错误提示。 ```css .invalid { border-color: red; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值