Vue实现点击按钮或者图标可编辑输入框

news2024/11/20 9:43:21

博主介绍

📢点击下列内容可跳转对应的界面,查看更多精彩内容!

🍎主页:水香木鱼
🍍专栏:后台管理系统


文章目录

简介:这是一篇有关【Vue - 实现点击按钮(笔图标)可编辑 el-input 输入框(点击文字内容后变成 <input> 输入框同时能修改和取消)】的文章,博主用最精简的语言去表达给前端读者们。

edit组件源码
页面使用

在这里插入图片描述

1、edit组件源码

<!--edit组件-->
<template>
  <div>
    <div v-if="isEdit" class="editBox">
      <!-- 改修改框样式去下面style里 -->
      <input v-model="newVal" class="ipt" />
      <div @click="handleSave">
        <!-- 自定义提交按钮 -->
        <slot name="save"></slot>
      </div>
      <div @click="handleCancel">
        <!-- 自定义取消按钮 -->
        <slot name="cancel"></slot>
      </div>
    </div>

    <div v-else @click="handleEdit" class="editBox">
      <!-- 自定义文字样式 -->
      <div>
        {{ newVal }}
      </div>
      <slot name="button"></slot>
      <!-- 自定义编辑按钮 -->
    </div>
  </div>
</template>

<script>
export default {
  props: {
    val: {
      //文字显示
      type: String,
      default: "",
    },
  },
  data() {
    return {
      nameEditText: "nameEditText",
      newVal: this.val,
      backUp: null,
      isEdit: false,
    };
  },
  methods: {
    // 取消编辑状态
    handleCancel() {
      this.newVal = this.backUp;
      this.isEdit = false;
    },
    // 点击编辑
    handleEdit() {
      //先让其他的 编辑框为 flase
      this.$parent.$children
        .filter((item) => item.nameEditText == "nameEditText")
        .forEach((items) => {
          items.isEdit = false;
        });
      this.isEdit = true;
      this.backUp = this.newVal;
    },
    // 保存编辑($emit传递给父组件)
    // 同时清空状态
    handleSave() {
      this.isEdit = false;
      // 传递给父组件
      this.$emit("result", this.newVal);
    },
  },
};
</script>

<style scoped>
.editBox {
  display: flex;
  align-items: center;
}
.ipt {
  width: 300px;
}
</style>

2、页面使用

<template>
  <div class="box">
    <h1>本地数据:</h1>
    <el-alert :title="text" type="info"> </el-alert>
    <Edit :val="text" @result="getText">
      <a slot="button" style="margin-left: 30px" class="compile">
        <i class="el-icon-edit"></i>点击编辑
      </a>
      <a slot="save" class="save">提交</a>
      <a slot="cancel" class="cancel">取消</a>
    </Edit>
  </div>
</template>

<script>
// 注意路径
import Edit from "@/components/edit.vue";
export default {
  components: { Edit },
  data() {
    return {
      text: "水香木鱼",
    };
  },

  methods: {
    /**
     * 获取编辑后的文字(点击组件"保存"按钮后触发)
     * @description 这块就直接请求接口修改即可,相关操作都在这
     * @param {String} e - 最终文字
     * @return void
     */
    getText(e) {
      // console.log(e)
      this.text = e;

      // 其他操作 ↓
      console.log("请求接口修改数据!!");
      // ...
    },
  },
};
</script>
<style lang="less" scoped>
//提交
.save {
  color: #fff;
  background: #fc5531;
  display: inline-block;
  width: 72px;
  height: 28px;
  line-height: 28px;
  text-align: center;
  border-radius: 15px;
  font-size: 14px;
}

//取消
.cancel {
  color: #fc5531;
  border: 1px solid #fc5531;
  display: inline-block;
  width: 72px;
  height: 28px;
  line-height: 28px;
  text-align: center;
  border-radius: 15px;
  font-size: 14px;
}
//编辑
.compile {
  color: #fc5531;
  border: 1px solid #fc5531;
  display: inline-block;
  width: 92px;
  height: 28px;
  line-height: 28px;
  text-align: center;
  border-radius: 15px;
  font-size: 14px;
}
</style>

相关推荐

