vue+antD 表格中使用input

2023-11-17

vue+antD 表格中使用input

在这里插入图片描述

在这里插入代码片
<template>
    <div class="deviceInfoParam">
      <div class="add">
        <h3 :style="{ marginBottom: '16px' }">
          设备参数
          <a-button type="primary" icon="plus" @click="newSubData">设备参数</a-button>
          <a-divider type="vertical" />
          <a-button type="primary" icon="plus" @click="handleBatchAdd">批量新增</a-button>
        </h3>
      </div>
      <a-table
        :columns="subColumns"
        :dataSource="subData"
        :pagination="false"
        :loading="subDataLoading"
      >
        <template v-for="(col, i) in ['element_name', 'element_value']" :slot="col" slot-scope="text, record">
          <a-input
            :key="col"
            style="margin: -5px 0"
            :value="text"
            :placeholder="subColumns[i].title"
            @change="e => handleChange(e.target.value, record.key, col, record)"
          />
        </template>
        <template slot="action" slot-scope="text, record">
          <a-popconfirm title="是否要删除此行?" @confirm="subDataRemove(record.key,record)">
            <a>删除</a>
          </a-popconfirm>
        </template>
      </a-table>
    </div>
</template>
<script>
const subColumns = [
  {
    title: '属性名',
    key: 'element_name',
    dataIndex: 'element_name',
    scopedSlots: { customRender: 'element_name' }
  },
  {
    title: '属性值',
    key: 'element_value',
    dataIndex: 'element_value',
    scopedSlots: { customRender: 'element_value' }
  },
  {
    title: '操作',
    dataIndex: 'action',
    width: '100px',
    scopedSlots: { customRender: 'action' }
  }
]
export default {
  data () {
    return {
      subDataLoading: false,
      deviceStyleParam: '',
      deviceStyleParamData: [],
      subColumns,
      subData: [],
    }
  }
}
methods; {
    subDataRemove (key, record) {
      record.record_id === undefined
        //新增的
        ? this.subData = this.subData.filter(item => item.key !== key)
        //已经保存过回显的数据
        : this.subData = this.subData.filter(item => item.record_id !== record.record_id)
    },
    /* 设备参数批量增加 */
    handleBatchAdd () {
      const length = this.subData.length
      if (this.deviceStyleParam === '') {
        this.subData.push({
          key: length === 0 ? length.toString() : (parseInt(this.subData[length - 1].key) + 1).toString(),
          element_name: '',
          element_value: ''
        })
      } else {
        for (var i = 0; i < this.deviceStyleParamData.length; i++) {
          this.subData.push({
            key: i,
            element_name: this.deviceStyleParamData[i],
            element_value: ''
          })
        }
      }
    },
    /* 新增设备参数 */
    newSubData () {
      const length = this.subData.length
      this.subData.push({
        key: length === 0 ? '0' : this.subData[length - 1].key === undefined
          ? length.toString() : (parseInt(this.subData[length - 1].key) + 1).toString(),
        element_name: '',
        element_value: ''
      })
    },
    // 子数据保存
    handleChange (value, key, column, record) {
      const newData = [...this.subData]
      if (record.record_id === undefined) {
        this.target = newData.filter(item => key === item.key)[0]
      } else {
        this.target = newData.filter(item => record.record_id === item.record_id)[0]
      }
      if (this.target) {
        this.target[column] = value
        this.subData = newData
      }
    },
}
</script>
  deviceStyleParam -- 蓝牙,遥控器,
  deviceStyleParamData -- ["蓝牙","遥控器"],
  该数据用于批量增加,根据字符串判断增加几个,并直接回填到属性名上
  
  批量增加如下图

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue+antD 表格中使用input 的相关文章

