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

效果图

页面展现

java 复制代码
      <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>

初始化

java 复制代码
//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 = ''
}

保存时

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

回显时

java 复制代码
//回显课程标签:数据库存储字符串,页面是数组。
  dynamicTags.value = form.data.tags.split(",")   //将字符串拆成数组
相关推荐
xkxnq3 分钟前
第六阶段:Vue生态高级整合与优化(第96天) Vue i18n优化:语言包按需加载+缓存当前语言+避免页面刷新失效
前端·vue.js·缓存
Dxy12393102166 分钟前
Ajax如何发送列表数据
前端·ajax·okhttp
C澒9 分钟前
微前端容器标准化 —— 公共能力篇:通用跨框架通信能力
前端·架构
榴莲omega11 分钟前
第8天:前端面试经典五问
前端·面试·职场和发展·js八股
资讯第一线17 分钟前
RAD Studio 13.1 [DELPHI 13.1] [官方原版IOS] 下载
前端
橘子编程19 分钟前
CSS 全栈指南:从基础到 2025 新特性
前端·css·chrome·tensorflow·less·css3·html5
不会写DN27 分钟前
从依赖到自主:手写一个 ICO 文件转换器
前端·javascript·typescript·node.js
夏暖冬凉31 分钟前
前端大文件上传
前端
Aliex_git31 分钟前
前端监控笔记(一)
前端·笔记·学习