⭐vue-生成二维码【生成、点击输入框内叉号移除生成的二维码、输入框聚焦】
⭐前端实现放大镜效果【原生js实现、vue实现】
⭐vue非常实用的几行代码【日期处理、字符串处理、数组处理、颜色操作】
⭐vue实现随机验证码(数字类型、字母类型)业务【适用于登录页、网页安全码】
⭐vue实现换一批业务【WoodenFish完整版】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS五子棋大战

本项目里面只是浅述了一下基本实现步骤&#xff0c;很多细节的地方都在注释中标注了&#xff0c;如需完整代码请去博主码云哦。zqy (zhang-qinyang1) - Gitee.com 目录 一、用到的关键技术点 二、主要模块 1.使用mybatis操作连接数据库 1.1修改spring配置文件 1.2创建实体…

json.converter

爬虫组件分析目录概述需求&#xff1a;设计思路实现思路分析1.ActivityProcessor2.AssociationJsonConverter3.BaseBpmnJsonConverter4.BoundaryEventJsonConverter5.BpmnJsonConverter拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , …

【出人意料】一种基于Vue2监听器(watch)和定时器(setInterval)的轨迹播放方法实现方案

1、需求 数据库中有设备的经纬度记录&#xff0c;前端需要实现从数据库中取到数据后在地图上显示轨迹&#xff0c;显示轨迹的方式就是一个一个点地有序显示。点与点之间用线段连接&#xff0c;最终构成一条轨迹线。 2、场景过程 前端定义一个播放暂停按钮&#xff1b;点击播…

【Flutter】【package】auto_size_text 文字自动适配大小

文章目录前言一、auto_size_text 是什么&#xff1f;二、使用1.简单的使用2.参数说明3.group4.rich text总结前言 auto_size_text &#xff1a;https://pub.flutter-io.cn/packages/auto_size_text 一、auto_size_text 是什么&#xff1f; 第三方的插件&#xff0c;能够自动适…

DDD的落地,需要基础设施的大力支持

1. 概览 对于复杂业务&#xff0c;DDD 绝对是一把神器&#xff0c;由于它过于复杂&#xff0c;很多人望而却步。因为太过严谨&#xff0c;形成了很多设计模式、规范化流程&#xff0c;这些爆炸的信息已经成为 DDD 落地的重大阻力。 但&#xff0c;如果我们将这些规范化的流程…

1.4_28 Axure RP 9 for mac 高保真原型图 - 案例27【中继器 - 后台管理系统5】功能-弹窗修改数据

相关链接 目录Axure中文学习网AxureShopAxureShop-QA 案例目标1. 了解使用中继器&#xff0c;弹窗修改数据的实现方式 一、成品效果 Axure Cloud 案例27【中继器 - 后台管理系统5】功能-弹窗修改数据 版本更新一、修改功能   1.1 点击修改按钮&#xff0c;标记该条数据&am…

国产软件Bigemap与国产在线地图源<星图地球数据云>推动国内新GIS应用

自星图地球数据云(GEOVIS Earth Datacloud)图源成为国产基础软件Bigemap的在线地图数据服务平台之一以来&#xff0c;其日均地图瓦片请求调用量目前已经超过2亿。 “星图地球数据云"是中科星图(股票代码[688568])旗下子公司——星图地球倾力打造的在线时空数据云服务平台…

基于约束的装配设计【CadQuery】

本教程介绍在CadQuery中如何使用装配约束功能来构建逼真的模型&#xff0c;我们将组装一个由 20x20 V 型槽型材制成的门组件。 1、定义参数 我们希望从定义模型参数开始&#xff0c;以便以后可以轻松更改尺寸&#xff1a; import cadquery as cq# Parameters H 400 W 200…

2.8 高收藏率小红书笔记怎么写?试一试这7类方法吧【玩赚小红书】

1、教程攻略类 ​ ​ ​ 打开任何一类的美妆产品&#xff0c;最常见的就是各类妆容教程和变美攻略。就拿教程最多的眼妆来说吧&#xff0c;很多女孩子都觉得眼妆很难画好。 如果是碰到网上流行的网红眼影&#xff0c;比如什么猫眼妆、截断式眼影、桃花眼影等等。 【 高收藏秘…

