ElementUI的动态编辑标签默认只有添加,现在我要有修改的功能

1、要有添加修改的功能

2、要实现去重,不管是添加,还是修改,如果重复的话,都应该进行提示

3、需求还要实现拖拽排序功能,正在实现中。

就是实现有一个按钮,当年点击时,他会变成一个输入框,你可以输入值,失去焦点后,他就又变成一个标签,然后标签后面会有编辑和删除按钮,点击编辑可以修改当前标签的值。

效果

1、初始效果

 2、点击新增时 

 3、点击编辑时

 4、重复时

HTML

 <el-tag :key="tag" type="info" v-for="tag in dynamicTags" closable :disable- 
          transitions="false"  @close="handleClose(tag)" class="distanceTag">
     <span style="margin-right: 4px;">{{ tag }}</span>
     <i class="el-icon-edit" @click="changeValue(tag)"></i>
  </el-tag>

<el-input  v-if="inputVisible" v-model="inputValue" ref="saveTagInput"
          size="small" @keyup.enter.native="handleInputConfirm" @blur="handleInputConfirm">
 </el-input>
 <el-button v-else class=" assortAdd" size="small" border-style="['dashed']"
              :border-color="['#1F64E3']" @click="showInput">+新增</el-button>

JS

data(){
  return{
        dynamicTags: ['标签一', '标签二', '标签三'],
        inputVisible: false,
        inputValue: '',
        tempTag: '',
        // 是否是重复数据
        isRepeatedData: false,
        // 是否改变原来的值
        isChange: false,
     
}},
methods:{
 handleClose(tag) {
        this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
      },

      showInput() {
        this.tempTag = ''
        this.inputVisible = true;
        this.inputValue = ''
        this.isChange = false

        this.$nextTick(_ => {
          this.$refs.saveTagInput.$refs.input.focus();
        });
      },

      handleInputConfirm() {
        this.isRepeatedData = false
        let inputValue = this.inputValue;
        // 去空格
        inputValue = inputValue.replace(/^\s\s*/, '').replace(/\s\s*$/, '')
        if (inputValue == '') {
          this.inputVisible = false
          return
        }
        // 判断新增的值是否重复
        console.log(this.dynamicTags.indexOf(inputValue),this.tempTag,inputValue);
        const isDuplicate = this.dynamicTags.some((tag) => tag === inputValue);
        if (isDuplicate && this.tempTag !== inputValue) {
          this.isRepeatedData = true
          this.$message.error("不允许添加重复数据!")
          return
        } else {
          this.isRepeatedData = false
        }
        if (this.isChange) {
        const index = this.dynamicTags.indexOf(this.tempTag);
    if (index !== -1) {
      this.dynamicTags.splice(index, 1, inputValue);
    }
    this.inputVisible = false;
    return;
        }
        // 点击添加时,追加
        if (inputValue) {
          this.dynamicTags.push(inputValue);
          console.log(inputValue+'tt:'+this.dynamicTags)
        }
        this.inputVisible = false;
        this.inputValue = '';
      },
      changeValue(tag) {
        console.log(tag,'tag');
        this.inputVisible = true
       
        this.inputValue = tag
        this.tempTag = tag
        this.isChange = true
        this.$nextTick(_ => {
          this.$refs.saveTagInput.$refs.input.focus();
        });
      },

}

样式根据需求自己写吧

