Vue2.x通用编辑组件的封装及应用详解


Posted in Javascript onMay 28, 2019

本文实例为大家分享了Vue2.x通用编辑组件的封装及应用,供大家参考,具体内容如下

效果

 Vue2.x通用编辑组件的封装及应用详解

组件源码

<template>
 <div class="edit-input">
 <div class="editBox">
  <div>
  <span class="list">{{ name }}:</span>
  <span class="listValue" v-if="!editStatus">{{value}}</span>
  </div>
  <span class="editLogo iconfont icon-Edit" @click="editStatus = !editStatus" v-if="!editStatus"></span>
  <div class="edit" v-if="editStatus">
  <el-input v-model="newValue" :placeholder="placeholderDes"></el-input>
  <span class="confirmEdit" @click="changeValue">√</span>
  <span class="cancel" @click="editStatus = !editStatus">×</span>
  </div>
 </div>
 </div>
</template>

<script>
import '@/common/font/iconfont.css'
export default {
 props: {
 name: {
  type: String,
  require: true
 },
 value: {
  type: String,
  require: true
 },
 placeholderDes: {
  type: String,
  default: ''
 }
 },
 data () {
 return {
  newValue: '',
  editStatus: false
 }
 },
 methods: {
 changeValue () {
  this.$emit('valueChange', this.newValue)
  this.editStatus = false
 }
 }
}
</script>

<style lang="less" scoped>
.edit-input {
 .editBox {
 display: flex;
 margin-top: 10px;
 text-align: center;
 .list {
  color: #909399;
  font-size: 14px;
  line-height: 40px;
  display: inline-block;
  }
  .listValue {
  color: #303133;
  font-size: 14px;
  line-height: 26px;
  }
 .editLogo {
  color: #2695E4;
  padding-top: 12px;
  padding-left: 10px;
 }
 .edit{
  height: 50px;
  width: 260px;
  .confirmEdit {
  margin-left: 4px;
  width: 20px;
  height: 36px;
  display: inline-block;
  color: #67c23a;
  font-size: 20px;
  cursor: pointer;
  }
  .cancel {
  color: #929398;
  font-size: 20px;
  margin-left: 6px;
  cursor: pointer;
  width: 20px;
  height: 36px;
  display: inline-block;
  font-size: 26px;
  &:hover {
   color: #fa5555;
  }
  }
  .el-input {
  width: 200px;
  }
 }
 }
}
</style>

父组件中引用

<template>
 <div class="test">
 <v-edit-input placeholderDes="请输入新名称" name="测试名称" value="哈哈哈哈" @valueChange="changeValue"></v-edit-input>
 </div>
</template>

<script>
import VEditInput from '@/components/Common/EditInput'
export default {
 components: {
 VEditInput
 },
 methods: {
 changeValue (newVal) {
  // newVal即为修改后的新值,接下来用来与后端交互即可。
 }
 }
}
</script>

注:组件源码中import '@/common/font/iconfont.css'目的是为了引入编辑图标,图标使用于iconfont官网使用svg制作,实际应用时请删除此行代码,改为你自己的图标,即给.editLogo加个背景图即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
Nov 30 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
Function.prototype.bind用法示例
Sep 16 Javascript
javascript向后台传送相同属性的参数即数组参数
Feb 17 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
Apr 10 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 Javascript
js面向对象的写法
Feb 19 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
js中this的指向问题归纳总结
Nov 28 Javascript
layui动态绑定事件的方法
Sep 20 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 #jQuery
小程序多图列表实现性能优化的方法步骤
May 28 #Javascript
实例详解带参数的 npm script
May 28 #Javascript
jquery实现Ajax请求的几种常见方式总结
May 28 #jQuery
Vue2.x通用条件搜索组件的封装及应用详解
May 28 #Javascript
jquery操作select常见方法大全【7种情况】
May 28 #jQuery
vue实现条件叠加搜索的解决方法
May 28 #Javascript
You might like
提升PHP速度全攻略
2006/10/09 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
Python与R语言的简要对比
2017/11/14 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
Python实现代码统计工具
2019/09/19 Python
python处理RSTP视频流过程解析
2020/01/11 Python
python mock测试的示例
2020/10/19 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
摄影实习自我鉴定
2013/09/20 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
学校门卫工作职责
2013/12/07 职场文书
文明餐桌活动方案
2014/02/11 职场文书
党员批评与自我批评
2014/02/12 职场文书
公路绿化方案
2014/05/12 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
Win10 Anaconda安装python-pcl
2022/04/29 Servers