点击按钮打开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>
相关推荐
神探小白牙40 分钟前
eCharts 多系列柱状图增加背景图
javascript·ecmascript·echarts
追风筝的人er3 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
前端·vue.js·后端
编程老船长6 小时前
解决不同项目需要不同 Node.js 版本的问题
前端·vue.js
薛定猫AI7 小时前
【深度解析】Gemma Chat 本地 AI 编程 Agent:Electron + MLX + 开源模型的离线 Vibe Coding 实战
javascript·人工智能·electron
全栈前端老曹8 小时前
【前端地图】多地图平台适配方案——高德、百度、腾讯、Google Maps SDK 差异对比、封装统一地图接口
前端·javascript·百度·dubbo·wgs84·gcj-02·bd09
笑虾8 小时前
Win10 修改注册表 让鼠标悬停PNG上时 tip 始终显示分辨率
开发语言·javascript·ecmascript
xiaogg36788 小时前
spring oauth2 单点登录
java·vue.js·spring
雾岛听风6918 小时前
JavaScript基础语法速查手册
开发语言·前端·javascript
前端那点事8 小时前
Vue前端SEO优化全攻略(实操落地版,新手也能上手)
前端·vue.js
用户2367829801688 小时前
从零实现 GIF 制作工具:LZW 压缩与 Median Cut 色彩量化
前端·javascript