1.我的设计思路是当点击expand箭头后显示出来内容,然后双击(单击也可以,根据自己想法来)某个区域,然后弹窗进行数据修改,然后双向绑定进行数据渲染,点击保存按钮后数据传输到后台进行数据修改

2.看下效果图

3.然后双击其中的字段进行弹窗,然后进行值的修改

点击确定后,将数据渲染到页面上,然后点击保存按钮进行后端交互

4.下面是具体的代码,首先给expand里的参数添加点击事件

<el-table-column type="expand"><template slot-scope="props"><el-formlabel-position="left"inlineclass="demo-table-expand"style="background-color:pink"><el-form-item label="项目名称:"><span@dblclick="updateInfo('项目名称','name',props.$index,props.row.name,'plainInput')">{{ props.row.name }}</span></el-form-item><el-form-item label="项目版本:"><span@dblclick="updateInfo('项目版本','version',props.$index,props.row.version,'plainInput')">{{ props.row.version }}</span></el-form-item><el-form-item label="运行状态:"><span@dblclick="updateInfo('运行状态','runStatus',props.$index,props.row.runStatus,'select')">{{ props.row.runStatus }}</span></el-form-item><el-form-item label="开发状态:"><span@dblclick="updateInfo('开发状态','devStatus',props.$index,props.row.devStatus,'select')">{{ props.row.devStatus }}</span></el-form-item><el-form-item label="需 求 方 :"><span@dblclick="updateInfo('需 求 方','demand',props.$index,props.row.demand,'plainInput')">{{ props.row.demand }}</span></el-form-item><el-form-item label="项目类型:"><span@dblclick="updateInfo('项目类型','type',props.$index,props.row.type,'select')">{{ props.row.type }}</span></el-form-item><el-form-item label="推 送 人 :"><span@dblclick="updateInfo('推 送 人','pusher',props.$index,props.row.pusher,'select')">{{ props.row.pusher }}</span></el-form-item><el-form-item label="负 责 人 :"><span@dblclick="updateInfo('负 责 人','principal',props.$index,props.row.principal,'plainInput')">{{ props.row.principal }}</span></el-form-item><el-form-item label="计划开始时间:"><span@dblclick="updateInfo('计划开始时间','planStartTime',props.$index,props.row.planStartTime,'timePicker')">{{ props.row.planStartTime }}</span></el-form-item><el-form-item label="计划结束时间:"><span@dblclick="updateInfo('计划结束时间','planEndTime',props.$index,props.row.planEndTime,'timePicker ')">{{ props.row.planEndTime }}</span></el-form-item><el-form-item label="创建时间:"><span>{{ props.row.createTime }}</span></el-form-item><el-form-item label="最后修改时间:"><span>{{ props.row.updateTime }}</span></el-form-item><el-form-item label="项目描述:"><span@dblclick="updateInfo('项目描述','description',props.$index,props.row.description,'textArea')">{{ props.row.description }}</span></el-form-item><el-form-item label=""><el-button type="primary" @click="savePane(props)" size="mini">保存</el-button></el-form-item></el-form></template></el-table-column>

