版本:ant design vue v1.73


作用:巩固学习

table.vue

<a-table :columns="columns" :data-source="dataSource" :customRow="customClick" :scroll="{ x: 1000, y: 347 }" :pagination="false" :size="small" bordered><template v-for="col in slotArray" :slot="col" slot-scope="text, record,index"><div :key="col"><editable-cell v-if="isRouterAlive" @change="onCellChange(index, col, $event)" :text="text" :col="col" :index="index" :record="record" :dataSource="dataSource" /></div></template>
</a-table>
<!-- slotArray:需要编辑的字段isRouterAlive:解决数据变化表格视图不更新-->
import EditableCell from "@/components/EditableCell";
export default {components: {EditableCell,},data() {return {columns:[{dataIndex:'fieldA',key:'fieldA',scopedSlots: { customRender: 'fieldA '},//(重要),输入框插槽width: 100,align: 'center',ellipsis: true,//溢出隐藏},{dataIndex:'fieldB',key:'fieldB',scopedSlots: { customRender: 'fieldB'},//(重要),输入框插槽width: 100,align: 'center',ellipsis: true,//溢出隐藏}],dataSource:[],       //表格数据slotArray: ['fieldA','fieldB'],          //明细中 需要编辑的字段isRouterAlive: true,    //更新视图visible: false,         //控制右键菜单显示customClick: (record, index) => ({on: {contextmenu: (e) => {//右键事件e.preventDefault();//something code},click: () => {//点击事件//something code}},}),}},watch:{visible(value) { //关闭右键if (value) {document.body.addEventListener("click", this.closeMenu);} else {document.body.removeEventListener("click", this.closeMenu);}}},methods:{//强制刷新表格reload() {this.isRouterAlive = false;this.$nextTick(function () {this.isRouterAlive = true;});},onCellChange(indexTable, dataIndex, value) {//修改明细table数据const dataSource = [...this.dataSource];const target = dataSource.find((item, index) => index === indexTable);if (target) {this.$nextTick(() => {target[dataIndex] = value;this.dataSource = dataSource;this.reload();});}}}
}

EditableCell.vue

<template><div class="editable-cell"><div v-if="editable" class="editable-cell-input-wrapper"><a-input :value="value" ref="focusid" @change="handleChange" @pressEnter="check" @blur="check" /></div><div v-else class="editable-cell-text-wrapper" @click="edit"><div>{{ value || '&nbsp;' }}</div><!-- <a-icon type="edit" class="editable-cell-icon" @dblclick="edit" /> --></div></div>
</template>
export default {props:{text: String,col: {type: String,default: ''},index: Number,dataSource: {type: Object,default: () => { }},record: {type: Object,default: () => { }},}data(){return {value: this.text,editable: false,}},methods: {edit() {//编辑this.editable = true;this.$nextTick(() => {this.$refs.focusid.focus();});},handleChange(e) {const value = e.target.value;this.value = value;},check() {this.editable = false;if (this.value) {//返回给父组件做数据更改this.$emit("change", this.value);}},}
}

总结

需求就是直接在表格中修改数据,然后还有一些表格中需要添加一些组件,在这里不做记录了。下面贴两张图
效果图

输入框中可能还需要有一些其他选择的数据

ant-bable实现表格输入数据相关推荐

  1. antd 表格树如何展开_React Ant Design树形表格的复杂增删改

    React Ant Design树形表格的复杂增删改 ​ 最近由于业务接触了antd,使用antd完成一个复杂的树形表格的显示以及修改.在这其中碰见了很多坑,不少功能antd只写了初步的功能,更为细化 ...

  2. Ant Design Vue 表格筛选时只进行前台的按页筛选修改为后台的全局筛选

    原因分析 在我们使用 Ant Design Vue 表格筛选功能时会发现,如果只是按照例子来,只是前端的按页筛选,并不能都进行全局筛选,原因有两点: 1.我们筛选的时候,只是进行前端的数据过滤,并没有 ...

  3. ant vue table表格隐藏列

    ant vue table表格隐藏列 随手记一下

  4. ant design vue 表格中时间戳转换成时间格式显示

    ant design vue 表格中时间戳转换成时间格式显示 原始数据表格如上图,因为接口传递过来的时间是10位int类型的时间戳格式,所以前端需要我们把时间格式化. step1 安装moment n ...

  5. ant中table表格的多选框如何清空

    项目需求:表格前加一列多选框,可以做多选和提交,还可以在提交后.重置或者翻页后对多选框清空 使用的组件是ant中下的可操作选择的table:这样我们就知道复选框选中的那些数据id,其实就是select ...

  6. ant design table 表格空白

    据我查找,情况可能有如下几点: 1.table设置了tableLayout:fixed,导致每个格子的css的color:transparent改变了原来的颜色 2.table的columns设置了e ...

  7. Ant Design Vue 表格内编辑(附完整源码及效果图)

    效果图: 实现关键代码就是表单的 columns 属性对象下标的 scopedSlots: scopedSlots: {customRender: '' } 实现完整代码: <template& ...

  8. vue ant design a-table表格标题(title)添加icon样式

    在表格添加icon,且不破坏排序问题. //标题<span slot="title_slot" >标题显示<a-tooltip title="这里是标题 ...

  9. Ant Design之表格动态合并行

    在web开发中,表格的行合并是一个很常见的需求.antd也提供了这种功能,但是文档中的示例代码却和我想象中的相差甚远,如下所示,它是通过一种很笨的办法实现的行合并.这样当表格的数据源是动态获取的,我们 ...

最新文章

  1. Resharper的使用
  2. JavaScript 入门基础 (八)
  3. 数组最大可以开多大_每日算法系列【LeetCode 689】三个无重叠子数组的最大和
  4. redux中的小bug
  5. 【Python学习】 - Matplotlib二维绘图 - plt.matshow()和plt.imshow()区别对比
  6. 探探被安卓市场下架 官方回应:深入开展整改
  7. pacbio 原始下机数据h5 文件简介
  8. SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
  9. minicap和minitouch安装
  10. 使用 Power Apps CLI
  11. PR VV 同行评审验证确认 用实例学CMMI V2.0
  12. 免安装mysql配置环境变量_mysql——免安装配置
  13. OSChina 周五乱弹 ——程序猿到底算不算歧视
  14. 龙ol服务器维护补偿boss,《龙OL》12月17日更新公告
  15. Js模拟重力场【Js动效】
  16. java一元二次方程求解_求JAVA解一元二次方程的程序。
  17. liteos简介(一)
  18. 打不开eclipse 由于它来自身份不明的开发者
  19. 计算机方向考研大概有哪些专业?这些专业分别会做什么?
  20. 涂鸦智能股权曝光:王学集持股19.9% 公司市值蒸发超百亿美元

热门文章

  1. 【渝粤题库】陕西师范大学201511先秦历史散文研究 作业(专升本)
  2. 云计算企业级小架构部署应用综合练习-二- Ansible 部署 Elastic Stack(ELK)
  3. Python数据可视化 Pyecharts 制作 PictorialBar 象形柱状图
  4. css案例1——一级菜单、二级菜单、三级菜单、四级菜单
  5. Linux 常用命令全拼
  6. 程序员如何选择未来的职业路线
  7. android 动画直播,直播动画实现方案一
  8. 【AutoSAR】【MCAL】CAN
  9. 【论文阅读】SCRDet++
  10. java毕业设计车辆违规信息管理系统Mybatis+系统+数据库+调试部署