解决思路:

  1、在父组件选择操作某行数据时,将父组件的行号暂存(index)。

  2、跳转子组件页面,选择某行数据,点击提交将该行数据传递个父组件

  3、父组件取到第一步暂存行号(index),将子组件传回的字段赋给父组件 List[index].key

父组件代码如下:

  1. <template>
  2. <div id="app">
  3. <el-table :data="List">
  4. <el-table-column align="center" prop="modelAlias" label="物料编号" ></el-table-column>
  5. <el-table-column align="center" prop="materialName" label="物料名称"></el-table-column>
  6. <el-table-column align="center" label="选择/清空产品">
  7. <template slot-scope="scope">
  8. <el-button size="mini" type="text" @click="selectTarget(scope.row,scope.$index)" v-if="!scope.row.targetProduct">请选择</el-button>
  9. <el-button size="mini" type="text" @click="clear(scope.row,scope.$index)" v-else>清空</el-button>
  10. </template>
  11. </el-table-column>
  12. <el-table-column align="center" prop="targetProduct" label="产品"></el-table-column>
  13. <el-table-column align="center" label="操作">
  14. <template slot-scope="scope">
  15. <el-button size="mini" type="text" @click="deleteRow(scope.row,scope.$index)">删除</el-button>
  16. </template>
  17. </el-table-column>
  18. </el-table>
  19. <select-product @func="select" ref="selectProduct"></select-product>
  20. </div>
  21. </template>
  22.  
  23. <script>
  24. import selectProduct from "./select-product";
  25. export default {
  26. components: {
  27. selectProduct //声明组件
  28. },
  29. data() {
  30. return {
  31. List:[
  32. {modelAlias: "N0001", materialName: '轴承',targetProduct: null },
  33. {modelAlias: "N0202", materialName: '物料2', targetProduct: null},
  34. {modelAlias: "N3333", materialName: '传送带', targetProduct: null}
  35. ],
  36. temp: null //暂存操作行号(index)
  37. };
  38. },
  39. methods:{
  40. selectTarget(row,index) {
  41. this.temp = index //将行号暂存给temp
  42. this.$refs.selectProduct.openDialog() //调用子组件方法打开子组件el-dialog对话框
  43. },
  44. select(res) {
  45. // 监听子组件事件, res--子组件传回参数
  46. let temp = this.temp
  47. this.List[temp].targetProduct = res.name
  48. },
  49. clear(row,index){
  50. //清空选择
  51. row.targetProduct = null
  52. },
  53. deleteRow(row,index){
  54. // 删除table中某行数据
  55. this.List.splice(index, 1)
  56. }
  57. }
  58. };
  59. </script>
  60.  
  61. <style scoped>
  62.  
  63. </style>

子组件代码如下:select-product.vue

  1. <template>
  2. <el-dialog title="选择目的产品" :visible.sync="open" width="1100px">
  3. <el-table :data="selectList">
  4. <el-table-column align="center" prop="number" label="目的产品编码" ></el-table-column>
  5. <el-table-column align="center" prop="name" label="产品名称"></el-table-column>
  6. <el-table-column label="操作" align="center">
  7. <template slot-scope="scope">
  8. <el-button size="mini" type="text" @click="submitSelect(scope.row)">确定</el-button>
  9. </template>
  10. </el-table-column>
  11. </el-table>
  12. </el-dialog>
  13. </template>
  14.  
  15. <script>
  16. export default{
  17. data(){
  18. return{
  19. selectList:[
  20. { number: 'ML001', name: '成品1' },
  21. { number: 'ML022', name: '成品222' },
  22. { number: 'ML033', name: '成品3333' },
  23. ],
  24. open: false
  25. }
  26. },
  27. methods:{
  28. openDialog() {
  29. this.open = true;
  30. },
  31. closeDialog() {
  32. this.open = false;
  33. },
  34. submitSelect(row){
  35. this.$emit('func',row);
  36. this.open = false;
  37. }
  38. }
  39. }
  40. </script>
  41.  
  42. <style>
  43. </style>