随机推荐

  • JQ了解

    jQuery 一 jQuery的了解 1 定义 jQuery是一个兼容多浏览器的JavaScript框架 可以使用户方便地处理HTML 事件 实现动画效果 并且为网站提供方便的Ajax交互 2 作用 JS操作DOM的一个库 特点 轻量级 出
  • Maven构建与管理项目(二)

    Maven构建与管理项目 二 Maven核心概念 Maven坐标 什么是坐标 在平面几何中坐标 x y 可以标识平面中唯一的一点 Maven坐标主要组成 groupId 组织标识 包名 artifactId 项目名称 version 项目的
  • ST外设使用出错,一般排查步骤

    FMC 通信有误排查过程 1 STM32 官方设计资源 https www stmcu com cn STM32中文官网 gt 设计资源 gt 实战经验 2 Cube 库当中的官方例程 使用 everything 搜索 FMC 关键词 从而
  • 新路子!chatGPT+Python爬虫接私单怎么玩?

    就在这两天 关于ChatGPT的疾呼突然在社交平台上刷屏 很多人发现自己的号已经不在了 用户们感到前所未有的惶恐 已经有不少公司把 chatGPT引入工作流 未来已来 AI智能时代真的来了 普通人如何在智能时代谋求发展 这里提供一个思路 c
  • C++异常

    全文目录 概念 异常的抛出 在函数调用链中异常栈展开匹配原则 异常的重新抛出 异常安全 异常规范 C 标准库的异常体系 异常的优缺点 概念 C语言处理异常的方式 终止程序 返回错误码 很多系统的库函数就是使用这中方式 C 异常 异常是一种处
  • iphone原彩显示对眼睛好吗_iphonex原彩显示有必要开吗

    配置来看 iphoneX更好也2113更贵 iphone8注重5261实用 iphoneX注重装X 有钱就买iphone X 预算不足买iphone 8 4102iphone8和iphoneX的区别 1653外观设计 iPhone 8 Pl
  • 工程管理系统简介 工程管理系统源码 java工程管理系统 工程管理系统功能设计

    鸿鹄工程项目管理系统 Spring Cloud Spring Boot Mybatis Vue ElementUI 前后端分离构建工程项目管理系统 1 项目背景 一 随着公司的快速发展 企业人员和经营规模不断壮大 为了提高工程管理效率 减轻
  • caffe代码阅读7:LayerRegistry的实现细节-2016.3.18

    一 LayerRegistry的作用简介 LayerResistry的功能很简单 就是将类和对应的字符串类型放入到一个map当中去 以便灵活调用 主要就是注册类的功能 二 LayerRegistry类的详细介绍 1 构造函数和析构函数 构造
  • c-tree数据库(c-treeACE)(7):开发篇之一

    C tree提供了很多种的API 我们主要使用C 的 即c treeDB C API 主要的参考手册就是Faircom公司网站上提供的 c treeDB C API Developer s Guide 学习开发的一个最佳途径当时看看tuto
  • Python 中的自动点击器——2 种简单易行的方法

    在本教程中 我们将了解Python 中的自动答题器 我们将首先了解它的含义以及如何在 Python 中实现它 那么 事不宜迟 让我们进入正题 Auto Clicker是一种 Python 软件 允许用户以较短的时间间隔连续点击鼠标 它由用户
  • Mysql中关于NULL值的处理

    一 Mysql空值介绍 MySQL认为任何和NULL值做比较的表达式的值都为NULL 包括select null null和select null null 在对统计索引列不重复值的数量时如何对待NULL值 MySQL专门提供了一个inno
  • React 练习项目,仿简书博客写作平台

    Introduction 技术栈 react redux react router express Nginx 练习点 redux 连接 react router 路由跳转 scss 样式书写 容器组件与展示组件的设计 express 脚手
  • 【100%通过率 】【华为OD机试c++】人数最多的站点【2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 关注公园园区提供小火车单向通行 从园区站点编号最小到最大通行如1 2 3 4 1 然后供员工在各个办公园区穿梭 通过对公司N个员工调研统计到每个
  • cloudflare解析域名+CDN

    cloudflare解析域名 CloudFlare 是一家全球知名的 CDN 服务商 并且提供了免费的 CDN 套餐 还不限流量 所以我们完全不需要花一分钱就能使用它的 CDN 服务 接下来我就说明如何注册并使用 CloudFlare 1
  • C/C++中的数据结构对齐,#pragma pack() 和 __attribute__

    C C 中的数据结构对齐 总览 数据结构对齐是指在计算机内存中排列和访问数据的方式 它包含三个独立但相关的问题 数据对齐 data alignment 数据结构填充 data structure padding 和打包 packing 当数
  • Servlet传送对象给Applet使用

    前日 一位朋友与我谈论Servlet与Applet共享Java对象的问题 现发表出来与大家分享 文中瑕癖 之处甚多 望各位指教 朋友谈论的需求是这样的 他想通过页面上一个Applet呼叫一个服务器Servlet 而从Servlet产生 一个
  • Anaconda3安装TensorFlow2.0.0镜像并且配置好Jupyter Notebook

    我们安装TensorFlow1 2 1但是后面又要安装Tensorflow2 0 0 那么我们就需要让Tensorflow两个版本在windows电脑下进行共存 首先 我们先下载了anacoda3和配置好了清华镜像 我们打开anaconda
  • 从零开始编译OpenWrt固件

    从零开始编译OpenWrt固件 前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的 对于OpenWrt的介绍这里就不再赘述 可以自行查找相关百科了解 OpenWrt是适合于嵌入式设备的一个Linux发行版 可以通过其提供的相关工
  • Docker使用基础命令(记录贴)

    Docker使用基础命令 基础命令 拉取 推送镜像 docker run命令 基础操作 保存镜像并压缩 基础命令 docker images grep xxx docker ps a grep xxx 导入容器 docker load i
  • vue+antD 表格中使用input

    vue antD 表格中使用input 在这里插入代码片