起名时在学Aiifox
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vue+ElementUI实现订单页动态添加产品数据效果实例代码
08-30
本篇文章主要介绍了vue+ElementUI实现订单页动态添加产品效果实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Vue3+express实现动态编辑element-plus组件tag标签和select下拉框
海风依旧
05-29 2132
Vue3+express实现动态编辑element-plus组件tag标签和select下拉框
element-ui动态编辑标签
Zing_ing的博客
07-23 1029
通过v-for,根据description的内容进行渲染。当点击New Tag后,通过v-if和v-else来显示输入框,并去掉New Tag,在完成输入后由于绑定了失去焦点的事件和回车按下后的事件,会将新的内容放入数组中,通过v-for重新进行渲染,并且重置相关值以消失。点击叉叉,标签消失,点击New Tag,显示输入框,输入完成后生成标签,并且出现New Tag标签。关闭标签则是直接对数组进行剪切,删除某个值,再通过v-for重新进行渲染。
106.(前端)分类管理显示增加值tag——使用elementui中的动态编辑标签搭建结构
m0_63953077的博客
10-31 947
使用elementui中的动态编辑标签搭建结构
vue_element tag动态编辑标签
weixin_58142279的博客
10-31 742
vue+element tag动态编辑标签
vue+ElementUI实现Tag的增删改等功能
qq_43474235的博客
09-19 1152
vue+ElementUI实现Tag的增删改等功能
elementUI动态设置tags标题,刷新页面后标题变成默认
一天吃八顿
11-03 419
elementUI动态设置tags标题,刷新页面后标题变成默认
vue使用ElementUI时导航栏默认展开功能实现
08-27
主要介绍了vue使用ElementUI时导航栏默认展开功能实现,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
Vue + Elementui实现标签页共存的方法
10-16
主要介绍了Vue + Elementui实现标签页共存的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
10-17
主要介绍了Vue+elementUI动态表单的校验(根据条件动态切换校验格式),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
elementUI 动态生成几行几列的方法示例
10-16
主要介绍了elementUI 动态生成几行几列的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
element ui动态编辑tag进行优化,点击tag后变为input可编辑
weixin_47180815的博客
10-22 3580
element ui动态编辑tag进行优化,点击tag后变为input可编辑 https://element.eleme.io/#/zh-CN/component/tag 重点1:$set的用法 修改响应数据 在data中声明editable: [], 通过this.$set(this.editable, index, true);来修改数组 this.$set(vm.item, indexOfItem, newValue); this.set(vm.item, indexOfItem, newV..
修改element UI的标签样式大全
最新发布
80岁小姑娘的博客
10-26 428
【代码】修改element UI的标签样式。
Elementui 动态tag的优化(在原有基础加上修改值,过滤重复项等)
ytyur6r的博客
12-17 2046
原生的elementui(2.13版本)动态编辑标签 只是动态的增加和删除,现在增加修改原有值和已经过滤重复和空格功能 下面的时原生的 链接https://element.eleme.cn/2.13/#/zh-CN/component/tag 我新加的的功能实现https://codepen.io/lisiwei1/pen/NWPbXvw 就是1.点击原有的标签进行修改,而且位置不会发...
elementui动态tag标签设置底色
weixin_45816407的博客
04-13 654
页面中展示的 <el-table-column label="是否在册" min-width="150px" align="center"> <template slot-scope="{row}"> <span> <el-tag :type="statusColor[row.isRegistered]">{{ row.isRegistered | dictLabel('sf') }}</
vue编辑列表标签_VUE+Element UI实现简单的表格行内编辑效果
weixin_35725559的博客
12-30 431
1 2 34 5 6 7 8 9 *{10 margin:0;11 padding:012 }13 body{14 font-family:Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;15 overflow:auto;16 ...
element UI 自定义标签
valsedefleurs的博客
04-27 380
标签页的label不能自定义,需要显示表单状态,但是做不到。
107.(前端)分类管理增加值实现——使用elementui中的动态编辑标签发送请求
m0_63953077的博客
10-31 661
使用elementui中的动态编辑标签发送请求
Vue el-tag实现标签动态编辑
weixin_43484014的博客
08-22 2604
Vue el-tag实现标签动态编辑
elementui动态表格怎么设置默认排序
06-02
要设置 ElementUI 动态表格的默认排序,可以使用 `default-sort` 属性。该属性需要传入一个对象,包含两个属性:`prop` 和 `order`,分别表示默认排序的列和顺序。例如: ```html , order: 'descending' }"> <!-- ...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • [Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around July 2021 12362
  • 前端常见的时间转换方法,获取当前时间方法 2536
  • vue中watch的使用详解 2260
  • 在element UI的下拉多选框里如何实现禁用默认值和不可删除默认值 1905
  • vscode里会发现vue文件输入html标签Tab建无法补全 1859

最新评论

  • 前端之深拷贝

    m0_60607895: 支持一下,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • JSON.parse() 和 JSON.stringify()的用法

    2301_82243491: 支持一下,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • vue项目报这个错是 Same `value` exist in the tree: 0008E3000E1A?

    帝尊菜鸟: 表情包给的数据就是有重复的,不过不是同级的,是父子间重复 { "n": "造林和更新", "c": [ { "n": "造林和更新" } ] }, 表情包

  • vue中watch的使用详解

    tlxjoker: vue自带的,你使用watch方法,自带2个参数

  • vue中watch的使用详解

    qq_47708027: newVal,oldVal 这两个值是怎么来的呀,代表什么意思呢表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 前端代码优化
  • 前端表单中的手机号的验证
  • 前端组件库之ant-design-vue
2024年12篇
2023年29篇
2022年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起名时在学Aiifox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

聚圣源属相配对表异界召唤之千古群雄刚出生的婴儿起名字大全莫姓男取名起名卢梭花牛在草地里什么仿写国家人口和计划生育委员会最想念的季节七雄争霸匈奴战力表潘氏起名女名字用爸妈的名字怎么 起名猪宝宝起名宜用的字以上以孙姓起的名字叶绍翁的诗小金理财情侣起人名根据生辰八字给起名打分qq空间闪动图片湘菜加盟字锦起名大全月花美人重生之深度诱入开综合商店起名字我和我的家乡百度云餐饮行业加盟南通电视台化妆品起名字大全集商标起名字打分男人眼泪抗日之铁血远征军淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化