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

在vue中,在使用antdesign的table组件时,实现可以直接编辑修改某个单元格的值

例如,在一个表格中,有一列叫做“权重”,想要实现单独编辑某个权重。

const columns = ref([
  {
    title: "权重",
    dataIndex: "weightiness",
    key: "weightiness",
  }
]);
<template #bodyCell="{ column, value, record }">
  <template v-if="column.key === 'weightiness'">
    <div>
      <!-- 处于编辑状态的时候 -->
      <div
        v-if="editableData[record.id]"
        style="display: flex"
      >
        <a-input
          v-model:value="editableData[record.id].weightiness"
          style="width: 50px"
        />
        <check-outlined
          @click="save(record)"
        />
      </div>
      <!-- 正常展示的时候 -->
      <div v-else>
        {{ value || 0 }}
        <img
          src="@/assets/images/settings/weightiness-edit.png"
          @click="edit(record)"
        />
      </div>
    </div>
  </template>
</template>
const data = ref(); // 表格展示的数据源
const editableData = reactive({});

// 点击编辑
const edit = (record: any) => {
  // cloneDeep是Loadash库中的一个函数,用于进行深拷贝
  editableData[record.id] = cloneDeep(
    data.value.filter((item: { id: String }) => record.id === item.id)[0]
  );
};

// 点击提交,修改权重
const save = async (record: any) => {
  Object.assign(
    data.value.filter((item: { id: String }) => record.id === item.id)[0],
    editableData[record.id]
  );
  // 把修改后的最新的当前行的数据作为接口参数
  await goodsOptionUpdate(
    data.value.filter((item: { id: String }) => record.id === item.id)[0]
  );
  delete editableData[record.id];
};

http://www.kler.cn/a/400853.html

相关文章:

  • 3D Streaming 在线互动展示系统:NVIDIA RTX 4090 加速实时渲染行业数字化转型
  • STM32 ADC --- 任意单通道采样
  • Python-简单病毒程序合集(一)
  • 大模型呼叫中心,如何建设呼入机器人系统?
  • 微信小程序-prettier 格式化
  • 前端处理input框只能输入带小数点的数字
  • spring boot 请求
  • CSS 样式的优先级?
  • Matlab信号处理:频域分析中的包络谱
  • 系统架构设计师:系统架构设计基础知识
  • 基于KNN的旋转机械故障诊断Matlab实现
  • 使用Java爬虫技术高效获取电商平台商品历史价格信息
  • PostgreSQL技术内幕18:物理备份工具pg_basebackup
  • 静态路由综合实验
  • 算法——螺旋矩阵II(leetcode59)
  • 基于YOLOv8深度学习的智慧社区高空抛物检测系统研究与实现(PyQt5界面+数据集+训练代码)
  • 传奇996_22——自动挂机
  • 大数据学习15之Scala集合与泛型
  • 力扣经典面试13罗马数字转整数
  • springboot006基于SpringBoot的网上订餐系统(源码+包运行+LW+技术指导)
  • DOM NodeList 对象简介
  • 7天掌握SQL - 第一天:数据库基础与SQL入门
  • 在AndroidStudio中新建项目时遇到的Gradle下载慢问题,配置错的按我的来,镜像地址不知道哪个网页找的,最主要下载要快
  • 汽车资讯新趋势:Spring Boot技术解读
  • ClickHouse的介绍、安装、数据类型
  • 泷羽sec-安全见闻(8)