5.下面是对应的参数初始化,和点击事件方法

  data() {return {...updateDialog: false,updateDialogFieldCn: "", // 要修改的属性名-中文updateDialogFieldEn: "", // 要修改的属性名-英文updateDialogDefaultValue: "", // 修改弹窗中默认的值updateDialogFieldType: "", // 弹窗中组件的类型updateDialogRowIndex: 0 // 修改的值所在的行索引};},

6.弹窗的部分代码,主要通过updateDialogFieldType进行区分

 <!-- 双击属性事件的弹窗 --><el-dialog:title="'修改' + updateDialogFieldCn":visible.sync="updateDialog"><el-form v-if="updateDialogFieldType=== 'plainInput'"><el-form-item :label="updateDialogFieldCn" label-width="120px"><el-input v-model="updateDialogDefaultValue"></el-input></el-form-item>.... 后面为updateDialogFieldType='select',updateDialogFieldType='timePicker'等其他的布局</el-form><div slot="footer" class="dialog-footer"><el-button @click="updateDialog = false">取 消</el-button><el-button type="primary" @click="saveUpdateDialog">确 定</el-button></div></el-dialog>

7.双击expand中属性值触发的事件

    // 定义pane中部件的点击事件updateInfo(cn, en, index, originValue, type) {// cn:要修改的属性值中文名,作为弹窗表单中组件的label和弹窗的title// en:要修改的属性值英文名,用在点击保存后给对象的某个属性设值的时候用// index:为修改的值所在tabData的行索引,用来进行值修改// originValue为该字段对应的原始默认值,用来进行渲染// type为弹窗中的组件类型,plainInput,select,timePicker,textArea等,根据需求名字自己定this.updateDialog = true;this.updateDialogFieldCn = cn;this.updateDialogFieldEn = en;this.updateDialogRowIndex = index;this.updateDialogDefaultValue = originValue;this.updateDialogFieldType = type;},

8.然后是弹窗确定按钮的点击事件

  // 修改弹窗的确定按钮的点击事件saveUpdateDialog() {this.updateDialog = false;let obj = this.tableData[this.updateDialogRowIndex]; // 获取tableData中该行的对象obj[this.updateDialogFieldEn] = this.updateDialogDefaultValue; // 修改该对象中指定属性的值// 属性值还原初始化(this.updateDialogFieldCn = ""), // 要修改的属性名-中文(this.updateDialogFieldEn = ""), // 要修改的属性名-英文(this.updateDialogFieldType = ""), // 弹窗中组件的类型(this.updateDialogFieldType = 1), // 弹窗中组件的类型(this.updateDialogRowIndex = 0); // 修改的值所在的索引},

elementui table expand 修改数据相关推荐

  1. 2、ALTER TABLE:修改数据表

    修改数据表的前提是数据库中已经存在该表.修改表指的是修改数据库中已经存在的数据表的结构.修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上. 不了解如 ...

  2. elementUi——table组件修改表头和表身行样式——style的使用

    今天在做后台管理系统时,遇到一个需求,就是根据表格中每行数据的状态,来渲染背景颜色. 如下图所示:满足一定条件时,背景颜色要改为绿色. row-style的使用 1.在el-table上添加row-s ...

  3. php 相同数据合并单元格,elementUI table合并相同数据的单元格

    直接扔代码~ import moment from "moment"; export default { methods: { objectSpanMethod({ row, co ...

  4. elementui的table展开行显示另一关联子table表的数据

    需求:主表table可实现展开行显示关联子table的列表数据​ <div class="table-box"><el-tableref="enquir ...

  5. MySQL修改数据表(ALTER TABLE语句)

    为实现数据库中表规范化设计的目的,有时候需要对之前已经创建的表进行结构修改或者调整. 在 MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列.创建或取消索引.更改 ...

  6. 修改数据库主键为自增长时报错“[Err] 1062 - ALTER TABLE causes auto_increment resequencing, resulting in duplicate ”

    修改数据库主键为自增长时报错: [Err] 1062 - ALTER TABLE causes auto_increment resequencing, resulting in duplicate ...

  7. elementui 双击el-table表格展示输入框修改数据

    参考:element ui 双击表格展示输入框 修改数据_7ing酒的博客-CSDN博客_双击输入框展示: 功能:就是一个简单的table表格 通过双击某一项 进行修改.(其实就是双击之后变成一个in ...

  8. ag-grid 中外部编辑数据同步修改table单元格数据,数据实时更新

    ag-grid 中外部编辑数据同步修改table单元格数据 这里只探讨本人已经使用的一个方法 getTags(params).then(res => {console.log(res, '=== ...

  9. html里ajax使用、webpy服务在img显示图片、ajax修改table里的数据、$.post()、window,onload、$(button).click、mjpg_streamer

    1.ajax的使用,下面是基于webpy完成的例子: 后台相应代码: class AjaxFriendReq:def POST(self):try:i = web.input()#要使用这个get来获 ...

最新文章

  1. AI 复活「她」! GPT-3 帮美国小哥复刻逝去未婚妻,但又夺走她……
  2. ActiveMQ常见问题
  3. $.ajax()方法详解(网上引用)
  4. php左右菜单,JQuery实现左右滚动菜单特效_jquery
  5. [转]Java游戏引擎
  6. 小米手机卡顿如何解决
  7. WinStore控件之Button、HyperlinkButton、RadioButton、CheckBox、progressBar、ScrollViewer、Slider...
  8. ListCtrl使用
  9. Ubunto 16.04设置静态ip地址
  10. Linux下面无线网络配置
  11. mysql8安装错误,Windows安装MySQL8.0.16 的步骤及出现错误问题解决方法
  12. Java实现比较APP版本号大小
  13. android gps 经纬度转换,Android GPS 取经纬度
  14. 语音识别——kaldi - Online Audio Server(服务器客户端建立方法-旧版在线解码)
  15. 1024程序员节,以梦为马,不负韶华,我们来聊聊IT的发展以及个人感受吧!
  16. linux编译ice,linux环境下编译安装ICE
  17. Eclipse在线安装主题(color theme)以及安装color theme第三方主题(图文)
  18. Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验
  19. 李艳鹏:技术人如何修炼内功
  20. C#实现删除自身程序

热门文章

  1. CRM关系管理系统笔记
  2. (开源)STC89c51结合ESP8266制作物联网环境监测系统+APP inventor制作手机App实时显示
  3. python获取当前时间戳Long类型
  4. bmp转mif c语言,【原创】bmp转mif、coe或hex软件发布及使用介绍
  5. 【前端教程】给网站添加暗黑模式指南
  6. Springboot 报错 Error resolving template [index]
  7. shell中单引号、双引号与反引号的区别(学习笔记,摘抄版)
  8. 论文阅读 | Enhanced Quadratic Video Interpolation
  9. Excel技巧—瞬间吸引眼球的WIFI图表
  10. android wifi热点广播,在Android wifi热点获取wifi广播地址