社区团购小程序制作有什么优势_ 社区团购小程序的作用

打造属于自身的独立小程序拥有更高的自主性&#xff0c;特别是基于得店小程序的创新产品力&#xff0c;从设计上彰显品牌理念&#xff0c;到功能上进行扩展拓宽营销方式&#xff0c;都完全自我掌控&#xff0c; ● 更重要的是&#xff0c;相比于平台上各种复杂的机制&#xff0…

点击化学接头BCN-endo-PEG15-NH2,endo-BCN-十五聚乙二醇-胺

&#xff08;本品应密封避光&#xff0c;储存于阴凉&#xff0c;干燥&#xff0c;通风处&#xff0c;取用一定要干燥&#xff0c;避免频繁的溶解和冻干&#xff09; 【产品理化指标】&#xff1a; CAS&#xff1a;N/A 化学式&#xff1a;C43H80N2O17&#xff0c;分子量&#xf…

Vue3+TS+Vite 搭建组件库记录

使用pnpm 安装 npm install pnpm -g初始化package.json pnpm init新建配置文件 .npmrc shamefully-hoist true这里简单说下为什么要配置shamefully-hoist。 如果某些工具仅在根目录的node_modules时才有效&#xff0c;可以将其设置为true来提升那些不在根目录的node_modu…

防火墙安全策略

目录 一、包过滤技术 包过滤 安全策略 安全策略的原理 安全策略分类 二、防火墙的转发原理&#xff08;重点&#xff09; 首包流程 会话表 状态检测机制 会话在转发流程中的位置 多通道协议技术 ASPF 端口识别对多通道协议的支持 分片缓存 三、防火墙的安全策略配…

万应案例精选|跨壁垒、辅决策,万应低代码助力国网电力内部培训数字化架构升级

万应案例精选&#xff5c;跨壁垒、辅决策&#xff0c;万应低代码助力国网电力内部培训数字化架构升级一、项目背景 国网某省电力有限公司&#xff08;下称“国网电力”&#xff09;&#xff0c;是国家电网有限公司的全资子公司&#xff0c;现设20个职能部门&#xff0c;下设16…

智慧法院解决方案-最新全套文件

智慧法院解决方案-最新全套文件一、建设背景二、架构思路三、建设方案四、获取 - 智慧法院全套最新解决方案合集一、建设背景 智慧法院是指充分运用互联网、云计算、大数据、人工智能等技术&#xff0c;促进审判体系与审判能力现代化&#xff0c;实现人民法院 高度智能化的运行…

Java基础—普通阻塞队列

普通阻塞队列 除了刚介绍的两个队列&#xff0c;其他队列都是阻塞队列&#xff0c;都实现了接口BlockingQueue&#xff0c;在入队/出队时可能等待&#xff0c;主要方法有&#xff1a; 入队&#xff0c;如果队列满&#xff0c;等待直到队列有空间 void put(E e) throws Inter…

计算机毕业设计Python+Django的银行取号排队系统

项目介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时…

MySQL之短时间提高性能的措施

文章目录前言短连接风暴慢查询QPS&#xff08;每秒查询数&#xff09;突增总结前言 我们在使用数据库的时候&#xff0c;总会有那么一段时间&#xff0c;数据库的压力会特别大。比如&#xff0c;用户的使用的高峰期&#xff0c;或者活动上线的时候等等。那么为了应对突然暴增的…

Child Tuning: 反向传播版的Dropout

这篇文章主要是对EMNLP2021上的论文Raise a Child in Large Language Model: Towards Effective and Generalizable Fine-tuning进行讲解。论文标题有些抽象&#xff0c;但是用作者的话来说&#xff0c;这篇论文的思想可以归结为两个词&#xff1a;Child Tuning 虽然这篇文章主…

0-1背包问题

在将什么是0-1背包问题前&#xff0c;先来看下面一道例题&#xff1a; 题意概要&#xff1a;有 n 个物品和一个容量为 W 的背包&#xff0c;每个物品有重量w i和价值v i两种属性&#xff0c;要求 选若干物品放入背包使背包中物品的总价值最大且背包中物品的总重量不超过背包的容…