当前位置: 首页 > article >正文

el-input输入框需要支持多输入,最后传输给后台的字段值以逗号分割

需求:一个输入框字段需要支持多次输入,最后传输给后台的字段值以逗号分割
解决方案:结合了el-tag组件的动态编辑标签 那块的代码

//子组件
<template>
  <div class="input-multiple-box" id='inputMultipleBox'>
    <div>
      <el-tag v-for="(tag, index) in inputTagList" :key="index" type="info" closable @close="handleClose(index)">
        {{ tag }}
      </el-tag>
    </div>
    <el-input
      v-model="inputValue"
      @keyup.enter="handleInputConfim"
      @blur="handleInputConfim"
      style="flex: 1; min-width: 100px"
      placeholder="按下enter键或者失去焦点进行添加"
    ></el-input>
  </div>
</template>
 
<script lang="ts" setup>
import { onMounted, ref, watch } from 'vue'

const props = defineProps(["inputTags", "separator"]);
const emit = defineEmits(['update:inputTags'])

const inputTagList = ref([])
const inputValue = ref('')
const handleClose = (index: number) => {
  inputTagList.value.splice(index, 1)
  emit('update:inputTags', inputTagList.value.join(props.separator || ','))
}
const handleInputConfim = () => {
  if (inputValue.value) {
    inputTagList.value.push(inputValue.value)
    inputValue.value = ''
    emit('update:inputTags', inputTagList.value.join(props.separator || ','))
  }
}

watch(()=>props.inputTags, (val, pre) => {
  inputTagList.value = props.inputTags.split(props.separator || ',')
});

onMounted(() => {
  if (props.inputTags) {
    inputTagList.value = props.inputTags.split(props.separator || ',')
  }
})
</script>
 
<style lang="scss" scoped>
.input-multiple-box {
  width: 100%;
  border-radius: 4px;
  border: 1px solid #dcdfe6;
  // padding: 0 5px;
  display: flex;
  flex-wrap: wrap;
}
</style>
<style lang="scss">
#inputMultipleBox {
  .el-input__inner {
    border: none;
  }
}
</style>


//父组件
import multipleInput from '@/components/multipleInput/index.vue'
<multipleInput
   v-model:inputTags="form.modbus"
   placeholder="请输入"
   clearable
 >
 </multipleInput>

实现效果图
在这里插入图片描述


http://www.kler.cn/a/461410.html

相关文章:

  • MT8788安卓核心板_MTK8788核心板参数_联发科模块定制开发
  • php 静态变量
  • 慧集通iPaaS集成平台低代码培训-基础篇
  • Python中的闭包和装饰器
  • javaEE-多线程进阶-JUC的常见类
  • OCR实践-问卷表格统计
  • 智慧社区养老服务平台(源码+文档+部署+讲解)
  • C语言自定义类型
  • 字节跳动Java开发面试题及参考答案(数据结构算法-手撕面试题)
  • 【网络云SRE运维开发】2024第52周-每日【2024/12/31】小测-计算机网络参考模型和通信协议的理论和实操考题-简要解析
  • AI替换:FaceFusion4.1.0 更新内容和软件
  • STM32 IAP技术 bootloader设计
  • 好用的随机生成图片的网站
  • Ae:项目设置 - 音频
  • π₀:基于VLM的多任务具身操作基础模型
  • View Shadcn UI 正式版本 v2024.5.4 发布
  • C++【内存管理】
  • golang中的错误处理机制
  • Fetch处理大模型流式数据请求与解析
  • OpenLinkSaas使用手册-项目外部资源管理
  • HarmonyOS:@Require装饰器:校验构造传参
  • 深入解析 Android MediaHTTPConnection JNI 实现
  • 2024广东省职业技能大赛云计算——私有云(OpenStack)平台搭建
  • Java Web学生自习管理系统
  • 课程设计项目之基于Python实现围棋游戏代码
  • REDIS1.0