点击按钮打开dialog嵌套表格checked数据关闭dialog回显checked数据

介绍:点击按钮打开dialog嵌套表格,勾选数据,点击确认关闭弹窗并且回显选中得数据,回显的数据被删除,dialog里面的数据也被取消勾选,废话不多说 上代码!!!

这里的勾选回显-外层

dialog嵌套表格-里层

html 复制代码
<template>
  <div class="award-page">
    <el-button @click="handlerService" class="btn">选择服务</el-button>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="项目名称">
      </el-table-column>
      <el-table-column
        prop="name"
        label="服务分类">
      </el-table-column>
      <el-table-column
        prop="address"
        label="价值">
      </el-table-column>
      <el-table-column
        prop="address"
        label="描述">
      </el-table-column>
      <el-table-column
        label="操作"
      >
        <template slot-scope="scope">
          <el-button @click="deleteItem(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-dialog
      title="添加服务项目"
      :visible.sync="dialogFlag"
      width="50%"
    >
      <el-table
        :data="addServiceData"
        ref="table"
        @selection-change="handleSelectionChange"
        style="width: 100%">
        <el-table-column
          type="selection"
          width="55">
        </el-table-column>
        <el-table-column
          prop="date"
          label="日期"
          width="180">
        </el-table-column>
        <el-table-column
          prop="name"
          label="姓名"
          width="180">
        </el-table-column>
        <el-table-column
          prop="address"
          label="地址">
        </el-table-column>
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogFlag = false">取 消</el-button>
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        dialogFlag: false,
        tableData: [], // 外层数据
        preStoredData: [], // 暂存数据
        addServiceData: [{ // 里层数据
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 弄'
        }]
      }
    },
    methods: {
      // 打开弹窗
      handlerService () {
        this.dialogFlag = true
      },
      // 里层-勾选
      handleSelectionChange (data) {
        this.preStoredData = data
      },
      // 里层-确认
      handleConfirm () {
        this.dialogFlag = false
        this.tableData = this.preStoredData
      },
      // 外层-删除
      deleteItem (row) {
        this.tableData = this.tableData.filter(item => item !== row);
        this.cancelSelection(row)
      },
      // 里层-取消勾选
      cancelSelection(row) {
        const table = this.$refs.table;
        // 使用toggleRowSelection来取消选中
        table.toggleRowSelection(row, false);
      },
    }
  }
</script>

<style lang="scss" scoped>
</style>
相关推荐
Moment34 分钟前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
爱敲代码的小鱼1 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax
吹牛不交税1 小时前
admin.net-v2 框架使用笔记-netcore8.0/10.0版
vue.js·.netcore
MZ_ZXD0013 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
铅笔侠_小龙虾3 小时前
Flutter 实战: 计算器
开发语言·javascript·flutter
大模型玩家七七3 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
2501_944711434 小时前
JS 对象遍历全解析
开发语言·前端·javascript
发现一只大呆瓜4 小时前
虚拟列表:支持“向上加载”的历史消息(Vue 3 & React 双版本)
前端·javascript·面试
阔皮大师4 小时前
INote轻量文本编辑器
java·javascript·python·c#
lbb 小魔仙4 小时前
【HarmonyOS实战】React Native 表单实战:自定义 useReactHookForm 高性能验证
javascript·react native·react.js