elementUI 在Table中使用Popover弹出删除确认框

19 篇文章 0 订阅
6 篇文章 0 订阅

Popover组件在table中使用,跟官网的会有些差别,用官方的会出现点击删除 不弹出问题.搜了好久,找到这两种解决方案
pClose()方法关闭Popover
方法1:

              <el-popover
                placement="top"
                title="确定删除?"
                width="200"
                :ref="'popover-' + scope.row.id"
                trigger="click"
              >
	                <div style="text-align: right; margin: 0">
	                  <el-button type="primary" size="mini" @click="deleteDeviceRow(scope.row)">确定</el-button>
	                  <el-button size="mini" @click="pCancel(scope.row.id)">取消</el-button>
	                </div>
	                <el-button slot="reference" type="text">删除</el-button>
              </el-popover>

方法1 截图如下:
在这里插入图片描述

methods: {
  deleteDeviceRow(row) {
    new Promise().then(_ => {
        /***submit处理后***/
        this.pClose(row.id)
    })
  },
  pCancel(id) {
    this.pClose(id)
  },
  pClose(id) {
    this.$refs[`popover-` + id].doClose()
  }
}

方法1 咋一看没啥问题, 实际测试会出现pClose() undefined 报错.
table-tree会出问题(删除三层数据,再删除二层数据)会出现pClose() undefined 报错.
单条table 应该 没有问题.
方法2:

<el-table>  
<el-table-column
        align="center"
        label="操作"
        width="100">
        <template slot-scope="scope">
            <el-button type="primary" size="mini" icon="el-icon-edit" @click="changeIcon(scope.row.id)" circle></el-button>
          <el-popover
            ref="popoverDel"
            placement="top-end"
            width="160"
            trigger="click">
            <div >
              <div class="delTip"><i class="el-icon-warning" style="color:#E6A23C"></i>提示</div>
              <p>此操作将永久删除该文件, 是否继续?</p>
              <div style="text-align: center">
                <el-button type="primary" size="mini" @click="delIcon(scope.row.id)">确定</el-button>
              </div>
            </div>
          </el-popover>
            <el-button style="margin-left: 10px" v-popover:popoverDel type="danger" size="mini" icon="el-icon-delete" circle></el-button>
        </template>
      </el-table-column>
  </el-table>  

方法2效果如下
在这里插入图片描述
方法二:这里加一个取消按钮,无法让Popover取消.暂未找到解决方案

方法三!!!:完美解决
elementUI 在Table中使用Popover弹出删除确认框问题

tableData: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄',
          visible: false
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄',
          visible: false
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄',
          visible: false
		}]

给数据都加上 visible:false;

<el-popover
          placement="top"
          title="确认删除吗?"
          width="200"
          trigger="click"
          v-model="scope.row.visible">
          <div style="text-align: right; margin: 0">
              <el-button size="mini" type="text" @click="scope.row.visible = false;">取消</el-button>
              <el-button type="primary" size="mini" @click="scope.row.visible = false;">确定</el-button>
          </div>
          <el-button type="primary" slot="reference">删除</el-button>
        </el-popover>

给操作按钮添加 slot= "reference"属性控制popover的现实,且将v-model中的值设为tableData中的visible值。点击取消或确定也要讲对应数据中的visible设为false并处理相关逻辑。若数据为后台返回。可在使用数据时遍历一遍数据,并给每条数据添加一个标识为false即可。
试了好多种解决方案,方案3 完美解决~
原文:https://blog.csdn.net/Gunahao/article/details/79491879,谢谢

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值