点击按钮打开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>
相关推荐
摇滚侠7 分钟前
Vue 项目实战《尚医通》,预约挂号的路由与静态搭建,笔记36
javascript·vue.js·笔记
码上成长10 分钟前
React 18 并发特性:useTransition 和 useDeferredValue 动画级解释
javascript·react.js·ecmascript
浩星15 分钟前
vue3+datav实现大屏效果
vue.js·datav·大屏
百***68041 小时前
Vue项目中 安装及使用Sass(scss)
vue.js·sass·scss
G***T6911 小时前
React性能优化实战,避免不必要的重渲染
前端·javascript·react.js
网络点点滴1 小时前
标签的ref属性
前端·javascript·vue.js
Cobyte3 小时前
17. Vue3 业务组件库按需加载的实现原理
前端·javascript·vue.js
谢尔登3 小时前
原型理解从入门到精通
开发语言·javascript·原型模式
粥里有勺糖3 小时前
视野修炼-技术周刊第127期 | Valdi
前端·javascript·github
码上成长4 小时前
Vue Router 3 升级 4:写法、坑点、兼容一次讲透
前端·javascript·vue.js