当前位置: 首页 > article >正文

记录可编辑表格(未完整)

每一行都独立

在这里插入图片描述

<el-table-column label="操作" width="220" fixed="right">
  <template #default="{ row, $index }">
    <el-button
        v-if="!row.tableEditFlag"
        type="primary"
        size="small"
        @click="startEdit($index,row.id)"
    >
      编辑
    </el-button>
    <template v-else>
      <el-button
          type="success"
          size="small"
          @click="saveEdit($index,row.id)"
      >
        保存
      </el-button>
      <el-button
          type="danger"
          size="small"
          @click="cancelEdit($index,row.id)"
      >
        取消
      </el-button>
    </template>
  </template>
</el-table-column>
  // 使用深拷贝来保存原始数据
  const originalData = ref(JSON.parse(JSON.stringify(tableData.value)))

  const startEdit = (index,id?) => {
    if (originalData.value[index] == null) {
      originalData.value[index] = JSON.parse(JSON.stringify(tableData.value[index]))
    }
    tableData.value[index].tableEditFlag = true
  }

  const saveEdit = (index,id?) => {
    const row = tableData.value[index]
    row.tableEditFlag = false
    // 更新原始数据
    originalData.value[index] = JSON.parse(JSON.stringify(row))
    // 调用接口保存数据
    updateExcelData1Api(originalData.value[index]).then(res => {
      modal.msgSuccess('保存成功')
    })
  }

  const cancelEdit = (index,id?) => {
    if (originalData.value[index] != null) {
      // 使用深拷贝来恢复数据,确保不会相互影响
      tableData.value[index] = JSON.parse(JSON.stringify(originalData.value[index]))
      tableData.value[index].tableEditFlag = false
    } else {
      // 如果原始数据不存在,我们可以选择删除这一行或者重置为默认值
      // 这里选择删除这一行
      tableData.value.splice(index, 1)
      originalData.value.splice(index, 1)
      modal.msgWarning('原始数据不存在,该行已被删除')
    }
  }


http://www.kler.cn/news/311632.html

相关文章:

  • 【25.3】C++智能交友系统
  • K8s1.28 部署Dashboard获取登录信息
  • STM32 HAL freertos零基础(八)事件标志组
  • 09 Shell Scriptfor循环结构语句
  • 防爆手机+鸿蒙系统,遨游通讯筑牢工业安全基石
  • Android实现自定义下拉列表绑定数据
  • WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
  • Go语言grequests库并发请求的实战案例
  • vue3常用的组件间通信
  • 『功能项目』眩晕图标显示【52】
  • Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐
  • Cubic Eight-Puzzle(UVA-1604)
  • mysql DBA常用的sql
  • python教程(二):python数据结构大全(附代码)
  • R语言中的shiny框架
  • MySQL之事务
  • 计算机网络:概述 --- 体系结构
  • 插入排序详解
  • Facebook的用户隐私保护:从争议到革新
  • 【编程底层原理】mysql的redo log undo log bin log日志的作用,以及何时生成,涉及到哪些参数变量
  • Nexpose 6.6.269 发布下载,新增功能概览
  • Apache Hudi现代数据湖核心技术概论
  • 【Elasticsearch系列十四】Elasticsearch
  • C++ | Leetcode C++题解之第419题棋盘上的战舰
  • 深度解析ElasticSearch:构建高效搜索与分析的基石原创
  • 一问详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明
  • Perfetto slice提示App Deadline Missed
  • TMStarget学习——Functional Connectivity
  • 如何免费调用GPT API进行自然语言处理
  • 【毕业设计】基于 PHP 开发的社区交流系统