Element UI 父组件el-tabel选择某行跳转子组件,在子组件的el-table中选择数组,添加到父组件操作行中的更多相关文章

  1. FastAPI实践项目:SayHello(FastAPI + vue.js + axios + element ui)

    目录 简介 翻版 VS 本尊 后端服务 源码 接下来 简介 这次带来的是FastAPI + vue.js + axios + element ui (一个html文件里使用的) 实现的<Flas ...

  2. vue组件样式添加scoped属性之后,无法被父组件修改。或者无法在本组件修改element UI样式

    在vue开发中,需要使用scoped属性避免样式的全局干扰,但是这样在父组件中是无法被修改的,不仅如此如果项目中用了UI框架比如element Ui,这个时候在本组件也无法修改样式,因为权重问题.但是 ...

  3. vue+element ui中select组件选择失效问题原因与解决方法

    codejing 2020-07-10 09:13:31  652  收藏 分类专栏: Web Vue Element UI 版权 .当表单form赋完值后,如果后续又对form中某一属性值进行操作如 ...

  4. vue+element ui 的表格列使用组件

    前言:工作中用到 vue+element ui 的前端框架,有这个场景:很多表格的列有许多一样的,所以考虑将列封装为组件.转载请注明出处:https://www.cnblogs.com/yuxiaol ...

  5. vue+element ui 的时间控件选择 年月日时分

    前言:工作中用到 vue+element ui 的前端框架,需要选择年月日时分,但element ui官网demo有没有,所以记录一下.转载请注明出处:https://www.cnblogs.com/ ...

  6. vue+element UI + axios封装文件上传及进度条组件

    1.前言 之前在做项目的时候,需要实现一个文件上传组件并且需要有文件上传进度条,现将之前的实现过程简单记录一下,希望可以帮助到有需要的人. 项目用的是Vue框架,UI库使用的是element UI,前 ...

  7. [转]vue Element UI走马灯组件重写

    https://blog.csdn.net/u013750989/article/details/82885482 1.element ui走马灯组件 -- carousel分析一波源代码:carou ...

  8. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

  9. element ui组件的开始时间-结束时间验证

    <el-date-picker v-model="seach.before" type="date" placeholder="开始时间&quo ...

  10. vue问题三:element ui的upload组件上传图片成功和移除事件

    element ui的upload组件上传图片成功和移除事件: 登录后获取到后台传的token存到中: sessionStorage.setItem("token",data.ob ...

随机推荐

  1. SMW0 对应 MIME TYPE 无法包进请求上传

    SAP Notes - SAP for Me 2228060 - SMW0 Key entry for table MIMETYPES may only be generic Resolution S ...

  2. jdbc封装工具类(无连接池)

    package com.huang; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar ...

  3. 学习高速PCB设计,这些走线方式你要知道! 高速射频百花潭 2022-01-21 08:53

    1.电源布局布线相关 数字电路很多时候需要的电流是不连续的,所以对一些高速器件就会产生浪涌电流. 如果电源走线很长,则由于浪涌电流的存在进而会导致高频噪声,而此高频噪声会引入到其他信号中去. 而在高速 ...

  4. CAD中如何将图形对象转换为三维实体?

    有些小伙伴在CAD绘制完图纸后,想要将图纸中的某些图形对象转换成三维实体,但却不知道该如何操作,其实很简单,本节CAD绘图教程就和小编一起来了解一下浩辰CAD软件中将符合条件的对象转换为三维实体的相关 ...

  5. vue super flow 多种形状

    1 <template> 2 <v-container class="workflow-container" grid-list-xl fluid> 3 & ...

  6. springboot集成es7(基于high level client)

    环境: ES: 7.12.0 1.springboot工程引入es相关jar <dependency> <groupId>org.elasticsearch</group ...

  7. npm run serve 报错问题 (npm ERR! code ELIFECYCLE)

    运行 npm cache clean --force删除 node_modules删除 package-lock.json运行 npm install最后 npm run serve

  8. Linux - 查看、修改、更新系统时间(自动同步网络时间)

    系统:Centos7 1.查看系统时间 执行 date 命令可以查看当前系统的时间: 执行 hwclock 命令可以查看当前系统的时间 2.手动修改系统时间 (1)执行如下命令可以设置一个新的系统时间 ...

  9. cheerio中文文档

    这篇参考手册是对cheerio 官方文档的中文翻译 cheerio是jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对DOM进行操作的地方 简介   让你在服务器端和htm ...

  10. C#实现Bitmap旋转

    原文链接 Rotate180FlipNone 指定不进行翻转的 180 度旋转.Rotate180FlipX 指定后接水平翻转的 180 度旋转.Rotate180FlipXY 指定后接水平翻转和垂直 ...