解决思路:

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

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

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

父组件代码如下:

<template>
<div id="app">
<el-table :data="List">
<el-table-column align="center" prop="modelAlias" label="物料编号" ></el-table-column>
<el-table-column align="center" prop="materialName" label="物料名称"></el-table-column>
<el-table-column align="center" label="选择/清空产品">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="selectTarget(scope.row,scope.$index)" v-if="!scope.row.targetProduct">请选择</el-button>
<el-button size="mini" type="text" @click="clear(scope.row,scope.$index)" v-else>清空</el-button>
</template>
</el-table-column>
<el-table-column align="center" prop="targetProduct" label="产品"></el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="deleteRow(scope.row,scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
<select-product @func="select" ref="selectProduct"></select-product>
</div>
</template> <script>
import selectProduct from "./select-product";
export default {
components: {
selectProduct //声明组件
},
data() {
return {
List:[
{modelAlias: "N0001", materialName: '轴承',targetProduct: null },
{modelAlias: "N0202", materialName: '物料2', targetProduct: null},
{modelAlias: "N3333", materialName: '传送带', targetProduct: null}
],
temp: null //暂存操作行号(index)
};
},
methods:{
selectTarget(row,index) {
this.temp = index //将行号暂存给temp
this.$refs.selectProduct.openDialog() //调用子组件方法打开子组件el-dialog对话框
},
select(res) {
// 监听子组件事件, res--子组件传回参数
let temp = this.temp
this.List[temp].targetProduct = res.name
},
clear(row,index){
//清空选择
row.targetProduct = null
},
deleteRow(row,index){
// 删除table中某行数据
this.List.splice(index, 1)
}
}
};
</script> <style scoped> </style>

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

<template>
<el-dialog title="选择目的产品" :visible.sync="open" width="1100px">
<el-table :data="selectList">
<el-table-column align="center" prop="number" label="目的产品编码" ></el-table-column>
<el-table-column align="center" prop="name" label="产品名称"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="submitSelect(scope.row)">确定</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template> <script>
export default{
data(){
return{
selectList:[
{ number: 'ML001', name: '成品1' },
{ number: 'ML022', name: '成品222' },
{ number: 'ML033', name: '成品3333' },
],
open: false
}
},
methods:{
openDialog() {
this.open = true;
},
closeDialog() {
this.open = false;
},
submitSelect(row){
this.$emit('func',row);
this.open = false;
}
}
}
</script> <style>
</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. Install Chia Blockchain on Ubuntu

    Install Chia Blockchain on Ubuntu Posted on May 4, 2021 Chia is a new kinda of Crypto Currency that ...

  2. 【git】2.1 获取git仓库

    资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%B ...

  3. APP与Web测试区别

    相同点: WEB 测试和 App 测试从流程上来说,没有区别.都需要经历测试计划方 案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说, WEB 测试和 APP 测试其测试类型也基本相 ...

  4. adb命令之monkey使用

    一.Monkey介绍Monkey是Android中的一个命令行工具,可在模拟器或实际设备中运行.通过向系统发送伪随机的用户事件流(例如按键.触摸屏.手势操作等),来实现对开发中的应用程序进行压力测试, ...

  5. 初始化centos环境脚本

    #! /bin/bashecho "java环境初始化开始"#功能描述: Centos8.5系统自动初始化脚本#自动配置:IP地址\Yum源\docer\docker-compos ...

  6. css 特殊性 权重排列

    首先类似于二进制的理解. 0010大于0001. id = 0,1,0,0; class, [属性值],:伪类 = 0,0,1,0: <元素>,伪元素 = 0,0,0,1: 伪元素:  : ...

  7. 如何从相机拍照建立的Fileprovider中获取绝对路径

    我们通过高版本获取的fileprovider,然后拍了个照片,如下 imageUri = FileProvider.getUriForFile 但是我们发现当我们 File file = new Fi ...

  8. SecureCRT保存日志

    1.打开Options->Session Options...,选择LogFile 2.Log file name格式 %H_%S_%Y%M%D-%h%m%s.log 参数说明: %H---主机 ...

  9. php8.0.0新功能:命名参数

    php8.0.0开始引入了命名参数作为现有位置参数的扩展.命名参数允许根据参数名而不是参数位置向函数传参.示例代码: 1 function userInfo($username, $tel, $add ...

  10. vim 转换大小写

    只转化某个单词 guw .gue gUw.gUe 这样,光标后面的单词便会进行大小写转换 想转换5个单词的命令如下: gu5w.gu5e gU5w.gU5e 转换几行的大小写 4.转换几行的大小写 将 ...